Advertisement

Enactment of Components Extracted from an Object-Oriented Application

  • Abderrahmane Seriai
  • Salah Sadou
  • Houari A. Sahraoui
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8627)

Abstract

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.

Keywords

Legacy System Software Architecture Class Instance Execution Trace Object Management Group 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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. 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
  3. 3.
    Bruneton, E., Coupaye, T., Leclercq, M., Quema, V., Stefani, J.-B.: An open component model and its support in java. In: Crnković, I., Stafford, J.A., Schmidt, H.W., Wallnau, K. (eds.) CBSE 2004. LNCS, vol. 3054, pp. 7–22. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  4. 4.
    Fabresse, L., Dony, C., Huchard, M.: Foundations of a simple and unified component-oriented language. Computer Languages, Systems & Structures 34(2-3), 130–149 (2008)CrossRefGoogle Scholar
  5. 5.
    Fröhlich, P.H., Gal, A., Franz, M.: Supporting software composition at the programming language level. Sci. Comput. Program. 56, 41–57 (2005)CrossRefGoogle Scholar
  6. 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. 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. 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. 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
  10. 10.
    Medvidovic, N., Jakobac, V.: Using software evolution to focus architectural recovery. Automated Software Eng. 13(2), 225–256 (2006)CrossRefGoogle Scholar
  11. 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. 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. 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. 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
  15. 15.
    Costa Seco, J., Caires, L.: A basic model of typed components. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, p. 108. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  16. 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
  17. 17.
    Washizaki, H., Fukazawa, Y.: A technique for automatic component extraction from object-oriented programs by refactoring. Sci. Comput. Program. 56(1-2), 99–116 (2005)zbMATHMathSciNetCrossRefGoogle Scholar
  18. 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
  19. 19.
    Zenger, M.: Keris: evolving software with extensible modules. Journal of Software Maintenance 17(5), 333–362 (2005)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Abderrahmane Seriai
    • 1
  • Salah Sadou
    • 1
  • Houari A. Sahraoui
    • 2
  1. 1.IRISAUniversité de Bretagne SudVannesFrance
  2. 2.DIROUniversité de MontréalMontréalCanada

Personalised recommendations