UML
Advanced Structural Modeling II
UML Advanced Structural Modeling 1
Basic Structural Modeling
• Classes
Attributes, Operations, Responsibilities
• Relationships
Dependency, Generalization, Association, Role,
Multiplicity, Aggregation
• Common Mechanisms
Specifications, Adornments, Common Divisions,
Extensibility Mechanisms
• Diagrams
Class , Object , Component , Deployment Dagrams
UML Advanced Structural Modeling 2
Other UML concepts
• Interface
• Type
• Role
• Activity Diagram
• Package
• Component
• Deployment Diagram
• Process and Threads
UML Advanced Structural Modeling 3
Interfaces (chapter 11)
• Collection of operations used to specify a service
• Specify a behavior of an a element (class or component)
independent of its implementation
• Important for large scale project where different teams are
developing different parts of the system
• Described by abstract operations (signatures)
• Used to model the seams of a system
• Components on eah side of seams should not be affected
by changes on the other side
• Concept supported in Java, Corba IDL, COM
UML Advanced Structural Modeling 4
Interfaces
• Graphical Representation:
IStuff
• Or Class Stereotype:
<<interface>>
Storable
load()
save() no attribute
UML Advanced Structural Modeling 5
Interfaces Relationships
• Participate in: generalization, association dependency,
realization
• Realization: Class or Component may realize one (or many)
interface(s):
class provides a set of methods that implement the
operations of all the interfaces it realizes
• Exemple:
Telemetry Sensor
IFilter
realization
dependency
UML Advanced Structural Modeling 6
Types and Roles
• Types:
Same as Interface + Attributes
Allow to model the semantics of an abstraction and its
conformance to a specific interface.
• Roles:
In a given context, an instance may present only one
of its interface. Each interface represents a role the
object plays
Person e:Employee
Company
UML Advanced Structural Modeling 7
Activity Diagrams (Chapter 19)
• Used to model dynamic aspects of a system
• Flowchart showing flow of control from activity to activity
• Kind of a State Machine where :
states are activity states and action states
transitions are triggered by completion of activities
• Activity is an on-going nonatomic execution within a state
machine
• Purpose: focus on flows driven by internal processing
(not external events), usually the implementation of an
operation
UML Advanced Structural Modeling 8
Activity Diagrams (cont.)
• Contains: action state, activity state, transitions, branching,
forking/joining, swimlanes
• Action State: can’t be decomposed, atomic, not interupted,
• Activity State: can be decomposed, non atomic, can be
interupted, may have some additional parts (entry/exit
actions)
• Transitions: triggerless transitions from one state to another,
once action or activity ends.
• Branching: specifies alternate paths taken based Boolean
expression
• forking/joining: model concurrent flows
• swimlanes: Allow to parttion the activity states into groups,
each group representing the business organization
responsible for those activities
UML Advanced Structural Modeling 9
Acitivity Diagram Example
customer sale
warehouse
request product
process order
pull material
ship order
receive order bill customer
pay bill close order
UML Advanced Structural Modeling 10
Activity Diagrams (Hints and Tips)
• Where to use Activity Diagrams:
Before/While developing Use Cases:
• Help understand a business process
• Capture the workflow of the business that the system will
support
Describe Control mechanisms within the system
Describe complex sequential algorithm in an operation
Develop multithreaded applications
• Where NOT to use Activity Diagrams:
See how Objects collaborate
See how object behave over its lifetime
Represent complex conditional logic
UML Advanced Structural Modeling 11
Packages (chapter 12)
• General purpose mechanism for organizing modeling
elements into groups
• Use Packages for Architecture Views
• Organize elements semantically close into large chunks
• Well structured Packages are loosely coupled and very
cohesive
• Graphical Representation:
Robot Kinematics
UML Advanced Structural Modeling 12
Packages (cont.)
• Package may own other elements
classes, interfaces, components, nodes, collaborations,
use cases, other packages.
• Package form namespace (same named element cannot be
in same package, but can be in two different packages)
Robot
Robot
Kinematics
Kinematics
+Joints +Joints
+Vector
- Matrix
+Vector
- Matrix
UML Advanced Structural Modeling 13
Packages Visibility
• Specify whether an element owned by a package can be
used by other package:
+ public: any package that import this package can use
the feature
# protected: any descendant of the package can use the
feature
- private: only the elements in the package itself can use
the feature
• Collectively the public parts of a package constitute the
package’s interface
UML Advanced Structural Modeling 14
Package Import and Export
• Importing a Package grants a one way permission for the
elements in one package to access the elements in the
other package
• Allows to control the complexity of large number of elements
in large scale project
• Public parts of a package are called its Exports
• Parts exported by one package are visible to the contents of
the packages that import it Robot
Robot Controller
Kinematics <<import>>
+Joints <<import>> +DataCollector
+Vector +Control
- Matrix GUI - Timer
+Window
+Frame
#EventHandler
UML Advanced Structural Modeling 15
Package Example
GUI DB
AppWin AppFrame Facade to
Relational
Translation
SQL
Generator
Bus.Obj.
Facade Entity
Service Business
Object
Control
Business
Object
UML Advanced Structural Modeling 16
Components (chapter 25)
• Physical and replaceable part of a system that conforms to
and provides the realization of a set of interfaces
• Physical implementation of a set of logical elements such
as classes and collaborations.
• Represent physical things that live in the world of bits, on a
node
• Graphical Representation:
winApp.dll
UML Advanced Structural Modeling 17
Components (cont.)
• Three kinds of components:
deployment components - components needed for an
executable system, such as dynamic libraries, executables,
COM objects, JavaBeans, DB tables, CORBA objects
work product components - source code files, data files,
products from development process
execution components - created as a result of an
executing system COM+ object instantiated from dll
• Five standard stereotypes for components:
executable, library, table, file, document
UML Advanced Structural Modeling 18
Component - Example of Use
1- Source code dependencies
MathCtrlr.h MathCtrlr.cpp
Vector.h Matrix.h Joint.h
Allow to discover cluster of source code which can be put in a package
UML Advanced Structural Modeling 19
Component - Example of Use
2- Modeling API
(Application Programming Interface)
animator.exe
IScripts
IRendering
IApplication IModels
UML Advanced Structural Modeling 20
Component - Example of Use
3- System Configuration
RobotControl.hlp ForwardKin.dll
RobotControl.exe
RobotControl.ini
InvKin.dll
Target.txt
Telemetry.dll
UML Advanced Structural Modeling 21
Deployment (chapter 26)
• Model of the physical/hardware aspects of a system
• Main concept: Node - typically a computational resource
• Nodes used to model the hardware topology of the system
• Graphical Representation:
edp_server
• Node can be tailored to any specific kind of devices using
stereotypes
• Nodes can be parts of packages
• Components are executed by Nodes
UML Advanced Structural Modeling 22
Nodes Connections
• Nodes can have different types of relationships:
dependency, generalization, associations
• Most common kind of relationship is an association
representing a physical connection among nodes
workflow_server Raid farm
edp_client
connection
node web_server
UML Advanced Structural Modeling 23
Nodes and Components
• Components are allocated/distributed across Nodes
• Model distribution of components in nodes by listing them:
workflow_server Raid farm
edp_client deploys
deploys wwwf.exe
netscape.exe perl.exe
web_server
deploys
iis.exe
UML Advanced Structural Modeling 24
Processes and Threads (chapter 22)
• Used to model independent flow of control
• Process is a heavyweight flow that can execute
concurrently wih other processes
• Thread is a lightweight flow that can execute concurrently
with other threads within the same process
• Allow to reason about crucial issues such as concurrency,
communication, synchonization
• Supported in languages: Java, Smalltalk, Ada.
UML Advanced Structural Modeling 25
Processes and Threads
• Graphical Representation: Active Class
RobotController
attributes
operations
Signals
UML Advanced Structural Modeling 26