Learn More
The KobrA (derived from Komponentenbasierte Anwendungsentwicklung, which is German for "component-based application development") methodology is based on a number of principles. Most of these -such as parsimony, encapsulation, and locality -are restatements of generally accepted component software engineering principles for keeping things simple, separating(More)
Software product lines have recently been introduced as one of the most promising advances for efficient software development. Yet upon close examination, there are few guidelines or methodologies available to develop and deploy product lines beyond existing domain engineering approaches. The latter have had mixed success within commercial enterprises(More)
Product line engineering has become an important and widely used approach for efficiently developing portfolios of software products. The idea is to develop a set of products as a single, coherent development task from a core asset base (sometimes called a platform), a collection of artifacts specifically designed for use across a portfolio. This approach(More)
The product line and component-based approaches to software engineering both hold the potential to significantly increase the level of reuse in industrial software development and maintenance. They also have complementary strengths, since they address the problem of reuse at opposite ends of the granularity spectrum product line development essentially(More)
The software architecture is one of the most crucial artifacts within the lifecycle of a software system. Decisions made at the architectural level directly enable, facilitate, hamper, or interfere with the achievement of business goals, functional and quality requirements. Architecture evaluations play an important role in the development and evolution of(More)
Product line engineering is a recent approach to software development that has shown to enable organizations to achieve significant reductions in development and maintenance cost as well as time-to-market of increasingly complex software systems. Yet, the testing process has not kept up with these reductions and the relative cost for testing product lines(More)
1 Use cases are used for single system requirements engineering to capture requirements from an customer/user point of view. When utilizing use cases for product line modeling they have to be extended with a variability mechanism. Stereotypes can be used as this variability mechanism for use case diagrams and textual use cases. This early and explicit(More)
An argument pro component-based software development is the idea of constructing software systems by assembling preexisting components instead of redeveloping similar or identical functionality always from scratch. Unfortunately, integrating existing components practically means adaptation and use rather than use only, which makes an ideal component-based(More)
Use cases are used for single system requirements engineering to capture requirements from an external point of view. When utilizing use cases for product line modeling they cannot be used as is but they have to be extended with a variability mechanism. Stereotypes can be used as this variability mechanism for use case diagrams and tags can be used for(More)