Unveiling and Taming Liabilities of Aspect Libraries Reuse

  • Roberta Coelho PUC-Rio / UFRN
  • Uirá Kulesza UFRN
  • Awais Rashid Lancaster University
  • Arndt von Staa UFRJ
  • Carlos Lucena UFRJ

Resumo


Aspect Libraries have introduced new possibilities of application composition, facilitating the reuse of crosscutting functionalities. However, if on the one hand this facilitates the independent development of reusable aspects, on the other hand it can bring additional complexity to software reuse, especially, in exception-aware systems. In this work, we present a set of potential fault scenarios associated with aspect libraries reuse. We show that the reuse of aspect libraries is indeed fault prone in exceptional conditions and present a principled reuse approach supported by a static analysis tool that leads to significant improvements.

Referências

Aldrich, J.: Open Modules: Modular Reasoning about Advice. In: Proc. of ECOOP'05.

Alexander, R.T.; Bieman, J.M.; Andrews, A.A. Towards the Systematic Testing of Aspect-Oriented Programs. Technical Report CS-04-105. Dept. of Computer Science, Colorado State University Fort Collins/Colorado - USA, March 2004.

Bodkin, R., Next steps with aspects, AOP@Work: [link] 11/ (Mar 2006).

Bodkin, R., Performance monitoring with AspectJ, Online: http://www.ibm.com/developerworks/java/library/j-aopwork10/ and ../j-aopwork12 (Sep 2005).

Bruntink, M.; Deursen, A.V.; Tourwe, T. Discovering faults in idiom-based exception handling. In: Proceedings of the International Conference on Software Engineering, 2006, p.242-251.

Cabral, B., Marques, P.: Exception Handling: A Field Study in Java and .NET. In: Proc. of ECOOP'07.

Castor Filho, F., Garcia, A., Rubira, C.: Extracting Error Handling to Aspects: A Cookbook. In: Proc. of ICSM'07.

Coelho, R, Analyzing the Exception Flows of Aspect-Oriented Programs, PhD Thesis, PUC-Rio, July 2008.

Coelho, R, Awais, R., Garcia, A., Ferrari, F. Cacho, N., Kulesza, U., Staa, A., Lucena, C., Assessing the Impact of Aspects on Exception Flows: An Exploratory Study, In: Proc. of ECOOP´2008. (to appear)

Coelho, R. et al, Assessing the Impact of Aspects on Exception Flows: An Empirical Study. Website: http://www.inf.puc-rio.br/~roberta/aop_exceptions

Colyer, A., et al. Eclipse Aspectj: Aspect-Oriented Programming with Aspectj and the Eclipse Aspectj Development Tools. 2004: Addison-Wesley.

Filman, R., Friedman, D., Aspect-oriented programming is Quantification and Obliviousness. In Aspect-Oriented Software Development. Addison-Wesley, 2005.

Fu, C., A. Milanova, et al. Robustness testing of Java Server Applications. IEEE Transactions on Software Engineering.

Fu, C.; Ryder, B. G.: Exception-Chain Analysis: Revealing Exception Handling Architecture in Java Server Applications. In: Proc. of ICSE'07.

Glassbox Inspector. https://glassbox-inspector.dev.java.net/

Goodenough JB. Exception handling: Issues and a proposed notation. Communic. of the ACM 1975.

Greenwood, P.; et al.: On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study. In: Proc. of ECOOP'07. pp. 176-200

Hannemann, J.; Kiczales, G.: Design Pattern Implementation in Java and AspectJ. In: Proc. of OOPSLA'02, 2002

JBoss Cache: http://labs.jboss.com/jbosscache/

Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., and Griswold, W., "Getting Started with AspectJ", Communication of the ACM, 44(10), 2001, pp. 59-65.

Lemos, O.; Ferrari, F.; Lopes, C.; Masiero, P. Testing aspect-oriented programming Pointcut Descriptors. In: Workshop on Testing Aspect-Oriented Programs, 2006, p.33-38.

Lopes, C.; Ngo, T. Unit-Testing Aspectual Behavior. In: Proceedings of the Workshop on Testing Aspect-Oriented Programs 2005 (WTAOP 2005), 2005.

Massiote, E.P.; Badri, L.; Badri, M. Towards a Tool Supporting Integration Testing of Aspect-Oriented Programs. Journal of Object Technology, 6(1), 2007, p.67-89.

Massoni, T.; Alves, V.; Soares, S.; Borba, P. PDC: Persistent Data Collections pattern. In: SugarLoafPLoP 2001, p.311-326.

McEachen, N., Alexander, R., Distributing Classes with Woven Concerns - An Exploration of Potential Fault Scenarios. In Proc. of AOSD' 05, pp.192-200.

Miller, R.; Anand, T.: Issues with Exception Handling in Object-Oriented Systems. In: ECOOP'97.

Robillard M. P., Murphy, G., Designing robust java programs with exceptions. In Proc. of FSE 2000.

Robillard, M.; Murphy, G.: Static Analysis to Support the Evolution of Exception Structure in Object-Oriented Systems. In: ACM Trans. Softw. Eng. Methodol (2003).

Sacramento, P.; Cabral, B.; Marques, P. Unchecked Exceptions: Can the Programmer be Trusted to Document Exceptions? In: Proceedings of IVNET'06, 2006.

Sinha, S. and Harrold M., Analysis of Programs with Exception-Handling Constructs, In: ICSM'98.

Soares, S.; Borba, P.; Laureano, E.: Distribution and Persistence as Aspects. In: Software: Practice and Experience, Wiley, vol. 36 (7), (2006) 711-759.

Soot: A Java Optimization Framework. http://www.sable.mcgill.ca/soot, accessed 19/12/2007.

Spring AOP aspect library:http://www.springframework.org/

Thomas, D. The Deplorable State of Class Libraries. Journal of Object Technology, 1(1), 2002, 21-27.

Saurabh Sinha, Alessandro Orso, Mary Jean Harrold: Automated Support for Development, Maintenance, and Testing in the Presence of Implicit Control Flow. ICSE 2004: 336-345.

Xie, T.; Zhao, J. A framework and tool supports for generating test inputs of AspectJ programs. In: Proceedings of the In Proc. 5th International Conference on Aspect-Oriented Software Development, 2006, p.190-201.

Xu, W.; Xu, D. State-Based Testing of Integration Aspects. In: Proceedings of the Second Workshop on Testing of Aspect-Oriented Programs (WTAOP'06). In conjunction with ISSTA'06,2006, p.7-14.

Zhao, J. Data-flow-based unit testing of aspectoriented programs. In COMPSAC'2003.

Hilsdale, E.; Hugunin, J. Advice weaving in AspectJ. In: Proceedings of the In 3rd International. Conference on Aspect-oriented Software Development (AOSD 2004), Lancaster, UK, 2004, p.26-35.

Sullivan, K., Kevin Sullivan , William G. Griswold , Yuanyuan Song , Yuanfang Cai , Macneil Shonle , Nishit Tewari , Hridesh Rajan, Information hiding interfaces for aspect-oriented design, In FSE 2005.

Lopez-Herrejon; Batory, D.; Lengauer, C. A disciplined approach to aspect composition. In: ACM/SIGPLAN Workshop Partial Evaluation and Semantics-Based Program Manipulation, 2006, p.68 - 77

Apel, S., Leich, T.; Saake, G. Aspectual Mixin Layers: Aspects and Features in Concert. In: ICSE 2006, p122-131.
Publicado
13/10/2008
COELHO, Roberta; KULESZA, Uirá; RASHID, Awais; VON STAA, Arndt; LUCENA, Carlos. Unveiling and Taming Liabilities of Aspect Libraries Reuse. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 22. , 2008, Campinas. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2008 . p. 81-96. DOI: https://doi.org/10.5753/sbes.2008.21325.