SysML is a visual modeling language that is derived from the UML and particularly intended for the model based development of software intensive systems. The modeling language particularly enables the systematic application and documentation of design logic. There are four main drivers for the SysML.
First, it attempts to provide an integral approach for all engineering disciplines by offering a modeling language that can visualize different engineering aspects in a coherent and consistent manner.
Second, it offers modeling of requirements and it helps to systematically trace these requirements to the various system design choices.
Third, it offers model based rather than document based development (MBSE: model based system engineering).
Last, but not least, it supports the co-design of software versus mechanical and electrical engineering aspects of a system. SysML currently draws much attention in domains like automotive, infrastructure development and command and control systems.
There are a good number of application domains that show rapid increase in functionality and complexity of systems. Examples are automotive and aerospace systems with many electronic control units interconnected in a multitude of ways. But even seemingly mundane systems like tunnels nowadays consist of many interconnected technical components that have to be integrally controlled according to complex protocols.
To deal with this increasing complexity a number of measures are taken, ranging from standards (e.g. AUTOSAR) and component specifications (like the Dutch “tunnel standaard”) to changing the development process and adopting sophisticated tool chains. Pervading all of these efforts is the notion that system design is divided in abstraction layers. Integration of all of these functional building blocks is a key issue that often requires (timing and performance) analysis of the use of low level resources (i.e. processors and buses).
The course “Design of Real-time Software/workshop” focuses on such analysis techniques and how they can be applied in a design flow. This course approaches the problem from a high level perspective: system design and modeling based on requirements. The OMG, the organization behind the UML standard, has developed profiles for both these perspectives; the first one being Marte (modeling and analysis of real-time and embedded systems), the second one is the SysML (system modeling language).
It is interesting to note that the modeling notations of both these standards are based on the same subset of the UML (so called composite structure diagrams). The advantage of using standards, like these from the OMG, is that it may help to prevent vendor lock-in of methods and tools. This may be considered a downside for organizations that are already locked in.
The course intends to provide a solid introduction to the various modeling techniques that comprise the SysML using examples from the automotive and infrastructure domains. Particular attention is paid to modeling software in conjunction with mechanical and electrical engineering aspects. The course includes many class-room exercises that will help to consolidate the theory and facilitate the application of the techniques in daily usage. In addition, the course will demonstrate how tooling can help creating a model based workflow, validate the model, trace requirements and help inspect for completeness, and trace design features and choices to requirements. The latter may be of particular importance to analyze the impact of changes or extensions to a system.
The course is intended for software and system engineers involved in the development of software intensive systems. It is strongly recommended that participants have some knowledge of object-oriented software-development techniques and the associated notations (UML), for example, by attending the course on “Object Oriented Analysis and Design”.
If so desired, one of the company’s own projects can be submitted as case study to be used as alternative/additional exercise during the course.
Introduction to SysML
The major drivers for the development of the SysML are explained and discussed. Some information on history and background are supplied.
Capturing requirements in SysML
An important addition to the original UML language that is present in SysML is the modeling of requirements. In this module it is shown how textual requirements are modeled. Important relationships between requirements and between requirements and other model elements are discussed. An important aspect of system engineering is the possibility to trace requirements to down-stream system elements and vice versa. It is discussed and demonstrated how this traceability works in practice and how it can help the analysis of the impact of proposed system changes and extensions.
Describing and modeling use cases
It is discussed and demonstrated how use cases, and therein implied system usage scenario’s, can help to refine requirements in a structured and understandable manner. In system design it is important to particularly focus on requirements that relate to safety and security. The aforementioned tracing of requirements can help to identify such scenario’s. Attention is paid to the relation between use cases and test cases.
Modeling system structure
In SysML system structure is modeled using blocks with ports. Ports can represent the logical and/or physical interface aspects of a system block. Structuring these interfaces appropriately is one of the most important issues in system design. SysML enables the modeling of interfaces that are either logical in nature (software interfaces conveying commands or data) and interfaces that support the flow of physical entities (like torque). The course will discuss how modeling can be performed at different levels of abstraction, i.e. abstracting from details of the underlying software and hardware platforms and at different levels of decomposition.
Modeling system behavior
Proper behavior modeling is an essential aspect of model based system engineering (MBSE). Not only is a behavioral model a way to represent and validate many system requirements, it is also important in the generation or construction of software implementations of system management. It is therefore an essential link between requirements and the realization of the system. Three kinds of SysML behavior diagrams will be treated.
- State Machine Diagrams (finite state automatons) represent discrete-event based behavior. State machines can also be used to integrate the modeling of discrete as well as continuous behavior (e.g. specification of continuous control).
- Sequence Diagrams help to trace the behavior specifications to use cases.
- Activity Diagrams help to model flow like behavior.
Modeling for trade-off analysis
Finally, SysML offers modeling of physical and logical constraints that can help to tune system parameters to optimally cover the requirements. It can help to compare design alternatives. The so called parametric diagrams will be treated and some small examples will be given.
The SysML system modeling language is specified and developed by the OMG (Object Management Group) and is supported by INCOSE (International council for System Engineering).