Options
2002
Report
Titel
Technology dimensions of product line implementation approaches. State-of-the-art and state-of-the-practice survey
Abstract
Software development today faces several challenges. There is a critical need to reduce cost, effort, and time-to-market of software products, but, at the same time, complexity and size of products are rapidly increasing and customers are requesting more and more quality products tailored to their individual needs. Experience of many software organizations shows that the traditional way of software development is not efficient enough to meet all these challenges. Here, traditional software development means that all development activities are performed in the context of a development project and thus focus only on the particular software ultimately delivered by a single project. Hence, an approach is needed that provides a point-of-view orthogonal to the project structure and thus allows commonalities among projects to be identified and effort to be shared between several projects. Software product line engineering is such an approach that views the software products delivered by an organization as members of the same product family, which share several common characteristics. It typically brings a new development paradigm to organizations that affects many diverse aspects of the whole software life-cycle, as well as on the structure of software development organizations. The PoLITe (Product Line Implementation Technologies) project1, however, has been set up to explore only one aspect of product line engineering: the implementation of software product lines. In this report, implementation approaches are generally characterized by three technological dimensions: configuration management, component technologies, and programming languages, and its overall goal is the optimization of the level of automation achieved during implementation activities. An ideal approach completely automates implementation tasks and thus generates implementation artifacts from models produced by ealier development tasks like architecture or design models. Consequently, automation also enables software to be developed indepedent of particular technologies and thus improves flexibility, which is key for a rapid and efficient development of new software variants.
Verlagsort
Kaiserslautern