Automated error analysis for the agilization of feature modeling☆
Section snippets
Introduction and motivation
The so-called agile methods have arisen to face up to the problems that traditional, heavyweight software development methodologies have not satisfactorily solved yet. Agile methods pursue some main goals which are described in the Agile Manifesto (Fowler and Highsmith, 2001), where a number of key changes to traditional software development are proposed. For example: focusing the efforts during development in the interaction with customers through working software; collaborating with customers
Feature models
As briefly commented in Section 1, feature models are a widely used notation to describe the set of products in a software product line in terms of features. In feature models, features are hierarchically linked in a tree-like structure and are optionally connected by cross-tree constraints. An example on how feature models are depicted is shown in Fig. 2, where the feature model describes a Home Integration System (HIS) product line.
Although there are many proposals on the type of
Feature model level: dealing with errors in feature models
A feature model is composed by features and relationships among them. A feature model describes the products in a SPL, considering products as sets of selected features. Relationships are added to reduce the set of products until the SPL is properly described.
Sometimes, introducing new relationships in a feature model may accidentally remove some products so the feature model does not describe the real SPL. On the other hand, the feature model may not be correctly constrained so some products
Diagnosis level: diagnosing and explaining errors
The goal of the diagnosis level, as depicted in Fig. 1, is transforming a feature model into a diagnosis model in order to detect errors and provide their corresponding explanations. This transformation can be described using a circuit-like representation of feature models, where each relationship corresponds to a component. Every component or relationship has one binary input per feature and one binary output (see Fig. 7). Each input represents the presence (1) or absence (0) of a feature,
Implementation level: modeling diagnosis problem as a CSP
One of the main advantages of defining error detection and explanation in terms of theory of diagnosis is having the problem described in an implementation-independent way. In this work, we propose an implementation based on constraint programming, however, any other implementation could be proposed relying on the previous diagnosis level.
Our proposal is inspired by two main sources: on the one hand, Benavides et al. (2005) proposed a direct mapping from a feature model onto a CSP to extract
Applying our proposal to a real case
We have applied the implementation level described in this paper during a Software Product Line development project. The project intends to build a set of Enterprise Resource Planning (ERP) products in the context of SAUCE, an environmental resources management SPL. SAUCE comprises a set of products to store and exploit the existing information about flora and fauna in different rivers. The aim of the SPL is to produce customized software that helps to the management and conservation of these
Related work
Although the automated error analysis in feature models was already identified as a fundamental task in the original FODA report by Kang et al. (1990), few authors have dealt with it. As a matter of fact, there has not been a seminal approach to automatically analyze errors in feature models as far as we know.
Our interest in automating error detection and explanation arose from the work of von der Massen and Lichter (2004), where the authors proposed a categorization of what they call
Conclusions and future work
We have discussed our vision on how SPL and agile methods can come together, either by applying agile principles to SPL methodologies or by tailoring an existing agile methodology to support SPL development. Independently from the chosen alternative, supporting automatic error detection and explanation is an important contribution that can be a first step in bringing agile principles and SPL together. As feature modeling is an error-prone task, an activity that checks the feature model is
Acknowledgements
We would like to thank Richard Page, Patrick Heymans and Pierre-Yves Schobbens for their useful comments and Manuel Nieto for his effort on applying our ideas in an industrial case study.
Pablo Trinidad is a lecturer at the Department of Computer Languages and Systems of the University of Seville since 2004, where he received his MSc in Computer Science in 2002 (with honours). He worked on several consultant companies before joining the University of Seville. His main research interest is software product lines, having published several articles in international conferences.
References (27)
A theory of diagnosis from first principles
Artif. Intell.
(1987)- et al.
Generic semantics of feature diagrams
Comput. Network
(2007) - Batory, D., 2005. Feature models, grammars, and propositional formulas. In: Software Product Lines Conference, LNCS...
- et al.
Scaling step-wise refinement
IEEE Trans. Software Eng.
(2004) - et al.
Automated analysis of feature models: challenges ahead
Commun. ACM
(2006) - Benavides, D., Ruiz-Cortés, A., Trinidad, P., 2005. Automated reasoning on feature models. In: LNCS, Advanced...
- Benavides, D., Segura, S., Trinidad, P., Ruiz-CortTs, A., 2007. FAMA: tooling a framework for the automated analysis of...
- Czarnecki, K., Kim, P., 2005. Cardinality-based feature modeling and constraints: a progress report. In: Proceedings of...
- et al.
Model-driven software product lines
- de Kleer, J., Mackworth, A.K., Reiter, R., 1990. Characterizing diagnoses. In: AAAI, pp....
Cited by (101)
Evolutionary Computing to solve product inconsistencies in Software Product Lines
2022, Science of Computer ProgrammingClassifying and resolving software product line redundancies using an ontological first-order logic rule based method
2021, Expert Systems with ApplicationsFCA for software product line representation: Mixing configuration and feature relationships in a unique canonical representation
2020, Discrete Applied MathematicsChange impact analysis for evolving configuration decisions in product line use case models
2018, Journal of Systems and SoftwareAn approach for optimized feature selection in large-scale software product lines
2018, Journal of Systems and Software
Pablo Trinidad is a lecturer at the Department of Computer Languages and Systems of the University of Seville since 2004, where he received his MSc in Computer Science in 2002 (with honours). He worked on several consultant companies before joining the University of Seville. His main research interest is software product lines, having published several articles in international conferences.
David Benavides is a senior lecturer at the Department of Computer Languages and Systems of the University of Seville, where he received his MS degree in Computer Science in 2001 and his PhD in 2006. His research interests are software product lines and software engineering for web applications. He has published several articles and papers about software product lines and feature models analysis.
Amador Durán is an associate professor at the Department of Computer Languages and Systems of the University of Seville, where he received his MS degree in Computer Science in 1993 and his PhD in 2000. Currently, he is the vice dean of International Relationships of his faculty. His research interests are requirements engineering, business modelling, software product lines and software engineering for web applications. He has published several articles in international journals, several papers in conferences like the IEEE Requirements Engineering, and edited a book about requirements engineering.
Antonio Ruiz-Cortés is an associate professor of software engineering and member of the Department of Computer Languages and Systems from the University of Sevilla since 1998. He received the B.Sc (with honours), the M.Sc and the Ph.D. (with honours) in Computer Science from the same University. His current research interests include software engineering (Requirements Engineering, Process Modelling, Software Factories, Product Lines, Model Driven Development, Autonomic Computing) and service oriented computing (Service Oriented Architecture, Service Level Agreements, web services composition). Before joining the University, he worked as a software architect, requirements engineer and finally as a project manager for a leading environmental software firm. Currently, he is a member of the European Commission Board of Experts in Software Engineering and head of the Applied Software Engineering Group (http://www.isa.us.es).
Miguel Toro is a professor of computer science who received his PhD degree in electrical engineering in 1988. His current research activities cover a broad range of areas, including software engineering, formal methods, data mining, and qualitative reasoning. He has also led several national research projects on these topics.
- ☆
This work has been partially supported by the European Commission (FEDER) and Spanish Government under CICYT project Web-Factories (TIN2006-00472).