<!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>How to define interface patterns in model-based system engineering</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Indraja Elžbieta Germanaitė</string-name>
          <email>indraja.germanaite@ktu.lt</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Centre of Information Systems Design Technology Kaunas University of Technology Kaunas</institution>
          ,
          <country country="LT">Lithuania</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Department of Information Systems Kaunas University of Technology Kaunas</institution>
          ,
          <country country="LT">Lithuania</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Fig. 1. The relationship between the System, the Model</institution>
          ,
          <addr-line>The Framework, the Ontology, and the Pattern, taken and modified from [4]</addr-line>
        </aff>
      </contrib-group>
      <fpage>54</fpage>
      <lpage>58</lpage>
      <abstract>
        <p>-The Patterns help system engineers to create efficient and more consistent System Models faster. Thus the methodology of quickly defining and describing the Patterns are needed. The review of the existing methodology of defining Interface Patterns is done in this article. As a result, the need for the new or more detailed ideas concerning the methodologies and implementations of the Patterns use could be identified.</p>
      </abstract>
      <kwd-group>
        <kwd>Model-based System Engineering</kwd>
        <kwd>MBSE Pattern</kwd>
        <kwd>MBSE Framework</kwd>
        <kwd>FAF</kwd>
        <kwd>Viewpoint</kwd>
        <kwd>SysML</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        The discipline and practice of Model-based System
Engineering (MBSE) follows the main concepts of the Systems
Engineering discipline. The Systems Engineering covers a
wide range of fundamental concepts such as system thinking,
system science, life cycle management, system of systems, and
agile and iterative methods [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. System thinking captures and
exploits what is common in a set of problems and
corresponding solutions in the forms of various types. Thus, a
pattern is a representation of similarities in a set of problems,
solutions, or systems [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        As already known from the object-oriented programming
practice, the design patterns facilitate the reusing of successful
designs and architectures, expressing proven techniques as
patterns and making them more accessible to developers of
new systems [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Patterns help to choose design alternatives
that make a system reusable, to avoid alternatives that
compromise reusability, and to improve the documentation and
maintenance of the existing systems [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. The patterns help the
designer (or the system engineer) get the design (or the
architecture) “right” faster.
      </p>
      <p>
        The term “pattern” appears repeatedly in the history of
design, such as civil architecture, software design, and systems
engineering [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In the MBSE context, a pattern could mean the
whole framework that covers entire systems and is used as a
reusable, configurable model of whole domains or platform
systems - whether formal platform management is already
recognized or not - or only as smaller-scale element design
patterns within them [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. The aim of this article is to look into
the methodology of defining and describing subsystem or
component patterns. In this case, the review of Pattern-Based
Systems Engineering methodology based on S*Models and
S*Patterns and dedicated to the complex systems is not in the
scope of this article.
      </p>
    </sec>
    <sec id="sec-2">
      <title>Copyright © 2017 held by the authors 54</title>
      <p>Prof. dr. Rimantas Butleris</p>
      <p>
        John Holt et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] explain that a Pattern is a special type of
the Framework and is made up of one or more Viewpoints,
each of which comprises one or more Viewpoint Elements. The
Viewpoint and Viewpoint elements are based on the Ontology,
providing consistency with the rest of the Model. The main
difference between a Framework and a Pattern is that a
Framework has a single purpose and single application, while a
pattern has a single purpose but multiple applications. For
example, the Interface Pattern may be used as part of several
Frameworks, at different level of abstractions, and in different
aspects of the Model [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Thus, the Pattern uses a template
itself – the Viewpoint - and also serves as a template for the
View. In addition, the Pattern could be understood as a
Framework, but the Framework may also use many different
Patterns for different purposes. So, the intent is to create an
initial 'ontology' of high-level Pattern descriptions that provide
a framework within which Pattern relationships can be
discussed [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
    </sec>
    <sec id="sec-3">
      <title>III. DEFINING PATTERNS</title>
      <p>
        Going deeper into the definition of a Pattern, John Holt et
al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] declare that the approach used to define each Pattern is
the same as the approach used to define the Framework, and
uses Framework for Architecture Frameworks (FAF). The FAF
was defined to address the key questions through the MBSE
approach based around the ideas of Ontology, Viewpoints, and
Framework, and consists of the Ontology, six Viewpoints, and
supporting processes [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. The six Viewpoints directly address
one of the six key questions that should be considered in order
to approach the Pattern definition in a consistent and repeatable
way [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. These key questions with the attached FAF
Viewpoints and Views are shown in Table I. It should also be
noted that the Views may be visualized using any notation,
text, tables, or formal techniques, and in any way that is
appropriate [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. The SysML is selected as the MBSE
Patterndefining language that is important and useful for its graphical
notation.
John Holt et al. give many examples of MBSE Patterns
defined according to the FAF method in their book [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. One of
the most common examples is the “Interface Definition
Pattern” chosen to illustrate MBSE Pattern definition in this
article because it can be used in both software and hardware
systems. More than that, interfaces form an integral part of any
systems model and define a contract between system elements,
whether those elements are physical or are realized in software
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Thus, the key aim of the Interfaces Pattern is the
identification of interfaces and their relation to the system
elements that use them and the ports that expose them [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>According to the FAF method for describing the “Interface
Definition Pattern”, the main aims of the “Interface Definition
Pattern” should be defined first. These aims are shown in the
Architectural Framework Context View in the form of SysML
Use Case Diagram in Figure 2.</p>
      <p>
        Second, the main concepts covered by the “Interface
Definition Pattern” should be defined in the Ontology
Definition View in the form of the SysML Block Definition
Diagram. John Holt et al. define the main Interface Pattern
concepts in their book [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]: an Interface has a Direction, which
may take the values “in”, “out”, and “inout”. The Direction
property shows the direction in which the Interface operates
from the point of view of the Port, owned by a System
Element, which exposes the Interface [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Each Interface is
described by an Interface Definition that defines the operations
of a Service-Based Interface and the items transferred by a
Flow-Based Interface [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. A Port represents the interaction
points between one or more System Elements and may
represent the concept of a software Port or a physical Port, such
as the connector for the fuel line on a car engine fuel pump [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
Ports are connected to each other via a Port Connection. Ports
and Interfaces may conform to one or more Protocols that
describe and control how the Port and the Interface behave [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        Third, the Viewpoints that make up the “Interface
Definition Pattern” should be described. This should be done in
the Viewpoint Relationships View in a form of the SysML
Block Definition Diagram. Types of Pattern relationships are
introduced as a mechanism to categorize and standardize basic
relationship types and range from informal to formal [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The
“Interface Definition Pattern” provides three Viewpoints that
enable the identification and definition of Interfaces to be
specified in terms of the structural aspects of the Interfaces: the
Interface Identification Viewpoint identifies each Interface, the
Interface Connectivity Viewpoint shows the connection
between Interfaces, and the Interface Definition Viewpoint
defines what is transferred across each Interface [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. The
Pattern also provides two Viewpoints that enable the behavior
of Interfaces to be specified: the Interface Behavior Viewpoint
identifies typical scenarios showing how Interfaces are used,
and the Protocol Definition Viewpoint defines any Protocols to
which Interfaces or Ports must conform [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. These Viewpoints
will be described in more detail later in this article.
      </p>
      <p>
        Fourth, the Rules that apply to the “Interface Definition
Pattern” should be defined in the Rules Definition View in a
form of the SysML Block Definition Diagram. The example of
such rule could be the statement: “Any protocol-based
Interface or Port must have a corresponding Protocol
Definition View defined” [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        John Holt et al. in their book provide a detailed description
of the Viewpoints that make up the “Interface Definition
Pattern” [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. The “Interface Definition Pattern” consists of five
Viewpoints that represent the structural or behavioral aspects
of the Interfaces. Each of these Viewpoints consists of the
Viewpoint Context View that defines the purpose of the each
Viewpoint and a Viewpoint Definition View that covers the
definition of each Viewpoint. Only the Viewpoint Definition
View diagrams are presented later in this article, and
Viewpoint Context Views will be discussed in the text as they
describe only the aims of each Viewpoint.
      </p>
      <p>
        The first Interface Identification Viewpoint identifies the
System Elements, the Ports that they own, and the Ports that
expose the Interfaces and the Interfaces that they expose [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
By using the Interface Identification Viewpoint, it is possible to
define both Service-Based and Flow-Based Interfaces. The
examples of the Service-Based and Flow-Based Interface
Identification Views are shown in Figure 3 and Figure 4,
respectively.
      </p>
      <p>
        Fig. 4. Flow-Based Interface Identification View (taken from [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ])
The second Interface Connectivity Viewpoint identifies
connections between Ports and the Interface Connections that
take place across the Port Connections. Again, two examples of
Service-Based and Flow-Based Interface Connectivity Views
are shown in Figure 5 and Figure 6, respectively.
The third Interface Definition Viewpoint defines the
operations or flows of data, material, energy, personnel, etc. of
the Interfaces. An example shown in Figure 7 demonstrates the
Service-Based Interface Definition (PumpIF), and the
FlowBased Interface Definition (LiquidFS) in one View.
      </p>
      <p>
        The fourth Interface Behavior Viewpoint identifies the
typical scenarios showing how Interfaces are used [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. An
example of the Interface Behavior View is shown in Figure 8.
      </p>
      <p>
        The fifth Interface Protocol Definition Viewpoint defines
any protocols to which an interface or port must conform [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
The Interface Protocol Definition View is represented by the
SysML State Machine Diagram.
      </p>
      <p>
        When using the “Interface Definition Pattern”, at least one
Interface Context View and one Interface Definition View are
needed to specify Interfaces, their associated Ports, and the
connections between them [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. In practice, however, multiple
Interface Identification Views, Interface Context Views, and
      </p>
      <p>
        Interface Definition Views would be produced along with the
Interface Behavior View and Protocol Definition Views [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
The discussed Viewpoints show that the context and the scope
of the Viewpoint that is used for the View generation should be
set: every Viewpoint must provide a template for answering
some small set of core questions about the System for the
customer stakeholders, which could not be otherwise easily
answered [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The Viewpoint must identify and meet the needs
of the target audience and their specific concerns, and must be
well scoped and make the generated Views easy to draw
inferences from [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
    </sec>
    <sec id="sec-4">
      <title>VI. THE USE OF THE MBSE PATTERNS</title>
      <p>
        The main goal of the use of Patterns, as stated by John Holt
et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], is to allow re-use, which brings a number of tangible
benefits. Among such benefits, John Holt et al. distinguish the
shortened development time, since by working to a set of
predefined Viewpoints, the structure and the content of each View
has already been decided, hence reducing the amount of time
required to generate the individual Views [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. In addition, the
improved consistency of the Model is emphasized because
when working in accordance with the Pattern Viewpoints (and
Ontology), the consistency between the resultant Pattern View
is guaranteed [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. If systems modelers are educated and trained
in the use of Patterns, they can apply this knowledge in a
variety of applications, thus shortening the learning curve [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
John Holt et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] also mentioned the benefit of increased
efficiency through the use of the MBSE modeling tool for the
implementation of Patterns, as the Viewpoints that describe the
Pattern may be implemented in a modeling tool through the use
of profiles.
      </p>
      <p>
        When discussing the realization of the MBSE Patterns,
John Holt et at. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] stated that three aspects need to be
considered in order to realize MBSE Patterns effectively and
efficiently: People, Process, and Tools. For example, the
MBSE Patterns can be used as part of the Competency
assessment Process or to shorten the learning curve associated
with MBSE [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. The MBSE Frameworks may be constructed
by re-using and tailoring the established Patterns, and if each
Pattern has its associated Viewpoints defined, then the
definition of the Framework becomes so much quicker and
easier as the structure and contents of each View will already
be defined [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Good MBSE modeling tools may be tailored to
support a defined MBSE approach by defining the profiles, and
thus the use of profiles allows the tool to be tailored to
implement a specific approach to MBSE [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
    </sec>
    <sec id="sec-5">
      <title>VII. CONCLUSIONS</title>
      <p>
        The review of the existing methodology for the definition
and description of the MBSE Pattern based on the book by
John Holt et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] showed that:
      </p>
      <p>1. A consistent MBSE Pattern can be defined with the help
of the Ontology and the Framework, using Viewpoints and
Views as their realization.</p>
      <p>2. In order to define the Pattern in a completed way, the key
questions about the context, purpose, definition, relationships,
and rules of the Pattern should be answered in the form of
SysML diagrams.</p>
      <p>3. The structural and behavioral aspects of the Patterns are
presented in five Viewpoints, which serve as a basis for the
creation of Views.</p>
      <p>4. The use of Patterns not only helps to shorten system
development time, but also improves the consistency of the
model, shortens the learning curve, and increases the efficiency
of MBSE modeling tools.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Incose</surname>
            , INCOSE Systems Engineering Handbook,
            <given-names>WILEY</given-names>
          </string-name>
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Gamma</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Helm</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , Johnson, R.,
          <string-name>
            <surname>Vlissides</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , “Design Patterns.”
          <string-name>
            <surname>Addison-Wesley Publishing</surname>
          </string-name>
          Company,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Peterson</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schindel</surname>
            ,
            <given-names>W. D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hamilton</surname>
            ,
            <given-names>B. A.</given-names>
          </string-name>
          , “
          <article-title>Model-based system patterns for automated ground vehicle platforms,” INCOSE international symposium</article-title>
          , vol.
          <volume>25</volume>
          , pp.
          <fpage>388</fpage>
          -
          <lpage>403</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Holt</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Perry</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brownsword</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , “
          <article-title>Foundations of model-based systems engineering: From patterns to models, Institution of Engineering and Technology</article-title>
          .
          <source>” Iet Professional Applications of Computing</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Simpson</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Simpson</surname>
          </string-name>
          <string-name>
            <surname>M.</surname>
          </string-name>
          , “
          <article-title>Foundational Systems Engineering (SE) Patterns for a SE Pattern Language,” INCOSE International Symposium</article-title>
          , vol.
          <volume>16</volume>
          , pp.
          <fpage>1675</fpage>
          -
          <lpage>1687</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Paredis</surname>
            ,
            <given-names>C. J. J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bishop</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bodner</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , “
          <article-title>Introduction to Information Visualization (InfoVis) techniques for Model-Based Systems Engineering</article-title>
          ,”
          <source>Conference on Systems Engineering Research</source>
          , vol.
          <volume>16</volume>
          , pp.
          <fpage>49</fpage>
          -
          <lpage>58</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>