OMG Systems Modeling Language (OMG SysML™) Matthew Hause ARTiSAN Software Tools Some slides reused from the OMG SysML™ Tutorial with permission Topics SysML Status SysML Language Architecture SysML Language Detail Requirements Structure Parametric Models Allocation Summary Questions Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 2 Where we’ve come from… A Historical Perspective INCOSE US D.O.D OO Programming : ADA Eiffel Smalltalk Simula C++ Bell Labs XEROX PARC Booch SysML Wirfs-Brock Jacobson: OOSE ecc. ecc..... UML Shlaer/Mellor Structured Method: SA&SD Entity Modelling Event Modellingi XMI DDS Coad/Yourdon Rumbaugh: OMT Martin/Odell yrs ’60 yrs ’70 SPEM MOF BPMN yrs ’80 yrs ’90 Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved MDA yrs2000 3 * A Unifying Systems Language SysML A Language to document the properties from different disciplines to describe the whole solution Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 4 SysML Contents Summary Structure Behaviour e.g., requirements hierarchy, traceability Verification e.g., parametric models, time property Requirements e.g., function-based behaviour, state-based behaviour Properties e.g., system hierarchy, interconnection e.g., test cases, verification results Cross-Cutting e.g., allocation of entities for workflow Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 5 The Four Pillars of SysML (ABS Example) 1. Structure bdd [Package] Vehicle [ABS] «Block» Library:: Electronic Processor d1 «Block» Traction Detector interaction «Block» Anti-Lock Controller definition «Block» Anti-Lock Controller 2. Behavior ibd [Block] Anti-Lock Controller1 stm Tire [Traction] «Block» Library:: Electro-Hydraulic Valve c1:modulator interface «BlockProperty» d1 : Traction Detector use «Block» Brake Modulator Los s O fTrac tion/ act PreventLockup activity/function Gripping «BlockProperty» m1 : Brake Modulator m1 state machine Detect Loss Of Traction 4. Parametrics Slipping RegainTrac tion/ Modulate TractionLoss Braking Force 3. Requirements par [constraint] StraightLineVehicleDynamics [Parametric Diagram] req [Package] Vehicle Specifications [Braking] {f = (tf*bf)*(1-tl)} {F = ma} : BrakingForceEquation tf : AccelerationEquation f F c Vehicle System Specification tl bf «requirement» Stopping Distance a id# : DistanceEquation x : VelocityEquation v v a {v = dx/dt} Braking Subsystem Specification «requirement» Anti-Lock Performance id# 102 337 txt The vehicle shall stop from 60 mph within 150ft on a clean dry surface. txt The Braking subsystem shall prevent wheel lockup under all braking conditions. {a = dv/dt} Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved«deriveReqt» 6 Requirements Requirements represents a text based requirement Includes id and text properties Can add user defined properties such as verification method Can add user defined requirements categories (e.g. functional, interface, performance, ...) Requirements hierarchy describes requirements contained in a specification Requirements relationships include DeriveReqt, Satisfy, Verify, Refine, Trace, Copy Graphical, tabular and tree notation specified Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 7 User Requirements Flow Down req [Package] Cruise Control System [Reqts with links] «requirement» REQ_CCS_01 «requirement» REQ_CCS_02 txt The CCS must allow a driver to enable the vehicle to maintain a desired speed. «refine» «satisfy» «deriveReqt» txt The CCS must allow cruise control to be engaged and disengaged. When engaged the cruise control system is available to accept driver instructions (such as 'set' and 'increment'). When disengaged, the cruise control system will not respond to any driver inputs. «satisfy» «requirement» REQ_CCS_03 «Activity» Maintain Speed Maintain Speed «satisfy» «Block» Cruise Control System «deriveReqt» «verify» «testCase» [Package] Maintain Speed - with flows «satisfy»«satisfy» «satisfy» txt The CCS must allow cruise control to be suspended (via toggle or brake application) and resumed (via toggle only). This feature should be available only when cruise control is active. When suspended, the cruise control system shall memorize the desired speed, but the cruise control system is inactive (i.e. suspended) and must relinquish control of the throttle pedal back to the driver. The only commands which can be accepted whilst suspended are 'resume', 'disengage' or 'set'. «satisfy» «Activity» Disengage CC «Activity» Suspend CC «Activity» Resume CC «requirement» REQ_CCS_05 «deriveReqt» «requirement» REQ_CCS_04 «satisfy» «Activity» Engage CC txt Once the CCS is engaged, to activate cruise control the driver can 'set' the desired speed. Once this is set the CCS shall take over control of the throttle. «satisfy» «Activity» Set Desired Speed txt The failsafe state for the CCS is 'disengaged' - any errors encountered by the cruise control system shall be logged (along with the system's configuration data) and the system shall be disengaged. «requirement» REQ_CCS_06a «requirement» REQ_CCS_06 txt When cruise control is engaged, the driver must be able to increment or decrement the desired speed (in increments of 1 MPH). The driver must also have the ability to change the gear selection whilst the cruise control is active. txt When cruise control is engaged, the driver must be able to increment the desired speed in increments of 1 MPH. «satisfy» «Activity» Increment Speed «requirement» REQ_CCS_06b txt When cruise control is engaged, the driver must be able to decrement the desired speed in increments of 1 MPH. «requirement» REQ_CCS_06c «satisfy» «satisfy» «Activity» Decrement Speed «Activity» Shift Gear txt When cruise control is active, the driver must be able to change the gear selection. «requirement» REQ_CCS_07 txt The CCS must provide displayed outputs to the driver. This will enable the driver to determine the current desired speed before resuming cruise control. «satisfy» Display Speed Cruise Control System - block operation Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 8 Activities Activity used to specify the flow of inputs/outputs and control, including sequence and conditions for coordinating activities Secondary constructs show responsibilities for the activities using swim lanes SysML extensions to Activities Support for continuous flow modeling Support probabilistic choice Alignment of activities with Enhanced Functional Flow Block Diagram Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 9 Analysis Model of Vehicle SysML additions on this chart «streaming» activities consume inputs after initialization «continuous» flows AD Operate Vehicle Start Up Vehicle Drive Vehicle Shut Down Vehicle Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 10 Analysis Model of Vehicle SysML additions on this chart AD Drive Vehicle «streaming» activities consume inputs after initialization «continuous» flows select first gear move from stopped coast Steer Vehicle Shift Gear Accelerate Vehicle stopped Brake Vehicle Operate Cruise Control Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 11 Analysis Model of Vehicle SysML additions on this chart «streaming» activities consume inputs after initialization «continuous» flows «block» Automotive Domain AD Operate Cruise Control Driver «block» Cruise Control System Press Engage Button Do Initialisation tests error OK Log Error Engaged Engage CC Operating Press Set Button Set Desired Speed «valueType» Speed EMUMessage SpeedMsg Maintain Speed ThrottleMessage Press Increment Button Increment Speed Press Decrement Button Decrement Speed brake applied wait until.... Suspend CC Press Suspend/Resume Button if suspended Resume CC CCerror Log Error Press Disengage Button Disengage CC Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 12 Analysis Model of Vehicle SysML additions on this chart «streaming» activities consume inputs after initialization «continuous» flows «block» Cruise Control Unit «block» Cruise Control IO Maintain Speed load profile for current gear EMUMessage Callibrate against current EMU Data SpeedMsg Update CC Display Calculate required throttle position send EMU throttle position message Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved ThrottleMessage 13 SysML Blocks Provides a unifying concept to describe the structure of an element or system Hardware Software Data Procedure Facility Person Block is Basic Structural Element Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 14 Block Definition Diagram for Vehicle Structural Components Parts shown by black-diamond notation, or by Parts Compartment Values compartment shows properties of the block Flowports compartment shows block interface bdd [Package] Structure Automotive Domain Breakdown «Block» Automotive Domain 1 * Veh 1 «Block» Vehicle * Env * Cargo «Block» Environment «Block» Baggage 1 1 Drv Driver * Main Maintainer * Pass * Wthr * FO * Sat * Rd «Block» Weather «Block» Foreign Object «Block» Satellite «Block» Road «Block» Other Vehicle «Block» Pedestrian «Block» Fixed Obstacle «Block» Cyclist Passenger «Block» Tree Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved «Block» Wall 15 Block Definition Diagram for Vehicle Structural Components Parts shown by black-diamond notation, or by Parts Compartment Values compartment shows properties of the block Flowports compartment shows block interface bdd [Package] Vehicle [Main Subsystems] «Block» Vehicle 1 1 PowSys 1 «Block» Power Subsystem BodySys 1 LightSys «Block» Body Subsystem 1 SteerSys 1 BrakeSys «Block» Steering Subsystem «Block» Brake Subsystem 1 «Block» Lighting Subsystem 1 InteriorSys «Block» Interior Subsystem CC Sys «Block» Cruise Control System 1 ChasSys «Block» Chassis Subsystem Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 1 ElecSys «Block» Electrical Subsystem 16 Block Definition Diagram for Vehicle Structural Components Parts shown by black-diamond notation, or by Parts Compartment Values compartment shows properties of the block Flowports compartment shows block interface bdd [Package] Vehicle [CC DriverInterfaces] «Block» Vehicle 1 parts AccPedal : Accelerator Pedal BodySys : Body Subsystem BrakeSys : Brake Subsystem CC Sys : Cruise Control System ChasSys : Chassis Subsystem ElecSys : Electrical Subsystem GearSel : Gear Selector InteriorSys : Interior Subsystem LightSys : Lighting Subsystem PowSys : Power Subsystem SteerSys : Steering Subsystem «Block» Brake Subsystem 1 1 parts BrakeSys ABS : Anti-Locking Braking System BrkPed : Brake Pedal BrkSens : Brake Assembly Sensor [*] 1 1 1 AccPedal 1 1 «Block» Accelerator Pedal 1 CC Sys GearSel 1 «Block» Gear Selector «Block» Cruise Control System 1 1 BrkPed «Block» Brake Pedal 1 Driver Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 1 17 Block Definition Diagram for Vehicle Structural Components Parts shown by black-diamond notation, or by Parts Compartment Values compartment shows properties of the block Flowports compartment shows block interface bdd [Block] Cruise Control System «Block» Cruise Control System 1 «Block» CAN parts CCIO : Cruise Control IO CCUnit : Cruise Control Unit 1 1 1 CCUnit CCIO «Block» Cruise Control IO 1 1 Set «Block» Set Speed operations update display () parts CC Disp : CC Display Panel Dec : Dec Speed Eng/Dis : Engage/Disengage CC Inc : Inc Speed Set : Set Speed Sus/Res : Suspend/Resume CC 1 1 «Block» Cruise Control Unit 1 operations load gear profile (in gear : Integer) calibrate () calculate throttle position () handle EMU message () 1 «Block» Push Button 1 CC Disp allocatedFrom «Class» cThrottle Controller «Class» pAccelerationProfile «Class» pCalibration Manager «Class» cSpeedMonitor 1 1 Dec «Block» Dec Speed 1 1 «Block» Suspend/Resume CC «Block» CC Motherboard allocatedFrom «Class» eCruiseControlPanel «Class» eEMUIF «Class» eTransmissionMonitor «Class» eBrakePedalMonitor CCUmb «Block» CC Display Panel 1 «Block» CC IO Card 1 CCUio Sus/Res 1 Inc «Block» Inc Speed 1 CANbus Eng/Dis «Block» Engage/Disengage CC «Block» Toggle Button Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 18 Unit and Item Types Unit types normally based on Real SI Units and Dimensions defined in SysML appendix bdd [Package] Vehicle [Definitions] «Block» Liquid values MFR : Mass Flow Rate [*] Press : Pressure [*] Temp : Temperature [*] «ValueType» Temperature unit DegreeCelsius «ValueType» Pressure unit Pascal «Block» Fuel values MFR : Mass Flow Rate [*] Press : Pressure [*] Temp : Temperature [*] «FlowSpecification» FPump-ICEng flowPropertyList out FuelReturn : Fuel in FuelSupply : Fuel «FlowSpecification» TorqueSpec flowPropertyList in TorqueIn : Torque out TorqueOut : Torque «ValueType» Force unit Newton «ValueType» Mass Flow Rate unit KilogramPerSecond «Unit» KilogramPerSecond «Unit» RevolutionsPerMinute «ValueType» CAN «ValueType» Electric Power unit «ValueType» Speed Watt dimension Velocity unit MeterPerSecond «ValueType» Electrical Signal «ValueType» RPM dimension Rotational Speed unit RevolutionsPerMinute «ValueType» Torque unit NewtonMetre «Unit» NewtonMetre «ValueType» Analogue dimension ElectricCurrentRange operations Send () unit Ampere «ValueType» Digital dimension ElectricPotentialDifference operations Send () unit Volt «Dimension» Rotational Speed «Dimension» ElectricCurrentRange Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 19 Item Flows Distinct from what can flow via the port specification Supports top down description of flows without imposing behavioural method (e.g. activities, state, interactions) Behaviour is not driven from itemFlows but needs to be consistent with it Is aligned with behaviour thru refinement and allocation Can be allocated from an object node, message, or signal from a behavioural diagram Properties of item flow can be specified and constrained in parametric diagram Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 20 IBD for Vehicle ibd [Block] Automotive Domain «Block» Automotive Domain «BlockProperty» Veh : Vehicle Driver Maintainer Passenger «BlockProperty» Env : Environment «BlockProperty» Cargo : Baggage Non-Atomic Ports I/O is specified using FlowSpecification FlowSpecification consists of properties stereotyped «FlowProperty» isConjugate promotes reuse of flowSpecifications «BlockProperty» Wthr : Weather «BlockProperty» Sat : Satellite «BlockProperty» Rd : Road «BlockProperty» FO : Foreign Object Atomic FlowPorts In this case the port is directly typed by the item type (Block or ValueType) Direction property specify the direction of flow Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 21 IBD for Vehicle ibd [Block] Vehicle [High Level Systems] «Block» Vehicle «BlockProperty» SteerSys : Steering Subsystem «BlockProperty» BodySys : Body Subsystem «BlockProperty» InteriorSys : Interior Subsystem Body-Interior Body-Chassis Interior-Lighting Steer-Chassis Body-Lighting «BlockProperty» ChasSys : Chassis Subsystem Chassis-Brake «BlockProperty» BrakeSys : Brake Subsystem Brake-Lighting «BlockProperty» LightSys : Lighting Subsystem Interior-Elec Brake-CC System Elec-Lighting Power-Chassis Power-CC System «BlockProperty» PowSys : Power Subsystem Non-Atomic Ports «BlockProperty» CC Sys : Cruise Control System CCSystem-Elec «BlockProperty» ElecSys : Electrical Subsystem Power-Elec I/O is specified using FlowSpecification FlowSpecification consists of properties stereotyped «FlowProperty» isConjugate promotes reuse of flowSpecifications Atomic FlowPorts In this case the port is directly typed by the item type (Block or ValueType) Direction property specify the direction of flow Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 22 IBD for Vehicle ibd [Block] Vehicle [Driver Interface Connections] «Block» Vehicle CCIF : RS232 EMU : EMU Message EMUIF : RS232 Set Throttle : AnalogueMessage «BlockProperty» PowSys : Power Subsystem CCIF : Analogue «BlockProperty» CC Sys : Cruise Control System TransmIF : Analogue BrakeIF : Digital «ItemFlow» Gear : Analogue «ItemFlow» BrakeEngaged : Digital GearShiftIF : Force AccelIF : Force CCIF : Digital «ItemFlow» Select : Force TransmIF : Force «BlockProperty» GearSel : Gear Selector «ItemFlow» Accel : Force «BlockProperty» BrakeSys : Brake Subsystem ThrotIF : Force «BlockProperty» BrkPed : Brake Pedal «BlockProperty» AccPedal : Accelerator Pedal Driver Driver Non-Atomic Ports I/O is specified using FlowSpecification FlowSpecification consists of properties stereotyped «FlowProperty» isConjugate promotes reuse of flowSpecifications Atomic FlowPorts In this case the port is directly typed by the item type (Block or ValueType) Direction property specify the direction of flow Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 23 Internal Block Diagram for CC ibd [Block] Cruise Control System [connections] «block» Cruise Control System «part» CCIO : Cruise Control IO «part» CCUnit : Cruise Control Unit «part» CC Disp : CC Display Panel «part» Eng/Dis : Engage/Disengage CC Driver CCIF : RS232 «part» «board» CCUmb : CC Motherboard CCIF : Digital «part» Sus/Res : Suspend/Resume CC CCIF : Digital «ItemFlow» Press : Digital «part» «multidropBus» CANbus : CAN CANIF EngDisIF CCDispIF «part» Set : Set Speed «part» Inc : Inc Speed «ItemFlow» Press : Digital CCIF : Digital «ItemFlow» Press : Digital «ItemFlow» CCIF : Digital Press : Digital SetIF CCIF : Digital «ItemFlow» Press : Digital DecIF BrakeIF : Digital «ItemFlow» Gear : Analogue TransmIF : Analogue Standard Ports «ItemFlow» Brake Engaged : Digital SusResIF TransmIF : Analogue «part» «board» CCUio : CC IO Card Supports integration of behavior and structure Port types BrakeIF : Digital IncIF «part» Dec : Dec Speed Power : Electric Power CANIF Speed : Speed Shows parts (structural children) … … and ports (interaction points on blocks and parts) Flow Ports : EMU Message EMUIF : RS232 EMUIF : RS232 : AnalogueMessage Specify a set of operations and/or signals Typed by a UML interface Specify what can flow in or out of block/part Typed by a flow specification Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 24 Avionics - Topology of Processing Elements Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 25 Avionics - Internals of a Processing Element Avionics System N1 : Processing Element CPU : CPU Card 24v Memory : Memory uProcessor : PowerPC 750 Bootstrap : NVM Application : RAM Backplane : PCI Bus UART1 C3910 : STANAG 3910 I/F Card C1553B : MILSTD 1553B I/F Card CSerial : Serial I/F Card UART2 UART3 I/O : STANAG 3190 Connector I/O : MILSTD 1553B Connector Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 26 Parametrics Used to express constraints (equations) between value properties Constraint block captures equations Provides support to engineering analysis (e.g. performance, reliability, etc) Expression language can be formal (e.g. MathML, OCL …) or informal Computational engine is defined by applicable analysis tool and not by SysML Parametric diagram represents the usage of the constraints in an analysis context Binding of constraint usage to value properties of blocks (e.g. vehicle mass bound to F= m * a) Parametrics Enable Integration of Engineering Analysis withSoftware Design Copyright © 1998-2008 ARTiSAN Tools Ltd. Models All Rights Reserved 27 Vehicle Parametrics BDD BDDs can show parametric definitions Parameter compartment shows the constraint parameters Constraint compartment for the applied constraint bdd [Package] Parametrics «constraint» Straight Line Vehicle Dynamics «block» Vehicle constraints {} AccEq : Acceleration Equation BrkFrceEq : Braking Force Equation DistEq : Distance Equation 1 VelEq : Velocity Equation parameters Bf : Force m : Mass Posn : Position tf : Friction tl : Duty Cycle 1 values Mass : kg = 2000 Posn : Position Power : W = 300 Param 1 1 BrkFrceEq «constraint» Braking Force Equation constraints {f = (tf * bf) * (1 - tl)} parameters bf : Force f : Force tf : Force tl : Loss {f = (tf * bf) * (1 - tl)} «valueType» Loss «valueType» Friction 1 AccEq «constraint» Acceleration Equation constraints {F = m * a} parameters a : Acceleration F : Force m : Mass {F = m * a} 1 VelEq «constraint» Velocity Equation constraints {a = dv / dt} parameters a : Acceleration t : Time v : Velocity {a = dv / dt} 1 DistEq «constraint» Distance Equation constraints {v = dx / dt} parameters t : Time v : Velocity x : Position {v = dx / dt} «valueType» Mass «valueType» Time «valueType» Position «valueType» Acceleration «valueType» Duty Cycle «valueType» Velocity Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 28 Parametric Diagram par [block] Vehicle [1] Vehicle.BrakeSys.Rtr.BrakingForce : Force Vehicle.BrakeSys.ABS.Duty Cycle : Duty Cycle Vehicle.Param : Straight Line Vehicle Dynamics Bf m tl Vehicle.Mass : kg tf Vehicle.ChasSys.RFTire.Frctn : Friction Posn Small boxes represent parameters and bound properties Boxes on left represent item flows Constraint can be in compartment or in attached note Vehicle.Posn : Position Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 29 Parametric Diagram par [constraint] Straight Line Vehicle Dynamics [1] Bf Straight Line Vehicle Dynamics.AccEq : Acceleration Equation Straight Line Vehicle Dynamics.BrkFrceEq : Braking Force Equation tf bf constraints {f = (tf * bf) * (1 - tl)} tf constraints {F = m * a} a m F f tl m tl Straight Line Vehicle Dynamics.VelEq : Velocity Equation Straight Line Vehicle Dynamics.DistEq : Distance Equation constraints {a = dv / dt} constraints {v = dx / dt} t t v v a Small boxes represent parameters and bound properties Boxes on left represent item flows Constraint can be in compartment or in attached note x Posn Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 30 Allocations Provides general relationship to map one model element to another Different types of allocation may include: Behavioural (i.e. function to component) Structural (i.e. logical to physical) Hardware to Software …. Explicit allocation of activities to swim lanes (e.g. activity partitions) Use of graphical and/or tabular representations Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 31 Allocation to SW/HW «part» CCUnit : Cruise Control Unit Control bdd [Package] CC System Software «Block» «control» Control «part» «board» CCUmb : CC Motherboard allocatedFrom Error Maintain Speed Operate Cruise Control Power Off Power On Calculate Throttle Position allocatedTo CC Motherboard Control CANIF «part» «multidropBus» CANbus : CAN 1 1 CANIF CCCtrl «Block» Cruise Control System EngDisIF CCDispIF 1 BrakeIF : Digital 1 «ItemFlow» Gear : Analogue SusResIF TransmIF : Analogue «part» «board» CCUio : CC IO Card : EMU Message SetIF IncIF DecIF EMUIF : RS232 : AnalogueMessage Perst 1 «Block» «entity» Persistence allocatedFrom Log Error () Load Acceleration Profile () allocatedTo CC Motherboard Persistence Support «Block» «boundary» Interface allocatedFrom Decrement () 1 Disengage () CCIF Display Speed () EMU Message () Engage () Engage Brake () Increment () Resume () Set Speed () Shift () Suspend () allocatedTo CC Motherboard External Interface «control» cThrottle Controller Alg_Derivative Alg_Integral Alg_Proportional ThrottlePosition SpeedValue NormalisedSpeedValue SetSpeedValue () Reset () SetNormalisedSpeedValue () BrakeEngaged () GearShift () Suspend () Resume () 1 Provides Speed 1 1 1 Sets Throttle Position 1 1 1 Stops Cruise Control External Interface cSpeedMonitor CalibrationFactor RawSpeed SetRawSpeed () 1 CalcNormalisedSpeed () Provides Readings Driver Input 1 1 «boundary» eBrakePedalMonitor «boundary» eEMUIF 1 ThrottlePosition Set_Throttle () «boundary» eCruiseControlPanel 1 SpeedSetPoint Switch_Pressed () Set_Speed () «boundary» eTransmissionMonitor Profiles Persistence Support Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 1 pAccelerationProfile Calibrates 1 pCalibration Manager WheelCircumference 32 Cross Connecting Model Elements 1. Structure 2. Behavior act PreventLockup [Swimlane Diagram] ibd ibd [block] [block] Anti-LockController Anti-LockController [Internal [Internal Block Block Diagram] Diagram] satisfies satisfies «requirement» «requirement» Anti-Lock Anti-Lock Performance Performance ibd [block] Anti-LockController [Internal Block Diagram] d1:TractionDetector d1:TractionDetector «allocate» act PreventLockup [Activity Diagram] :TractionDetector «allocate» :BrakeModulator allocatedFrom allocatedFrom «activity»DetectLos «activity»DetectLos d1:Traction OfTraction Of Traction Detector c1:modulator c1:modulator Interface Interface c1:modulator interface DetectLossOf Traction m1:BrakeModulator m1:BrakeModulator m1:Brake Modulator allocatedFrom allocatedFrom «activity»Modulate «activity»Modulate BrakingForce BrakingForce allocatedFrom allocatedFrom «ObjectNode» «ObjectNode» TractionLoss: TractionLoss: TractionLoss: allocatedTo «connector»c1:modulatorInterface values DutyCycle: Percentage satisfy Modulate Modulate BrakingForce BrakingForce par [constraintBlock] StraightLineVehicleDynamics [Parametric Diagram] req [package] VehicleSpecifications [Requirements Diagram - Braking Requirements] v.chassis.tire. Friction: v.brake.abs.m1. DutyCycle: v.brake.rotor. BrakingForce: v.Weight: par [constraintBlock] StraightLineVehicleDynamics [Parametric Diagram] Vehicle System Specification Braking Subsystem Specification «requirement» StoppingDistance «requirement» Anti-LockPerformance id=“102” text=”The vehicle shall stop from 60 mph within 150 ft on a clean dry surface.” id=”337" text=”Braking subsystem shall prevent wheel lockup under all braking conditions.” SatisfiedBy VerifiedBy «block»Anti-LockController «interaction»MinimumStopp «deriveReqt» ingDistance tf: tl: bf: :BrakingForce Equation [f = (tf*bf)*(1-tl)] c m: f: F: :Accelleration Equation [F = ma] a: a: :DistanceEquation [v = dx/dt] v: v: :VelocityEquation [a = dv/dt] x: «deriveReqt» «deriveReqt» v.Position: Copyright © 1998-2008 ARTiSAN Software Tools Ltd. 3. Requirements All Rights Reserved 4. Parametrics 33 Integration With MARTE Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 34 Summary SysML sponsored by INCOSE/OMG with broad industry and vendor participation SysML provides a general purpose modelling language to support specification, analysis, design and verification of complex systems Subset of UML 2 with extensions 4 Pillars of SysML include modelling of requirements, behaviour, structure, and parametrics OMG SysML Adopted in May 2006 Multiple vendor implementations announced Standards based modelling approach for SE expected to improve communications, tool interoperability, and design quality Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 35 Questions? Copyright © 1998-2008 ARTiSAN Software Tools Ltd. All Rights Reserved 36