OOAspectZ and aspect-oriented UML class diagrams for Aspect-oriented software modelling (AOSM)
OOAspectZ y diagramas de clase orientados a los aspectos para la Modelación Orientada a Aspectos (MSOA)
Keywords:
Aspects, OOAspectZ, UML class diagram, crosscutting concern (en)aspectos, OOAspectZ, diagramas de clase UML, e incumbencias cruzadas (es)
Regarding modularised software development, Aspect-oriented programming (AOP) identifies and represents individually crosscutting concerns during the software development cycle's programming stage. This article proposes and applies OOAspectZ to formal Aspect-oriented requirement specifications for prior stages of the software development cycle. It particularly concerns requirement specification and the structural design of data and behaviour, along with describing and applying Aspect-oriented UML class diagrams to designing classes, aspects and associations among classes and aspects during Aspect-oriented software development (AOSD).
OOAspectZ is a language integrating both Object-Z and AspectZ formal languages whereas Aspect-oriented UML class diagrams represent AOP code, object class and crosscutting concern class structure by means of stereotypes. This article shows and applies the main OOAspectZ and AO UML class diagram characteristics to Aspect-oriented software modelling (AOSM) using a classic example of AOP. Ideas for future work concerning an actual AOP version are also indicated.
En la búsqueda de desarrollo del software modularizado, la Programación Orientada a Aspectos (POA) identifica y representa de manera separada funcionalidades cruzadas en la etapa de programación del ciclo de desarrollo del software. Para las etapas previas del ciclo de desarrollo del software, particularmente, en la especificación de requerimientos y el diseño estructural de los datos y comportamientos, este trabajo propone y aplica OOAspectZ para la especificación formal de requerimientos orientados a aspectos, además, describe y aplica diagramas de clases UML orientados en el diseño y la asociación entre clases y aspectos, para el proceso de Desarrollo del Software Orientado a Aspectos (DSOA), respectivamente. Particularmente, OOAspectZ es un lenguaje que integra los lenguajes formales Object-Z y AspectZ, mientras que, los diagramas de clases UML orientados a aspectos representan la estructura del código de POA, clases de objetos y clases de funcionalidades cruzadas con el uso de estereotipos. Este artículo muestra y aplica las principales características de los lenguajes OOAspectZ y diagramas de clase UML orientados a aspectos, para la modelación del software orientado a aspectos (MSOA) que se aplican a un ejemplo clásico de POA, además, se entregan ideas de trabajo futuro respecto a una actual versión de POA.
References
Bodden, E., Tanter, E., Inostroza, M., A Brief Tour of Join Point Interfaces., In: proceedings of the 12th Annual International Conference Companion on Aspect-Oriented Software Development, AOSD'13 Companion, Fukuoka, Japan, 2013, pp. 19-22.
Bustos, A., Eterovic, Y., Modeling Aspects with UML's Class, Sequence and State Diagrams in an Industrial Setting., In: proceedings of the 11th IASTED International Conference on Software Engineering and Applications, SEA '07, 2007, pp. 403-410.
Duke, R., Rose, D., Formal Object-Oriented Specification Using Object-Z., 1st edition, London, MacMillan Press Limited, 2000.
Khatchadourian, R., Soundarajan, N., Rely-Guarantee Approach to Reasoning about Aspect-Oriented Programs., In: proceedings of the 5th Workshop on Software Engineering Properties of Languages and Aspect Technologies, SPLAT '07, ACM, New York, NY, USA, 2007.
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J. C., Irwin, J., Aspect-oriented programming., In: proceedings of European Conference of Object-Oriented Programing, ECOOP97, Springer Verlag, 1997, pp. 220-242.
Kiczales, G., Mezini, M., Aspect-Oriented Programming and Modlar Reasoning., In: proceedings of the 27th International Conference on Software Engineering, ICSE '05, ACM, New York, NY, USA, 2005, pp. 49-58.
Liu, C., Chuang-Wen, C., A State-Based Testing Approach for Aspect-Oriented Programming., Journal of Information Science and Engineering, Vol. 24, 2008, pp. 11-31.
Mellor, S. J., Balcer, M., Executable UML: A Foundation for Model-Driven Architectures., Boston, MA, USA, Addison-Wesley Longman Publishing Co. Inc., 2002.
Mostefaoui, F., Vachon, J., Verification of Aspect-UML Models Using Alloy., In: proceedings of the 10th International Workshop on Aspect-Oriented Modeling, AOM '07, ACM, New York, NY, USA, 2007, pp. 41-48.
Smith, G., The Object-Z Specification Language., Vol. 1 of Advances in Formal Methods., 5th Ed., Springer US, Software, 1999.
Steimann, F., Pawlitzki, T., Apel, S., Kästner, C., Types and Modularity for Implicit Invocation with Implicit Announcement, ACM Transaction on Software Engineering and Methodology., TOSEM, Vol. 20, No. 1, July, 2010, pp. 1-43.
Sullivan, K., Griswold, W. G., Song, Y., Cai, Y., Information Hiding Interfaces for Aspect-Oriented Design., In: ESEC/FSE-13: Proceedings of the 10th European software Engineering Conference, 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2005, pp. 166-175.
Vidal Silva, C., Saens, R., Del Río, C., Villarroel, R., Aspect-Oriented Modeling: Applying Aspect-Oriented UML Use Cases and Extending AspectZ., Computing and Informatics Journal, Bratislava, Slovak, 2013, pp. 573-593.
Wimmer, M., Schauerhuber, A., Kappel, G., Retschitzegger, W., Schwinger, W., Kapsammer, E., A Survey on UML-Based Aspect-Oriented Design Modeling., ACM Computing Survey, Vol. 43, No. 4, Oct., 2011, pp. 1-28.
Woodcock, J., Davies, J., Using Z: Specification, Refinement, and Proof., Upper Saddle River, NJ, USA, Prentice-Hall, Inc., 1996.
Yu, H., Liu, D., Yang, L., He, X., Formal Aspect-Oriented Modeling and Analysis by AspectZ: An Aspect-Oriented Modeling., 17th International Conference on Software Engineering and Knowledge Engineering (SEKE05), Taipei, Taiwan, 2005.
Zave, P., Jackson, M., Conjunction as Composition, ACM Transactions on Software Engineering and Methodology., Vol. 2, 1993, pp. 379-411.
How to Cite
License
Copyright (c) 2013 Cristian Vidal Silva, Rodrigo Saens, Carolina Del Río, Rodolfo Villarroel

This work is licensed under a Creative Commons Attribution 4.0 International License.
The authors or holders of the copyright for each article hereby confer exclusive, limited and free authorization on the Universidad Nacional de Colombia's journal Ingeniería e Investigación concerning the aforementioned article which, once it has been evaluated and approved, will be submitted for publication, in line with the following items:
1. The version which has been corrected according to the evaluators' suggestions will be remitted and it will be made clear whether the aforementioned article is an unedited document regarding which the rights to be authorized are held and total responsibility will be assumed by the authors for the content of the work being submitted to Ingeniería e Investigación, the Universidad Nacional de Colombia and third-parties;
2. The authorization conferred on the journal will come into force from the date on which it is included in the respective volume and issue of Ingeniería e Investigación in the Open Journal Systems and on the journal's main page (https://revistas.unal.edu.co/index.php/ingeinv), as well as in different databases and indices in which the publication is indexed;
3. The authors authorize the Universidad Nacional de Colombia's journal Ingeniería e Investigación to publish the document in whatever required format (printed, digital, electronic or whatsoever known or yet to be discovered form) and authorize Ingeniería e Investigación to include the work in any indices and/or search engines deemed necessary for promoting its diffusion;
4. The authors accept that such authorization is given free of charge and they, therefore, waive any right to receive remuneration from the publication, distribution, public communication and any use whatsoever referred to in the terms of this authorization.










