skip to main content
article

The paradoxical success of aspect-oriented programming

Published:16 October 2006Publication History
Skip Abstract Section

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.

References

  1. Aldrich, J.: Open Modules: Reconciling extensibility and information hiding. In: Software Engineering Properties of Languages for Aspect Technologies (SPLAT). Workshop at AOSD (2004).Google ScholarGoogle Scholar
  2. Aldrich, J.: Open Modules: Modular reasoning about advice. In: ECOOP (2005) 144--168. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Allan, C. et al.: Adding trace matching with free variables to AspectJ. In: OOPSLA (2005) 345--364. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Avgustinov, P. et al.: Semantics of Static Pointcuts in AspectJ. Technical Report abc-2006-3 (Oxford University Computing Laboratory, 2006).Google ScholarGoogle Scholar
  5. Bezdek, J. C.: Fuzzy models-what are they, and why. IEEE Transactions on Fuzzy Systems 1:1 (1993) 1--6.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle Scholar
  8. Brooks, Jr., F. P.: The Mythical Man-Month: Essays on Software Engineering, 20th Anniversary Edition (Addison-Wesley 1995). Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Clark, L. R.: A linguistic contribution to goto-less programming. Commun. ACM 27:4 (1984) 349--350. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Clifton, C., Leavens, G. T.: Obliviousness, modular reasoning, and the behavioral subtyping analogy. In: SPLAT (2003).Google ScholarGoogle Scholar
  11. 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 ScholarGoogle Scholar
  12. Colyer, A., Harrop, R., Johnson, R., Vasseur, A.: AOP will see widespread adoption. IEEE Software 23:1 (2006) 72--74. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Constantinides, C., Scotinides, T., Störzer, M.: AOP considered harmful. In: 1st European Interactive Workshop on Aspect Systems (EIWAS) (2004).Google ScholarGoogle Scholar
  14. Dantas, D. S., Walker, D.: Harmless advice. In: POPL, SIGPLAN Not. 41:1 (2006) 383--396. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. Dijkstra, E. W.: A Discipline of Programming. (Prentice Hall, Englewood Cliffs, New Jersey 1976). Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Dijkstra, E. W.: On the role of scientific thought. In: Edsger W. Dijkstra: Selected Writings on Computing: A Personal Perspective. (Springer-Verlag 1982).Google ScholarGoogle ScholarCross RefCross Ref
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. Elrad, T., Filman, R. E., Bader, A.: Aspect-oriented programming: Introduction. Commun. ACM 44:10 (2001) 29--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle Scholar
  22. Filman, R. E., Elrad, T., Clarke, S., Aksit, M.: Aspect-Oriented Software Development. (Addison-Wesley Professional, 2004). Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. Filman, R. E.: What is AOP, revisited. In: Workshop on Multi-Dimensional Separation of Concerns at ECOOP (2001).Google ScholarGoogle Scholar
  25. 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 ScholarGoogle Scholar
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle Scholar
  29. Gybels, K., Brichau, J.: Arranging language features for more robust pattern-based crosscuts. In: AOSD (2003) 60--69. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Harrison, W.H., Ossher, H.: Subject-Oriented Programming (A critique of pure objects). In: OOPSLA (1993) 411--428. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Hilsdale, E., Hugunin, J.: Advice weaving in AspectJ. In: AOSD (2004) 26--35. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. Kiczales, G., Lamping, J., Lopes, C. V., Maeda, C., Mendhekar, A., Murphy, G. C.: Open implementation design guidelines. In: ICSE (1997) 481--490. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Kiczales, G., Mezini, M.: Aspect-oriented programming and modular reasoning. In: ICSE (2005) 49--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Kiczales, G., Mezini, M.: Separation of concerns with procedures, annotations, advice and pointcuts. In: ECOOP (2005) 195--213. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. 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 ScholarGoogle Scholar
  38. Kojarski, S., Lorenz, D. H.: Modeling aspect mechanisms: a top-down approach. In: ICSE (2006) 212--221. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Laddad, R.: AOP and metadata: A perfect match. In: [email protected] (http://www-128.ibm.com/developerworks/java, 2005).Google ScholarGoogle Scholar
  40. Lesiecki, N.: Improve modularity with aspect-oriented programming (http://www-128.ibm.com/developerworks/java/library/j-aspectj/, 2002).Google ScholarGoogle Scholar
  41. Lieberherr, K. J., Lorenz, D. H., Ovlinger, J.: Aspectual collaborations: combining modules and aspects. The Computer Journal 46:5 (2003) 542--565.Google ScholarGoogle ScholarCross RefCross Ref
  42. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  43. Lorenz, D. H., Skotiniotis, T.: Extending design by contract for aspect-oriented programming. http://arxiv.org/abs/cs.SE/0501070.Google ScholarGoogle Scholar
  44. Masuhara, H., Kiczales, G.: Modeling crosscutting in aspect-oriented mechanisms. In: ECOOP (2003) 2--28.Google ScholarGoogle Scholar
  45. Mehner, K., Rashid, A.: Towards a generic model for AOP (GEMA). Technical Report CSEG/1/03, Computing Department, Lancaster University, UK (2003).Google ScholarGoogle Scholar
  46. Mikhajlov, L., Sekerinski, E.: A Study of the fragile base class problem. In: ECOOP (1998) 355--382. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Murphy, G., Schwanninger, C.: Aspect-oriented programming. IEEE Software 23:1 (2006) 20--23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. 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 ScholarGoogle Scholar
  49. Nordberg, III., M. E.: Aspect-oriented dependency inversion. In: Workshop on Advanced Separation of Concerns in Object-Oriented Systems at OOPSLA (2001).Google ScholarGoogle Scholar
  50. Ossher, H., Tarr, P.: Hyper/J: Multi-dimensional separation of concerns for Java. In: ICSE (2001) 729--730. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Ostermann, K., Mezini, M., Bockisch, C.: Expressive pointcuts for increased modularity. In: ECOOP (2005) 214--240. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Ovlinger, J.: Modular programming with aspectual collaborations. In: OOPSLA 2002 Doctoral Symposium (2002) 16--17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Ovlinger, J.: Combining Aspects and Modules. PhD Thesis (College of Computer and Information Science, Northeastern University, Boston, USA 2004).Google ScholarGoogle Scholar
  54. 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 ScholarGoogle Scholar
  55. Parnas, D. L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15:12 (1972) 1053--1058. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Revelle, M., Broadbent, T., Coppit, D.: Understanding concerns in software: insights gained from two case studies. In: IWPC (2005) 23--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  58. Steele, Jr., G. L., Gabriel, R. P.: The Evolution of Lisp. http://dreamsongs.com/NewFiles/HOPL2-Uncut.pdf Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. 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 ScholarGoogle Scholar
  60. Steimann, F.: Domain models are aspect free. In: MoDELS 2005, 8th International Conference on Model Driven Engineering Languages and Systems (2005) 171--185. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  62. Stolz, V., Bodden, E.: Temporal assertions using AspectJ. In: RV'05 -- 5th Workshop on Runtime Verification (Edinburgh, Scotland, UK, 2005).Google ScholarGoogle Scholar
  63. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  64. 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 ScholarGoogle Scholar
  65. Walker, R. J., Viggers, K.: Implementing protocols via declarative event patterns. In: SIGSOFT FSE (2004) 159--169. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Wulf, W., Shaw, M.: Global variable considered harmful. SIGPLAN Notices 8:2 (1973) 28--34. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. The paradoxical success of aspect-oriented programming

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!