SysML is a general-purpose modeling language for systems engineering applications. SysML supports the specification, analysis, design, verification, and validation of a broad range of complex systems. These systems may include hardware, software, information, processes, personnel, and facilities. In the HiLeS2 Framework SysML is used to specify the system level model of Embedded Systems. In the SysML model the designer can capture:
- System requirements
- Logical Solution
The SysML model contains a "Requirements" and a "LogicalSolution" packages. The Requirements package contains the requirements grouped by type: Stakeholders, System Technical, Acquirer Requirements, and Other Stakeholders. Inside the "Acquirer requirements" package one package for each stakeholder must be created. The System Technical package has a nested classification: "Functional requirements", "Interface requirements" and "Technical requirements".
Fig 1 presents the Requirements package structure from the Outline View:
Fig1. Packages Structure SHRMS
The Logical Solution is divided into a structural and a behavioral representation. The block is the modular unit of structure in SysML that is used to define a type of system or system component. The block definition diagram is used to define block characteristics in terms of their structural and behavioral features, and the relationships between the blocks such as their hierarchical relationship. The internal block diagram is used to describe the internal structure of a block in terms of how its parts are interconnected. The behaviors associated with a block defines how the block responds to a stimuli, and can be expressed using activity diagrams. In addition to decomposition hierarchies, blocks can be organized into classification hierarchies that allow blocks to be defined in terms of their similarities and differences, i.e. variants. Specialization of blocks allows the definition of product configurations.
Block Definition Diagram
Block Definition diagrams (BDD's) are used to define "black-box" components and are derived from UML2 Class diagrams. In the HiLeS2 Framework the bdd diagram is used to layout the system architecture. Each block represents a component and aggregation relationships are used to build the component hierarchy.
Internal Block Diagram
Internal Block diagrams (IBD's) are used to show the "white-box" perspective of Block components. Connectors are used to show how internal parts are wired to each other. In the HiLeS2 Framework ibd's are used to show the physical connections between parts using FlowPorts and FlowSpecifications.
The SysML activity diagram describes the flow of control and data as the system executes. The syntax of SysML activity diagrams is identical to UML activity diagrams. In the HiLeS2 Framework Activity diagrams are used to express the behavior of components in the system. Swim lanes are used to group the behavior elements that are executed by a particular component.
The SysML Metamodel
The SysML metamodel used is the one contained in the Papyrus SysML feature (http://www.eclipse.org/papyrus/0.7.0/SysML) is based on he definition of the SysML language architecture as defined by the OMG in the SysML Specification. The metamodel copies the package structure defined in the specification and presented in Figure 2. Each of the metaconcepts of the SysML metamodel corresponds to one of the stereotypes defined in the SysML specification. Each metaconcept has a base_<umlType> association attribtue, where <umlType> points to the UML metamodel (http://www.eclipse.org/uml2/3.0.0/UML) metaconcept that the stereotype can be applied to.
Papyrus editor to allow edition of SysML models (more information can be found at the Papyrus site here).
In order to validate that the SysML Model complies to some restrictions and guidelines required by the Virtual Prototype generation tool, a model validation command is available. Errors must be fixed in order to be able to execute the SysML to HiLeS transformation. Warnings inform the user of known isues or outcomes that are not critical.