Software Product Lines - Domain Engineering: concepts, problems and approaches
Software Product Line Engineering has become the most successful approach for software reuse in the last ten years. It has proven to reduce development times, lower costs and improve the quality of software-intensive systems. One of its key points is the up-front development of a flexible and highly extensible platform (Domain Engineering) as a basis for deriving concrete applications (Application Engineering).
The thesis describes the Domain Engineering in a case study that deals with the development of an Open Source project in the J2EE environment. It mainly focuses on concerns regarding the high-level architecture and process descriptions as proposed by the framework. To fit the needs of the project it also had to be tailored in numerours aspects. Furthermore, the experience gained during the lifecycle of the project yields an estimation of theoretical and practical issues of the development approach. The thesis also shows open questions in the SPLE research field.
One of the most important enablers of Software Product Line Engineering in the case study has been the usage of J2EE portal standards, which provide an extensive infrastructure for web application delivery and integration. In a product line view, portals offer mechanisms for extreme late binding of complex functionality. However, there have been many more technologies and frameworks that supported building the platform. These have been e.g. an IoC component framework, MVC frameworks, AOP or model-driven/generative approaches, whose application in the product line context of the case study will be shown.
The case study comprises the Domain Requirements Engineering, Domain Design and Domain Realisation subprocesses of the Product Line Framework. In addition, an overview of verification and validation techniques (static analysis as well as the Domain Testing) for the platform will be shown.