Title: Illinois Institute of Technology
1Illinois Institute of Technology
- CS487
- Software Engineering
- OOA with UML
- David Lash
2UML An Overview
- Unified Modeling Language
- An out growth of OMT - Object Modeling Technique
- OO Software Engineering
- UML is a modeling language for
- specifying - can be used to communicate "what"
is required of a system, and "how" a system may
be realized. - visualizing - it can be used to visually depict
a system before it is realized. - constructing, - can be used to guide the
realization of a system similar to a "blueprint".
- documenting - can be used for capturing knowledge
about a system throughout its life-cycle - the artifacts of a system to derive or evolve a
system.
3UML An Overview
- The UML is not
- A visual programming language, but a visual
modeling language. - A tool or repository specification, but a
modeling language specification. - A process, but enables processes.
- Fundamentally, the UML is concerned with
capturing, communicating, and levering knowledge
4UML An Overview
- UML applies to a multitude of different types of
systems, domains, and methods or processes. It is
- A general-purpose modeling language - focuses on
acquiring, sharing, and utilizing knowledge
coupled with extensibility mechanisms. - Broadly applicable modeling language - applicable
to different types of systems, domains, and
methods or processes. - Tool-supported modeling language - tools are
available to support the application of the
language to specify, visualize, construct, and
document systems. - Industry-standardized modeling language, - not a
proprietary and closed language but an open and
fully extensible industry-recognized language.
5UML Views
- Unified Modeling Language supports 5 views to use
diagrams to describe the system from different
perspectives - User Model View - Use-case modeling approach to
representation of the end-users perspective. - Structured Model View - Data and functionality
viewed from inside the system (classes, objects
relationships) - Behavior View - models the behaviours and
interactions of various structures - Implementation model view - the structural and
behavior aspects o f the system - Environment Model View - structural and behaviour
aspects of the environment
6UML Views
- Unified Modeling Language supports 5 views to use
diagrams to describe the system from different
perspectives - User Model View - Use-case modeling approach to
representation of the end-users perspective. - Structured Model View - Data and functionality
viewed from inside the system (classes, objects
relationships) - Behavior View - models the behaviours and
interactions of various structures - Implementation model view - the structural and
behavior aspects of the system - Environment Model View - structural and behaviour
aspects of the environment
7UML Uses a variety of Diagrams
- Use Case
- Show a set of use cases and actors and their
relationships - Actors entities that interact with the system
- Class
- Show a set of classes, interfaces and
collaborations and their relationships
8UML Diagrams
- Interaction
- Sequence and collaboration
- Show an interaction, consisting of a set of
objects and their relationships - Dependency
- A relationship between two elements in which a
change to one element may affect or supply
information needed by the other element.
9UML Diagrams
- State
- Shows behavior a class or use case.
- Different notation
- Activity
- Show the flow from activity to activity within a
system
10UML Diagrams
- Component
- Show the organizations and dependencies among a
set of components (subsystem) - Deployment
- Show the configuration of run-time processing
nodes and components that live on them
11The OOA process
- Use-cases
- CRC modeling (Class-Responsibility-Collaborator
modeling) - class definition definiing
hierarchies - Object-relationship modeling - ERD like
- Object Behaviour modeling
- state representations, event flow
- event trace
12UML Diagrams - Use Case
- Description
- A diagram that shows a set of use cases and
actors and their relationships - Use Case - purpose
- Defines functional operational requirements of
the system - Clear unambiguous description of how the
end-user system interact (systems context) - provide basis for validation testing
- Introduced by Ivar Jacobson - Replace Data Flow
Diagram used in OMT
13Use Case Terms
- Terms
- Actor
- An abstraction for entities outside a system,
subsystem, or class that interact directly with
the system. - Classifier
- A model element that describes behavioral and
structural features - Use Case
- The specification of sequences of actions,
including variant sequences and error sequences,
that a system, subsystem, or class can perform
by interacting with outside actors.
14UML Diagrams
- Use Case
- Show a set of use cases and actors and their
relationships - Actors entities that interact with the system
- Example Consider homesafe with actors
- homeowner, sensors, monitoring response
subsystem - Look only at homeowner for now
15Use Case Actor Relationships
16Use Case HL Diagram - I
Interacts
Configures
17Use Case HL Diagram - IIThe Interacts Function
Inputs Passwords
Validates Password
Uses
Uses
Inquire zone status
Query Sensor
Uses
Press Panic Button
Activates/ deactivates system
18Use Case Symbols
19Use Case Relationship
20Use Case Example
21Hints and Tips
- A well-structured Use Case diagram
- Focus on communicating one aspect of a systems
static Use Case view - Contain only those use cases and actors that are
essential to understanding that aspect - Provide detail consistent with its level of
abstraction you expose only those adornments
that are essential to understanding - Is not so minimalist as to misinform the reader
about the semantics that are important
22Hints and Tips
- When you draw a Use Case diagram
- Give it a name that communicates its purpose
- Lay out its elements to minimize lines that cross
- Organize its elements spatially so that behaviors
and roles that are semantically close are laid
out physically close - Use notes and color as visual cues to draw
attention to important features of your diagram - Try not to show too many kinds of relationships
23The OOA process
- Use-cases
- CRC modeling (Class-Responsibility-Collaborator
modeling) - class definition definiing
hierarchies - Object-relationship modeling - ERD like
- Object Behavior modeling
- state representations, event flow
- event trace
24CRC modeling (Class-Responsibility-Collaborator
modeling) - class definition defining
hierarchies
- A simple means for identifying and organizing
classes
25Selecting Objects (review)
- Already spoke about the Six characteristics that
should be used on each potential object - Retained Information - information about it must
be remembered - Needed services - have a set of identifiable
operations that can change attributes value - Multiple Attributes - Are the attributes major
and useful? - Common Attributes - can define a set that apply
to all occurrences of object - Essential requirements - External entity in
problem and produces information essential to
solution
26Collaborations- Defining relatips between Classes
- A Class can
- use its operations to manipulate its own
attributes or - collaborate with other classes if it cannot
complete its responsibilities by itself - Review classes determine relationship type
- is-part-of relationship - All classes part of an
aggregate class. Player_body is part of player,
player_arms is part of player. - has-knowledge-of relationship - when 1 class
must acquire information from another.
Control_panel object must determine if any
sensors are open. determine_sensor_status
relationship between them. Control_panel must
work with sensor to get status. - depends-upon relationship - 2 classes have a
dependency that is not 1 of the 2 above
-Player_head must always be connected to
player-body. (yet they can exist w/o knowledge of
eachother).
27UML Create Class Diagram
- Use the Class diagram to
- Show a set of classes, interfaces and
collaborations and their relationships - Focuses on the the structure of the classes
hierarchies - Components
- Name
- Attributes
- Operations
- Responsibilities
28UML Class Symbol
29UML Class Diagram Chart Structure
- After ID classes objects, gt determine
structure. - Objects might be
generalization/specialization structure.
- Sensor is the generalization of the
specialized entry, smoke motion sensors
30UML Class Diagram - Showing Relationships
- The object might be composed of a number of
objects- The diamond implies an assembly
relationship of the composite aggregate.
31UML Class Diagram
- Relationships
- Dependency
- A relationship that states that a change in
specification of one thing may affect another
thing that uses it, but not necessarily the
reverse - Generalization (Inheritance)
- A relationship between a general thing (parent,
super-class) and a more specific kind of that
thing
32UML Class Diagram
- Relationships
- Association
- A structural relationship that specifies that
objects of one thing are connected to objects of
another - Characteristics
- Name
- Role
- Multiplicity
- Aggregation
- Components that comprise the owning object
33UML Class Relationships
34UML Class Association
35UML Class Association
36UML Class Association
Indicates many
37UML More On Cardinality
38UML Class Aggregation
Evaluate cardinality it can be 0 to 1, 1 to 1, 0
to many, 1 to many.
39Identifying Classes
- Develop an automated student registration system.
The students registration system identify the
School (i.e. Arts Sciences, Engineering, Fine
Arts, etc.) in which the student is registered.
It also shall Identify the current classes
offered by each department and the instructor for
each class.
40UML Class Diagram Example
41The OOA process
- Use-cases
- CRC modeling (Class-Responsibility-Collaborator
modeling) - class definition definiing
hierarchies - Object-relationship modeling - ERD like
- Object Behavior modeling
- state representations, event flow
- event trace
42State Transitions
- Within OO systems look at state that are
- state of each object as system performs its
function - State of system as observable from the outside
world (as system works) - Types
- Active State transition diagram -
- passive state gt the current status of all
attributes. E.g., video_game_player might have
position, orientation - active state gt the status of the object as it
undergoes a transformation, moving, at rest,
injured, being cured. - Action occurs concurrently with the state
transition
43UML Activity Diagram
44State Transitions
- Within OO systems look at state that are
- state of each object as system performs its
function - State of system as observable from the outside
world (as system works) - Types
- Event trace model -
- how events cause transitions from object to
object - key objects only
- Event flow model
45UML Interaction Diagram
46State Transitions
- Within OO systems look at state that are
- state of each object as system performs its
function - State of system as observable from the outside
world (as system works) - Types
- Event trace model (ETM) -
- how events cause transitions from object to
object - key objects only
- Event flow model -
- After ETM, collect events causing transitions
between objects collated into inputs outputs
from object(s) - All events that flow into out of object shown
- Once done can do more detailed state diagram
47Partial Event Flow Diagram