Automated error analysis for the agilization of feature modeling

https://doi.org/10.1016/j.jss.2007.10.030Get rights and content

Abstract

Software Product Lines (SPL) and agile methods share the common goal of rapidly developing high-quality software. Although they follow different approaches to achieve it, some synergies can be found between them by (i) applying agile techniques to SPL activities so SPL development becomes more agile; and (ii) tailoring agile methodologies to support the development of SPL. Both options require an intensive use of feature models, which are usually strongly affected by changes on requirements. Changing large-scale feature models as a consequence of changes on requirements is a well-known error-prone activity. Since one of the objectives of agile methods is a rapid response to changes in requirements, it is essential an automated error analysis support in order to make SPL development more agile and to produce error-free feature models.

As a contribution to find the intended synergies, this article sets the basis to provide an automated support to feature model error analysis by means of a framework which is organized in three levels: a feature model level, where the problem of error treatment is described; a diagnosis level, where an abstract solution that relies on Reiter’s theory of diagnosis is proposed; and an implementation level, where the abstract solution is implemented by using Constraint Satisfaction Problems (CSP).

To show an application of our proposal, a real case study is presented where the Feature-Driven Development (FDD) methodology is adapted to develop an SPL. Current proposals on error analysis are also studied and a comparison among them and our proposal is provided. Lastly, the support of new kinds of errors and different implementation levels for the proposed framework are proposed as the focus of our future work.

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)

  • R. Reiter

    A theory of diagnosis from first principles

    Artif. Intell.

    (1987)
  • P. Schobbens 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...
  • D. Batory et al.

    Scaling step-wise refinement

    IEEE Trans. Software Eng.

    (2004)
  • D. Batory 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...
  • K. Czarnecki et al.

    Model-driven software product lines

  • de Kleer, J., Mackworth, A.K., Reiter, R., 1990. Characterizing diagnoses. In: AAAI, pp....
  • Fattah, Y.E., Dechter, R., 1995. Diagnosing tree-decomposable circuits. In: IJCAI, pp....
  • Fowler, M., Highsmith, J., 2001. The agile manifesto. In: Software Development, Issue on Agile...
  • Haarslev, V., Moller, R., 2001. Description of the RACER system and its applications. In: Description Logics. URL:...
  • Cited by (101)

    View all citing articles on Scopus

    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).

    View full text