Seamless development of software product lines

One of the key problems in the development of software product lines is the representation and management of variability and commonality. The customary way to define both aspects is by means of feature models that also allow the configuration of each specific application within the product line to be selected. However the control of traceability between the features and the architectural models (generally based on UML) is not simple. The fundamental reasons are the complexity of the traceability relationships, and the fact that the same modeling mechanisms (e.g., the specialization in a class diagram) serve to express the variation points in the models that represent the product line and in each specific application. The aim of this work is to use the package merge mechanism of the UML 2 infrastructure meta-model as the representation (and support for the configuration) of the variability in the product line while reserving the classical mechanisms (the specialization in the structural models, the <<extends>> relationship in the use case models, etc.) to express the variants in execution time of each specific application. The structure of the feature models is directly reflected in the relationships between packages in the architectural models, so the traceability of the configuration decisions is straightforward. The direct implementation of the package merge mechanism using the facility of partial classes of languages such as C# is an additional advantage that leads to the ideal of "seamless development".

[1]  Jürgen Dingel,et al.  Package merge in UML 2: practice vs. theory? , 2006, MoDELS'06.

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

[3]  John Mylopoulos,et al.  Visual variability analysis for goal models , 2004, Proceedings. 12th IEEE International Requirements Engineering Conference, 2004..

[4]  L. Burd Review: Software Reuse: Architecture, Process and Organization for Business Success , 1997 .

[5]  John Mylopoulos,et al.  From object-oriented to goal-oriented requirements analysis , 1999, CACM.

[6]  Paul Clements,et al.  Fourth DoD Product Line Practice Workshop Report , 2001 .

[7]  Benoit Baudry,et al.  Exploring the Relationship between Model Composition and Model Transformation , 2005 .

[8]  Ilka Philippow,et al.  Feature-Oriented Development of Software Product Lines: Mapping Feature Models to the Architecture , 2004, Net.ObjectDays.

[9]  Francisco J. García-Peñalvo,et al.  Introducing systematic reuse in mainstream software process , 2003, 2003 Proceedings 29th Euromicro Conference.

[10]  Julio Cesar Sampaio do Prado Leite,et al.  Análisis de Variabilidad con Modelos de Objetivos , 2004, WER.

[11]  Hassan Gomaa,et al.  Object Oriented Analysis and Modeling for Families of Systems with UML , 2000, ICSR.

[12]  Matthias Clauss,et al.  Generic Modeling using UML extensions for variability , 2001 .

[13]  Richard F. Paige,et al.  Merging models with the epsilon merging language (EML) , 2006, MoDELS'06.

[14]  David A. Moon Object-oriented programming with flavors , 1986, OOPSLA 1986.

[15]  Klaus Pohl,et al.  Communicating the variability of a software-product family to customers , 2003, Software and Systems Modeling.

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

[17]  Horst Lichter,et al.  Modeling Variability by UML Use Case Diagrams , 2002 .

[18]  Desmond D'Souza,et al.  Objects, Components, and Frameworks with UML: The Catalysis Approach , 1998 .

[19]  Dirk Muthig,et al.  Tailoring Use Cases for Product Line Modeling , 2002 .

[20]  Ivar Jacobson,et al.  Aspect-oriented software development with use cases , 2005, Addison Wesley object technology series.

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

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

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

[24]  John Mylopoulos,et al.  Non-Functional Requirements in Software Engineering , 2000, International Series in Software Engineering.

[25]  David A. Moon,et al.  Object-oriented programming with flavors , 1986, OOPLSA '86.

[26]  Paul Clements,et al.  Fourth Product Line Practice Workshop Report , 2000 .

[27]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[28]  Alanna Zito,et al.  Modeling UML 2 Package Merge with Alloy , 2006 .

[29]  Jaejoon Lee,et al.  FORM: A feature-;oriented reuse method with domain-;specific reference architectures , 1998, Ann. Softw. Eng..

[30]  Krzysztof Czarnecki,et al.  Overview of Generative Software Development , 2004, UPP.

[31]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[32]  Kim Walden,et al.  Seamless object-oriented software architecture , 1995 .

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

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