Preventing erosion in exception handling design using static-architecture conformance checking
2017 (English)In: Lecture Notes Computer Science / [ed] Rogerio de Lemos R.,Lopes A., Springer Verlag , 2017, Vol. 10475, p. 67-83Conference paper, Published paper (Refereed)
Abstract [en]
Exception handling is a common error recovery technique employed to improve software robustness. However, studies have reported that exception handling is commonly neglected by developers and is the least understood and documented part of a software project. The lack of documentation and difficulty in understanding the exception handling design can lead developers to violate important design decisions, triggering an erosion process in the exception handling design. Architectural conformance checking provides means to control the architectural erosion by periodically checking if the actual architecture is consistent with the planned one. Nevertheless, available approaches do not provide a proper support for exception handling conformance checking. To fulfill this gap, we propose ArCatch: an architectural conformance checking solution to deal with the exception handling design erosion. ArCatch provides: (i) a declarative language for expressing design constraints regarding exception handling; and (ii) a design rule checker to automatically verify the exception handling conformance. To evaluate the usefulness and effectiveness of our approach, we conducted a case study, in which we evaluated an evolution scenario composed by 10 versions of an existing web-based Java system. Each version was checked against the same set of exception handling design rules. Based on the results and the feedback given by the system’s architect, the ArCatch proved useful and effective in the identification of existing exception handling erosion problems and locating its causes in the source code. © 2017, Springer International Publishing AG.
Place, publisher, year, edition, pages
Springer Verlag , 2017. Vol. 10475, p. 67-83
Keywords [en]
Architecture conformance checking, Exception handling design, Exception handling erosion, Software architecture, Conformance checking, Declarative Languages, Design constraints, Design decisions, Design rule checker, Exception handling, Software robustness, Static architecture, Erosion
National Category
Software Engineering
Identifiers
URN: urn:nbn:se:bth-15220DOI: 10.1007/978-3-319-65831-5_5ISI: 000455330300005Scopus ID: 2-s2.0-85028990770ISBN: 9783319658308 (print)OAI: oai:DiVA.org:bth-15220DiVA, id: diva2:1145517
Conference
11th European Conference on Software Architecture, ECSA, Canterbury
2017-09-292017-09-292019-06-27Bibliographically approved