ABSTRACT
To some extent, contemporary software development has incorporated the AspectJ style of aspect-oriented programming. This style is denoted as asymmetric since it explicitly distinguishes between aspects and the base. Although academic symmetric aspect-oriented approaches, in which there is no such distinction, gained no direct acceptance in industry, several approaches used in practice exhibit symmetric aspect-oriented features. As shown in this paper, this ranges from peer use cases and features as analysis and design concepts to particular programming language mechanisms such as traits (Scala), open classes (Ruby), or prototypes (JavaScript). Even inter-type declarations and advices as known from AspectJ can be used to emulate symmetric aspect-oriented programming. The examples given in this paper indicate the basic possibilities for this. However, detailed studies of the corresponding academic and industry approaches should be carried.
- M. Aksit and B. Tekinerdogan. Solving the modeling problems of object-oriented languages by composing multiple aspects using composition filters. In Proc. of the Aspect-Oriented Programming Workshop at ECOOP'98, Brussels, Belgium, 1998.Google Scholar
- J. Arlow and I. Neustadt. UML 2 and the Unified Process. Addison-Wesley, 2005.Google Scholar
- J. Bálik and V. Vranic. Sustaining composability of aspect-oriented design patterns in their symmetric implementation. In 2nd International Workshop on Empirical Evaluation of Software Composition Techniques, ESCOT 2011, at ECOOP 2011, Lancaster, UK, July 2011.Google Scholar
- S. Clarke and E. Baniassad. Aspect-Oriented Analysis and Design: The Theme Approach. Addison-Wesley, 2005. Google ScholarDigital Library
- T. Cottenier, A. van den Berg, and T. Elrad. The motorola WEAVR: Model weaving in a large industrial context. In Proc. of 6th International Conference on Aspect-Oriented Software Development, Vancouver, British Columbia, Canada, Mar. 2007. ACM.Google Scholar
- T. Cottenier, A. van den Berg, and T. Elrad. Motorola WEAVR: Aspect orientation and model-driven engineering. Journal of Object Technology, 6 (7): 51--88, Aug. 2007. http://www.jot.fm/issues/issue_2007_08/article3.Google ScholarCross Ref
- A. R. de, M. Hendriks, W. Havinga, P. Durr, and L. Bergmans. Compose*: a language- and platform-independent aspect compiler for composition filters. In Proc of 1st International Workshop on Advanced Software Development Tools and Techniques, WASDeTT 2008, Paphos, Cyprus, July 2008.Google Scholar
- V. Driessen. A successful Git branching model, Jan. 2010. http://nvie.com/posts/a-successful-git-branching-model/.Google Scholar
- W. H. Harrison, H. L. Ossher, and P. L. Tarr. Asymmetrically vs. symmetrically organized paradigms for software composition. Technical Report RC22685, IBM Research, Dec. 2002.Google Scholar
- A. Hubaux, A. Classen, M. Mendonça, and P. Heymans. A preliminary review on the application of feature diagrams in practice. In Proc. of International Workshop on Variability Modelling of Software-intensive Systems, VaMoS 2010, Linz, Austria, Jan. 2010.Google Scholar
- I. Jacobson and P.-W. Ng. Aspect-Oriented Software Development with Use Cases. Addison-Wesley, 2004. Google ScholarDigital Library
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In Proc. of 11th European Conference on Object-Oriented Programming, ECOOP'97, LNCS 1241, Jyvaskyla, Finland, June 1997. Springer.Google ScholarCross Ref
- R. Menkyna and V. Vrani. Aspect-oriented change realization based on multi-paradigm design with feature modeling. In Proc. of 4th IFIP TC2 Central and East European Conference on Software Engineering Techniques, CEE-SET 2009, LNCS 7054, Krakow, Poland, Oct. 2009. Springer. Google ScholarDigital Library
- H. Ossher and P. Tarr. Multi-dimensional separation of concerns and the hyperspace approach. In Software Architectures and Component Technology. Kluwer, 2002.Google ScholarCross Ref
- A. Rashid, T. Cottenier, P. Greenwood, R. Chitchyan, R. Meunier, R. Coelho, M. Südholt, and W. Joosen. Aspect-oriented software development in practice: Tales from AOSD-Europe. Computer, 43 (2): 19--26, Feb. 2010. Google ScholarDigital Library
- T. M. H. Reenskaug. The common sense of object oriented programming. http://folk.uio.no/trygver/2008/commonsense.pdf, 2008.Google Scholar
- T. M. H. Reenskaug and J. O. Coplien. The DCI architecture: A new vision of object-oriented programming. http://www.artima.com/articles/dci_vision.html, Mar. 2009.Google Scholar
- N. Schärli, S. Ducasse, O. Nierstrasz, and A. P. Black. Traits: Composable units of behaviour. In Proc. of 17th European Conference on Object-Oriented Programming, ECOOP 2003, LNCS 2743, Darmstadt, Germany, July 2003. Springer.Google ScholarCross Ref
- P. Tarr and H. Ossher. Hyper/J User and Instalation manual. IBM Research, 2000.Google Scholar
- V. Vranic and P. Michalco. Are themes and use cases the same? Information Sciences and Technologies, Bulletin of the ACM Slovakia, 2 (1): 66--71, 2009. Special Section on Early Aspects at AOSD 2010.Google Scholar
- V. Vranic, R. Menkyna, M. Bebjak, and P. Dolog. Aspect-oriented change realizations and their interaction. e-Informatica Software Engineering Journal, 3 (1): 43--58, 2009.Google Scholar
- D. Wiese, R. Meunier, and U. Hohenstein. How to convince industry of AOP. In Proc. of 6th International Conference on Aspect-Oriented Software Development, Vancouver, British Columbia, Canada, Mar. 2007. ACM.Google Scholar
Index Terms
- Symmetric aspect-orientation: some practical consequences
Recommendations
Using aspect-orientation to simplify concurrent programming
AOSD '11: Proceedings of the tenth international conference on Aspect-oriented software development companionThe Java programming language offers several basic constructs for concurrent programming. Despite covering everything needed from a functional point of view, the constructs are difficult to use since they require a lot of infrastructural statements ...
Cooperative aspect-oriented programming
Aspect-oriented programming (AOP) seeks to improve software modularity via the separation of cross-cutting concerns. AOP proponents often advocate a development strategy where programmers write the main application (base code), ignoring cross-cutting ...
Aspect-oriented programming
ESEC/FSE-9: Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineeringAspect-oriented programming (AOP) is a technique for improving separation of concerns in software design and implementation. AOP works by providing explicit mechanisms for capturing the structure of crosscutting concerns. This tutorial shows how to use ...
Comments