Free Mini Course: Applying SysML with MagicDraw
2
What is SysML?
OMG System Modeling Language (SysML)
Developed by OMG and INCOSE, and AP233. Adopted by OMG in May ‘06
Realized as UML subset
http://www.omgsysml.org
UML 2SysML
Not required by SysML
UML reused by SysML (UML4SysML)
SysML’s extensions to UML
3
What is SysML?
Modeling language that includes 9 diagrams
Dedicated for modeling complex systems that may include:
hardware,
software,
information,
personnel,
procedures, and
facilities.
Being implemented by different tools vendors
4
SysML Diagrams
SysML Diagram
Requirement Diagram
Behavior Diagram
ActivityDiagram
Sequence Diagram
State Machine Diagram
Use Case Diagram
Block Definition Diagram
Package Diagram
Structure Diagram
Parametric Diagram
Internal Block Diagram
The same as in UML 2
Modified from UML 2
New diagram type
5
SysML in the System Development Process
System Requirements& Business Analysis
System Analysis& Design
Detailed Design:Software & Hardware
Evaluation &Optimization (V&V)
System Integration
System Implementation
Requirements diagramUse Case DiagramActivity diagram
Package diagramBlock Definition diagram Activity diagramSequence diagramState diagram Package diagram
Block Definition diagram Internal Block diagramParametric diagramSequence diagramState diagram
Block Definition diagram Internal Block diagramPackage diagram
Requirements diagramUse Case diagram
6
Why Modeling Is Important?
Modeling helps to improve design quality, reduce errors and avoid ambiguity.
Modeling helps to improve communications.
Modeling helps to manage complex systems development:
• helps to separate different concerns,
• allows hierarchical modeling,
• facilitates impact analysis of requirements and design changes,
• supports incremental development.
7
HybridSUV
Operate Vehicle
Insure theVehicle
Register theVehicle
Maintain theVehicle
Department ofMotor Vehicles
Registered Owner
Maintainer
InsuranceCompany
Driver
A Case Study: Analyzing User Needs
Analyze user needs by identifying user roles – actors – and associating them to their use cases.
With MagicDraw you can document use cases and generate use case documentation from model.
8
A Case Study: Defining System Requirements
Show system requirements and their relationships with other elements.
Create Use Case diagram to specify functional requirements.
9
A Case Study: Structural System Decomposition
Prepare package diagram to group your model elements into packages, views and viewpoints.
Establish dependencies between packages and/or model elements within that package.
Viewpoints provide insight to a model using another principle.
10
A Case Study: Defining Structural Blocks
<<block>>
LugBoltJoint
boltTension : lbtorque : ft-lb{min = 75, max = 85}
WheelHubAssembly<<block>>
<<block>>
Tire
tireSpecification : String
mountTire()
<<block>>
Wheel
diameter : mmwidth : mm
<<block>>
LugBoltThreadedHole
lugBoltSize : mmthreadSize : mm
<<block>>
WirelessTirePresureMonitor
transmitPressure()
<<block>>
Hub
<<block>>
WheelAssembly
-lugBoltJoint
0..5
0..1
1
-hub
0..1
-threadedHole
1
0..1
BandMount111
-w0..1
1
-t0..1
5
-h0..1
-wheel 1
0..1
Show system structure as block components with their properties, operations and relationships.
11
A Case Study: Modeling Block Structure
Describe the system-containing blocks internal structure. Show parts, ports and connectors.
WheelHubAssembly WheelHubAssembly[Block] ibd [ ]
wheel : WheelAssembly [1]
w : Wheel [1]
mountingHole : LugBoltMountingHole [5]
t : Tire [1]
: TireBead
lugBoltJoint : LugBoltJoint [0..5]
hub : Hub [1]
h : LugBoltThreadedHole [5]
threadedHole
0..1
1
mountingHole1
0..1
12
A Case Study: Designing Control and Data Flows
Model system behavior and the way how these behaviors are related.
Describe control and data flow, display continuous behaviors and continuous data flows
13
A Case Study: Designing Communications
Model component interactions for use case scenarios in order to find out new methods in existing blocks or even blocks with specific responsibilities
[ ]
[self.oclInState(idle)]
[self.oclInState(accelerating/cruising)]
[self.oclInState(braking)]
alt
Idle
ref
Accelerate/Cruise
ref
Brake
ref
[ ]
Steer
ref
par
<<block>>
vehicleInContext : HybridSUVdriver : Driver
Park/ShutdownVehicle
ref
StartVehicleBlackBox
ref
[ ]
[self.oclInState(idle)]
[self.oclInState(accelerating/cruising)]
[self.oclInState(braking)]
alt
Idle
ref
Accelerate/Cruise
ref
Brake
ref
[ ]
Steer
ref
par
Park/ShutdownVehicle
ref
StartVehicleBlackBox
ref
14
A Case Study: Designing State-Based System Behavior
Represent block life cycle.
Define system behavior as sequences of states that a component or interaction experience in response to events.
Operate
Idle
Accelerating/Cruising
Braking
Off
engageBrake
releaseBrake
stoppedaccelerate
key off
ShutOffstart
15
A Case Study: Modeling System Constraints
Model system constraints between structural elements. Model constraints blocks to capture equations. Use parametric diagrams to represent a usage of the constraints in an analysis context.
parametersCddtaccvel : VelocityEquationwhlpwrxCftwinclinepos : PositionEquationpwr : PowerEquation
<<constraint>>StraightLine
VehicleDynamics
<<constraint>>PowerEquation
{tp = whlpowr - (Cd*v) - (Cf*tw *v)}
parameterswhlpowr : HorsepwrCd : RealCf : Realtw : Weighttp : Horsepwrv : Veli : Real
<<constraint>>VelocityEquation
{v(n+1) = v(n)+a*32*3600/5280*dt}
parametersdelta-t : Timev : Vela : Accel
<<constraint>>PositionEquation
{x(n+1) = x(n)+v*5280/3600*dt}
delta-t : Timev : Velx : Dist
parameters
<<constraint>>AccelerationEquation
{a = (550/32)*tp(hp)*deltat*tw}
tw : Weightdelta-t : Timetp : Horsepwra : Accel
parameters
-acc-pwr
-vel-pos
EconomyContext Economy Context[Block] par [ ]
ad.HSUV.powerSubsystem.ice.ICEEfficiency
ad.drivingConditions.road.incline fe : FuelEfficiencyEquation
whlpwr
vel
n_ice
n_emn_eg
mpg
ebpwracc
: AeroDragEquation
Cd
volume
ad.HSUV.PayloadCapacity
dyn : StraightLineVehicleDynamics
acc
Cd
Cf
dt
incline
tw
vel
whlpwr
x
pl : PayloadEquation
cgoWt
pcap
psgrWt
volume
rdrag : RollingFrictionEquation
Cftw
ad.HSUV.position
delta-t : Time
16
A Case Study: Mapping Logical to Physical Model Elements
Represent general relationships that map one model element to another.
Create diagram or dependency matrix to represent allocations!
Power Functional AllocationPowerSubsystem[Block] ibd [ ]
emg : ElectricalMotorGeneratorepc : ElectricalPowerController
allocatedFrom = ConvertElectricToPowerallocatedFrom = ControlElectricPower
ElectricCurrentElectricCurrent
17
Learn MagicDraw Features!
Organize your model elements and hyperlink them for easy navigation
Prepare model content diagrams for easy model navigation
Reuse model element in multiple diagrams with different level of details
Document your use case models and generate use case specification
Create system documentation following style guidelines and using layout tools
Validate the model you have created Decompose large models into independent
modules and profiles Compare model versions and find out changes
in model and diagrams Evaluate your model by calculating model
metrics
…and much more!
Increase efficiency of tool usage by learning how to:
18
Sample MagicDraw Feature: Comparison of Two Model Versions (1)
Deleted elements
Modified element – a diagram
Added element
19
Sample MagicDraw Feature: Comparison of Two Model Versions (2)
Find out modified parts in diagrams!
20
Ways to Learn
Choose the most effective way to learn:
1. Send one or two employees to an open enrollment class!
2. Order onsite training when purchasing new MagicDraw licenses!
3. Consider adding one of our professional services consultants as an on-staff mentor in your first MagicDraw project!
4. Ask for a free one hour tour for new functionality demo!
21
Leading Instructor
Darius has been working with No Magic since 1998. He took part as Java developer in multiple
international projects. Darius has developed a modeling case study MagicLibrary and leaded
numerous MagicDraw UML training courses and consultations worldwide. He also taught
industrial courses on Requirements Management with UML, Software Design with UML, and
Java/J2EE Programming. Darius received PhD from Vytautas Magnus University, where he
teaches courses Software Development Methodology and Software Engineering. Darius
participates frequently in various conferences and gives talks on UML and other software
development topics. He holds the following professional certificates:
Microsoft Certified Professional Sun Certified Programmer for the Java 2 Platform 1.4 OMG-Certified UML Professional Advanced
Dr. Darius Šilingas
MagicDraw Training Leader
22
Other Instructors
Our world-wide instructor group contains people who all have the following characteristics:
Have experience in software development Have applied UML in multiple industrial projects Are experts of MagicDraw UML Have good communication skills Are customer-oriented Believe in modeling
Most of our trainers are either The best people from MagicDraw development group The best independent consultants working with MagicDraw
Visit www.magicdraw.com/trainers for trainers description.
23
Where to Look for More Info
We are offering you regular open enrollment classes in the USA,
Europe, and Asia
Check the online schedule www.magicdraw.com/training for
locations and dates
Onsite training is available anywhere in the world with the
possibility to customize course to meet best your needs!
Contact training group: [email protected]
Register online at www.magicdraw.com/registration
Do you need MagicDraw training for just yourself or several
employees?
Want MagicDraw training for a small group but want to get
away?