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. Problem Statement 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. Research Questions To build an ontology of software evolution, initially we have to define several core concepts showed as the following list: 1. the concept of artificial 2. the concept of software as sub-concept of artificial 3. the concepts of species and individual 4. the concepts of software species and software individual 5. the concept of software evolution happening in the software species level 6. the concept of software maintenance happening in the software individual level 7. other related concepts (e.g. software adaptation, software refactoring) happening in software species or individual leve.
An Ontology of Software Evolution
Wang, Xiaowei
2012-01-01
Abstract
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. Problem Statement 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. Research Questions To build an ontology of software evolution, initially we have to define several core concepts showed as the following list: 1. the concept of artificial 2. the concept of software as sub-concept of artificial 3. the concepts of species and individual 4. the concepts of software species and software individual 5. the concept of software evolution happening in the software species level 6. the concept of software maintenance happening in the software individual level 7. other related concepts (e.g. software adaptation, software refactoring) happening in software species or individual leve.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione