Professional Documents
Culture Documents
(OMG SysML™)
Tutorial
11 July 2006
Sanford Friedenthal
Alan Moore
Rick Steiner
Copyright © 2006 by Object Management Group.
Published and used by INCOSE and affiliated societies with permission.
Caveat
Intended Audience:
• Practicing Systems Engineers interested in system modeling
– Already familiar with system modeling & tools, or
– Want to learn about systems modeling
• Software Engineers who want to express systems concepts
• Familiarity with UML is not required, but it will help
• Interface
requirements
• System design
• Test plans
Requirements
Mass
Properties
Model
Structural
Model
Safety
Model
Cost
Engine Transmission Transaxle Model
Boundaries
MCE (CRC)
MCE (CRC)
AWACS
LINK 16
LINK 16
AMDPCS
FAAD C3I
LINK 16
LINK 16
Patriot ICC
E-2C
AWACS F/A-18
RIVET JOINT
MCE
F-15C
ABMOC Subsystem
Voice Comm
Operational Models
Operator Interface
SIAP
Power
Hardware Power Generation Hardware includes
and Distribution MSE
ACDS (CVN)
Power
Data Processing Power
Terminal Power TCIM
JTIDS
Hardware
Terminal
11 Correlate Track
Correlated Track
Files
12
Manage BMDS
Track File Data BMDS Track
JDN
Correlation S/W Network Interface Track Management Module Correlation Module Track File HIC
Module Module 13
System Models
Request
Attempt to
Track Data Correlate with Track Data Possible
Network BMDS Track
BMDS Track
File Matches
Interface S/W Network Track MSG Track File Request
Correlating TracksMonitor
BMDS Track Display Correlation Receiving Network Track File
Process Data
On entry / match state vectors
BMDS Track Data Do / corr state vectors
Do / corr LPE On entry / receive file data
<TITLE>System Design<TITLE>
Do / corr PIP Do / store track data
Track MSG Data Send BMDS Do / corr RCS On exit / request matching data
Track Data to Do / corr CID
JDN On exit / corr BMDS Track #
Prepared Track MSG
<SCRIPT src="/virtual/2000/code
Receiving BMDS Track File
Data
Component Models
1
0..* Voice & TADIL-B Data
Power
correlates PLGR (GPS)
<<entity>>
Network Track <<entity>>
Customer
BMDS Track Power
Software License
owning element Primary Key Client Call
<<derived>> /associated data Primary Key is subject to A2C2 Subsystem
Received Date-Time owns Power
traces to /history Customer_ID [PK1] Serial_Number [PK1] Primary Key Operator Interface
local track number
Non-Key Attributes Voice Comm
Non-Key Attributes Hardware
Serial_Number [PK1] [FK] Power Power Generation
create () Customer_Name Hardware includes
receive ()
store () update () Technical_Contact and Distribution MSE
destroy () Purchase_Contact
update ()
retrieve () Customer_Address
send () Power
createsData Processing
consists of Terminal TCIM
Voice & TADIL-B Data
Hardware Power
JTIDS
Software Release Terminal
Software
Tech Support System Entry
Primary Key
Version_Number [PK1] Primary Key
TSS_Entry_Number [PK1]
Non-Key Attributes EPLRS or SINGARS
Windows_Version Terminal
Power
TSS_Description
Force Level Power
Control System PLGR
(GPS)
Power
Status
Location is a currently has
Primary Key
Primary Key
Status [PK1]
Status [PK1] [FK]
Project
Managers
Vendors
Regulators Testers
• Supports model and data interchange via XMI and the evolving
AP233 standard (in-process)
• UML V2.0
– Updated version of UML that offers significant capability for
systems engineering over previous versions
– Finalized in 2005 (formal/05-07-04)
• SysML
– Industry Response to the UML for SE RFP
– Addresses most of the requirements in the RFP
– Version 1.0 adopted by OMG in May ’06 / In finalization
– Being implemented by multiple tool vendors
UML 2
SysML
SysML
UML
extensions
reused by
to UML
SysML
(SysML
UML (UML4SysML)
Profile)
not required
by SysML
(UML -
UML4SysML)
SysML Diagram
Activity Sequence State Machine Use Case Block Definition Internal Block
Package Diagram
Diagram Diagram Diagram Diagram Diagram Diagram
sendAck()
:BrakingForce f: :Accelleration
«requirement» «requirement» Equation Equation
StoppingDistance Anti-LockPerformance [f = (tf*bf)*(1-tl)] F: [F = ma]
id=“102” id=”337" a:
text=”The vehicle shall stop text=”Braking subsystem shall a:
from 60 mph within 150 ft prevent wheel lockup under all
on a clean dry surface.” braking conditions.”
v:
:DistanceEquation :VelocityEquation
[v = dx/dt] v: [a = dv/dt]
«deriveReqt»
x:
3. Requirements 4. Parametrics
11 July 2006 Copyright © 2006 by Object Management Group. 19
SysML Diagram Frames
• Each SysML diagram represents a model element
• Each SysML Diagram must have a Diagram Frame
• Diagram context is indicated in the header:
– Diagram kind (act, bdd, ibd, seq, etc.)
– Model element type (activity, block, interaction, etc.)
– Model element name
– Descriptive diagram name or view name
• A separate diagram description block is used to indicate if the
diagram is complete, or has elements elided Diagram Description
Version:
Description:
«diagram usage»
diagramKind [modelElementType] modelElementName [diagramName]
Contents
11 July 2006 Copyright © 2006 by Object Management Group. 20
Structural Diagrams
SysML Diagram
Activity Sequence State Machine Use Case Block Definition Internal Block
Package Diagram
Diagram Diagram Diagram Diagram Diagram Diagram
Architecture
Use Cases Enterprise
Team
Requirements
Requirements System
Team
Allocated
Structure IPT B
Design
Verification
Definition Usage
– Block is a definition/type – Part is the usage in a
particular context
– Captures properties, etc.
– Typed by a block
– Reused in multiple contexts
– Also known as a role
Item Flow
c1:modulator d1:Traction
Interface Detector
Part
Connector m1:Brake
Modulator Port
c2:sensor
Interface s1:Sensor
c1:modulator d1:Traction
Interface Detector
m1:Brake
Modulator
provided interface
(provides the operations)
Standard
Port
required interface
(calls the operations)
Flow Port
Flow
Port
item flow
preserve encapsulation of
block Child1:
:BrakingForce f: :Accelleration
Equation Equation
{f = (tf*bf)*(1-tl)} F: {F = m*a}
a:
a:
v:
:DistanceEquation :VelocityEquation
{v = dx/dt} v: {a = dv/dt}
x:
v.Position:
SysML Diagram
Activity Sequence State Machine Use Case Block Definition Internal Block
Package Diagram
Diagram Diagram Diagram Diagram Diagram Diagram
act MonitorTraction
WheelRevs Action
Initial Decision
Calculate
Node Wheel
Velocity
[loss of
AngularVelocity of traction]
Calculate
Calculate Modulation
Modulation
Fork Traction
Fr e que nc y Frequency
Speed
[else]
Calculate Car
Control Velocity
Flow
Object
SpeedoInput
Flow
Flow Activity
Final Final
Node Node
Activity
Pin
Parameter
Node
Pins ObjectNode
11 July 2006 Copyright © 2006 by Object Management Group. 40
Explicit Allocation of Behavior to
Structure Using Swimlanes
act PreventLockup [Activity Diagram]
«allocate» «allocate»
:TractionDetector :BrakeModulator
Activity Diagram
DetectLossOf Modulate
(with Swimlanes) Traction
TractionLoss:
BrakingForce
allocatedTo
«connector»c1:modulatorInterface
Continuous Flow
Interruptible
Region
«activity»
PreventLockup
Traction
a1:DetectLossOf Loss: a2:Modulate
a1 a2 Traction Traction
BrakingForce
Loss:
«activity» «activity»
DetectLossOf ModulateBrak
Traction ingForce
Definition Use
driver:Driver vehicleInContext:HybridSUV
ref
StartVehicleBlackBox
par
ref
Idle
[state = (accelerating/cruising)]
ref
Accelerate/Cruise
[state = (braking)]
ref
Brake
ref
Steer
ref
Park/ShutdownVehicle
References Lifeline
Decomposition
For White Box
Interaction
0.3
0.25
0.2
0.15
Lifeline are
0.1
0.05
0
0 5 10 15 20
value properties
Time (sec)
140
120
100
Velocity (mph)
80
60
40
20
0
0 5 10 15 20
Time (sec)
1800
1600
1000
800
Part of SysML
600
400
200
0
0 5 10 15 20
Time (sec)
Off keyOff/
Operate
Idle
Transition notation:
trigger[guard]/action
accelerate/
when (speed = 0)
releaseBrake/
Accelerating/
Braking
Cruising
engageBrake/
Activity Sequence State Machine Use Case Block Definition Internal Block
Package Diagram
Diagram Diagram Diagram Diagram Diagram Diagram
Element
Name2
«allocate»
Element
Name1
«allocate»
Element
Name3
«block»
BlockName
PartName
allocatedFrom
«elementType»ElementName
«node»
SF Resid ence In stallati on
* 2
«hardware» «hardware»
«hardware»
: Optical Sensor : Alarm
: Video Camera
«hardware»
: Site Processor
«hardware»
allocatedFrom : NW Hub «hardware»
«software» Device Mgr : DSL Modem
allocatedFrom
«software» Event Mgr
«software» SF Comm I/F
«software» Site Config Mgr
«software» Site RDBMS
«software» Site Status Mgr
«software» User I/F 2
«software» User Valid Mgr «hardware»
: DVD-ROM Drive
allocatedFrom
«data» Video File
«hardware»
«hardware» : User Console
: Site Hard Disk
allocatedFrom
«data» Site Database
HSUVSpecification
RefinedBy
«useCase» HSUVUseCases::Accelerate
«requirement» «requirement»
Eco-Friendliness Performance
«requirement»
Power
«deriveReqt»
«requirement»
Emissions
Supplier
Client
ate
allocatedFrom
allocatedFrom
c1:modulator «activity»DetectLos
«activity»DetectLos
d1:Traction
c
allo
c1:modulator
Interface OfTraction
Of Traction
Detector
Interface
c1:modulator
interface DetectLossOf Modulate
Modulate
TractionLoss:
m1:BrakeModulator
m1:BrakeModulator
m1:Brake Traction BrakingForce
BrakingForce
allocatedFrom
allocatedFrom Modulator
allocatedFrom
allocatedFrom
«ObjectNode» «activity»Modulate
«activity»Modulate
TractionLoss: BrakingForce
BrakingForce
values
value allocatedTo
«connector»c1:modulatorInterface
DutyCycle: Percentage binding
satisfy par [constraintBlock] StraightLineVehicleDynamics [Parametric Diagram]
«deriveReqt»
«deriveReqt» v.Position:
verify
3. Requirements 4. Parametrics
11 July 2006 Copyright © 2006 by Object Management Group. 65
SysML Modeling
as Part of the SE Process
Distiller Sample Problem
Distiller Problem Statement
• The following problem was posed to the SysMLteam in Dec ’05 by D. Oliver:
• Describe a system for purifying dirty water.
– Heat dirty water and condense steam are performed by a Counter Flow Heat Exchanger
– Boil dirty water is performed by a Boiler
– Drain residue is performed by a Drain
– The water has properties: vol = 1 liter, density 1 gm/cm3, temp 20 deg C, specific heat
1cal/gm deg C, heat of vaporization 540 cal/gm.
• A crude behavior diagram is shown.
Energy to Pure
Dirty water Dirty water condense water
Steam
@ 20 deg C @ 100 deg C
Condense
steam
Heat Dirty water Boil Dirty water and
and
To 100 deg C
Drain
Residue
Residue
Heat to Dirty Disposed
water Heat to Boil residue
water
Batch
Distiller
Continuous
Distiller
DistillerRequirements DistillerUseCases
bdd [package] ValueTypes
«valueType»
Real
DistillerBehavior DistillerStructure
Source
«requirement»
OriginalStatement
Id = S0.0
text = Describe a system for purifying dirty water.
- Heat dirty water and condense steam are performed by a Counter Flow Heat Exchanger
- Boil dirty water is performed by a Boiler. Drain residue is performed by a Drain.
The water has properties: vol = 1 liter, density 1 gm/cm3, temp 20 deg C, specific heat 1cal/gm deg C, heat of vaporization 540 cal/gm.
Id = S3.0 «requirement»
WaterInitialTemp
text = Boil dirty water is performed
by a Boiler. Id = S5.1
«deriveReqt» text = water has an
«rationale» «requirement» initial temp 20 deg C
The requirement Drain
for a boiling
function and a Id = S4.0
boiler implies that text = Drain residue is performed by
the water must be a Drain.
purified by
distillation
«requirement»
DistillWater
Id = D1.0
text = The system shall purify water
by boiling it.
11 July 2006 Copyright © 2006 by Object Management Group. 72
Distiller Example:
Requirements Tables
id name text
S0.0 OriginalStatement Describe a system for purifying dirty water. …
S1.0 PurifyWater The system shall purify dirty water.
S2.0 HeatExchanger Heat dirty water and condense steam are performed by a …
S3.0 Boiler Boil dirty water is performed by a Boiler.
S4.0 Drain Drain residue is performed by a Drain.
S5.0 WaterProperties water has properties: density 1 gm/cm3, temp 20 deg C, …
S5.1 WaterInitialTemp water has an initial temp 20 deg C
Energy to Pure
Dirty water Dirty water condense water
Steam
@ 20 deg C @ 100 deg C
Condense
steam
Heat Dirty water Boil Dirty water and
and
To 100 deg C
Drain
Residue
Residue
Heat to Dirty Disposed
water Heat to Boil residue
water
Batch
Distiller
11 July 2006 Copyright © 2006 by Object Management Group. 75
Distiller Example – Block Definition
Diagram: DistillerBehavior
bdd [package] DistillerBehavior [Distiller Behavior Breakdown]
«activity»
DistillWater
a1 a2
«activity» «activity»
HeatWater BoilWater Need to
Activities consider
(Functions) a3
phases
a4
of H20
«activity» «activity»
CondenseSteam DrainResidue
Control
(not shown
on BDD) Things that flow (ObjectNodes)
11 July 2006 Copyright © 2006 by Object Management Group. 76
Distiller Example – State Machine
Diagram: States of H2O
stm [block] H2O
Gas
Liquid
Transitions
Solid
loPress:Residue
coldDirty:H2O
[liquid] steam:H20 hiPress:Residue
[gas]
recovered:Heat
a4:DrainResidue
a1:HeatWater a3:CondenseSteam
hotDirty:H2O
[liquid]
a2:BoilWater
pure:H2O
external:Heat [liquid]
Continuous
Distiller
11 July 2006 Copyright © 2006 by Object Management Group. 78
Distiller Example – Activity Diagram:
No Control Flow – Simultaneous Behavior
Constraints
(on Ports) hx1 drain
bx1
f2Out:Fluid in:Fluid
«block»
HeatExchanger
hIn:Fluid fIn:Fluid «block» «block»
Boiler qIn:Heat Valve out:Fluid
cIn:Fluid constraints
{cIn.temp <= 220}
f1Out:Fluid
{cIn.press <= 150}
{cOut.temp <= 220}
{cOut.press <= 150}
{hIn.temp <= 400} hOut:Fluid
{hIn.temp <= 1000}
cOut:Fluid {hIn.temp <= 400}
{hIn.temp <= 1000}
m3:H2O
q1:Heat
m4:H2O
m3:H2O
q1:Heat
m4:H2O
allocatedFrom allocatedFrom allocatedFrom
«objectNode»External:Heat «objectNode»steam:H2O «objectNode»Pure:H2O
Parts or {Qrate=(th-tc)*mRate/sh)}
ItemFlows water_in:H2O
mRate:
temp:ºC sh:
tin: SinglePhaseHeatXFR
Equation
massFlowRate:
gm/sec tout:
r1:
Qrate:
equivalent
hx_water_out:H2O {r1=r2} water_in:H2O
r2: Qrate:
specificHeat:
Value temp:ºC
condensing: lh:
cal/(gm*ºC)
massFlowRate:
Properties gm/sec
SimplePhaseChange
Equation
latentHeat:
cal/gm
mRate:
bx_steam_out:H2O
Value
gm/sec
Constraints SimplePhaseChange
Equation Constraint
Bindings mRate:
callouts
heat_in:Heat
dQ/dt>:cal/
sec
bx_steam_out
hx_water_out
bx_water_in
water_out
water_in
Satisfies «requirement»
WaterInitialTemp
«continuous»
coldDirty:H2O
[liquid] «continuous» «continuous»
recovered:Heat a4:DrainResidue
steam:H2O
[gas] «continuous»
pure:H2O
[liquid]
«streaming» «streaming»
a1:HeatWater a3:CondenseSteam
«streaming» hiPress:Residue
a2:BoilWater
«continuous»
hotDirty:H2O «continuous»
[liquid] hotDirty2:H2O
«continuous»
hotDirty1:H2O [liquid]
[liquid]
«continuous»
external:Heat a5:DivertFeed
ShutDown
«actor» «block»
:User :Distiller uc DistillerUseCases [Operate Distiller]
TurnOn
Operate
Distiller
Distiller
PowerLampOn
User
OperatingLampOn
loop
alt
LevelHighLampOn
DrainingLampOn
LevelLowLampOn
TurnOff
PowerLampOff
11 July 2006 Copyright © 2006 by Object Management Group. 89
Distiller Example – Internal Block
Diagram: Distiller Controller
System
Modeling
Activities
Component
Modeling
Activities
Synthesize
•Engr Analysis Models Physical
•Trade studies Validate & Architecture
Verify
System
•Node diagram
•HW, SW, Data architecture
•Test cases/procedures
Common Subactivities
11 July 2006 CopyrightCopyright
© Lockheed© 2006 byCorporation
Martin Object Management Group.
2000 – 2003 & INCOSE 2004-2006 95
Enhanced Security System Example
«trace»
«requirement»
IntruderDetection «requirement»
R111
id# = SS102
txt = System shall id# = SS111
«deriveReqt»
detect intruder entry «satisfy»
and exit ...
Comm Network
Residence
Dispatcher Intruder
Police
* * «enterprise»
Residence Enterprise As-Is
1 *
Site Installation Central Monitoring
As-Is Station As-Is
Dispatcher Police
*
«system» «external»
ESS Comm Network *
* Responder
* «external»
Property Dispatcher
«external»
Physical Environment
«external» «external»
Single-family Residence «external» Business
Multi-family Residence Police
Fire Paramedic
Activate/Dea-
ctivate
«include» Operate
«include» «extend»
Respond
Monitor Site
System On
Enter Property
Status Update System Off
DetectEntry
ValidateEntry
Validated Entry
Conduct Theft
[Alert]
GenerateAlarm ReportEntry
InternalMonitor
[Alert]
DetectExit
ReportExit
[Alert]
: EmergencyServicesIn
«external» «system»
: Emergency Services : EmergencyServicesOut : ESS
«perf» Power = {<100 watts}
«perf» Reliability
«phys» SiteInstallDwg
«store» EventLog
: CustomerOut : CustomerIn «store» SystemState
DetectEntry ()
: Customer DetectExit ()
ReportEntry ()
ReportExit ()
GenerateAlarm ()
ValidateEntry ()
: AlarmSignal : IntruderSignal InternalMonitor ()
DetectFire ()
: Intruder DetectMedicalEmergency ()
RequestUserID ()
«external» ValidateUserID ()
: Property
: Power : Door Input : Window Input SetTimer ()
ActivateSystem ()
ProtectPrivacy ()
Status Update ()
«external» DetectFault ()
: Physical Environment
: Envronmental_In
m+n «logical»
: Window Input : Event Monitor
«logical»
: Alert Status
: Exit Sensor
«store»
: Event Log
: AlarmSignal
«logical»
: Window Input
: Alarm Generator
«logical»
: Entry Sensor
: SensedEntry
: Door Input
: AlarmCmd
: BIT «logical»
: Entry/Exit Monitor : Alert Status
«logical»
: Alarm I/F
: BIT
: Fault
: FaultReport : Lamp
«logical» «logical» «logical»
: Environment Sensor : Customer Output Mgr : Customer I/F
Logical Components
Entry Perimeter Entry/Exit Event Site Customer Customer System Alarm
Type Sensor Exit Sensor Sensor Monitor Monitor Comms I/F Event Log I/F Output Mgr Status Fault Mgr Generator Alarm I/F
Site RDBMS
CMS RDBMS X
«data» Video File X
CMS Database X
Site Database X X
«hardware» Optical Sensor X X
DSL Modem X
User Console X
Video Camera X
Alarm X
«hardware»
: DB Server
«hardware» «hardware»
: Site Processor : NW Hub «hardware» allocatedFrom
: Alarm «hardware» «software» CMS RDBMS
allocatedFrom allocatedFrom «hardware» «data» CMS Database
«software» SF Comm I/F : CM Server
«software» Device Mgr : Video Server
«software» Event Mgr allocatedFrom
«software» Site Config Mgr «software» S/W Distrib Mgr
«software» Site RDBMS «software» System CM
«software» Site Status Mgr
«software» User I/F
«software» User Valid Mgr 2
«hardware»
: DVD-ROM Drive
allocatedFrom
«data» Site Database
«hardware» «hardware»
: Site Hard Disk : User Console
allocatedFrom
«data» Site Database
of1 : ObjectiveFunction
MRT CE
«moe» «moe»
OperationalAvailability CostEffectiveness
OA
OC
«moe»
OperationalCost
seq seq
Intruder enters through front Enter
door
Door sensor detects entry : SensedEntry
New alert status sent to central IntruderEntry :
system Alert Status
Intruder leaves through lounge Exit
window
Window sensor detects exit : SensedExit
Changed alert status sent to Intruder Exit :
central system Alert Status
Architecture
FEAF DoDAF MODAF Zachman FW
Frameworks
Modeling
Implemented
Methods HP OOSE SADT Other By Tools
Modeling &
IDEF0 SysML UPDM HLA MathML
Simulation
Standards System Modeling Simulation & Analysis
Interchange &
Metamodeling MOF XMI STEP/AP233
Standards
Data
Repository
11 July 2006 Copyright © 2006 by Object Management Group. 112
ISO/IEC 15288
System Life Cycle Processes
Enterprise Processes Project Processes Technical Processes
5.3.2 5.5.2
Enterprise Environment Stakeholder Reqts
5.4.2
Management Process Definition Process
Project Planning Process
5.5.3
5.3.3
Reqts Analysis Process
Investment 5.4.3
Management Process Project Assessment 5.5.4
Process Architectural Design Process
5.3.4
System Life Cycle 5.5.5
Processes Management 5.4.4 Implementation Process
Project Control Process
5.3.5 5.5.6
Quality Integration Process
Management Process
5.4.5
5.5.7
5.3.6 Decision-
Decision-Making Process Verification Process
Resource
Management Process 5.5.8
5.4.6
Risk Management Transition Process
Process 5.5.9
Agreement Processes Validation Process
5.4.7
5.5.10
Configuration Management
5.2.2 Operation Process
Process
Acquisition Process
5.5.11
5.4.8 Maintenance Process
5.2.3 Information Management
Process 5.5.12
Supply Process Disposal Process
AP233/XMI
•
• .....
• ... .. -
• ..... -
-
-
-
OV7 TV2
-
-
-
-
• ..... • -
• ..... -
• ..... -
- -
- -
- -
-
AP233/XMI
-
-
-
-
-
-
-
-
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
-
-
-
-
-
-
-
-
• Artisan
• EmbeddedPlus
– 3rd party IBM vendor
• Sparx Systems
• Telelogic (includes I-Logix)
• Vitech
Project Management
Engineering Performance Analysis