<!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>Comprehensive Model Integration for Dependency Identification with EMFTrace*</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Stephan Bode</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Steffen Lehnert</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Matthias Riebisch</string-name>
          <email>matthias.riebischg@tu-ilmenau.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Software Systems / Process Informatics Ilmenau University of Technology Ilmenau</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-As model-based software development becomes increasingly important, the number of models to express various aspects of software at different levels of abstraction raises. Meanwhile evolutionary development and continuous changes demand for explicit dependencies between involved models to facilitate change impact analysis, software comprehension, or coverage and consistency checks. However, there are no comprehensive approaches supporting models, dependencies, changes, and related information throughout the entire software development process. The approach presented in this paper provides a unified and modelspanning concept with a repository for model integration, model versioning, and dependency identification among models utilizing traceability techniques, enhanced with analytic capabilities. The identification is based on a rule set to provide high values for precision and recall. The approach is implemented in a tool called EMFTrace, which is based on Eclipse technology and supports different CASE tools for modeling.</p>
      </abstract>
      <kwd-group>
        <kwd>-model dependencies</kwd>
        <kwd>model integration</kwd>
        <kwd>model repository</kwd>
        <kwd>meta model</kwd>
        <kwd>traceability</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>The growing complexity of software is often
accompanied by difficulties in implementing changes and by
architectural erosion. One possibility to tackle these problems
is the use of different models and modeling languages
throughout the entire development process to express
requirements, design decisions, and dependencies between
models, which is commonly referred to as model-based
development. The wide use of several modeling languages
and CASE tools has led to a variety of models with
different scope and levels of abstraction. Integrating the
various models and detecting and analyzing dependencies
between them has become important.</p>
      <p>It is therefore necessary to provide support for software
evolution and continuous changes through models at
different levels of abstraction and by explicitly expressing
dependencies between them. Traceability links are
wellsuited to model such dependencies, since they enable
further analyses, as change impact analysis, software
comprehension, and consistency checks. Moreover, solid tool
support is required to cope with the number of modeled
entities and dependencies to supply practical applicability
and usability.</p>
      <p>
        Existing approaches provide solutions for the
integration of models into centralized repositories, e.g., [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        *The research presented in this paper was partly funded by the federal
state Thuringia and the European Regional Development Fund ERDF
through the Thu¨ringer Aufbaubank under grant 2007 FE 9041.
Besides, several different concepts have been proposed for
dependency analyses on models through traceability rules,
e.g., in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]–[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], whereas [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] relies on information retrieval.
However, these approaches only support a limited number
of modeling languages without presenting a solution for
spanning the whole software development process. They
lack a unified concept for managing models,
dependencies between models, types of dependency relations and
auxiliary information in a centralized manner. This unified
concept should be enforced to span the entire development
process, ranging from early requirement definitions up to
regression testing with the help of appropriate models.
Heterogenous development environments and the wide use
of several different CASE tools amplify the benefits gained
from a unified and process-spanning approach.
      </p>
      <p>
        The concept presented in this paper is aimed at creating
an extensible platform for various analyses techniques
required for model-driven engineering, reengineering, and
impact analysis to support software evolution and
continuous changes. It is based on a unified approach for
comprehensive model integration and dependency analysis. In
our approach inter and intra model dependencies are
identified and recorded through traceability links, which are
established by explicitly defined rules. These traceability
rules are combined with information retrieval algorithms to
achieve high precision and recall as well as flexibility.
Special emphasis has also been put on the explicit modeling of
dependency types, since they provide important semantic
information for further analyses. Moreover, our concept
provides a unified treatment of all related models and data
through automated versioning and management of models,
rules, model dependencies, and dependency types within
a centralized repository. We utilize the extensible model
repository EMFStore [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], which supports the integration of
arbitrary models of standardized modeling languages such
as UML, URN [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], BPMN and OWL. Several analysis
components were integrated into EMFTrace to validate
dependencies and to facilitate further analysis capabilities.
      </p>
      <p>The remainder of this paper is organized as follows.
We discuss current development and research regarding
model repositories and model dependencies in Section II,
whereas Section III introduces our concept and describes
our approaches for model integration and dependency
analysis. Section IV outlines our main conclusions and
future work.</p>
      <p>II. STATE OF THE ART</p>
      <sec id="sec-1-1">
        <title>A. Model Repositories</title>
        <p>Automated model management and versioning can be
achieved by model repositories that therefore assist
modelbased development of software. We considered several
different repository projects as a base for EMFTrace,
including the Eclipse Model Repository1, CDO Model
Repository2, EMFStore3 and AndroMDA4. Maturity,
supported features, usability, and documentation were the
main decisive factors we based our evaluation on. After
a careful consideration of all projects, we decided to use
the EMF5-based EMFStore as our underlying repository.</p>
      </sec>
      <sec id="sec-1-2">
        <title>B. Detection of Model Dependencies</title>
        <p>
          Since we focus on model-based development and
dependencies between models, we do not consider
approaches for dependency detection on the level of source
code. Data gained through dependency analyses can either
be stored and maintained in a dependency matrix, as a
graph of traceability links, or as a set of cross-references
[
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. Traceability links allow to attach auxiliary information
to them, such as design decisions and alternatives, or link
types. This information is of an equivalent value as the
actual dependency itself, since it increases the
semantical meaning of a dependency relationship. Therefore, it
is most suitable to represent model dependencies with
traceability links for further analyses.
        </p>
        <p>
          Most traceability approaches focus either on predefined
rules or on information retrieval. Information retrieval
approaches as proposed in [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] or [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] operate on identifiers
and are therefore easy to adopt to new models and data.
They provide good recall, but their lack of precision and
the complete absence of additional dependency
information limit their usability for dependency detection among
models and further analyses.
        </p>
        <p>
          In contrast, rule-based approaches require more work to
adopt to new models, but they result in more reliable links.
Rule-based approaches as proposed in [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]–[
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] are able to
provide auxiliary information on dependencies, such as the
type of the dependency specified by the rule. Well-defined
dependency types are inevitable to identify semantically
rich dependencies and to classify them properly.
        </p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>III. EMFTRACE</title>
      <sec id="sec-2-1">
        <title>A. Concept and Features</title>
        <p>EMFTrace implements our approach of comprehensive
model integration and dependency identification as an
extensible platform, which is our basis for further analyses
and research. Our main focus is to provide a set of analyses
and validation features, which is independent of a certain
CASE tool and modeling language, to support engineers,
software architects and other stakeholders throughout the
1http://modelrepository.sourceforge.net/project-summary.html
2http://wiki.eclipse.org/CDO
3http://www.eclipse.org/proposals/emf-store/
4http://www.andromda.org/index.php
5http://www.eclipse.org/modeling/emf/
entire software lifecycle. Based on models and
dependencies between them, we want to establish solid tool support
for the following activities:</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Architecture comprehension,</title>
      <p>Dependency analysis,
Change impact analysis,
Goal-oriented decision support for:
– Forward engineering and
– Reengineering; as well as</p>
    </sec>
    <sec id="sec-4">
      <title>Validation and consistency checks.</title>
      <p>We utilize the EMFStore model repository for storing
and versioning EMF-based models. Figure 1 provides
an overview of the entire approach and illustrates the
interaction of EMFTrace with external CASE tools.</p>
      <p>To enable the integration and dependency analysis
of different models we extended EMFStore by several
metamodels as shown in the bottom of Figure 1. We
integrated different modeling languages into the repository
to span the entire software development process. Our
approach supports requirements engineering through URN
goal models, URN use case maps, and UML use cases.
Furthermore, design models such as class diagrams are
provided by UML, which has been fully integrated as
well. Additional dependencies between UML and URN
models are provided by the integration of OWL ontologies,
which supply semantic networks of related terms. To
ensure practical applicability, we support several different
CASE tools which can be used to create and edit the
corresponding models. More details on the integration of
the models are given in Section III-B2.</p>
      <p>
        As mentioned in Section II our approach utilizes
rulebased traceability for dependency identification among
models. To enable a unified treatment of all models and
related data, we integrated additional metamodels into
EMFStore to maintain and store traceability links and
rules directly in the repository. Our traceability metamodel
provides explicit support for modeling a hierarchy of
dependency types to ensure the proper categorization of
detected dependencies. Dependency types can be created
and maintained by users in the repository and aggregated
in special catalogs, and are therefore subject of model
versioning as well. The metamodel for traceability rules
offers a similar concept, which enables users to create
rules directly in the repository and group them together in
catalogs, to support fast exchange and easy maintenance.
The design of our rules is based on similar approaches as
proposed in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. However, we enhanced our rules
with information retrieval techniques which supply
additional query-operators to improve dependency detection.
More details on the concepts for dependencies and rules
follow in the next subsections.
      </p>
      <p>1) Dependency Concept: We store dependency
information as traceability links to benefit from their rich
semantics. Our traceability metamodel supports binary
and n-ary traceability links. Each traceability link can be
enhanced with additional information such as the type of
a dependency, design decisions, design alternatives, and
!
!
!</p>
      <p>!
$)'3&gt;&amp;)!#*+),8!
#*+),-".(/'01)-203)&amp;4'()!
OP!Q5G%!
KP!2=7*&amp;3!</p>
      <p>KP!Q5G%!
OP!".7*&amp;3!
!
6)1&amp;)889*0!
%)83901!!
-!@K%I!-!
!
5)='039(!L)E!
-!MLG!-!
I&amp;*3N1N!
!
assessments of the confidence of the link performed by
users.</p>
      <p>Moreover, we are able to combine transitively related
traceability links, i.e., links that share common model
elements as their source or target elements, into traces.
These traces store chains of links to span design decisions
and multi-level dependency relations. The example shown
in Figure 2 illustrates the transition from a URN goal to
its architectural realization through UML models.
Furthermore, EMFTrace provides automated validation features
for traceability links and traces, to ensure the integrity of
stored dependency information. Corrupt or outdated links
will be erased while broken traces are either split into
smaller sub-traces or removed as well, if they contain less
than two links.</p>
      <p>
        "#$%!
&amp;'(!)$'(!
)#*+#,(,-!
.$/0$1(!
2) Rule Concept: Following the general design
proposed in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], our rules comprise three parts as
shown in Figure 3, whereas each part is responsible for a
certain task.
      </p>
      <p>Element  Defini+on
           What  models  are  affected  by  the  rule?
Query
           How  are  they  related?
Result  Defini+on
           What  should  be  done  with  them?</p>
      <p>
        In contrast to existing approaches as [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], we do not
operate on files, but on the conceptual level of models
inside the EMFStore repository. Each rule can be equipped
with several actions carried out once the conditions are
met. This enables us to create a link for a relationship
and its inverse relationship at once, without requiring
additional rules. Rules can be created and edited by users
in the repository using EMF-based editors or external
in their XML representation, and can be imported
afterwards. Rules can be grouped in catalogs to enable
the use of specialized rule catalogs for different tasks
such as dependency detection or consistency validation, to
improve the useability of our tool. Currently there is one
catalog available which contains 68 rules for traceability
detection. Our rules operate directly on model attributes
and the structure of models. They compare attributes to
identify dependencies between models, for example the
name attribute of an OWL class with the name attribute
of an UML component. But since the comparison for
exact matching is not always sufficient to detect all
dependencies, information retrieval techniques, such as
ngram based string comparison, are used to compute the
similarity of attributes.
      </p>
      <p>B. Architecture and Realization</p>
      <p>
        1) Architecture: Since EMFTrace is our evolving basis
for many different research activities related to
modeldriven engineering, its architecure must support the
addition of new concepts and features. Our entire tool is
based on Eclipse technology and consists of several
plugins that provide the core functionality, a user interface,
and our adapted metamodels. EMFStore provides a server
(the repository) and a client to operate with the repository,
which is why we integrated our additional features into
the client to provide a unified view and usability. We
designed several additional components that integrate new
features into the EMFStore client, such as an interpreter
for traceability rules as shown in the bottom right corner
of Figure 1. Our architecture is extensible and allows
for easy integration of new components into EMFTrace
to introduce new features, i.e., new analysis components.
All plug-ins and components were implemented and tested
with Java to ensure the platform independent applicability
of our tool [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>2) Model Integration: Using a modeling language with
EMFTrace requires the integration of its metamodel into
EMFStore. The metamodel must be converted into an
EMF-based Ecore model, which can either be modeled
with EMF or generated from an XSD file. Once an
Ecore model has been generated, it must be adapted
to EMFStore’s metamodel, which provides additional
attributes to facilitate the management through EMFStore.
We performed these steps for the metamodels of UML,
URN, and OWL.</p>
      <p>Since the adaptation to EMFStore’s metamodel
introduces new attributes to the metamodels, an adaptation
of models (metamodel instances) is required as well, to
add these attributes while importing models from CASE
tools. We perform the integration and adaptation as
illustrated by the arrows in the middle of Figure 1 by
applying XSLT templates on models and encapsulated the
entire import and export procedures in new components
(Model-Exchange-Interface), which have been integrated
into EMFTrace. Therefore, XML-based models exported
by CASE tools and XSLT provide the core technology for
our integration approach.</p>
      <p>As CASE tools (see top of Figure 1) we currently
support the Eclipse UML2Tools (UML), Visual Paradigm
(UML, BPMN), the Eclipse-based jUCMnav (URN), and
Prote´ge´ (OWL) with our XSLT templates. Additional
modeling languages and their respective CASE tools such
as BPEL can be added to EMFTrace at any time through
adding an EMF-based metamodel to the underlying
EMFStore repository and providing further XSLT templates.</p>
      <p>
        3) Extensions: One addition which has already been
integrated into EMFTrace is the tool EMFfit [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] (see
Figure 1, top left), which supports the management of factor
tables and issue cards for Global Analysis as proposed
by Hofmeister et al. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and therefore contributes a new
metamodel to EMFTrace. The tool itself is implemented
and tested as a set of Eclipse plug-ins with Java and
offers support for the transition from requirements to
architectural design.
      </p>
    </sec>
    <sec id="sec-5">
      <title>IV. CONCLUSION AND FURTHER WORK</title>
      <p>We presented an approach and a prototype tool
EMFTrace for model integration and dependency identification
between models of the entire software development
process. We support different artifacts ranging from
requirements models to design models which are managed by
a unifying repository. Our tool provides comprehensive
and automated dependency identification through
rulebased traceability to ensure decent precision of results,
enhanced with information retrieval techniques. EMFTrace
facilitates the use of semantically important link types
and is capable of storing, versioning, and maintaining
traceability links. Standard modeling languages, such as
UML, URN, and OWL, are integrated into the repository
and several CASE tools are supported.</p>
      <p>Further work will focus on several issues: additional
modeling languages such as U2TP and feature models
shall be integrated into EMFTrace along with the
appropriate metamodels and XSLT templates, allowing for
additional CASE tools to be used in conjunction with our
tool. New models enable new analysis capabilities and
require new rules or existing rules to be refined. Our rule
concept should be enhanced to support consistency checks
of models stored in the repository. The combination of
dependency identification with consistency analysis provides
the basic features to perform change impact analysis on
models through new components and rules. To improve the
usability of our tool, model synchronization with CASE
tools and methods of change recognition for maintenance
are considered as further enhancements. Drawing more
benefits from discovered dependency relations requires
sophisticated visualization of thereby created traceability
links to enable the user to navigate on hierarchical chains
of dependencies and to trace models efficiently. Finding
appropriate means of dependency visualization is therefore
one important research question related to EMFTrace.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>G. A. A. C.</given-names>
            <surname>Filho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Zisman</surname>
          </string-name>
          , and G. Spanoudakis, “
          <article-title>Traceability approach for i* and UML models</article-title>
          ,”
          <source>in Proceedings of 2nd International Workshop on Software Engineering for Large-Scale Multi-Agent Systems (SELMAS'03)</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>W.</given-names>
            <surname>Jirapanthong</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Zisman</surname>
          </string-name>
          , “
          <article-title>Xtraque: traceability for product line systems</article-title>
          ,
          <source>” Software and Systems Modeling</source>
          , vol.
          <volume>8</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>117</fpage>
          -
          <lpage>144</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>G.</given-names>
            <surname>Spanoudakis</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>d'Avila Garces, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Zisman</surname>
          </string-name>
          , “
          <article-title>Revising rules to capture requirements traceability relations: A machine learning approach</article-title>
          ,”
          <source>in Proc. Int. Conf. in Software Engineering and Knowledge Engineering (SEKE</source>
          <year>2003</year>
          ).
          <article-title>Knowledge Systems Institute</article-title>
          , Skokie,
          <year>2003</year>
          , pp.
          <fpage>570</fpage>
          -
          <lpage>577</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>G.</given-names>
            <surname>Spanoudakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Zisman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Perez-Minana</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Krause</surname>
          </string-name>
          , “
          <article-title>Rule-based generation of requirements traceability relations</article-title>
          ,
          <source>” JSS</source>
          , vol.
          <volume>72</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>105</fpage>
          -
          <lpage>127</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A. D.</given-names>
            <surname>Lucia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Fasano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Oliveto</surname>
          </string-name>
          , and G. Tortora, “
          <article-title>Recovering traceability links in software artifact management systems using information retrieval methods</article-title>
          ,
          <source>” ACM Trans. Softw. Eng. Methodol.</source>
          , vol.
          <volume>16</volume>
          , no.
          <issue>4</issue>
          ,
          <string-name>
            <surname>Article</surname>
            <given-names>13</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sept</surname>
          </string-name>
          .
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Koegel</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Helming</surname>
          </string-name>
          , “
          <article-title>EMFStore: a model repository for EMF models</article-title>
          ,”
          <source>in Proc. Int. Conf. on Software Engineering (ICSE'10)</source>
          . ACM,
          <year>2010</year>
          , pp.
          <fpage>307</fpage>
          -
          <lpage>308</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>ITU-T</surname>
          </string-name>
          , “
          <string-name>
            <surname>Recommendation ITU-T Z</surname>
          </string-name>
          .
          <article-title>151 User requirements notation (URN) - Language definition</article-title>
          ,” ITU-T,
          <year>Nov 2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S.</given-names>
            <surname>Winkler</surname>
          </string-name>
          and
          <string-name>
            <surname>J. von Pilgrim</surname>
          </string-name>
          , “
          <article-title>A survey of traceability in requirements engineering and model-driven development,” Softw. and</article-title>
          <string-name>
            <surname>Syst. Model.</surname>
          </string-name>
          , vol.
          <volume>9</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>529</fpage>
          -
          <lpage>565</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A.</given-names>
            <surname>Marcus</surname>
          </string-name>
          and
          <string-name>
            <surname>J. I. Maletic</surname>
          </string-name>
          , “
          <article-title>Recovering documentationto-source-code traceability links using latent semantic indexing,”</article-title>
          <source>in Proc. Int. Conf. on Software Engineering (ICSE'03)</source>
          . IEEE,
          <year>2003</year>
          , pp.
          <fpage>125</fpage>
          -
          <lpage>135</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>S.</given-names>
            <surname>Lehnert</surname>
          </string-name>
          , “
          <article-title>Softwarearchitectural Design and Realization of a Repository for Comprehensive Model Traceability,” Diploma thesis</article-title>
          , Ilmenau University of Technology, Ilmenau, Germany,
          <string-name>
            <surname>November</surname>
          </string-name>
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>C.</given-names>
            <surname>Hofmeister</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Nord</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Soni</surname>
          </string-name>
          , Applied Software Architecture. Boston, MA, USA:
          <string-name>
            <surname>Addison-Wesley</surname>
          </string-name>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>P.</given-names>
            <surname>Wagner</surname>
          </string-name>
          , “
          <article-title>Tool Support for the Analysis during Software Architectural Design,” Bachelor thesis</article-title>
          , Ilmenau University of Technology, Ilmenau, Germany,
          <year>December 2010</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>