- Erlangen / Institut f�r Informatik Erlangen (1)
- Model-Driven Development (1)
- Modellgetriebene Entwicklung (1)
- Product Derivation (1)
- Produktableitung (1)
- Software Engineering (1)
- Software Product Line Engineering (1)
- Software Reuse (1)
- Software-Produktlinienentwicklung (1)
- Softwarewiederverwendung (1)
- Automating Staged Product Derivation for Heterogeneous Multi-Product-Lines (2012)
- Software constitutes a major cost factor when developing technical systems. To reduce this cost, systematic reuse of assets is necessary from early on when developing similar products - an approach that has become known as software product line engineering. The automation of product derivation, that is, the automated product creation from core assets, is one of the success factors of product line engineering. It has two facets: automated support during configuration of a product, such as configuration consistency checks and automated fixes, and automation of the actual generation of the product, via generative technologies, which produce product artifacts from the configuration. Three critical factors, however, currently hamper the use of automated derivation techniques in industry: the heterogeneity of product derivation mechanisms, the stages in the derivation process, and the composition of several product lines to multi-product-lines. From feature modeling to C-preprocessor-based configuration, from the first decision taken during the initial customer contact stage to the last option set in a configuration file at the system startup stage - each of possibly multiple involved product lines brings distinct product configuration and generation facilities to be used by different stakeholders at dedicated stages in the derivation process. Up to now, there are hardly any solutions neither for heterogeneity, nor for stages, nor for multi-product-lines - product derivation in industry results in an immense manual effort. No technical support is provided for configuration checking across heterogeneous configuration mechanisms, product lines, or configuration stages. Configuration inconsistencies remain unnoticed and produce high cost due to prolonged testing and reconfiguration cycles and, ultimately, due to the delivery of defective products to customers. This thesis contributes the PLiC approach, which automates staged product derivation for heterogeneous multi-product-lines. Multi-product-lines are split up into product line components (PLiCs), which base upon three principles: extraction, declaration, and restriction. The legacy configuration data of each PLiC is automatically and transparently extracted into models. The product line engineer declares further information on stages and multi-product-lines in additional, concise models. This facilitates defining model-based constraint checks and fixes that ensure consistent product configuration and product generation over the whole staged derivation process of heterogeneous multi-product-lines. The validation results show that the approach is comprehensively applicable to legacy product lines in a light-weight, little-invasive, and scalable manner. In doing so, this thesis opens the way for bringing automated product derivation from research and insular productive use to broad applicability in industrial practice.
- Architecture-Violation Management for Internal Software Ecosystems: An Industry Case Study (2016)
- Large-scale intra-organizational, yet decentralized software projects that involve various self-contained organizational units require architecture guidelines to coordinate development. Tool support allows for managing architecture-guideline violations to ensure software quality. However, the decentralized development across units results in significant violation-management hurdles that must be considered. Derived from our previous research, we have elaborated a set of capabilities required to manage guideline violations within two of these large-scale software projects at Siemens. Their main purpose is process support for resolving violations, aiming to reduce the architects' and developers' effort required to handle them. We developed a prototype that implements the capabilities and conducted a qualitative case study on their usefulness, involving 9 experts from our study systems. Our capabilities are considered as very important and reveal great potential to ease violation management for large-scale software engineering.