Flexible-PLA (FPLA) Modeling Framework
Software Product Line Engineering is becoming widely used due to the improvement it means when software products of the same family are developed. The commonalities and variabilities of Software Product Lines (SPLs) are identified during the domain analysis, and then they are realized in the Product-Line Architecture (PLA). As a result, mechanisms to explicitly specify the commonalities and variabilities of SPLs at the architectural level are required.
Most current mechanisms specify variations on the architecture by adding or removing architectural elements (external variations). However, it is also necessary to specify variations inside components (internal variations). Plastic Partial Components (PPC) are an attempt to support the internal variations of architectural components. A formal definition of the PPC concept, its metamodel and graphical metaphor, were described in"Plastic Partial Components: A solution to support variability in architectural components".
The variability of the PLA must be specified without mixing variability specifications with the software architecture. This is important because the main properties of software architectures must be guaranteed, i.e. it is necessary to preserve the descriptions of software system structures by hiding the low-level details, abstracting the important high level features, and providing the black box view of architectural elements. In order to preserve these properties, the need emerges to provide different viewpoints and their corresponding views for describing the structure of a PLA. That is why we have proposed a model with different views for specifying the core architecture, as well as external and internal variability.
Our contribution, based on models, provides the guidelines to be deployed in a Model-Driven Development (MDD) framework. Our proposal fits the four-level architecture of MOF. A graphical modeling tool called Flexible-PLA (FPLA) supports the description of PLA models ready to be involved in a MDD process by transforming their outputs (i.e. PLA models) into platform-dependent models and/or into automatically generated code.
FPLA offers tool support for (i) modeling PLAs in a graphical way by providing mechanisms to specify the external and internal variability and the different artifacts of the PLA following a view model, (ii) documenting the design decision driving the PLA solution, (iii) tracing PLAs to features allowing change impact analysis, (iv) configuring a specific product architecture, and (v) translating PL specifications into code (automatically) by guarantying the traceability between PLA and code.
FPLA is a graphical modeling tool that provides support for the PPC concept, its metamodel, and views. FPLA has been automatically generated from the PPC metamodel using Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF). FPLA is an open-source tool available for the research community.
Currentely, a preliminary release is available (FPLAv1.0.1). This release offers:
- Basics of the feature modeling: Feature view.
- Basics of the PLA elements, including PPCs: Core and Variability views.
- Basics of the traceability between the feature and PLA metamodels:Traceability view.
FPLA will be constantly changing and in continuous development to release the latest characteritics.
For detailed information about the FPLA Tool, please refer to the Publications section of this website.