Font Size: a A A

Object-Oriented Reverse Engineering And Software Comprehension

Posted on:2005-04-10Degree:DoctorType:Dissertation
Country:ChinaCandidate:Z M ZhangFull Text:PDF
GTID:1118360122988055Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
Although most systems start off in a clean and well-designed state, with time they tend to gradually decay in quality. The maintenance, reengineering, and evolution of object-oriented software systems have become vital matters in today's software industry. The reverse engineering and software comprehension are the base of these activities.The differences between object-oriented language and procedural language demand other reverse engineering techniques. In this thesis, the design knowledge in object-oriented design and the software reverse engineering process are thoroughly analyzed. According to the analysis results, this thesis gives the contents of object-oriented software reverse engineering (OORE), and proposes a classify method about its techniques. This paper also describes AUTOORE, an OORE tool for software comprehension. It involves special technology in how to get precise OO component relations and how to high-level abstraction of OO system.Reverse engineering methods aim at extracting accurate and consistent information from code to alleviate the difficulties of program understanding, but many extraction methods focus on the tool's automation, not on the semantic of the extracting result. In AUTOORE, a novel approach to extract Java semantic relational model is presented. To get precise object relational result, the Java code polymorphism invoke location is formal defined and a program analysis method based on extended class hierarchy graph (ECHG) is proposed. The extract process have three steps: constructing ECHG of Java system from Java profile, extracting system's lexical relational model by scanning source code and analyzing the polymorphism calling location, constructing the semantic model by rule-based model mapping of lexical model.Program comprehension is the key issue in OORE. An effective approach to improve the process of program comprehension is to draw a high-level, abstract view of software system by a clustering method. Different from other researches, AUTOORE uses the proposed Java semantic model as input data, and gives a tree-liked, hierarchical structured and semantic cluster set. The clustering method is based on a minimum spanning tree that represents the software system. The clustering objective function is designed according to the software modularization metric andcognition psychology theory. This thesis also proposes a similarity metric of classes and the combine method of the semantic relationship, and explores the optimization of semantic measurement.Classes are key software components in an object-oriented software system. In many industrial OO software systems, there are some classes that have complicated structure and relationships. It is a challenge for software engineers to understand these classes efficiently. This thesis proposes a class comprehension model according to constructivist learning theory, and implements a software visualization tool (MFV-Class) to help in the comprehension of a class. The tool provides multiple views of class to uncover manifold facets of class contents. It enables visualizing three object-oriented metrics of classes to help users focus on understanding process.
Keywords/Search Tags:OORE, program comprehension, program analysis, AUTOORE, software clustering, object relational model, software visualization, object-oriented software metrics
PDF Full Text Request
Related items