Modeling and Analysis of Software Product Line Variability in Clafer

Both feature and class modeling are used in Software Product Line (SPL) engineering to model variability. Feature models are used primarily to represent user-visible characteristics (i.e., features) of products; whereas class models are often used to model types of components and connectors in a product-line architecture. Previous works have explored the approach of using a single language to express both configurations of features and components. Their goal was to simplify the definition and analysis of feature-to-component mappings and to allow modeling component options as features. A prominent example of this approach is cardinality-based feature modeling, which extends feature models with multiple instantiation and references to express component-like, replicated features. Another example is to support feature modeling in a class modeling language, such as UML or MOF, using their profiling mechanisms and a stylized use of composition. Both examples have notable drawbacks: cardinality-based feature modeling lacks a constraint language and a well-defined semantics; encoding feature models as class models and their evolution bring extra complexity. This dissertation presents Clafer (class, feature, reference), a class modeling language with first-class support for feature modeling. Clafer can express rich structural models augmented with complex constraints, i.e., domain, variability, component models, and metamodels. Clafer supports: (i) class-based meta-models, (ii) object models (with uncertainty, if needed), (iii) feature models with attributes and multiple instantiation, (iv) configurations of feature models, (v) mixtures of metaand feature models and model templates, and (vi) first-order logic constraints. Clafer also makes it possible to arrange models into multiple specialization and extension layers via constraints and inheritance. On the other hand, in designing Clafer we wanted to create a language that builds upon as few concepts as possible, and is easy to learn. The language is supported by tools for SPL verification and optimization. We propose to unify basic modeling constructs into a single concept, called clafer. In other words, Clafer is not a hybrid language. We identify several key mechanisms allowing a class modeling language to express feature models concisely. We provide Clafer with a formal semantics built in a novel, structurally explicit way. As Clafer subsumes cardinality-based feature modeling with attributes, references, and constraints, we are the first to precisely define semantics of such models. We also explore the notion of partial instantiation that allows for modeling with uncertainty and variability. We show that Object-Oriented Modeling languages with no direct support for partial instances can support them via class modeling, using subclassing and

[1]  Letizia Tanca,et al.  What you Always Wanted to Know About Datalog (And Never Dared to Ask) , 1989, IEEE Trans. Knowl. Data Eng..

[2]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[3]  Charles Suscheck,et al.  A Construct for Effectively Implementing Semantic Associations , 2003, J. Object Technol..

[4]  Janos Sztipanovits,et al.  Towards a formal foundation for domain specific modeling languages , 2006, EMSOFT '06.

[5]  Michal Antkiewicz,et al.  Logical structure extraction from software requirements documents , 2011, 2011 IEEE 19th International Requirements Engineering Conference.

[6]  Christian Wende,et al.  FeatureMapper: mapping features to models , 2008, ICSE Companion '08.

[7]  Zinovy Diskin,et al.  Visualization vs. Specification in Diagrammatic Notations: A Case Study with the UML , 2002, Diagrams.

[8]  Daniel Jackson,et al.  Some Shortcomings of OCL, the Object Constraint Language of UML , 2000, TOOLS.

[9]  Leonid Libkin,et al.  Approximation in Databases , 1995, ICDT.

[10]  Hassan Gomaa Designing Software Product Lines with UML 2.0: From Use Cases to Pattern-Based Software Architectures , 2006, ICSR.

[11]  Martin Gogolla,et al.  USE: A UML-based specification environment for validating UML and OCL , 2007, Sci. Comput. Program..

[12]  Donald D. Cowan,et al.  S.P.L.O.T.: software product lines online tools , 2009, OOPSLA Companion.

[13]  Sharad Malik,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[14]  Mehrdad Sabetzadeh,et al.  Analysis of inconsistency in graph-based viewpoints: a category-theoretical approach , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[15]  Veda C. Storey,et al.  An ontological analysis of the relationship construct in conceptual modeling , 1999, TODS.

[16]  Bernhard Rumpe,et al.  Modal Object Diagrams , 2011, ECOOP.

[17]  L. D. Moura,et al.  The YICES SMT Solver , 2006 .

[18]  Michal Antkiewicz,et al.  Clafer: unifying class and feature modeling , 2014, Software & Systems Modeling.

[19]  Kim G. Larsen,et al.  A modal process logic , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[20]  Mukund Raghavachari,et al.  Mapping UML designs to Java , 2000, OOPSLA '00.

[21]  Krzysztof Czarnecki,et al.  A survey of variability modeling in industrial practice , 2013, VaMoS.

[22]  Narciso Martí-Oliet,et al.  Maude: specification and programming in rewriting logic , 2002, Theor. Comput. Sci..

[23]  Jean-Marc Jézéquel,et al.  Refactoring UML Models , 2001, UML.

[24]  Michal Antkiewicz,et al.  Example-Driven Modeling using Clafer , 2013, MDEBE@MoDELS.

[25]  Jürgen Dingel,et al.  Engineering Associations: From Models to Code and Back through Semantics , 2008, TOOLS.

[26]  Alain Pirotte,et al.  Generic Relationships in Information Modeling , 2005, J. Data Semant..

[27]  Adrian Rutle,et al.  A formal approach to the specification and transformation of constraints in MDE , 2012, J. Log. Algebraic Methods Program..

[28]  Ilkka Niemelä,et al.  Smodels: A System for Answer Set Programming , 2000, ArXiv.

[29]  Adrian Rutle,et al.  A formalisation of the copy-modify-merge approach to version control in MDE , 2010, J. Log. Algebraic Methods Program..

[30]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.

[31]  Dominik Gessenharter,et al.  Mapping the UML2 Semantics of Associations to a Java Code Generation Model , 2008, MoDELS.

[32]  Alexandr Murashkin,et al.  Clafer tools for product line engineering , 2013, SPLC '13 Workshops.

[33]  Rick Salay,et al.  Managing requirements uncertainty with partial models , 2012, 2012 20th IEEE International Requirements Engineering Conference (RE).

[34]  Michal Antkiewicz,et al.  Engineering of Framework-Specific Modeling Languages , 2009, IEEE Transactions on Software Engineering.

[35]  Tomasz Imielinski,et al.  Incomplete Information in Relational Databases , 1984, JACM.

[36]  Kyo Chul Kang FODA: Twenty Years of Perspective on Feature Modeling , 2010, VaMoS.

[37]  Michal Antkiewicz,et al.  Mapping features to models: a template approach based on superimposed variants , 2005, GPCE'05.

[38]  Christian Kästner,et al.  Virtual Separation of Concerns: Toward Preprocessors 2.0 , 2010, it Inf. Technol..

[39]  Krzysztof Czarnecki,et al.  Formalizing cardinality-based feature models and their specialization , 2005, Softw. Process. Improv. Pract..

[40]  Yann-Gaël Guéhéneuc,et al.  Recovering binary class relationships: putting icing on the UML cake , 2004, OOPSLA.

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

[42]  Daniel Le Berre,et al.  The Sat4j library, release 2.2 , 2010, J. Satisf. Boolean Model. Comput..

[43]  Frank Piessens,et al.  Universal Arrow Foundations for Visual Modeling , 2000, Diagrams.

[44]  Sean Quan Lau Domain Analysis of E-Commerce Systems Using Feature-Based Model Templates , 2006 .

[45]  Krzysztof Czarnecki,et al.  Cool features and tough decisions: a comparison of variability modeling approaches , 2012, VaMoS.

[46]  Jürgen Dingel,et al.  Mappings, maps and tables: towards formal semantics for associations in UML2 , 2006, MoDELS'06.

[47]  Dirk Beyer,et al.  Relational programming with CrocoPat , 2006, ICSE.

[48]  Colin Atkinson,et al.  The Normal Object Form: Bridging the Gap from Models to Code , 1999, UML.

[49]  Jordi Cabot Sagrera,et al.  Verification of UML/OCL Class Diagrams Using Constraint Programming , 2008 .

[50]  Bent Bruun Kristensen Complex associations: abstractions in object-oriented modeling , 1994, OOPSLA 1994.

[51]  Stéphane Ducasse,et al.  A reflective model for first class dependencies , 1995, OOPSLA.

[52]  Hassan Gomaa,et al.  Designing Software Product Lines with UML , 2005, 29th Annual IEEE/NASA Software Engineering Workshop - Tutorial Notes (SEW'05).

[53]  Krzysztof Czarnecki,et al.  Feature models are views on ontologies , 2006 .

[54]  Andreas Classen,et al.  A formal semantics for feature cardinalities in feature diagrams , 2011, VaMoS '11.

[55]  Nicolas Belloir,et al.  OCL contracts for the verification of model transformations , 2010, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[56]  Krzysztof Czarnecki,et al.  Variability modeling in the real: a perspective from the operating systems domain , 2010, ASE '10.

[57]  B Kacper Optimized Translation of Clafer Models to Alloy , 2011 .

[58]  Klaus Schmid,et al.  A customizable approach to full lifecycle variability management , 2004, Sci. Comput. Program..

[59]  Pascal Rapicault,et al.  Dependency management for the eclipse ecosystem: eclipse p2, metadata and resolution , 2009, IWOCE '09.

[60]  Andreas Classen,et al.  A text-based approach to feature modelling: Syntax and semantics of TVL , 2011, Sci. Comput. Program..

[61]  Rick Salay,et al.  Language Independent Refinement Using Partial Modeling , 2012, FASE.

[62]  Tomi Männistö,et al.  A unified conceptual foundation for feature modelling , 2006 .

[63]  Martin Gogolla,et al.  A Benchmark for OCL Engine Accuracy, Determinateness, and Efficiency , 2008, MoDELS.

[64]  Patrick Heymans,et al.  Evaluating a Textual Feature Modelling Language: Four Industrial Case Studies , 2010, SLE.

[65]  David S. Janzen,et al.  Test-driven development concepts, taxonomy, and future direction , 2005, Computer.

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

[67]  Michal Antkiewicz,et al.  Partial Instances via Subclassing , 2013, SLE.

[68]  Krzysztof Czarnecki,et al.  A user survey of configuration challenges in Linux and eCos , 2012, VaMoS '12.

[69]  Peter H. Feiler,et al.  Model-Based Engineering with AADL: An Introduction to the SAE Architecture Analysis & Design Language , 2012 .

[70]  Tomi Männistö,et al.  Kumbang: A domain ontology for modelling variability in software product families , 2007, Adv. Eng. Informatics.

[71]  Krzysztof Czarnecki,et al.  The Variability Model of The Linux Kernel , 2010, VaMoS.

[72]  Jean Bézivin,et al.  KM3: A DSL for Metamodel Specification , 2006, FMOODS.

[73]  William F. Clocksin,et al.  Programming in Prolog , 1981, Springer Berlin Heidelberg.

[74]  Wolfgang Schröder-Preikschat,et al.  Dead or Alive: finding zombie features in the Linux kernel , 2009, FOSD '09.

[75]  Cristina Sirangelo,et al.  XML with incomplete information: models, properties, and query answering , 2009, PODS.

[76]  Rick Salay,et al.  Towards a Methodology for Verifying Partial Model Refinements , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[77]  Derek Rayside,et al.  Modelling and multi-objective optimization of quality attributes in variability-rich software , 2012, NFPinDSML '12.

[78]  Klaus Schmid,et al.  Software product lines in action - the best industrial practice in product line engineering , 2007 .

[79]  Michal Antkiewicz,et al.  Example-Driven Modeling: Model = Abstractions + Examples , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[80]  Tomi Männistö,et al.  Nivel: a metamodelling language with a formal semantics , 2009, Software & Systems Modeling.

[81]  Zinovy Diskin,et al.  Variable Sets and Functions Framework for Conceptual Modeling: Integrating ER and OO via Sketches with Dynamic Markers , 1995, OOER.

[82]  Michael D. Ernst,et al.  HAMPI: a solver for string constraints , 2009, ISSTA.

[83]  Natarajan Shankar,et al.  PVS: Combining Specification, Proof Checking, and Model Checking , 1996, FMCAD.

[84]  Zinovy Diskin,et al.  A Diagrammatic Logic for Object-Oriented Visual Modeling , 2008, Electron. Notes Theor. Comput. Sci..

[85]  Zinovy Diskin,et al.  Variable set semantics for keyed generalized sketches: formal semantics for object identity and abstract syntax for conceptual modeling , 2003, Data Knowl. Eng..

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

[87]  Derek Rayside,et al.  Extending Alloy with Partial Instances , 2012, ABZ.

[88]  Krzysztof Czarnecki,et al.  Verifying feature-based model templates against well-formedness OCL constraints , 2006, GPCE '06.

[89]  Lawrence Charles Paulson,et al.  Isabelle: A Generic Theorem Prover , 1994 .

[90]  Mikolás Janota,et al.  Formal Approach to Integrating Feature and Architecture Models , 2008, FASE.

[91]  Wolfgang Faber,et al.  The DLV system for knowledge representation and reasoning , 2002, TOCL.

[92]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[93]  Emina Torlak,et al.  Kodkod: A Relational Model Finder , 2007, TACAS.

[94]  Rick Salay,et al.  Partial models: Towards modeling and reasoning with uncertainty , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[95]  Indrakshi Ray,et al.  UML2Alloy: a challenging model transformation , 2007, MODELS'07.

[96]  Michael Barr,et al.  Category theory for computing science , 1995, Prentice Hall International Series in Computer Science.

[97]  Krzysztof Czarnecki,et al.  Generative Programming for Embedded Software: An Industrial Experience Report , 2002, GPCE.

[98]  Uffe Kock Wiil,et al.  Verification-driven slicing of UML/OCL models , 2010, ASE.

[99]  Jordi Cabot,et al.  Verification of UML/OCL Class Diagrams using Constraint Programming , 1899, 2008 IEEE International Conference on Software Testing Verification and Validation Workshop.

[100]  Krzysztof Czarnecki,et al.  Staged configuration through specialization and multilevel configuration of feature models , 2005, Softw. Process. Improv. Pract..