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
相关论文
共 26 条
[1]  
[Anonymous], 1979, ARTIFICIAL INTELLIGE
[2]  
BELANGER D, 1990, AT T TECH J MAR
[3]  
BERGERETTI J, 1985, ACM T PROGRAMMING LA, V7
[4]  
CHANDRA C, 1994, THESIS U CALIFORNIA
[5]  
CHEN YF, 1986, TR300 UCBCSD
[6]  
DEKLEER J, 1986, ARTIFICIAL INTELLIGE, V28
[7]  
DEVANBU P, 1989, P 11 INT JOINT C ART, P110
[8]  
HARANDI MT, 1990, IEEE SOFTWARE, P74
[9]  
Horwitz S., 1988, P ACM SIGPLAN 1988 C, P35
[10]  
HSIEH CC, 1982, THESIS NW U