Abstract
Service interface is a critical component in a service-oriented architecture (SOA). As first-class design artifact, a service interface should be properly designed to provide best practice of third-party reuse. However, a very common bad service design practice in existing SOAs is to place semantically unrelated operations implementing several abstractions in a single interface. Poorly designed service interfaces can have a negative effect on all client applications that use these services. Indeed, services with such poor interface structure tend to be difficult to comprehend, maintain and reuse in business processes, leading to unsuccessful services. Necessarily, then, service designers should “refactor”, i.e., restructure, their service interface into smaller, more cohesive interfaces, each representing a specific abstraction. To address this problem, we introduce a novel approach, namely WSIRem, to support service’s developers in improving the modularization of their service interfaces. WSIRem is based on a multi-objective search-based optimization approach to find the appropriate modularization of a service interface into smaller, more cohesive and loosely coupled interfaces, each implementing a distinct abstraction. WSIRem has been empirically evaluated on a benchmark of 22 real-world Web services provided by Amazon and Yahoo. Results show that the automatically identified interfaces improved the services interface structure. Qualitative evaluation of WSIRem with developers showed the performance of WSIRem in terms of understandability, where the new WSIRem interfaces were recognized as ‘relevant’ from developers point of view with more than 73% of precision and 77% of recall. Overall, the obtained results show that WSIRem outperforms state-of-the-art approaches relying on traditional partitioning techniques.









Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Notes
http://s3.amazonaws.com/ec2-downloads/2009-10-31.ec2.wsdl. Accessed on February 15th, 2019.
References
Abdeen, H., Ducasse, S., Sahraoui, H., Alloui, I.: Automatic package coupling and cycle minimization. In: 16th Working Conference on Reverse Engineering, pp. 103–112. IEEE (2009)
Anquetil, N., Lethbridge, T.C.: Experiments with clustering as a software remodularization method. In: 6th Working Conference on Reverse Engineering, pp. 235–255. IEEE (1999)
Athanasopoulos, D., Zarras, A.: Fine-grained metrics of cohesion lack for service interfaces. In: IEEE International Conference on Web Services (ICWS), pp. 588–595 (2011)
Athanasopoulos, D., Zarras, A.V., Miskos, G., Issarny, V.: Cohesion-driven decomposition of service interfaces without access to source code. IEEE Trans. Serv. Comput. 8(JUNE), 1–18 (2015)
Bavota, G., De Lucia, A., Oliveto, R.: Identifying extract class refactoring opportunities using structural and semantic cohesion measures. J. Syst. Softw. 84(3), 397–414 (2011)
Bavota, G., De Lucia, A., Marcus, A., Oliveto, R.: Automating extract class refactoring: an improved method and its evaluation. Empir. Softw. Eng. 19(6), 1617–1664 (2014)
Budgen, D.: Software Design. Addision-Wesley, Reading (1999)
Card, D.N., Glass, R.L.: Measuring Software Design Quality. Prentice-Hall Inc., Englewood Cliffs (1990)
Chisnall, P.M.: Questionnaire design, interviewing and attitude measurement. J. Mark. Res. Soc. 35(4), 392–393 (1993)
Cliff, N.: Dominance statistics: ordinal analyses to answer ordinal questions. Psychol. Bull. 114(3), 494 (1993)
Cohen, J.: Statistical Power Analysis for the Behavioral Sciences. Academic Press, London (1988)
Coscia, J.L.O., Mateos, C., Crasso, M., Zunino, A.: Refactoring code-first web services for early avoiding WSDL anti-patterns: approach and comprehensive assessment. Sci. Comput. Program. 89, 374–407 (2014)
Crasso, M., Rodriguez, J.M., Zunino, A., Campo, M.: Revising WSDL documents: why and how. IEEE Internet Comput. 14(5), 48–56 (2010)
Daagi, M., Ouni, A., Kessentini, M., Gammoudi, M.M., Bouktif, S.: Web service interface decomposition using formal concept analysis. In: IEEE International Conference on Web Services (ICWS), pp. 172–179. IEEE (2017)
De Renzis, A., Garriga, M., Flores, A., Cechich, A., Mateos, C., Zunino, A.: A domain independent readability metric for web service descriptions. Comput. Stand. Interfaces 50, 124–141 (2017)
Deb, K., Pratap, A., Agarwal, S., Meyarivan, T.: A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Trans. Evolut. Comput. 6(2), 182–197 (2002)
Demšar, J.: Statistical comparisons of classifiers over multiple data sets. J. Mach. Learn. Res. 7, 1–30 (2006)
Dudney, B., Krozak, J., Wittkopf, K., Asbury, S., Osborne, D.: J2EE Antipatterns. Wiley, New York (2003)
Fleiss, J.L.: Measuring nominal scale agreement among many raters. Psychol. Bull. 76(5), 378 (1971)
Fokaefs, M., Mikhaiel, R., Tsantalis, N., Stroulia, E., Lau, A.: An empirical study on web service evolution. In: IEEE International Conference on Web Services (ICWS), pp. 49–56 (2011)
Fokaefs, M., Tsantalis, N., Stroulia, E., Chatzigeorgiou, A.: Identification and application of extract class refactorings in object-oriented systems. J. Syst. Softw. 85(10), 2241–2260 (2012)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman Publishing Co., Inc., Reading (1999)
Haesen, R., Snoeck, M., Lemahieu, W., Poelmans, S.: On the definition of service granularity and its architectural impact. In: Bellahsène, Z., Léonard, M. (eds.) Advanced Information Systems Engineering, pp. 375–389. Springer (2008)
Harman, M.: The current state and future of search based software engineering. In: Future of Software Engineering (FOSE), pp. 342–357 (2007)
Harman, M., Hierons, R.M., Proctor, M.: A new representation and crossover operator for search-based optimization of software modularization. GECCO 2, 1351–1358 (2002)
Harman, M., Mansouri, S.A., Zhang, Y.: Search-based software engineering: trends, techniques and applications. ACM Comput. Surv. (CSUR) 45(1), 11 (2012)
Hirsch, M., Rodriguez, A., Rodriguez, J.M., Mateos, C., Zunino, A.: Spotting and removing wsdl anti-pattern root causes in code-first web services: a thorough evaluation of impact on service discoverability. Comput. Stand. Interfaces 56, 116–133 (2017)
Hruschka, E.R., Campello, R.J., Freitas, A., De Carvalho, A.C., et al.: A survey of evolutionary algorithms for clustering. IEEE Trans. Syst. Man Cybern. C Appl. Rev. 39(2), 133–155 (2009)
Kessentini, M., Ouni, A.: Detecting android smells using multi-objective genetic programming. In: International Conference on Mobile Software Engineering and Systems (MobileSoft), pp. 122–132 (2017)
Král, J., Zemlicka, M.: Popular SOA antipatterns. In: Computation World: Future Computing, Service Computation, Cognitive, Adaptive, Content, Patterns, pp. 271–276 (2009)
Landis, J.R., Koch, G.G.: The measurement of observer agreement for categorical data. Biometrics 33(1), 159–174 (1977)
Mancoridis, S., Mitchell, B.S., Rorres, C., Chen, Y.F., Gansner, E.R.: Using automatic clustering to produce high-level system organizations of source code. In: IWPC, vol. 98, pp. 45–52. Citeseer (1998)
Maqbool, O., Babri, H.A.: Hierarchical clustering for software architecture recovery. IEEE Trans. Softw. Eng. 33(11), 759–780 (2007)
Masoud, H., Jalili, S.: A clustering-based model for class responsibility assignment problem in object-oriented analysis. J. Syst. Softw. 93, 110–131 (2014)
Mateos, C., Crasso, M., Rodriguez, J.M., Zunino, A., Campo, M.: Measuring the impact of the approach to migration in the quality of web service interfaces. Enterp. Inf. Syst. 9(1), 58–85 (2015a)
Mateos, C., Rodriguez, J.M., Zunino, A.: A tool to improve code-first web services discoverability through text mining techniques. Softw. Pract. Exp. 45(7), 925–948 (2015b)
Mkaouer, W., Kessentini, M., Shaout, A., Koligheu, P., Bechikh, S., Deb, K., Ouni, A.: Many-objective software remodularization using NSGA-III. ACM Trans. Softw. Eng. Methodol. (TOSEM) 24(3), 17:1–17:45 (2015)
Moha, N., Palma, F., Nayrolles, M., Conseil, B.J., Guéhéneuc, Y.G., Baudry, B., Jézéquel, J.M.: Specification and detection of SOA antipatterns. In: Service-Oriented Computing, pp. 1–16. Springer (2012)
Newcomer, E.: Understanding Web Services: XML Soap, and UDDI. Addison-Wesley Professional, Reading (2002). Wsdl
Ouni, A., Kessentini, M., Sahraoui, H., Boukadoum, M.: Maintainability defects detection and correction: a multi-objective approach. Autom. Softw. Eng. 20(1), 47–79 (2013)
Ouni, A., Gaikovina Kula, R., Kessentini, M., Inoue, K.: Web service antipatterns detection using genetic programming. In: Proceedings of the 2015 on Genetic and Evolutionary Computation Conference, GECCO’15, pp. 1351–1358 (2015a)
Ouni, A., Kessentini, M., Sahraoui, H., Inoue, K., Hamdi, M.S.: Improving multi-objective code-smells correction using development history. J. Syst. Softw. 105, 18–39 (2015b)
Ouni, A., Kessentini, M., Sahraoui, H., Inoue, K., Deb, K.: Multi-criteria code refactoring using search-based software engineering: an industrial case study. ACM Trans. Softw. Eng. Methodol. (TOSEM) 25(3), 23 (2016a)
Ouni, A., Salem, Z., Inoue, K., Soui, M.: SIM: an automated approach to improve web service interface modularization. In: International Conference on Web Services (ICWS), pp. 91–98 (2016b)
Ouni, A., Daagi, M., Kessentini, M., Bouktif, S., Gammoudi, M.M.: A machine learning-based approach to detect web service design defects. In: IEEE International Conference on Web Services (ICWS), pp. 532–539. IEEE (2017a)
Ouni, A., Kessentini, M., Inoue, K., O Cinneide, M.: Search-based web service antipatterns detection. IEEE Trans. Serv. Comput. 10(4), 603–617 (2017b)
Ouni, A., Kessentini, M., Ó Cinnéide, M., Sahraoui, H., Deb, K., Inoue, K.: More: a multi-objective refactoring recommendation approach to introducing design patterns and fixing code smells. J. Softw. Evolut. Process 29(5), e1843 (2017c)
Ouni, A., Wang, H., Kessentini, M., Inoue, K., Bouktif, S.: A hybrid approach for improving the design quality of web service interfaces. ACM Trans. Internet Technol. (TOIT) 19(1), 1–24 (2018)
Paixao, M., Harman, M., Zhang, Y.: Multi-objective Module Clustering for Kate, pp. 282–288. Springer International Publishing, Cham (2015)
Paixao, M., Harman, M., Zhang, Y., Yu, Y.: An empirical study of cohesion and coupling: balancing optimization and disruption. IEEE Trans. Evolut. Comput. 22(3), 394–414 (2018)
Palma, F., Moha, N., Tremblay, G., Guéhéneuc, Y.G.: Specification and detection of SOA antipatterns in web services. In: Avgeriou, P., Zdun, U. (eds.) Software Architecture, pp. 58–73. Springer (2014)
Perepletchikov, M., Ryan, C., Frampton, K.: Cohesion metrics for predicting maintainability of service-oriented software. In: 7th International Conference on Quality Software, pp. 328–335 (2007a)
Perepletchikov, M., Ryan, C., Frampton, K., Tari, Z.: Coupling metrics for predicting maintainability in service-oriented designs. In: 18th Australian Software Engineering Conference, pp. 329–340 (2007b)
Perepletchikov, M., Ryan, C., Frampton, K., Schmidt, H.: Formalising service-oriented design. J. Softw. 3(2), 1–14 (2008)
Perepletchikov, M., Ryan, C., Tari, Z.: The impact of service cohesion on the analyzability of service-oriented software. IEEE Trans. Serv. Comput. 3(2), 89–103 (2010)
Poshyvanyk, D., Marcus, A.: The conceptual coupling metrics for object-oriented systems. In: IEEE International Conference on Software Maintenance (ICSME), pp. 469–478 (2006)
Praditwong, K., Harman, M., Yao, X.: Software module clustering as a multi-objective search problem. IEEE Trans. Softw. Eng. 37(2), 264–282 (2011)
Rodriguez, J.M., Crasso, M., Zunino, A., Campo, M.: Automatically detecting opportunities for web service descriptions improvement. In: Software Services for e-World, pp. 139–150. Springer (2010)
Rodriguez, J.M., Crasso, M., Mateos, C., Zunino, A.: Best practices for describing, consuming, and discovering web services: a comprehensive toolset. Softw. Pract. Exp. 43(6), 613–639 (2013)
Romano, D., Pinzger, M.: Analyzing the evolution of web services using fine-grained changes. In: IEEE International Conference on Web Services (ICWS), pp. 392–399 (2012)
Romano, D., Pinzger, M.: A genetic algorithm to find the adequate granularity for service interfaces. In: 2014 IEEE World Congress on Services (SERVICES), pp. 478–485. IEEE (2014)
Romano, D., Raemaekers, S., Pinzger, M.: Refactoring fat interfaces using a genetic algorithm. In: 2014 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 351–360. IEEE (2014)
Rotem-Gal-Oz, A.: SOA Patterns. Manning Publications, Shelter Island (2012)
Seng, O., Bauer, M., Biehl, M., Pache, G.: Search-based improvement of subsystem decompositions. In: Proceedings of the 7th Annual Conference on Genetic and Evolutionary Computation, pp. 1045–1051. ACM (2005)
Stewart, K.J., Darcy, D.P., Daniel, S.L.: Opportunities and challenges applying functional data analysis to the study of open source software evolution. Stat. Sci. 21, 167–178 (2006)
Torkamani, M.A., Bagheri, H.: A systematic method for identification of anti-patterns in service oriented system development. Int. J. Electr. Comput. Eng. 4(1), 16–23 (2014)
Wang, H., Kessentini, M., Ouni, A.: Interactive refactoring of web service interfaces using computational search. IEEE Trans. Serv. Comput. (TSC) (2018). https://doi.org/10.1109/TSC.2017.2787152
Wen, Z., Tzerpos, V.: An effectiveness measure for software clustering algorithms. In: International Workshop on Program Comprehension, pp. 194–203 (2004)
Zhang, X., Tian, Y., Jin, Y.: A knee point-driven evolutionary algorithm for many-objective optimization. IEEE Trans. Evolut. Comput. 19(6), 761–776 (2015)
Acknowledgements
This work is partially supported by NSERC Discovery Grant (Grant No. RGPIN-2018-05960), and by the Research Start-up (2) 2016 Grant G00002211 funded by UAE University.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Boukharata, S., Ouni, A., Kessentini, M. et al. Improving web service interfaces modularity using multi-objective optimization. Autom Softw Eng 26, 275–312 (2019). https://doi.org/10.1007/s10515-019-00256-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10515-019-00256-4