<!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>Interactive User-Oriented Views for Better Understanding Software Systems</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Truong Ho-Quang, Michel R.V. Chaudron Department of Computer Science and Engineering Chalmers University of Technology and Gothenburg University Gothenburg</institution>
          ,
          <country country="SE">Sweden</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Understanding software artefacts is a crucial task for people who want to participate in any software development process. However, because of the large amount of detailed and scattered information in software artefacts, understanding them is usually time-consuming and vulnerable to human errors and subjectivities. A system that aids practitioners to investigate understanding about software artefacts could reduce the vulnerabilities and speed up software development/maintenance process. Our research focuses on building a comprehensive view of software system in order for developers to achieve the two goals: (i) to save the time spending on searching and navigating on source code; and (ii) to gain better understanding about software artefacts regarding to domain-specific tasks. To achieve these goals, we propose an emprical approach in which the visualisation and the generation of high-level design and architectural views from source code and design documentations have been played central roles. The research is on-going and could potentially be extended to di↵erent software artefacts (such as requirements, use-cases, test-cases, revision logs).</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Software artefacts are created, maintained and evolved as part of a software development project. Understanding
software artefacts is a crucial task for every person who wants to participate in any phase of software development
life cycle [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. However, because of the large amount of detailed and scattered information in software artefacts,
understanding them is usually very time-consuming and vulnerable to human errors and subjectivities [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ][
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
The task becomes even more dicult when it comes to large-size software projects, which contain a huge amount
of code, designs and documentation.
      </p>
      <p>
        Recently, a significant number of research and tools has been conducted in order to investigate better
understanding of software artefacts. It can be listed as reverse engineering [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], feature location [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], document
summarization, etc. However, there is lack of automatic approaches were proposed. With regards to those
that can automatically perform the task, the accuracy is not high [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Soh et.al, with an observation on 2408
developers interaction logs, has pointed out that 62% of files explored during the implementation of a task are
not significantly relevant to the final implementation of the task [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
      <p>In addition, the approaches are usually applied on a single software artefact (e.g. source code, revision history),
resulting in a single view(navigation or search results). This fact, at some points, limits developers ability to
obtain the overview of the whole (OR a part of) system, which is an essential part of understanding, with
regards to the development/maintenance task. Thus, creating of a comprehensible view which can automatically
navigate and generate suitable views on di↵erent software artefacts would be very beneficial.</p>
      <p>
        To this end, our research has been focusing on the visualisation and the generation of high-level design and
architectural views from source code and design documentations. The research could potentially be extended to
di↵erent software artefacts (such as requirements, use-cases, test-cases, revision logs [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]).
      </p>
      <p>Figure 1 shows a prototype design of such the view. Given a maintenance task, the sub-views show the
taskrelated parts on di↵erent software artefacts. Sub-view Architecture Overview shows an overview of the system
with highlights on the task-related components. Sub-view Editor locates to the relevant part of source code.
Sub-view Chat shows the list of the responsible developers and the historical chat regarding the observed source
code. Sub-views are linkable between themselves and automatically or manually updated. We take developers as
the main audience of our research. The following example reveals how the developers perform the understanding
task using the view. We consider it as the motivation in our research.</p>
      <p>Motivation example. Developer X has to conduct a task: Maintain Feature A. Software artefacts are stored
in projects database. X starts by logging into his work space (e.g. an IDE), then performs searching for the
Feature A by key words. Sub-view Editor will automatically address the related parts of source code which could
potentially be changed during the maintenance work. Sub-views Architecture Overview and Sequence Diagram
will provide the developer with an overview about the code structure and probably a suggestion about which
parts could be subsequently changed. The developer can ask for recommendations from responsible persons
through Chat space. Using such the view could allow the developer to better investigate understanding about
the task and the system, and to reduce the implementation and maintenance time.</p>
      <p>The rest of this paper is organized as follows. In Section 2, we dicuss the problem definition and formulate
two main research questions. Section 3 presents the outlines of our approach.
2
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>Problem Statement and Research Questions</title>
      <sec id="sec-2-1">
        <title>Problem Statement</title>
        <p>
          Lack of empirical research on developers cognitive task during software maintenance phase. Despite
the large body of work on software maintenance [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ][
          <xref ref-type="bibr" rid="ref20">20</xref>
          ][
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], there are very few studies that empirically
investigated how developers achieve the understanding of software artefacts during software development/maintenance
activities. Ko et.al [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ][
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] has revealed a number of issues that cause developers more time on navigation
between source files. The authors have suggested ideas for tools that help developers seek, relate, and collect
information in a more e↵ective and explicit manner. On the other hand, it seems that there is a huge gap
between state-of-the-art research and practice in software comprehension. An observational study by Roehm
et.al shows that no one in the 28 professional developers (from seven software companies) observes any use of
state-of-the-art comprehensive tools [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
        </p>
        <p>
          Hard to collect relevant task-based information e↵ectively and automatically. For most tasks,
developers begin by searching then navigating by search results. However, traditional searching methods seem
not very e↵ective. A. J. Ko et.al have revealed that an average of 88 percent ( ±11) of developers searches led
to nothing of later use in the task. Those failed searches were at least partially responsible for approximately
36 percent of their time spent on inspecting irrelevant code [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. Recently, a number of task-specific searching
methods (such as features location, program slicing, UML slicing, etc.) has been introduced. However, they are
not easy to apply and sensitive to inputs quality [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. Thus, developing an easy-to-use solution could improve
searching and navigating eciencies.
        </p>
        <p>
          Lack of visualisation of relevant information in understandable manners. Apart from searching
and navigation, visualisation of software artefacts is widely used in the areas of software maintenance, reverse
engineering, and re-engineering, where typically large amounts of complex data need to be understood and a
high degree of interaction between software engineers and automatic analyses is required. Over the past few
years, software visualisation has greatly evolved. However, despite the fact that software visualisation tools have
a great potential, when it comes to contextual information, finding a suitable solution is not an easy work [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ][
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]
(e.g. UML design layouting, personalised view, etc.).
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Research Questions</title>
        <p>Our research focuses on the visualisation and the generation of high-level design and architectural views from
source code and design documentations. In order to come up with a systematic answer for the question, it’s
necessary to find out what is practitioner’s mind when performing the understanding task. Thus, we would think
about the following research questions:</p>
        <p>RQ1. What are practitioners needs in order to understand a part of system with regards to a specific task?
RQ2. How to generate and present the information by an e↵ective way?
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Research Approaches</title>
      <p>In order to investigate the two research questions, we conduct two research activities as shown in the Figure
2. In Research Activity 1, we use both qualitative and quantitative approaches to learn practitioners needs and
strategies during the understanding phase. In particular, by conducting interviews with industrial and academic
practitioners, we could achieve better understanding on what is their cognitive thinking and possibly the strategy
that was used to understand the system. By logging practitioners activities and analysing the logging file, we
could statistically investigate their unconscious behaviors and the diculties performing the understanding task.
This approach is discussed in detail in subsection A.</p>
      <p>Research Activity 2 aims at answering RQ2 with a focus on generating high-level abstraction of design and
architectural views from source code. We have been studying sense-making and software architectural visualisation.
The approaches are discussed in subsection B.</p>
      <p>Activity 1 and Activity 2 are concurrently performed. On one hand, outcomes of Activity 1 can be considered
as requirements for Activity 2. On the other hand, research ideas and the views that are generated from Activity
2 will be introduced to pratitioners. Validation will be made during the iterations of the two activities.
3.1
3.1.1</p>
      <sec id="sec-3-1">
        <title>An exploratory study of practitioners</title>
      </sec>
      <sec id="sec-3-2">
        <title>Conduct interviews</title>
        <p>Developers are often not up-to-date with state-of-the-art comprehension tools. On the other hand, academia has
a limited knowledge about industrial practitioners. For example, when it comes to questions like: How could we
understand a (part of a) software system? Referring to software design seems to be an obvious answer. However,
none of the observed research has mentioned the use of architecture design as part of the understanding process.</p>
        <p>Thefore, semi-structured interviews will be used to get a better understanding of software practitioners.
We consider both academic and industrial developers as targeted interviewees. We split them into groups
by several ways: level of software comprehension expertise; familiar with a specific software system/software
maintenance task. Shedding some lights in the di↵erences between groups in understanding software systems
could be beneficial for us in order to generate suitable views for each group. We take our colleagues and Software
Engineering students at the University of Gothenburg and Chalmers University of Technology as academic
candidates. We have been inviting a number of local companies (such as Volvo Cars, Ericsson) and out-of-border
companies (which locate in Vietnam, The Netherland) to involve in this research.
3.1.2</p>
      </sec>
      <sec id="sec-3-3">
        <title>Process Mining</title>
        <p>
          In the quest for knowledge about strategies and struggles that practitioners have found during the
understanding phase, process mining is possible research tool. Process mining techniques make use of historical data to
graphically represent and analyse a particular process [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ].
        </p>
        <p>
          Blikstein reported of the use of a logging module for programming tasks [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] and identified student strategies
that could help lecturers identify student problems in an early stage of the task. Ko et al. conducted a study
in which they used the combination of a logging file and a visual interpretation tool to analyse the behaviour of
software developers during a maintenance task [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. They successfully identified di↵erent strategies the developers
used. Claes, Pingerra et.al [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ][
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] logged students events during business process modeling sessions. They used
visual analysis [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ] and found di↵erent styles and related them to model quality.
        </p>
        <p>
          By using a process mining approach, we have conducted an exploratory study on students strategies performing
software modeling tasks [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. We found out that students use di↵erent strategies for solving the tasks. We
categorised these strategies into four main strategies: Depthless, Depth First, Breadth First and Ad-Hoc. From
our results Depth First indicates to support better layout and richness (detail). We wanted to examine our
insights by conducting this experiment on a bigger sample size of students, and possibly on industrial side.
3.2
3.2.1
        </p>
      </sec>
      <sec id="sec-3-4">
        <title>Data generation and development of the views</title>
      </sec>
      <sec id="sec-3-5">
        <title>Sense-making on source code</title>
        <p>
          Sensemaking, as described by Weick [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], literally means making sense of events. According A. von Mayrhauser,
sensemaking is a term used to refer to humans capability to actively comprehend the significance of ambiguous
events and data [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ]. To our point of view, sense-making is considered as a process where software artefacts are
manipulated and presented in a higher level of abstraction. With the focus on high-level design and architectural
concepts from source code, we take software reverse engineering (RE) and natural language processing (NLP) as
the main drivers for the sense-making process.
        </p>
        <p>
          Reverse Engineering. Reverse engineering aims to analyse the source code of a system and create design
representations of the system [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. Open source and commercial tools have been developed to generate software
design from source code. However, the reverse engineered presentation often contains too much details. When
a RE class diagram becomes too large, it provides little benefit towards program. We have been working on
possible solutions to present the RE diagrams in a more informative way.
        </p>
        <p>
          We take the prior research done by Osman et.al as inspiration. The authors have proposed a supervised
machine learning approach to condense RE class diagrams into another class diagram that is close to forward
design diagram [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ][
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. The authors compute values of a number of design metrics from source code and use those
to predict classes as important or not. The condensed diagram is then constructed from the reverse-engineered
diagram by keeping the important classes and eliminating unimportant ones. Thung et.al have extended Osmans
work by using networks metrics as predictors [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. This work could be extended by considering more predictor
features, i.e. dynamic metrics (from execution traces), text mining metrics (from use cases, requirements).
        </p>
        <p>
          Natural Language Processing. NLP can be considered as a process of extracting information from human
or natural language inputs. By adapting NLP to source code analysis, one could be able to extract
semanticallyrelated parts of source code, which in the end results in the reducing of maintenance cost. Shepherd et.al has
introduced a Find-Concept search process which makes use of NLP analysis that captures the relations between
actions (verbs) and the objects (nouns) that these actions act upon [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]. Hill et.al propose a technique and
a tool to score method relevance with respect to natural language descriptions of a specific maintenance task
[
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. Starting with a seed method and a natural language description of the bug to be fixed or feature to be
added, the tool automatically generate and show a reduced version of the call-graph of the method by pruning
irrelevant structure edges from consideration. We have been working on automatic recognition of classs roles
(such as UI, security, persistence, etc.) by using text-analysis on source code. The result could then be displayed
in a role-based view of reverse engineering design.
3.2.2
        </p>
      </sec>
      <sec id="sec-3-6">
        <title>Data visualisation</title>
        <p>
          Visualisation depends on target audience and its information needs which are not available at the first phases
of the research. Therefore, visualisation is not our main focus at current time. So far, we have been working
on the two main directions: 1) With regards to the visualisation of RE diagrams: We are considering di↵erent
visualisation strategies for class’s roles; 2) Regarding presentation of activity logging data: We have developed
the tool LogViz which is capable of showing multiple logging files and filtering the logging by activities and
architectural elements [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. In the time to come, we tend to contact with companies for validating our approaches.
        </p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>P.</given-names>
            <surname>Blikstein</surname>
          </string-name>
          .
          <article-title>Using learning analytics to assess students' behavior in open-ended programming tasks</article-title>
          .
          <source>In Proceedings of the 1st International Conference on Learning Analytics and Knowledge</source>
          ,
          <source>LAK '11</source>
          , pages
          <fpage>110</fpage>
          -
          <lpage>116</lpage>
          , New York, NY, USA,
          <year>2011</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>B. W.</given-names>
            <surname>Boehm</surname>
          </string-name>
          .
          <article-title>Software engineering</article-title>
          .
          <source>IEEE Trans. Comput.</source>
          ,
          <volume>25</volume>
          (
          <issue>12</issue>
          ):
          <fpage>1226</fpage>
          -
          <lpage>1241</lpage>
          , Dec.
          <year>1976</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>E.</given-names>
            <surname>Chikofsky</surname>
          </string-name>
          and
          <string-name>
            <surname>I. Cross</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.H.</surname>
          </string-name>
          <article-title>Reverse engineering and design recovery: a taxonomy</article-title>
          .
          <source>Software, IEEE</source>
          ,
          <volume>7</volume>
          (
          <issue>1</issue>
          ):
          <fpage>13</fpage>
          -
          <lpage>17</lpage>
          ,
          <year>Jan 1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J.</given-names>
            <surname>Claes</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Vanderfeesten</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Pinggera</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Reijers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Weber</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Poels</surname>
          </string-name>
          .
          <article-title>A visual analysis of the process of process modeling</article-title>
          .
          <source>Information Systems and e-Business Management</source>
          ,
          <volume>13</volume>
          (
          <issue>1</issue>
          ):
          <fpage>147</fpage>
          -
          <lpage>190</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>M. R. C. Dave R. Stikkolorum</surname>
          </string-name>
          , Truong Ho-Quang.
          <article-title>Revealing students uml class diagram modelling strategies with webuml and logviz. In (accepted for presentation at the Euromicro SEAA conference</article-title>
          ,
          <source>August 26-28</source>
          ,
          <year>2015</year>
          and publication in the conference proceedings).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>C. B. de Souza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Anquetil</surname>
          </string-name>
          , and
          <string-name>
            <surname>K. M. de Oliveira</surname>
          </string-name>
          .
          <article-title>A study of the documentation essential to software maintenance</article-title>
          .
          <source>In Proceedings of the 23rd Annual International Conference on Design of Communication: Documenting &amp;Amp; Designing for Pervasive Information, SIGDOC '05</source>
          , pages
          <fpage>68</fpage>
          -
          <lpage>75</lpage>
          , New York, NY, USA,
          <year>2005</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>C. A.</given-names>
            <surname>Decker</surname>
          </string-name>
          .
          <article-title>Sensemaking in organizations, by k</article-title>
          . e. weick. (
          <year>1995</year>
          ). thousand oaks, ca: Sage. 321 pp.,
          <volume>44</volume>
          .
          <year>00cloth</year>
          ,
          <volume>19</volume>
          .95 paper.
          <source>Human Resource Development Quarterly</source>
          ,
          <volume>9</volume>
          (
          <issue>2</issue>
          ):
          <fpage>198</fpage>
          -
          <lpage>201</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>B.</given-names>
            <surname>Dit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Revelle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gethers</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Poshyvanyk</surname>
          </string-name>
          .
          <article-title>Feature location in source code: a taxonomy and survey</article-title>
          .
          <source>Journal of Software: Evolution and Process</source>
          ,
          <volume>25</volume>
          (
          <issue>1</issue>
          ):
          <fpage>53</fpage>
          -
          <lpage>95</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A.</given-names>
            <surname>Dunsmore</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Roper</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wood</surname>
          </string-name>
          .
          <article-title>The role of comprehension in software inspection</article-title>
          .
          <source>Journal of Systems and Software</source>
          ,
          <volume>52</volume>
          (
          <issue>23</issue>
          ):
          <fpage>121</fpage>
          -
          <lpage>129</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Q.</given-names>
            <surname>Gan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Liang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Cao</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Zhou</surname>
          </string-name>
          .
          <article-title>Document visualization: an overview of current research</article-title>
          .
          <source>Wiley Interdisciplinary Reviews: Computational Statistics</source>
          ,
          <volume>6</volume>
          (
          <issue>1</issue>
          ):
          <fpage>19</fpage>
          -
          <lpage>36</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>E.</given-names>
            <surname>Hill</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Pollock</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Vijay-Shanker</surname>
          </string-name>
          .
          <article-title>Exploring the neighborhood with dora to expedite software maintenance</article-title>
          .
          <source>In Proceedings of the Twenty-second IEEE/ACM International Conference on Automated Software Engineering, ASE '07</source>
          , pages
          <fpage>14</fpage>
          -
          <lpage>23</lpage>
          , New York, NY, USA,
          <year>2007</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>T.</given-names>
            <surname>Ishio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Hayashi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kazato</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Oshima</surname>
          </string-name>
          .
          <article-title>On the e↵ectiveness of accuracy of automated feature location technique</article-title>
          .
          <source>In Reverse Engineering (WCRE)</source>
          ,
          <year>2013</year>
          20th Working Conference on, pages
          <fpage>381</fpage>
          -
          <lpage>390</lpage>
          ,
          <year>Oct 2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A. J.</given-names>
            <surname>Ko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Aung</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B. A.</given-names>
            <surname>Myers</surname>
          </string-name>
          .
          <article-title>Eliciting design requirements for maintenance-oriented ides: A detailed study of corrective and perfective maintenance tasks</article-title>
          .
          <source>In Proceedings of the 27th International Conference on Software Engineering</source>
          , ICSE '
          <volume>05</volume>
          , pages
          <fpage>126</fpage>
          -
          <lpage>135</lpage>
          , New York, NY, USA,
          <year>2005</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A. J.</given-names>
            <surname>Ko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. A.</given-names>
            <surname>Myers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Coblenz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H. H.</given-names>
            <surname>Aung</surname>
          </string-name>
          .
          <article-title>An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks</article-title>
          .
          <source>IEEE Trans. Softw</source>
          . Eng.,
          <volume>32</volume>
          (
          <issue>12</issue>
          ):
          <fpage>971</fpage>
          -
          <lpage>987</lpage>
          , Dec.
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Osman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Chaudron</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P. Van Der</given-names>
            <surname>Putten</surname>
          </string-name>
          .
          <article-title>An analysis of machine learning algorithms for condensing reverse engineered class diagrams</article-title>
          .
          <source>In Software Maintenance (ICSM)</source>
          ,
          <year>2013</year>
          29th IEEE International Conference on, pages
          <fpage>140</fpage>
          -
          <lpage>149</lpage>
          ,
          <year>Sept 2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Osman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Chaudron</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Van Der Putten</surname>
          </string-name>
          , and
          <string-name>
            <surname>T.</surname>
          </string-name>
          Ho-Quang.
          <article-title>Condensing reverse engineered class diagrams through class name based abstraction</article-title>
          .
          <source>In Information and Communication Technologies (WICT)</source>
          ,
          <source>2014 Fourth World Congress on</source>
          , pages
          <fpage>158</fpage>
          -
          <lpage>163</lpage>
          ,
          <year>Dec 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>J.</given-names>
            <surname>Pinggera</surname>
          </string-name>
          , P. So↵er, S. Zugal,
          <string-name>
            <given-names>B.</given-names>
            <surname>Weber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Weidlich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Fahland</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Reijers</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Mendling</surname>
          </string-name>
          .
          <article-title>Modeling styles in business process modeling</article-title>
          . In I. Bider,
          <string-name>
            <given-names>T.</given-names>
            <surname>Halpin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Krogstie</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Nurcan</surname>
          </string-name>
          , E. Proper,
          <string-name>
            <given-names>R.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          , P. So↵er, and S. Wrycza, editors,
          <source>Enterprise, Business-Process and Information Systems Modeling</source>
          , volume
          <volume>113</volume>
          <source>of Lecture Notes in Business Information Processing</source>
          , pages
          <fpage>151</fpage>
          -
          <lpage>166</lpage>
          . Springer Berlin Heidelberg,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>T.</given-names>
            <surname>Roehm</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Tiarks</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Koschke</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Maalej</surname>
          </string-name>
          .
          <article-title>How do professional developers comprehend software</article-title>
          ?
          <source>In Proceedings of the 34th International Conference on Software Engineering</source>
          , ICSE '
          <volume>12</volume>
          , pages
          <fpage>255</fpage>
          -
          <lpage>265</lpage>
          , Piscataway, NJ, USA,
          <year>2012</year>
          . IEEE Press.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>D.</given-names>
            <surname>Shepherd</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z. P.</given-names>
            <surname>Fry</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Hill</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Pollock</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Vijay-Shanker</surname>
          </string-name>
          .
          <article-title>Using natural language program analysis to locate and understand action-oriented concerns</article-title>
          .
          <source>In Proceedings of the 6th International Conference on Aspect-oriented Software Development, AOSD '07</source>
          , pages
          <fpage>212</fpage>
          -
          <lpage>224</lpage>
          , New York, NY, USA,
          <year>2007</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Soh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Khomh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.-G.</given-names>
            <surname>Gueheneuc</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Antoniol</surname>
          </string-name>
          .
          <article-title>Towards understanding how developers spend their e↵ort during maintenance activities</article-title>
          .
          <source>In Reverse Engineering (WCRE)</source>
          ,
          <year>2013</year>
          20th Working Conference on, pages
          <fpage>152</fpage>
          -
          <lpage>161</lpage>
          ,
          <year>Oct 2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>M.-A. D. Storey</surname>
            , D. Cˇ ubrani´c, and
            <given-names>D. M.</given-names>
          </string-name>
          <string-name>
            <surname>German</surname>
          </string-name>
          .
          <article-title>On the use of visualization to support awareness of human activities in software development: A survey and a framework</article-title>
          .
          <source>In Proceedings of the 2005 ACM Symposium on Software Visualization, SoftVis '05</source>
          , pages
          <fpage>193</fpage>
          -
          <lpage>202</lpage>
          , New York, NY, USA,
          <year>2005</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>F.</given-names>
            <surname>Thung</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. H.</given-names>
            <surname>Osman</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. R. V.</given-names>
            <surname>Chaudron</surname>
          </string-name>
          .
          <article-title>Condensing class diagrams by analyzing design and network metrics using optimistic classification</article-title>
          .
          <source>In Proceedings of the 22Nd International Conference on Program Comprehension</source>
          ,
          <string-name>
            <surname>ICPC</surname>
          </string-name>
          <year>2014</year>
          , pages
          <fpage>110</fpage>
          -
          <lpage>121</lpage>
          , New York, NY, USA,
          <year>2014</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
          </string-name>
          .
          <source>Process Mining: Discovery, Conformance and Enhancement of Business Processes</source>
          . Springer Publishing Company,
          <source>Incorporated, 1st edition</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>B. van Dongen</given-names>
            ,
            <surname>A. de Medeiros</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Verbeek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Weijters</surname>
          </string-name>
          , and
          <string-name>
            <surname>W. van der Aalst.</surname>
          </string-name>
          <article-title>The prom framework: A new era in process mining tool support</article-title>
          . In G. Ciardo and P. Darondeau, editors,
          <source>Applications and Theory of Petri Nets</source>
          <year>2005</year>
          , volume
          <volume>3536</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>444</fpage>
          -
          <lpage>454</lpage>
          . Springer Berlin Heidelberg,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>A. von Mayrhauser</surname>
            and
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Vans</surname>
          </string-name>
          .
          <article-title>From code understanding needs to reverse engineering tool capabilities</article-title>
          . In Computer-Aided Software Engineering,
          <year>1993</year>
          . CASE '
          <volume>93</volume>
          ., Proceeding of the Sixth International Workshop on, pages
          <fpage>230</fpage>
          -
          <lpage>239</lpage>
          ,
          <year>Jul 1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>A. von Mayrhauser</surname>
            and
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Vans</surname>
          </string-name>
          .
          <article-title>Program comprehension during software maintenance and evolution</article-title>
          .
          <source>Computer</source>
          ,
          <volume>28</volume>
          (
          <issue>8</issue>
          ):
          <fpage>44</fpage>
          -
          <lpage>55</lpage>
          ,
          <year>Aug 1995</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>