• 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