Enactment of Components Extracted from an Object-Oriented Application
Software architecture plays an important role for the application understanding before its maintenance. Unfortunately, for legacy systems code often there is no corresponding (or up to date) architecture. So, several work tackle this problem by extracting components from the legacy system and define their links. Although these components allow to get an architectural view of the legacy system, they still can’t be easily implemented in a concrete framework. In fact, restructuring completely the legacy system facilitates the mapping between the architectural elements and their corresponding ones in the code. This paves the way to the future maintenance of the system.
Our approach aims to reach this complete restructuring. Thus it goes beyond what exists in the state of the art by proposing a technique that makes components extracted from object-oriented applications implementable within a concrete component model. This is done by using class instances that compose the extracted components to infer possible instances the components. Thus, we propose for each extracted component its provided and required interfaces, and a way to construct its instances. We validated the feasibility of the proposed approach through the Spring framework and we illustrated it through a legacy Java application.
KeywordsLegacy System Software Architecture Class Instance Execution Trace Object Management Group
Unable to display preview. Download preview PDF.
- 1.Allier, S., Sadou, S., Sahraoui, H., Fleurquin, R.: From object-oriented applications to component-oriented applications via component-oriented architecture. In: 9th IEEE/IFIP Working International Conference on Software Architecture (WICSA), Boulder, Colorado, USA, pp. 214–223. IEEE Computer Society (June 2011)Google Scholar
- 2.Allier, S., Sahraoui, H.A., Sadou, S., Vaucher, S.: Restructuring object-oriented applications into component-oriented applications by using consistency with execution traces. In: Grunske, L., Reussner, R., Plasil, F. (eds.) CBSE 2010. LNCS, vol. 6092, pp. 216–231. Springer, Heidelberg (2010)CrossRefGoogle Scholar
- 6.Garlan, D.: Software architecture: a roadmap. In: Proceedings of the Conference on the Future of Software Engineering, ICSE 2000, pp. 91–101. ACM, New York (2000)Google Scholar
- 7.Object Management Group. Unified modeling language 2.1.2 super-structure specification. Specification Version 2.1.2, Object Management Group (November 2007)Google Scholar
- 8.Mancoridis, S., Mitchell, B.S., Rorres, C.: Using automatic clustering to produce high-level system organizations of source code. In: Proc. 6th Intl. Workshop on Program Comprehension, pp. 45–53 (1998)Google Scholar
- 9.Martin, F., Kessentini, M., Sahraoui, H.: Deriving high-level abstractions from legacy software using example-driven clustering. In: International Conference on Computer Science and Software Engineering, CASCON 2011, pp. 188–199 (2011)Google Scholar
- 11.Pourhaji Kazem, A.A., Lotfi, S.: An evolutionary approach for partitioning weighted module dependency graphs. In: 4th International Conference on Innovations in Information Technology, IIT 2007, pp. 252–256 (November 2007)Google Scholar
- 12.Richner, T., Ducasse, S.: Recovering high-level views of object-oriented applications from static and dynamic information. In: Proceedings of the International Conference on Software Maintenance, ICSM 1999, pp. 13–22. IEEE (1999)Google Scholar
- 13.Riva, C., Rodriguez, J.V.: Combining static and dynamic views for architecture reconstruction. In: Sixth European Conference onSoftware Maintenance and Reengineering (CSMR), pp. 47–55. Nokia Research Center (2002)Google Scholar
- 14.Saeed, M., Maqbool, O., Babri, H.A., Hassan, S.Z., Sarwar, S.M.: Software clustering techniques and the use of combined algorithm. In: Proceedings of the Seventh European Conference on Software Maintenance and Reengineering, CSMR 2003, p. 301. IEEE Computer Society, Washington, DC (2003)CrossRefGoogle Scholar
- 16.Seriai, A., Sadou, S., Sahraoui, H., Hamza, S.: Deriving component interfaces after a restructuring of a legacy system. In: 11th IEEE/IFIP Working International Conference on Software Architecture (WICSA), Sydney, Australia. IEEE Computer Society (April 2014)Google Scholar
- 18.Yan, H., Garlan, D., Schmerl, B., Aldrich, J., Kazman, R.: Discotect: A system for discovering architectures from running systems. In: International Conference on Software Engineering, pp. 470–479 (2004)Google Scholar