Approach to anti-pattern detection in service-oriented software systems

Бесплатный доступ

A service-based approach is a method to develop and integrate program products in a modular manner where each component is available through any net and has the possibility of being dynamically collaborated with other services of the system at run time. That approach is becoming widely adopted in industry of software engineering because it allows the implementation of distributed systems characterized by high quality. Quality attributes can be about the system (e.g., availability, modifiability), business-related aspects (e.g., time to market) or about the architecture (e.g., correctness, consistency). Maintaining quality-attributes on a high level is critical issue because service-based systems lack central control and authority, have limited end-to-end visibility of services, are subject to unpredictable usage scenarios and support dynamic system composition. The constant evolution in systems can easily deteriorate the overall architecture of the system and thus bad design choices, known as anti-patterns, may appear. These are the patterns to be avoided. If we study them and are able to recognize them, then we should be able to avoid them. Knowing bad practices is perhaps as valuable as knowing good practices. With this knowledge, we can re-factor the solution in case we are heading towards an anti-pattern. As with patterns, anti-pattern catalogues are also available. In case of continues evolution of systems, it is metric-based techniques that can be applied to obtain valuable, factual insights into how services work. Given the clear negative impact of anti-patterns, there is a clear and urgent need for techniques and tools to detect them. The article will focus on rules to recognize symptoms of anti-patterns in service-based environment, automated approaches to detection and applying metric-based techniques to this analysis.

Еще

Service based systems, anti-patterns, specification and detection, software quality, quality of service (qos)

Короткий адрес: https://sciup.org/14916348

IDR: 14916348   |   DOI: 10.15514/ISPRAS-2016-28(2)-5

Список литературы Approach to anti-pattern detection in service-oriented software systems

  • T. Erl, Service-Oriented Architecture: Concepts, Technology, and Design. Prentice Hall PTR, August 2005.
  • G. Farrow. SOA antipatterns: When the SOA paradigm breaks//IBM Developer Works . Available: http://www.ibm.com/developerworks/library/wa-soa_antipattern/
  • M. Nayrolles; N. Moha; P. Valtchev. Improving SOA Antipatterns Detection in Service Based Systems by Mining Execution Traces in Proceedings of the 20th Working Conference on Reverse Engineering (WCRE'13), pp. 321-330, IEEE, 2013.
  • N. Moha, F. Palma, M. Nayrolles, B. J. Conseil, Y.-G. Gúeh́eneuc, B. Baudry, J.-M. J́eźequel. Specification and Detection of SOA Antipatterns. In International Conference on Service-Oriented Computing (ICSOC). Pp. 1-16. 2012
  • F. Khomh, M. D. Penta, Y.-G. Gúeh́eneuc, G. Antoniol. An exploratory study of the impact of antipatterns on class change-and fault-proneness. Empirical Software Engineering 17(3):243-275, 2012.
  • D. Arcelli, V. Cortellessa, C. Trubiani. Experimenting the Influence of Numerical Thresholds on Model-based Detection and Refactoring of Performance Antipatterns. ECEASST 59 (2013).
  • M. Kessentini, S. Vaucher, and H. Sahraoui. “Deviance From Perfection is a Better Criterion Than Closeness To Evil When Identifying Risky Code” in Proceedings of the IEEE/ACM ASE. ACM, 2010, pp. 113-122.
  • M. Lanza and R. Marinescu, Object-Oriented Metrics in Practice. Springer-Verlag, 2006.
  • A. Rotem-Gal-Oz, SOA Patterns, 1st ed. Manning Pubblications, 2012.
  • J. Kr´al and M. Zemlicka, “The most important service-oriented antipatterns,” in ICSEA, 2007, p. 29.
  • L. Cherbakov, M. Ibrahim, and J. Ang, “Soa antipatterns: the obstacles to the adoption and successful re-alization of service-oriented architecture”.
  • B. Dudney, J. Krozak, K. Wittkopf, S. Asbury, and D. Osborne, J2EE Antipatterns, 1st ed. New York, NY, USA: John Wiley & Sons, Inc., 2002
  • T. DeMarco. Controlling Software Projects: Management, Measurement and Estimation. Yourdan Press, New Jersey, 1982.
  • D. Card and R. Glass. Measure Software Design Quality. Prentice-Hall, NJ, 1990.
  • P.G. Hoel. Introduction to Mathematical Statistics. Wiley, 1954.
  • R. Marinescu. Detection strategies: Metrics-based rules for detecting design flaws. In Proceedings of the 20th IEEE International Conference on Software Maintenance (ICSM’04). Los Alamitos CA: IEEE Computer Society Press, 2004, pp. 350-359.
  • N. Fenton and S.L. Pfleeger. Software Metrics: A Rigorous and Practical Approach. International Thomson Computer Press, London, UK, second edition, 1997.
  • A.J. Riel. Object-Oriented Design Heuristics. Addison-Wesley, 1996.
  • S. R. Chidamber and C. F. Kemerer. A Metric Suite for Object-Oriented Design. IEEE Transactions on Software Engineering, 20(6):476-493, June 1994.
  • T.J. McCabe. A Complexity Measure. IEEE Transactions on Software Engineering, 2(4):308-320, dec 1976.
  • J.M. Bieman and B.K. Kang. Cohesion and Reuse in an Object-Oriented System. Proc. ACM Symposium on Software Reusability, apr 1995.
  • R. Marinescu. Detecting Design Flaws via Metrics in Object-Oriented Systems. In Proceedings of TOOLS USA 2001, pages 103-116. IEEE Computer Society, 2001.
  • E. Casais. State-of-the-art in Re-engineering Methods. achievement report SOAMET-A1.3.1, FAMOOS, October 1996.
  • A. Trifu. Using Cluster Analysis in the Architecture Recovery of OO Legacy Systems. Diploma Thesis, Karlsruhe and the ”Politehnica” University Timis¸oara, 2001
Еще
Статья научная