<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>fSysML: Foundational Executable SysML for Cyber- Physical System Modeling</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Omar Badreddin</string-name>
          <email>obbadreddin@UTEP.edu</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vahdat Abdelzad</string-name>
          <email>v.abdelzad@uottawa.ca</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Timothy C. Lethbridge</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Maged Elaasar</string-name>
          <email>melaasar@gmail.com</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>EECS, University of Ottawa</institution>
          ,
          <addr-line>Ottawa, Ontario</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Modelware Solutions, La Canada Flintridge</institution>
          ,
          <addr-line>CA 91011</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Texas</institution>
          ,
          <addr-line>El Paso El Paso, Texas</addr-line>
          ,
          <country country="US">U.S.A</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>System engineers are heavy users of modeling and design languages such as SysML. These design languages enable them to design, refine, verify, and test systems early in development. On the other hand, and especially with the emergence of agile methodologies, design and development activities in software engineering are intermingled and performed in iterations. Modern systems, however, exhibit increasing interdependence between software and physical components. Hence, there is a growing need to develop design languages that can bridge the gap between system and software engineering communities. This paper proposes fSysML, a foundational and executable subset of SysML geared towards facilitating the development of modern Cyber-Physical Systems. fSysML defines both a surface syntax for a SysML subset, and an executable semantics that is directly mapped to a modern object-oriented language. fSysML is demonstrated by the development of a self-adaptive system from the healthcare domain.</p>
      </abstract>
      <kwd-group>
        <kwd>SysML</kwd>
        <kwd>UML</kwd>
        <kwd>Cyber-Physical Systems</kwd>
        <kwd>Self-Adaptive Systems</kwd>
        <kwd>Textual Language</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Cyber-Physical Systems (CPS) are integrations of computation, networking, and
physical processes [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Software and networks monitor and control the physical
processes, with feedback loops where physical processes affect computations and vice
versa [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. One of the key characteristics of such systems is their close integration and
interdependence of both software and hardware components.
      </p>
      <p>Software and hardware components are typically developed following different
development processes and methodologies. One key distinction is propensity to
change. In the software world, change is embraced and can influence many aspects of
development. While in the physical world, it is costly and cannot be accommodated
without significant cost.</p>
      <p>As a result, software and systems engineers have different perspectives regarding
design and development activities. System engineers adopt modeling and design
whole-heartedly, and do not typically require modeling languages to be executable. In
fact, execution for a systems engineer often refers to execution of a simulation or
model-based testing. System engineers rely on precise and elaborate models to test
and verify systems before the commencement of development activity. Moreover,
design models are the gold standard against which any development artifact needs to
be tested.</p>
      <p>Software engineers, on the other hand, utilize more integrated approaches and
work iteratively and incrementally. Modern agile software development processes
encourage the delivery of an executable artifact at every iteration. These partially
complete software systems are used to discover additional requirements, and feed into
planning, scheduling and staffing management.</p>
      <p>With the emergence of CPSs, there is an emerging need for platform and design
languages that can accommodate both system and software development processes. In
this paper, we address this emerging need by introducing fSysML; foundational
SysML for CPSs. fSysML defines a textual surface language for a subset of SysML
and integrates this subset with an executable subset of UML. The result is a language
that can define many aspects of CPS properties, including Blocks, Requirements,
Goals, Users, Use Cases, as well as behavioral and compositional aspects. We
demonstrate fSysML using the design of a self-adaptive system from the healthcare
domain. Self-adaptive systems demonstrate further interdependencies between both
software and physical components, making it ideal for the demonstration of fSysML.</p>
      <p>This paper is organized as follows. We introduce the motivation and significance
of this research in Section 2. A background on self-adaptive systems, system
modeling and MDE is introduced in Section 3. Section 4 introduces a running example
followed by detailed explanation of fSysML in Section 5. The language grammar and
related work are covered in Section 6 and 7 respectively. Finally, we conclude with a
discussion of future work and conclusion.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Motivation and Significance</title>
      <p>The authors of this paper are actively collaborating with a national aerospace agency
and are investigating a roadmap for adoption of Model Driven Engineering (MDE)
paradigm. From early stages of the investigation, the researchers observed a
significant discrepancy between system and software engineers. The bulk of the
development effort in the system engineering side is closely related to development of various
types of design models. Key approvals, certifications, and testing are performed
against system models. Software is treated as a black-box component with elaborate
behavioral specification. The software engineers use design models sparingly and
typically target development of an executable artifact.</p>
      <p>Systems engineers reported on their need for a textual syntax, equivalent to the
visual representation, of their SysML models. The rationale is that text can be
versioned and merged more effectively along with the software artifacts. Furthermore, it
maybe easier to manipulate and layout textual artifacts than visual models,
particularly as models become large and complex. More importantly, such a textual language
will facilitate collaboration and integration between system and software engineers.
This observation has motivated the research presented in this paper; namely, the
development of a textual SysML language that can enable effective collaboration
between both software and system engineers.
2.1</p>
      <sec id="sec-2-1">
        <title>Significance</title>
        <p>
          There is a recognized conflict between MDE and agile methodologies [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. MDE
promotes upfront designs, where models become the key development artifacts.
Agile, on the other hand, promotes shorter development cycles by focusing on delivering
executable partial systems. This conflict becomes even more prominent in the
development of CPSs. Solving this conflict has the potential to significantly improve the
development practices of CPSs. More importantly, it can help resolve a long-standing
challenge in the software engineering community; namely, the limited adoption of
MDE practices [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ].
        </p>
        <p>
          There is significant evidence that software engineers do not in fact adopt UML and
modeling as much as desired [
          <xref ref-type="bibr" rid="ref1 ref6">1, 6</xref>
          ]. Studies of software engineers in the wild suggest
multitude of limitations with MDE methodologies including: 1) challenges with
versioning and merging of models [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] 2) limitations with model inter-changeability and
portability [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] 3) inadequacy of MDE in development of small systems [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], 4) lack of
adequate support for model based collaboration [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Background</title>
      <p>In this section, we introduce background on system and software modeling, and
selfAdaptive systems.
3.1</p>
      <sec id="sec-3-1">
        <title>Model Driven Software Engineering</title>
        <p>The Object Management Group (OMG) has adopted a vision where models become
the key development artifacts, from which executable elements can be generated. The
premise includes improved productivity and quality of software systems. UML has
emerged as the de facto modeling notation in software engineering and has been well
evaluated academically.</p>
        <p>
          Since UML is a general-purpose modeling notation, not all of its elements have
well-defined execution semantics. This has resulted in numerous challenges for the
development of precise models. As a result, OMG has defined a subset of UML with
defined semantics called Foundational UML (fUML) [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. Action Language for
Foundational UML (ALF) is an executable language that defines actions for fUML [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
ALF has been designed to look like modern object-oriented languages to facilitate
adoption by software engineers. fUML and ALF’s emergence has in part informed
and influenced the development of fSysML.
3.2
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>System Modeling</title>
        <p>The landscape of system modeling is more complex. System engineers use a wider
variety of modeling notations and design languages. System designs are used not only
to test and verify the system, but also to derive the cost and schedule associated with
its development. In this paper, we use SysML as the representative system design
language, but the approach proposed in this paper can be applicable beyond SysML.</p>
        <p>SysML borrows many notations from UML; this includes use case modeling,
structural modeling, and behavioral modeling using a variant of UML state machines.
SysML adds additional design notation to model requirements, blocks and
components, and system parameters.
3.3</p>
      </sec>
      <sec id="sec-3-3">
        <title>Self-Adaptive Systems</title>
        <p>
          Self–adaptive systems have the unique property of dynamically adapting to changes
in environment, operating context, or changes in system goals or priorities [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
Selfadaptation strategies are typically implemented at the architecture level by identifying
adaptation strategies and mechanisms for dynamic applications of such strategies at
run time [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. Whether a specific strategy is effective or not is typically measured by
measuring the quantified outcome or performance of the entire system. Such
quantitative evaluation is typically performed at runtime [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ].
        </p>
        <p>Self-adaptation is realized by identifying and implementing a number of adaptation
strategies or tactics. Tactics application is performed in response to an external
change in the operating environment or deterioration in system performance, and aims
at improving one or more of the system’s goals. Take for example a web server that is
supposed to service user requests. The system’s goals may include speedy responses,
and to keep the number of time-out requests to a minimum. At peak hours when
performance declines, the web-server may apply a performance tactic such as load
sharing with a back-up server.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Running Example</title>
      <p>To demonstrate fSysML, we use a self-adaptive monitoring system from the
healthcare domain. The monitoring system reports on patients key vital signs in real
time and notifies specific caregivers when certain conditions are present. The overall
goal of the system is to speed patient discharge from the Heart Unit and reduce
perpatient costs; while at the same time maintaining a low re-admission rate and high
patient satisfactions (Appendix – Goal Model).</p>
      <p>Amongst the monitored vital signs, the heart rate and oxygen level are measured by
embedded sensors. These sensors produce a continuous stream of data. The system
analyzes the data on the fly and stores data points only when certain rules succeed.
The system behavior is driven in part by readings from these sensors (Appendix 1–
Behavior Model). The next section elaborates on this example further by highlighting
key language elements.</p>
      <p>fSysML Overview
fSysML targets system and software engineers in an integrated manner. As such, it
supports system and software modeling with little or no distinction. In the following
sections we will illustrate the language elements focusing on system modeling.
5.1</p>
      <sec id="sec-4-1">
        <title>System Goals and Objectives</title>
        <p>The language supports the definition of key system goals. A goal can be measured by
physical elements (such as a sensor) or by a combination of elements that can be
quantified by a Key Performance Indicator (KPI). Goals can be broken down into
sub-goals. In this case, two goals can both contribute to a higher-level goal through an
“AND” or an “OR” contribution. “And” contribution means the lower satisfaction of
the sub-goals is transferred to the super goal, while OR contribution means the higher
satisfaction is transferred to the super goal. Contributions may also be associated with
a weight. Listing 1 is an fSysML snippet that describes the system goals. A visual
depiction of System Goal is illustrated in the Appendix 1.</p>
        <p>goal Discharged {
contributesTo PatientSatisfaction{0.7};
stakeholder Patient, Physician; }
goal NormalHeartRate {
contributesTo Discharge{0.5};
stakeholder Patient, Physician;
KPI heartRateMeasurement threshold = 50;
failureLimit = 0;
correctiveAction = heartRateTreatment; }
goal NormalBloodOxygenLevel {
contributesTo Discharge{0.5};
stakeholder Patient, Physician;
KPI bloodOxygenMeasurement threshold = 25;
failureLimit = 0;
correctiveAction = oxygenTreatment; }
goal LowCost {
contributesTo PatientSatisfaction{0.3};
stakeholder Patient, Physician; }
softGoal PatientSatisfaction {
stakeholder Patient, Physician;
decompositionType = 'and'; }</p>
        <p>Listing 1. System Goals and Goal Compositions
5.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>System Failure and Failure Tolerance</title>
        <p>Not all system goals need to succeed at all times. For example, if an
oxygensupplying system is not connected to a patient, then oxygen concentration levels need
not be above a threshold. Some goals can fail sometimes without repercussions, and
some goals cannot fail at all. This is defined by modeling the failure limit. A failure
limit of one means that if a goal fails once, an adaptive action must be taken (adaptive
actions are discussed later). Similarly, a failure limit of two means that a goal can fail
twice over a specified period of time without repercussions (i.e, associated adaptive
action will be applied after the second goal failure occurrence). A failure limit of zero
means that a specific goal should not be allowed to fail at all. In such a case, the
system must apply rules to take precautionary actions if the goal trends towards failure.
5.3</p>
      </sec>
      <sec id="sec-4-3">
        <title>Adaptive Actions</title>
        <p>A goal failure, even if permitted, may or may not trigger an adaptive action. An
adaptive action is defined by a set of instructions (or tactics) with the aim of eliminating or
reducing the reoccurrence of goal failure. The effectiveness of a particular adaptive
action is measured by 1) the satisfaction of the goal immediately connected to the
adaptive action element and 2) the top-level system goal satisfaction. Adaptive
actions are defined algorithmically using ALF.
5.4</p>
      </sec>
      <sec id="sec-4-4">
        <title>Scenarios (Processes) and Tasks</title>
        <p>A scenario or a process is a sequence of tasks that can take place in a defined
sequence. The sequence can be dependent on conditions or actions that can occur at run
time. fSysML supports the definition of scenarios, join and fork control flows. As
shown in the following example (Listing 2), the scenario Triage contributes to the
goal Discharge. In this scenario, if a treatment is required, then the path along the
treatment task is taken. Otherwise, the path along discharge task is taken.
task Treat { form DischargeForm {
actor Physician; date mandatory;
dependsOn TreatmentForm; } time optional;
Patient.firstName mandatory;
task Discharge { Patient.lastName mandatory;
actor Physician; Physician.firstName mandatory;
dependsOn DischargeForm; } Physician.lastName mandatory;
.. }
task OxygenTreatment {</p>
        <p>actor Physician; }
task HeartRateTreatment {
actor Physician;
form TreatementForm; }
scenario Triage {
satisfies Discharged;
[needsTreatment]?
{Treat}:{Discharge}; }
form TreatmentForm {
date mandatory;
time mandatory;
Patient.firstName mandatory;
Patient.lastName mandatory;
Patient.diagnosis mandatory;
Patient.diagnosisCode mandatory;
Physician.firstName mandatory;
Physician.lastName mandatory;</p>
        <p>Physician.employeeID mandatory;}</p>
        <p>Listing 2. Tasks and Scenarios
5.5</p>
      </sec>
      <sec id="sec-4-5">
        <title>Behavioral Modeling</title>
        <p>fSysML defines a textual syntax for UML state machines to define system behavior.
The state machine subset supported by fSysML includes states, events, guards,
transitions, actions, entry, do, and exit activities.</p>
        <p>At the top level of the state machine in Listing 3, the system is functioning under
one of two states, Normal and Abnormal. In both states, the streams of sensor data is
received and analyzed. If data streams show abnormalities, the system continues to
monitor but is now functioning under the abnormal state. While in the Abnormal
state, the system may itself trigger some corrective actions to try to remedy the
deficiencies. If successful, the system may return to the Normal state. These behavioral
elements specify the behavior of some system components or Blocks (discussed in the
next subsection). In this example, we illustrate the behavioral modeling for the
monitor control unit.</p>
        <p>
          The state machine syntax is an extension of Umple’s state machine modeling
syntax [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. Umple is a model oriented UML Action Language. We extended Umple’s
syntax, rather than extending ALF’s syntax for two reasons; 1) ALF’s state machine
syntax is under development and has not been standardized to date, and 2) ALF’s
syntax is declarative (the syntax declares states and transitions in a linear fashion).
We found Umple’s syntax to have better comprehension based on the feedback from
our system engineer collaborators.
        </p>
        <p>// From BDD :
block ControlUnit {
..
..</p>
        <p>block HR_Sensor {
// behavioral definition
state Normal {
region HR_Sensing {</p>
        <p>NormalRate {
entry/{ updateDisplay();}
do{monitor_HR();</p>
        <p>analyze_HR_Rule();}
Abnormal_HR_Detected-&gt;Abnormal_HR;}
}
region Dormant { .. }
}
state Abnormal { .. } } }</p>
        <p>Listing 3. Behavioral Model
block HR_Sensor {
parts:
protective_housing,
mount_assembly,
sensor_module,
electronics_assembly,
display
values:
dimension: Size
power: Width
field_of_sensing: int
orientation: int
flow_ports:
in_ligh_in: Light
sensor_IO: Sensor_interface
standard_ports:
control: Sensor_signal }</p>
        <p>Listing 4. Block Definition
5.6</p>
      </sec>
      <sec id="sec-4-6">
        <title>System Block Definitions and Component Modeling</title>
        <p>
          Block Definition Diagrams (BDD) are an important part of system modeling [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
fSysML models physical aspects of the system following SysML specifications, but
in a way to facilitate its integration with other aspects of software modeling. Listing 4
illustrates a block definition for the Hear Rate Sensor. Listing 5 illustrates the
composition of the Monitoring Unit, of which the Heart rate Sensor is a part of.
        </p>
        <p>A block has four groups of properties; namely, parts, values, flow ports and
standard ports. The Block Definition Diagram (BDD) describes composition relationships
denoted by --- (Listing 5). For example, HR_Sensor is composed of three External
Wirings, one enclosure and one battery. The syntax for blocks and block definitions is
different than the rest of fSysML syntax. For example, dimension is of type size. One
would expect that the type would precede the name of the attribute such as follows:
values {
size dimension; }</p>
        <p>This choice of syntax may in fact look unusual for a software engineer. This choice
in fSysML was influenced by 1) SysML visual diagrams, and 2) system engineers’
preferences.
5.7</p>
      </sec>
      <sec id="sec-4-7">
        <title>Users, Actors and User Groups</title>
        <p>fSysML defines users of the systems, and user groups that can share a common
characteristics, such as access privilege. A specific instance of a user is referred to as an
Actor. Users, Actors and User Groups can participate in a scenario, and may be
assigned to tasks. Users and Actors need not be a human actor, but can be any other
subsystem or a block.</p>
        <p>bdd MonitoringComponent { actor Patient {
bdd HR_Sensor { int patientID;
1 --- 3 External_Wiring; string firstName;
1 --- 1 Enclosure; string lastName;
1 --- 1 Battery; } int diagnosisCode; }
bdd Oxygen_Sensor { .. }
.. actor CareProvider; {
.. int current_heart_rate;
bdd Enclosure { int target_heart_rate;
1 --- 1 front_housing; int current_blood_oxygen;
1 --- 1 back_housing; int target_blood_oxygen; }
1 --- 2 secure_strap;
.. actor Physician {
.. int employeeID;
} } .. }</p>
        <p>Listing 5. Block Definition Modeling Listing 6. System Actors
6</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Language Grammar</title>
      <p>
        fSysML is developed using Xtext [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], a platform for DSL development. The
grammar is defined using a BNF-like syntax. Listing 7 illustrates key languages elements,
some of which has been discussed in previous sections. Here, we briefly discuss the
elements that have not been presented in the previous sections.
      </p>
      <p>The language supports tagging model elements. Tagged values appear between
curly brackets and may have typed data elements. Tagging is useful when engineers
want to analyze a subset of the system elements. For example, a subset of system
elements may be selected for regression testing, or for measuring overhead costs. A
Soft Goal is similar to a Goal, except that a Soft Goal typically refers to a
nonfunctional aspect of the system. Nevertheless, a Soft Goal may still be quantified
using a KPI. A scenario may itself contain other scenarios. fSysML treats a task as a
unitary action that cannot be further broken down.</p>
      <p>fSysML:
elements+=(Actor|Usergroup|KPI|Goal|Softgoal|stateMachine|Block|BDD)*;
Contribution:
contributesTo' (goals += [Goal]|goals += [Softgoal])'{'weight = INT'};';
TaggedValue:
'taggedValue' '=' '{'(ID '=' Datatype',')*(ID '=' Datatype)'}';
KPI:
'KPI' name=ID'{'(TaggedValue)?(goals_contributed_to +=Contribution)*'};';
Goal:
'Goal' name = ID '{'(TaggedValue)? (goals_contributed_to += Contribution)*
('Stakeholder' actors += [Actor]';')+ (('KPI' indicators += [KPI]';')* |
('SoftGoal' softgoals += [Softgoal]';')*)('decompositionType' '='
dType=DecompositionType';')? '};' ;</p>
      <p>Softgoal:
'SoftGoal' name = ID '{'(TaggedValue)? (goals_contributed_to +=
Contribution)+ ('Stakeholder' actors += [Actor]';')+ (('KPI' indicators += [KPI]';')*
| ('SoftGoal' softgoals += [Softgoal]';')*) '};';</p>
      <p>Task:
'Task' name = ID '{'(TaggedValue)? 'Actor' actor += [Actor]';' ('Form' forms
+= [Form]';')* '}' ;</p>
      <p>Scenario:
'Scenario' name = ID '{'('satisfy' satisfied_goals += [Goal])+('depends'
dependent_forms += [Form])+ (tasks += [Task]'-&gt;')+ ('['boolean'],
{'ss_one+=SubScenario'},{'ss_two+=SubScenario'}'|(tasks += [Task]';') ;
SubScenario:
(tasks += [Task]'-&gt;')+ ('['boolean'],{'ss_one+=SubScenario'},
{'ss_two+=SubScenario'}'|(tasks += [Task]';') ;</p>
      <p>Listing 7. Part of fSysML Grammar
7</p>
    </sec>
    <sec id="sec-6">
      <title>Related Work</title>
      <p>
        There has been numerous and growing trend in supporting textual UML modeling.
Such approaches have materialized in a number of tools. textUML supports a library
and an API for creating UML diagrams using Java syntax [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. tUML is another tool
that supports both visual and textual modeling of UML [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. tUML allows engineers
to mix-in code elements along with the textual UML models. Key goal of tUML is to
facilitate the quick and easy manipulation of sketchy UML models. PlantUML is a
textual and verbose modeling tool that focuses on flexibility [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. Actions in
PlantUML supports unstructured textual elements that do not comply with a meta-model.
      </p>
      <p>
        fSysML extents the standard SysML language with goal modeling. This is used to
help assess adaptive actions effectiveness. Laleau et al [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] have proposed an
approach to combine SysML with requirement modeling that includes extending SysML
with Goal Modeling. Their approach entails formal specifications of Goals using B
language [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Vahdat et al [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] have proposed a textual Goal Modeling using the
GRL standard [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. Vahdat’s approach follows GRL standard strictly to facilitate
transformations between the textual and visual manifestation. fSysML goal models
are designed specifically to support self-adaptation by quantifying adaptive actions at
various levels of goals hierarchy.
      </p>
      <p>
        Manzoor [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] and Derler [31] proposed a Domain Specific Language (DSL) for
modeling of self-adaptive System. Their approach treats self-adaptation as a special
type of requirements (requirements under uncertainty). The proposed DSL integrates
elements of RELAX [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ], a requirement engineering language for self-adaptive
systems, into the proposed DSL. Recognizing the heterogeneity in cyber-physical and
self-adaptive systems, Heinzemann et al [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] have proposed a development process
that spans the multiple disciplines involved in the development of such systems. The
proposed process focuses on the integration control engineering and software
engineering. fSysML is well suited for such integrated processes.
8
      </p>
    </sec>
    <sec id="sec-7">
      <title>Future Work and Conclusion</title>
      <p>Cyber-Physical Systems exhibit greater interplay between both physical elements and
software elements, with significant feedback loops and shared controls. Development
of such systems requires both software and system engineers to collaborate. Where
modern software engineers follow an iterative and incremental processes, system
engineers adopt disciplined design-oriented processes.</p>
      <p>To facilitate the development of Cyber-Physical Systems, we propose a design
language that encompass the following key properties. 1) Enables the design and
modeling of both physical and software elements. This is achieved by defining a subset of
SysML and specifying a surface textual syntax for that subset. The result is integrated
with a textual syntax for modeling of software elements. 2) Eliminates to the greatest
extent possible the distinction between physical and software elements. This is
achieved by defining a uniform language for both types of elements.
8.1</p>
      <sec id="sec-7-1">
        <title>Parametric and Constraints modeling</title>
        <p>
          Parametric modeling definition in the language is ongoing. Parametric modeling
for systems supports trade-off analysis, model based testing, and typically supports
the definition and execution of system level constraints. We are investigating the use
of a language such as OCL [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] to help define constraints and parametric aspects of
system modeling. These investigations include introducing an OCL or an OCL-like
syntax as a unit test in fSysML. This requires that parameters that are used in
parametric modeling must be defined in fSysML structural models, or as part of Block
Definition modeling.
8.2
        </p>
      </sec>
      <sec id="sec-7-2">
        <title>Environment, Risks, and Uncertainty</title>
        <p>CBS function in an environment exhibiting continuous properties with many
sources of uncertainties. How to effectively model risks and uncertainties and present
it as integral elements in the language is yet to be investigated. Effective modeling of
these elements contributes to addressing key state-of-the-art research challenges,
including 1) model testing of cyber-physical systems under uncertainties [32], 2) model
based analytics of CBS [33], among others.</p>
        <p>System requirements is another area of ongoing investigations. In SysML,
requirements are defined in a hierarchical fashion. A requirement may have attributes
such as an ID and text, and may be related to one or more modeling elements. To
implement this in fSysML, we must introduce new concepts, such as satisfies (or
isSatisfiedBy), contributesTo (or contributedToBy), and realize (or realizedBy).
These concepts will relate requirement elements to various system and software model
elements. Semantics of such concepts must have implications to testing and analysis
activities. For example, a change of a model element should be reflected to all related
elements in requirements. Unit testing should cover all requirements contribute to
relationships and other modeling elements.
30. Whittle, Jon, et al. "RELAX: a language to address uncertainty in self-adaptive systems
requirement." Requirements Engineering 15.2 (2010): 177-196.
31. Derler, Patricia, Edward A. Lee, and Alberto Sangiovanni Vincentelli. "Modeling cyber–
physical systems." Proceedings of the IEEE 100.1 (2012): 13-28.
32. Briand, Lionel, Shiva Nejati, Mehrdad Sabetzadeh, and Domenico Bianculli. "Testing the
untestable: model testing of complex software-intensive systems." In Proceedings of the
38th International Conference on Software Engineering Companion, pp. 789-792. ACM,
2016.
33. Sharma, Abhishek B., Franjo Ivančić, Alexandru Niculescu-Mizil, Haifeng Chen, and
Guofei Jiang. "Modeling and analytics for cyber-physical systems in the age of big data."
ACM SIGMETRICS Performance Evaluation Review 41, no. 4 (2014): 74-77.</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>APPENDICES</title>
      <p>Appendix 1: Behavioral Model</p>
      <sec id="sec-8-1">
        <title>Appendix 2: Goal Model</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Shi</surname>
          </string-name>
          ,
          <string-name>
            <surname>Jianhua</surname>
          </string-name>
          , et al.
          <article-title>"A survey of cyber-physical systems</article-title>
          .
          <source>" Wireless Communications and Signal Processing (WCSP)</source>
          ,
          <source>2011 International Conference on. IEEE</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>Edward A.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Sanjit</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Seshia</surname>
          </string-name>
          .
          <article-title>"Introduction to Embedded Systems, A cyber physical approach”</article-title>
          .
          <source>First Edition</source>
          , (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Mohagheghi</surname>
          </string-name>
          ,
          <string-name>
            <surname>Parastoo</surname>
          </string-name>
          , et al.
          <article-title>"An empirical study of the state of the practice and acceptance of model-driven engineering in four industrial cases."</article-title>
          <source>Empirical Software Engineering 18.1</source>
          (
          <year>2013</year>
          ):
          <fpage>89</fpage>
          -
          <lpage>116</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Petre</surname>
            ,
            <given-names>Marian.</given-names>
          </string-name>
          <article-title>"“No shit” or “Oh, shit!”: responses to observations on the use of UML in professional practice</article-title>
          .
          <source>" Software &amp; Systems Modeling 13.4</source>
          (
          <year>2014</year>
          ):
          <fpage>1225</fpage>
          -
          <lpage>1235</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Badreddin</surname>
            , Omar, Timothy C. Lethbridge, and
            <given-names>Andrew</given-names>
          </string-name>
          <string-name>
            <surname>Forward</surname>
          </string-name>
          .
          <article-title>"A novel approach to versioning and merging model</article-title>
          and
          <source>code uniformly." 2nd International Conference on Model-Driven Engineering and Software Development (MODELSWARD)</source>
          ,
          <year>2014</year>
          . IEEE,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Huang</surname>
            , Shihong,
            <given-names>Vaishali</given-names>
          </string-name>
          <string-name>
            <surname>Gohel</surname>
            , and
            <given-names>Sam</given-names>
          </string-name>
          <string-name>
            <surname>Hsu</surname>
          </string-name>
          .
          <article-title>"Towards interoperability of UML tools for exchanging high-fidelity diagrams</article-title>
          .
          <source>" 25th Annual ACM international Conference on Design of Communication. ACM</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Stevens</surname>
          </string-name>
          , Perdita.
          <article-title>"Small-scale XMI programming: a revolution in UML tool use?"</article-title>
          <source>Automated Software Engineering 10.1</source>
          (
          <year>2003</year>
          ):
          <fpage>7</fpage>
          -
          <lpage>21</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Dobing</surname>
            , Brian, and
            <given-names>Jeffrey</given-names>
          </string-name>
          <string-name>
            <surname>Parsons</surname>
          </string-name>
          .
          <article-title>"How UML is used</article-title>
          .
          <source>" Communications of the ACM 49.5</source>
          (
          <year>2006</year>
          ):
          <fpage>109</fpage>
          -
          <lpage>113</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Lazar</surname>
            ,
            <given-names>Codrut</given-names>
          </string-name>
          <string-name>
            <surname>Lucian</surname>
          </string-name>
          , et al.
          <article-title>"Using a fUML Action Language to construct UML models." Symbolic and Numeric Algorithms for Scientific Computing (SYNASC</article-title>
          ),
          <source>2009 11th International Symposium on. IEEE</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Badreddin</surname>
            , Omar, Timothy C. Lethbridge, and
            <given-names>Andrew</given-names>
          </string-name>
          <string-name>
            <surname>Forward</surname>
          </string-name>
          .
          <article-title>"Investigation and evaluation of</article-title>
          <source>UML Action Languages." 2nd International Conference on Model-Driven Engineering and Software Development (MODELSWARD)</source>
          ,
          <year>2014</year>
          . IEEE,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Huang</surname>
            , Edward,
            <given-names>Randeep</given-names>
          </string-name>
          <string-name>
            <surname>Ramamurthy</surname>
            ,
            <given-names>and Leon F.</given-names>
          </string-name>
          <string-name>
            <surname>McGinnis</surname>
          </string-name>
          .
          <article-title>"System and simulation modeling using SysML." 39th conference on Winter simulation: 40 years! The best is yet to come</article-title>
          . IEEE Press,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Hailpern</surname>
            , Brent, and
            <given-names>Peri</given-names>
          </string-name>
          <string-name>
            <surname>Tarr</surname>
          </string-name>
          .
          <article-title>"Model-driven development: The good, the bad, and the ugly</article-title>
          .
          <source>" IBM systems journal 45.3</source>
          (
          <year>2006</year>
          ):
          <fpage>451</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Forward</surname>
            , Andrew,
            <given-names>Omar</given-names>
          </string-name>
          <string-name>
            <surname>Badreddin</surname>
          </string-name>
          , and
          <string-name>
            <surname>Timothy</surname>
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Lethbridge</surname>
          </string-name>
          .
          <article-title>"Perceptions of software modeling: a survey of software practitioners." 5th workshop from code centric to model centric: evaluating the effectiveness of MDD (C2M: EEMDD)</article-title>
          .
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Warmer</surname>
          </string-name>
          , Jos B., and
          <string-name>
            <surname>Anneke</surname>
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Kleppe. "The Object Constraint Language: Precise Modeling With UML (Addison-Wesley Object</surname>
          </string-name>
          Technology Series).
          <source>"</source>
          (
          <year>1998</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Badreddin</surname>
          </string-name>
          , Omar.
          <article-title>"Umple: a model-oriented programming language."</article-title>
          <source>Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 2. ACM</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Eysholdt</surname>
            , Moritz, and
            <given-names>Heiko</given-names>
          </string-name>
          <string-name>
            <surname>Behrens</surname>
          </string-name>
          .
          <article-title>"Xtext: implement your language faster than the quick and dirty way." Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion</article-title>
          .
          <source>ACM</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Oreizy</surname>
            , Peyman, Michael M. Gorlick, Richard N. Taylor, Dennis Heimbigner, Gregory Johnson, Nenad Medvidovic, Alex Quilici,
            <given-names>David S.</given-names>
          </string-name>
          <string-name>
            <surname>Rosenblum</surname>
            ,
            <given-names>and Alexander L.</given-names>
          </string-name>
          <string-name>
            <surname>Wolf</surname>
          </string-name>
          .
          <article-title>"An architecture-based approach to self-adaptive software</article-title>
          .
          <source>" IEEE Intelligent systems 14, no. 3</source>
          (
          <year>1999</year>
          ):
          <fpage>54</fpage>
          -
          <lpage>62</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>De</surname>
            <given-names>Lemos</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Giese</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            ,
            <surname>Müller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. A.</given-names>
            ,
            <surname>Shaw</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Andersson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Litoiu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            , ... &amp;
            <surname>Weyns</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          (
          <year>2013</year>
          ).
          <article-title>Software engineering for self-adaptive systems: A second research roadmap. In Software Engineering for Self-Adaptive Systems II (pp</article-title>
          .
          <fpage>1</fpage>
          -
          <lpage>32</lpage>
          ). Springer Berlin Heidelberg.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Aziz</surname>
            <given-names>B</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arenas</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bicarregui</surname>
            <given-names>J</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ponsard</surname>
            <given-names>C</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Massonet</surname>
            <given-names>P</given-names>
          </string-name>
          (
          <year>2009</year>
          )
          <article-title>From goal-oriented requirements to are Event-B specifications</article-title>
          .
          <source>In: First Nasa formal method symposium (NFM</source>
          <year>2009</year>
          ), Moffett Field, California, USA.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Calinescu</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ghezzi</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kwiatkowska</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Mirandola</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          (
          <year>2012</year>
          ).
          <article-title>Self-adaptive software needs quantitative verification at runtime</article-title>
          .
          <source>Communications of the ACM</source>
          ,
          <volume>55</volume>
          (
          <issue>9</issue>
          ),
          <fpage>69</fpage>
          -
          <lpage>77</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Laleau</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Semmak</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matoussi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Petit</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hammad</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Tatibouet</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          (
          <year>2010</year>
          ).
          <article-title>A first attempt to combine SysML requirements diagrams and B</article-title>
          .
          <source>Innovations in Systems and Software Engineering</source>
          ,
          <volume>6</volume>
          (
          <issue>1-2</issue>
          ),
          <fpage>47</fpage>
          -
          <lpage>54</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Chaves</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <year>2009</year>
          .
          <article-title>"TextUML"</article-title>
          . http://abstratt.github.io/textuml/readme.html
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Jouault</surname>
            , Frédéric, and
            <given-names>Jérôme</given-names>
          </string-name>
          <string-name>
            <surname>Delatour</surname>
          </string-name>
          .
          <article-title>"Towards Fixing Sketchy UML Models by Leveraging Textual Notations: Application to Real-Time Embedded Sys-tems."</article-title>
          <source>OCL@ MoDELS</source>
          .
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <article-title>PlantUML modeling tool</article-title>
          . Available online: http://plantuml.com/.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Abdelzad</surname>
          </string-name>
          , Vahdat, Daniel Amyot, and
          <string-name>
            <surname>Timothy</surname>
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Lethbridge</surname>
          </string-name>
          .
          <article-title>"Adding a Textual Syntax to an Existing Graphical Modeling Language: Experience Report with GRL."</article-title>
          <source>International SDL Forum</source>
          . Springer International Publishing,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Heaven</surname>
            , William, and
            <given-names>Emmanuel</given-names>
          </string-name>
          <string-name>
            <surname>Letier</surname>
          </string-name>
          .
          <article-title>"Simulating and optimising design decisions in quantitative goal models." 2011 IEEE 19th International Requirements Engineering Conference</article-title>
          . IEEE,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Whittle</surname>
          </string-name>
          ,
          <string-name>
            <surname>Jon</surname>
          </string-name>
          , et al.
          <article-title>"RELAX: a language to address uncertainty in self-adaptive systems requirement."</article-title>
          <source>Requirements Engineering 15.2</source>
          (
          <year>2010</year>
          ):
          <fpage>177</fpage>
          -
          <lpage>196</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Heinzemann</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sudmann</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schäfer</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Tichy</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2013</year>
          , May).
          <article-title>A disciplinespanning development process for self-adaptive mechatronic systems</article-title>
          .
          <source>In Proceedings of the 2013 International Conference on Software and System Process</source>
          (pp.
          <fpage>36</fpage>
          -
          <lpage>45</lpage>
          ). ACM.
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Ahmad</surname>
          </string-name>
          , Manzoor.
          <article-title>"First step towards a domain specific language for self-adaptive systems."</article-title>
          <source>In 2010 10th Annual International Conference on New Technologies of Distributed Systems (NOTERE)</source>
          , pp.
          <fpage>285</fpage>
          -
          <lpage>290</lpage>
          . IEEE,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>