Handling variants in C++ with M-system NT
Nowadays, variability is considered as an important factor in software development. Modern software products are frequently developed and delivered in multiple combinations and variants. Variability is studied -among others- in the field of system/product families or software product lines. One of the most challenging aspects of software product lines is variability management. Variability can be represented as variation points in the system for which multiple variants can be made available. The goal of this Master Thesis is to identify, visualize, and measure variation points in C/C++ source codes in order to manage variability across software product families. Using conditional compilation as variability mechanism, variants are extracted from un-pre-processed C/C++ source codes. Implementation is done by enhancing M-System NT (a Java/MySQL based measurement system tool developed at Fraunhofer Institute of Experimental Software Engineering, www.iese.fhg.de). This thesis enhances M-System NT parser to enable C/C++ source code parsing. During implementation, input C/C++ source files are parsed and the obtained variation points are stored in a relational database (MySQL) according to a decision model. Then the identified variation points and its interactions are graphically visualized through visualization component. By writing queries (user-defined), possible variability metrics are calculated, the first of its kind. In the evaluation phase, a software application (written in C/C++) is analyzed and possible variation points are identified to produce different variants. The identified variation points are visualized and metrics are computed to measure the variation points. Thus, we propose a model through this master thesis to help software architects to ease variability management across the product members in a product family.
Kaiserslautern, TU, Master Thesis, 2005