Skip to main content

Preventing Erosion in Exception Handling Design Using Static-Architecture Conformance Checking

  • Conference paper
  • First Online:
Book cover Software Architecture (ECSA 2017)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 10475))

Included in the following conference series:

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    https://github.com/lincolnrocha/ArCatch.

  2. 2.

    https://github.com/joaoarthurbm/designwizard.

  3. 3.

    https://docs.oracle.com/javase/7/docs/jdk/api/javac/tree/.

  4. 4.

    http://ptolemy.cs.iastate.edu/design-study/#healthwatcher.

  5. 5.

    The symbol “\w” represents a word character: [a-zA-Z_0-9].

  6. 6.

    http://www.oracle.com/technetwork/java/patterns-139816.html.

  7. 7.

    https://github.com/juarezmeneses/ArCatchExperiment.

References

  1. Barbosa, E.A., Garcia, A., Robillard, M.P., Jakobus, B.: Enforcing exception handling policies with a domain-specific language. IEEE Trans. Softw. Eng. 42(6), 559–584 (2016)

    Article  Google Scholar 

  2. Brunet, J., Guerrero, D., Figueiredo, J.: Design tests: an approach to programmatically check your code against design rules. In: 31st International Conference on Software Engineering, pp. 255–258, May 2009

    Google Scholar 

  3. Cacho, N., Barbosa, E.A., Araujo, J., Pranto, F., Garcia, A., Cesar, T., Soares, E., Cassio, A., Filipe, T., Garcia, I.: How does exception handling behavior evolve? an exploratory study in Java and C# applications. In: ICSME 2014, pp. 31–40. IEEE (2014)

    Google Scholar 

  4. Cacho, N., César, T., Filipe, T., Soares, E., Cassio, A., Souza, R., Garcia, I., Barbosa, E.A., Garcia, A.: Trading robustness for maintainability: an empirical study of evolving c# programs. In: Proceedings of the 36th International Conference on Software Engineering, ICSE 2014, pp. 584–595 (2014)

    Google Scholar 

  5. Caracciolo, A., Lungu, M., Nierstrasz, O.: A unified approach to architecture conformance checking. In: Proceedings of the 12th Working IEEE/IFIP Conference on Software Architecture (WICSA), pp. 41–50. ACM Press, May 2015

    Google Scholar 

  6. Chang, B.M., Choi, K.: A review on exception analysis. Inf. Softw. Technol. 77(C), 1–16 (2016)

    Article  Google Scholar 

  7. Ebert, F., Castor, F., Serebrenik, A.: An exploratory study on exception handling bugs in java programs. J. Syst. Softw. 106(C), 82–101 (2015)

    Article  Google Scholar 

  8. Eichberg, M., Kloppenburg, S., Klose, K., Mezini, M.: Defining and continuous checking of structural program dependencies. In: Proceedings of the 30th International Conference on Software Engineering, ICSE 2008, pp. 391–400. ACM (2008)

    Google Scholar 

  9. Ferrari, F., Burrows, R., Lemos, O., Garcia, A., Figueiredo, E., Cacho, N., Lopes, F., Temudo, N., Silva, L., Soares, S., Rashid, A., Masiero, P., Batista, T., Maldonado, J.: An exploratory study of fault-proneness in evolving aspect-oriented programs. In: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering, ICSE 2010, pp. 65–74. ACM, New York (2010)

    Google Scholar 

  10. Garcia, A.F., Rubira, C.M., Romanovsky, A., Xu, J.: A comparative study of exception handling mechanisms for building dependable object-oriented software. J. Syst. Softw. 59(2), 197–222 (2001)

    Article  Google Scholar 

  11. Gurgel, A., Macia, I., Garcia, A., Staa, A., Mezini, M., Eichberg, M., Mitschke, R.: Blending and reusing rules for architectural degradation prevention. In: Proceedings of the 13th International Conference on Modularity, pp. 61–72. ACM (2014)

    Google Scholar 

  12. van Gurp, J., Bosch, J.: Design erosion: problems and causes. J. Syst. Softw. 61(2), 105–119 (2002)

    Article  Google Scholar 

  13. Kechagia, M., Spinellis, D.: Undocumented and unchecked: exceptions that spell trouble. In: Proceedings of the 11th Working Conference on Mining Software Repositories, MSR 2014, pp. 312–315. ACM, New York (2014)

    Google Scholar 

  14. Lee, P.A., Anderson, T.: Fault Tolerance: Principles and Practice. Dependable Computing and Fault-Tolerant Systems, 2 edn., vol. 3. Springer, Wien (1990)

    Google Scholar 

  15. Moor, O.d., Verbaere, M., Hajiyev, E., Avgustinov, P., Ekman, T., Ongkingco, N., Sereni, D., Tibble, J.: Keynote address: .ql for source code analysis. In: SCAM 2007, pp. 3–16. IEEE Computer Society, Washington, DC (2007)

    Google Scholar 

  16. Oizumi, W.N., Garcia, A.F., Colanzi, T.E., Ferreira, M., Staa, A.V.: On the relationship of code-anomaly agglomerations and architectural problems. J. Softw. Eng. Res. Dev. 3(1), 1–22 (2015)

    Article  Google Scholar 

  17. Passos, L., Terra, R., Valente, M., Diniz, R., Mendonça, N.C.: Static architecture-conformance checking: an illustrative overview. IEEE Softw. 27(5), 82–89 (2010)

    Article  Google Scholar 

  18. Runeson, P., Höst, M., Rainer, A., Regnell, B.: Case Study Research in Software Engineering: Guidelines and Examples. Wiley, Hoboken (2012)

    Book  Google Scholar 

  19. Shah, H., Gorg, C., Harrold, M.J.: Understanding exception handling: viewpoints of novices and experts. IEEE Trans. Softw. Eng. 36(2), 150–161 (2010)

    Article  Google Scholar 

  20. de Silva, L., Balasubramaniam, D.: Controlling software architecture erosion: a survey. J. Syst. Softw. 85(1), 132–151 (2012)

    Article  Google Scholar 

  21. Soares, S., Laureano, E., Borba, P.: Implementing distribution and persistence aspects with aspectj. In: OOPSLA 2002, pp. 174–190. ACM, New York (2002)

    Google Scholar 

  22. Terra, R., Valente, M.T.: A dependency constraint language to manage object-oriented software architectures. Softw. Pract. Exper. 39(12), 1073–1094 (2009)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Lincoln Rocha .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

Filho, J.L.M., Rocha, L., Andrade, R., Britto, R. (2017). Preventing Erosion in Exception Handling Design Using Static-Architecture Conformance Checking. In: Lopes, A., de Lemos, R. (eds) Software Architecture. ECSA 2017. Lecture Notes in Computer Science(), vol 10475. Springer, Cham. https://doi.org/10.1007/978-3-319-65831-5_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-65831-5_5

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-65830-8

  • Online ISBN: 978-3-319-65831-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics