Abstract
It is usually assumed that the implementation of exception handling can be better modularized by the use of aspect-oriented programming (AOP). However, the trade-offs involved in using AOP with this goal are not yet well-understood. To the best of our knowledge, no work in the literature has attempted to assess whether AOP really promotes an enhancement in well-understood quality attributes other than separation of concerns, when used for modularizing non-trivial exception handling code. This paper presents a quantitative study of the adequacy of aspects for modularizing exception handling code. The study consisted in refactoring part of a real object-oriented system so that the code responsible for handling exceptions was moved to aspects. We employed a suite of metrics to measure quality attributes of the original and refactored systems, including coupling, cohesion, and conciseness. We found that AOP improved separation of concerns between exception handling code and normal application code. However, contradicting the general intuition, the aspect-oriented version of the system did not present significant gains for any of the four size metrics we employed.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Anderson, T., Lee, P.A.: Fault Tolerance: Principles and Practice, 2nd edn. Springer, Heidelberg (1990)
Cacho, N., Sant’Anna, C., Figueiredo, E., Garcia, A., Batista, T., Lucena, C.: Composing design patterns: A scalability study of aspect-oriented programming. In: Proceedings of the ACM Conference on Aspect-Oriented Software Development (AOSD 2006), Bonn, Germany (March 2006)
Campbell, R.H., Randell, B.: Error recovery in asynchronous systems. IEEE Transactions on Software Engineering SE-12(8), 811–826 (1986)
Filho, F.C., de Guerra, P.A.C., Pagano, V.A., Rubira, C.M.F.: A systematic approach for structuring exception handling in robust component-based software. Journal of the Brazilian Computer Society 10(3), 5–19 (2005)
Filho, F.C., et al.: Exceptions and aspects: The devil is in the details. Technical Report IC-06-08, State University of Campinas, Brazil (2006)
Filho, F.C., Rubira, C.M.F.: Implementing coordinated error recovery for distributed object-oriented systems with AspectJ. Journal of Universal Computer Science 10(7), 843–858 (2004)
Chidamber, S., Kemerer, C.: A metrics suite for oo design. IEEE Transactions on Software Engineering 20(6), 476–493 (1994)
Fenton, N., Pfleeger, S.L.: Software Metrics: A Rigorous Practical Approach. PWS (1997)
Filman, R., Friedman, D.: Aspect-oriented programming is quantification and obliviousness. In: Proceedings of the Workshop on Advanced Separation of Concerns, OOPSLA 2000 (October 2000)
Frader, P., Südolt, M.: An aspect language for robust programming. In: Proceedings of the ECOOP 1999 Workshop on Aspect-Oriented Programming, Lisbon, Portugal (June 1999)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Software Systems. Addison-Wesley, Reading (1995)
Garcia, A., Sant’Anna, C., Chavez, C., Silva, V., Lucena, C., von Staa, A.: Separation of concerns in multi-agent systems: An empirical study. In: Lucena, C., Garcia, A., Romanovsky, A., Castro, J., Alencar, P.S.C. (eds.) SELMAS 2003. LNCS, vol. 2940, pp. 49–72. Springer, Heidelberg (2004)
Garcia, A., Sant’Anna, C., Figueiredo, E., Kulesza, U., Lucena, C., von Staa, A.: Modularizing design patterns with aspects: A quantitative study. In: Proceedings of the 4th ACM Conference on Aspect-Oriented Software Development, Chicago, IL, USA, pp. 3–14 (March 2005)
Godil, I., Jacobsen, H.: Horizontal decomposition of prevlayer. In: Proceedings of CASCON 2005. Richmond Hill, Canada (2005)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Kienzle, J., Guerraoui, R.: Aop: Does it make sense? the case of concurrency and failures. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 37–61. Springer, Heidelberg (2002)
Kulesza, U., Sant’Anna, C., Garcia, A., Lucena, C.: Aspectization of persistence and distribution: Quantifying the effects of aop. In: 5th ACM/IEEE International Symposium on Empirical Software Engineering, Rio de Janeiro, Brazil (2006)
Laddad, R.: AspectJ in Action. Manning (2003)
Lippert, M., Lopes, C.V.: A study on exception detection and handling using aspect-oriented programming. In: Proceedings of the 22nd International Conference on Software Engineering (ICSE 2000), Limerick, Ireland, pp. 418–427 (June 2000)
Monteiro, M.P., Fernandes, J.M.: Towards a catalog of aspect-oriented refactorings. In: Proceedings of AOSD 2005, pp. 111–122 (March 2005)
Murphy, G., Walker, R., Baniassad, E., Robillard, M., Kersten, M.: Does aspect-oriented programming work? Communications of the ACM 44(10), 75–77 (2001)
Rajan, H., Sullivan, K.: Eos: Instance-level aspects for integrated system design. In: Proceedings of Joint European Conference on Software Engineering/SIGSOFT Symposium on Foundations of Software Engineering (ESEC/FSE 2003), Helsinki, Finland (September 2003)
Sant’Anna, C., Garcia, A., Chavez, C., Lucena, C., von Staa, A.: On the reuse and maintanance of aspect-oriented software: An assessment framework. In: Proceedings of the 17th Brazilian Symposium on Software Engineering, pp. 19–34 (October 2003)
Soares, S.: An Aspect-Oriented Implementation Method. PhD thesis, Federal University of Pernambuco, Recife, Brazil (2004)
Soares, S., Laureano, E., Borba, P.: Implementing distribution and persistence aspects with aspectj. In: Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2002), Seattle, USA, pp. 174–190 (November 2002)
Sullivan, K.J., Griswold, W.G., Song, Y., Cai, Y., Shonle, M., Tewari, N., Rajan, H.: Information hiding interfaces for aspect-oriented design. In: Proceedings of the 10th European Software Engineering Conference held jointly with 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering, Lisbon, Portugal, pp. 166–175 (September 2005)
Tigris. aopmetrics home page (2005), Address: http://aopmetrics.tigris.org
Viega, J., Voas, J.M.: Can aspect-oriented programming lead to more reliable software. IEEE Software 17(6), 19–21 (2000)
Zuse, H.: History of software measurement (2005), Address: http://irb.cs.tu-berlin.de/~zuse/metrics/History_00.html
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Filho, F.C., Rubira, C.M.F., de A. Maranhão Ferreira, R., Garcia, A. (2006). Aspectizing Exception Handling: A Quantitative Study. In: Dony, C., Knudsen, J.L., Romanovsky, A., Tripathi, A. (eds) Advanced Topics in Exception Handling Techniques. Lecture Notes in Computer Science, vol 4119. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11818502_14
Download citation
DOI: https://doi.org/10.1007/11818502_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-37443-5
Online ISBN: 978-3-540-37445-9
eBook Packages: Computer ScienceComputer Science (R0)