ABSTRACT
Aspect-Oriented Programming (AOP) is a new technology that was proposed to improve separation of concerns in software development. AOP's main focus is to use aspect modules to implement concerns that would be generally scattered across the system and tangled with other modules (crosscutting concerns). Although much research has focused on AOP's application to traditional software development, little has been done towards its application to Web development. Aspect-oriented PHP (aoPHP) is an addition to PHP that allows the use of AOP in the Web development context. In this paper we describe an application of aoPHP to show that AOP can also be effectively used in theWeb development context. In particular, we have implemented two crosscutting concerns in a collaborative Web system named CoTeia: the access control and the version control functionalities. Furthermore, we discuss how AOP can enhance the design of Web applications by reasoning on the refactored system
- C.R.E. Arruda. CoTeia project. Online, 2006. available at http://freshmeat.net/projects/coteia/ - accessed on 08/22/2006.Google Scholar
- C.R.E. Arruda and M.G.C. Pimentel. Design and implementation of a collaborative authoring system. Revista Eletrônica de Iniciação Científica, 1(1):1--12, 2001 (in Portuguese).Google Scholar
- J. Benn, C. Constantinides, H.K. Padda, K.H. Pedersen, F. Rioux, , and X. Ye. Reasoning on Software Quality Improvement with Aspect-Oriented Refactoring: A Case Study. In W.T. Tsai and M.H. Hamza, editors, Proccedings of the 2005 Software Engineering and Applications, Phoenix, AZ, USA, November 2005.Google Scholar
- S. Casteleyn, Z. Fiala, G.-J. Houben, and K. van der Sluijs. From adaptation engineering to aspect-oriented context-dependency. In WWW '06: Proceedings of the 15th international conference on World Wide Web, pages 897--898, New York, NY, USA, 2006. ACM Press. Google ScholarDigital Library
- Y. Coady, G. Kiczales, M. Feeley, and G. Smolyn. Using aspectC to improve the modularity of path-specific customization in operating system code. In ESEC/FSE-9: Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering, pages 88--98, New York, NY, USA, 2001. ACM Press. Google ScholarDigital Library
- CVS Community. The Concurrent Versions System Home, 2005. available at: https://www.cvshome.org/accessed on: 07/29/2005.Google Scholar
- T. Elrad, R.E. Filman, and A. Bader. Aspect-oriented programming: Introduction. Communications of the ACM, 44(10):29--32, 2001. Google ScholarDigital Library
- M. Guzdial, J. Rick, and C. Kehoe. Beyond adoption to invention: Teacher-created collaborative activities in higher education. Journal of the Learning Sciences, 10(3):265--279, 2001.Google ScholarCross Ref
- J. Hannemann, G.C. Murphy, and G. Kiczales. Role-based refactoring of crosscutting concerns. In AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development, pages 135--146, New York, NY, USA, 2005. ACM Press. Google ScholarDigital Library
- G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W.G. Griswold. An overview of AspectJ. In ECOOP '01: Proceedings of the 15th European Conference on Object-Oriented Programming, pages 327--353, 2001. Google ScholarDigital Library
- G. Kiczales, J. Irwin, J. Lamping, J.-M. Loingtier, C. Lopes, C. Maeda, and A. Menhdhekar. Aspect-oriented programming. In M. Akşit and S. Matsuoka, editors, Proceedings of the European Conference on Object-Oriented Programming, volume 1241, pages 220--242, Berlin, Heidelberg, and New York, 1997. Springer-Verlag.Google Scholar
- G. Kiczales and M. Mezini. Aspect-oriented programming and modular reasoning. In Proceedings of the 27th International Conference on Software Engineering (ICSE'2005), pages 49--58. ACM Press, 2005. Google ScholarDigital Library
- S. Kojarski and D.H. Lorenz. Domain driven web development with webjinn. In OOPSLA '03: Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 53--65, New York, NY, USA, 2003. ACM Press. Google ScholarDigital Library
- U. Ogbuji. Thinking XML: Learning Objects Metadata. accessed on 07/29/2005. available at http://www-128.ibm.com/developerworks/xml/library/x-think21.html.Google Scholar
- L.T.E. Pansanato and R.P.M. Fortes. Strategies for automatic LOM metadata generating in a web-based CSCL tool. In WebMedia '05: Proceedings of the 11th Brazilian Symposium on Multimedia and the web, pages 1--8, New York, NY, USA, 2005. ACM Press. Google ScholarDigital Library
- M.P. Robillard and G.C. Murphy. Concern graphs: finding and describing concerns using structural program dependencies. In ICSE '02: Proceedings of the 24th International Conference on Software Engineering, pages 406--416, New York, NY, USA, 2002. ACM Press. Google ScholarDigital Library
- D. Shepherd, J. Palm, L. Pollock, and M. Chu-Carroll. Timna: a framework for automatically combining aspect mining analyses. In ASE '05: Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering, pages 184--193, New York, NY, USA, 2005. ACM Press. Google ScholarDigital Library
- I. Sommerville. Software Engineering. Addison Wesley, 8 edition, 2003. Google ScholarDigital Library
- J. Stamey, B. Saunders, and S. Blanchard. The aspect-oriented web. In SIGDOC '05: Proceedings of the 23rd annual international conference on Design of communication, pages 89--95, New York, NY, USA, 2005. ACM Press. Google ScholarDigital Library
- J.W. Stamey and B.T. Saunders. Implementing database solutions on the web with aspect-oriented programming. Journal of Computing Sciences in Colleges, 20(4):249--255, 2005. Google ScholarDigital Library
- J.W. Stamey, B.T. Saunders, and M. Cameron. Introducing aoPHP. International PHP Magazine, June 2005.Google Scholar
- K. Sullivan, W.G. Griswold, Y. Song, Y. Cai, M. Shonle, N. Tewari, and H. Rajan. Information hiding interfaces for aspect-oriented design. In ESEC/FSE-13: Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering, pages 166--175, New York, NY, USA, 2005. ACM Press. Google ScholarDigital Library
- The PHP Group.PHP.net. Online, 2006. available at http://www.php.net/ - accessed on 08/21/2006.Google Scholar
Index Terms
- Using aspect-oriented PHP to implement crosscutting concerns in a collaborative web system
Recommendations
Refactoring of Crosscutting Concerns with Metaphor-Based Heuristics
It has been advocated that Aspect-Oriented Programming (AOP) is an effective technique to improve software maintainability through explicit support for modularising crosscutting concerns. However, in order to take the advantages of AOP, there is a need ...
A Systematic Review on Performance Evaluation of Aspect-Oriented Programming Techniques used to Implement Crosscutting Concerns
ICEIS 2014: Proceedings of the 16th International Conference on Enterprise Information Systems - Volume 2Aspect-Oriented Programming (AOP) was proposed with the main objective of addressing an important software quality principle that is modularization. The basic idea of the paradigm is to capture crosscutting concerns as a programming abstraction called ...
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