ABSTRACT
The contribution of this work is the design, implementation, and early evaluation of a programming language that unifies classes and aspects. We call our new module construct the classpect. We make three basic claims. First, we can realize a unified design without significantly compromising the expressiveness of current aspect languages. Second, such a design improves the conceptual integrity of the programming model. Third, it significantly improves the compositionality of aspect modules, expanding the program design space from the two-layered model of AspectJ-like languages to include hierarchical structures. To support these claims, we present the design and implementation of Eos-U, an AspectJ-like language based on C# that supports classpects as the basic unit of modularity. We show that Eos-U supports layered designs in which classpects separate integration concerns flexibly at multiple levels of composition. The underpinnings of our design include support for aspect instantiation under program control, instance-level advising, advising as a general alternative to object-oriented method invocation and overriding, and the provision of a separate join-point-method binding construct.
- AspectJ : http://eclipse.org/aspectj]]Google Scholar
- AspectC++, http://www.aspectc.org.]]Google Scholar
- AspectR: "Simple Aspect Oriented Programming in Ruby," http://aspectr.sourceforge.net/.]]Google Scholar
- AspectWerkz: http://aspectwerkz.codehaus.org/]]Google Scholar
- Aldrich, J., "Open Modules: A Proposal for Modular Reasoning in Aspect-Oriented Programming.", In the Proceedings of the Workshop on Foundations of Aspect Languages (FOAL'04), March 2004.]]Google Scholar
- Brooks, F. P. Jr., "The Mythical Man-Month: Essays on Software Engineering", Addison-Wesley, 1975.]] Google ScholarDigital Library
- Dijkstra, E. W., "The Humble Programmer", Communications of the ACM, Vol 15, No: 10, pp. 859--866, 1972.]] Google ScholarDigital Library
- Eos: http://www.cs.virginia.edu/~eos]]Google Scholar
- Garlan, D., and Notkin, D., "Formalizing Design Spaces: Implicit Invocation Mechanisms". VDM '91: Formal Software Development Methods, Oct. 1991.]] Google ScholarDigital Library
- Filman, R. E., and Friedman. D. P., "Aspect oriented programming is quantification and obliviousness", In OOPSLA 2000 Workshop on Advanced Separation of Concerns, Minneapolis, MN, Oct. 2000.]]Google Scholar
- Harrison W., Ossher H., and Tarr P., "Asymmetrically vs. Symmetrically Organized Paradigms for Software Composition", IBM Research Report RC22685 (W0212-147) December 30, 2002.]]Google Scholar
- Hirschfeld, R., "AspectS -- Aspects in Squeak", ECOOP'2002 Workshop on Generative Programming, Jun 2002.]]Google Scholar
- Kiczales, G., "Personal Communication with Kevin Sullivan", Jan 2005.]]Google Scholar
- Kiczales, G., "The fun has just begun", Key note address of 2 nd International Conference on Aspect-Oriented Software Development, Boston, MA, 2003.]]Google Scholar
- Kiczales, G.., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J. and Irwin, J., "Aspect-oriented programming," Proceedings of the European conference on object-oriented programming (ECOOP), Springer-Verlang, Lecture Notes on Computer Science 1241, June 1997.]]Google Scholar
- Laddad, R., "AspectJ in Action: Practical Aspect-Oriented Programming", Manning publications, 2004.]] Google ScholarDigital Library
- Lamping, J., "The role of the base in aspect-oriented programming", First Workshop on Multi-dimensional separation of concerns in object-oriented systems (at OOPSLA '99).]] Google ScholarDigital Library
- MacLennan, B. J., "Principles of Programming Languages: Design, Evaluation, and Implementation", 3rd Edition, Oxford University Press, 1999.]] Google ScholarDigital Library
- Mezini, M., and Ostermann, K., "Conquering Aspects with Caesar", Proceedings of the 2 nd international conference on Aspect-oriented software development (AOSD 03), Mar 2003, Boston, MA, USA, pp. 90--100.]] Google ScholarDigital Library
- C#: http://msdn.microsoft.com/net/ecma/.]]Google Scholar
- .Net Framework: http://msdn.microsoft.com]]Google Scholar
- Parnas, D. L., "On the Criteria to be Used in Decomposing Systems into Modules", Communications of the ACM, 15(12):1053--1058, Dec 1972.]] Google ScholarDigital Library
- Rajan, H. and Sullivan, K., "Eos: Instance-Level Aspects for Integrated System Design", Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering (ESEC/FSE 03), Helsinki, Finland, Sep 2003, pp 291--306.]] Google ScholarDigital Library
- Rajan, H. and Sullivan, K., "Need for Instance Level Aspects with Rich Pointcut Language", Workshop on Software Engineering Properties of Languages for Aspect Technologies (SPLAT) held in conjunction with 2 nd international conference on Aspect-oriented software development, Boston, MA, USA, Mar 2003.]]Google Scholar
- Sakurai, K., Masuhara H., Ubayashi N., Matsuura, S., Komiya S., "Association Aspects", Proceedings of the 3rd international conference on Aspect-oriented software development (AOSD 04), Lancaster, UK, Mar 2004, pp. 16--25.]] Google ScholarDigital Library
- Sullivan, K., "Mediators: Easing the Design and Evolution of Integrated Systems", Ph.D. dissertation, University of Washington, 1994.]] Google ScholarDigital Library
- Sullivan, K., Gu, L., Cai, Y., "Non-modularity in Aspect-Oriented Languages: Integration as a Crosscutting Concern for AspectJ", Proceedings of the 1st international conference on Aspect-oriented software development (AOSD 02), Enschede, The Netherlands, Apr 2002, pp. 19--26.]] Google ScholarDigital Library
- Sullivan, K. and Notkin, D., "Reconciling environment integration and software evolution", ACM Transactions on Software Engineering and Methodology 1, 3, July 1992, pp. 229--268.]] Google ScholarDigital Library
- Sullivan, K., Kalet, I., Notkin, D., "Evaluating the mediator method: Prism as a case study", IEEE Transactions on Software Engineering, Vol. 22, No. 8, August 1996. pp. 563--579.]] Google ScholarDigital Library
- Tarr, P. and Ossher, H., "Multi Dimensional Separation of Concerns using Hyperspaces", IBM Research Report 21452, April, 1999.]]Google Scholar
- Tarr, P. and Ossher, H., "Hyper/J™ User and Installation Manual", IBM Corporation.]]Google Scholar
Index Terms
- Classpects: unifying aspect- and object-oriented language design
Recommendations
Survey on early aspects approaches: non-functional crosscutting concerns integration in software sytems
CEA'10: Proceedings of the 4th WSEAS international conference on Computer engineering and applicationsFrequently non-functional requirements crosscut software systems and can deeply affect software project decisions. Aspect-oriented approaches intend to identify and specify crosscutting concerns in separate units, named aspects. In this context, this ...
Unifying aspect- and object-oriented design
The contribution of this work is the design and evaluation of a programming language model that unifies aspects and classes as they appear in AspectJ-like languages. We show that our model preserves the capabilities of AspectJ-like languages, while ...
Modular Software Design with Crosscutting Interfaces
Aspect-oriented programming languages such as AspectJ offer new mechanisms for decomposing systems into modules and composing modules into systems. Common ways of using these mechanisms couple aspects to complex, changeable implementation details, which ...
Comments