DocumentCode
769481
Title
Design and implementation of a fine-grained software inspection tool
Author
Anderson, Paul ; Reps, Thomas ; Teitelbaum, Tim
Author_Institution
GrammaTech Inc., Ithaca, NY, USA
Volume
29
Issue
8
fYear
2003
Firstpage
721
Lastpage
733
Abstract
Although software inspection has led to improvements in software quality, many software systems continue to be deployed with unacceptable numbers of errors, even when software inspection is part of the development process. The difficulty of manually verifying that the software under inspection conforms to the rules is partly to blame. We describe the design and implementation of a tool designed to help alleviate this problem. The tool provides mechanisms for fine-grained inspection of software by exposing the results of sophisticated whole-program static analysis to the inspector. The tool computes many static-semantic representations of the program, including an accurate call graph and dependence graph. A whole-program pointer analysis is used to make sure that the representation is precise with respect to aliases induced by pointer usage. Views on the dependence graph and related representations are supported. Queries on the dependence graph allow an inspector to answer detailed questions about the semantics of the program. Facilities for openness and extensibility permit the tool to be integrated with many software development processes. The main challenge of the approach is to provide facilities to navigate and manage the enormous complexity of the dependence graph.
Keywords
data flow graphs; inspection; program slicing; program verification; software metrics; software quality; software tools; call graph; dependence graph; fine-grained software inspection tool; program chopping; program pointer analysis; program slicing; program static analysis; program understanding; software complexity; software model checking; software quality; static-semantic representation; Best practices; Filters; Inspection; NASA; Navigation; Performance analysis; Software engineering; Software quality; Software systems; Software tools;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/TSE.2003.1223646
Filename
1223646
Link To Document