<!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>
      <journal-title-group>
        <journal-title>Oslo, Norway, October</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>A Transformation-Based Model of Evolutionary Architecting for Embedded System Product Lines</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jakob Axelsson</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>School of Innovation, Design and Engineering, Mälardalen University</institution>
          ,
          <addr-line>SE-721 23 Västerås</addr-line>
          ,
          <country country="SE">Sweden</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2010</year>
      </pub-date>
      <volume>4</volume>
      <issue>2010</issue>
      <fpage>113</fpage>
      <lpage>117</lpage>
      <abstract>
        <p>In many industries, embedded software plays an increasingly important role in defining the characteristics of the products. Often, a product line approach is used, and the system architecture is developed through evolution rather than being redone from scratch for each product. In this paper, we present a model of such an evolutionary process based on architecture transformations. The model attempts to give an accurate description of how real architects actually work. Key elements of the approach are how the transformations interact with consistency constraints and with feasibility in terms of resource limitations. The work is based on findings from previous case studies in the automotive industry. The model can be used to enhance our understanding of the architecting process, and to find ways to improve it.</p>
      </abstract>
      <kwd-group>
        <kwd>Architecture</kwd>
        <kwd>embedded systems</kwd>
        <kwd>evolution</kwd>
        <kwd>transformations</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        The increasing complexity of embedded systems leads to soaring development costs,
and many companies strive to curb this trend by reusing software and hardware
between products through a product line approach. This makes architecture very
important, and we have previously done in-depth studies of the architecting practices
at a some companies (see e.g. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]), showing that instead of following a well-defined
process and method, the architects base their work on experience and gut feeling.
Academic literature on architecting is mostly concerned with developing a new
system from scratch, something that rarely occurs in the organizations mentioned
above. We term this traditional approach revolutionary architecting, and we have
previously argued based on another case study that the focus should instead be on the
evolutionary architecting where a new version of an existing product is developed [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
To systematically attack the problem of lacking processes and methods for
architecting, there is a need to provide a description of how architects work today.
The research question of this paper is therefore: What is a suitable model for
capturing how evolutionary architecting is performed in organizations developing
complex embedded system? The contribution of the paper is to propose such a model,
which is based on transformations of an architectural description and related analyses.
Using this model, it becomes possible to reason about aspects of the architect's work
and to describe phenomena encountered during empirical research on architecting.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2 Evolutionary architecting and architecture descriptions</title>
      <p>In the evolutionary process, architecting is triggered by a product change request. The
architects get input in terms of requirements primarily from the function developers.
The architects then try to design a high-level technical solution, focusing on the
distribution of functionality onto different systems, and on the interfaces between
systems. When designing the high-level solution and evaluating alternatives, they take
into account not only the requirements, but also architectural quality attributes, which
are properties of the architecture itself which they strive to maintain. Throughout the
work, the architects create descriptions of the architecture. The descriptions are used
to define pre-requisites for the system developers.</p>
      <p>The architect primarily focuses on resolving issues that go across several
subsystems, and this entails dealing with the following concerns:
• Feasibility, i.e. possibility to implement the functionality by the available
computational resources.
•
•
•</p>
      <p>Consistency, i.e. that all interfaces between parts are well defined.</p>
      <p>Optimality, in terms of important quality attributes (including cost).</p>
      <p>Modifiability, to enable future evolution.</p>
      <p>The model presented here attempts to describe what information the architects deal
with in their work. That information might appear in many forms: formal models,
sketches, texts, or just as mental models inside the architect's head. Our model tries to
capture the essence of that information, and disregard its representation.</p>
      <p>For modeling the architecture descriptions for embedded systems, it suffices with a
metamodel (M2 level) that is essentially an annotated graph, containing elements of
different kinds; relations between pairs of elements or between pairs of relations; and
attributes describing properties of elements and of relations.</p>
      <p>
        For distributed, embedded systems, a model (M1 level) for describing the
architecture can be grouped into several levels of abstraction. In this paper, we will
use four different views, whose elements and relations are shown in Table 1. (The
description is similar to that provided in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], except that the cluster level is implicitly
captured through the allocation relations. Also, the physical packaging level is added
in this paper, and the task level is excluded since it is internal to an ECU.) There are
also relations between entities in different views, indicating which modules realize
each function, how modules are allocated to ECU:s, where hardware elements and
external entities are positioned, and how communication is routed.
      </p>
      <p>The metamodel allows attributes on elements and relations describing their
properties. For architects, the primary properties have to do with desired qualities and
limited resources present. The desired qualities are those properties that the architect
tries to optimize when selecting among alternative feasible solutions. One of the most
important ones is cost, which can be further divided into product cost and
development cost. The product cost is essentially the cost of hardware, so we add a
product cost attribute to each element of the hardware view. Important resources are
present in ECUs (processing capacity, memory size, I/O pins), communication
channels (bandwidth), and spaces and routing channels (volume).</p>
      <p>Architects do usually not make complete models of the entire architecture, but
rather only describe those parts which are relevant to resolve a certain change request.
Therefore, we should not assume that we are dealing with complete information.
However, among those elements related to the change request, consistency must be
reached so that for instance all necessary relations are present. As an example, if the
change is to add a new function, which is realized by a certain set of modules, all
those modules must be allocated to ECUs, and none can be left dangling.</p>
    </sec>
    <sec id="sec-3">
      <title>3 Transformations and analyses</title>
      <p>We believe that the essence of the architect's work can be captured as a sequence of
transformations of the architectural description (on the instance, or M0, level),
together with analyses to see that the solution is feasible, cost efficient, and future
proof. Just as the architecture descriptions can take many forms, including mental
models, the transformations can in reality be explicit or very implicit.</p>
      <p>There are two basic transformations on the metamodel level: add entity and remove
entity. Since the entities are either elements or relations, the possible transformations
become add element, remove element, add relation, and remove relation. At the
model level, these abstract transformations can be made concrete, resulting in, e.g.,
add module, remove ECU.</p>
      <p>Sometimes architects also use composite transformations. A good example is
change relation, which basically consists of add relation1 followed by remove
relation2. A concrete example is when a module that used to be allocated to one ECU
is moved to another ECU by a change allocation transformation. Other composites
are change element (e.g. change ECU to, e.g., an upgraded processor); split element
(e.g., split module when a software module is divided to allow distribution); and the
reciprocal merge element. Through the composite relations, we end up with a formal
language which is very close to the natural language used by architects during their
daily work.</p>
      <p>As described in Section 2, the architect's work is triggered by a change request to
an existing architecture, which is consistent and feasible. This change request can be
described as an initial set of transformations. A typical change request is to integrate a
new function, i.e., the transformation add function. At this point, the architecture
description has become largely inconsistent.</p>
      <p>The first step of the architect is usually to try to get more details about the
functionality in the requirements analysis phase. This involves identifying external
entities involved (using the transformations add external entity, add functional
dependency). Also, it is important in this phase to identify placement limitations.
After the requirements analysis is completed, there is usually a complete and
consistent description of the functional view.</p>
      <p>Next, the architect starts to generate possible solutions. This is done by filling in
the details at the logical level through transformations such as add module, add
dataflow, but also change module since a consequence of an added functional
dependency may be that an existing module needs to be updated. Also, the hardware
view is detailed, possibly by add ECU, add sensor, add actuator or add network
transformations. The relations between the logical and hardware views also need to be
figured out, by add allocation transformations. In this step, it is common that the
logical view needs to be revisited to perform split module transformations in order to
find a good allocation. Finally, the hardware and positioning views must be connected
by add positioning and add routing transformations. According to our observations,
there is usually not a clear step-by-step process through the views, but the architects
appear to work with all views in parallel or iterate between them. Figure 1 illustrates
the search process performed by architects when dealing with a change request.</p>
      <p>Change
request 2</p>
      <p>4</p>
      <p>Initial
architecture
1
5
3
6</p>
      <p>Final
architecture
7</p>
      <p>Feasible and consistent
Feasible and inconsistent
Infeasible and consistent
Infeasible and inconsistent
Transformation(s)</p>
      <p>If consistency is what drives the architecting forward, analysis of feasibility and
quality is what guides it. The most important analyses correspond to the concerns of
the architect described in Section 2 above. Usually, the analyses are qualitative rather
than quantitative, and often relative rather than absolute. Difficult trade-offs between
the concerns are often needed.</p>
      <p>For each resource, a set of users can be derived to see that the solution is feasible,
i.e. that the resources are not exhausted. Whenever a relation is added to the model,
which entails that one element will use resources of another, the feasibility should be
checked. An example is when a module is allocated to an ECU. Then the architect
must evaluate if it will fit in terms of ECU memory and CPU footprint.</p>
      <p>The product cost is simply the sum of the cost of all components, which can be
calculated by adding the cost attributes of all entities in the hardware view.</p>
      <p>
        Development cost is more complex to assess. In [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], it is described how to reason
about the cost for software changes. The approach is to first identify which modules
change, and then either simply count how many modules are touched, or try to
perform a more refined analysis or initiated guess of the magnitude of change.
      </p>
      <p>
        The architects also try to keep in mind that the architecture should be modifiable.
However, as pointed out in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], it is not meaningful to reason about modifiability as
such, but only how modifiable the architecture is with respect to a certain class of
changes. For embedded systems, a common barrier to modification is lack of
hardware resources. The architects try to strike a balance between adding surplus
resources to the hardware for future growth, and optimizing the resources in order to
reduce product cost. This kind of reasoning can be thought of as a real options
analysis [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. In such an analysis, the main difficulty is to estimate the likelihood of
certain types of changes. If architects keep track of how frequent certain
transformations are, they can extrapolate more reliable figures. The transformation
model thus gives the architect a language for capturing knowledge about changes.
      </p>
    </sec>
    <sec id="sec-4">
      <title>4 Conclusions</title>
      <p>In this paper, we have outlined a Transformation-based Evolutionary Architecting
Model (TEAM), which attempts to describe essential knowledge about how real
architects go about developing embedded system product lines. The basis is data
collected from observing real architecting work, and we have attempted to construct a
model with a high fidelity in the sense that the language the architects use to describe
their own process should be possible to map to the model.</p>
      <p>Although the model presented in the paper is largely based on experiences from the
automotive domain, the fundamental ideas are captured in the metamodel which is
much more general and allows many different views and elements to be included.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Axelsson</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <article-title>Evolutionary architecting of embedded automotive product lines: An industrial case study</article-title>
          .
          <source>In Proc. Joint 8th Working IEEE/IFIP Conf. on Software Architecture &amp; 3rd European Conf. on Software Architecture</source>
          , pp.
          <fpage>101</fpage>
          -
          <lpage>110</lpage>
          . Cambridge, UK, Sept.
          <fpage>14</fpage>
          -
          <lpage>17</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Broy</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Krüger</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pretschner</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Salzmann</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <article-title>Engineering Automotive Software</article-title>
          .
          <source>Proc. IEEE</source>
          , Vol.
          <volume>95</volume>
          , Issue 2, pp.
          <fpage>356</fpage>
          -
          <lpage>373</lpage>
          , Feb.
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Eden</surname>
            ,
            <given-names>A. H.</given-names>
          </string-name>
          <article-title>and</article-title>
          <string-name>
            <surname>Mens</surname>
          </string-name>
          ,
          <source>T. Measuring Software Flexibility. IEE Software</source>
          , Vol.
          <volume>153</volume>
          , Issue 3, pp.
          <fpage>113</fpage>
          -
          <lpage>126</lpage>
          ,
          <year>June 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Gustavsson</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <article-title>and</article-title>
          <string-name>
            <surname>Axelsson</surname>
            ,
            <given-names>J. Evaluating</given-names>
          </string-name>
          <article-title>Flexibility in Embedded Automotive Product Lines Using Real Options</article-title>
          .
          <source>In Proc. 12th Intl. Software Product Line Conf.</source>
          , pp.
          <fpage>235</fpage>
          -
          <lpage>242</lpage>
          . Limerick, Ireland, Sept.
          <fpage>8</fpage>
          -
          <lpage>12</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Parnas</surname>
            ,
            <given-names>D. L.</given-names>
          </string-name>
          <article-title>Software aging</article-title>
          .
          <source>In Proc. Intl. Conf. Software Engineering</source>
          , pp.
          <fpage>279</fpage>
          -
          <lpage>287</lpage>
          . Sorrento, Italy,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Wallin</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Axelsson</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <article-title>A case study of issues related to automotive E/E system architecture development</article-title>
          .
          <source>In Proc. 15th IEEE Intl. Conf. on Engineering of Computer Based Systems</source>
          , pp.
          <fpage>87</fpage>
          -
          <lpage>95</lpage>
          . Belfast, Northern Ireland,
          <year>March</year>
          31-April 4,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>