CONFIGEN: A tool for managing configuration options

A good way to build secure systems is the top-down approach, where each step refines the softwaretowards the final implementation. The result is well-integrated, but quite monolithic. Consequently,further extensions often lead to an overuse of preprocessor conditionals and some code duplication. It isthen important to refactor and modularize the code, with the goal of increasing maintainability and codereuse.We are trying to apply this process to the implementation of the OASIS [9] kernel, an execution sup-port for hard real-time safety critical applications. Modularizing this software has specific requirements.First, the configuration has to be chosen at compile-time (in particular, qualification for use in safety-critical environments requires that no dead code remains in the system). Second, modularity should notimpact the degree of performance, in terms of execution time and memory footprint (for instance, mod-ularity should not imply new indirections, like C++ virtual method tables). Thus, the tool should allowthe static selection of a subset of the code in order to implement a specific behavior.C

[1]  Vincent David,et al.  OASIS project: deterministic real-time for safety critical embedded systems , 2002, EW 10.

[2]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.

[3]  Ralf Treinen,et al.  Solving package dependencies: from EDOS to Mancoosi , 2008, ArXiv.

[4]  Wolfgang Schröder-Preikschat,et al.  The Linux Kernel Configurator as a Feature Modeling Tool , 2008, SPLC.

[5]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[6]  Jaejoon Lee,et al.  Concepts and Guidelines of Feature Modeling for Product Line Software Engineering , 2002, ICSR.

[7]  Pierre-Yves Schobbens,et al.  Semantics of FODA Feature Diagrams , 2004 .

[8]  Antonio Ruiz Cortés,et al.  A First Step Towards a Framework for the Automated Analysis of Feature Models , 2006 .

[9]  Roberto Di Cosmo,et al.  Strong dependencies between software components , 2009, 2009 3rd International Symposium on Empirical Software Engineering and Measurement.

[10]  Stephen A. Cook,et al.  The complexity of theorem-proving procedures , 1971, STOC.

[11]  Paul C. Clements Managing Variability for Software Product Lines: Working with Variability Mechanisms , 2006, 10th International Software Product Line Conference (SPLC'06).

[12]  Roberto Di Cosmo,et al.  Managing the Complexity of Large Free and Open Source Package-Based Software Distributions , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[13]  Krzysztof Czarnecki,et al.  Feature Diagrams and Logics: There and Back Again , 2007, 11th International Software Product Line Conference (SPLC 2007).