<!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>An Ontology of Software Evolution</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Author Xiaowei Wang</string-name>
          <email>xwang@disi.unitn.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Studies/Stage</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>st year  student</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Supervisors John Mylopoulos</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nicola Guarino</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Problem Statement</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Affiliation University of Trento</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>This paper aims at clarifying and formalizing the concepts relating to software evolution, creating shared knowledge of software evolution. To achieve this goal, we propose an ontology of software evolution, for the first time in the research community, based on the analysis of the previous work. With this ontology, we hope to make the implicit knowledge explicit to people, providing guidance for the work of researchers, practitioners and managers. In modern society, people heavily rely on software in almost every aspect of human life. Because of the high speed of change in the society, software is forced to change rapidly to adapt to the new environment. To survive in this environment, software systems have to evolve, and consequently the work of maintenance and refactoring of the software systems occupies a large amount of the human and financial resource. Although several taxonomies were proposed, software engineering still depends on stakeholders' intuition and experience, and the concepts used in this domain are still ambiguous. Trying to bridge this gap, we aim to build such a new ontology of software evolution, based on which a lot of terms misinterpreted in the community could be clarified and unified.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Intuitively, software may be interpreted as a tool. Comparing with a hammer, software is only a
different tool processing different functions. To discuss about the evolution of software, we have
to study the whole life cycle of software covering five main activities in software engineering,
and these activities are communication, planning, modeling, construction and deployment. From
this perspective, this paper redefines the concept of software by reusing and refining these five
activities into five components showed in Table 1.</p>
      <p>Abbreviation Software component
D Domain knowledge
R Requirement
S Specification
Des Design
I Implementation</p>
      <p>Table 1. Software components
According to the view of requirement engineering, requirements are some desired properties
that a user may want, and specifications are the characteristics of a machine, together with the
domain knowledge, which could fulfill the requirements. This relationship may be represented in
a formula as “D, S ⊢ R” [5]. However, it is missing the developing dimension without which we
will lose the capability of describing the activities relating to the developing process (e.g.
maintenance, refactoring and other activities). To compensate this missing, the formula may be
enlarged into:</p>
      <p>(D, S ⊢ R) ∧ (Des ⊢ S) ∧ (I ⊢ Des)
In the sub-formula “(Des ⊢ S)”, “Des” means the technical design which can realize the
functions defined by the specifications; on the other hand, in the sub-formula “(I ⊢ Des)”, “I”
means the implementation with source codes which can realize the technical design.
In this paper, we insist that software evolution only happens in class level, hence it could be
described by the differences between the new and old version of the software. We take a
version as a species which defines the laws for its members. These laws are represented in
specifications in requirement engineering, hence when we talk about software evolution, we are
really talking about the change in specifications. According to this view, software evolution can
be represented as S is changed into S’ according to the formula we have already defined.
The changes in specifications may be caused by changes in domain assumption, or by changes
in requirement. According to the changes in specifications, new design and source code may be
developed in the next iteration in software developing, and the new formula may be rewritten
into “(D’, S’ ⊢ R’) ∧ (Des’ ⊢ S’) ∧ (I’ ⊢ Des’)”.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Masolo</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , et al.,
          <source>WonderWeb Deliverable D17: The WonderWeb Library of Foundational Ontologies (preliminary report)</source>
          ,
          <year>2003</year>
          ,
          <string-name>
            <given-names>Laboratory</given-names>
            <surname>For Applied Ontology - ISTC-CNR Via Solteri</surname>
          </string-name>
          ,
          <volume>38</volume>
          38100
          <string-name>
            <given-names>Trento</given-names>
            <surname>Italy</surname>
          </string-name>
          . p.
          <fpage>38</fpage>
          -
          <lpage>38</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>Mahner</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , What is a species?
          <source>Journal for General Philosophy of Science</source>
          ,
          <year>1993</year>
          .
          <volume>24</volume>
          (
          <issue>1</issue>
          ): p.
          <fpage>103</fpage>
          -
          <lpage>126</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Vieu</surname>
            , L.,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Borgo</surname>
            , and
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Masolo</surname>
          </string-name>
          ,
          <article-title>Artefacts and Roles: Modelling Strategies in a Multiplicative Ontology</article-title>
          ,
          <source>in Proceedings of the 2008 conference on Formal Ontology in Information Systems: Proceedings of the Fifth International Conference (FOIS</source>
          <year>2008</year>
          )
          <year>2008</year>
          , IOS Press. p.
          <fpage>121</fpage>
          -
          <lpage>134</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Guarino</surname>
            , N. and
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Welty</surname>
          </string-name>
          ,
          <article-title>Evaluating ontological decisions with ontoclean</article-title>
          .
          <source>Communications of the Acm</source>
          ,
          <year>2002</year>
          .
          <volume>45</volume>
          (
          <issue>2</issue>
          ): p.
          <fpage>61</fpage>
          -
          <lpage>65</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>Methodol.</surname>
          </string-name>
          ,
          <year>1997</year>
          .
          <volume>6</volume>
          (
          <issue>1</issue>
          ): p.
          <fpage>1</fpage>
          -
          <lpage>30</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>