Abstract
The composition of separate concerns is a cornerstone for the construction of complex software. By now, aspect-oriented techniques have been established as the sine qua non in several application areas. However, their abilities to cope with composition conflicts are mostly limited to the linear ordering of aspects. This paper describes a more general and practical approach for the resolution of composition conflicts as it is realised in our general-purpose transformation system LLTS.
Our system divides a composition into two phases. In the expansion phase separate transformations add concern code within their isolated copies of the base code. In the subsequent contraction phase the manipulations of the first phase are compared and merged wherever possible. A hinting mechanism guides the semi-automatic merging on three levels: Conflicts are detected using compatibility relations between operators, by reconciling annotations of complex transformation tasks, and based on semantic predicates of the base code language. Conflicts are reported to the user with a comprehensive explanation and can be resolved with manual by-case deviations from the original transformation code. As a result, conflicts can be remedied on a finer granularity, e.g., by revising only parts of a transformation in a certain context.
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
Elrad, T., Filman, R., Bader, A.: Editorial: Aspect-oriented programming (and following articles). In: Elrad, T., Filman, R., Bader, A. (eds.) Communications of the ACM, vol. 44(10) (2001)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–355. Springer, Heidelberg (2001)
Ostermann, K., Kniesel, G.: Independent extensibility - an open challenge for aspectj and hyper/j. In: Lopes, C.V. (ed.) ECOOP 2000 Workshop on Aspects and Dimension of Concerns (2000)
Kleppe, A., Warmer, J., Bast, W.: MDA Explained. The model driven architecture: practice and promise. Addison-Wesley, Reading (2003)
W3C: XML Path Language (XPath) 2.0, http://www.w3.org/TR/xpath20/
Steele, G.: COMMON LISP: the language. Digital Press (1990), ISBN 1-55558-041-6
Schmied, A.I.: The LLTS Transformation Language. Technical Report TR-2007-1, Institute of Distributed Systems, Ulm University, Germany (online publication pending) (2007)
Heuzeroth, D., Aßmann, U., Trifu, M., Kuttruff, V.: The COMPOST, COMPASS, Inject/J and RECODER tool suite for invasive software composition: Invasive Composition with COMPASS aspect-oriented connectors. In: Lämmel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2005. LNCS, vol. 4143, Springer, Heidelberg (2006)
Kniesel, G., Koch, H.: Static composition of refactorings. Sci. Comput. Program. 52(1-3), 9–51 (2004)
Mens, T., Kniesel, G., Runge, O.: Transformation dependency analysis - a comparison of two approaches. In: Rousseau, R., Urtado, C., Vauttier, S., (eds.) LMO, Hermès Lavoisier, pp. 167–184 (2006)
Taentzer, G.: AGG: A graph transformation environment for modeling and validation of software. In: Pfaltz, J.L., Nagl, M., Böhlen, B. (eds.) AGTIVE 2003. LNCS, vol. 3062, Springer, Heidelberg (2004)
Havinga, W., Nagy, I., Bergmans, L., Aksit, M.: A graph-based approach to modeling and detecting composition conflicts related to introductions. In: Barry, B.M., de Moor, O. (eds.) AOSD, pp. 85–95. ACM, New York (2007)
Andrews, J.H.: Process-algebraic foundations of aspect-oriented programming. In: Yonezawa, A., Matsuoka, S. (eds.) Reflection 2001. LNCS, vol. 2192, pp. 187–209. Springer, Heidelberg (2001)
Douence, R., Fradet, P., Südholt, M.: Composition, reuse and interaction analysis of stateful aspects. In: Murphy, G.C., Lieberherr, K.J. (eds.) AOSD, pp. 141–150. ACM, New York (2004)
Tanter, É.: Aspects of composition in the Reflex AOP kernel. In: Löwe, W., Südholt, M. (eds.) SC 2006. LNCS, vol. 4089, pp. 98–113. Springer, Heidelberg (2006)
Lagaisse, B., Joosen, W., De Win, B.: Managing semantic interference with aspect integration contracts. In: International Workshop on Software-Engineering Properties of Languages for Aspect Technologies (SPLAT), Lancaster, United Kingdom (2004)
Greenwood, P., Lagaisse, B., Sanen, F., Coulson, G., Rashid, A., Truyen, E., Joosen, W.: Interactions in AO middleware. In proceedings of Workshop on Aspects, dependencies and Interactions at ECOOP 2007 (2007)
Pawlak, R., Duchien, L., Seinturier, L.: CompAr: Ensuring safe around advice composition. In: Steffen, M., Zavattaro, G. (eds.) FMOODS 2005. LNCS, vol. 3535, pp. 163–178. Springer, Heidelberg (2005)
Durr, P., Bergmans, L., Aksit, M.: Reasoning about semantic conflicts between aspects. In: Proceedings of ADI 2006 Aspect, Dependencies, and Interactions Workshop, held at ECOOP, Lancaster University (2006)
Apel, S., Liu, J.: On the notion of functional aspects in aspect-oriented refactoring. In: Proceedings of ADI 2006 Aspects, Dependencies, and Interactions Workshop, held at ECOOP, Lancaster University (2006)
Störzer, M., Sterr, R., Forster, F.: Detecting precedence-related advice interference. In: 21st IEEE International Conference on Automated Software Engineering (ASE 2006) (2006)
Ducasse, S., Nierstrasz, O., Schärli, N., Wuyts, R., Black, A.P.: Traits: A mechanism for fine-grained reuse. ACM Transactions on Programming Languages and Systems 28(2), 331–388 (2006)
Meyer, B.: Harnessing multiple inheritance. JOOP (Journal of Object-Oriented Programming) 1(4), 48–51 (1988)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Schmied, A.I., Hauck, F.J. (2008). Practical Conflict Resolution for the Composition of Program Transformations. In: Pautasso, C., Tanter, É. (eds) Software Composition. SC 2008. Lecture Notes in Computer Science, vol 4954. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-78789-1_19
Download citation
DOI: https://doi.org/10.1007/978-3-540-78789-1_19
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-78788-4
Online ISBN: 978-3-540-78789-1
eBook Packages: Computer ScienceComputer Science (R0)