The SPLevo (Software Product Line evolution) research approach develops concepts and tools to transform customized product copies into a common software product line (SPL).
The fundamental concept of the SPLevo project is to analyze the differences between customized product copies, detect relevant and related differences, derive favored variable product features and recommend refactorings of the implementations to a common product line.
As shown in the approach overview diagram, the SPLevo project aims to support a round-trip support for transfering the customized product copies into a common product line.
Core features of the approach
- Taking individual SPL requirements into account (SPL Profile)
- Analyzing related and relevant differences in customized product copies
- Semi-automatic process for variation point design
- Explicitly distinguish implementation, variation point design and feature models
- Facilitating reverse-engineering techniques
- Model-Driven Approach
The SPLevo main process concept facilitates the following major steps:
- Extracting software entity models
- Model comparsion to identify differences
(Variation Point model initialization)
- Iterative variation point refinement
- Refactoring Support
Main Process Activities
On a more detailed level, the activities of the main process are:
- Extracting the software entity models
- Model-Based diffing customized for software entity models
- Variation Point Model initialization
- Feature Model Initialization
- Iterative Process of
- Selecting variation point analyses
- Perform analyses and derive refinement recommendations
- Select favored refinement
- Apply refinements
- Clean up models
- Refactor implementation to a common SPL
The SPLevo approach and tooling is in a research and development phase. An initial prototype of the tooling is available in the source repository. If you are interested in more details, feel free to contact us.
- Quick Start
- Software Model Extraction
- Difference Analysis
- Variation Point Model
- Variation Point Analysis
- Technology Cartridges
- Development Guide
- SPLevo Case Studies
Open Source Contributions
The SPLevo project facilitates open source components and is also developed in context of the Palladio project. Due to this, the project not only aims to provide open source tools by himself but also contributes to other open source projects. Examples are the Eclipse EMF Feature Model project (Feature Diagram Editor), the Palladio Workflow Engine and Palladio as a whole.
- Benjamin Klatt and Martin Küster. Respecting Component Architecture to Migrate Product Copies to a Software Product Line. In Proceedings of the 17th International Doctoral Symposium on Components and Architecture (WCOP'12), Bertinoro, Italy, June 2012. Young Investigator / Best Paper Award.
- Martin Küster and Benjamin Klatt. Leveraging Design Decisions in Evolving Systems. In 14th Workshop Software-Reengineering (WSR 2012), Bad-Honnef, Germany, May 02-04 2012.
- Benjamin Klatt and Klaus Krogmann. Model-Driven Product Consolidation into Software Product Lines. In Proceedings of the 1st Workshop on Model-Based and Model-Driven Software Modernization (MMSM'12), Bamberg, Germany, March 2012.
- Benjamin Klatt and Klaus Krogmann. Towards Tool-Support for Evolutionary Software Product Line Development. In 13th Workshop Software-Reengineering (WSR 2011), Bad-Honnef, Germany, May 02-04 2011.
- Benjamin Klatt and Klaus Krogmann. Towards Tool-Support for Evolutionary Software Product Line Development. Software Technik Trends, 31(2), May 2011.
Links to these publications can be found at: http://sdq.ipd.kit.edu/people/benjamin_klatt/publications/