DocumentCode
2442531
Title
Build code analysis with symbolic evaluation
Author
Tamrawi, Ahmed ; Nguyen, Hoan Anh ; Nguyen, Hung Viet ; Nguyen, Tien N.
Author_Institution
Electr. & Comput. Eng. Dept., Iowa State Univ., Ames, IA, USA
fYear
2012
fDate
2-9 June 2012
Firstpage
650
Lastpage
660
Abstract
Build process is crucial in software development. However, the analysis support for build code is still limited. In this paper, we present SYMake, an infrastructure and tool for the analysis of build code in make. Due to the dynamic nature of make language, it is challenging to understand and maintain complex Makefiles. SYMake provides a symbolic evaluation algorithm that processes Makefiles and produces a symbolic dependency graph (SDG), which represents the build dependencies (i.e. rules) among files via commands. During the symbolic evaluation, for each resulting string value in an SDG that represents a part of a file name or a command in a rule, SYMake provides also an acyclic graph (called T-model) to represent its symbolic evaluation trace. We have used SYMake to develop algorithms and a tool 1) to detect several types of code smells and errors in Makefiles, and 2) to support build code refactoring, e.g. renaming a variable/target even if its name is fragmented and built from multiple substrings. Our empirical evaluation for SYMake´s renaming on several real-world systems showed its high accuracy in entity renaming. Our controlled experiment showed that with SYMake, developers were able to understand Makefiles better and to detect more code smells as well as to perform refactoring more accurately.
Keywords
graph theory; software maintenance; Makefiles; SDG; SYMake; acyclic graph; build code analysis; build process; code error detection; code refactoring; code smell detection; software development; symbolic dependency graph; symbolic evaluation; symbolic evaluation algorithm; symbolic evaluation trace; Concrete; Linux; Maintenance engineering; Protocols; Reactive power; Servers; build code analysis; build code maintenance;
fLanguage
English
Publisher
ieee
Conference_Titel
Software Engineering (ICSE), 2012 34th International Conference on
Conference_Location
Zurich
ISSN
0270-5257
Print_ISBN
978-1-4673-1066-6
Electronic_ISBN
0270-5257
Type
conf
DOI
10.1109/ICSE.2012.6227152
Filename
6227152
Link To Document