ABSTRACT
Aspects cut new interfaces through the primary decomposition of a system. This implies that in the presence of aspects, the complete interface of a module can only be determined once the complete configuration of modules in the system is known. While this may seem anti-modular, it is an inherent property of crosscutting concerns, and using aspect-oriented programming enables modular reasoning in the presence of such concerns.
- Aldrich, J., Open Modules: A Proposal for Modular Reasoning in Aspect-Oriented Programming, Carnegie Mellon Technical Report CMU-ISRI-04-108, 2004 (Earlier version appeared in Workshop on Foundations of Aspect-Oriented Languages.)Google Scholar
- Bloch, J. A Metadata Facility for the Java Programming Language, 2002. Google ScholarDigital Library
- Bockisch, C., Haupt, M., Mezini, M. and Ostermann, K., Virtual Machine Support for Dynamic Join Points. International Conference on Aspect-oriented Software Development (AOSD), 2004, ACM Press, 83--92. Google ScholarDigital Library
- Boner, J., AspectWerkz http://aspectwerkz.codehaus.org/.Google Scholar
- Bracha, G., Odersky, M., Stoutamire, D. and Wadler, P., Making the Future Safe for the Past: Adding Genericity to the Java Programming Language. Symposium on Object Oriented Programming: Systems, Languages, and Applications (OOPSLA), 1998, 183--200. Google ScholarDigital Library
- Burdy, L., Cheon, Y., Cok, D., Ernst, M., Kiniry, J., Leavens, G.T., Rustan, K., Leino, M. and Poll, E., An overview of JML tools and applications. Workshop on Formal Methods for Industrial Critical Systems (FMICS), 2003.Google Scholar
- Chiba, S. and Nakagawa, K., Josh: An Open AspectJ-like Language. International Conference on Aspect-oriented Software Development (AOSD), 2004, ACM Press, 102--111. Google ScholarDigital Library
- Clifton, C. and Leavens, G., Obliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy, Iowa State University Technical Report, TR 03-15.Google Scholar
- Clifton, C. and Leavens, G., Observers and assistants: A proposal for modular aspect-oriented reasoning. Workshop on Foundations of Aspect-Oriented Languages (FOAL), 2002.Google Scholar
- DeLine, R. and Fähndrich, M., Typestates for Objects. European Conference on Object-Oriented Programming (ECOOP), 2004.Google Scholar
- Deng, X., Dwyer, M., Hatcliff, J. and Mizuno, M., SyncGen: An aspect-oriented framework for synchronization. Int'l Conference Tools and Algorithms for the Construction and Analysis of Systems (TACAS), 2004, 158--162.Google Scholar
- Eichberg, M., Mezini, M. and Ostermann, K., First-Class Pointcuts as Queries. Asian Symposium on Programming Languages and Systems (APLAS), 2004, Springer Lecture Notes on Computer Science, to appear.Google ScholarCross Ref
- Fowler, M. and Beck, K. Refactoring: improving the design of existing code. Addison-Wesley, Reading, MA, 1999. Google ScholarDigital Library
- Furfaro, A., Nigro, L. and Pupo, F. Multimedia synchronization based on aspect oriented programming. Microprocessors and Microsystems, 8 (2). 47--56.Google Scholar
- Gradecki, J. and Lesiecki, N. Mastering AspectJ: Aspect-oriented Programming in Java. Wiley, Indianapolis, Ind., 2003. Google ScholarDigital Library
- Grundy, J., Aspect-Oriented Requirements Engineering for Component-based Software Systems. International Symposium on Requirements Engineering, 1999, IEEE Computer Society Press, 84--91. Google ScholarDigital Library
- Gybels, K. and Brichau, J., Arranging Language Features for More Robust Pattern--Based Crosscuts. International Conference on Aspect-Oriented Software Development (AOSD), 2003, ACM Press, 60--69. Google ScholarDigital Library
- Hannemann, J. and Kiczales, G., Design pattern implementation in Java and AspectJ. Symposium on Object Oriented Programming: Systems, Languages, and Applications (OOPSLA), 2002, 161--173. Google ScholarDigital Library
- Hilsdale, E. and Hugunin, J., Advice Weaving in AspectJ. International Conference on Aspect-Oriented Software Development (AOSD), 2004, ACM Press, 26--35. Google ScholarDigital Library
- Jacobson, I. and Ng, P.-W. Aspect-Oriented Software Development with Use Cases. Addison-Wesley, 2003. Google ScholarDigital Library
- Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J. and Griswold, W.G., An Overview of AspectJ. European Conference on Object-Oriented Programming (ECOOP), 2001, Springer, 327--355. Google ScholarDigital Library
- Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J. and Irwin, J., Aspect-oriented programming. European Conference on Object-Oriented Programming (ECOOP), 1997, 220--242.Google ScholarCross Ref
- Kiselev, I. Aspect-oriented programming using AspectJ. Sams, Indianapolis, Ind., 2003. Google ScholarDigital Library
- Krakauer, D.C. Robustness in Biological Systems: a provisional taxonomy. in Complex Systems Science in Biomedicine, Kluwer, 2004.Google Scholar
- Krishnamurthi, S., Fisler, K. and Greenberg, M. Verifying aspect advice modularly. Foundations of Software Engineering (FSE). 137--146. Google ScholarDigital Library
- Laddad, R. AspectJ in action: practical aspect-oriented programming. Manning, Greenwich, CT, 2003. Google ScholarDigital Library
- Leavens, G., Cheon, Y., Clifton, C., Ruby, C. and Cok, D. How the design of JML accommodates both runtime assertion checking and formal verification. FORMAL METHODS FOR COMPONENTS AND OBJECTS, 2852. 262--284.Google Scholar
- Liberty, J. Programming C#. O'Reilly, Sebastopol, CA, 2003. Google ScholarDigital Library
- Lippert, M. and Lopes, C.V., A Study on Exception Detection and Handling Using Aspect-Oriented Programming. International Conference on Software Engineering, 2002, ACM Press, 418--427. Google ScholarDigital Library
- Liskov, B.H. and Wing, J.M. A Behavioral Notion of Subtyping. Transactions on Programming Languages and Systems (TOPLAS). Google ScholarDigital Library
- Masuhara, H. and Kawauchi, K., Dataflow Pointcut in Aspect-Oriented Programming. Asian Symposium on Programming Languages and Systems (APLAS), 2003, 105--121.Google Scholar
- Masuhara, H. and Kiczales, G., Modeling crosscutting in aspect-oriented mechanisms. European Conference on Object-Oriented Programming (ECOOP), 2003, Springer, 2--28.Google ScholarCross Ref
- Mezini, A.M. and Ostermann, A.K., Conquering aspects with Caesar. International Conference on Aspect-Oriented Software Development (AOSD), 2003, ACM Press, 90--100. Google ScholarDigital Library
- Rashid, A., Moreira, A. and Araujo, J. Modularisation and composition of aspectual requirements International Conference on Aspect-oriented Software Development (AOSD), ACM Press, 2003, 11--20. Google ScholarDigital Library
- Rashid, A., Sawyer, P., Moreira, A. and Araujo, J. Early Aspects: A Model for Aspect-Oriented Requirements Engineering International Conference on Requirements Engineering, IEEE Computer Society Press, 2002, 199--202. Google ScholarDigital Library
- Rinard, M., Salcianu, A. and Suhabe, B., A Classification System and Analysis for Aspect-Oriented Programs. Foundations of Software Engineering (FSE), 2004, ACM Press, 147--158. Google ScholarDigital Library
- Soares, S., Laureano, E. and Borba, P., Implementing distribution and persistence aspects with AspectJ. Symposium on Object Oriented Programming: Systems, Languages, and Applications (OOPSLA), 2002, 174--190. Google ScholarDigital Library
- Tarr, P., Ossher, H., Harrison, W. and Sutton, S.M., N degrees of separation: multi-dimensional separation of concerns. International Conference on Software Engineering (ICSE), 1999, IEEE Computer Society Press, 107--119. Google ScholarDigital Library
- Zhao, J. and Rinard, M., Pipa: A behavioral interface specification language for AspectJ. Fundamental Approaches to Software Engineering (FASE), 2003, Springer, 150--165.Google Scholar
Index Terms
- Aspect-oriented programming and modular reasoning
Recommendations
Aspect-oriented programming
ESEC/FSE-9: Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineeringAspect-oriented programming (AOP) is a technique for improving separation of concerns in software design and implementation. AOP works by providing explicit mechanisms for capturing the structure of crosscutting concerns. This tutorial shows how to use ...
Join point interfaces for modular reasoning in aspect-oriented programs
ESEC/FSE '11: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineeringWhile aspect-oriented programming supports the modular definition of crosscutting concerns, most approaches to aspect- oriented programming fail to improve, or even preserve, modular reasoning. The main problem is that aspects usually carry, through ...
Cooperative aspect-oriented programming
Aspect-oriented programming (AOP) seeks to improve software modularity via the separation of cross-cutting concerns. AOP proponents often advocate a development strategy where programmers write the main application (base code), ignoring cross-cutting ...
Comments