Authors:
László Vidács
;
Árpád Beszédes
and
Rudolf Ferenc
Affiliation:
University of Szeged, Hungary
Keyword(s):
Change impact analysis, macros, preprocessing, C, C++, program understanding, program analysis, maintenance, program slicing, dynamic analysis.
Related
Ontology
Subjects/Areas/Topics:
Applications
;
Maintenance
;
Operational Research
;
Pattern Recognition
;
Software Engineering
Abstract:
The expressiveness of the C/C++ preprocessing facility enables the development of highly configurable source code. However, the usage of language constructs like macros also bears the potential of resulting in highly incomprehensible and unmaintainable code, which is due to the flexibility and the “cryptic” nature of the pre-processor language. This could be overcome if suitable analysis tools were available for preprocessor-related issues, however, this is not the case (for instance, none of the modern Integrated Development Environments provides features to efficiently analyze and browse macro usage). A conspicuous problem in software maintenance is the correct (safe and efficient) management of change. In particular, due to the aforementioned reasons, determining efficiently the impact of a change in a specific macro definition is not yet possible. In this paper, we describe a method for the impact analysis of macro definitions, which significantly differs from the previous approa
ches. We reveal and analyze the dependencies among macro-related program points using the so-called macro slices.
(More)