Aspect-Oriented Programming to Improve Modularity of Object-Oriented Applications
- Felix, Jose M. 1
- Ortin, Francisco 2
- 1 Principality of Asturias, Computer Science Department
-
2
Universidad de Oviedo
info
ISSN: 1796-217X
Datum der Publikation: 2014
Ausgabe: 9
Nummer: 9
Art: Artikel
Andere Publikationen in: Journal of Software
Zusammenfassung
The separation of concerns design principle improves software reutilization, understandability, extensibility and maintainability. By using the objectoriented paradigm, it is not always possible to separate into independent modules the different concerns of an application. The result is that the source code of crosscutting concerns are tangled and scattered across the whole application. Aspect-oriented programming offers a higher level of modularity, providing a solution for the code tangling and scattering problem. To show how aspectoriented programming can be used as a suitable mechanism to improve the modularity of object-oriented applications, this divulgative article presents the implementation of a typical design pattern following both the object- and aspectoriented paradigms. The two approaches are compared from the modularity perspective, establishing a discussion on the benefits provided and is current use.
Informationen zur Finanzierung
This work has been funded by the Department of Science and Innovation (Spain) under the National Program for Research, Development and Innovation. Project TIN2011-25978, entitled Obtaining Adaptable, Robust and Efficient Software by Including Structural Reflection in Statically Typed Programming Languages.Geldgeber
-
Department of Science and Innovation
Spain
- TIN2011-25978
Bibliographische Referenzen
- B. Meyer, Object-Oriented Software Construction, 2nd edition, Prentice-Hall, ISBN 0-13-629155-4, 1997.
- D.L. Parnas, “On the criteria to be used in decomposing systems into modules,” Communications of ACM, vol. 15, issue 12, pp. 1053-1058, 1972.
- F. Ortin, B. Lopez, J. B. G. Perez-Schofield, “Separating Adaptable Persistence Attributes through Computational Reflection,” IEEE Software, vol. 21, issue 6, November 2004.
- W.L Hürsch, and C.V. Lopes, “Separation of concerns,” Technical Report NU-CCS-95-03, Northeastern University, Boston, February 1995.
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.M. Loingtier, and J. Irwin, “Aspect-Oriented Programming,” in European Conference on ObjectOriented Programming (ECOOP), Jyväskylä, Finland, pp. 220-242, June 1997.
- G. Kiczales, “The fun has just begun,” in Aspect-Oriented Software Development (AOSD), Boston, Massachusetts, March 2003.
- The Eclipse Foundation, “AspectJ, crosscutting objects for better modularity,” http://www.eclipse.org/aspectj, November 2013.
- Aspect-Oriented Software Association, “Aspect-Oriented Software Development,” http://www.aosd.net, November 2013.
- H. Ossher, and P. Tarra, “Hyper/J: Multi-dimensional separation of concerns for Java,” in International Conference in Software Engineering (ICSE), Toronto, Canada, pp. 821-822, May 2001.
- F. Ortin, L. Vinuesa, and J.M. Felix, “The DSAW aspectoriented software development platform,” International Journal of Software Engineering and Knowledge Engineering, vol. 21, issue 7, pp. 891-929, November 2011.
- L. Vinuesa, F. Ortin, J.M. Felix, and F. Alvarez, “DSAW - A Dynamic and Static Aspect Weaving Platform,” in International Conference on Software and Data Technologies (ICSOFT), Porto, Portugal, pp. 55-62, July 2008.
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design patterns: elements of reusable object-oriented software, Addison-Wesley Professional, ISBN 0-20-163361-2, 1994.
- F. Steimann, “The paradoxical success of aspect-oriented programming,” in ACM SIGPLAN Conference on ObjectOriented Programming Systems, Languages and Applications (OOPSLA), Portland, Oregon, pp. 481-497 October 2006.
- M. Eaddy, A. Aho, W. Hu, P. McDonald, and J. Burger, “Debugging aspect-enabled programs,” in International Conference on Software Composition, Braga, Portugal, pp. 200-215, March 2007.
- R. Duoence, P. Fradet, and M. Südholt, “Detection and resolution of aspect interactions,” Technical Report No. 4435, INRIA, France, ISSN 0249-6399, 2002.
- A. Popovici, “The impact of aspect-oriented programming on future application design,” Information and Communication Research Group Seminar, ETH Zurich, January 2001.
- R. Laddad, “A real-world perspective of AOP,” Transactions on Aspect-Oriented Software Development vol. VIII, pp. 108-115, 2011.
- F. Ortin, M. Garcia, J.M. Redondo, and J. Quiroga, “Achieving multiple dispatch in hybrid statically and dynamically typed languages,” Advances in Intelligent Systems and Computing, vol. 206, pp. 703-713, 2013.
- F. Ortin, D. Diez, “Designing an Adaptable Heterogeneous Abstract Machine by means of Reflection,” Information and Software Technology, vol. 47, issue 2, pp. 81-94, February 2005.
- F. Ortin, J.M. Cueva, “Dynamic Adaptation of Application Aspects,” Journal of Systems and Software, vol. 71, issue 3, pp. 229-243, May 2004.
- F. Ortin, P. Conde, D. Fernandez-Lanvin, R. Izquierdo, “Runtime Performance of invokedynamic: Evaluation through a Java Library,” IEEE Software, in press, doi.ieeecomputersociety.org/10.1109/MS.2013.46, April 2013.
- F. Ortin, M. Garcia, “Union and intersection types to support both dynamic and static typing,” Information Processing Letters, vol. 111, issue 6, pp. 278-286, February 2011.
- F. Ortin, J.M. Redondo, J.B.G. Perez-Schofield, “Efficient virtual machine support of runtime structural reflection,” Science of Computer Programming, vol. 74, issue 10, pp. 836-860, August 2009.
- P. Conde, F. Ortin, “Jindy: a Java library to support invokedynamic,” Computer Science and Information Systems, in press, October 2013.
- M Garcia, F. Ortin, D. Llewellyn-Jones, and Madjid Merabti, “Performance cost evaluation of aspect weaving,” in Australasian Computer Science Conference (ACSC), Adelaide, Australia, pp. 79-86, February 2013.
- M. Garcia, D. Llewellyn-Jones, F. Ortin, M. Merabti, “Applying dynamic separation of aspects to distributed systems security: a case study,” IET Software, vol. 6, issue 3, pp. 231-248, June 2012.