Font Size: a A A

The Design And Implementation Of Software Comprehension Aid System Based On Program Slicing

Posted on:2008-08-12Degree:MasterType:Thesis
Country:ChinaCandidate:H H SunFull Text:PDF
GTID:2178360242467243Subject:Computer system architecture
Abstract/Summary:PDF Full Text Request
With the development of computer technology and the increment of size of software system, the software today has aggregated a lot of knowledge of specific field, including the system requirements, design and rules. So the maintenance of software becomes more and more important. Before one maintaining the system, one must understand it thoroughly. Unless gets a full comprehension of old system, one can't maintain the system efficiently and improve the old system. In one word, software comprehension plays an important role in the process of software maintenance.Program slicing is a technique for program analysis proposed by Mark Weiser, which analyze the system by computing a related statement set of particular variable of program, and the set is called program slice. The theory bases of both software analysis and comprehension are richened by the emergence of program slicing. Program slicing is widely used in every field of software engineering such as software debugging, testing and metrics and so on. The system designed and implemented in this paper is based on the program slicing technique, and this paper adopts the dataflow iteration algorithm which is proposed by Mark Weiser.Due to widely use of pointers in the program written by C, if a conservative estimate is taken, the exactness can be greatly harmed. This paper gives a description of the representation of points-to analysis, the complexity of the problem and the classification of it. After an introduction of an inter-procedural and context-sensitive pointer analysis algorithm, an improvement of analysis of function calls via function pointers is given in this paper.The design of system is given in this paper. In the preprocessor of the front-end of system, the inclusion of system head files are discarded. After the process of lexical analyzer and parser, the intermediate codes produced by the intermediate code generator are greatly decreased. At the back-end of system, a program slicer, a cross-referencer, a modular cohesion metrics analyzer and a dependence displayer of files and functions are given. Techniques such as Lex, YACC, dom4j, Java Swing and so on are used in the implementation. Due to the intermediate codes are represented by xml files, it is convenient to develop new back-end tools. The system provided by this paper can help people focus on the variables which they are interested in and give a hand to them for the understanding of programs.
Keywords/Search Tags:Software Comprehension, Program Analysis, Points-to Analysis, Modular Cohesion Metrics
PDF Full Text Request
Related items