Abstract
Aspect-oriented programming is considered a promising new technology. As object-oriented programming did before, it is beginning to pervade all areas of software engineering. With its growing popularity, practitioners and academics alike are wondering whether they should start looking into it, or otherwise risk having missed an important development. The author of this essay finds that much of aspect-oriented programming's success seems to be based on the conception that it improves both modularity and the structure of code, while in fact, it works against the primary purposes of the two, namely independent development and understandability of programs. Not seeing any way of fixing this situation, he thinks the success of aspect-oriented programming to be paradoxical.
- Aldrich, J.: Open Modules: Reconciling extensibility and information hiding. In: Software Engineering Properties of Languages for Aspect Technologies (SPLAT). Workshop at AOSD (2004).Google Scholar
- Aldrich, J.: Open Modules: Modular reasoning about advice. In: ECOOP (2005) 144--168. Google Scholar
Digital Library
- Allan, C. et al.: Adding trace matching with free variables to AspectJ. In: OOPSLA (2005) 345--364. Google Scholar
Digital Library
- Avgustinov, P. et al.: Semantics of Static Pointcuts in AspectJ. Technical Report abc-2006-3 (Oxford University Computing Laboratory, 2006).Google Scholar
- Bezdek, J. C.: Fuzzy models-what are they, and why. IEEE Transactions on Fuzzy Systems 1:1 (1993) 1--6.Google Scholar
Digital Library
- Bodden, E.: Efficient and expressive runtime verification for Java. In: Proceedings of the Grand finals of the ACM Student Research Competition 2005, San Francisco (2005).Google Scholar
- Bodden, E., Forster, F., Steimann, F.: Avoiding infinite recursion with stratified aspects. In: NODe 2006 -- Objects, Aspects, Services, the Web. GI Lecture Notes in Informatics (2006) in press.Google Scholar
- Brooks, Jr., F. P.: The Mythical Man-Month: Essays on Software Engineering, 20th Anniversary Edition (Addison-Wesley 1995). Google Scholar
Digital Library
- Clark, L. R.: A linguistic contribution to goto-less programming. Commun. ACM 27:4 (1984) 349--350. Google Scholar
Digital Library
- Clifton, C., Leavens, G. T.: Obliviousness, modular reasoning, and the behavioral subtyping analogy. In: SPLAT (2003).Google Scholar
- Clifton, C., Leavens, G. T.: Observers and assistants: A proposal for modular aspect-oriented reasoning. In: Workshop on Foundations of Aspect-Oriented Languages (FOAL) (2002).Google Scholar
- Colyer, A., Harrop, R., Johnson, R., Vasseur, A.: AOP will see widespread adoption. IEEE Software 23:1 (2006) 72--74. Google Scholar
Digital Library
- Constantinides, C., Scotinides, T., Störzer, M.: AOP considered harmful. In: 1st European Interactive Workshop on Aspect Systems (EIWAS) (2004).Google Scholar
- Dantas, D. S., Walker, D.: Harmless advice. In: POPL, SIGPLAN Not. 41:1 (2006) 383--396. Google Scholar
Digital Library
- Devanbu, P. T., Balzer, B., Batory, D. S., Kiczales, G., Launchbury, J., Parnas, D. L., Tarr, P. L.: Modularity in the new millenium: A panel summary. In: ICSE (2003) 723--724. Google Scholar
Digital Library
- Dijkstra, E. W.: A Discipline of Programming. (Prentice Hall, Englewood Cliffs, New Jersey 1976). Google Scholar
Digital Library
- Dijkstra, E. W.: On the role of scientific thought. In: Edsger W. Dijkstra: Selected Writings on Computing: A Personal Perspective. (Springer-Verlag 1982).Google Scholar
Cross Ref
- Douence, R., Motelet, O., Südholt, M.: A formal definition of crosscuts. In: Proc. of the 3rd Int. Conf. on Metalevel Architectures and Separation of Crosscutting Concerns. Springer LNCS 2192 (2001) 170--186. Google Scholar
Digital Library
- Elkan, C: The paradoxical success of fuzzy logic. IEEE Expert 9:4 (1994) 3--8. First appeared at the 1993 National Conference on Artificial Intelligence (AAAI'93). Google Scholar
Digital Library
- Elrad, T., Filman, R. E., Bader, A.: Aspect-oriented programming: Introduction. Commun. ACM 44:10 (2001) 29--32. Google Scholar
Digital Library
- Ernst, E.: Separation of concerns and then what? In: Position papers from the workshop on Aspects and Dimensions of Concern at ECOOP'00 (2000).Google Scholar
- Filman, R. E., Elrad, T., Clarke, S., Aksit, M.: Aspect-Oriented Software Development. (Addison-Wesley Professional, 2004). Google Scholar
Digital Library
- Filman, R. E., Friedman, D. P.: Aspect-oriented programming is quantification and obliviousness. In: Workshop on Advanced Separation of Concerns at OOPSLA (2000). Revised reprint appeared in {22}. Google Scholar
Digital Library
- Filman, R. E.: What is AOP, revisited. In: Workshop on Multi-Dimensional Separation of Concerns at ECOOP (2001).Google Scholar
- Forster, F., Steimann, F.: AOP and the antinomy of the liar. In: Workshop on the Foundations of Aspect-Oriented Languages (FOAL) at AOSD (2006) 47--56.Google Scholar
- Griswold, W. G.: Coping with crosscutting software changes using information transparency. In: Proceedings of the 3rd International Conference on Metalevel Architectures and Separation of Crosscutting Concerns. Springer LNCS 2192 (2001) 250--265. Google Scholar
Digital Library
- Griswold, W. G., Shonle, M., Sullivan, K., Song, Tewari, N., Cai, Y., Rajan, H.: Modular software design with crosscutting interfaces. IEEE Software 23:1 (2006) 51--60. Google Scholar
Digital Library
- Gudmundson, S., Kiczales, G.: Addressing practical software development issues in AspectJ with a pointcut interface. In: Advanced Separation of Concerns, Workshop at ECOOP (2001).Google Scholar
- Gybels, K., Brichau, J.: Arranging language features for more robust pattern-based crosscuts. In: AOSD (2003) 60--69. Google Scholar
Digital Library
- Harrison, W.H., Ossher, H.: Subject-Oriented Programming (A critique of pure objects). In: OOPSLA (1993) 411--428. Google Scholar
Digital Library
- Hilsdale, E., Hugunin, J.: Advice weaving in AspectJ. In: AOSD (2004) 26--35. Google Scholar
Digital Library
- Hogg, J., Lea, D., Wills, A., de Champeaux, D., Holt, R. C.: The Geneva convention on the treatment of object aliasing. OOPS Messenger 3:2 (1992) 11--16. Google Scholar
Digital Library
- Kiczales, G., Lamping, J., Lopes, C. V., Maeda, C., Mendhekar, A., Murphy, G. C.: Open implementation design guidelines. In: ICSE (1997) 481--490. Google Scholar
Digital Library
- Kiczales, G., Mezini, M.: Aspect-oriented programming and modular reasoning. In: ICSE (2005) 49--58. Google Scholar
Digital Library
- Kiczales, G., Mezini, M.: Separation of concerns with procedures, annotations, advice and pointcuts. In: ECOOP (2005) 195--213. Google Scholar
Digital Library
- Klaeren, H., Pulvermueller, E., Rashid, A., Speck, A.: Aspect composition applying the design by contract principle. In: Proceedings of the GCSE 2000, Second International Symposium on Generative and Component-Based Software Engineering (2000) 57--69. Google Scholar
Digital Library
- Klose, K., Ostermann, K.: Back to the future: pointcuts as predicates over traces. In: Workshop on Foundations of Aspect-Oriented Languages (FOAL) at AOSD (2005).Google Scholar
- Kojarski, S., Lorenz, D. H.: Modeling aspect mechanisms: a top-down approach. In: ICSE (2006) 212--221. Google Scholar
Digital Library
- Laddad, R.: AOP and metadata: A perfect match. In: [email protected] (http://www-128.ibm.com/developerworks/java, 2005).Google Scholar
- Lesiecki, N.: Improve modularity with aspect-oriented programming (http://www-128.ibm.com/developerworks/java/library/j-aspectj/, 2002).Google Scholar
- Lieberherr, K. J., Lorenz, D. H., Ovlinger, J.: Aspectual collaborations: combining modules and aspects. The Computer Journal 46:5 (2003) 542--565.Google Scholar
Cross Ref
- Lopes, C. V., Dourish, P., Lorenz, D. H., Lieberherr, K.: Beyond AOP: toward naturalistic programming. In: OOPSLA'03 Special Track on Onward! Seeking New Paradigms & New Thinking. ACM (2003) 198--207. Google Scholar
Digital Library
- Lorenz, D. H., Skotiniotis, T.: Extending design by contract for aspect-oriented programming. http://arxiv.org/abs/cs.SE/0501070.Google Scholar
- Masuhara, H., Kiczales, G.: Modeling crosscutting in aspect-oriented mechanisms. In: ECOOP (2003) 2--28.Google Scholar
- Mehner, K., Rashid, A.: Towards a generic model for AOP (GEMA). Technical Report CSEG/1/03, Computing Department, Lancaster University, UK (2003).Google Scholar
- Mikhajlov, L., Sekerinski, E.: A Study of the fragile base class problem. In: ECOOP (1998) 355--382. Google Scholar
Digital Library
- Murphy, G., Schwanninger, C.: Aspect-oriented programming. IEEE Software 23:1 (2006) 20--23. Google Scholar
Digital Library
- Nagy, I., Bergmans, L.: Towards semantic composition in aspect-oriented programming. In: 1st European Interactive Workshop on Aspects in Software (EIWAS). (Berlin, Germany 2004).Google Scholar
- Nordberg, III., M. E.: Aspect-oriented dependency inversion. In: Workshop on Advanced Separation of Concerns in Object-Oriented Systems at OOPSLA (2001).Google Scholar
- Ossher, H., Tarr, P.: Hyper/J: Multi-dimensional separation of concerns for Java. In: ICSE (2001) 729--730. Google Scholar
Digital Library
- Ostermann, K., Mezini, M., Bockisch, C.: Expressive pointcuts for increased modularity. In: ECOOP (2005) 214--240. Google Scholar
Digital Library
- Ovlinger, J.: Modular programming with aspectual collaborations. In: OOPSLA 2002 Doctoral Symposium (2002) 16--17. Google Scholar
Digital Library
- Ovlinger, J.: Combining Aspects and Modules. PhD Thesis (College of Computer and Information Science, Northeastern University, Boston, USA 2004).Google Scholar
- Parnas, D. L.: Information distribution aspects of design methodology. In: Information Processing 71, Proceedings of the IFIP Congress 1 (North-Holland, 1972) 339--344.Google Scholar
- Parnas, D. L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15:12 (1972) 1053--1058. Google Scholar
Digital Library
- Revelle, M., Broadbent, T., Coppit, D.: Understanding concerns in software: insights gained from two case studies. In: IWPC (2005) 23--32. Google Scholar
Digital Library
- Rinard, M., Salcianu, A., Bugrara, S.: A classification system and analysis for aspect-oriented programs. In: Proceedings of the 12th ACM SIGSOFT International Symposium on Foundations of Software Engineering (2004) 147--158. Google Scholar
Digital Library
- Steele, Jr., G. L., Gabriel, R. P.: The Evolution of Lisp. http://dreamsongs.com/NewFiles/HOPL2-Uncut.pdf Google Scholar
Digital Library
- Steimann, F.: Why most domain models are aspect free. In: 5th Aspect-Oriented Modeling Workshop AOM at UML (2004); revised version appeared as Ref. {60}.Google Scholar
- Steimann, F.: Domain models are aspect free. In: MoDELS 2005, 8th International Conference on Model Driven Engineering Languages and Systems (2005) 171--185. Google Scholar
Digital Library
- Störzer, M., Graf, J.: Using pointcut delta analysis to support evolution of aspect-oriented software. In: 21st IEEE International Conference on Software Maintenance (2005) 653--656. Google Scholar
Digital Library
- Stolz, V., Bodden, E.: Temporal assertions using AspectJ. In: RV'05 -- 5th Workshop on Runtime Verification (Edinburgh, Scotland, UK, 2005).Google Scholar
- Sullivan, K. J., et al.: Information hiding interfaces for aspect-oriented design. In: Proc. 10th European Software Eng. Conf. Held Jointly with 13th ACM SIGSOFT Int'l Symp. Foundations of Software Eng. (ESEC/FSE 2005) (ACM Press, 2005) 166--175. Google Scholar
Digital Library
- Tourwé, T., Brichau, J., Gybels, K.: On the existence of the AOSD-evolution paradox. In: Workshop on Software-Engineering Properties of Languages for Aspect Technologies (SPLAT). Workshop at AOSD (2003).Google Scholar
- Walker, R. J., Viggers, K.: Implementing protocols via declarative event patterns. In: SIGSOFT FSE (2004) 159--169. Google Scholar
Digital Library
- Wulf, W., Shaw, M.: Global variable considered harmful. SIGPLAN Notices 8:2 (1973) 28--34. Google Scholar
Digital Library
- Zhao, J., Rinard, M.C.: Pipa: A behavioral interface specification language for AspectJ. In: Fundamental Approaches to Software Engineering, 6th International Conference (2003) 150--165. Google Scholar
Digital Library
Index Terms
The paradoxical success of aspect-oriented programming
Recommendations
The paradoxical success of aspect-oriented programming
OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applicationsAspect-oriented programming is considered a promising new technology. As object-oriented programming did before, it is beginning to pervade all areas of software engineering. With its growing popularity, practitioners and academics alike are wondering ...
Aspects and/versus modularity the grand debate
OOPSLA '06: Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applicationsAspect-Oriented Programming (AOP) and Aspect-Oriented Software Development (AOSD) endeavor to aid programmers in the separation of concerns, specifically crosscutting concerns, as an advance in modularization. AOP does so using primarily language ...
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