Managing Feature Interaction by Documenting and Enforcing Dependencies in Software Product Lines

Software product line engineering provides a systematic approach for the reuse of software assets in the production of similar software systems. For such it employs different variability modeling and realization approaches in the development of common assets that are extended and configured with different features. The result is usually generalized and complex implementations that may hide important dependencies and design decisions. Therefore, whenever software engineers need to extend the software product line assets, there may be dependencies in the code that, if not made explicit and adequately managed, can lead to feature interference. Feature interference happens when a combined set of features that extend a shared piece of code fail to behave as expected. Our experience in the development of YANCEES, a highly extensible and configurable publish/subscribe infrastructure product line, shows that the main sources of feature interference in this domain are the inadequate documentation and management of software dependencies. In this paper, we discuss those issues in detail, presenting the strategies adopted to manage them. Our approach employs a contextual plug-in framework that, through the explicit annotation and management of dependencies in the software product line assets, better supports software engineers in their extension and configuration.

[1]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[2]  Ron Cytron,et al.  Footprint and feature management using aspect-oriented programming techniques , 2002, LCTES/SCOPES '02.

[3]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[4]  Juha Savolainen,et al.  Feature Interaction and Dependencies: Modeling Features for Reengineering a Legacy Product Line , 2002, SPLC.

[5]  Marco Sinnema,et al.  COVAMOF: A Framework for Modeling Variability in Software Product Families , 2004, SPLC.

[6]  David Garlan,et al.  Reasoning about implicit invocation , 1998, SIGSOFT '98/FSE-6.

[7]  Lodewijk Bergmans,et al.  Composing crosscutting concerns using composition filters , 2001, CACM.

[8]  David F. Redmiles,et al.  A Survey of Versatility for Publish/Subscribe Infrastructures , 2005 .

[9]  Ivar Jacobson,et al.  Software Reuse: Architecture, Process And Organization For Business Success , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[10]  Daniel Hoffman,et al.  Commonality and Variability in Software Engineering , 1998, IEEE Softw..

[11]  C. W. Krueger,et al.  Software product line reuse in practice , 2000, Proceedings 3rd IEEE Symposium on Application-Specific Systems and Software Engineering Technology.

[12]  Carl Woolf,et al.  An architectural approach to minimizing feature interactions in telecommunications , 1996, TNET.

[13]  Klaus Pohl,et al.  Considering Feature Interactions in Product Lines: Towards the Automatic Derivation of Dependencies between Product Variants , 2005, FIW.

[14]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming, 2nd Edition , 2002, Addison-Wesley component software series.

[15]  David S. Rosenblum,et al.  A design framework for Internet-scale event observation and notification , 1997, ESEC '97/FSE-5.

[16]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[17]  David F. Redmiles,et al.  Striving for versatility in publish/subscribe infrastructures , 2005, SEM '05.

[18]  Jan Bosch,et al.  A taxonomy of variability realization techniques , 2005, Softw. Pract. Exp..

[19]  Gail C. Murphy,et al.  Explicit programming , 2002, AOSD '02.

[20]  Marco Sinnema,et al.  Classifying variability modeling techniques , 2007, Inf. Softw. Technol..

[21]  Dorian Birsan,et al.  On Plug-ins and Extensible Architectures , 2005, ACM Queue.

[22]  Paul Dourish,et al.  In the eye of the beholder: A visualization-based approach to information system security , 2005, Int. J. Hum. Comput. Stud..

[23]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[24]  CoplienJames,et al.  Commonality and Variability in Software Engineering , 1998 .

[25]  G. Herman,et al.  The feature interaction problem in telecommunications systems , 1989 .

[26]  Kyo Chul Kang,et al.  Feature Dependency Analysis for Product Line Component Design , 2004, ICSR.

[27]  Marco Sinnema,et al.  Experiences in Software Product Families: Problems and Issues During Product Derivation , 2004, SPLC.