(Part II of this series is available here.)
I regularly receive questions from customers wanting to apply GENESYS to their particular systems engineering challenges. Each one is different, and I always love learning about the situation and seeing if I can help. (Just a reminder: we are always here to help as part of your maintenance agreement!)
Many times I get questions dealing with how to model SysML concepts in GENESYS. While I feel that SysML is great at modeling things, I don’t think it’s the best at modeling systems, or at modeling systems engineering. Nevertheless, I always like a challenge, and learning SysML has been an intriguing mental exercise.
I have found SysML sometimes provides a perspective that can be useful in our systems engineering efforts. In this week’s blog, I’ll cover how to use GENESYS to model the SysML concept of a Block. I’ll continue the discussion next week to discuss how blocks are used on SysML diagrams.
Blocks in SysML are tricky. They are almost always used to represent the parts of our system—the building blocks of our physical design. But blocks actually represent structure. They can be used to depict the structure of activities, items, constraints, packages, model libraries, logical abstractions, and even conceptual entities, as well as components.
In GENESYS, however, the SysML Block is aligned strictly with the GENESYS class Component in the system metamodel. Activities, items, constraints, and packages are modeled with their own system metamodel class. When you create an instance of a Block, say on a Block Definition Diagram (BDD), GENESYS creates an instance of a Component.
Blocks are also used to represent types of entities, not just the specific instance. So a block on a BDD in SysML representing the Electrical Power Subsystem may not be the actual part you think it is in your system-of-interest. In SysML, it is necessary to define the instance of the block Electrical Power System, say, eps, to represent the part of your system-of-interest as a block. In GENESYS, instances of components are not typed, so the Electrical Power Subsystems really is a part of your system-of-interest.
Block Features and Compartments
According to SysML, blocks are defined by their features. When features are displayed in a block node, they are listed within an associated compartment. Features include Parts, References, Values, Constraints, Ports, Operations, and Receptions.
The number and kinds of compartments displayed on a block node in a BDD can be controlled in GENESYS with Node Templates, available under the Utilities menu in the Project Explorer. A number of combinations are provided with GENESYS, and you can customize your own node template. In GENESYS, since blocks refer to instances of the GENESYS Component class, features are retrieved from the project database according to the block’s corresponding entity’s attributes, properties, relationships, or parameters.
In Figure 1, two block nodes are depicted showing different node templates. The block on the left includes operations, values and ports. The block on the right includes operations, parts, and references. The operations compartment of a block lists all functions contained in the “Operations” attribute of the of the block’s corresponding component. Alternatively, you can reference the corresponding component’s performs relationship, to learn the associated function(s) the block performs once invoked. In this example, the function Provide Electrical Power, performed by the Electrical Power Subsystem, executes once triggered as defined in the behavioral model.
To fully understand operations (and another feature called receptions), a fairly complete behavioral model needs to be in place first. Operations may be synchronous or asynchronous (while receptions are functions that perform asynchronously). The distinctions between synchronously or asynchronously invoked functions (and the respective call and signal events) are rather esoteric. In my opinion, more than enough understanding can be conveyed to stakeholders by listing the component’s corresponding function(s). If you want to learn more or present details about the behavior of a block (i.e. component), simply look at the associated behavioral diagrams like the EFFBD or Activity diagram.
The Value compartment references the parameters that have been assigned to the block’s component. Ports reference the Full Ports exposed by the block. In this case, the Electrical Power Subsystem exposes the Computer Connector Port. The Electrical Power System has the Mass and MTBF parameters also defined.
Part features represent the whole-part or parent-child relationship between a block and its direct descendants. In Figure 1, the Electrical Power System has the Power Distribution Unit and Power Management Unit listed as parts. GENESYS retrieves the parts by referencing the built from/in relationship of the block’s corresponding component entity.
Finally, the Reference compartment lists the reference properties of the block. In GENESYS, this equates to following the connected to relationship to find the links to which it connects. In this example, the Electrical Power System connects to the Power Cable.
Compartments and features represented on a block node are informational. Note that all of the information displayed in compartments, and more, can be found in an entity’s GENESYS Property Sheet and in its Targets and Attributes panel.
For other GENESYS classes such as Function or Item, use a Hierarchy Diagram to display all of the relationships and compartments you may need. Remember, too, that you can also use node templates to change the information that is displayed on a node.
Blocks are fundamental to SysML. In SysML, blocks can represent a type of entity and a specific instance. They can also be used to model functions, items, and constraints. In GENESYS, SysML blocks are aligned strictly with the Component class in the system metamodel, and an instance of a Component is considered a part of the system-of-interest.
Features of a block are displayed in node templates that can be changed and customized. In GENESYS, the features are retrieved from the project database according to the associated component’s attributes, properties, relationships, or parameters. Information displayed on a block can also be found on the associated component’s property sheet.
Next week, I’ll continue the discussion on blocks and describe the way you can use GENESYS to display blocks and their relationships on BDDs and IBDs.
If you have any questions about blocks and SysML in general, feel free to contact me at firstname.lastname@example.org. Remember, too, that I’m available as part of your CORE or GENESYS maintenance agreement to help explain the systems engineering uses of Vitech tools.