Results 1 - 10
of
188
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 67 (13 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.
On the Notion of Variability in Software Product Lines
- In Proceedings of the Working IEEE/IFIP Conference on Software Architecture (WICSA’01
, 2001
"... In this paper, we discuss the notion of variability. We have experienced that this concept has so far been underdefined. Although, we have observed that variability techniques become increasingly important. A clear indication of this trend is the recent emergence of software product lines. Software ..."
Abstract
-
Cited by 59 (0 self)
- Add to MetaCart
In this paper, we discuss the notion of variability. We have experienced that this concept has so far been underdefined. Although, we have observed that variability techniques become increasingly important. A clear indication of this trend is the recent emergence of software product lines. Software product lines are large, industrial software systems intended to specialize into specific software products. Our contribution in this paper is that we provide the reader with a framework of terminology and concepts regarding variability. In addition, we present three recurring patterns of variability. Finally, we suggest a method for managing variability in software product lines.
Staged configuration through specialization and multi-level configuration of feature models
- Software Process Improvement and Practice
, 2005
"... 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 54 (7 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
Staged configuration using feature models
- Software Product Lines: Third International Conference, SPLC 2004
, 2004
"... Abstract. 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 introdu ..."
Abstract
-
Cited by 52 (4 self)
- Add to MetaCart
Abstract. 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. 1
A Taxonomy of Variability Realization Techniques
- SOFTWARE—PRACTICE AND EXPERIENCE
, 2001
"... ..."
Design Erosion: Problems Causes
, 2002
"... Design erosion is a common problem in software engineering. We have found that invariably, no matter how ambitious the intentions of the designers were, software designs tend to erode over time to the point that redesigning from scratch becomes a viable alternative compared to prolonging the life ..."
Abstract
-
Cited by 37 (9 self)
- Add to MetaCart
Design erosion is a common problem in software engineering. We have found that invariably, no matter how ambitious the intentions of the designers were, software designs tend to erode over time to the point that redesigning from scratch becomes a viable alternative compared to prolonging the life of the existing design. In this paper we illustrate how design erosion works by presenting the evolution of the design of a small software system. In our analysis of this example we show how design decisions accumalate and become invalid because of new requirements. Also it is argued that even an optimal strategy for designing the system (i.e. no compromises with respect to e.g. cost are made) does not lead to an optimal design because of unforseen requirement changes that invalidate design decisions that once were optimal.
A comprehensive approach for the development of modular software architecture description languages
- ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY
, 2005
"... Research over the past decade has revealed that modeling software architecture at the level of components and connectors is useful in a growing variety of contexts. This has led to the development of a plethora of notations for representing software architectures, each focusing on different aspects ..."
Abstract
-
Cited by 37 (4 self)
- Add to MetaCart
Research over the past decade has revealed that modeling software architecture at the level of components and connectors is useful in a growing variety of contexts. This has led to the development of a plethora of notations for representing software architectures, each focusing on different aspects of the systems being modeled. In general, these notations have been developed without regard to reuse or extension. This makes the effort in adapting an existing notation to a new purpose commensurate with developing a new notation from scratch. To address this problem, we have developed an approach that allows for the rapid construction of new architecture description languages (ADLs). Our approach is unique because it encapsulates ADL features in modules that are composed to form ADLs. We achieve this by leveraging the extension mechanisms provided by XML and XML schemas. We have defined a set of generic, reusable ADL modules called xADL 2.0, useful as an ADL by itself, but also extensible to support new applications and domains. To support this extensibility, we have developed a set of reflective syntax-based tools that adapt to language changes automatically, as well as several semantically-aware tools that provide support for advanced features of xADL 2.0. We demonstrate the effectiveness, scalability, and flexibility of our approach through a diverse set of experiences. First, our approach has been applied in industrial contexts,
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 31 (4 self)
- Add to MetaCart
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
Architectural concerns in distributed and mobile collaborative systems
- Proc. of the International Conference on Software and Knowledge Engineering SEKE 2002
, 2002
"... There have been considerable attempts to integrate Workflow Management Systems (WfMS), Groupware Systems, and Business Process Modeling Systems to provide a uniform platform for distributed and mobile collaboration (DMC) of geographically dispersed project teams. Such distributed and mobile teamwork ..."
Abstract
-
Cited by 28 (3 self)
- Add to MetaCart
There have been considerable attempts to integrate Workflow Management Systems (WfMS), Groupware Systems, and Business Process Modeling Systems to provide a uniform platform for distributed and mobile collaboration (DMC) of geographically dispersed project teams. Such distributed and mobile teamwork defines new challenges for current IT platforms in terms of architecture and business-specific configurations. This paper discusses architectural concerns for such DMC systems and provides a framework for process aware distributed and mobile teamwork. This is achieved by integrating process- and workspace management requirements with Peer-to-Peer (P2P) Middleware, Publish-Subscribe, and Community and User Management. The paper discusses a three-layer architecture that integrates process awareness with the easy to use groupware (workspace) metaphor. Keywords Process awareness, software architecture, distributed and mobile collaborative systems 1.
Towards a More Precise Definition of Feature Models
- Modelling Variability for Object-Oriented Product Lines
, 2003
"... Feature models are a well accepted means for expressing requirements in a domain on an abstract level. They are applied to describe variable and common properties of products in a product line, and to derive and validate configurations of software systems. Their industrial importance is increasi ..."
Abstract
-
Cited by 25 (4 self)
- Add to MetaCart
Feature models are a well accepted means for expressing requirements in a domain on an abstract level. They are applied to describe variable and common properties of products in a product line, and to derive and validate configurations of software systems. Their industrial importance is increasing rapidly. However, methodical usage and tool support demands for a more precise definition of features, their properties and their relations within a feature model. This position paper summarizes the state of the discussion and proposes issues for future development. Categories of features and types of their attributes and relations are presented. The represented information is limited to a customer point of view onto the feature models without excluding technically detailed features. Connections of features to other models i.e. design, and to implementation elements are given by traceability links. Approaches for graphical representations and data models for feature models are shown. Proposals of attaching additional information for related tasks like product line evolution, scoping, effort estimation, definition of product configurations and documenting are discussed.

