DocumentCode :
2866038
Title :
Detecting semantic changes in Makefile build code
Author :
Al-Kofahi, J.M. ; Hung Viet Nguyen ; Anh Tuan Nguyen ; Tung Thanh Nguyen ; Nguyen, Tuan N.
Author_Institution :
Electr. & Comput. Eng. Dept., Iowa State Univ., Ames, IA, USA
fYear :
2012
fDate :
23-28 Sept. 2012
Firstpage :
150
Lastpage :
159
Abstract :
Build code in a Makefile represents the build rules with the dependencies among the files, and how they must be built together to produce a software system. As software evolves, its build code evolves as well to accommodate necessary changes in the build process. As part of software maintenance, it is crucial to understand how the build code is changed (e.g. changes in build rules or dependencies), and to verify and validate the correctness of the build process with different build configurations. Due to Make´s dynamic nature, understanding and managing the changes to Makefiles is not trivial. In this paper, we introduce a set of semantic changes to build code in Makefiles. We also develop MkDiff, a tool to detect the changes to a Makefile at the semantic level. MkDiff uses symbolic dependency graphs (SDG) to find all possible concrete rules from a Makefile, and the dependencies among them. For two SDGs built from a Makefile at two versions, it first detects changed and unchanged nodes via its SDG matching algorithm. Then, from those results, it derives the semantic changes to the Makefile. Our empirical evaluation for MkDiff showed that it can accurately detect semantic changes in Makefiles.
Keywords :
formal verification; graph theory; management of change; programming language semantics; software maintenance; Makefile build code; MkDiff; SDG; build process correctness validation; build process correctness verification; change management; change understanding; semantic change detection; semantic level; software maintenance; software system; symbolic dependency graphs; Concrete; Libraries; Linux; Semantics; Servers; Software maintenance; Build Code Analysis; Build Code Maintenance; Semantic Differencing; Symbolic Evaluation;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Maintenance (ICSM), 2012 28th IEEE International Conference on
Conference_Location :
Trento
ISSN :
1063-6773
Print_ISBN :
978-1-4673-2313-0
Type :
conf
DOI :
10.1109/ICSM.2012.6405266
Filename :
6405266
Link To Document :
بازگشت