Professional Documents
Culture Documents
Krzysztof Czarnecki
jpadillagaeta@gsd.uwaterloo.ca
kczarnec@gsd.uwaterloo.ca
University of Waterloo
University of Waterloo
ABSTRACT
and agree on the scope and other important system properties; they are also means for analysis and automation. A
good model can become the cornerstone of a successful system. However, if modeling one system is challenging, modeling a family of them is even harder. Each family member
is dierent; models must specify accurately which parts are
shared, what can vary, and under which conditions. Further,
the notation used must be well understood by all stakeholders. Thus, relying on standards can be beneficial. SysML
[14] is particularly relevant in the avionics domain. It is
based on UML [13] and many existing tools already support
it; it can also be extended as necessary.
This paper reports on a collaborative eort between the
University of Waterloo and Pratt & Whitney Canada to develop engineering guidance on the use of SysML in the modeling of systems and software product-lines in the aerospace
domain.
The contributions of this work are as follows. First, it defines a method and a pattern catalog for modeling aerospace
systems product lines in SysML. Second, it reports on the
experience in applying the approach in the development of
an industrial systems-product line. The work shows that
SysML is rich enough to model systems variability out of
the box.
Keywords
systems engineering, embedded software, product-line engineering, model-based engineering, variability modeling, UML,
SysML
1.
INTRODUCTION
2.
BACKGROUND
2.1
Avionic Systems
2.2
SysML
Avionics are the electronic sensors, actuators, computers, networks, and software on an aircraft. Important system qualities such as safety, reliability, and fuel-eciency
are becoming increasingly dependent on the correct operation of these systems [24]. Before such systems can be
used on an aircraft, their correct functioning and adherence to airworthiness requirements must be ensured. For
this purpose, systems and software must be approved by national certification authorities; this process can be lengthy
and time-consuming. Therefore, companies usually follow
standard development guidelines, such as ARP4754A [22],
ARP4761 [21], DO-254 [17], and DO-178C [20]. These standards do not focus only on the correct operation of the final
system but also on a rigorous process being followed during
the whole lifecycle. Thus, any new development approach
must ease the certification process and be compatible with
these standards; failure to do so could be risky and costly.
Permission to make digital or hard copies of all or part of this work for personal or
classroom use is granted without fee provided that copies are not made or distributed
for profit or commercial advantage and that copies bear this notice and the full citation
on the first page. Copyrights for components of this work owned by others than the
author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or
republish, to post on servers or to redistribute to lists, requires prior specific permission
and/or a fee. Request permissions from permissions@acm.org.
DOI: http://dx.doi.org/10.1145/2791060.2791104
293
3.
4.1
PROPELLER EXAMPLE
Anti-Ice feature prevents ice formation on the propeller; variants include fluid, electric, or hot-air-based.
Optional Variant-Specific Requirement: A variant may leave it out or include and customize it.
Although it is possible to have an entirely mechanical system controlling a turbo engine, we assume an electronic engine controller (EEC), as it is used on modern engines.
4.
Sample customizations are parameter values, installationspecific interfaces, and customer-specific functionality.
The following step is to model the structure and behavior
of the family architecture using SysML. The structural aspect covers system, software, and hardware blocks (components) and their connections (data flows). The behavioral
aspect covers the system dynamics: how inputs are processed to produce outputs, how messages are sent between
blocks, and how the states of the system evolve. These parts
of the model cover both the system architecture and the software architecture and use allocation relationships to allocate
features to blocks, behaviors to blocks, and blocks to blocks
(e.g., software components to hardware components) [8]. We
leverage existing SysML trace types for requirements (see
Table 1): deriveReqt traces software requirements to system requirements; refine traces variant-level requirements
to the family-level requirements they customize; and satisfy allocates requirements to features and components.
METHOD
We now summarize the proposed method to model systems with variability using SysML; a detailed description of
a previous version is available elsewhere [15]. The method
uses pervasive traceability through the system model, as
required by ARP4754A and DO-178C. According to DO331 [19], the model, in its most comprehensive form, can
cover system design, software requirements, and software design; system requirements must be provided in textual form,
but may be supplemented with diagrams in the model.
The core of the method relies on dividing the model into
two parts, a family model and variant models. The family
model describes the architecture common to all products in
the family; it highlights the parts that are common to them
294
Traceability
System Software
Relationship Keyword
deriveReqt
Family Variant
refine
Requirement Block
Requirement Test Block
satisfy
verify
Description
Links higher-level and lower-level requirements, such as system and
software requirements
Links a variant-level requirement with the family-level requirement
that the variant-level requirement customizes.
Allocates requirements to system, software, and hardware blocks.
Links a requirement with the tests that verify that the requirement
has been satisfied.
4.2
<<Dlternative>>
calculate_new_angle
test
>closed_loop 7UXH@
body
<<Rptional>>
current_beta : angle
A variant model defines the architecture of a single system variant; it describes which of the variable parts of the
family model are present and it introduces new parts unique
to that variant. SysML enables this kind of specialization
and extension via subclassing and redefinition: blocks can be
specialized and extended by creating subclasses and linking
them to new blocks via property redefinition. The top-level
block, representing the system, will have one subclass for
each variant; this top-level block will represent the context
of the new variant. Feature blocks are subclassed and their
properties redefined to represent feature selections; for example, an optional property can be redefined as a mandatory one. Blocks representing system, software, and hardware components are subclassed in a similar way. New requirements, behaviors, blocks and connectors are created as
needed and are linked to the model elements of the variant.
With this approach, all changes are restricted to the new
system variant, leaving the family model untouched.
Finally, the variant model must follow the conditions and
restrictions imposed by the constraint blocks at the family
architecture level. Designers can leverage this information in
two ways. One option is to use the constraints to verify consistency; any deviation from the expected structure must be
reported as a violation to fix. Alternatively, the constraints
can guide the necessary changes to the model, which could
be applied via automatic model transformations. While the
proposed method works with existing SysML tools, tool extensions for constraint checking and model transformation,
such as generating an initial set of subclasses for a variant
model, are important future work.
5.
{FeatureID = SystemConfiguration.Propeller.Feedback}
Get Delta
test
blade_pressure
>open_loop 7UXH@
req_beta : angle
body
Speed To Delta
<<Rptional>>
current_speed: frequency
5.1
Activity Diagrams
BEHAVIORAL PATTERNS
This section focuses on representing variability in behavioral diagrams. Two major mechanisms support behavioral
variability: conditional execution and polymorphism. Conditional execution works best for small conditional fragments
or when the behavior needs to be shown in its calling context. Polymorphism allows encapsulating large behavioral
variations. Exposing content of variations in the calling context via conditional execution is particularly useful in early
lifecycle stages. Polymorphism can replace conditional execution in architectural design. The following subsections
focus on representing conditional execution in activity and
295
<<block>>
Propeller Mgr
values
Controller
Propeller Mgr
Remote Eng
proxy ports
<<proxy>> in_if : Mgr IN IF
<<proxy>> out_if : Mgr OUT IF
b
<<block>>
%ODGH3UHVVXUH&WO
<<Rptional>>
opt
d
proxy ports
{featureID: Config.Propeller.Synchrophasing}
<<proxy>> in_if : BP IN IF
<<proxy>> out_if : BP OUT IF
3. get re phase
0..1
<<block>>
Synchrophasing Mgr
<<block>>
<<FustomizationPoint>>
,FH3URWHFWLRQ0JU
proxy ports
proxy ports
<<proxy>> in_if : Synchrophasing Mgr IN IF
<<proxy>> out_if : Synchrophasing Mgr OUT IF
<<proxy>> ORJ_if : SyncphVQJ Mgr /2* IF>@
FRPSOHWH
GLVMRLQW
<<block>>
BP Open Loop
<<block>>
BP Closed Loop
proxy ports
proxy ports
6.
STRUCTURAL PATTERNS
6.1
5.2
Sequence Diagrams
Problem: How to represent optional or alternative fragments, with clear boundaries, in sequence diagrams?
Solution: Use opt or alt combined fragment [13], respectively. The first one specifies interactions that will execute
only if its guard evaluates to true (see Fig. 2). The second
one contains multiple alternative fragments, one of which
will execute depending on the guard returning true. To
control variability, guards refer to features; e.g., sync is an
attribute of Propeller Mgr, which may be bound to a feature using a constraint block. As in the previous pattern,
optional or alternative stereotype are used to indicate
product-line variability. If an actor or component lifeline
exists only within a fragment, it will not be included in the
variants that do not include the fragment.
Consequences: Optional and alternative combined fragments
have a clear visual representation. In some cases, a sequence
diagram containing many variable fragments may become
296
6.2
Alternative Components
6.3
6.4
Variable Ports
Optional Component
An optional component encapsulates optional functionality; a variant may or may not include it.
297
<<LQWHUIDFH%lock>>
AvionicsB'DWDB,)
<<full>>
engine_avionics_if : Engine_Avionics_IF
IORZSURSHUWLHV
<<proxy>>
avionics_data_port : Avionics_Data_IF
LQDPELHQWBWHPSHUDWXUH :&
RXWRLOBWHPSHUDWXUH&
LQFRQVROLGDWHGBZRZ%RROHDQ>@
LQQRVHBJHDUBZRZ%RROHDQ>@
LQOHIWBPDLQBJHDUBZRZ>@
LQULJKWBPDLQBJHDUBZRZ%RROHDQ>@
Avionics Bus
<<full>>
aiframe_avionics_if : Airframe_Avionics_IF
sw : Controller SW
<<proxy>>
: Avionics_Data_IF
within cables.
6.5
airframe : Airframe
Variable Connectors
298
Content Type
<<block>>
Avionics Bus
Blocks
Interface Blocks
Flow Properties
Redefined Properties
Redefined Flows
Activity Diagrams
references
<<block>>
Engine_Avionics_IF
<<block>>
Airframe_Avionics_IF
proxy ports
avionics_bus_port: Avionics Msg
avionics_bus_port : Avionics Msg>@
avionics_data_port: Avionics_Data_IF
proxy ports
avionics_bus_port : Avionics Msg
DYLRQLFVBEXVBSRUW$YLRQLFV0VJ>@
avionics_data_port : Avionics_Data_IF
parts
input_processor : Bus Input Processor
data_unpacking : Bus Data Unpacking
<<proxy>>
avionics_data_port
<<proxy>>
avionics_EXV_port>@
<<proxy>>
avionics_EXV_port
Avionics Bus&K
Avionics Bus&K
<<participant>>
airframe_avionics_if : Airframe_Avionics_IF
<<proxy>>
avionics_EXV_port>@
CS2
Variants
12
8
0
36
13
2
CS2
Family
60
101
309
14
<<participant>>
engine_avionics_if : Engine_Avionics_IF
CS1
Family
72
83
27
11
<<proxy>>
avionics_data_port
7.
7.1
Research Methodology
7.2
7.3
Feedback Session
299
300
7.4
The objective was to test the method on a real-world problem from the industry partner. A Fuel-Control Unit (FCU)
is a part of the engine control system responsible for modulating the fuel flow into the combustor. The subject of
CS2 was to create a configurable and reusable system model
covering a wide range of FCUs used at P&WC; the controlsoftware aspect of the model will be eventually implemented
as a reusable software library. The first author performed
the work on the company premises under the supervision
of their engineers over a period of three months. The work
applied the method; however, the system requirements and
design alternatives were extracted from five existing engines,
representative of the wide range of engines made by P&WC,
including one turboprop, one turbofan, and three turboshaft
engines. We summarize the experience and findings.
Method. The family model has most of the content. It
covers significant variability, including alternative actuator
technologies (e.g., stepper motor vs. torque motor), sensor
configurations, and fault accommodation strategies. The
feature model has 20 common and 23 variable features; 20
requirements are mandatory, 20 requirements are optional,
and 9 requirements are optional variant-specific. Table 2
lists CS2 model statistics; the variants column considers the
union of all five variant models. We estimate the size of the
family model as somewhat larger than that of a dedicated
model for a single variant, but smaller than the size of two
dedicated models. Thus, there is a clear case for creating
and maintaing the family model.
Performing behavioral modeling first can help determine
the necessary structure. The initial attempt was to create
structural diagrams directly from requirements. Although,
the requirements came from actual engine specification documents that supposedly provided a complete understanding of the system, we found several points where matching
across the engines was unclear and requirements could be
interpreted dierently; even experts we worked with had
trouble resolving these points. We found that modeling the
behavior and applying the behavioral patterns helped us
solve this problem by providing a clear picture of the actual functionality, the necessary inputs and outputs, and
locations and scope of variability. With this information
creating structural diagrams became straightforward, as the
decomposition could be extracted almost directly from the
activity diagrams.
Tool supported consistency analysis is needed. CS2 had 13
constraint blocks containing constraints in natural language.
Only a subset of the necessary integrity constraints was captured. This part of the model is highly complex and very
dicult to model correctly and completely without tool support such as constraint satisfaction checking and constraint
debugging. Current commercial tools lack such a support.
Behavioral patterns. Conditional nodes were adequate
for CS2. CS2 had 40 diagrams, including 14 activity dia-
8.
THREATS TO VALIDITY
The main threat to external validity is that the two studied systems may not be representative of other avionic systems. The method was evaluated in the context of airplane engine control, a particular type of avionic system; it
is a relatively closed system, concerned mostly with modedependent continuous control, and extremely safety-critical
(the entire system is classified as DAL A). Further, the FCU
controller had flow-based behavior; other parts of engine
control are dierent; for example, governing additionally requires state machines to capture its complex modes and
transitions. There is a wide range of avionic systems on
an aircraft; some are similarly critical and involve modedependent continuous control, such as flight guidance; some
use more complex data, such as flight management and navigation systems; and some have lower criticality levels, such
as entertainment systems. More work is required to validate
the SysML patterns on a range of avionic systems.
A threat to construct validity of CS2 is that the method
was applied by a researcher. Even though he visited the
company for nine months during this research, the experience made by engineers employed by the company may
be have been significantly dierent. There is also a threat
of confirmation bias. The feedback session was limited to
two highly-experienced architects, but other engineers could
have had dierent opinions.
Finally, the work presented in this paper was evaluated
using a new family architecture model using existing products as variants. Other situations, such as when variability
is introduced incrementally, require additional studies.
301
9.
RELATED WORK
(note that all of our patterns also apply to UML since they
use constructs that SysML inherits from UML). Although
Friedenthal et al. [8] give an excellent guidance for the use of
SysML in systems modeling, they do not give explicit guidance on modeling variability; for example, no example in
the book uses multiplicity 0..1 to express an optional component, port, or connector. Our pattern catalog focuses on
problems in modeling variability in SysML, alternative solutions to these problems, and their trade-os; we also report
on lessons learned from applying the method and catalog.
10.
CONCLUSION
Acknowledgment
This research was supported by Pratt & Whitney Canada.
The authors would like to thank Michael Darby, Kim George,
and Bran Selic for their valuable feedback.
11.
REFERENCES
302