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
    • "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: Context 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. Objective This paper presents the validation of a process for “the agile construction and evolution of product-line architectures”, called Agile Product-Line Architecting (APLA). The contribution of the APLA process is the integration of a set of models for describing, documenting, and tracing PLAs, as well as an algorithm for guiding the change decision-making process of PLAs. The APLA process is assessed to prove that assists Agile Product Line Engineering practitioners in the construction and evolution of PLAs. Method Validation is performed through a case study by using both quantitative and qualitative analysis. Quantitative analysis was performed using statistics, whereas qualitative analysis was performed through interviews using constant comparison, triangulation, and supporting tools. This case study was conducted according to the guidelines of Runeson and Höst in a software factory where three projects in the domain of Smart Grids were involved. Results APLA is deployed through the Flexible-PLA modeling framework. This framework supported the successful development and evolution of the PLA of a family of power metering management applications for Smart Grids. Conclusions APLA is a well-supported solution for the agile construction and evolution of PLAs. This case study illustrates that the proposed solution for the agile construction of PLAs is viable in an industry project on Smart Grids.
    Information and Software Technology 07/2014; 56(7). DOI:10.1016/j.infsof.2014.01.014 · 1.05 Impact Factor
    • "To support internal variability, the Flexible-PLA Model is based on a novel concept called Plastic Partial Component (PPC) [4]. PPC's approach applies the advantages of aspectoriented software architectures [15] (see Figure 1.a) by defining components as fragment boxes that hook a set of reusable fragments of code—aspects—, which makes components easier to be maintained, and by extension software architectures. "
    [Show abstract] [Hide abstract]
    ABSTRACT: Software Product Line Engineering has significant advantages in family-based software development. The common and variable structure for all products of a family is defined through a Product-Line Architecture (PLA) that consists of a common set of reusable components and connectors which can be configured to build the different products. The design of PLA requires solutions for capturing such configuration (variability). The Flexible-PLA Model is a solution that supports the specification of external variability of the PLA configuration, as well as internal variability of components. However, a complete support for product-line development requires translating architecture specifications into code. This complex task needs automation to avoid human error. Since Model-Driven Development allows automatic code generation from models, this paper presents a solution to automatically generate AspectJ code from Flexible-PLA models - previously configured to derive specific products. This solution is supported by a modeling framework and validated in a software factory.
    39th Euromicro Conference on Software Engineering and Advanced Applications (SEAA); 09/2013
  • Source
    • "Plastic partial components [38] provide a means to model component variability inside the components by extending partially defined components with variation points and associated variants. Variants can be cross-or non-cross-cutting architectural concerns that are composed with the common component architecture by weaving mechanisms that have to be specified by the component designer. "
    [Show abstract] [Hide abstract]
    ABSTRACT: Hierarchically decomposed component-based system development reduces design complexity by supporting distribution of work and component reuse. For product line development, the variability of the components to be deployed in different products has to be represented by appropriate means. In this paper, we propose hierarchical variability modeling which allows specifying component variability integrated with the component hierarchy and locally to the components. Components can contain variation points determining where components may vary. Associated variants define how this variability can be realized in different component configurations. We present a meta model for hierarchical variability modeling to formalize the conceptual ideas. In order to obtain an implementation of the proposed approach together with tool support, we extend the existing architectural description language MontiArc with hierarchical variability modeling. We illustrate the presented approach using an example from the automotive systems domain.
    Software Product Lines - 15th International Conference, SPLC 2011, Munich, Germany, August 22-26, 2011; 01/2011
Show more