Evolving software product lines with aspects: an empirical study on design stability (original) (raw)
Related papers
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.
A Quantitative Assessment of Aspectual Feature Modules for Evolving Software Product Lines
Lecture Notes in Computer Science, 2012
Feature-Oriented Programming (FOP) and Aspect-Oriented Programming (AOP) are programming techniques based on composition mechanisms, called refinements and aspects, respectively. These techniques are assumed to be good variability mechanisms for implementing Software Product Lines (SPLs). Aspectual Feature Modules (AFM) is an approach that combines advantages of feature modules and aspects to increase concern modularity. Some guidelines of how to integrate these techniques have been established in some studies, but these studies do not focus the analysis on how effectively AFM can preserve the modularity and stability facilitating SPL evolution. The main purpose of this paper is to investigate whether the simultaneous use aspects and features through the AFM approach facilitates the evolution of SPLs. The quantitative data were collected from a SPL developed using four different variability mechanisms: (1) feature modules, aspects and aspects refinements of AFM, (2) aspects of aspect-oriented programming (AOP), (3) feature modules of feature-oriented programming (FOP), and (4) conditional compilation (CC) with object-oriented programming. Metrics for change propagation and modularity stability were calculated and the results support the benefits of the AFM option in a context where the product line has been evolved with addition or modification of crosscutting concerns.
Science of Computer Programming, 2014
h i g h l i g h t s • Variability mechanisms are systematically evaluated in the evolution of SPLs. • FOP and AFM have shown better adherence to the Open-Closed Principle than CC. • When crosscutting concerns are present, AFM are recommended over FOP. • Refactoring at component level has important impact in AFM and FOP. • CC compilation should be avoided when modular design is an important requirement. a r t i c l e i n f o a b s t r a c t
From Conditional Compilation to Aspects: A Case Study in Software Product Lines Migration
2006
Apart from adoption strategies, an existing Software Product Line (SPL) implemented using some variability mechanisms can be migrated to use another variability mechanism. In this paper, we present some migration strategies from one SPL implemented with conditional compilation to one using Aspect-Oriented Programming (AOP). The strategies present a variability pattern handled by the first mechanism and shows how it can be translated into a pattern using AOP constructs. We also show and discuss that some variability patterns cannot be migrated into AOP. The discussion centers around a commercial SPL in the mobile games domain.
Aspect-Oriented Model-Driven Software Product Line Engineering
Lecture Notes in Computer Science, 2009
Software product line engineering aims to reduce development time, effort, cost, and complexity by taking advantage of the commonality within a portfolio of similar products. The effectiveness of a software product line approach directly depends on how well feature variability within the portfolio is implemented and managed throughout the development lifecycle, from early analysis through maintenance and evolution. This article presents an approach that facilitates variability implementation, management, and tracing by integrating modeldriven and aspect-oriented software development. Features are separated in models and composed by aspect-oriented composition techniques on model level. Model transformations support the transition from problem to solution space models. Aspect-oriented techniques enable the explicit expression and modularization of variability on model, template, and code level. The presented concepts are illustrated with a case study of a home automation system.
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.
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.
Stability assessment of aspect-oriented software architectures: A quantitative study
Journal of Systems and Software, 2010
Design of stable software architectures has increasingly been a deep challenge to software developers due to the high volatility of their concerns and respective design decisions. Architecture stability is the ability of the high-level design units to sustain their modularity properties and not succumb to modifications. Architectural aspects are new modularity units aimed at improving design stability through the modularization of otherwise crosscutting concerns. However, there is no empirical knowledge about the positive and negative ...