Evolving Industrial Software Architectures into a Software Product Line: A Case Study
QoSA '09 Proceedings of the 5th International Conference on the Quality of Software Architectures: Architectures for Adaptive Software Systems
Extracting Behavior Specification of Components in Legacy Applications
CBSE '09 Proceedings of the 12th International Symposium on Component-Based Software Engineering
Automated extraction of palladio component models from running enterprise Java applications
Proceedings of the Fourth International ICST Conference on Performance Evaluation Methodologies and Tools
Component types qualification in Java legacy code driven by communication integrity rules
Proceedings of the 4th India Software Engineering Conference
Combining clustering and pattern detection for the reengineering of component-based software systems
Proceedings of the joint ACM SIGSOFT conference -- QoSA and ACM SIGSOFT symposium -- ISARCS on Quality of software architectures -- QoSA and architecting critical systems -- ISARCS
Automated extraction of architecture-level performance models of distributed component-based systems
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Respecting component architecture to migrate product copies to a software product line
Proceedings of the 17th international doctoral symposium on Components and Architecture
Hi-index | 0.00 |
An increasing number of software systems is developed using component technologies such as COM, CORBA, or EJB. Still, there is a lack of support to reverse engineer such systems. Existing approaches claim reverse engineering of components, but do not support composite components. Also, external dependencies such as required interfaces are not made explicit. Furthermore, relaxed component definitions are used, and obtained components are thus indistinguishable from modules or classes. We present an iterative reverse engineering approach that follows the widely used definition of components by Szyperski. It enables third-party reuse of components by explicitly stating their interfaces and supports composition of components. Additionally, components that are reverse engineered with the approach allow reasoning on properties of software architectures at the model level. For the approach, source code metrics are combined to recognize components. We discuss the selection of source code metric and their interdependencies, which were explictly taken into account. An implementation of the approach was successfully validated within four case studies. Additionally, afifth case study shows the scalability of the approach or an inutilsz system for an industrial-size system.