A case study in matching service descriptions to implementations in an existing system

A number of companies are trying to migrate large monolithic software systems to Service Oriented Architectures. A common approach to do this is to first identify and describe desired services (i.e., create a model), and then to locate portions of code within the existing system that implement the described services. In this paper we describe a detailed case study we undertook to match a model to an open-source business application. We describe the systematic methodology we used, the results of the exercise, as well as several observations that throw light on the nature of this problem. We also suggest and validate heuristics that are likely to be useful in partially automating the process of matching service descriptions to implementations.

[1]  Hongji Yang,et al.  Incubating services in legacy systems for architectural migration , 2004, 11th Asia-Pacific Software Engineering Conference.

[2]  Hongji Yang,et al.  Service Identification and Packaging in Service Oriented Reengineering , 2005, SEKE.

[3]  Victor R. Basili,et al.  Identifying and qualifying reusable software components , 1991, Computer.

[4]  Giuseppe Visaggio,et al.  Function recovery based on program slicing , 1993, 1993 Conference on Software Maintenance.

[5]  Ted J. Biggerstaff,et al.  The concept assignment problem in program understanding , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[6]  Ali Arsanjani,et al.  Service-Oriented Modeling and Architecture for Realization of an SOA , 2006, 2006 IEEE International Conference on Services Computing (SCC'06).

[7]  Giuliano Antoniol,et al.  A method to re-organize legacy systems via concept analysis , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[8]  Ladan Tahvildari,et al.  A Service-Oriented Componentization Framework for Java Software Systems , 2006, 2006 13th Working Conference on Reverse Engineering.

[9]  Filippo Ricca,et al.  A "quick and dirty" meet-in-the-middle approach for migrating to SOA , 2009, IWPSE-Evol '09.

[10]  Paolo Traverso,et al.  Service-Oriented Computing: a Research Roadmap , 2008, Int. J. Cooperative Inf. Syst..

[11]  Karthikeyan Ponnalagu,et al.  Locating Components Realizing Services in Existing Systems , 2008, 2008 IEEE International Conference on Services Computing.

[12]  Andrian Marcus,et al.  An information retrieval approach to concept location in source code , 2004, 11th Working Conference on Reverse Engineering.

[13]  T. A. Wiggerts,et al.  Using clustering algorithms in legacy systems remodularization , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[14]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

[15]  Rudolf Wille,et al.  Restructuring Lattice Theory: An Approach Based on Hierarchies of Concepts , 2009, ICFCA.

[16]  Norman Wilde,et al.  The role of concepts in program comprehension , 2002, Proceedings 10th International Workshop on Program Comprehension.

[17]  Mark Harman,et al.  Code extraction algorithms which unify slicing and concept assignment , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..

[18]  Norman Wilde,et al.  Software reconnaissance: Mapping program features to code , 1995, J. Softw. Maintenance Res. Pract..

[19]  Kostas Kontogiannis A Research Agenda for Service-Oriented Architecture , 2007, 2007 Sixth International IEEE Conference on Commercial-off-the-Shelf (COTS)-Based Software Systems (ICCBSS'07).

[20]  Andrian Marcus,et al.  On the Use of Domain Terms in Source Code , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[21]  Wei Zhao,et al.  SNIAFL: towards a static non-interactive approach to feature location , 2004, Proceedings. 26th International Conference on Software Engineering.

[22]  Kalapriya Kannan,et al.  Promoting Reuse via Extraction of Domain Concepts and Service Abstractions from Design Diagrams , 2008, 2008 IEEE International Conference on Services Computing.

[23]  Tim Menzies,et al.  On the use of relevance feedback in IR-based concept location , 2009, 2009 IEEE International Conference on Software Maintenance.

[24]  Gerald C. Gannod,et al.  Recovering Concepts from Source Code with Automated Concept Identification , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[25]  R. E. Kurt Stirewalt,et al.  The interleaving problem in program understanding , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[26]  Massimiliano Di Penta,et al.  An approach for mining services in database oriented applications , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[27]  Martin P. Robillard,et al.  Representing concerns in source code , 2007, TSEM.