Abstract
Aspect-Oriented Modeling (AOM) techniques facilitate separate modeling of concerns and allow for a more flexible composition of the resulting models than traditional techniques. While this improves the understandability of each submodel, in order to reason about the behavior of the composed system and to detect conflicts among submodels, automated tool support is required.
We propose a technique and tool support for fully automatic detection of conflicts between aspects at the model level; more specifically, our approach works on models defined in UML with an extension for modeling pointcuts and advice. As back-end we use a graph-based model checker, for which we have defined an operational semantics of UML diagrams, pointcuts and advice. In order to simulate the system, we automatically derive a graph model from the diagrams. The simulation result is another graph, which represents all possible program executions, and which can be verified against a declarative specification of invariants.
To demonstrate our approach, we discuss a UML-based AOM model of the “Crisis Management System” (CMS) and a possible design and evolution scenario. The complexity of the system makes conflicts among composed aspects hard to detect: already in the case of five simulated aspects, the state space contains 9991 different states and 99 different execution paths. Nevertheless, using appropriate pruning methods, the state space only grows polynomially with the number of aspects. In practical cases, the order of the polynomial is very small, e.g., 2 in the case of the simulated CMS; therefore, the automatic analysis scales.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Gace: Graph-based adaptation, configuration and evolution modeling, http://trese.cs.utwente.nl/willevolve/
Akşit, M., Wakita, K., Bosch, J., Bergmans, L., Yonezawa, A.: Abstracting object interactions using composition filters. In: Guerraoui, R., Nierstrasz, O., Riveill, M. (eds.) ECOOP-WS 1993. LNCS, vol. 791, pp. 152–184. Springer, Heidelberg (1994)
Aksit, M., Rensink, A., Staijen, T.: A Graph-Transformation-Based Simulation Approach for Analysing Aspect Interference on Shared Join Points. In: AOSD 2009: Proceedings of the 8th ACM International Conference on Aspect-Oriented Software Development, Charlottesville, Virginia, USA, pp. 39–50. ACM, New York (2009)
Altisen, K., Maraninchi, F., Stauch, D.: Aspect-oriented programming for reactive systems: Larissa, a proposal in the synchronous framework. Science of Computer Programming 63(3), 297–320 (2006)
Araújo, J., Whittle, J., Kim, D.-K.: Modeling and composing scenario-based requirements with aspects. In: Proc. 12th Int’l Requirements Engineering Conference, pp. 53–62. IEEE, Los Alamitos (September 2004)
Baniassad, E., Clarke, S.: Theme: An approach for aspect-oriented analysis and design. In: Proceedings of the 26th International Conference on Software Engineering, pp. 158–167. IEEE Computer Society, Washington (2004)
Chitchyan, R., Rashid, A., Rayson, P., Waters, R.: Semantics-based composition for aspect-oriented requirements engineering. In: Proceedings of the 6th international conference on Aspect-oriented software development, pp. 36–48. ACM, New York (2007)
Chitchyan, R., Rashid, A., Sawyer, P., Garcia, A., Alarcon, M.P., Bakker, J., Tekinerdogan, B., Clarke, S., Jackson, A.: Survey of aspect-oriented analysis and design approaches. Technical Report AOSD-Europe-ULANC-9, AOSD-Europe (May 2005)
Ciraci, S.: Graph Based Verification of Software Evolution Requirements. PhD thesis, University of Twente (December 2009)
Ciraci, S., van den Broek, P., Aksit, M.: Framework for computer-aided evolution of object-oriented designs. In: COMPSAC, pp. 757–764 (2008)
Clarke, S., Walker, R.J.: Composition patterns: An approach to designing reusable aspects. In: Proc. 23rd Int’l Conf. Software Engineering (ICSE), May 2001, pp. 5–14 (2001)
Clarke, S., Walker, R.J.: Generic aspect-oriented design with Theme/UML. In: Filman, R.E., Elrad, T., Clarke, S., Akşit, M. (eds.) Aspect-Oriented Software Development, pp. 425–458. Addison-Wesley, Boston (2005)
Dürr, P.E.A.: Resource-based Verification for Robust Composition of Aspects. PhD thesis, University of Twente, Enschede (June 2008)
Ehrig, H.: Introduction to the algebraic theory of graph grammars. In: Claus, V., Ehrig, H., Rozenberg, G. (eds.) Graph Grammars 1978. LNCS, vol. 73, pp. 1–69. Springer, Heidelberg (1979)
Engels, G., Heckel, R., Sauer, S.: Dynamic Meta Modeling: A Graphical Approach to Operational Semantics of Behavioral Diagrams in UML (1999)
Engels, G., Soltenborn, C., Wehrheim, H.: Analysis of UML Activities Using Dynamic Meta Modeling. In: Bonsangue, M.M., Johnsen, E.B. (eds.) FMOODS 2007. LNCS, vol. 4468, pp. 76–90. Springer, Heidelberg (2007)
France, R., Ray, I., Georg, G., Ghosh, S.: Aspect-oriented approach to early design modelling. IEE Proceedings Software 151(4), 173–185 (2004)
Habel, A., Heckel, R., Taentzer, G.: Graph grammars with negative application conditions. Fundam. Inf. 26(3-4), 287–313 (1996)
Havinga, W.K., Nagy, I., Bergmans, L.M.J., Akşit, M.: A graph-based approach to modeling and detecting composition conflicts related to introductions. In: de Moor, O. (ed.) Proceedings of International Conference on Aspect Oriented Software Development, AOSD 2007, Vancouver, Canada, March 2007. ACM International Conference Proceedings Series, pp. 85–95. ACM Press, New York (2007)
Helm, R., Holland, I., Gangopadhyay, D.: Contracts: specifying behavioral compositions in object-oriented systems. ACM Sigplan Notices 25(10), 169–180 (1990)
Jayaraman, P.K., Whittle, J.: Ucsim: A tool for simulating use case scenarios. In: ICSE COMPANION 2007: Companion to the proceedings of the 29th International Conference on Software Engineering, Washington, DC, USA, 2007, pp. 43–44. IEEE Computer Society, Los Alamitos (2007)
Kastenberg, H., Kleppe, A.G., Rensink, A.: Defining OO Execution Semantics Using Graph Transformations. In: Gorrieri, R., Wehrheim, H. (eds.) FMOODS 2006. LNCS, vol. 4037, pp. 186–201. Springer, Heidelberg (2006)
Kastenberg, H., Rensink, A.: Model Checking Dynamic States in GROOVE. In: Valmari, A. (ed.) SPIN 2006. LNCS, vol. 3925, pp. 299–305. Springer, Heidelberg (2006)
Katz, E., Katz, S.: Verifying scenario-based aspect specifications. In: Fitzgerald, J.S., Hayes, I.J., Tarlecki, A. (eds.) FM 2005. LNCS, vol. 3582, p. 432. Springer, Heidelberg (2005)
Katz, S., Rashid, A.: From aspectual requirements to proof obligations for aspect-oriented systems. In: Proceedings 12th IEEE International Requirements Engineering Conference, pp. 48–57 (2004)
Kleppe, A., Rensink, A.: On a Graph-Based Semantics for UML Class and Object Diagrams. In: Proceedings of the 7th International Workshop on Graph Transformation and Visual Modeling Techniques. Electronic Communications of the EASST, vol. 10, p. 16 (2008)
Kong, J., Zhang, K., Dong, J., Xu, D.: Specifying behavioral semantics of UML diagrams through graph transformations. J. Syst. Softw. 82(2), 292–306 (2009)
Koppen, C., Störzer, M.: PCDiff: Attacking the fragile pointcut problem. In: Gybels, K., Hanenberg, S., Herrmann, S., Wloka, J. (eds.) European Interactive Workshop on Aspects in Software (EIWAS) (September 2004)
Kuske, S.: A Formal Semantics of UML State Machines Based on Structured Graph Transformation. In: Gogolla, M., Kobryn, C. (eds.) UML 2001. LNCS, vol. 2185, pp. 241–256. Springer, Heidelberg (2001)
Mens, T., Taentzer, G., Runge, O.: Analysing refactoring dependencies using graph transformation. Software and Systems Modeling 6(3), 269–285 (2007)
Mens, T., van der Straeten, R., D’Hondt, M.: Detecting and Resolving Model Inconsistencies Using Transformation Dependency Analysis. In: Nierstrasz, O., Whittle, J., Harel, D., Reggio, G. (eds.) MoDELS 2006. LNCS, vol. 4199, pp. 200–214. Springer, Heidelberg (2006)
Mostefaoui, F., Vachon, J.: Design-level Detection of Interactions in Aspect-UML models using Alloy. Journal of Object Technology 6, 137–165 (2007)
Mostefaoui, F., Vachon, J.: Verification of Aspect-UML models using Alloy. In: Proceedings of the 10th international workshop on Aspect-oriented modeling, pp. 41–48. ACM, New York (2007)
Nagy, I., Bergmans, L., Havinga, W., Aksit, M.: Utilizing Design Information in Aspect-Oriented Programming. In: Robert Hirschfeld, A.P., Kowalczyk, R., Weske, M. (eds.) Proceedings of International Conference NetObjectDays, NODe 2005, Erfurt, Germany, September 2005. Lecture Notes in Informatics, vol. P-69, Gesellschaft für Informatik, GI (2005)
Rich, C., Wills, L.: Recognizing a program’s design: a graph-parsing approach. IEEE Software 7(1), 82–89 (1990)
Sampaio, A., Chitchyan, R., Rashid, A., Rayson, P.: EA-Miner: a tool for automating aspect-oriented requirements identification. In: Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering, pp. 352–355. ACM, New York (2005)
Schauerhuber, A., Schwinger, W., Kapsammer, E., Retschitzegger, W., Wimmer, M., Kappel, G.: A survey on aspect-oriented modeling approaches. Relatorio tecnico, Vienna University of Technology (2007)
Visser, W., Havelund, K., Brat, G., Park, S., Lerda, F.: Model checking programs. Automated Software Engineering 10(2), 203–232 (2003)
Whittle, J.: Precise specification of use case scenarios. In: Dwyer, M.B., Lopes, A. (eds.) FASE 2007. LNCS, vol. 4422, pp. 170–184. Springer, Heidelberg (2007)
Whittle, J., Jayaraman, P.K.: Generating hierarchical state machines from use case charts. In: RE 2006, Washington, DC, USA, 2006, pp. 16–25. IEEE Computer Society, Los Alamitos (2006)
Zhao, C., Kong, J., Dong, J., Zhang, K.: Pattern-based design evolution using graph transformation. J. Vis. Lang. Comput. 18(4), 378–398 (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Ciraci, S., Havinga, W., Aksit, M., Bockisch, C., van den Broek, P. (2010). A Graph-Based Aspect Interference Detection Approach for UML-Based Aspect-Oriented Models. In: Katz, S., Mezini, M., Kienzle, J. (eds) Transactions on Aspect-Oriented Software Development VII. Lecture Notes in Computer Science, vol 6210. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-16086-8_9
Download citation
DOI: https://doi.org/10.1007/978-3-642-16086-8_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-16085-1
Online ISBN: 978-3-642-16086-8
eBook Packages: Computer ScienceComputer Science (R0)