Content area
This article proposes a novel framework for the development of product lines for web systems. Software product line engineering is a well-established reuse mechanism to aid development of related software products with a large degree of variability. Web systems, which exhibit high variability (different capabilities in each deployment) and commonality (similar user interfaces and functionalities), are very well suited for this approach. At the same time, web systems are amenable to model-driven software engineering, because they typically encompass loosely coupled and fixed functionality, which makes code generation feasible. In consequence, a model-driven software product line engineering (MDSPLE) approach to develop web systems is natural and in fact was variously suggested. However, all existing MDSPLE proposals either cover mainly the problem space. If they address the solution space at all, the technology is not variability-aware. In consequence, they lack reusability at the code level and feature-granular traceability. Our contribution is an MDSPLE-based framework that permits seamless end-to-end development of web systems. The framework is fully implemented and evaluated with realistic web systems in actual use. Our solution consists of two parts: A variability-aware extension of UML diagrams in the problem space and a feature-oriented behavioral modeling language in the solution space. Both languages have been carefully chosen (and extended) to provide a tightly fitting technology match and are based on delta-oriented programming.