<!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>Architectural Intelligence: a Framework and Application to e-Learning</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jan Martijn E.M. van der Werf</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Casper van Schuppen</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sjaak Brinkkemper</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Slinger Jansen</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Peter Boon</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gert van der Plas</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Information and Computing Science, Utrecht University</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>J.M.E.M.vanderWerf C.vanSchuppen</institution>
          ,
          <addr-line>S.Brinkkemper, S.Jansen, P.Boon, G.A.J.vanderPlas</addr-line>
        </aff>
      </contrib-group>
      <fpage>95</fpage>
      <lpage>102</lpage>
      <abstract>
        <p>Architects need insights on the extent to which quality attributes are satisfied in order to adequately evolve software systems. This is especially true for software products, which are delivered to many customers and undergo multiple releases, thereby offering ample opportunities for re-design. Available techniques to validate quality attributes either rely on workshops with stakeholders or are based on design-time software artifacts. Many quality attributes, however, are better assessed at runtime when the software system is in operation. In this paper, we present an approach that enables the systematic processing and interpretation of software operation data to gain architectural knowledge about quality attributes. In addition to introducing this approach-which we call Architectural Intelligence-, we present through a case study on an e-Learning environment a formal framework based on process mining that enables the development of second-order information systems for analyzing software operation data to provide architectural intelligence.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Quality attributes are an important aspect of the design of software architectures, as
they determine whether the system guarantees characteristics such as reliability,
security, and performance. Checking quality attributes is especially important for software
products [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], for failing to meet some qualities may result in the dissatisfaction of
multiple customers and may propagate to future product releases.
      </p>
      <p>
        While it is relatively simple to check if an architecture contains some functionality—
e.g., by verifying the existence of specific components in architectural diagrams—, the
assessment of quality attributes is more difficult [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] as they are cross-cutting concerns
that span across multiple components.
      </p>
      <p>
        Existing methods include scenario-based approaches such as the Architecture
Tradeoff Analysis Method (ATAM) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], which assesses the adherence of a system
architecture with quality attributes by conducting evaluation workshops with stakeholders. The
drawback of this solution is that it heavily relies on the knowledge and analysis by
experts, and is thus subjective, error-prone and time-consuming.
      </p>
      <p>
        Other approaches, such as prototyping or simulation [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], obtain more objective
results. However, these techniques are mostly performed during the design phase, and
quality attributes are not measured accurately during the operational phase of the
software. In line with the work on requirements monitoring [
        <xref ref-type="bibr" rid="ref14 ref6">6, 14</xref>
        ], we argue for measuring
quality attributes during software operation. By doing so, the architect gains valuable
insights on how the software actually is being used that can serve to shape the next
releases of a software product. For example, frequently used features could be grouped
differently to improve overall performance.
      </p>
      <p>
        Techniques like reverse engineering and software architecture reconstruction
focus on reconstructing the design, or even the architecture of a system [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
Architecture Compliance Checking (ACC) focuses on testing to which degree the realized
artifacts conform to the intended software architecture [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. However, all these
techniques mainly focus on the functional aspects of the system, and tend to ignore quality
attributes [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Some approaches take quality attributes into account, but tend to
focus more on reconstructing architectural artifacts than on conformance checking of the
quality attributes during the software operation phase.
      </p>
      <p>
        Dynamic architecture compliance is founded on generally available resources, such
as the call stack, process trees and message exchange [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. However, these sources
hardly contain sufficient information to measure the relevant quality attributes of an
architecture [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
      <p>
        In this paper, we present a holistic solution to quality attribute conformance
checking by combining the Software Operation Knowledge Framework (SOK) [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]—a method
that drives the evolution of software products based on operation knowledge—with
insights from process mining [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]—a technique that enables extracting knowledge by
analyzing the event logs of information systems.
      </p>
      <p>
        In previous work, we have shown that process mining has a big potential in
architectural analysis. For example, software operation data can be analyzed to validate whether
the software adheres to the quality attributes set by the intended architecture [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Also,
process discovery techniques allow to improve architecture [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], or even generate
architecture documentation [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and give insights in how the software is being used.
      </p>
      <p>After describing the framework (Sec. 2) and results applied on a case study (Sec. 3),
we outline our conclusions and present future directions (Sec. 4).
2</p>
      <p>
        Architectural Intelligence Via Architecture Mining
One of the main tasks of the software architect is to design the system and to develop
a project strategy. By making architectural design decisions, the architect constructs a
software architecture. We consider the software architecture of a system to be the “set
of structures needed to reason about the system, which comprises software elements,
relations among them and properties of both” [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. An important aspect of software
architectures is to address the quality attributes that stakeholders expect the system to
exhibit. These quality attributes are “measurable or testable properties of a system that
are used to indicate how well the system satisfies the needs of its stakeholders” [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        Opposed to the level of software architecture, many software analysis tools and
techniques exist on the software level itself to build better software. For example,
execution traces can be used to discover failures [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] or to support continuous
integration [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
Software artefacts
Deployment
0
      </p>
      <p>Realization</p>
      <p>0
Component
Software
Operation
Data
Runtime
environment
Architecture
Reconstruction 0</p>
      <p>Intended architecture</p>
      <p>Quality
Attributes
Runtime</p>
      <p>Analyzer
Evolution
Analyzer</p>
      <p>Architecture
Conformance</p>
      <p>Deviations
Changes</p>
      <p>Quality</p>
      <p>Attributes
Realized architecture</p>
      <p>Metrics</p>
      <p>Architecture
Improvement
Recommender</p>
      <p>
        This paper advocates the use of runtime software operation data [
        <xref ref-type="bibr" rid="ref17 ref20">17, 20</xref>
        ] to assess
the quality of a software architecture. Its analysis has the potential to close the loop
between software architecture and the realized software product by monitoring and
analyzing the actual realized system. In this way, data analytics techniques can provide
architectural intelligence to the software architect. Such techniques aid in making a
step forward toward continuous architecting of software systems. This is what we
propose with Architecture Mining: the collection, analysis, and interpretation of software
operation data to foster architecture evaluation and evolution.
      </p>
      <p>
        The conceptual overview of Architecture Mining is depicted in Fig. 1. It
considers an architecture consisting of a set of structures, represented by architectural views,
and quality attributes that define quality constraints on the set of structures [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. The
black arrows indicate the dependencies between the different elements, whereas the red
arrows indicate which steps can benefit from software operation data. The intended
architecture is separated from the realized architecture due to architectural erosion [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]:
the realization of software typically tends to drift away from the intended architecture.
A system realization consists of many different artifacts, including source code and
documentation, and is eventually deployed in some environment in which the system
operates. Once the system is operational, it starts collecting software operation data.
      </p>
      <p>The conceptual overview does not impy an order between the phases, only the
dependencies are shown. Following the framework from top to bottom, the intended
architecture is used to derive the software artefacts. The framework does not specify whether
e.g. a waterfall method or an agile method is used to realize the software artifacts.
The realized software artefacts are deployed, which results in an operational software
system. The software artifacts are input for Software Architecture Reconstruction and
Architecture Conformance Checking. The former results in an explicit realized
architecture. Together with the intended architecture, the latter results in a set of deviations
from the intended architecture. Based on the software operation data, the Runtime
Analyzer analyzes to which degree quality attributes specified in the intended architecture
are satisfied, and results in a set of metrics. Comparing the realized architecture and the
intended architecture gives insights in how the realized architecture drifted apart from
the intended architecture. This is the task of the Evolution Analyzer which results in a
set of changes with respect to the intended architecture.</p>
      <p>The derived actual architecture, the metrics, deviations and changes are input for
the Architecture Improvement Recommender, which ultimately results in an improved
intended architecture.
3</p>
      <p>
        Formalisation and Application in the e-Learning Domain
We applied the Architecture Intelligence framework to a software product called DME 1,
an e-Learning application for practicing mathematics and aimed mainly at secondary
school students. DME is actively used by teachers and researchers to develop courses,
and to analyze didactic behavior [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Currently, around 120 schools in the
Netherlands actively use the product for their mathematics classes. The product serves in total
around 60,000 pupils, students and teachers. The purpose of this study was to evaluate
feasibility and effectiveness.
3.1
      </p>
      <p>
        Formalisation of Events
The premise of our formal framework is that software systems can be regarded as
largescale event-based systems: calling a system method, passing a message, and executing
functionalities all occur at some time, and in some (partial) order, and are triggered by
some source, such as the user, or other system modules. One way to monitor the system
operation is by gathering and store these events [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Each event is generated by some
resource and a time window in which it occurred. Events can contain additional data,
such as the function being called, its parameters, etc. We refer the reader interested in
the full formalisation to [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
3.2
      </p>
      <p>
        Runtime Analysis
A first simple use on operation data is to visualize the execution trace [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. An example
trace within our case study is shown as a UML Timing diagram in Fig. 2(a). This figure
reveals useful information, such as which modules are called, and in what order. Each
stage generates events, such as the start and end time.
      </p>
      <p>
        To gather software operation data in a structured way, we build in this case study
upon the process mining log framework XES [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], by adding a connection to the
software architecture through architectural features. Different conceptual models exist to
represent software operation data, such as [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], that focus on storing execution traces.
Such models, however, mainly focus on the system execution itself, whereas with
architectural intelligence, we would like to relate the operation data to higher abstractions,
for which XES is highly suited.
      </p>
    </sec>
    <sec id="sec-2">
      <title>1 https://app.dwo.nl/site/index en.html</title>
      <p>User</p>
      <p>BEend BEend AEstart BEend
FEstart AEstart BEstart BEstart AEend BEstart AEend FEend
(a) Feature call</p>
      <p>Feature
Feature ID
Feature
description 1</p>
      <p>Event
* TEivmenetstIaDmp</p>
      <p>Event type
Feature
Event
Feature ID
Actor ID (user)
Actor role
Event type = FE</p>
      <p>Access Back-end
Event Event
Event type = AE Event type = BE
URL
Request
parameters</p>
      <p>Accesstype
(b) Conceptual model</p>
      <p>Query Event
Query
classification</p>
      <p>In our model, depicted in Fig. 2(b), events originate from different sources, and thus
may have different properties. The Event is the core concept. Each event can be linked
to some Feature, which represents a dedicated, coherent set of functionality. As per
Fig. 2(a), events can be linked to different architectural elements. In this case study, we
link the events to architectural elements by creating sub concepts of Event. An Access
Event records the login of an end user, Back-end Events represent events raised by the
application server and Feature events are triggered through the actions of end-users. As
there might be different back-end systems in use, these can be differentiated as separate
specializations of the Back-end Event, such as the execution of queries (Query Events).
3.3</p>
      <p>Design of the Data Collection through GQM
Collecting all possible software operation data is typically infeasible. An
operationalized system generates too many events if all function and system calls are being recorded.
On the other hand, just recording operation data is not sufficient. As an example, in an
event-bus system, just recording which messages are sent over the bus is typically not
sufficient: it is not possible to derive when a component has actually read the message.
Additionally, the stored data needs to be related to the architectural elements.</p>
      <p>Thus, the architect should think already during system design how quality attributes
can be measured and which data needs to be collected to evaluate the metric. For
greenfield designs, the architect can add an operation-data view to the architecture
documentation, and design the operation-data collection from scratch. However, for
evolving existing applications, this is more difficult, and the available data sources—such
as performance monitors or even sources of functional data—need to be analyzed and
integrated in the Architectural Intelligence Framework.</p>
      <p>
        To assist the architect in deciding what data to record, we use the
Goal-QuestionMetric (GQM) method [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. The architect defines a set of goals that the system should
fulfill and for which insights are needed. Based on these goals, the architect collects the
design decisions for that goal, the perspectives of the relevant stakeholders, the quality
attributes that are related to this goal, and which questions and metrics the architect
wants to monitor. Additionally, the architect should add a section on how data is
generated and collected.
      </p>
      <p>In our e-Learning environment, the architects aimed to answer the question “When
is the application used for what purposes?”. Based on the metrics from the GQM
tem(a) Time of the day</p>
      <p>(b) Over the week (starting at Sunday)
plates, we gathered data to compute those metrics. The data gathering was done using
the SOK acquisition tool JAMon 2 which provided data per query (22 MB) and per time
period aggregated access data (17 MB). Each of the queries was subsequently
classified and related to a specific feature. Additionally, the database mutations (inserts,
updates) were examined based on extracted event data from daily backups of the database
(MySQL binlog files, total of 35 GB). JAMon data was gathered for two weeks, and
query mutation data for 6 months.</p>
      <p>Early observations about the events over time (hour) and the load over the day show
that it is convenient to split the analysis into week and weekend days. Analysis of the
data shows that most usage originates from students doing exercises. Many features,
as well as the overall view, show a specific usage daily distribution, shown in Fig. 4.
Additionally, we looked at the fraction of mutations and queries, which seems to be
rather constant over time. This gives the advantage that less data collection is required
to sufficiently fill the metrics to answer the questions of the architects.
3.4</p>
      <p>Evaluation with the Architect
Based on the metrics on the software operations, the software architecture was
evaluated with the lead architect of DME. The study provided valuable insights, including
answers to the goals and the initial concerns of the architect. During the study, a key
challenge was to keep up with the architectural changes that occurred quickly. A
number of important development changes were ongoing, including a refactoring of the
database model and the exploration for the on-going adaptation for deployment in a
cloud environment. It is essential to document these evolving aspects of the
architecture, and moreover to analyze pending or optional architectural changes and base our
recommendations on them instead of analyzing a static architectural snapshot.</p>
      <p>We found that the definition of the questions from the architect, getting the required
data, and doing the right analysis are a process by themselves and require a number
of iterations in order to become sufficiently accurate. We have only started shaping
this process, and the use of the GQM template was positive; however, more research is
necessary to create a reliable, general method to support these activities.</p>
    </sec>
    <sec id="sec-3">
      <title>2 http://jamonapi.sourceforge.net/</title>
      <p>Threats to validity First, the case study was conducted for a relatively short time
frame over which the data was available and the model was stable, an essential aspect
required to use this framework. To fill all the defined metrics as intended, we should
have collected more data or employed a complete dataset. Determining the logging
required to acquire the relevant software operation data is therefore essential for using
this framework. Second, we did conduct a single case study; thus, the generalizability
of the results is low. Third, we used convenience sampling to choose the application;
nevertheless, DME is a large and real-world system that goes way beyond being a toy
example. Fourth, the interviews with the lead architect were conducted through
informally; in further researches, semi-structured interviews should be preferred to obtain
more reliable knowledge.
4</p>
      <p>Conclusion and Future Work
In this paper, we advocate the use of software operation data to provide useful
information about the extent to which a software architecture conforms to the desired quality
attributes. We have proposed Architecture Mining that synergistically combines
existing fields like reverse engineering, software architecture reconstruction and
architecture compliance checking with large scale data analysis techniques like process mining.
These techniques add the capability to analyze event-based software operation data
to discover dynamic architectural views to perform conformance checking about the
quality attributes. The proposed approach emphasizes the central role of the software
architecture in providing useful insights to software designers, especially to architects.</p>
      <p>To validate the framework, we applied it on a case study on an real-world,
largescale e-Learning environment and evaluated the results with the architects, who
perceived the gained insights and recommendations on flexibility and adaptability as
effective. The case study revealed that defining and obtaining the right software operation
data is a process in itself, and therefore we have proposed to use the GQM method to
define the appropriate data sources for software operation data. This use of GQM was
perceived positively by the architects. However, more research is required to create a
reliable, general method to support this process.</p>
      <p>We found that, in order to better manage log data and for the continuous
acquisition of software operation data, the logging mechanisms should be an integral part of
the design of a system. Preferably, the acquired data should be easily adaptable to the
specific questions and goals of the architect during the software life cycle.</p>
      <p>Initial research shows that analyzing software operation data provides useful
insights on software usage from an architectural perspective. Although our baseline
consists of solid techniques from different fields, further research is required to define a
more comprehensive method that supports architectural intelligence. We argue
architectural intelligence to be crucial for closing the gap between the design and operation
of software, and a building block of continuous architecting.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
          </string-name>
          .
          <source>Process Mining: Discovery, Conformance and Enhancement of Business Processes</source>
          . Springer, Berlin,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>L.</given-names>
            <surname>Alawneh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hamou-Lhadj</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>J.</given-names>
            <surname>Hassine</surname>
          </string-name>
          .
          <article-title>Towards a common metamodel for traces of high performance computing systems to enable software analysis tasks</article-title>
          .
          <source>In SANER 2015</source>
          , pages
          <fpage>111</fpage>
          -
          <lpage>120</lpage>
          . IEEE,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>L.</given-names>
            <surname>Bass</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Clements</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Kazman</surname>
          </string-name>
          .
          <source>Software Architecture in Practice. Series in Software Engineering. Addison Wesley</source>
          , Reading, MA, USA,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>M.</given-names>
            <surname>Brandtner</surname>
          </string-name>
          , E. Giger, and
          <string-name>
            <given-names>H. C.</given-names>
            <surname>Gall</surname>
          </string-name>
          .
          <article-title>Supporting continuous integration by mashing-up software quality information</article-title>
          .
          <source>In CSMR-WCRE</source>
          <year>2014</year>
          , pages
          <fpage>184</fpage>
          -
          <lpage>193</lpage>
          . IEEE,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Sjaak</given-names>
            <surname>Brinkkemper</surname>
          </string-name>
          and
          <string-name>
            <given-names>Xu</given-names>
            <surname>Lai</surname>
          </string-name>
          .
          <article-title>Concepts of product software</article-title>
          .
          <source>European Journal of Information Systems</source>
          ,
          <volume>16</volume>
          (
          <issue>5</issue>
          ):
          <fpage>531</fpage>
          -
          <lpage>541</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Fabiano</given-names>
            <surname>Dalpiaz</surname>
          </string-name>
          , Paolo Giorgini,
          <string-name>
            <given-names>and John</given-names>
            <surname>Mylopoulos</surname>
          </string-name>
          .
          <article-title>Adaptive socio-technical systems: a requirements-driven approach</article-title>
          .
          <source>Requirements Engineering</source>
          ,
          <volume>18</volume>
          (
          <issue>1</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>24</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Lakshitha de Silva and
          <string-name>
            <given-names>Dharini</given-names>
            <surname>Balasubramaniam</surname>
          </string-name>
          .
          <article-title>Controlling software architecture erosion: A survey</article-title>
          .
          <source>Journal of Systems and Software</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>L.</given-names>
            <surname>Dobrica</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Niemela</surname>
          </string-name>
          <article-title>¨. A survey on software architecture analysis methods</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>28</volume>
          (
          <issue>7</issue>
          ):
          <fpage>638</fpage>
          -
          <lpage>653</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>P.</given-names>
            <surname>Drijvers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Doorman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Boon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Reed</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Gravemeijer</surname>
          </string-name>
          .
          <article-title>The teacher and the tool: instrumental orchestrations in the technology-rich mathematics classroom</article-title>
          .
          <source>Educational Studies in mathematics</source>
          ,
          <volume>75</volume>
          (
          <issue>2</issue>
          ):
          <fpage>213</fpage>
          -
          <lpage>234</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>S.</given-names>
            <surname>Ducasse</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Pollet</surname>
          </string-name>
          .
          <article-title>Software architecture reconstruction: A process-oriented taxonomy</article-title>
          .
          <source>Software Engineering</source>
          , IEEE Transactions on,
          <volume>35</volume>
          (
          <issue>4</issue>
          ):
          <fpage>573</fpage>
          -
          <lpage>591</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>S.</given-names>
            <surname>Klock</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. M. E. M. van der Werf</surname>
            ,
            <given-names>J. P.</given-names>
          </string-name>
          <string-name>
            <surname>Guelen</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Jansen</surname>
          </string-name>
          .
          <article-title>Workload-based clustering of coherent feature sets in microservice architectures</article-title>
          .
          <source>In ICSA 2017. IEEE</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>J.</given-names>
            <surname>Knodel</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Popescu</surname>
          </string-name>
          .
          <article-title>A comparison of static architecture compliance checking approaches</article-title>
          .
          <source>In WICSA 2007</source>
          , pages
          <fpage>12</fpage>
          -
          <lpage>12</lpage>
          . IEEE,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>M. Perscheid</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Felgentreff</surname>
            , and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Hirschfeld</surname>
          </string-name>
          .
          <article-title>Follow the path: Debugging state anomalies along execution histories</article-title>
          .
          <source>In CSMR-WCRE</source>
          <year>2014</year>
          , pages
          <fpage>124</fpage>
          -
          <lpage>133</lpage>
          . IEEE,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>W. N</given-names>
            <surname>Robinson</surname>
          </string-name>
          .
          <article-title>A requirements monitoring framework for enterprise systems</article-title>
          .
          <source>Requirements engineering</source>
          ,
          <volume>11</volume>
          (
          <issue>1</issue>
          ):
          <fpage>17</fpage>
          -
          <lpage>41</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. C. van Schuppen.
          <article-title>Quality attribute tradeoff in learning infrastructure scaling</article-title>
          . Utrecht University,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. R. van Solingen,
          <string-name>
            <given-names>V.</given-names>
            <surname>Basili</surname>
          </string-name>
          , G. Caldiera, and
          <string-name>
            <given-names>D. H.</given-names>
            <surname>Rombach</surname>
          </string-name>
          .
          <article-title>Goal question metric (GQM) approach</article-title>
          . Encyclopedia of Software Engineering,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. H.
          <string-name>
            <surname>van der Schuur</surname>
            ,
            <given-names>S.</given-names>
            Jansen, and S.
          </string-name>
          <string-name>
            <surname>Brinkkemper</surname>
          </string-name>
          .
          <article-title>Reducing maintenance effort through software operation knowledge: An eclectic empirical evaluation</article-title>
          .
          <source>In CSMR 2011</source>
          , pages
          <fpage>201</fpage>
          -
          <lpage>210</lpage>
          . IEEE,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>H. M. W. Verbeek</surname>
            ,
            <given-names>J. C. A. M.</given-names>
          </string-name>
          <string-name>
            <surname>Buijs</surname>
            ,
            <given-names>B. F. van Dongen</given-names>
          </string-name>
          , and
          <string-name>
            <surname>W. M. P. van der Aalst. XES</surname>
          </string-name>
          , XESame, and
          <article-title>ProM 6</article-title>
          .
          <source>In Information System Evolution</source>
          , volume
          <volume>72</volume>
          , pages
          <fpage>60</fpage>
          -
          <lpage>75</lpage>
          . Springer, Berlin,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>J. M. E. M. van der Werf</surname>
            and
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Kaats</surname>
          </string-name>
          .
          <article-title>Discovery of functional architectures from event logs</article-title>
          .
          <source>In PNSE</source>
          <year>2015</year>
          , volume
          <volume>1372</volume>
          <source>of CEUR-WS</source>
          , pages
          <fpage>227</fpage>
          -
          <lpage>243</lpage>
          . CEUR-WS.org,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>J. M. E. M van der. Werf</surname>
            and
            <given-names>H. M. W.</given-names>
          </string-name>
          <string-name>
            <surname>Verbeek</surname>
          </string-name>
          .
          <article-title>Online compliance monitoring of service landscapes</article-title>
          .
          <source>In BPM Workshops, Revised Papers</source>
          , volume
          <volume>202</volume>
          <source>of LNBIP</source>
          , pages
          <fpage>89</fpage>
          -
          <lpage>95</lpage>
          . Springer, Berlin,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>