A Practical Guide to SysML

The Systems Modeling Language


  • Sanford Friedenthal, MBSE Consultant
  • Alan Moore, Architecture Modeling Specialist, The MathWorks, Ltd.
  • Rick Steiner, Independent Consultant, San Diego, California

Systems engineers must understand how all the parts of a digital system work together, including hardware AND software. SysML is the first design language to cover both hardware and software, allowing engineers to consider how all the parts of a system will successfully interact, from the very beginning of a project. This can prevent huge problems and delays down the line. Therefore, SysML use is becoming a widespread phenomenon, and many companies, especially in the defense, automotive, aerospace, medical device and telecommunications industries, are already using SysML, or are planning to switch over in the near future. Until now, little consolidated information has been available on the market regarding SysML. However, this book changes all that! It provides the hundreds of thousands of new users with a comprehensive guide to SysML, including a full description of the language itself, detailed instructions on how to implement it, exercises to help readers gain practical experience working with SysML, and extensive, real-world examples of actual successful projects, demonstrating all the benefits SysML can provide.
View full description


Systems Engineers and Software Engineers, Designers and Programmers. Particularly the intersection between these two groups, often termed "Systems Software Engineers"


Book information

  • Published: July 2008
  • ISBN: 978-0-12-374379-4

Table of Contents

Part I Introduction
1 Systems Engineering Overview
1.1 Motivation for Systems Engineering
1.2 The Systems Engineering Process
1.3 Typical Application of the Systems Engineering Process
1.4 Multi-Disciplinary Systems Engineering Team
1.5 Codifying Systems Engineering Practice through Standards
1.6 Summary
1.7 Questions
2 Model-Based Systems Engineering
2.1 Contrasting the Document-Based and Model-Based Approach
2.2 Modeling Principles
2.3 Summary
2.4 Questions
3 SysML Language Overview
3.1 SysML Purpose and Key Features
3.2 SysML Diagrams Overview
3.3 Using SysML in Support of MBSE
3.4 A Simple Example Using SysML for an Automobile Design
3.5 Summary
3.6 Questions
Part II Language Description
4. SysML Language Architecture
4.1 The OMG SysML Language Specification
4.2 The Architecture of the SysML Language
4.3 SysML Diagrams
4.4 The Surveillance System Case Study
4.5 Chapter Organization for Part II
4.6 Questions
5 Organizing the Model with Packages
5.1 Overview
5.2 The Package Diagram
5.3 Defining Packages Using a Package Diagram
5.4 Organizing a Package Hierarchy
5.5 Showing Packageable Elements on a Package Diagram
5.6 Packages as Namespaces
5.7 Importing Model Elements into Packages
5.8 Showing Dependencies Between Packageable Elements
5.9 Specifying Views and Viewpoints
5.10 Summary
5.11 Questions
6 Modeling Structure with Blocks
6.1 Overview
6.2 Modeling Blocks on a Block Definition Diagram
6.3 Modeling the Structure and Characteristics of Blocks Using Properties
6.4 Modeling Block Interfaces Using Ports and Flows
6.5 Modeling Block Behavior
6.6 Modeling Classification Hierarchies Using Generalization
6.7 Summary
6.8 Questions
7 Modeling Constraints with Parametrics
7.1 Overview
7.2 Using Constraint Expressions to Represent System Constraints
7.3 Encapsulating Constraints in Constraint Blocks to Enable Reuse
7.4 Using Composition to Build Complex Constraint Blocks
7.5 Using a Parametric Diagram to Bind Parameters of Constraint Blocks
7.6 Constraining Value Properties of a Block
7.7 Capturing Values in Block Configurations
7.8 Constraining Time-Dependent Properties to Facilitate Time-Based Analysis
7.9 Using Constraint Blocks to Constrain Item Flows
7.10 Describing an Analysis Context
7.11 Modeling Evaluation of Alternatives and Trade Studies
7.12 Summary
7.13 Questions
8 Modeling Flow-Based Behavior with Activities
8.1 Overview
8.2 The Activity Diagram
8.3 Actions—The Foundation of Activities
8.4 The Basics of Modeling Activities
8.5 Using Object Flows to Describe the Flow of Items Between Actions
8.6 Using Control Flows to Specify the Order of Action Execution
8.7 Handling Signals and Other Events
8.8 Advanced Activity Modeling
8.9 Relating Activities to Blocks and Other Behaviors
8.10 Modeling Activity Hierarchies using Block Definition Diagrams
8.11 Enhanced Functional Flow Block Diagram (EFFBD)
8.12 Executing Activities
8.13 Summary
8.14 Questions
9 Modeling Message-Based Behavior with Interactions
9.1. Overview
9.2. The Sequence Diagram
9.3. The Context for Interactions
9.4. Using Lifelines to Represent Participants in an Interaction
9.5. Exchanging Messages Between Lifelines
9.6. Representing Time on a Sequence Diagram
9.7. Describing Complex Scenarios Using Combined Fragments
9.8. Using Interaction References to Structure Complex Interactions
9.9. Decomposing Lifelines to Represent Internal Behavior
9.10. Summary
9.11. Questions
10 Modeling Event-Based Behavior with State Machines
10.1 Overview
10.2 State Machine Diagram
10.3 Specifying States in a State Machine
10.4 Transitioning Between States
10.5 State Machines and Operation Calls
10.6 State Hierarchies
10.7 Contrasting Discrete versus Continuous States
10.8 Summary
10.9 Questions
11 Modeling Functionality with Use Cases
11.1 Overview
11.2 Use Case Diagram
11.3 Using Actors to Represent the Users of a System
11.4 Using Use Cases to Describe System Functionality
11.5 Elaborating Use Cases with Behaviors
11.6 Summary
11.7 Questions
12. Modeling Text-Based Requirements and Their Relationship to Design
12.1 Overview
12.2 Requirement Diagrams
12.3 Representing a Text Requirement in the Model
12.4 Types of Requirements Relationships
12.5 Representing Cross-Cutting Relationships in SysML Diagrams
12.6 Depicting Rationale for Requirement Relationships
12.7 Depicting Requirements and Their Relationships in Tables
12.8 Modeling Requirement Hierarchies in Packages
12.9 Modeling a Requirements Containment Hierarchy
12.10 Modeling Requirement Derivation
12.11 Asserting a Requirement Is Satisfied
12.12 Verifying that a Requirement Is Satisfied
12.13 Reducing Requirements Ambiguity Using the Refine Relationship
12.14 Using the General-Purpose Trace Relationship
12.15 Summary
12.16 Questions
13. Modeling Cross-Cutting Relationships with Allocations
13.1 Overview
13.2 Allocation Relationship
13.3 Allocation Notation
13.4 Types of Allocation
13.5 Planning for Reuse: Specifying Definition and Usage in Allocation
13.6 Allocating Behavior to Structure Using Functional Allocation
13.7 Connecting Functional Flow with Structural Flow Using Functional Flow Allocation
13.8 Modeling Allocation Between Independent Structural Hierarchies
13.9 Modeling Structural Flow Allocation
13.10 Evaluating Allocation Across a User Model
13.11 Taking Allocation to the Next Step
13.12 Summary
13.13 Questions
14 Customizing SysML for Specific Domains
14.1 Overview
14.2 Defining Model Libraries to Provide Reusable Constructs
14.3 Defining Stereotypes to Extend Existing SysML Concepts
14.4 Extending the SysML Language Using Profiles
14.5 Applying Profiles to User Models in Order to Use Stereotypes
14.6 Applying Stereotypes When Building a Model
14.7 Summary
14.8 Questions
PartIII Modeling Examples
15 Water Distiller Example Using Functional Analysis
15.1 Stating the Problem
15.2 Defining the Model-Based Systems Engineering Approach
15.3 Organizing the Model
15.4 Establishing Requirements
15.5 Modeling Behavior
15.6 Modeling Structure
15.7 Analyzing Peformance
15.8 Modifying the Original Design
15.9 Summary
15.10 Questions
16. Residential Security System Example Using the Object-Oriented Systems Engineering Method (OOSEM)
16.1 Method Overview
16.2 Residential Security Example Overview and Project Setup
16.3 Applying the Method to Specify and Design the System
16.4 Summary
16.5 Questions
Part IV Transitioning to Model-Based Systems Engineering
17. Integrating SysML into a Systems Development Environment
17.1 Understanding System Model’s Role in a Systems Development Environment
17.2 Integrating the System Modeling Tool with Other Tools
17.3 Data Exchange Mechanisms in an Integrated Systems Development Environment
17.4 Selecting a System Modeling Tool
17.5 Summary
17.6 Questions
18. Deploying SysML into an Organization
18.1 Improvement Process
18.2 Summary
18.3 Questions