WHAT IS WRONG WITH AOP?

Adam Przybylek

2010

Abstract

Modularity is a key concept that programmers wield in their struggle against the complexity of software systems. The implementation of crosscutting concerns in a traditional programming language (e.g. C, C#, Java) results in software that is difficult to maintain and reuse. Although modules have taken many forms over the years from functions and procedures to classes, no form has been capable of expressing a crosscutting concern in a modular way. The latest decomposition unit to overcome this problem is an aspect promoted by aspect-oriented programming (AOP). The aim of this paper is to review AOP within the context of software modularity.

References

  1. Aldrich J., 2005. Open Modules: Modular Reasoning about Advice. In: Proceedings of the 19th European Conference on Object-Oriented Programming (ECOOP'05), Glasgow, U.K.
  2. Clifton, C., 2005. A design discipline and language features for modular reasoning in aspect-oriented programs. Phd thesis, Department of Computer Science, Iowa State University, U.S.A.
  3. Clifton, C., Leavens, G. T., 2002. Spectators and Assistants: Enabling Modular Aspect-Oriented Reasoning. Technical Report 02-10, Iowa State University.
  4. Clifton, C., Leavens, G. T., 2003. Obliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy. In: Software-engineering Properties of Languages for Aspect Technologies (SPLAT'03), Boston.
  5. Constantinides, C., Scotinides, T., Störzer, M., 2004. AOP considered harmful. In: 1st European Interactive Workshop on Aspect Systems, Berlin, Germany
  6. Dahl, O. J., Dijkstra, E.W., Hoare, C. A., 1972. Structured Programming. Academic Press Ltd.
  7. Dantas, D.S., Walker, D., 2006. Harmless advice. In: Conference Record of the 33rd ACM SIGPLANSIGACT Symposium on Principles of Programming Languages. ACM, pp. 383-396, New York.
  8. De Win, B., Piessens, F., Joosen, W., Verhanneman, T., 2002. On the importance of the separation-of-concerns principle in secure software engineering. In: ACSA Workshop on the Application of Engineering Principles to System Security Design, Boston, Massachusetts.
  9. Dijkstra, E. W., 1974. On the role of scientific thought. Netherlands, http://www.cs.utexas.edu/users/EWD/ transcriptions/EWD04xx/EWD447.html
  10. Figueiredo et al., 2008. Evolving software product lines with aspects: An empirical study on design stability. In: 30th International Conference on Software Engineering (ICSE'08), Leipzig, Germany.
  11. Filman, R.E., 2001. What is AOP, revisited. In: Workshop on Multi-Dimensional Separation of Concerns at ECOOP'01, Budapest, Hungary
  12. Filman, R. E., Friedman, D. P., 2001. Aspect-oriented programming is quantification and obliviousness. In: Workshop on Advanced Separation of Concerns at OOPSLA'00, Minneapolis, Minnesota
  13. Gudmundson S., Kiczales, G., 2001. Addressing practical software development issues in AspectJ with a pointcut interface. In: Workshop on Advanced Separation of Concerns of ECOOP'01, Budapest, Hungary.
  14. Hoffman, K., Eugster, P., 2007. Bridging Java and AspectJ through explicit join points. In: 5th international Symposium on Principles and Practice of Programming in Java (PPPJ'07), Lisboa, Portugal
  15. Jalote, P., 2005. An Integrated Approach to Software Engineering. Springer, New York.
  16. Kästner, C., Apel, S., Batory, D., 2007. A Case Study Implementing Features using AspectJ. In: 11th International Conference of Software Product Line Conference (SPLC'07), Kyoto, Japan.
  17. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, Ch., Lopes, C. V., Loingtier, J., Irwin, J., 1997. AspectOriented Programming. LNCS, vol. 1241, pp. 220- 242. Springer, New York.
  18. Leavens, G. T., Clifton, C., 2007. Multiple concerns in aspect-oriented language design: a language engineering approach to balancing benefits, with examples. In: 5th Workshop on Software Engineering Properties of Languages and Aspect Technologies (SPLAT'07), Vancouver, Canada.
  19. Lopes , C. V., Bajracharya, S., 2006. An Analysis of Modularity in Aspect-Oriented Design. Springer LNCS 3880 Transactions on Aspect-Oriented Software Development I, pp. 1-35.
  20. Munoz, F., Baudry, B., Barais, O., 2008. A classification of invasive patterns in AOP. In: 24th IEEE International Conference on Software Maintenance (ICSM'08), Beijing, China.
  21. Parnas, D. L., 1972. On the criteria to be used in decomposing systems into modules. Communications of the ACM, vol. 15(12). ACM Press, New York, pp. 1053-1058.
  22. Parnas, D. L., Clements, P. C., Weiss, D. M., 1984. The modular structure of complex systems. In: Proceedings of the 7th International Conference on Software Engineering, Orlando, Florida.
  23. Pawlak, R., Pawlak, R., Seinturier, L., Retaillé, J.P., Younessi, H., 2005. Foundations of AOP for J2EE Development. Apress.
  24. Riel, A. J., 1996. Object-oriented Design Heuristics. Addison-Wesley, Boston.
  25. Soares, S., 2004. An Aspect-Oriented Implementation Method. PhD thesis, Federal University of Pernambuco, Brazil.
  26. Steimann, F., 2006. The paradoxical success of aspectoriented programming. SIGPLAN Not. 41, 10 (Oct. 2006), pp. 481-497.
  27. Tourwe, T., Brichau, J., Gybels, K., 2003. On the Existence of the AOSD-Evolution Paradox. In: Workshop on Software Engineering Properties of Languages for Aspect Technologies (SPLAT'03) at AOSD'03, Boston, Massachusetts.
  28. Walker, D., Zdancewic, S., Ligatti, J., 2003. A Theory of Aspects. In: 8th ACM SIGPLAN International Conference on Functional Programming, Uppsala, Sweden.
  29. Wampler, D., 2007. Noninvasiveness and Aspect-Oriented Design: Lessons from Object-Oriented Design Principles. In: 6th International Conference on AspectOriented Software Development (AOSD'07), Vancouver, Canada.
  30. Wulf, W., Shaw, M., 1973. Global variable considered harmful. SIGPLAN Notices 8:2, pp. 28-34.
  31. Yourdon, E., Constantine, L.L., 1979. Structured Design: Fundamentals of a Discipline of Computer Program and System Design. Prentice-Hall, New York.
Download


Paper Citation


in Harvard Style

Przybylek A. (2010). WHAT IS WRONG WITH AOP? . In Proceedings of the 5th International Conference on Software and Data Technologies - Volume 2: ICSOFT, ISBN 978-989-8425-23-2, pages 125-130. DOI: 10.5220/0002921601250130


in Bibtex Style

@conference{icsoft10,
author={Adam Przybylek},
title={WHAT IS WRONG WITH AOP?},
booktitle={Proceedings of the 5th International Conference on Software and Data Technologies - Volume 2: ICSOFT,},
year={2010},
pages={125-130},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0002921601250130},
isbn={978-989-8425-23-2},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 5th International Conference on Software and Data Technologies - Volume 2: ICSOFT,
TI - WHAT IS WRONG WITH AOP?
SN - 978-989-8425-23-2
AU - Przybylek A.
PY - 2010
SP - 125
EP - 130
DO - 10.5220/0002921601250130