Studying the evolution of exception handling anti-patterns in a long-lived large-scale project
- 1. Universidade Federal do Ceará
- 2. Universidade Estadual do Ceará
Description
Abstract Exception handling is a well-known technique used to improve software robustness. However, recent studies report that developers typically neglect exception handling (mostly novice ones). We believe the quality of exception handling code in a software project is directly affected (i) by the absence, or lack of awareness, of an explicit exception handling policy and guidelines and (ii) by a silent rising of exception handling anti-patterns. In this paper, we investigate this phenomenon in a case study of a long-lived large-scale Java Web system in a Public Education Institution, trying to better understand the relationship between (i) and (ii), and the impact of developers' turnover, skills, and guidance in (ii). Our case study takes into account the technical and human aspects. As a first step, we surveyed 21 developers regarding their perception of exception handling in the system's institution. Next, we analysed the evolution of exception handling anti-patterns across 15 releases of the target system. We conducted a semi-structured interview with three senior software engineers, representatives of the development team, to present partial results of the case and raise possible causes for the found problems. The interviewed professionals and a second analysis of the code identified the high team turnover as the source of this phenomenon, since the public procurement process for hiring new developers has mostly attracted novice ones. These findings suggest that the absence of an explicit exception handling policy impacts negatively in the developers' perception and implementation of exception handling. Furthermore, the absence of such policy has been leading developers to replicate existing anti-patterns and spread them through new features added during system evolution. We also observed that most developers have low skills regarding exception handling in general and low knowledge regarding the design and implementation of exception handling in the system. The system maintainer now has a diagnosis of the major causes of the quality problems in the exception handling code and was able to lead the required measures to repair this technical debt.
Translated Descriptions
Translated Description (Arabic)
معالجة الاستثناءات المجردة هي تقنية معروفة تستخدم لتحسين متانة البرامج. ومع ذلك، تشير الدراسات الحديثة إلى أن المطورين عادة ما يهملون التعامل مع الاستثناءات (معظمها من المبتدئين). نعتقد أن جودة كود التعامل مع الاستثناءات في مشروع برمجي تتأثر بشكل مباشر (1) بغياب أو نقص الوعي بسياسة وإرشادات صريحة للتعامل مع الاستثناءات و (2) بالارتفاع الصامت للاستثناءات التي تتعامل مع الأنماط المضادة. في هذه الورقة، نقوم بالتحقيق في هذه الظاهرة في دراسة حالة لنظام ويب جافا واسع النطاق طويل الأجل في مؤسسة تعليمية عامة، في محاولة لفهم العلاقة بين (1) و (2) بشكل أفضل، وتأثير دوران المطورين ومهاراتهم وإرشاداتهم في (2). تأخذ دراسة الحالة الخاصة بنا في الاعتبار الجوانب الفنية والبشرية. كخطوة أولى، قمنا بمسح 21 مطورًا فيما يتعلق بتصورهم للتعامل مع الاستثناءات في مؤسسة النظام. بعد ذلك، قمنا بتحليل تطور أنماط التعامل مع الاستثناءات عبر 15 إصدارًا من النظام المستهدف. أجرينا مقابلة شبه منظمة مع ثلاثة من كبار مهندسي البرمجيات، وممثلي فريق التطوير، لعرض النتائج الجزئية للقضية وإثارة الأسباب المحتملة للمشاكل التي تم العثور عليها. حدد المهنيون الذين تمت مقابلتهم وتحليل ثانٍ للمدونة ارتفاع معدل دوران الفريق كمصدر لهذه الظاهرة، لأن عملية المشتريات العامة لتوظيف مطورين جدد جذبت في الغالب المطورين المبتدئين. تشير هذه النتائج إلى أن عدم وجود سياسة واضحة للتعامل مع الاستثناءات يؤثر سلبًا على تصور المطورين وتنفيذ التعامل مع الاستثناءات. علاوة على ذلك، أدى عدم وجود مثل هذه السياسة إلى دفع المطورين إلى تكرار الأنماط المضادة الحالية ونشرها من خلال ميزات جديدة تمت إضافتها أثناء تطور النظام. كما لاحظنا أن معظم المطورين لديهم مهارات منخفضة فيما يتعلق بالتعامل مع الاستثناءات بشكل عام ومعرفة منخفضة فيما يتعلق بتصميم وتنفيذ التعامل مع الاستثناءات في النظام. لدى مشرف النظام الآن تشخيص للأسباب الرئيسية لمشاكل الجودة في رمز معالجة الاستثناء وتمكن من قيادة التدابير المطلوبة لإصلاح هذا الدين الفني.Translated Description (French)
La gestion des exceptions abstraites est une technique bien connue utilisée pour améliorer la robustesse des logiciels. Cependant, des études récentes rapportent que les développeurs négligent généralement la gestion des exceptions (principalement les novices). Nous pensons que la qualité du code de gestion des exceptions dans un projet logiciel est directement affectée (i) par l'absence ou la méconnaissance d'une politique et de directives explicites de gestion des exceptions et (ii) par une augmentation silencieuse des anti-motifs de gestion des exceptions. Dans cet article, nous étudions ce phénomène dans une étude de cas d'un système Web Java à grande échelle de longue durée dans un établissement d'enseignement public, en essayant de mieux comprendre la relation entre (i) et (ii), et l'impact du chiffre d'affaires, des compétences et de l'orientation des développeurs dans (ii). Notre étude de cas prend en compte les aspects techniques et humains. Dans un premier temps, nous avons interrogé 21 développeurs concernant leur perception de la gestion des exceptions dans l'institution du système. Ensuite, nous avons analysé l'évolution des anti-motifs de gestion des exceptions dans 15 versions du système cible. Nous avons mené un entretien semi-structuré avec trois ingénieurs logiciels seniors, représentants de l'équipe de développement, pour présenter les résultats partiels du cas et soulever les causes possibles des problèmes constatés. Les professionnels interrogés et une deuxième analyse du code ont identifié le taux de rotation élevé de l'équipe comme la source de ce phénomène, puisque le processus de passation des marchés publics pour l'embauche de nouveaux développeurs a surtout attiré les novices. Ces résultats suggèrent que l'absence d'une politique explicite de gestion des exceptions a un impact négatif sur la perception et la mise en œuvre de la gestion des exceptions par les développeurs. En outre, l'absence d'une telle politique a conduit les développeurs à reproduire les anti-motifs existants et à les diffuser grâce à de nouvelles fonctionnalités ajoutées au cours de l'évolution du système. Nous avons également observé que la plupart des développeurs ont de faibles compétences en matière de gestion des exceptions en général et de faibles connaissances en ce qui concerne la conception et la mise en œuvre de la gestion des exceptions dans le système. Le responsable de la maintenance du système a maintenant un diagnostic des principales causes des problèmes de qualité dans le code de gestion des exceptions et a été en mesure de prendre les mesures nécessaires pour réparer cette dette technique.Translated Description (Spanish)
El manejo de excepciones es una técnica bien conocida que se utiliza para mejorar la robustez del software. Sin embargo, estudios recientes informan que los desarrolladores generalmente descuidan el manejo de excepciones (en su mayoría novatos). Creemos que la calidad del código de manejo de excepciones en un proyecto de software se ve directamente afectada (i) por la ausencia, o falta de conocimiento, de una política y pautas explícitas de manejo de excepciones y (ii) por un aumento silencioso de los antipatrones de manejo de excepciones. En este documento, investigamos este fenómeno en un estudio de caso de un sistema web Java a gran escala de larga duración en una institución de educación pública, tratando de comprender mejor la relación entre (i) y (ii), y el impacto de la rotación, las habilidades y la orientación de los desarrolladores en (ii). Nuestro estudio de caso tiene en cuenta los aspectos técnicos y humanos. Como primer paso, encuestamos a 21 desarrolladores con respecto a su percepción del manejo de excepciones en la institución del sistema. A continuación, analizamos la evolución de los antipatrones de manejo de excepciones en 15 versiones del sistema objetivo. Realizamos una entrevista semiestructurada con tres ingenieros senior de software, representantes del equipo de desarrollo, para presentar resultados parciales del caso y plantear posibles causas de los problemas encontrados. Los profesionales entrevistados y un segundo análisis del código identificaron la alta rotación del equipo como la fuente de este fenómeno, ya que el proceso de contratación pública para la contratación de nuevos desarrolladores ha atraído principalmente a los novatos. Estos hallazgos sugieren que la ausencia de una política explícita de manejo de excepciones tiene un impacto negativo en la percepción y la implementación del manejo de excepciones por parte de los desarrolladores. Además, la ausencia de dicha política ha llevado a los desarrolladores a replicar los antipatrones existentes y difundirlos a través de nuevas características añadidas durante la evolución del sistema. También observamos que la mayoría de los desarrolladores tienen pocas habilidades con respecto al manejo de excepciones en general y poco conocimiento con respecto al diseño e implementación del manejo de excepciones en el sistema. El mantenedor del sistema ahora tiene un diagnóstico de las principales causas de los problemas de calidad en el código de manejo de excepciones y pudo liderar las medidas necesarias para reparar esta deuda técnica.Files
s13173-019-0095-5.pdf.pdf
Files
(2.7 MB)
Name | Size | Download all |
---|---|---|
md5:52ea4c2e2b56c25d534125b0ddd6b1fb
|
2.7 MB | Preview Download |
Additional details
Additional titles
- Translated title (Arabic)
- دراسة تطور التعامل مع الاستثناءات المضادة للأنماط في مشروع واسع النطاق طويل الأمد
- Translated title (French)
- Étudier l'évolution de la gestion des exceptions anti-motifs dans un projet à grande échelle de longue durée
- Translated title (Spanish)
- Estudiar la evolución de los antipatrones de manejo de excepciones en un proyecto a gran escala de larga duración
Identifiers
- Other
- https://openalex.org/W3003475971
- DOI
- 10.1186/s13173-019-0095-5
References
- https://openalex.org/W1497968831
- https://openalex.org/W1766684615
- https://openalex.org/W1965716942
- https://openalex.org/W1975675278
- https://openalex.org/W1976701842
- https://openalex.org/W1984745412
- https://openalex.org/W1993306785
- https://openalex.org/W2051846789
- https://openalex.org/W2054223060
- https://openalex.org/W2057950829
- https://openalex.org/W2069105920
- https://openalex.org/W2070989752
- https://openalex.org/W2073465826
- https://openalex.org/W2086186328
- https://openalex.org/W2101198558
- https://openalex.org/W2104397765
- https://openalex.org/W2132290529
- https://openalex.org/W2140504739
- https://openalex.org/W2158092986
- https://openalex.org/W2159272071
- https://openalex.org/W2296614319
- https://openalex.org/W2343396275
- https://openalex.org/W2346905899
- https://openalex.org/W2404093817
- https://openalex.org/W2507892089
- https://openalex.org/W2514614919
- https://openalex.org/W2523182588
- https://openalex.org/W2567218412
- https://openalex.org/W2599922639
- https://openalex.org/W2604027937
- https://openalex.org/W2606075822
- https://openalex.org/W2638101844
- https://openalex.org/W2734320917
- https://openalex.org/W2765815475
- https://openalex.org/W2883938703
- https://openalex.org/W2891784660
- https://openalex.org/W2895409919
- https://openalex.org/W4233152543