Using UML, Patterns, and Java Object-Oriented Software Engineering SysML: A Modeling Language for Systems of Systems Note to Instructor: The material in this slide set is not contained in the 3rd edition of the text book It is planned for the 4th edition. What is SysML? • A graphical modeling language developed by the OMG • A UML profile that presents a subset of UML 2 with extensions • A modeling language for modeling “systems of systems” • Supports the development of complex systems consisting of several systems • Model exchange via XMI • Designed for model-based systems engineering (MBSE) © 2009 Bernd Bruegge Software Engineering I – WS2009/10 2 Relationship between SysML and UML • SysML is defined as an extension of a subset of the Unified Modeling Language (UML) using UML's profile mechanism • SysML is MOF compliant All models (MOF) UML models .NET models (profile) UML 2 Association Classes SysML CORBA models (profile) U2TP (profile) SysML models Class Diagrams Use Case Diagrams Requirements Diagrams Parametric Diagrams © 2009 Bernd Bruegge Software Engineering I – WS2009/10 3 Model Based Systems Engineering (MBSE) • Model-based systems engineering (MBSE) • The formalized application of modeling to support system requirements, design, analysis, verification, validation activities[INCOSE 2004] • Advantages • Improved communications and knowledge management • Impact analysis of requirements and design changes • More complete representation • A system engineering model contains several models addressing all aspects of the participating systems, hardware as well as software: • • • • • • Functional model Behavoral model (Dynamic model) Structure model (Object model) Cost model Organizational model Development environment, target environment © 2009 Bernd Bruegge Software Engineering I – WS2009/10 4 A SysML Model contains several Models Requirements Functional Model Dynamic (Behavior) Model Object (Structure) Model © 2009 Bernd Bruegge Other Models Software Engineering I – WS2009/10 5 A SysML System Model containing many Models (ABS Example) © 2009 Bernd Bruegge Software Engineering I – WS2009/10 6 SysML Diagram Frames Activity diagram, block diagram, internal block diagram, sequence diagram © 2009 Bernd Bruegge Software Engineering I – WS2009/10 7 SysML Diagram Taxonomy Behavio r Requirement s Structur e Parametrics © 2009 Bernd Bruegge Software Engineering I – WS2009/10 8 SysML Structural Diagrams Requirements Diagrams © 2009 Bernd Bruegge Software Engineering I – WS2009/10 9 Requirements Diagram Elements: Nodes © 2009 Bernd Bruegge Software Engineering I – WS2009/10 10 SysML Requirements Diagrams • A SysML requirements diagram depicts the requirements in graphical, tabular or tree structure format • Example: A Requirements Diagram in Visual Paradigm © 2009 Bernd Bruegge Software Engineering I – WS2009/10 11 Requirement Node (CASE tool:Visual Paradigm) • A requirement node is a stereotype of a UML Class • It has several attributes • Text: the description of the requirement in natural language • Id: Allows to number the requirement • Source: Location, Stakeholder • Kind: to categorize the requirement into Functional, Performance, Interface • VerifyMethod: Analysis, Demonstration, Inspection, Test • Risk: High, medium, low • Status: Proposed, Approved, Rejected, Deferred, Implemented, Mandatory, Obsolete. © 2009 Bernd Bruegge Software Engineering I – WS2009/10 12 Visual Paradigm • University License for Visual Paradigm Standard Edition • Visual Paradigm Tutorials • http://www.visual-paradigm.com/product/vpuml/tutorials.jsp • Requirements Modeling with Visual Paradigm • http://www.visualparadigm.com/product/vpuml/provides/reqmodeling.jsp • On this URL you also find a tutorial movie about managing SysML requirement diagrams. © 2009 Bernd Bruegge Software Engineering I – WS2009/10 13 Adding a Test Case Node (Visual Paradigm) © 2009 Bernd Bruegge Software Engineering I – WS2009/10 14 Adding more Requirements Nodes © 2009 Bernd Bruegge Software Engineering I – WS2009/10 15 Tabular Format of a Requirements Diagram © 2009 Bernd Bruegge Software Engineering I – WS2009/10 16 © 2009 Bernd Bruegge Software Engineering I – WS2009/10 17 Dependency Relationships: Linking of Requirements • Requirements can be linked to other requirements • Containment: The requirement contains several sub-requirements • Copy: One requirement is a read-only version of another requirement • Derive: A requirement is derived from another requirement • Requirement elements can also be linked to other model elements (in analysis and design models) • Refine: A model element refines a requirement • Verify: Another model element validates a requirement • Satisfy: Another model element satisfies a requirement • • Linking to Use Cases Linking to Class diagrams • Trace: Any model element that realizes a nonfunctional (performance) requirement. © 2009 Bernd Bruegge Software Engineering I – WS2009/10 18 Requirements Diagram Elements: Associations between Nodes • Requirement Containment Relationship © 2009 Bernd Bruegge Software Engineering I – WS2009/10 19 Requirements Diagram Elements: Associations between Nodes • Requirement Composition Relationship © 2009 Bernd Bruegge Software Engineering I – WS2009/10 20 Requirements Diagram Elements: Associations between Nodes • Requirement Composition Relationship © 2009 Bernd Bruegge Software Engineering I – WS2009/10 21 Requirements Diagram Elements: Associations between Nodes • Copy Dependency • Derive Dependency The text of the Slave requirement is a readonly copy of the text of the Master requirement A functional requirement derived from a business need or a test requirement is derived from a functional requirement Functional Requiremen t • Satisfy Dependency © 2009 Bernd Bruegge Business Need Example: A use case satisfies a functional requirement. Software Engineering I – WS2009/10 22 Example of a Copy Dependency (Reuse of Requirements) © 2009 Bernd Bruegge Software Engineering I – WS2009/10 23 Example of a Derive Dependency • Based on the requirement specifications from the National Highway Traffic Safety Administration (NHTSA.) • Excerpt of the original requirement text used to create the model: © 2009 Bernd Bruegge Software Engineering I – WS2009/10 24 Requirements Diagram Elements: Associations between Nodes • Verify Dependency • Refine Dependency • Trace Dependency © 2009 Bernd Bruegge Example: A test case validates a functional requirement Example: A use case refines a requirement Example: A use case can be traced to a requirement. Software Engineering I – WS2009/10 25 Callouts Or: How to avoid “Spaghetti” in Requirements Diagrams • Trace Dependency Is equivalent to: • TraceCallout © 2009 Bernd Bruegge Software Engineering I – WS2009/10 26 SysML Structural Diagrams Package Diagrams © 2009 Bernd Bruegge Software Engineering I – WS2009/10 27 Package Diagram © 2009 Bernd Bruegge Software Engineering I – WS2009/10 28 Organizing a Model by Use Cases Tim Weilkiens, Systems engineering with SysML/UML: modeling, analysis, design © 2009 Bernd Bruegge Software Engineering I – WS2009/10 29 Organizing a Model by Stakeholders SysML allows provide viewpoints for the stakeholders of a system © 2009 Bernd Bruegge Software Engineering I – WS2009/10 30 Package Diagram: Views and ViewPoints • A model usually focuses on one abstraction of the system (analysis, design, cost) • A view provides a perspective that spans multiple abstractions. It includes (subgraphs) of other models • The EngrAnalysis view, for example, includes the organization of the enterprise, the system model, logical design and allocated design • The viewpoint lists the stakeholders and purpose of the view. © 2009 Bernd Bruegge Software Engineering I – WS2009/10 31 SysML Structural Diagrams Block Diagrams © 2009 Bernd Bruegge Software Engineering I – WS2009/10 32 Blocks: Basic Structural Elements © 2009 Bernd Bruegge Software Engineering I – WS2009/10 33 SysML Blocks vs UML Classes • SysML Blocks are based on UML classes • However the do not allow association classes • They distinguish between value properties from part properties • They allow nested connector ends • There are two types of SysML block diagrams • Block definition diagrams (bdd) describing the relationship between blocks (composition, association,…) • Internal block diagrams (ibd) describing the internal structure of a single block in terms of its properties and connectors • Behavior (activity diagrams, use cases) can be allocated to both types of block diagrams. © 2009 Bernd Bruegge Software Engineering I – WS2009/10 34 SysML Block Diagrams Internal Block Diagram Block Definition Diagram Anti-Lock Controller © 2009 Bernd Bruegge Software Engineering I – WS2009/10 35 Internal Block Diagram: Blocks, Parts, Ports, Connectors and Flows © 2009 Bernd Bruegge Software Engineering I – WS2009/10 36 Reference Property vs Part © 2009 Bernd Bruegge Software Engineering I – WS2009/10 37 SysML Ports • 2 Port Types • Standard Port (also available in UML) • Specifies a set of operations and/or signals • Typed by a UML interface • Flow Port • Specifies what can flow in or out of a block/part • Typed by a flow specification. © 2009 Bernd Bruegge Software Engineering I – WS2009/10 38 Port Notation © 2009 Bernd Bruegge Software Engineering I – WS2009/10 39 Links between Requirements and Design © 2009 Bernd Bruegge Software Engineering I – WS2009/10 40 Behavioral Diagrams © 2009 Bernd Bruegge Software Engineering I – WS2009/10 41 SysML Activities • SysML activity diagram notation is the same as in UML • SysML extensions to support • Continous flow modeling • Alignment of activities with Enhanced Functional Flow Block Diagrams (EFFBD) © 2009 Bernd Bruegge Software Engineering I – WS2009/10 42 Activity Diagram Notation (UML, SysML) © 2009 Bernd Bruegge Software Engineering I – WS2009/10 43 SysML Activity Diagrams also support Swim Lanes Swimlane TractionDetector © 2009 Bernd Bruegge Swimlane BrakeModulator Software Engineering I – WS2009/10 44 SysML Activities can consists of Subactivities Block Definition Diagram © 2009 Bernd Bruegge Activity Diagram Software Engineering I – WS2009/10 45 SysML Interactions • SysML sequence diagram notation is also the same as in UML • but SysML does not include timing diagrams and communications diagrams • SysML focuses on black and white box views of interactions with sequence diagrams. © 2009 Bernd Bruegge Software Engineering I – WS2009/10 46 Black Box Sequence Diagram (UML, SysML) © 2009 Bernd Bruegge Software Engineering I – WS2009/10 47 StartVehicle: Black Box Sequence Diagram © 2009 Bernd Bruegge Software Engineering I – WS2009/10 48 StartVehicle: White Box Sequence Diagram © 2009 Bernd Bruegge Software Engineering I – WS2009/10 49 SysML State Machines • The same notation as in UML © 2009 Bernd Bruegge Software Engineering I – WS2009/10 50 SysML Use Cases • SysML use cases: Also no change from UML © 2009 Bernd Bruegge Software Engineering I – WS2009/10 51 Allocations © 2009 Bernd Bruegge Software Engineering I – WS2009/10 52 Allocations © 2009 Bernd Bruegge Software Engineering I – WS2009/10 53 Different Representations for Allocations © 2009 Bernd Bruegge Software Engineering I – WS2009/10 54 Additional Information [INCOSE 2004] • Systems Engineering Vision 2020, International Council for Systems Engineering, Technical Report INCOSE-TP-2004-004-02, September 2004 • http://www.incose.org/ProductsPubs/pdf/SEVision2020_20071003_v2_03.pdf [SysML Tutorial 2009] Sanford Friedenthal, Alan Moore, Rick Steiner • OMG Systems Modeling Language Tutorial, • www.omgsysml.org/SysML-Tutorial-Baseline-to-INCOSE-060524-low_res. pdf • This lecture is based on this tutorial SysML Requirements Modeling with Visual Paradigm • http://www.visual-paradigm.com/product/vpuml/provides/reqmodeling.jsp • Here you also find a movie about requirements diagrams • Visual Paradigm Standard Edition for UML and SysML • Download Link: http://wwwbruegge.in.tum.de/static/vpapp/ • Unlimited Educational License, Key will be provided in the SE 1 forum • Installed on all the computers at the chair for applied software engineering • Unicase (Research Tool) • http://unicase.org • Open source. Masterthesis offered: Feature Modeling, a modeling language replacing SysML © 2009 Bernd Bruegge Software Engineering I – WS2009/10 55 Backup Slides © 2009 Bernd Bruegge Software Engineering I – WS2009/10 56 Stereotypes and Model Libraries © 2009 Bernd Bruegge Software Engineering I – WS2009/10 57 Stereotypes © 2009 Bernd Bruegge Software Engineering I – WS2009/10 58 Applying a Profile and Importing a Model Library © 2009 Bernd Bruegge Software Engineering I – WS2009/10 59 SysML Block Property Types • Part Property • A Part is owned by a block (composition) • Example: Right-Front Wheel is part of the Vehicle block • The part stops existing, when the block stops existing • Reference Property • A part is not owned by the enclosing block • Example: An interface between two parts • Value Property • Allows to define a value with units, dimensions and even probability distribution • Examples: • Non-distributed value: tirePressure:psi=30 • Distributed value: <<uniform>> {min=28, max = 32} tirePressure:psi © 2009 Bernd Bruegge Software Engineering I – WS2009/10 60 SysML Parametric Diagrams © 2009 Bernd Bruegge Software Engineering I – WS2009/10 61 A SysML Model allows to include Physical Laws © 2009 Bernd Bruegge Software Engineering I – WS2009/10 62 The Physical Laws can be used to constrain Value Properties in the SysML Model © 2009 Bernd Bruegge Software Engineering I – WS2009/10 63 Allocation of Hardware to Software (-> Lecture on System Design, Topic Hardware-Software Mapping) © 2009 Bernd Bruegge Software Engineering I – WS2009/10 64