Aspect-Oriented Model-Driven Software Product Line Engineering (original) (raw)
Related papers
On the Role of Features and Goals Models in the Aspect-Oriented Development of Software Product Line
2010
Requirements of a Software Product Line (SPL) are usually captured in the form of a feature model, which represents the product line variation model, but this model lets several requirements details aside, such as the specification of functional and non-funcional requirements. Due to the crosscutting nature of SPL variations, researchers are using aspect-oriented techniques, to deal with such crosscutting concerns. In this context, the sooner these aspects can be identified the better, influencing the SPL and products architecture upfront. In this work we propose a Product Line extension to an aspect-oriented intentional model. The extended model provides both variability information and requirements details, promoting a natural blending of SPL and aspect-oriented architectural abstractions. We present the mapping between the SPL and the modeling approach abstractions and discuss two development scenarios: starting with a plain feature model and generating the extended aspect-oriented intentional model and the opposite approach.
Structuring the modeling space and supporting evolution in software product line engineering
Journal of Systems and Software, 2010
The scale and complexity of product lines means that it is practically infeasible to develop a single model of the entire system, regardless of the languages or notations used. The dynamic nature of real-world systems means that product line models need to evolve continuously to meet new customer requirements and to reflect changes of product line artifacts. To address these challenges, product line engineers need to apply different strategies for structuring the modeling space to ease the creation and maintenance of models. This paper presents an approach that aims at reducing the maintenance effort by organizing product lines as a set of interrelated model fragments defining the variability of particular parts of the system. We provide support to semi-automatically merge fragments into complete product line models. We also provide support to automatically detect inconsistencies between product line artifacts and the models representing these artifacts after changes. Furthermore, our approach supports the co-evolution of models and their respective meta-models. We discuss strategies for structuring the modeling space and show the usefulness of our approach using real-world examples from our ongoing industry collaboration.
Software Product Lines-based development
2011 IEEE 9th International Symposium on Applied Machine Intelligence and Informatics (SAMI), 2011
Software Product Lines enable the development of a domain-specific set of similar systems. They rely on the predictable reuse of assets and components. Systems following this approach inherently support mass customization and configuration during the entire evolution of the product family. Feature modeling, in conjunction with Software Product Lines, provides a natural and expressive representation for the product variants. It enables the hierarchical description of common and variable features shared by the software product variants. This paper presents a model-driven approach of Software Product Lines, placing an emphasis on product implementation. After discussing the general model, an example is provided and the use of feature models for Product Line specification is introduced.
Using CVL to operationalize product line development with reusable aspect models
Proceedings of the VARiability for You Workshop on Variability Modeling Made Useful for Everyone - VARY '12, 2012
This paper proposes a software design modelling approach that uses the Common Variability Language (CVL) to specify and resolve the variability of a software design, and the aspect-oriented modelling technique Reusable Aspect Models (RAM) to specify and then compose the detailed structural and behavioural design models corresponding to the chosen variants. This makes it possible to 1) exploit the advanced modularization capabilities of RAM to specify a complex, detailed design concern and its variants by means of a set of interdependent aspect models; 2) use CVL to provide an easy-to-use product-line interface for the design concern; 3) automatically generate a detailed design model for a chosen variant using a custom generic CVL derivation operator and the RAM weaver.
A dynamic software product line approach using aspect models at runtime
2010
Dynamic software product lines (DSPLs) are software product lines, which support late variability that is built into the system to address requirements that change at runtime. But it is difficult to ensure at runtime that all possible adaptations lead to a correct configuration. In this paper, we propose a novel approach for DSPLs that uses a dynamic feature model to describe the variability in the DSPLs and that uses a domain-specific language for declaratively implementing variations and their constraints. The approach combines several trends in aspect-oriented programming for DSPLs, namely dynamic aspects, runtime models of aspects, as well as detection and resolution of aspect interactions. The advantage is, that reconfigurations must not be specified for every feature combination, but only for interacting features. We have validated the approach in an example dynamic software product line from industry and preliminarily evaluated the approach.
A model-driven approach to variability management in product-line engineering
2006
Object-oriented frameworks play an essential role in the implementation of product-line architectures (PLAs) for product families. However, recent case studies reveal that deriving products from the shared software assets of a product-line is a timeconsuming and expensive activity. In this paper, we present a model-driven approach for product derivation in framework-based product-lines. This approach aims to alleviate the aforementioned problems by bridging the gap between domain and application engineering activities in product-line-based development. Our approach is centered on a layered model embracing different artifacts ranging from models for conceptual and architectural variability to models for the realization of variation points. The approach provides mechanisms for enforcing the variation rules throughout the product derivation process and for documenting the variability issues in frameworks and the derived applications. We demonstrate the approach using an existing Java GUI framework.
Representation of Variability in Software Product Line Using Aspect-Oriented Programming
Fourth International Conference on Software Engineering Research, Management and Applications (SERA'06), 2006
Software development methodology has been being developed for the goal of improvement in productivity and reduction in time-to-market through the reuse of component asset, and software product line is designed for the effective management and use of the asset through the separation of commonality and variability. The existing methods that implement software product line interfere massively with the core asset, which require high cost in assembling level reducing the effectiveness. This paper introduces Aspect-Oriented Programming (AOP) as the method for the improvement of the assembling process in software product line. The method that assembles core asset and variabilities is described by grammar elements such as Join point, pointcut and advice without code-change. We analyze the requirements of the mini-system as an example adapting AOP and show its practicality by the implementation of Aspect-Oriented language, AspectJ
Evolving software product lines with aspects
Proceedings of the 13th international conference on Software engineering - ICSE '08, 2008
Software product lines (SPLs) enable modular, large-scale reuse through a software architecture addressing multiple core and varying features. To reap the benefits of SPLs, their designs need to be stable. Design stability encompasses the sustenance of the product line's modularity properties in the presence of changes to both the core and varying features. It is usually assumed that aspect-oriented programming promotes better modularity and changeability of product lines than conventional variability mechanisms, such as conditional compilation. However, there is no empirical evidence on its efficacy to prolong design stability of SPLs through realistic development scenarios. This paper reports a quantitative study that evolves two SPLs to assess various design stability facets of their aspect-oriented implementations. Our investigation focused upon a multi-perspective analysis of the evolving product lines in terms of modularity, change propagation, and feature dependency. We have identified a number of scenarios which positively or negatively affect the architecture stability of aspectual SPLs.
K@ rt: An aspect-oriented and model-oriented framework for dynamic software product lines
2008
Software systems should often propose continuous services and cannot easily be stopped. However, in order to meet new requirements from the user or the marketing, systems should be able to evolve in order to propose new services or modify existing ones. Adapting software systems at runtime is not an easy task and should be realize with attention. In this paper, we present K@RT, our generic and extensible framework for managing dynamic software product lines. K@RT is composed of three parts: i) a generic and extensible metamodel for describing running systems at a high-level of abstraction, ii) a set of metaaspects that extends the generic metamodel with constraint checking, supervising and connections with execution platforms iii) some platform-specific causal connections that allow us to supervise systems running on different execution platforms. ⋆ This work was funded by the DiVA project (EU FP7 STREP, Theme 1.2: Service and Software Architectures, Infrastructures and engineering, Contract 215412)