JPIAspectZ: A Formal Requirement Specification Language for Joint Point Interface AOP Applications
Abstract
Aspect-oriented software development (AOSD) solves a few issues of the object-oriented software development (OOSD) approach and adds a few more concerning modules and their relationships. Join point interface (JPI) is an AOSD methodology that by the definition of the interface between advised artifacts and aspects solves associated AOSD issues to get software with a high modularity level. Looking for a JPI software development approach, this article proposes and exemplifies the use of JPIAspectZ, an extension of the formal aspect-oriented language AspectZ for the software JPI requirement specifications. Mainly, JPIAspectZ looks for a concept and model consistency in a JPI software development process. Since the main JPI characteristics are the joining point interfaces definitions, i. e. explicit associations definition between aspects and advised modules, thus, by JPI, classes are no longer oblivious of possible interaction with aspects, and aspects, for their action effectiveness, do not depend anymore on signatures of advisable module components. JPIAspectZ fully supports these JPI principles. As JPI application examples, this article shows the formal requirements specification for classic aspect-oriented and JPI examples, along with describing the advantages and disadvantages of this language.
Keywords:
JPIAspectZ, JPI, AspectZ, aspects, join point interfaceDownloads
References
G. Kiczales, “Aspect-oriented programming”, ACM Computing Surveys, Vol. 28, No. 4, 1996 DOI: https://doi.org/10.1145/242224.242420
I. Jacobson, P. W. Ng, Aspect-Oriented Software Development with Use Cases, Addison Wesley Professional, 2004
F. Wedyan, S. Ghosh, L. R. Vijayasarathy, “An approach and tool for measurement of state variable based data-flow test coverage for aspect-oriented programs”, Information and Software Technology, Vol. 59, pp. 233–254, 2015 DOI: https://doi.org/10.1016/j.infsof.2014.11.008
M. Wimmer, A. Schauerhuber, G. Kappel, W. Retschitzegger, W. Schwinger, E. Kapsammer, “A survey on UML based aspect-oriented design modeling”, ACM Computing Surveys, Vol. 43, No. 4, pp. 28:1–28:59, 2011 DOI: https://doi.org/10.1145/1978802.1978807
Y. Huiqun, L. Dongmei, Y. Li, H. Xudong, “Formal Aspect-Oriented Modeling and Analysis by Aspect-Z”, 17th International Conference on Software Engineering and Knowledge Engineering, Taipei, Taiwan, July 14-16, 2005
C. V. Silva, R. Saens, C. Del Rio, R. Villarroel, “Aspect-oriented modeling: Applying aspect-oriented UML use cases and extending aspect-z”, Computing and Informatics, Vol. 32, No. 3, pp. 573–593, 2013
C. V. Silva, R. Saens, C. Del Rio, R. Villarroel, “OOAspectZ y diagramas de clase orientados a los aspectos para la modelacion orientada a aspectos (MSOA)”, Ingenieria e Investigacion , Vol. 33, No. 3, pp. 66–71, 2013 (in Spanish)
C. V. Silva, R. Villarroel, R. S. Simon, R. Saens, T. Tigero, C. Del Rio, “Aspect-Oriented Formal Modeling: (AspectZ + Object-Z) = OOAspectZ”, Computing and Informatics, Vol. 34, No. 5, pp. 996–1016, 2015
F. Mostefaoui, J. Vachon, “Verification of Aspect-UML Models Using Alloy”, 10th International Workshop on Aspect-Oriented Modeling, Vancouver, Canada, March 12-12, 2007 DOI: https://doi.org/10.1145/1229375.1229382
E. Bodden, E. Tanter, M. Inostroza, “Join point interfaces for safe and flexible decoupling of aspects”, ACM Transactions on Software Engineering and Methodology, Vol. 23, No. 1, pp. A:1–A:42, 2014 DOI: https://doi.org/10.1145/2559933
E. Bodden, “Closure Join Points: Block Join Points without Surprises”, Tenth International Conference on Aspect-Oriented Software Development, Porto de Galinhas, Brazil, March 21-25, 2011 DOI: https://doi.org/10.1145/1960275.1960291
M. Inostroza, E. Tanter, E. Bodden, “Join Point Interfaces for Modular Reasoning in Aspect-Oriented Programs”, 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering, Szeged, Hungary, September 5-9, 2011 DOI: https://doi.org/10.1145/2025113.2025205
J. Woodcock, J. Davies, Using Z: Specification, Refinement, and Proof, Prentice-Hall, 1996
G. Smith, The Object-Z Specification Language, Kluwer Academic Publishers, 2000 DOI: https://doi.org/10.1007/978-1-4615-5265-9
C. V. Silva, R. Villarroel, “JPI UML: UML Class and Sequence Diagrams Proposal for Aspect-Oriented JPI Applications”, 33rd International Conference of the Chilean Computer Science Society, Talca, Chile, November 8-14, 2014 DOI: https://doi.org/10.1109/SCCC.2014.23
S. Apel, D. Batory, C. Kastner, G. Saake, Feature-Oriented Software Product Lines: Concepts and Implementation, Springer, 2016
Downloads
How to Cite
License
Authors who publish with this journal agree to the following terms:
- Authors retain the copyright and grant the journal the right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal.
- Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal.
- Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) after its publication in ETASR with an acknowledgement of its initial publication in this journal.