Conference Paper

Plastic Partial Components: A Solution to Support Variability in Architectural Components

E.U.Inf., Univ. Politec. de Madrid, Madrid, Spain
DOI: 10.1109/WICSA.2009.5290808 Conference: Joint Working IEEE/IFIP Conference on Software Architecture 2009 and European Conference on Software Architecture 2009, WICSA/ECSA 2009, Cambridge, UK, 14-17 September 2009
Source: DBLP


Software product line engineering is becoming widely used due to the improvement it means when developing software products of the same family. The commonalities and variabilities of software product lines (SPL) are identified during the domain engineering process and then, they are realized in the software architecture. Therefore, mechanisms to explicitly specify the commonalities and variabilities of SPLs at the architectural level are required. Most of the current mechanisms specify variations on the architecture by adding or removing architectural elements. However, it is also necessary to specify variations inside components. In this paper, we propose the notion of plastic partial components to support internal variations. The specification of these components is performed using invasive software composition techniques and without tangling the core and product architectures of the SPL. This contribution is illustrated through a SPL for developing domain-specific validation environments.

Download full-text


Available from: Jessica Díaz, Aug 21, 2015
  • Source
    • "There has been increasing interest in modeling variability at the software architecture level [8], [9], [34], [35], [36]. Software architecture [3] is a discipline that is emerging as a software design approach able to reach higher abstraction levels, hence, alleviating the software development complexity and making this development process less error-prone. "
    [Show abstract] [Hide abstract]
    ABSTRACT: Software product line (SPL) engineering has proven to improve software quality and shorten development cycles, cost and time. In product line engineering, product derivation is concerned with the realization of the variability at the implementation level. However, the majority of research works focuses on instantiating the variants selected in the final product, while the derivation at the architecture level has been poorly explored. As product line engineers often customize the product architecture by hand during the application engineering phase, the derivation and customization processes of the product line architecture (PLA) might be in some cases error-prone. Consequently, in this research we present an Ontology-based product Architecture Derivation (OntoAD) framework which automates the derivation of product-specific architectures from an SPL architecture. Our solution uses a language-independent model to specify the product line architecture and a model-driven engineering approach for architecture derivation activities. We use an ontology formalism to reason about the automatic generation of model-to-model transformation rules based on the selection of features and we illustrate our approach using a voice over IP motivating example. Finally, we report results about scalability and performance regarding the size of the variability model.
    Full-text · Article · Dec 2015 · IEEE Transactions on Software Engineering
  • Source
    • "Diversity switches and interfaces in Koala can be understood as concrete language constructs at the implementation level targeted to express variation points and associated variants. Plastic partial components [35] are an architectural modeling approach where component variability is defined by extending partially defined components with variation points and associated variants. However, variants cannot contain variable components so this modeling approach is not truly hierarchical. "

    Full-text · Article · Oct 2015
    • "As variability facilitates the planned evolutionary software development [32], agile architects can take advantage of the PPC primitives to define flexible architectures. Hence, although the PPC variability mechanism has been successfully applied to product lines to support internal variation of architectural components among the products of a product line [17]—i.e. to define variations among products—it can also be used to flexibly add, remove, and modify variants throughout the iterations of an agile lifecycle [41]. In this case, variability points behave as extension points and variants behave as extensions. "
    [Show abstract] [Hide abstract]
    ABSTRACT: Software Product Line Engineering implies the upfront design of a Product-Line Architecture (PLA) from which individual product applications can be engineered. The big upfront design associated with PLAs is in conflict with the current need of “being open to change”. To make the development of product-lines more flexible and adaptable to changes, several companies are adopting Agile Product Line Engineering. However, to put Agile Product Line Engineering into practice it is still necessary to make mechanisms available to assist and guide the agile construction and evolution of PLAs.
    No preview · Article · Jul 2014 · Information and Software Technology
Show more