Specification and Detection of SOA Antipatterns

  • Naouel Moha
  • Francis Palma
  • Mathieu Nayrolles
  • Benjamin Joyen Conseil
  • Yann-Gaël Guéhéneuc
  • Benoit Baudry
  • Jean-Marc Jézéquel
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7636)


Like any other complex software system, Service Based Systems (SBSs) must evolve to fit new user requirements and execution contexts. The changes resulting from the evolution of SBSs may degrade their design and quality of service (QoS) and may often cause the appearance of common poor solutions, called Antipatterns. Antipatterns resulting from these changes also hinder the future maintenance and evolution of SBSs. The automatic detection of antipatterns is thus important to assess the design and QoS of SBSs and ease their maintenance and evolution. However, methods and techniques for the detection of antipatterns in SBSs are still in their infancy despite their importance. In this paper, we introduce a novel and innovative approach supported by a framework for specifying and detecting antipatterns in SBSs. Using our approach, we specify 10 well-known and common antipatterns, including Multi Service and Tiny Service, and we automatically generate their detection algorithms. We apply and validate the detection algorithms in terms of precision and recall on Home-Automation, an SBS developed independently. This validation demonstrates that our approach enables the specification and detection of SOA antipatterns with the precision of more than 90% and the recall of 100%.


Antipatterns Service based systems Specification Detection Quality of service Design Software evolution and maintenance 


  1. 1.
    Bart Du Bois, J.V., Demeyer, S.: Refactoring - Improving Coupling and Cohesion of Existing Code. In: Proceedings of the 11th IEEE Working Conference on Reverse Engineering, pp. 144–151 (2004)Google Scholar
  2. 2.
    Brown, W., Malveau, R., McCormick III, H., Mowbray, T.: Anti Patterns: Refactoring Software, Architectures, and Projects in Crisis. John Wiley and Sons (1998)Google Scholar
  3. 3.
    Chambers, J., Cleveland, W., Tukey, P., Kleiner, B.: Graphical methods for data analysis. Wadsworth International (1983)Google Scholar
  4. 4.
    Cherbakov, L., Ibrahim, M., Ang, J.: SOA Antipatterns: The Obstacles to the Adoption and Successful Realization of Service-Oriented Architecture,
  5. 5.
    Consel, C., Marlet, R.: Architecturing Software Using a Methodology for Language Development. In: Palamidessi, C., Meinke, K., Glaser, H. (eds.) ALP 1998 and PLILP 1998. LNCS, vol. 1490, pp. 170–194. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  6. 6.
    Daigneau, R.: Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services. Addison-Wesley (November 2011)Google Scholar
  7. 7.
    Dudney, B., Asbury, S., Krozak, J., Wittkopf, K.: J2EE AntiPatterns. John Wiley & Sons Inc. (2003)Google Scholar
  8. 8.
    Erl, T.: Service-Oriented Architecture: Concepts, Technology, and Design. Prentice Hall PTR (2005)Google Scholar
  9. 9.
    Erl, T.: SOA Design Patterns. Prentice Hall PTR (2009)Google Scholar
  10. 10.
    Fowler, M.J., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison-Wesley (1999)Google Scholar
  11. 11.
    Frakes, W.B., Baeza-Yates, R.A. (eds.): Information Retrieval: Data Structures & Algorithms. Prentice-Hall (1992)Google Scholar
  12. 12.
    Galaxy INRIA: The French National Institute for Research in Computer Science and Control,
  13. 13.
  14. 14.
    Kessentini, M., Vaucher, S., Sahraoui, H.: Deviance From Perfection is a Better Criterion Than Closeness To Evil When Identifying Risky Code. In: Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, ASE 2010, pp. 113–122. ACM, New York (2010)CrossRefGoogle Scholar
  15. 15.
    Král, J., Žemlička, M.: Crucial Service-Oriented Antipatterns, vol. 2, pp. 160–171. International Academy, Research and Industry Association, IARIA (2008)Google Scholar
  16. 16.
    Lanza, M., Marinescu, R.: Object-Oriented Metrics in Practice. Springer (2006)Google Scholar
  17. 17.
    Modi, T.: SOA Management: SOA Antipatterns,
  18. 18.
    Moha, N., Sen, S., Faucher, C., Barais, O., Jézéquel, J.M.: Evaluation of Kermeta for Solving Graph-based Problems. Journal on Software Tools for Technology Transfer 12(3-4), 273–285 (2010)CrossRefGoogle Scholar
  19. 19.
    Munro, M.J.: Product Metrics for Automatic Identification of “Bad Smell” Design Problems in Java Source-Code. In: Proceedings of the 11th International Software Metrics Symposium. IEEE Computer Society Press (September 2005)Google Scholar
  20. 20.
    Open SOA: SCA Service Component Architecture - Assembly Model Specification, version 1.00 (March 2007),
  21. 21.
    Parsons, T., Murphy, J.: Detecting Performance Antipatterns in Component Based Enterprise Systems. Journal of Object Technology 7(3), 55–90 (2008)CrossRefGoogle Scholar
  22. 22.
    Rotem-Gal-Oz, A., Bruno, E., Dahan, U.: SOA Patterns. Manning Publications Co. (2012), to be published in Summer 2012Google Scholar
  23. 23.
    Seinturier, L., Merle, P., Fournier, D., Schiavoni, V., Demarey, C., Dolet, N., Petitprez, N.: FraSCAti - Open SCA Middleware Platform v1.4,
  24. 24.
    Settas, D.L., Meditskos, G., Stamelos, I.G., Bassiliades, N.: SPARSE: A symptom-based antipattern retrieval knowledge-based system using Semantic Web technologies. Expert Systems with Applications 38(6), 7633–7646 (2011)CrossRefGoogle Scholar
  25. 25.
    Simon, F., Steinbruckner, F., Lewerentz, C.: Metrics Based Refactoring. In: Proceedings of the 5th European Conference on Software Maintenance and Reengineering, pp. 14–16 (March 2001)Google Scholar
  26. 26.
    Trifu, A., Dragos, I.: Strategy-Based Elimination of Design Flaws in Object-Oriented Systems. In: Proceedings of the 4th International Workshop on Object-Oriented Reengineering. Universiteit Antwerpen (July 2003)Google Scholar
  27. 27.
    Wong, S., Aaron, M., Segall, J., Lynch, K., Mancoridis, S.: Reverse Engineering Utility Functions Using Genetic Programming to Detect Anomalous Behavior in Software. In: Proceedings of the 2010 17th Working Conference on Reverse Engineering, WCRE 2010, pp. 141–149. IEEE Computer Society, Washington, DC (2010)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Naouel Moha
    • 1
  • Francis Palma
    • 1
    • 2
  • Mathieu Nayrolles
    • 1
    • 3
  • Benjamin Joyen Conseil
    • 1
    • 3
  • Yann-Gaël Guéhéneuc
    • 2
  • Benoit Baudry
    • 4
  • Jean-Marc Jézéquel
    • 4
  1. 1.Département d’informatiqueUniversité du Québec à MontréalCanada
  2. 2.Ptidej Team, DGIGLÉcole Polytechnique de MontréalCanada
  3. 3.École Supérieur en Informatique AppliquéeFrance
  4. 4.INRIA Rennes, Université Rennes 1France

Personalised recommendations