The reason for this is that system engineering is not done in isolation, but
at least for software systems the specifications will be handed off to teams
who will implement the software artifacts comprising the specified system.
These teams will most likely leverage UML to drive their development.
Questions that are of interest in this context are, for example:
* Does the profile introduce concepts that are inconsistent to existing UML
concepts (or are likely to be confused with existing, but different, UML
concepts)?
* Does the profile introduce a new concept where an existing UML concept
could have served equally well, or could have been easily extended to
address the perceived need?
* Does the profile introduce concepts in a manner that makes it difficult to
migrate the system specification into a UML specification of the software
subsystems during development?
I believe satisfactory answers to these types of questions are just as
important as to "does the profile support feature X" type questions, if we
want this profile to be used in real-life development.
Cheers, Th.
I think you make good points. SysML needs to interoperate with UML well for
those cases where a component will be implemented in software. This also
means that things like allocation of one structural component to another
structure, needs to be reconciled with allocation of software artifacts to
hardware nodes. Deployment is like allocation, except that it occurs in the
real world instead of only in the model world, and occurs multiple times.
We also could look at reconciliation of software transformations into the SE
domain. Is this allocation in the SE sense or something else?
While I would like to have the interaction of SysML with software UML well
worked out before finalization of the specification, I suspect that is not
going to happen. We will have to settle for looking at how components are
represented in SysML and compare that to our use of UML in software
projects, as you suggest.
Do you have any specific concerns or examples of the things you question?
Michael
Looking at both specifications there are a number of differences I note with
respect to how well they integrate into the UML. Let me just give one
example:
Both specifications support the concept of parametric constraints, i.e.,
relationships between aspects of system components. The user level concept
is almost identical in both submissions (i.e., you can define, in a
graphical manner, relationships between elements by drawing a symbol
representing the constraint, and connecting this symbol with lines to the
elements which participate in the parametric relationship). However, there
are significant differences in how the submissions chose to implement these
concepts:
1. The SST submission represents a parametric constraint as a stereotyped
block (which in turn is a stereotyped class), and uses connectors between
model elements and parts (shown in port-like fashion) of the constraint
block to represent that the model elements participate in the parametric
relationship.
2. The SP submission represents a parametric constraint as a stereotyped
collaboration, and uses the UML mechanisms of collaboration use to represent
that certain model elements participate in the parametric relationship.
I find approach (2) superior by the criteria outlined below as it uses a UML
concept (collaboration) without changing its semantics. UML collaborations
are meant to describe relationships between various aspects of a specified
system without insisting that there is a physical reality to this
relationship, so it should come as no surprise that these are well-suited to
express parametric relationships.
In contrast, the SST submission takes a UML concept which inherently has a
physical instantiation semantics (that of Class) and changes its semantics
to not have an instantiation (since that would be meaningless for a
parametric constraint). Many other semantic aspects of UML classes are
stripped implicitly by the innocent looking stereotype (which, by the way,
is not supported by the UML profile mechanism). Then parametric constraints,
which are typically equations, are interpreted as "things" with "parts" (its
variables). Then UML connectors, which are concepts representing the
communication of something between elements, are reinterpreted as
relationships between the "parts" of these "equations". This is aggravated
by the notation making the variables in the equations look like UML ports.
From a UML point of view this representation is awkward and confusing, as
the UML concepts are reused in an inconsistent manner.
The notational and semantic confusion generated by the SST style
representation makes it also very difficult to show parametric constraints
as part of standard structural diagrams which would be a typical mode of
usage (e.g., structural elements in a system diagram are annotated with
parametric constraints), and not surprisingly, this usage mode is not
demonstrated. In contrast, this use is convenient in the SP submission and
also demonstrated in Figure 9-5.
Note again that for a user who does not care about the UML this may not be
very important, as such user will not be confused by the inconsistency in
concepts. However, I find it difficult to separate the SysML from the
underlying UML.
Cheers, Th.
Thanks for the detail. I too find the collaboration notation a better
semantic fit since there are no instances for parametric constraints, but
you do a good job of taking that intuition and making the points concrete
and technically compelling for someone familiar with UML metamodeling.
Your arguments raise another similar one which while less of a difference
between the submissions has similar problems. Would it not be better to
represent requirements as a collaboration rather than as a stereotyped
block/class as well? The submissions have to go to awkward pains to deal
with the instance and other class related semantics, while a collaboration
has the decomposition, and model time semantics required for requirements.
What do you think about this?
"Thomas Weigert"
<thomas....@motorola.com>
Sent by: SysML-Ev...@googlegroups.com 12/15/2005 08:28 PM
|
|
From: Russell Peak
Sent: Friday, December 16, 2005 4:19 PM
To: 'SysML-Ev...@googlegroups.com'
Subject: on SysML parametrics: intent and examples