Virtual Separation of Concerns: Toward Preprocessors 2.0
-
Christian Kästner
Abstract
Conditional compilation with preprocessors like cpp is a simple but effective means to implement variability. By annotating code fragments with #ifdef and #endif directives, different program variants with or without these fragments can be created, which can be used (among others) to implement software product lines. Although, preprocessors are frequently used in practice, they are often criticized for their negative effect on code quality and maintainability. We show how simple tool support — views, visualizations, disciplined annotations, and variability-aware type systems — can address these problems and emulate some benefits of modularized implementations. Instead of separating source code into files, we pursue a “virtual separation of concerns”.
Zusammenfassung
Bedingte Kompilierung ist ein einfaches und häufig benutztes Mittel zur Implementierung von Variabilität in Softwareproduktlinien, welches aber aufgrund negativer Auswirkungen auf Codequalität und Wartbarkeit stark kritisiert wird. Wir zeigen wie Werkzeugunterstützung — Sichten, Visualisierung, kontrollierte Annotationen, Produktlinien-Typsystem — die wesentlichen Probleme beheben kann und viele Vorteile einer modularen Entwicklung emuliert. Wir bieten damit eine Alternative zur klassischen Trennung von Belangen mittels Modulen. Statt Quelltext notwendigerweise in Dateien zu separieren, erzielen wir eine “virtuelle Trennung von Belangen” durch entsprechende Werkzeugunterstüzung.
© by Oldenbourg Wissenschaftsverlag, Marburg, Germany
Articles in the same Issue
- Energy Efficiency in IT
- Energy Efficient Driving and Operation Strategies Based on Situation Awareness and Reasoning
- Energy Efficient Data Center
- Eco-Efficient Logistics
- Energy efficiency in logistics - SmartKanban as an intelligent intra-logistics architecture for Kanban scenarios
- Virtual Separation of Concerns: Toward Preprocessors 2.0
- Reviewers 2011
Articles in the same Issue
- Energy Efficiency in IT
- Energy Efficient Driving and Operation Strategies Based on Situation Awareness and Reasoning
- Energy Efficient Data Center
- Eco-Efficient Logistics
- Energy efficiency in logistics - SmartKanban as an intelligent intra-logistics architecture for Kanban scenarios
- Virtual Separation of Concerns: Toward Preprocessors 2.0
- Reviewers 2011