Results 1 - 10
of
53
Formalizing cardinality-based feature models and their specialization
- Software Process: Improvement and Practice
, 2005
"... Abstract Feature modeling is an important approach to capture the commonalities and variabilities in system families and product lines. Cardinality-based feature modeling integrates a number of existing extensions of the original feature-modeling notation from Feature-Oriented Domain Analysis. Stage ..."
Abstract
-
Cited by 169 (18 self)
- Add to MetaCart
Abstract Feature modeling is an important approach to capture the commonalities and variabilities in system families and product lines. Cardinality-based feature modeling integrates a number of existing extensions of the original feature-modeling notation from Feature-Oriented Domain Analysis. Staged configuration is a process that allows the incremental configuration of cardinality-based feature models. It can be achieved by performing a step-wise specialization of the feature model. In this paper, we argue that cardinality-based feature models can be interpreted as a special class of context-free grammars. We make this precise by specifying a translation from a feature model into a context-free grammar. Consequently, we provide a semantic interpretation for cardinalitybased feature models by assigning an appropriate semantics to the language recognized by the corresponding grammar. Finally, we give an account on how feature model specialization can be formalized as transformations on the grammar equivalent of feature models.
Staged configuration through specialization and multilevel configuration of feature models
- Software Process: Improvement and Practice
"... Abstract Feature modeling is a key technique for capturing commonalities and variabilities in system families and product lines. In this paper, we propose a cardinality-based notation for feature modeling, which integrates a number of existing extensions of previous approaches. We then introduce and ..."
Abstract
-
Cited by 141 (14 self)
- Add to MetaCart
Abstract Feature modeling is a key technique for capturing commonalities and variabilities in system families and product lines. In this paper, we propose a cardinality-based notation for feature modeling, which integrates a number of existing extensions of previous approaches. We then introduce and motivate the novel concept of staged configuration. Staged configuration can be achieved by the stepwise specialization of feature models or by multi-level configuration, where the configuration choices available in each stage are defined by separate feature models. Staged configuration is important because in a realistic development process, different groups and different people make product configuration choices in different stages. Finally, we also discuss how multi-level configuration avoids a breakdown between the different abstraction levels of individual features. This problem, sometimes referred to as “analysis paralysis”, easily occurs in feature modeling because features can denote entities at arbitrary levels of abstractions within a system family. Key words: Software product lines, system families, domain analysis, software configuration 1
Staged configuration using feature models
- SOFTWARE PRODUCT LINES: THIRD INTERNATIONAL CONFERENCE, SPLC 2004
, 2004
"... Feature modeling is an important approach to capturing commonalities and variabilities in system families and product lines. In this paper, we propose a cardinality-based notation for feature modeling, which integrates a number of existing extensions of previous approaches. We then introduce and mot ..."
Abstract
-
Cited by 108 (4 self)
- Add to MetaCart
(Show Context)
Feature modeling is an important approach to capturing commonalities and variabilities in system families and product lines. In this paper, we propose a cardinality-based notation for feature modeling, which integrates a number of existing extensions of previous approaches. We then introduce and motivate the novel concept of staged configuration. Staged configuration can be achieved by the stepwise specialization of feature models. This is important because in a realistic development process, different groups and different people eliminate product variability in different stages. We also indicate how cardinality-based feature models and their specialization can be given a precise formal semantics.
Overview of generative software development
- In Proceedings of Unconventional Programming Paradigms (UPP) 2004, 15-17 September, Mont Saint-Michel, France, Revised Papers
, 2004
"... Abstract. System family engineering seeks to exploit the commonalities among systems from a given problem domain while managing the variabilities among them in a systematic way. In system family engineering, new system variants can be rapidly created based on a set of reusable assets (such as a comm ..."
Abstract
-
Cited by 53 (4 self)
- Add to MetaCart
(Show Context)
Abstract. System family engineering seeks to exploit the commonalities among systems from a given problem domain while managing the variabilities among them in a systematic way. In system family engineering, new system variants can be rapidly created based on a set of reusable assets (such as a common architecture, components, models, etc.). Generative software development aims at modeling and implementing system families in such a way that a given system can be automatically generated from a specification written in one or more textual or graphical domainspecific languages. This paper gives an overview of the basic concepts and ideas of generative software development including DSLs, domain and application engineering, generative domain models, networks of domains, and technology projections. The paper also discusses the relationship of generative software development to other emerging areas such as Model Driven Development and Aspect-Oriented Software Development. 1
Functional Paleontology: System Evolution as the User Sees It
- IN PROCEEDINGS OF THE 23RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING
, 2001
"... It has long been accepted that requirements analysis should precede architectural design and implementation, but in software evolution and reverse engineering this concern with black-box analysis of function has necessarily been de-emphasized in favor of code-based analysis and designer-oriented int ..."
Abstract
-
Cited by 30 (1 self)
- Add to MetaCart
(Show Context)
It has long been accepted that requirements analysis should precede architectural design and implementation, but in software evolution and reverse engineering this concern with black-box analysis of function has necessarily been de-emphasized in favor of code-based analysis and designer-oriented interpretation. In this paper, we redress this balance by describing "functional paleontology", an approach to analyzing the evolution of user-visible features or services independent of architecture and design intent. We classify the benefits and burdens of interpersonal communication services into core and peripheral categories and investigate the telephony services available to domestic subscribers over a fifty-year period. We report that services were introduced in discrete bursts, each of which emphasized different benefits and burdens. We discuss the general patterns of functional evolution that this "fossil record" illustrates and conclude by discussing their implications for forward engineering of software products.
Applying product line concepts in small and medium-sized companies
- IEEE Software
, 2000
"... Small and medium-sized enterprises (SMEs) work under heavy constraints: They need to be very flexible and fast in their reaction to customer requests, thus limiting their possibility for long-term planning. Software product line engineering, on the other hand, usually requires this possibility for l ..."
Abstract
-
Cited by 14 (1 self)
- Add to MetaCart
(Show Context)
Small and medium-sized enterprises (SMEs) work under heavy constraints: They need to be very flexible and fast in their reaction to customer requests, thus limiting their possibility for long-term planning. Software product line engineering, on the other hand, usually requires this possibility for long-term planning, because investing in a product line infrastructure is investing in future reuse. Thus, so far successful product line engineering efforts have been shown mostly by large companies, often dominating their market. In a partially publicly funded project1 we have started to apply PuLSE™, the Product Line Software Engineering method developed at Fraunhofer IESE, in six SMEs addressing six different domains. The paper presents first experience and lessons learned from 24 months of project work including first results within the companies. 1
PuLSE-I: Deriving Instances from a Product Line Infrastructure
- in Proceedings of the Seventh IEEE International Conference and Workshop on the Engineering of Computer-Based Systems (ECBS 2000
, 2000
"... Reusing assets during application engineering promises to improve the efficiency of systems development. However, in order to benefit from reusable assets, application engineering processes must incorporate when and how to use the reusable assets during single system development. However, when and h ..."
Abstract
-
Cited by 13 (2 self)
- Add to MetaCart
(Show Context)
Reusing assets during application engineering promises to improve the efficiency of systems development. However, in order to benefit from reusable assets, application engineering processes must incorporate when and how to use the reusable assets during single system development. However, when and how to use a reusable asset depends on what types of reusable assets have been created. Product line engineering approaches produce a reusable infrastructure for a set of products. In this paper, we present the application engineering process associated with the PuLSE product line software engineering method — PuLSE-I. PuLSE-I details how single systems can be built efficiently from the reusable product line infrastructure
An Approach to Architectural Analysis of Product Lines
- Proceedings of the 22 nd International Conference on Software Engineering (ICSE ’00
, 1998
"... This paper addresses the issue of how to perform architectural analysis on an existing product line architecture. The contribution of the paper is to identify and demonstrate a repeatable product line architecture analysis process. The approach denes a \good" product line architecture in terms ..."
Abstract
-
Cited by 11 (1 self)
- Add to MetaCart
(Show Context)
This paper addresses the issue of how to perform architectural analysis on an existing product line architecture. The contribution of the paper is to identify and demonstrate a repeatable product line architecture analysis process. The approach denes a \good" product line architecture in terms of those quality attributes required by the particular product line under development. It then analyzes the architecture against these criteria by both manual and tool-supported methods. The phased approach described in this paper provides a structured analysis of an existing product line architecture using (1) formal specication of the high-level architecture, (2) manual analysis of scenarios to exercise the architecture's support for required variabilities, and (3) model checking of critical behaviors at the architectural level that are required for all systems in the product line. Results of an application to a software product line of spaceborne telescopes are used to explain and evaluate t...
Customizable domain analysis
- in: Proceedings of the 1st International Symposium on Generative and Component-Based Software (GCSE) Engineering
, 1999
"... Abstract. Generative and Component-Based Software Engineering are approaches to reuse. Within both approaches the scope of reuse can vary between general purpose and application specific. We argue for scoping the reusable assets based on a product line. Domain analysis methods provide processes for ..."
Abstract
-
Cited by 11 (6 self)
- Add to MetaCart
Abstract. Generative and Component-Based Software Engineering are approaches to reuse. Within both approaches the scope of reuse can vary between general purpose and application specific. We argue for scoping the reusable assets based on a product line. Domain analysis methods provide processes for determining the common and varying requirements for a product line. However, we experienced that existing methods have problems concerning applicability and instantiation support. Therefore, we have developed the Customizable Domain Analysis (CDA) method. CDA is customizable to the project context where it will be applied. This ensures that the method and workproducts used for modeling are appropriate for the specific needs. CDA also provides full instantiation support for specifying systems in the product line.
COSVAM: A Technique for Assessing Software Variability in Software Product
- in Software Product Families, Proceedings of the 20th IEEE International Conference on Software Maintenance (ICSM 2004
, 2004
"... Evolution of variability is a key factor in the successful exploitation of commonalities in software product families. Assessment of variability can be used to determine how the variability provided by a product family should evolve. In this paper, we present COSVAM (COVAMOF Software Variability Ass ..."
Abstract
-
Cited by 8 (3 self)
- Add to MetaCart
Evolution of variability is a key factor in the successful exploitation of commonalities in software product families. Assessment of variability can be used to determine how the variability provided by a product family should evolve. In this paper, we present COSVAM (COVAMOF Software Variability Assessment Method), a variability assessment technique that specifically addresses evolution of variability. We exemplify our approach with the Dacolian case study.