On-demand integration of product lines: a study of reuse and stability
Proceedings of the 2nd International Workshop on Product Line Approaches in Software Engineering
Reuse vs. maintainability: revealing the impact of composition code properties
Proceedings of the 33rd International Conference on Software Engineering
On the role of composition code properties on evolving programs
Proceedings of the ACM-IEEE international symposium on Empirical software engineering and measurement
A quantitative assessment of aspectual feature modules for evolving software product lines
SBLP'12 Proceedings of the 16th Brazilian conference on Programming Languages
Enhancing design models with composition properties: a software maintenance study
Proceedings of the 12th annual international conference on Aspect-oriented software development
Hi-index | 0.00 |
With system development becoming increasingly incremental, software reuse and stability stand out as two of the most desirable attributes of high-quality software. In this context, a key goal in contemporary software design is to simultaneously promote reuse and stability of the software modules. However, the achievement of this goal is far from trivial as it largely depends on the programming techniques being employed in the software implementation. While the use of a specific advanced mechanism can somehow contribute to modules’ reuse, it might also require developers to make various undesirable changes in their interfaces and implementation. In this context, there are a growing number of techniques for improving modularity, ranging from aspect-oriented and feature-oriented programming to composition filters. This paper presents an exploratory analysis of advanced programming techniques on how they make it possible to reach a better tradeoff of software reuse and stability. The evaluation was carried out based on 11 releases of 2 product lines, which were originally built to promote the stable reuse of common modules across different products. Our results revealed that a hybrid incarnation of feature-oriented and aspect-oriented programming seems to be the most promising programming technique. For instance, the combined use of virtual inner classes, mixin composition, and point cut-advice tended to promote product-line modules with both superior stability and reusability.