Flexible and scalable consistency checking on product line variability models

The complexity of product line variability models makes it hard to maintain their consistency over time regardless of the modeling approach used. Engineers thus need support for detecting and resolving inconsistencies. We describe experiences of applying a tool-supported approach for incremental consistency checking on variability models. Our approach significantly improves the overall performance and scalability compared to batch-oriented techniques and allows providing immediate feedback to modelers. It is extensible as new consistency constraints can easily be added. Furthermore, the approach is flexible as it is not limited to variability models and it also checks the consistency of the models with the underlying code base of the product line. We report the results of a thorough evaluation based on real-world product line models and discuss lessons learned.

[1]  Sven Apel,et al.  Type safety for feature-oriented product lines , 2010, Automated Software Engineering.

[2]  Andrea Zisman,et al.  Knowledge base approach to consistency management of UML specifications , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[3]  Felix Bachmann,et al.  A Meta-model for Representing Variability in Product Family Development , 2003, PFE.

[4]  Krzysztof Czarnecki,et al.  Feature and Class Models in Clafer : Mixed , Specialized , and Coupled , 2010 .

[5]  Alexander Egyed,et al.  Instant consistency checking for the UML , 2006, ICSE.

[6]  Alexander Egyed,et al.  Tool Support for Incremental Consistency Checking on Variability Models , 2010, VaMoS.

[7]  Florian Heidenreich Towards systematic ensuring well-formedness of software product lines , 2009, FOSD '09.

[8]  Betty H. C. Cheng,et al.  Automatically Detecting and Visualising Errors in UML Diagrams , 2002, Requirements Engineering.

[9]  Patrick Heymans,et al.  A Formal Semantics for Decision-oriented Variability Modeling with DOPLER , 2010, VaMoS.

[10]  Licia Capra,et al.  xlinkit: a consistency checking and smart link generation service , 2002, TOIT.

[11]  Alexander Egyed,et al.  Generating and Evaluating Choices for Fixing Inconsistencies in UML Design Models , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[12]  Tom Mens,et al.  Detecting model inconsistency through operation-based model construction , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[13]  Hartmut Ehrig,et al.  Consistency analysis of UML class and se-quence diagrams using attributed graph grammars , 2000 .

[14]  Paul Grünbacher,et al.  Structuring the modeling space and supporting evolution in software product line engineering , 2010, J. Syst. Softw..

[15]  Antonio Ruiz Cortés,et al.  FAMA Framework , 2008, 2008 12th International Software Product Line Conference.

[16]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

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

[18]  Douglas F. Ryan,et al.  Introduction to synthesis of current science , 2012 .

[19]  Alexander Egyed,et al.  Support for managing design-time decisions , 2006, IEEE Transactions on Software Engineering.

[20]  Krzysztof Czarnecki,et al.  Variability Modeling: State of the Art and Future Directions , 2010, International Workshop on Variability Modelling of Software-Intensive Systems.

[21]  Sven Apel,et al.  Type-Checking Software Product Lines - A Formal Approach , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[22]  Paul Grünbacher,et al.  Integrated tool support for software product line engineering , 2007, ASE '07.

[23]  Sergio Segura,et al.  Automated analysis of feature models 20 years later: A literature review , 2010, Inf. Syst..

[24]  Cláudia Maria Lima Werner,et al.  ArchTrace: Policy-Based Support for Managing Evolving Architecture-to-Implementation Traceability Links , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[25]  Rainer Koschke,et al.  Supporting the Grow-and-Prune Model in Software Product Lines Evolution Using Clone Detection , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

[26]  Robert Balzer,et al.  Tolerating Inconsistency , 1991, [1989] Proceedings of the 5th International Software Process Workshop.

[27]  John J. Marciniak,et al.  Encyclopedia of Software Engineering , 1994, Encyclopedia of Software Engineering.

[28]  Tom Mens,et al.  Using Description Logic to Maintain Consistency between UML Models , 2003, UML.

[29]  Douglas C. Schmidt,et al.  Evolution in Model-Driven Software Product-Line Architectures , 2009 .

[30]  Krzysztof Czarnecki,et al.  Feature and Meta-Models in Clafer: Mixed, Specialized, and Coupled , 2010, SLE.

[31]  Betty H. C. Cheng,et al.  A graphical environment for formally developing object-oriented software , 1994, Proceedings Sixth International Conference on Tools with Artificial Intelligence. TAI 94.

[32]  Don S. Batory,et al.  Feature Models, Grammars, and Propositional Formulas , 2005, SPLC.

[33]  William R. Cook,et al.  Fitting the pieces together: a machine-checked model of safe composition , 2009, ESEC/FSE '09.

[34]  Paul Grünbacher,et al.  Model-Based Customization and Deployment of Eclipse-Based Tools: Industrial Experiences , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[35]  Cuauhtémoc Lemus Olalde,et al.  Multiple view analysis of designs , 1996, ISAW '96.

[36]  Paul Grünbacher,et al.  Tracking Evolution in Model-based Product Lines , 2009, MAPLE@SPLC.