An industrial case study of architecture conformance
Proceedings of the Second ACM-IEEE international symposium on Empirical software engineering and measurement
Software Engineering
An evaluation of code similarity identification for the grow-and-prune model
Journal of Software Maintenance and Evolution: Research and Practice - Special Issue on the 12th Conference on Software Maintenance and Reengineering (CSMR 2008)
Extending the reflexion method for consolidating software variants into product lines
Software Quality Control
Assessing architectural drift in commercial software development: a case study
Software—Practice & Experience
An extended assessment of type-3 clones as detected by state-of-the-art tools
Software Quality Control
Recovering object-oriented framework for software product line reengineering
ICSR'11 Proceedings of the 12th international conference on Top productivity through software reuse
An overview of techniques for detecting software variability concepts in source code
ER'11 Proceedings of the 30th international conference on Advances in conceptual modeling: recent developments and new directions
Locating distinguishing features using diff sets
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Collaboration and source code driven bottom-up product line engineering
Proceedings of the 16th International Software Product Line Conference - Volume 2
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Experiences from identifying software reuse opportunities by domain analysis
Proceedings of the 17th International Software Product Line Conference
Hi-index | 0.00 |
Software variants emerge from ad-hoc copying in- the-large with adaptations to a specific context. As the number of variants increases, maintaining such soft- ware variants becomes more and more difficult and ex- pensive. In contrast to such ad-hoc reuse, software product lines offer organized ways of reuse, taking ad- vantage of similarities of different products. To re-gain control, software variants may be consolidated as orga- nized software product lines. In this paper, we describe a method and support- ing tools to compare software variants at the architec- tural level extending the reflexion method to software variants. Murphy's reflexion method allows one to re- construct the module view, a static architectural view describing the static components, their interfaces and dependencies and their grouping as layers and subsys- tems. The method consists of the specification of the module view and the mapping of implementation com- ponents onto the module view. An automatic analysis determines differences between the module view and its implementation. We extend the reflexion method from single systems to software variants. Because software variants share a very large amount of code, we use clone detection tech- niques to identify corresponding implementation com- ponents between variants. The correspondence is then used to transfer as much of the mapping for the ana- lyzed variants to the next variant to be analyzed.