Using UML Patterns and Java ObjectOriented Software Engineering

Using UML, Patterns, and Java Object-Oriented Software Engineering Sys. ML: A Modeling Language for Systems of Systems Note to Instructor: The material in this slide set is not contained in the 3 rd edition of the text book It is planned for the 4 th edition.

What is Sys. ML? • 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 – WS 2009/10 2

Relationship between Sys. ML and UML • Sys. ML is defined as an extension of a subset of the Unified Modeling Language (UML) using UML's profile mechanism • Sys. ML is MOF compliant All models (MOF) UML models . NET models (profile) UML 2 Association Classes Sys. ML CORBA models (profile) U 2 TP (profile) Sys. ML models Class Diagrams Use Case Diagrams Requirements Diagrams Parametric Diagrams © 2009 Bernd Bruegge Software Engineering I – WS 2009/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 – WS 2009/10 4

A Sys. ML Model contains several Models Requirements Functional Model Dynamic (Behavior) Model Object (Structure) Model © 2009 Bernd Bruegge Other Models Software Engineering I – WS 2009/10 5

A Sys. ML System Model containing many Models (ABS Example) © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 6

Sys. ML Diagram Frames Activity diagram, block diagram, internal block diagram, sequence diagram © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 7

Sys. ML Diagram Taxonomy Behavio r Requirement s Structur e Parametrics © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 8

Sys. ML Structural Diagrams Requirements Diagrams © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 9

Requirements Diagram Elements: Nodes © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 10

Sys. ML Requirements Diagrams • A Sys. ML 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 – WS 2009/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 • Verify. Method: Analysis, Demonstration, Inspection, Test • Risk: High, medium, low • Status: Proposed, Approved, Rejected, Deferred, Implemented, Mandatory, Obsolete. © 2009 Bernd Bruegge Software Engineering I – WS 2009/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 Sys. ML requirement diagrams. © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 13

Adding a Test Case Node (Visual Paradigm) © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 14

Adding more Requirements Nodes © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 15

Tabular Format of a Requirements Diagram © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 16

© 2009 Bernd Bruegge Software Engineering I – WS 2009/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 – WS 2009/10 18

Requirements Diagram Elements: Associations between Nodes • Requirement Containment Relationship © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 19

Requirements Diagram Elements: Associations between Nodes • Requirement Composition Relationship © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 20

Requirements Diagram Elements: Associations between Nodes • Requirement Composition Relationship © 2009 Bernd Bruegge Software Engineering I – WS 2009/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 Requirement • Satisfy Dependency © 2009 Bernd Bruegge Business Need Example: A use case satisfies a functional requirement. Software Engineering I – WS 2009/10 22

Example of a Copy Dependency (Reuse of Requirements) © 2009 Bernd Bruegge Software Engineering I – WS 2009/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 – WS 2009/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 can be traced to a requirement. Software Engineering I – WS 2009/10 25

Callouts Or: How to avoid “Spaghetti” in Requirements Diagrams � ���� • Trace Dependency Is equivalent to: • Trace. Callout © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 26

Sys. ML Structural Diagrams Package Diagrams © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 27

Package Diagram © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 28

Organizing a Model by Use Cases Tim Weilkiens, Systems engineering with Sys. ML/UML: modeling, analysis, design © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 29

Organizing a Model by Stakeholders Sys. ML allows provide viewpoints for the stakeholders of a system © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 30

Package Diagram: Views and View. Points • 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 Engr. Analysis 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 – WS 2009/10 31

Sys. ML Structural Diagrams Block Diagrams © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 32

Blocks: Basic Structural Elements © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 33

Sys. ML Blocks vs UML Classes • Sys. ML 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 Sys. ML 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 – WS 2009/10 34

Sys. ML Block Diagrams Internal Block Diagram Block Definition Diagram Anti-Lock Controller © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 35

Internal Block Diagram: Blocks, Parts, Ports, Connectors and Flows © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 36

Reference Property vs Part © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 37

Sys. ML 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 – WS 2009/10 38

Port Notation © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 39

Links between Requirements and Design © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 40

Behavioral Diagrams © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 41

Sys. ML Activities • Sys. ML activity diagram notation is the same as in UML • Sys. ML extensions to support • Continous flow modeling • Alignment of activities with Enhanced Functional Flow Block Diagrams (EFFBD) © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 42

Activity Diagram Notation (UML, Sys. ML) © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 43

Sys. ML Activity Diagrams also support Swim Lanes Swimlane Traction. Detector © 2009 Bernd Bruegge Swimlane Brake. Modulator Software Engineering I – WS 2009/10 44

Sys. ML Activities can consists of Subactivities Block Definition Diagram © 2009 Bernd Bruegge Activity Diagram Software Engineering I – WS 2009/10 45

Sys. ML Interactions • Sys. ML sequence diagram notation is also the same as in UML • but Sys. ML does not include timing diagrams and communications diagrams • Sys. ML focuses on black and white box views of interactions with sequence diagrams. © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 46

Black Box Sequence Diagram (UML, Sys. ML) © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 47

Start. Vehicle: Black Box Sequence Diagram © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 48

Start. Vehicle: White Box Sequence Diagram © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 49

Sys. ML State Machines • The same notation as in UML © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 50

Sys. ML Use Cases • Sys. ML use cases: Also no change from UML © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 51

Allocations © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 52

Allocations © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 53

Different Representations for Allocations © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 54
![Additional Information [INCOSE 2004] • Systems Engineering Vision 2020, International Council for Systems Engineering, Additional Information [INCOSE 2004] • Systems Engineering Vision 2020, International Council for Systems Engineering,](http://slidetodoc.com/presentation_image_h2/1ebe813cf6556b0dcd85139fa9d97aea/image-55.jpg)
Additional Information [INCOSE 2004] • Systems Engineering Vision 2020, International Council for Systems Engineering, Technical Report INCOSE-TP-2004 -02, September 2004 • http: //www. incose. org/Products. Pubs/pdf/SEVision 2020_20071003_v 2_03. pdf [Sys. ML Tutorial 2009] Sanford Friedenthal, Alan Moore, Rick Steiner • OMG Systems Modeling Language Tutorial, • www. omgsysml. org/Sys. ML-Tutorial-Baseline-to-INCOSE-060524 -low_res. pdf • This lecture is based on this tutorial Sys. ML 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 Sys. ML • 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 Sys. ML © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 55

Backup Slides © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 56

Stereotypes and Model Libraries © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 57

Stereotypes © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 58

Applying a Profile and Importing a Model Library © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 59

Sys. ML 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: tire. Pressure: psi=30 • Distributed value: <<uniform>> {min=28, max = 32} tire. Pressure: psi © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 60

Sys. ML Parametric Diagrams © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 61

A Sys. ML Model allows to include Physical Laws © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 62

The Physical Laws can be used to constrain Value Properties in the Sys. ML Model © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 63

Allocation of Hardware to Software (-> Lecture on System Design, Topic Hardware-Software Mapping) © 2009 Bernd Bruegge Software Engineering I – WS 2009/10 64
- Slides: 64