An evaluation of knowledge engineering approaches to the maintenance of evolutionary software

被引:6
|
作者
Chandra, C
Ramamoorthy, CV
机构
[1] Informix, Data Warehousing Business Dev Unit, Oakland, CA 94612 USA
[2] Univ Calif Berkeley, Div Comp Sci, Dept EECS, Berkeley, CA 94720 USA
关键词
software maintenance; software engineering; reverse engineering; reengineering;
D O I
10.1142/S0218194098000030
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Reverse engineering and reengineering are two major research challenges in the software maintenance process. Reverse engineering is the process of rederiving the specification of a program; and reengineering is the process of modifying an already existing software to add additional functionalities or to correct any malfunction. The difficulty in these tasks are that software development commonly involves many software engineers with implicit assumptions about the behavior of each module. These assumptions are not documented and often leads to inconsistencies in the code. During reverse engineering, such assumptions may not be uncovered. These assumptions usually have complex dependencies, and are the cause of a lot of bugs when the software is reengineered. Many approaches and prototype tools have been developed to address these issues. Reverse engineering and automated program understanding tools have been developed to support the reverse engineering tasks; while various theoretical works on structural program analysis and programs for automated ripple effect analysis have attempted to deal with the reengineering process. These works can be classified into two main types of approaches: those using shallow knowledge or knowledge about the structure of the system and those utilizing deep knowledge or knowledge about the semantics and behavior of the software system. In this paper, we attempt to survey works that have been done under these two broad categories of approaches to deal with the software maintenance tasks, evaluate the strengths and drawbacks of each approach, and attempt to draw a conclusion on the advantages and disadvantages of the two main lines of approaches.
引用
收藏
页码:3 / 20
页数:18
相关论文
共 50 条
  • [21] UML-based reverse engineering and model analysis approaches for software architecture maintenance
    Riva, C
    Selonen, P
    Systä, T
    Xu, J
    [J]. 20TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS, 2004, : 50 - 59
  • [22] Systemic Approaches for Software Engineering
    Gruhn, Volker
    Schaefer, Clemens
    [J]. NEW TRENDS IN SOFTWARE METHODOLOGIES, TOOLS AND TECHNIQUES, 2010, 217 : 85 - 95
  • [23] Survey and evaluation of agent-oriented software engineering main approaches
    Juneidi S.J.
    Vouros G.A.
    [J]. International Journal of Modelling and Simulation, 2010, 30 (01): : 1 - 13
  • [24] Software Maintenance like Maintenance in Other Engineering Disciplines
    Villavicencio, Gustavo
    [J]. 22ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (FSE 2014), 2014, : 853 - 856
  • [25] Software Engineering Meets Evolutionary Computation
    Harman, Mark
    [J]. COMPUTER, 2011, 44 (10) : 31 - 39
  • [26] Software engineering knowledge repositories
    Jedlitschka, A
    Nick, M
    [J]. EMPIRICAL METHODS AND STUDIES IN SOFTWARE ENGINEERING: EXPERIENCE FROM ESERNET, 2003, 2765 : 55 - 80
  • [27] Knowledge level software engineering
    Giunchiglia, F
    Perini, A
    Sannicolò, F
    [J]. INTELLIGENT AGENTS VIII: AGENT THEORIES, ARCHITECTURES, AND LANGUAGES, 2002, 2333 : 6 - 20
  • [28] Knowledge management in software engineering
    Rus, I
    Lindvall, M
    [J]. IEEE SOFTWARE, 2002, 19 (03) : 26 - 38
  • [29] Design Knowledge and Software Engineering
    Zenya Koono
    [J]. Wuhan University Journal of Natural Sciences, 2001, (Z1) : 46 - 58
  • [30] Representing Software Engineering Knowledge
    Mylopoulos J.
    Borgida A.
    Yu E.
    [J]. Automated Software Engineering, 1997, 4 (3) : 291 - 317