Published Sep 3, 2019

Episode 53: Product Line Engineering Pt. 1

Dive into the world of software product line engineering with Michael Kircher and Markus Voelter as they explore its strategic role in efficiently developing multiple products. Uncover the intricacies of configuration management, variability, and how agile methodologies and Model Driven Development facilitate bridging the gap between problem and solution spaces.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Variability

    Variability is a cornerstone of software product line engineering, encompassing both feature models and implementation. explains that variability is present in both the feature model and the implementation, linking the solution space with the problem space 1. This connection is crucial for managing variation points in source code and models. adds that feature models act as a grammar, guiding the selection of feature combinations to ensure a functional product 2.

    A feature model helps you come up with a correct configuration of features that will result in a workable and useful product.

    ---

    Understanding the binding time of variability is essential, as it influences whether changes can be made at runtime or need to be decided earlier 1.

       

    Configuration

    Configuration techniques in product line engineering range from minimalist to maximalist approaches. describes the minimalist approach as adding application-specific elements, while the maximalist approach involves removing unnecessary components 3. This choice often depends on non-functional requirements, such as memory constraints in embedded systems.

    If you have to keep a number of those different products valid over a long time, then product line engineering is especially interesting.

    ---

    Modeling languages also play a role, with configurations ranging from simple boolean selections to complex frameworks 4.

Related Episodes