Visualization and Interaction Techniques for Feature-Oriented Software Development

Summary

Feature-oriented software development is a promising paradigm to implement variable software, e.g. for software product lines. However, the increased variability bears threats to program comprehension, an important human factor in software development: Maintenance programmers spend most of their time with understanding source code, and the cost for maintenance contributes to up to 70% to software-development costs.

To support program comprehension in feature-oriented software development, we evaluated whether and how background colors can help. The concept we developed and implemented in our prototype FeatureCommander shows promising results in user studies, even for large software projects. We also developed View Infinity, a tool that provides seamless and semantic zooming of different abstraction layers of software product lines (SPLs).

Tools

FeatureCommander uses background colors and different views to highlight variability information in source code. To scale the use of background colors to large software projects, FeatureCommander uses a default setting of different shades of gray. When working with source code, a developer can pick colors to highlight currently relevant variability information.

ViewInfinity implements a semantic zooming concept to support a developer in getting an overview of a software project. A developer can zoom from the file level over a variability-model level to the source-code level and back. On the source-code level, we also use background colors to highlight variability information.

Images

 

Publications

  • Vorschaubild

    Feigenspan, J., Papendieck, M., Kästner, C., Frisch, M., Dachselt, R.:

    FeatureCommander: Colorful #ifdef World

    In Proceedings of the 15th Software Product Line Conference (SPLC '11, Munich, Germany), ACM, 2011, Article 48, 2 pages.

    Downloads: Article (817KB)

  • Vorschaubild

    Stengel, M., Feigenspan, J., Frisch, M., Kästner, C., Apel, S., Dachselt, R.:

    View Infinity: A Zoomable Interface for Feature-Oriented Software Development

    In Proceedings of the 33rd International Conference on Software Engineering (ICSE '11) Tool Demo. ACM, New York, NY, USA, 2011, pp. 1031-1033.

  • Vorschaubild

    Feigenspan, J., Schulze, M., Papendieck, M., Kästner, C., Dachselt, R., Köppen, V., Frisch, M.:

    Using Background Colors to Support Program Comprehension in Software Product Lines

    In Proceedings of the 15th International Conference on Evaluation and Assessment in Software Engineering (EASE) Durham, UK, April 11 - 12, 2011, pp. 66-75.

    Downloads: Full Paper (672KB)

  • Vorschaubild

    Feigenspan, J., Kästner, C., Frisch, M., Dachselt, R., Apel, S.:

    Visual Support for Understanding Product Lines

    Proceedings of the 18th IEEE International Conference on Program Comprehension 2010 (Braga, Portugal, June 30 2010-July 2 2010).

    ICPC 2010, IEEE Computer Society, ISBN 978-1-4244-7604-6, pp. 34 - 35.

    Downloads: Demonstration Paper (113KB)