Tags and keywords
Let's start at the very beginning, a very good place to startThis is where your journey into real Model-Based Systems Engineering begins! We are going to explore here just some of the things a SysML Block can do, and how it goes beyond the software-centric UML Class to handle a huge range of tasks both for systems engineering and for general graphical modelling, representation, and encapsulation of - well - just about anything.
We start with one of the main diagrams one uses with Blocks, the Block Definition Diagram (BDD), known in the SysML world typically simply as a 'BDD':
A block usually appears on a BDD as a rectangular symbol. The 'name' of the Block lives in the top of the symbol in the header, along with some other optionally displayed information. The example here also shows the «block» keyword from the applied Block stereotype. It is the application of the Block stereotype to a Class that transforms it from a mere software-centric UML Class element into a rocket-fueled SysML Block for use in just about any engineering or science domain.
The main two aspects of a Block symbol you'll be working with on a BDD are the various feature compartments and the internal structure compartment, both of which are highly interactive in the tool; feature compartments are primarly "code-like" whereas the internal structure compartment is more graphically oriented.
In the top constraints compartment of the ExampleBlock
in the slide there is a constraint property equation
of type ConstraintBlock
, which can carry mathematical constraints and corresponding constraint parameters, which can in turn be bound to values and parts of the Block using BindingConnectors. We won't be looking further into this aspect of Blocks in this trail section, however:
Next we see in the values compartment of the ExampleBlock
in the slide a value property value
of type ValueType
, which also carries a Unit. This is a crucial enhancement beyond UML! And SysML now integrates fully with the ISO-80000 units standard (which is also supported by a ModelLibrary in the tool). You can also easily make your own custom ValueTypes for your own domain.
Please note that:
One can in fact also show value properties as symbols in the internal structure compartment or on an Internal Block Diagram, which can be useful for exposing more information about a value, and for asserting equality of two distinct value property elements with BindingConnectors. But for now we'll just stick to listing them.
Next we see in the operations compartment of the ExampleBlock
an Operation operation
of return type ReturnType
and an input Parameter i
of type ParameterType
. This aspect works basically the same as in UML, except ReturnType
and ParameterType
could be a Block or a ValueType.
SysML also includes Signal and Reception. We see in the signal receptions compartment a Reception Notify(message)
for a Signal type Notify
, and with an input Parameter message
of type PacketType
, where PacketType
could be a Block or a ValueType.
The features of a SysML Block may be DirectedFeatures with indications of whether they are provided, required, or both. This is a compelling capability of SysML that we'll be exploring at length in some later sections of this trail, and it also has some brilliant notational support that is not offered by basic UML.
A SysML Block may, like a class, have Behaviors. This trail section won't explore Behavior on blocks much, but for now note that like a UML Class a Block can have a single classifier behavior, which in this example happens to be a Statemachine STM
.
A Block can have part properties (which have AggregationKind 'composite' and are typed by a Block or a sub-type), and these may be shown in a parts compartment, and/or as symbols in the internal structure compartment.
A Block can have reference properties (which have AggregationKind 'none' or 'shared' and are typed by a Block or a sub-type), and these may be shown in a references compartment and/or as symbols (distinguished with a dashed line border) in the internal structure compartment.
There are some other compartments (not shown here yet) that we'll be exploring later, including for flow properties, proxy ports, and full ports, and tools are permitted in SysML to offer additional compartment.
The following power feature in the tool is particularly useful when working with Blocks:
A BDD also supports many types of Relationships between Blocks, including: Dependency, Usage, Generalization, and Association, which were introduced in the UML 101 trail section. We'll also examine them a bit in this tutorial trail section. The Association has special consequences when used with Blocks, as we'll see later. But for now, we are going to just focus on the Block itself.
You can show most (only) of the internals of a Block using the internal structure compartment on a Block symbol in a BDD, but the most powerful way (preferred here) is to use a dedicated Internal Block Diagram (BDD) as shown next .