If you have constructive recommendations to correct, clarify, or otherwise improve these or any other SysML FAQs, please contact us.
Systems Modeling Language (SysML): SysML is a general-purpose system architecture modeling language for Systems Engineering applications.
The SysML was originally created by the SysML Partners' SysML Open Source Specification Project in 2003. The SysML was adapted and adopted by the Object Management Group (OMG) as OMG SysML in 2006. For more information about the current version of OMG SysML, see the SysML FAQ: What is the current version of SysML?.
The SysML is composed of nine (9) diagram types and Allocation Tables for mapping language elements across diagram types:
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Requirement diagram (req) | Static Structure [Declarative] |
N/A | Requirements Analysis | |||||||
Use Case diagram (uc) | Behavior * [Non-Simulatable] |
Use Case | Requirements Analysis | |||||||
Activity diagram (act) | Dynamic Behavior [Simulatable] |
Activity [minor mods] |
System Analysis, Functional Analysis, System Design |
|||||||
Sequence diagram (sd) | Dynamic Behavior [Simulatable] |
Sequence | System Design | |||||||
State Machine diagram (stm) | Dynamic Behavior [Simulatable] |
State Machine | System Analysis, System Design |
|||||||
Block Definition Diagram (bdd) | Static Structure [Black Box Definition] |
Class [moderate mods] |
System Analysis, System Design |
|||||||
Internal Block Diagram (ibd) | Static Structure [White Box Usage] |
Composite Structure [moderate mods] |
System Analysis, System Design |
|||||||
Parametric Diagram (par) | Static Structure [White Box Usage] |
N/A | System Analysis, System Design |
|||||||
Package diagram (pkg) | Static Structure [Grouping] |
Package [minor mods] |
All SDLC phases | |||||||
Allocation Table | N/A [Relationship Matrix] |
N/A | All SDLC phases |
†: Dynamic Simulation (a.k.a. Dynamic System Simulation) refers to the capability of a computer program to execute the time-varying behavior of a system of interest. In general, with the exception of Use Case diagrams, SysML and UML 2 Behavior diagrams are potentially capable of Dynamic System Simulation.
‡: Mathematical Modeling & Simulation (a.k.a. Mathematical ModSim, Mathematical M&S, Parametric Simulation) refers to the capability of a computer program to execute the a mathematical model of the behavior of a system of interest, where the model is defined as a set of mathematical equations. When properly defined and applied Parametric diagrams are capable of Mathematical ModSim; no other SysML or UML 2 diagrams are capable of this.
*: Although Use Case diagrams are generally classified as Behavior diagrams by both the OMG SysML and UML 2 specifications their Behavioral semantics are ambiguous and incomplete. Whereas Activity, Sequence and State Machine diagrams are Turing Complete, and their dynamic behavior can be simulated or executed, Use Cases diagrams are not Turing Complete and are not simulatable.
The SysML is composed of nine (9) diagram types and Allocation Tables for mapping language elements across diagram types:
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Requirement diagram (req) | Static Structure [Declarative] |
N/A | Requirements Analysis | |||||||
Use Case diagram (uc) | Behavior * [Non-Simulatable] |
Use Case | Requirements Analysis | |||||||
Activity diagram (act) | Dynamic Behavior [Simulatable] |
Activity [minor mods] |
System Analysis, Functional Analysis, System Design |
|||||||
Sequence diagram (sd) | Dynamic Behavior [Simulatable] |
Sequence | System Design | |||||||
State Machine diagram (stm) | Dynamic Behavior [Simulatable] |
State Machine | System Analysis, System Design |
|||||||
Block Definition Diagram (bdd) | Static Structure [Black Box Definition] |
Class [moderate mods] |
System Analysis, System Design |
|||||||
Internal Block Diagram (ibd) | Static Structure [White Box Usage] |
Composite Structure [moderate mods] |
System Analysis, System Design |
|||||||
Parametric Diagram (par) | Static Structure [White Box Usage] |
N/A | System Analysis, System Design |
|||||||
Package diagram (pkg) | Static Structure [Grouping] |
Package [minor mods] |
All SDLC phases | |||||||
Allocation Table | N/A [Relationship Matrix] |
N/A | All SDLC phases |
†: Dynamic Simulation (a.k.a. Dynamic System Simulation) refers to the capability of a computer program to execute the time-varying behavior of a system of interest. In general, with the exception of Use Case diagrams, SysML and UML 2 Behavior diagrams are potentially capable of Dynamic System Simulation.
‡: Mathematical Modeling & Simulation (a.k.a. Mathematical ModSim, Mathematical M&S, Parametric Simulation) refers to the capability of a computer program to execute the a mathematical model of the behavior of a system of interest, where the model is defined as a set of mathematical equations. When properly defined and applied Parametric diagrams are capable of Mathematical ModSim; no other SysML or UML 2 diagrams are capable of this.
*: Although Use Case diagrams are generally classified as Behavior diagrams by both the OMG SysML and UML 2 specifications their Behavioral semantics are ambiguous and incomplete. Whereas Activity, Sequence and State Machine diagrams are Turing Complete, and their dynamic behavior can be simulated or executed, Use Cases diagrams are not Turing Complete and are not simulatable.
The SysML is composed of nine (9) diagram types and Allocation Tables for mapping language elements across diagram types:
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Requirement diagram (req) | Static Structure [Declarative] |
N/A | Requirements Analysis | |||||||
Use Case diagram (uc) | Behavior * [Non-Simulatable] |
Use Case | Requirements Analysis | |||||||
Activity diagram (act) | Dynamic Behavior [Simulatable] |
Activity [minor mods] |
System Analysis, Functional Analysis, System Design |
|||||||
Sequence diagram (sd) | Dynamic Behavior [Simulatable] |
Sequence | System Design | |||||||
State Machine diagram (stm) | Dynamic Behavior [Simulatable] |
State Machine | System Analysis, System Design |
|||||||
Block Definition Diagram (bdd) | Static Structure [Black Box Definition] |
Class [moderate mods] |
System Analysis, System Design |
|||||||
Internal Block Diagram (ibd) | Static Structure [White Box Usage] |
Composite Structure [moderate mods] |
System Analysis, System Design |
|||||||
Parametric Diagram (par) | Static Structure [White Box Usage] |
N/A | System Analysis, System Design |
|||||||
Package diagram (pkg) | Static Structure [Grouping] |
Package [minor mods] |
All SDLC phases | |||||||
Allocation Table | N/A [Relationship Matrix] |
N/A | All SDLC phases |
†: Dynamic Simulation (a.k.a. Dynamic System Simulation) refers to the capability of a computer program to execute the time-varying behavior of a system of interest. In general, with the exception of Use Case diagrams, SysML and UML 2 Behavior diagrams are potentially capable of Dynamic System Simulation.
‡: Mathematical Modeling & Simulation (a.k.a. Mathematical ModSim, Mathematical M&S, Parametric Simulation) refers to the capability of a computer program to execute the a mathematical model of the behavior of a system of interest, where the model is defined as a set of mathematical equations. When properly defined and applied Parametric diagrams are capable of Mathematical ModSim; no other SysML or UML 2 diagrams are capable of this.
*: Although Use Case diagrams are generally classified as Behavior diagrams by both the OMG SysML and UML 2 specifications their Behavioral semantics are ambiguous and incomplete. Whereas Activity, Sequence and State Machine diagrams are Turing Complete, and their dynamic behavior can be simulated or executed, Use Cases diagrams are not Turing Complete and are not simulatable.
The Systems Modeling Language (SysML) was developed by the SysML Partners, an informal group of Systems Engineering and software modeling tool experts led by Cris Kobryn in 2003. Their goal was to create a profile (dialect) of Unified Modeling Language v2.0 (UML 2) suitable for Systems Engineering applications.
Kobryn, who had successfully led the UML v1.x and UML v2.0 language design teams, was asked by David Oliver and Sanford Friedenthal of INCOSE in 2003 to lead their joint effort in response to the Object Management Group's UML for Systems Engineering RFP issued in March 2003. As the SysML Partners' Chair, Kobryn named the language "SysML" (short for "Systems Modeling Language"), designed the original SysML logo, and organized the SysML Language Design team as an open source specification project. Friedenthal, Chair of the OMG Systems Engineering Special Interest Group, held the position of Deputy Chair of the SysML Partners during the project's initial stages.
David Oliver, Co-Chair of the INCOSE Model Driven Design Working Group and INCOSE Fellow, advised the SysML Partners throughout the project.
The SysML Partners released the SysML v0.9 draft specification in January 2005. In August 2005, Friedenthal and some other original SysML Partners departed and formed a rival SysML Submission Team (SST). In November, the SysML Partners published the SysML v1.0 Alpha specification. This version was ultimately adopted by the OMG as OMG SysML v1.0 (Draft) in April 2006.
For further details about the history of the SysML, see the SysML Partners section of the SysML.org web.
SysML Partners: The original group of software companies that created a version of UML for systems engineering called SysML, which picked up steam in 2006. SD Times 100 Modeling 2007 Award
If you are a Systems Engineer and want to improve the precision and efficiency of your communications with fellow Systems Engineers and other system and business stakeholders (e.g. Clients, Software Engineers, Electrical Engineers, Mechanical Engineers), then you should consider using a system Architecture Modeling Language (a.k.a. Architecture Description Language) standard as a lingua franca (common language) for your projects
The Systems Modeling Language (SysML) has emerged as the de facto standard system architecture modeling language for Model-Based Systems Engineering (MBSE) applications. SysML is a dialect of UML 2, which extends the Unified Modeling Language (UML) standard for software-intensive applications so that it can be successfully applied to Systems Engineering applications.
Here's a list of reasons why Systems Engineers may want to use SysML and a Model-Based Systems Engineering approach for their mission critical work:
Of course, like any technology SysML can be both properly applied and abused. Compare and contrast the difference between "SysML-as-Pretty-Pictures" and "SysML-as-System-Architecture-Blueprint" usage modes in the SysML FAQ: How should SysML be applied to an MBSE project? How is SysML commonly abused?.
The SysML is composed of nine (9) diagram types and Allocation Tables for mapping language elements across diagram types:
The SysML Diagram Taxonomy comparison table below explains the similaries and differences among the various SysML diagram types.
The SysML is composed of nine (9) diagram types and Allocation Tables for mapping language elements across diagram types:
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Requirement diagram (req) | Static Structure [Declarative] |
N/A | Requirements Analysis | |||||||
Use Case diagram (uc) | Behavior * [Non-Simulatable] |
Use Case | Requirements Analysis | |||||||
Activity diagram (act) | Dynamic Behavior [Simulatable] |
Activity [minor mods] |
System Analysis, Functional Analysis, System Design |
|||||||
Sequence diagram (sd) | Dynamic Behavior [Simulatable] |
Sequence | System Design | |||||||
State Machine diagram (stm) | Dynamic Behavior [Simulatable] |
State Machine | System Analysis, System Design |
|||||||
Block Definition Diagram (bdd) | Static Structure [Black Box Definition] |
Class [moderate mods] |
System Analysis, System Design |
|||||||
Internal Block Diagram (ibd) | Static Structure [White Box Usage] |
Composite Structure [moderate mods] |
System Analysis, System Design |
|||||||
Parametric Diagram (par) | Static Structure [White Box Usage] |
N/A | System Analysis, System Design |
|||||||
Package diagram (pkg) | Static Structure [Grouping] |
Package [minor mods] |
All SDLC phases | |||||||
Allocation Table | N/A [Relationship Matrix] |
N/A | All SDLC phases |
†: Dynamic Simulation (a.k.a. Dynamic System Simulation) refers to the capability of a computer program to execute the time-varying behavior of a system of interest. In general, with the exception of Use Case diagrams, SysML and UML 2 Behavior diagrams are potentially capable of Dynamic System Simulation.
‡: Mathematical Modeling & Simulation (a.k.a. Mathematical ModSim, Mathematical M&S, Parametric Simulation) refers to the capability of a computer program to execute the a mathematical model of the behavior of a system of interest, where the model is defined as a set of mathematical equations. When properly defined and applied Parametric diagrams are capable of Mathematical ModSim; no other SysML or UML 2 diagrams are capable of this.
*: Although Use Case diagrams are generally classified as Behavior diagrams by both the OMG SysML and UML 2 specifications their Behavioral semantics are ambiguous and incomplete. Whereas Activity, Sequence and State Machine diagrams are Turing Complete, and their dynamic behavior can be simulated or executed, Use Cases diagrams are not Turing Complete and are not simulatable.
The SysML is composed of nine (9) diagram types and Allocation Tables for mapping language elements across diagram types:
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Requirement diagram (req) | Static Structure [Declarative] |
N/A | Requirements Analysis | |||||||
Use Case diagram (uc) | Behavior * [Non-Simulatable] |
Use Case | Requirements Analysis | |||||||
Activity diagram (act) | Dynamic Behavior [Simulatable] |
Activity [minor mods] |
System Analysis, Functional Analysis, System Design |
|||||||
Sequence diagram (sd) | Dynamic Behavior [Simulatable] |
Sequence | System Design | |||||||
State Machine diagram (stm) | Dynamic Behavior [Simulatable] |
State Machine | System Analysis, System Design |
|||||||
Block Definition Diagram (bdd) | Static Structure [Black Box Definition] |
Class [moderate mods] |
System Analysis, System Design |
|||||||
Internal Block Diagram (ibd) | Static Structure [White Box Usage] |
Composite Structure [moderate mods] |
System Analysis, System Design |
|||||||
Parametric Diagram (par) | Static Structure [White Box Usage] |
N/A | System Analysis, System Design |
|||||||
Package diagram (pkg) | Static Structure [Grouping] |
Package [minor mods] |
All SDLC phases | |||||||
Allocation Table | N/A [Relationship Matrix] |
N/A | All SDLC phases |
†: Dynamic Simulation (a.k.a. Dynamic System Simulation) refers to the capability of a computer program to execute the time-varying behavior of a system of interest. In general, with the exception of Use Case diagrams, SysML and UML 2 Behavior diagrams are potentially capable of Dynamic System Simulation.
‡: Mathematical Modeling & Simulation (a.k.a. Mathematical ModSim, Mathematical M&S, Parametric Simulation) refers to the capability of a computer program to execute the a mathematical model of the behavior of a system of interest, where the model is defined as a set of mathematical equations. When properly defined and applied Parametric diagrams are capable of Mathematical ModSim; no other SysML or UML 2 diagrams are capable of this.
*: Although Use Case diagrams are generally classified as Behavior diagrams by both the OMG SysML and UML 2 specifications their Behavioral semantics are ambiguous and incomplete. Whereas Activity, Sequence and State Machine diagrams are Turing Complete, and their dynamic behavior can be simulated or executed, Use Cases diagrams are not Turing Complete and are not simulatable.
SYSML DIAGRAM
PURPOSE
UML DIAGRAM ANALOG
Model-Based Systems Engineering (MBSE), a.k.a. Model-Based Systems Development (MBSD), is a Systems Engineering process paradigm that emphasizes the application of rigorous architecture modeling principles and best practices to Systems Engineering activities throughout the System Development Life Cycle (SDLC). These Systems Engineering activities include, but are not limited to, requirements analysis, system (functional) analysis, performance analysis (trade studies), system design, system architecture specification, and system Verification & Validation (V&V).
According to the INCOSE SEBoK (Systems Engineering Book of Knowledge) MBSE may be considered a "subset of digital engineering".
It is essential that a Model-Based Systems Engineering (MBSE) approach strive to meet or exceed achieve the following process goals:
In addition, it is desirable that a MBSE approach achieve the following process goals:
• Support SysML + UML mixed language usage:
Ensure that SysML constructs can be synergistically combined with UML constructs in a model shared by Systems Engineers and Software Engineers, where the former use SysML and the latter use UML. The synergistic combination of SysML and UML should maximize requirements traceability and minimize semantic overlap between the two languages. “SysML Language Design Goals”, SysML Partners
Select a UML modeling tool that correctly implements SysML as a UML2 compliant profile and allows you to populate SysML diagrams with UML constructs and populate UML diagrams with SysML constructs:
UML modeling tools that support SysML vary widely in this regard, with some being more restrictive than others since the OMG specifications generally defer this sort of implementation detail to vendors. Check out SysMLtools.com for candidate SysML modeling tools that support SysML + UML2 mixed language usage.
Combined SysML + UML2 Example Request: If you are interested in pursuing the technical approach outlined above, but need a combined SysML + UML2 example to better understand how it works, please contact us. If we receive sufficient requests for a combined SysML + UML2 example (say 10+ requests), we will post one to the SysML Forum.
Language bloat:
A common and fair criticism of UML 2.x is that it is gratuitously large and complex. While SysML marketecture indicates that SysML is a "smaller, simpler" language for systems engineers, the reality is that SysML itself also suffers from language bloat because it adds two new diagrams (Requirements and Parametrics) and substantially increases the number of stereotypes with imprecise semantics (see Increase of UML 2.x voodoo semantics below), while failing to explicitly exclude many redundant and software-centric UML 2 constructs from the seven UML 2 diagrams that it inherits. The bloat is exacerbated because the SysML specification provides no guidelines regarding how to combine SysML models with UML models for engineering teams that include both software engineers and system engineers.
Increase of UML 2.x voodoo semantics:
Another common and fair criticism of UML 2.x is that its semantics, including its purported executable semantics (a.k.a. the Action Semantics) are ambiguous and imprecise. While SysML marketecture indicates that SysML supports precise semantics for specifying parametric constraints, the reality is SysML defines only vague natural language semantics for ConstraintBlock, ConstraintProperty, and Context-Specific Values/Constraints. Similarly, the semantics for Activity diagram extensions related to continuous/discrete rates and probabilities lack formal precision.
Structural constructs for Physical and Information (Standard) Interfaces are gratuitously complex and confusing:
The semantics and notations for StandardPorts, FlowPorts, Provided & Required Interfaces, and ItemFlows were gratuitously complex and confusing in SysML v. 1.0 - 1.2 since they conflated dependency relationships with flow relationships. Unfortunately, the patches made to fix these problems with new constructs in the SysML v. 1.3 minor revision (FullPorts, ProxyPorts, InterfaceBlocks) have exacerbated these problems, rather than fix them.
Although Instance Specifications were recently added to SysML 1.2, Object diagrams were not, and many issues remain about their specialized usage within SysML.
Instance Specifications are ambiguously defined and poorly integrated with the rest of SysML:
Although Instance Specifications were recently added to SysML 1.2, Object diagrams are clearly an afterthought in the language, and have never been fully integrated with the rest of SysML.
Parametric constructs are ambiguously defined and poorly integrated with the rest of SysML:
Parametric Constraint Blocks and Constraint Properties are ambiguously defined and poorly integrated with other SysML structural diagrams. They currently have the dubious distinction of being the least mature and most problematic SysML diagram to use.
Requirement constructs are incomplete and confusing:
Problems associated with Requirement diagrams include, but are not limited to, clarifying decomposition/containment semantics, categorization, defining basic properties, clarifying relationship semantics, and reducing the semantic overlap with Use Cases.
Allocation relationships and tables are incomplete and ambiguous:
With the exception of the AllocateActivityPartition stereotype the current specification fails to leverage the architectural integrity allocations of its parent language. In addition, the definitions of the Allocate and Allocated stereotypes strongly suggest conflated dependency and flow semantics, which are indicative of novice UML modelers ("which way does the arrow point?").
ValueType-Type integration needs simplification and a SI Model Library:
The current usage of ValueTypes with Units and QuantityKinds (formerly Dimensions) and their integration with UML DataTypes needs to be clarified and simplified.
The SysML is composed of nine (9) diagram types and Allocation Tables for mapping language elements across diagram types:
The SysML Diagram Taxonomy comparison table below explains the similaries and differences among the various SysML diagram types.
The SysML is composed of nine (9) diagram types and Allocation Tables for mapping language elements across diagram types:
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Requirement diagram (req) | Static Structure [Declarative] |
N/A | Requirements Analysis | |||||||
Use Case diagram (uc) | Behavior * [Non-Simulatable] |
Use Case | Requirements Analysis | |||||||
Activity diagram (act) | Dynamic Behavior [Simulatable] |
Activity [minor mods] |
System Analysis, Functional Analysis, System Design |
|||||||
Sequence diagram (sd) | Dynamic Behavior [Simulatable] |
Sequence | System Design | |||||||
State Machine diagram (stm) | Dynamic Behavior [Simulatable] |
State Machine | System Analysis, System Design |
|||||||
Block Definition Diagram (bdd) | Static Structure [Black Box Definition] |
Class [moderate mods] |
System Analysis, System Design |
|||||||
Internal Block Diagram (ibd) | Static Structure [White Box Usage] |
Composite Structure [moderate mods] |
System Analysis, System Design |
|||||||
Parametric Diagram (par) | Static Structure [White Box Usage] |
N/A | System Analysis, System Design |
|||||||
Package diagram (pkg) | Static Structure [Grouping] |
Package [minor mods] |
All SDLC phases | |||||||
Allocation Table | N/A [Relationship Matrix] |
N/A | All SDLC phases |
†: Dynamic Simulation (a.k.a. Dynamic System Simulation) refers to the capability of a computer program to execute the time-varying behavior of a system of interest. In general, with the exception of Use Case diagrams, SysML and UML 2 Behavior diagrams are potentially capable of Dynamic System Simulation.
‡: Mathematical Modeling & Simulation (a.k.a. Mathematical ModSim, Mathematical M&S, Parametric Simulation) refers to the capability of a computer program to execute the a mathematical model of the behavior of a system of interest, where the model is defined as a set of mathematical equations. When properly defined and applied Parametric diagrams are capable of Mathematical ModSim; no other SysML or UML 2 diagrams are capable of this.
*: Although Use Case diagrams are generally classified as Behavior diagrams by both the OMG SysML and UML 2 specifications their Behavioral semantics are ambiguous and incomplete. Whereas Activity, Sequence and State Machine diagrams are Turing Complete, and their dynamic behavior can be simulated or executed, Use Cases diagrams are not Turing Complete and are not simulatable.
The SysML is composed of nine (9) diagram types and Allocation Tables for mapping language elements across diagram types:
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Requirement diagram (req) | Static Structure [Declarative] |
N/A | Requirements Analysis | |||||||
Use Case diagram (uc) | Behavior * [Non-Simulatable] |
Use Case | Requirements Analysis | |||||||
Activity diagram (act) | Dynamic Behavior [Simulatable] |
Activity [minor mods] |
System Analysis, Functional Analysis, System Design |
|||||||
Sequence diagram (sd) | Dynamic Behavior [Simulatable] |
Sequence | System Design | |||||||
State Machine diagram (stm) | Dynamic Behavior [Simulatable] |
State Machine | System Analysis, System Design |
|||||||
Block Definition Diagram (bdd) | Static Structure [Black Box Definition] |
Class [moderate mods] |
System Analysis, System Design |
|||||||
Internal Block Diagram (ibd) | Static Structure [White Box Usage] |
Composite Structure [moderate mods] |
System Analysis, System Design |
|||||||
Parametric Diagram (par) | Static Structure [White Box Usage] |
N/A | System Analysis, System Design |
|||||||
Package diagram (pkg) | Static Structure [Grouping] |
Package [minor mods] |
All SDLC phases | |||||||
Allocation Table | N/A [Relationship Matrix] |
N/A | All SDLC phases |
†: Dynamic Simulation (a.k.a. Dynamic System Simulation) refers to the capability of a computer program to execute the time-varying behavior of a system of interest. In general, with the exception of Use Case diagrams, SysML and UML 2 Behavior diagrams are potentially capable of Dynamic System Simulation.
‡: Mathematical Modeling & Simulation (a.k.a. Mathematical ModSim, Mathematical M&S, Parametric Simulation) refers to the capability of a computer program to execute the a mathematical model of the behavior of a system of interest, where the model is defined as a set of mathematical equations. When properly defined and applied Parametric diagrams are capable of Mathematical ModSim; no other SysML or UML 2 diagrams are capable of this.
*: Although Use Case diagrams are generally classified as Behavior diagrams by both the OMG SysML and UML 2 specifications their Behavioral semantics are ambiguous and incomplete. Whereas Activity, Sequence and State Machine diagrams are Turing Complete, and their dynamic behavior can be simulated or executed, Use Cases diagrams are not Turing Complete and are not simulatable.
Requirement: A Requirement (notation: rectangle with «requirement» keyword) is a capability or condition that a system must ("shall") satisfy. A Functional Requirement (functionalRequirement» keyword) specifies a function that a system must perform, whereas a Non-Functional Requirement (NFR) specifies quality criteria that can be used to test the effectiveness of system functions.
SysML predefines the following stereotype specializations of NFRs:
Requirement diagram (req): A SysML Requirement diagram is a static structural diagram that shows the relationships among Requirement («requirement») constructs, model elements that Satisfy («satisfy» Dependency) them, and Test Cases that Verify («verify» Dependency) them.
The purpose of Requirement diagrams is to specify both Functional and Non-Functional Requirements within the model so that they can be traced to other model elements that Satisfy them and Test Cases that Verify them.
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Requirement diagram (req) | Static Structure [Declarative] |
N/A | Requirements Analysis |
BEST PRACTICE PATTERNS | ANTI-PATTERNS |
---|---|
* Aggressively apply Requirements Triage techniques to separate «functionalRequirement», «performanceRequirement», and «designConstraint» Requirements. | * Conflate «functionalRequirement», «performanceRequirement», and «designConstraint» Requirements. |
* Satisfy all Functional Requirements with Functional Activities using the «satisfy» Dependency. | * Regurgitate System Design decisions as SysML Requirements text. Compare and contrast bona fide «designConstraint» Requirements (e.g., "... shall use FOSS SW and COTS HW ..."). |
* Apply MBSE + SysML Requirements Cluster Pattern to manage FR-NFR complexity. | |
* Apply MBSE + SysML Requirements Transitive Trace Pattern to scale system Requirements traceability on the "Left-Hand-Side" of the System V-Model. |
Use Case: A Use Case (notation: oval/ellipse) represents a system transaction with an external system user, called an Actor (notation: stick-figure). Use Cases are sometimes considered high-level functional requirements.
Use Case diagram (uc): A Use Case diagram shows communications among system transactions (Use Cases) and external users (Actors) in the context of a system boundary (Subject; notation: rectangle). Actors may represent wetware (persons, organizations, facilities), software systems, or hardware systems. Defining relationships between the system Subject and the system Actors is an effective informal way to define system scope.
The purpose of Use Case diagrams is to provide a high-level view of the subject system and convey the top-level system requirements in non-technical terms for all stakeholders, including customers and project managers as well as architects and engineers. Additional more rigorous SysML diagrams are needed to specify a scalable and simulatable System Architecture Model (SAM).
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Use Case diagram (uc) | Behavior * [Non-Simulatable] |
Use Case | Requirements Analysis |
If Use Cases are considered to be high-level system functional requirements they should be traced to «functionalRequirement» Requirements using Refine («refine») Dependencies.
BEST PRACTICE PATTERNS | ANTI-PATTERNS |
---|---|
* Restrict use for brainstorming, ConOps, "Cartoons for Executives & General s", etc. | * Examples of Use Case Modeling Antipatterns [M. El-Attar] |
* Cut-over to high-level Activity diagrams ASAP! |
Activity: An Activity (notation: rounded-rectangle or "roundangle") represents a flow of functional behaviors that may include optional Object (data) Flows. Control and Object Flows can be sequential (default) or parallel (indicated by Fork & Join Nodes) depending upon conditions.
Activity diagram (act): An Activity diagram shows system dynamic behavior using a combined Control Flow and Object (data) Flow model.
The purpose of Activity diagrams is to specify dynamic system behaviors that Satisfy («satisfy» Dependency) system Functional Requirements using both Control and Object (data) Flows. When properly applied (See Usage Notes below) Activity diagrams are recursively scalable and simulatable.
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Activity diagram (act) | Dynamic Behavior [Simulatable] |
Activity [minor mods] |
System Analysis, Functional Analysis, System Design |
BEST PRACTICE PATTERNS | ANTI-PATTERNS |
---|---|
* Recursively decompose ("nest") Activities by alternating between Activity definitions and Call Behavior usages. | * Bloctivity Anti-Pattern = Conflate Block and Activity syntax and semantics. |
* Allocate all Activities and Actions to a Partition that represents a Control Block. | * SMactivity Anti-Pattern = Conflate State Machine and Activity syntax and semantics. |
* Allocate Data Blocks or Signals to all Activity Parameters and Action Pins. | |
* Ensure that all Activities Satisfy at least one Functional Requirement. |
Block: A Block (notation: rectangle with keyword = «block») represents a system component, a modular structural unit that encapsulates its contents (Properties, Behaviors, Constraints) and supports first-class (i.e., can be drawn and directly manipulated in the model repository) Interfaces. Behaviors encapsulated by Blocks include: Operations, Signals, and State Machines. The unique interaction points for attaching and connecting ("wiring") Block Interfaces are called Ports.
Block Definition Diagram (bdd): A Block Definition Diagram is a static structural diagram that shows system components, their contents (Properties, Behaviors, Constraints), Interfaces, and relationships.
The purpose of Block Definition Diagrams is to specify system static structures that be used for Control Objects, Data Objects, and Interface Objects. When properly applied (See Usage Notes below) Block diagrams are recursively scalable and mathematically (parametrically) simulatable (See Executable Semantics below.)
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Block Definition Diagram (bdd) | Static Structure [Black Box Definition] |
Class [moderate mods] |
System Analysis, System Design |
BDDs and IBDs complement each other (cf. black-box vs. white-box) and support recursive structural decomposition techniques during System Analysis & Design.
BEST PRACTICE PATTERNS | ANTI-PATTERNS |
---|---|
* Aggressively apply Object Triad Pattern triage techniques to Blocks in order to separate Control Objects, Interface Objects, and Data Objects. | * Conflate Control Object, Interface Object, and Data Object Blocks. |
* Recursively decompose ("nest") Block hierarchies by alternating between BDD definitions and IBD usages. | * SA/SD DFD Anti-Pattern (a.k.a., "Back to the Future circa 1980" Anti-Pattern) = Define Activity diagrams as Functional Flow diagrams without Parttions that represent Control Objects. |
* Allocate all Activities to Partitions that represent Conrol Object Blocsk. | * Bloctivity Anti-Pattern = Conflate Block and Activity syntax and semantics. |
Block: A Block (notation: rectangle with keyword = «block») represents a system component, a modular structural unit that encapsulates its contents (Properties, Behaviors, Constraints) and supports first-class (i.e., can be drawn and directly manipulated in the model repository) Interfaces. Behaviors encapsulated by Blocks include: Operations, Signals, and State Machines. The unique interaction points for attaching and connecting ("wiring") Block Interfaces are called Ports.
Internal Block Diagram (ibd): An Internal Block Diagram is a static structural diagram owned by a particular Block that shows its encapsulated structural contents: Parts, Properties, Connectors, Ports, and Interfaces. Stated otherwise, an IBD is a "white-box" perspective of an encapsuated ("black-box") Block.
The purpose of Internal Block Diagrams (IBDs) is to show the encapsulated structural contents (Parts, Properties, Connectors, Ports, Interfaces) of Blocks so that they can be recursively decomposed and "wired" using Interface Based Design techniques. When used correctly BDDs + IBDs are recursively scalable and mathematically (parametrically) simulatable (See Executable Semantics below.)
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Internal Block Diagram (ibd) | Static Structure [White Box Usage] |
Composite Structure [moderate mods] |
System Analysis, System Design |
BDDs and IBDs complement each other (cf. black-box vs. white-box) and support recursive structural decomposition techniques during System Analysis & Design.
BEST PRACTICE PATTERNS |
ANTI-PATTERNS |
---|---|
* Aggressively apply Object Triad Pattern triage techniques to Blocks in order to separate Control Objects, Interface Objects, and Data Objects. | * Conflate Control Object, Interface Object, and Data Object Blocks. |
* Recursively decompose ("nest") Block hierarchies by alternating between BDD definitions and IBD usages. | * SA/SD DFD Anti-Pattern (a.k.a., "Back to the Future circa 1980" Anti-Pattern) = Define Activity diagrams as Functional Flow diagrams without Parttions that represent Control Objects. |
* Allocate all Activities to Partitions that represent Conrol Object Blocsk. | * Bloctivity Anti-Pattern = Conflate Block and Activity syntax and semantics. |
Constraint Block: A Constraint Block (notation: rectangle with keyword = «constraint») defines a mathematical rule (Constraint) and rule Parameters, where the latter are bound to Block Value Properties so that changes to one Block Value Property will be propagated to other Block Value Properties in a manner consistent with the mathematical rule. (See Executable Semantics below.)
Parametric diagram (par): An Parametric diagram is a specialization of an Internal Block Diagram (IBD) that enforces mathematical rules (Constraints) defined by Constraint Blocks across the internal Part Value Properties bound by the Constraint Block Parameters.
The purpose of Parametric diagrams (PARs) is to enforce mathematical rules across Block Value Properties. When used correctly BDDs + IBDs + PARs are recursively scalable and mathematically simulatable. (See Executable Semantics below.)
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Parametric Diagram (par) | Static Structure [White Box Usage] |
N/A | System Analysis, System Design |
Compare and contrast: BDD Block Definition vs. IBD Block Usage dichotomy; UML Specification-Realization and Type-Instance dichotomies
BEST PRACTICE PATTERNS |
ANTI-PATTERNS |
---|---|
* Apply Constraint Blocks and PAR diagrams to System Designs after the BDD-IBD system architecture skeletons have stabilized. | * Applying Constraint Blocks and PAR diagrams in isolation (i.e., not integrated with BDD-IBD system architecture skeletons. |
Message: A Message (notation: arrow) represents communication from one object to another, with the expectation that a useful behavior will ensue. Messages may be synchronous (notation: open arrowhead) or asynchronous (notation: black-triangle arrowhead).
Sequence diagram (sd): A Sequence diagram is a dynamic behavioral diagram that shows interactions (collaborations) among distributed objects or services via sequences of messages exchanged, along with corresponding (optional) events.
The purpose of Sequence diagrams is to specify dynamic system behaviors as message-passing collaborations among prototypical Blocks (Parts). When properly applied (See Usage Notes below) Activity diagrams are recursively scalable and simulatable.
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Sequence diagram (seq) | Dynamic Behavior [Simulatable] |
Sequence | System Design |
BEST PRACTICE PATTERNS | ANTI-PATTERNS |
---|---|
* Recursively decompose ("nest") Sequence diagrams by using Combined Fragement References (denoted by ref label). | * Define Messages as strings instead of reusing Block and Interface Operations and Signals. |
State: A State (notation: rounded-rectangle a.k.a. "roundangle") represents a condition or situation during the life of an object during which it satisfies some condition, performs some activity, or waits for some event.
State Machine diagram (smd): An State Machine diagram is a dynamic behavioral diagram that shows the sequences of States that an object or an interaction go through during its lifetime in response to Events (a.k.a. "Triggers"), which may result in side-effects (Actions.
The purpose of State Machine diagrams is to specify dynamic system behaviors for time-critical, mission-critical, safety-critical, or financially-critical objects. When properly applied (See Usage Notes below) State Machine diagrams are recursively scalable and simulatable.
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
State Machine diagram (stm) | Dynamic Behavior [Simulatable] |
State Machine | System Analysis, System Design |
BEST PRACTICE PATTERNS |
ANTI-PATTERNS |
---|---|
* Use Activity and Sequence diagrams to specify collaborative dynamic behaviors; use State Machines selectively for time/safety/mission/financial critical objects. | * SMactivity Anti-Pattern = Conflate State Machine and Activity syntax and semantics. |
Package: A Package (notation: "folder" icon) is a general-purpose mechanism for organizing model elements and diagrams into groups. Packages define unique namespaces for model elements defined within their scope.
Package diagram (pkg): A Package diagram is a static structural diagram that shows the relationships among packages and their contents. Package can be stereotyped (customized) for organizing model elements into models, views, model libraries, and frameworks.
The purpose of Package diagram is to support the organization and management of large, complex System Architecture Models (SAMs).
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Package diagram (pkg) | Static Structure [Grouping] |
Package [minor mods] |
All SDLC phases |
BEST PRACTICE PATTERNS | ANTI-PATTERNS |
---|---|
* Use a Enterprise Architecture Framework (EAF) Package Patterns to organize the complexity of your System Architecture Model. | * Fractured-Framework Anti-Pattern: Ad Hoc/Chaotic Package organization. |
Definitions:
Allocation: An Allocation Dependency arrow (dashed-line with open-arrow notation and keyword = «allocate») associates or maps model elements of different types, or in different hierarchies. Allocate Dependency patterns are generally useful for improving model architecture integrity (a.k.a., well-formedness) and consistency. SysML predefines the following Allocation Dependencies:
Users are encourage to define their own Allocation Dependencies as needed. (See Best Practice Patterns below for examples of user-defined Allocations.)
Allocation Table: An Allocation Table is a tabular (matrix) notation for Allocation relationships, but the SysML standard does not prescribe a particular format for these so they tend to be vendor specific.
The purpose of an Allocation Table is to define relationship matrices within and across diagram types to improve model architectural integrity (well-formedness) and consistency.
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Allocation Table | N/A [Relationship Matrix] |
N/A | All SDLC phases |
BEST PRACTICE PATTERNS | ANTI-PATTERNS |
---|---|
* Use Allocation Tables to define system architecture integrity (well-formedness rules) for System Analysis and System Design. | * Rely on the anemic subset of Allcoation Tables defined by the OMG SysML specification and SysML tool vendors. |
* Use Allocation Tables to define system Verification & Validation (V&V) relationships on both sides of the System V-Model. |