<!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>Co-evolving Digital Architecture Twins</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sven Jordan</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Group IT Solution &amp; Enterprise Architecture, Volkswagen AG</institution>
          ,
          <addr-line>38440</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <fpage>13</fpage>
      <lpage>17</lpage>
      <abstract>
        <p>Software development in industry is getting increasingly complex as systems are getting more sophisticated and are often interconnected constituting the system landscape. Architecture description is therefore getting increasingly important. The necessary maintenance of description is often neglected because of diferent priorities due to time and budget constraints. This leads, among other things, to outdated architecture description. For a more eficient planning of the architectural landscape and prevention of redundancy, it is vital that architects and other stakeholders have the most current information about the systems. This paper presents doctoral research in its early stages concerned with the issue of continuous architecture recovery allowing to reflect the current architecture and evolution of the system as a digital architecture twin. The proposed approach aims to automatically extract architecture information of complex systems by recovering it from heterogeneous architectural data sources. The idea is the consolidation and integration of this recovered architecture information at diferent points in time to enable the representation of the systemand its evolution. This permits the use of an architecture information query language facilitating diferent use cases (e.g., support of architectural design decisions or tailored architecture description). Planned contributions are the assessment and consolidation of heterogenous information sources and the application of architecture recovery methods with the noteworthy addition of versions over time of those information sources and the creation of a co-evolving digital twin.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Architecture recovery</kwd>
        <kwd>Digital twin</kwd>
        <kwd>Architectural design</kwd>
        <kwd>System landscape recovery</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction and problem statement</title>
      <p>
        One of the main problems in software architecture evolution and maintenance is the low
quality and even non-existence of architecture description (e.g., architecture models) as systems
evolve and increase in complexity, and are adapted to environments, technology or customer
requirements. Evolution of a system should entail evolution and maintenance of its description,
as otherwise the description does not reflect the actual system anymore, resulting in a decrease
of quality and usefulness of the architecture description. Yet, the creation and maintenance of
architecture description is linked with high efort (time and costs) as it is a primarily manual
task. However, an updated description is a key driver for an architect to understand a system,
comprehend dependencies and decide on future enhancements. Furthermore, stakeholders
require diferent views [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] on a system at diferent levels of abstraction or granularity. It
adds to the efort to keep the quality of and the description itself consistent considering the
diferent views and abstraction levels resulting in even higher costs. To counter the problem of
orphaned documentation and decreasing description quality, software architecture recovery
[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] methods are used. Architecture recovery is referred to as methods and processes for
retrieving architecture information from an implemented system and associated data sources.
This recovered architecture information reflects the current state of a system. However, as the
system evolves, so does the architecture (information). This leads to a need for a continuous
process of architecture recovery, which considers heterogeneous data sources and versions
over time to reflect the system as accurately as possible. We intend to automatically recover,
consolidate and integrate architecture information from heterogeneous data sources. This
architecture information will be mapped into a unified architecture information model, which we
consider a digital architecture twin representing a system. As the system evolves, this digital twin
needs to continuously co-evolve with the system. We further intend to develop an architecture
query language able to retrieve architecture information from the digital architecture twin
to support architecture design decision making, the identification of prevailing architectural
patterns or the creation of tailored architecture description.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. State of the art and open challenges</title>
      <p>
        Automated architecture recovery approaches range from static to dynamic methods using
diferent techniques like structural clustering, concern-based clustering, or interactive exploration to
extract and recover diferent layered architecture information and employing input parameters
like the implemented system (e.g., as source code). Approaches like ACDC [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], WCA [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] or
LIMBO [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] belong to the clustering methods retrieving clusters representing subsystems based
on structural information. Concern-based approaches like ARC [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] or RELAX [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] add concerns
to the clustering approach yielding precise and comprehensible clusters with context.
Evolutionbased approaches consider the evolution of a software system (e.g., using source code or issue
management tools) taking a system’s legacy into account [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] to recover architecture design
decisions. Interactive methods like the Grounded Theory approach [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] focus on a more general
approach to recover architecture information. It is described as a human intensive and relatively
costly process, which has the benefit of being as general as possible, therefore applicable to
almost every system. Proposed workbench approaches are Rigi [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] or ARCADE [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. These
approaches enable interactive exploration as they extract data and reconstruct architecture
information and architecture views of a system. Even though these methods produce valuable
architecture information, they tend to be laborious, require manual efort, or operate on single
viewpoints of a system. These are open challenges for software architecture recovery: (1) the
identification of possible data sources in a complex and heterogeneous system landscape, (2)
the combination of heterogeneous data sources for the purpose of architecture information
recovery, (3) the consolidation of available and recovered information in a unified and integrated
data model, the digital architecture twin, and (4) the co-evolution of architectural information
with the actual system over time, resulting in architecture description suited for the needs of
the architect and diferent stakeholders [
        <xref ref-type="bibr" rid="ref12 ref2">12, 2</xref>
        ]. We intend to combine existing architecture
recovery methods and to automatically integrate the results in a digital twin, thus providing an
extensive overview of the system using diferent views. Moreover, we perform these methods
continuously, leading to evolving, version-aware architecture information about the system,
preventing architectural information decay.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Proposed solution</title>
      <p>
        The idea of the approach is to automatically create and co-evolve a Digital Architecture Twin
(DArT) of heterogeneous and evolving systems. In general, a Digital Twin is a virtual
representation of a physical or non-physical object (Physical Twin) or process often used in the
digitalization of cars or engines and enabling the exchange of data and information between
the Digital Twin and Physical Twin. This allows to efectively simulate situation and adaptions
without tinkering with the real world image, which could result in high costs or unfavorable
failures [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. DArT automatically recovers, consolidates and maintains comprehensive
architectural information from heterogeneous data sources as an unified architecture information model.
Whenever a data source (e.g., source code) changes, the recovered information is updated in
the DArT. The co-evolving DArT is extended by integrating versions of a system over time,
incorporating the evolution and current status of the system in the DArT.
      </p>
      <p>Co-Evolution
Architecture information
Virtual representation</p>
      <p>Coordination
of heterogeneous Architecture Information
data sources Recovery Services</p>
      <p>Incremental updates
of the Digital Twin
Architecture
information
sources
System</p>
      <p>Data Collection</p>
      <p>Agents</p>
      <p>Integration &amp;
Consolidation module</p>
      <p>Versioning of the
Digital Architecture Twin
mUecphdaanteis-m consRoelidcaotveedreindfoarnmdation</p>
      <p>Digital
Architecture</p>
      <p>Twin</p>
      <p>Architecture
query language
Persistence of
the Digital Twin</p>
      <p>Recommendation system
for architectural design decisions</p>
      <p>Pattern and Style Discovery</p>
      <p>Tailored Documentation</p>
      <p>Automated continuous
compliance checking and quality
assessment</p>
      <p>The Digital Architecture Twin generation process, shown in figure 1, begins with the collection
of architectural data from architecture information sources using Data Collection Agents (DCA).
Next is the provisioning of this data for the architecture recovery methods implemented as
Architecture Information Recovery Services (AIRS). For this, we combine proven architecture
information recovery approaches leveraging diferent data sources. We integrate and consolidate
the results provided by the architecture recovery methods into a unified architecture information
model based on meta models representing the Digital Architecture Twin to obtain an overarching
representation of the system architecture. When the system evolves (e.g., source code changes),
the DCA and AIRS update the existing architecture information maintaining information of old
versions. For this, the update-mechanism triggers the AIRS either automatically or periodically,
depending on the source, to retrieve the current architecture information. This updates the DArT
incrementally and keeps it up to date with the evolving system. An open challenge is to ensure
that the DArT is conform with the system. To use the collected architecture information, an
architecture query language will be developed to dynamically retrieve architecture information
of diferent versions, views or abstractions levels of a system and its architecture information.</p>
      <p>The DArT in combination with the architecture query language enables to dynamically query
information that can be tailored to the specific requirements of developers, architects and other
stakeholders at the desired abstraction level and system version. An optional visualization of
the dynamic queries and views shall result in human-readable architecture description.</p>
      <p>Potential use cases of the DArT are: guided architecture design via architecture
recommendation and continuous compliance checking to prevent architecture drift. Guided architecture
designs allow based on specific questions and similarity matching of existing architecture
information tailored architectural proposals enabling a consolidated IT landscape. Automated
and continuous compliance checking monitors whether the actual system has diverged from
the planned design (software architecture drift/erosion). Recovered architecture information
(as-is) can be compared to the explicitly documented system architecture (as-planned) in order
to detect and counteract increased erosion at an early stage.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Research method</title>
      <p>The process of the doctoral research is displayed in Fig. 2. The first step is a systematic literature
review concerned with architecture recovery methods to get a thorough overview of existing
approaches, their potential use cases and benefits as well as their limitations. The second step
is the identification of potential data sources for the extraction of architecture data, which can
be used to recover architecture information employing architecture recovery methods. The
third step is the implementation of suitable architecture recovery methods. The fourth step
is the creation of the DArT by consolidating the recovered architecture information into an
architecture information model built specifically for the integration of static, dynamic and
deployment information. The fifth step is the development of an architecture query language
built for the retrieval of tailored, stakeholder-dependent architecture information employing
the DArT. The sixth step is the conduction of case studies and expert interviews, which are
performed iteratively, to evaluate the benefits and understand possible customization of the
approach. This evaluation is done using a prototype, which will be developed to extract the
architecture and evolution information which enables the generation of the DArT.</p>
      <p>Research question: "How to automatically generate the architecture description of an evolving system?"
SLR</p>
      <p>Identification of
data sources</p>
      <p>Implementation of
DCA and AIRS</p>
      <p>Creation of</p>
      <p>Digital
Architecture Twin</p>
      <p>Architecture query
language</p>
      <p>Case studies/
Evaluation</p>
    </sec>
    <sec id="sec-5">
      <title>5. Expected contributions and future work</title>
      <p>This work contributes the following: (1) development of the conceptual idea of the DArT for the
description of a system, (2) consolidation of available and recovered architecture information
in a DArT, (3) co-evolution of the DArT with the system using incremental updates featuring
heterogeneous architecture artifacts from diferent points in time and (4) development of a query
language capable of retrieving architecture information for tailored stakeholder perspectives
using the DArT.</p>
      <p>We plan to evaluate our approach by developing a prototype of the proposed approach,
applying it to open source applications and real-world applications in industry. Furthermore,
we intend to perform expert interviews to gather feedback on the idea and approach. Possible
limitations of the approach can be the resource- and time intensive architecture recovery
process, leading to time shifted description of the analyzed system, devaluing the digital twin.
Another limitation is the dificult integration of heterogeneous sources and the consolidation of
potentially contradicting information extracted from diferent sources. Future work comprises
of the development of the exchange from DArT to system.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>P.</given-names>
            <surname>Kruchten</surname>
          </string-name>
          ,
          <article-title>The 4+1 view model of architecture</article-title>
          ,
          <source>IEEE Softw</source>
          .
          <volume>12</volume>
          (
          <year>1995</year>
          )
          <fpage>42</fpage>
          -
          <lpage>50</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>T.</given-names>
            <surname>Lutellier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Chollak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Garcia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Tan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Rayside</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Medvidovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kroeger</surname>
          </string-name>
          ,
          <article-title>Comparing software architecture recovery techniques using accurate dependencies</article-title>
          ,
          <source>in: ICSE (2)</source>
          , IEEE Computer Society,
          <year>2015</year>
          , pp.
          <fpage>69</fpage>
          -
          <lpage>78</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>V.</given-names>
            <surname>Tzerpos</surname>
          </string-name>
          , R. C.
          <article-title>Holt, ACDC: an algorithm for comprehension-driven clustering</article-title>
          , in: WCRE, IEEE Computer Society,
          <year>2000</year>
          , pp.
          <fpage>258</fpage>
          -
          <lpage>267</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>O.</given-names>
            <surname>Maqbool</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. A.</given-names>
            <surname>Babri</surname>
          </string-name>
          ,
          <article-title>The weighted combined algorithm: A linkage algorithm for software clustering</article-title>
          , in: CSMR, IEEE Computer Society,
          <year>2004</year>
          , pp.
          <fpage>15</fpage>
          -
          <lpage>24</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>P.</given-names>
            <surname>Andritsos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Tzerpos</surname>
          </string-name>
          ,
          <article-title>Information-theoretic software clustering</article-title>
          ,
          <source>IEEE Trans. Software Eng</source>
          .
          <volume>31</volume>
          (
          <year>2005</year>
          )
          <fpage>150</fpage>
          -
          <lpage>165</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J.</given-names>
            <surname>Garcia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Popescu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Mattmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Medvidovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Cai</surname>
          </string-name>
          ,
          <article-title>Enhancing architectural recovery using concerns</article-title>
          , in: ASE, IEEE Computer Society,
          <year>2011</year>
          , pp.
          <fpage>552</fpage>
          -
          <lpage>555</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>D.</given-names>
            <surname>Link</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Behnamghader</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Moazeni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. W.</given-names>
            <surname>Boehm</surname>
          </string-name>
          ,
          <article-title>Recover and RELAX: concernoriented software architecture recovery for systems development and maintenance</article-title>
          , in: ICSSP, IEEE / ACM,
          <year>2019</year>
          , pp.
          <fpage>64</fpage>
          -
          <lpage>73</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Shahbazian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y. K.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. M.</given-names>
            <surname>Le</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Brun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Medvidovic</surname>
          </string-name>
          ,
          <article-title>Recovering architectural design decisions</article-title>
          , in: ICSA, IEEE Computer Society,
          <year>2018</year>
          , pp.
          <fpage>95</fpage>
          -
          <lpage>104</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>D. A.</given-names>
            <surname>Tamburri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kazman</surname>
          </string-name>
          ,
          <article-title>General methods for software architecture recovery: a potential approach and its evaluation, Empir</article-title>
          . Softw. Eng.
          <volume>23</volume>
          (
          <year>2018</year>
          )
          <fpage>1457</fpage>
          -
          <lpage>1489</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>H. A.</given-names>
            <surname>Müller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. R.</given-names>
            <surname>Tilley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Wong</surname>
          </string-name>
          ,
          <article-title>Understanding software systems using reverse engineering technology perspectives from the rigi project</article-title>
          , in: CASCON,
          <string-name>
            <surname>IBM</surname>
          </string-name>
          ,
          <year>1993</year>
          , pp.
          <fpage>217</fpage>
          -
          <lpage>226</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M. S.</given-names>
            <surname>Laser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Medvidovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. M.</given-names>
            <surname>Le</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Garcia,</surname>
          </string-name>
          <article-title>ARCADE: an extensible workbench for architecture recovery, change, and decay evaluation, in: ESEC/SIGSOFT FSE</article-title>
          , ACM,
          <year>2020</year>
          , pp.
          <fpage>1546</fpage>
          -
          <lpage>1550</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>G.</given-names>
            <surname>Canfora</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. D.</given-names>
            <surname>Penta</surname>
          </string-name>
          , L. Cerulo,
          <article-title>Achievements and challenges in software reverse engineering</article-title>
          ,
          <source>Commun. ACM</source>
          <volume>54</volume>
          (
          <year>2011</year>
          )
          <fpage>142</fpage>
          -
          <lpage>151</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>E.</given-names>
            <surname>Negri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Fumagalli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Macchi</surname>
          </string-name>
          ,
          <article-title>A review of the roles of digital twin in cps-based production systems</article-title>
          ,
          <source>Procedia Manufacturing</source>
          <volume>11</volume>
          (
          <year>2017</year>
          )
          <fpage>939</fpage>
          -
          <lpage>948</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>