Managing evolution in software product lines: a model-checking perspective

In Software Product Line (SPL) engineering, similar software products are developed in families rather than individually. Developing similar software at once leads to new challenges. In particular, the model checking problem for SPL is harder because it has to deal with potentially many products and identify exactly which ones do not work properly. In previous work, we introduced Featured Transition Systems as a compact behavioural model for SPL. We also proposed new algorithms that model check all the products of the SPL efficiently, by taking into account the commonality between them to reduce the verification time. However, our current approach does not consider that SPL can evolve. If a new feature is added to the SPL, previous verification results cannot be reused. In this paper, we define formally two particular classes of features. Using simulation relations, we show that we may anticipate the properties of some products introduced by those features. We discuss interesting perspectives and present the challenges that are still ahead.

[1]  Pierre-Yves Schobbens,et al.  Synthesising Features by Games , 2005, AVoCS.

[2]  Robin Milner,et al.  An Algebraic Definition of Simulation Between Programs , 1971, IJCAI.

[3]  Stephan Merz,et al.  Model Checking , 2000 .

[4]  David Park,et al.  Concurrency and Automata on Infinite Sequences , 1981, Theoretical Computer Science.

[5]  Kathi Fisler,et al.  Modular verification of collaboration-based software designs , 2001, ESEC/FSE-9.

[6]  Pierre Wolper,et al.  An Automata-Theoretic Approach to Automatic Program Verification (Preliminary Report) , 1986, LICS.

[7]  Pierre-Yves Schobbens,et al.  Feature Diagrams: A Survey and a Formal Semantics , 2006, 14th IEEE International Requirements Engineering Conference (RE'06).

[8]  Kim G. Larsen,et al.  Modal I/O Automata for Interface and Product Line Theories , 2007, ESOP.

[9]  Andreas Classen,et al.  Tag and prune: a pragmatic approach to software product line implementation , 2010, ASE.

[10]  Kathi Fisler,et al.  Interfaces for modular feature verification , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[11]  Capers Jones,et al.  Embedded Software: Facts, Figures, and Future , 2009, Computer.

[12]  Kathi Fisler,et al.  Foundations of incremental aspect model-checking , 2007, TSEM.

[13]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching Time Temporal Logic , 2008, 25 Years of Model Checking.

[14]  Kathi Fisler,et al.  Verifying cross-cutting features as open systems , 2002, SIGSOFT '02/FSE-10.

[15]  Pierre-Yves Schobbens,et al.  Model checking lots of systems: efficient verification of temporal properties in software product lines , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[16]  Mark Ryan,et al.  Feature integration using a feature construct , 2001, Sci. Comput. Program..

[17]  Christel Baier,et al.  Principles of model checking , 2008 .

[18]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

[19]  Stefania Gnesi,et al.  Formal Modeling for Product Families Engineering , 2008, 2008 12th International Software Product Line Conference.

[20]  Martin Pilgram,et al.  Consultative Committee For Space Data Systems , 2009 .

[21]  Pierre-Yves Schobbens,et al.  Symbolic model checking of software product lines , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[22]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[23]  Maurice H. ter Beek,et al.  Formal Description of Variability in Product Families , 2011, 2011 15th International Software Product Line Conference.

[24]  Klaus Pohl,et al.  Model Checking of Domain Artifacts in Product Line Engineering , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[25]  Pierre-Yves Schobbens,et al.  Model-checking the preservation of temporal properties upon feature integration , 2005, International Journal on Software Tools for Technology Transfer.

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

[27]  Sven Apel,et al.  Granularity in software product lines , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[28]  Kathi Fisler,et al.  Verifying aspect advice modularly , 2004, SIGSOFT '04/FSE-12.

[29]  José Meseguer,et al.  The Maude LTL Model Checker , 2004, WRLA.

[30]  Bashar Nuseibeh,et al.  Towards safer composition , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

[31]  Jing Liu,et al.  Compositional model checking of software product lines using variation point obligations , 2010, Automated Software Engineering.

[32]  Sebastián Uchitel,et al.  A foundation for behavioural conformance in software product line architectures , 2006, ROSATEA '06.

[33]  Kathi Fisler,et al.  Modular Verification of Open Features Using Three-Valued Model Checking , 2005, Automated Software Engineering.

[34]  Pierre-Yves Schobbens,et al.  Proving feature non-interaction with Alternating-Time Temporal Logic , 2000, FIREworks.