Towards Enhanced Program Comprehension for Service Oriented Architecture (SOA) Systems

Abstract

Service Oriented Architecture (SOA) is an emerging paradigm for orchestrating software components to build new composite applications that enable businesses, government agencies and other organizations to collaborate across institutional boundaries. SOA offers new languages and a variety of software development tools that enable software engineers to configure software as services and to interconnect services with other services independent of differences in operating platform and programming and communicating languages. However, SOA composite applications introduce additional complexity into the construction, deployment and maintenance of software, for the purpose of aggravating the issue of program comprehension, which is at the heart of software maintenance. This article describes the challenges in SOA program comprehension and reports on the results of a two-part case study aimed at identifying information that would help a SOA software maintainer. Analysis of the results indicates a need for higher-level abstractions and visualizations that can enhance conventional text-based search to support SOA program understanding. This paper then reports on several specific abstractions, visualization methods, and the development of an intelligent search tool to enhance comprehension of the relationships and data within a SOA composite application.

Share and Cite:

E. El-Sheikh, T. Reichherzer, L. White, N. Wilde, J. Coffey, S. Bagui, G. Goehring and A. Baskin, "Towards Enhanced Program Comprehension for Service Oriented Architecture (SOA) Systems," Journal of Software Engineering and Applications, Vol. 6 No. 9, 2013, pp. 435-445. doi: 10.4236/jsea.2013.69054.

Conflicts of Interest

The authors declare no conflicts of interest.

References

[1] N. Josuttis, “SOA in Practice: The Art of Distributed Software Design,” O’Reilly Media, Sebastopol, 2007.
[2] G. Lewis, E. Morris, S. Simanta and D. Smith, “Service Orientation and Systems of Systems,” IEEE Software, Vol. 28, No. 1, 2011, pp. 58-63. doi:10.1109/MS.2011.15
[3] S. D. Fay and D. G. Holmes, “Help! I Have to Update an Undocumented Program,” Proceedings of the IEEE Conference on Software Maintenance-1985, Washington DC, 11-13 November 1985, pp. 192-204.
[4] L. White, T. Reichherzer, J. Coffey, N. Wilde and S. Simmons, “Maintenance of Service Oriented Architecture Composite Applications: Static and Dynamic Support,” Journal of Software Maintenance and Evolution: Research and Practice, Vol. 25, No. 1, 2011, pp. 97-109. doi:10.1002/smr.568
[5] T. Reichherzer, E. El-Sheikh, N. Wilde, L. White, J. Coffey and S. Simmons, “Towards Intelligent Search Support for Web Services Evolution: Identifying the Right Abstractions,” Proceedings of 2011 13th IEEE International Symposium on Web Systems Evolution (WSE), Williamsburg, 30 September 2011, pp. 53-58. doi:10.1109/WSE.2011.6081819
[6] L. White, N. Wilde, T. Reichherzer, E. El-Sheikh, G. Goehring, A. Baskin, B. Hartmann and M. Manea, “Understanding Interoperable Systems: Challenges for the Maintenance of SOA Applications,” Proceedings of the 45th Hawaii International Conference on System Sciences (HICSS), Maui, 4-7 January 2012, pp. 2199-2206.
[7] G. Canfora and M. Di Penta, “New Frontiers of Reverse Engineering,” Proceedings of the 29th International Conference on Software Engineering, Minneapolis, 20-26 May 2007, pp. 326-341. doi:10.1109/FOSE.2007.15
[8] N. Gold, C. Knight, A. Mohan and M. Munro, “Understanding Service-Oriented Software,” IEEE Software, Vol. 21, No. 2, 2004, pp. 71-77. doi:10.1109/MS.2004.1270766
[9] K. Kontogiannis, “Challenges and Opportunities Related to the Design, Deployment and Operation of Web Services,” Proceedings of the 24th Conference on Software Maintenance, Beijing, 28 September-4 October 2008, pp. 11-20. doi:10.1109/FOSM.2008.4659244
[10] G. A. Lewis and D. B. Smith, “Service-Oriented Architecture and Its Implications for Software Maintenance and Evolution,” Proceedings of the 24th Conference on Software Maintenance, Bejing, 28 September-4 October 2008, pp. 1-10. doi:10.1109/FOSM.2008.4659243
[11] M. Kajko-Mattsson, G. A. Lewis and D. B. Smith, “Evolution and Maintenance of SOA-Based Systems at SAS,” Proceedings of the 41st Annual Hawaii International Conference on System Sciences (HICSS), Waikoloa, 7-10 January 2008, p. 119. doi:10.1109/HICSS.2008.154
[12] M. P. Papazoglou, V. Andrikopoulos and S. Benbernou, “Managing Evolving Services,” IEEE Software, Vol. 28, No. 3, 2011, pp. 49-55. doi:10.1109/MS.2011.26
[13] N. Gold and K. Bennett, “Program Comprehension for Web Services,” Proceedings of the 12th IEEE International Workshop on Program Comprehension, Bari, 24-26 June 2004, p. 151.
[14] W. De Pauw, M. Lei, E. Pring, L. Villard, M. Arnold and J. F. Morar, “Web Services Navigator: Visualizing the Execution of Web Services,” IBM Systems Journal, Vol. 44, No. 4, 2005, pp. 821-845. doi:10.1147/sj.444.0821
[15] J. Coffey, L. White, N. Wilde and S. Simmons, “Locating Software Features in a SOA Composite Application,” Proceedings of the 8th IEEE European Conference on Web Services (ECOWS’10), Ayia Napa, 1-3 December 2010, pp. 99-106. doi:10.1109/ECOWS.2010.28
[16] S. Halle, T. Bultan, G. Hughes, M. Alkhalaf and R. Villemaire, “Runtime Verification of Web Service Interface Contracts,” Computer, Vol. 43, No. 3, 2010, pp. 59-66. doi:10.1109/MC.2010.76
[17] Apache Software Foundation, “Apache Solr,” 2011. http://lucene.apache.org/solr/
[18] GitHub Inc., “Evolvingweb/AJAX-Solr,” 2012. http://github.com/evolvingweb/ajax-solr
[19] P. Runeson and M. Host, “Guidelines for Conducting and Reporting Case Study Research in Software Engineering,” Empirical Software Engineering, Vol. 14, No. 2, 2009, pp. 131-164. doi:10.1007/s10 664-008-9102-8
[20] S. E. Sim, C. L. A. Clarke and R. C. Holt, “Archetypal Source Code Searches: A Survey of Software Developers and Maintainers,” Proceedings of the 6th International Workshop on Program Comprehension (IWPC’98), Ischia, 26 June 1998, pp. 180-187. doi:10.1109/WPC.1998.693351
[21] S. Bagui and R. Earp, “Database Design Using EntityRelationship Diagrams,” 2nd Edition, Auerbach Publications, Boca Raton, 2012.
[22] G. Goehring, T. Reichherzer, E. El-Sheikh, D. Snider, N. Wilde, S. Bagui, J. Coffey and L. White, “A KnowledgeBased System Approach for Extracting Abstractions from Service Oriented Architecture Artifacts,” International Journal of Advanced Research in Artificial Intelligence, Vol. 2, No. 3, 2013, pp. 44-52.
[23] J. Novak and D. Gowin, “Learning How to Learn,” Cambridge University Press, New York, 1984. doi:10.1017/CBO9781139173469

Copyright © 2023 by authors and Scientific Research Publishing Inc.

Creative Commons License

This work and the related PDF file are licensed under a Creative Commons Attribution 4.0 International License.