Aspect-oriented Component Engineering

Overview

Aspect-oriented component engineering (AOCE) is a new method for developing more reusable, extensible and dynamically adaptable software components. AOCE uses a concept of horizontal slices through vertically-decomposed software components, called "aspects", to characterise cross-cutting functional and non-functional properties of components. Common, systemic aspects include user interfaces, collaborative work, distribution, persistency, memory management, transaction processing, security, integrity and so on. Components may provide or require one or more "aspect details" relating to a particular aspect,  such as viewing mechanism, extensible affordance and interface kind (user interface aspects); event generation, transport and receiving (distribution aspects); data store/retrieve and indexing (persistency aspects); authentication, encoding and access rights (security aspects); transaction atomicity, concurrency control and logging strategy (transaction aspects); and so on. Each aspect detail as a number of properites, relating to functional and/or non-functional characteristics of the aspect detail. For example, for distribution we might be interested in event generation properties e.g. generated before/after state change; transitive and aggregate events propagated; events abortable; number of events per second; size of events; event types and/or formats; and so on.Combining components with matching provided and required services is necessary to correctly configure a component-based application.The use of aspect characterisations provides developers with multiple perspectives on a component-based system, and allows them to reason about component interaction in a variety of ways.

We have applied AOCE at the component requirements and specification, design, implementation and run-time deployment levels. The following sections briefly describe and illustrate AOCE in use for these phases of the software component development lifecycle. Further uses of AOCE may include testing components by generating test plans and oracles from aspects, further dynamic configuration support, semi-automated translation between aspect ontologies, and use of AOCE techniques with various 3rd party component development methods and implementation technologies.

Requirements-level Aspects

 

 

Figure 1. Requirements-level component aspect specfications (from [1]).

Software Architecture Support for Aspects

 



Figure 2. Design-level components and aspects in JViews (from [1]).

Design and Implementation-level Support

 

 


Figure 3. JViews framework classes for aspect codification (from [1]).


Figure 4. Examples of run-time use of aspects.

Run-time Usage



Figure 5. Human-readable aspect detail information.

Figure 6. Searching an aspect-based component repository.

Selected Publications

[1] Grundy, J.C. Multi-perspective specification, design and implementation of software components using aspects, in International Journal of Software Engineering and Knowledge Engineering, Vol. 20, No. 6, December 2000, World Scientific.Postscript

[2] Grundy, J.C. An implementation architecture for aspect-oriented component engineering, In Proceedings of the 5th International Conference on Parallel and Distributed Processing Techniques and Applications: Special Session on Aspect-oriented Programming, Las Vagas, June 26-29 2000, CSREA Press.Postscript

[3] Grundy, J.C. and Hosking, J.G. Developing Adaptable User Interfaces for Component-based Systems, In Proceedings of the 1st Australasian User Interface Conference, Canberra, Australia Jan 30-Feb 2 2000, IEEE CS Press, pp. 17-25. Postscript

[4] Grundy, J.C. Storage and retrieval of Software Components using Aspects, In Proceedings of the 2000 Australasian Computer Science Conference, Canberra, Australia, Jan 30-Feb 3 2000, IEEE CS Press, pp 95-103.Postscript

[5] Grundy, J.C. and Hosking, J.G. Human-Computer Interaction Issues for the Configuration of Component-based Software Systems, In Proceedings of 1999 Australian Human-Computer Interaction Conference, Wagga Wagga, Australia,Charles Sturt University Press, Nov 28-30 1999, pp. 37-43. Postscript

[6] Grundy, J.C. Supporting aspect-oriented component-based systems engineering, In Proceedings of the 11th International Conference on Software Engineering and Knowledge Engineering, Kaiserslautern, Germany, 16-19 June 1999, KSI Press, pp. 388-395. Postscript

[7] Grundy, J.C. Aspect-oriented Requirements Engineering for Component-based Software Systems, In Proceedings of the 1999 IEEE Symposium on Requirements Engineering, Limmerick, Ireland, 7-11 June, 1999, IEEE CS Press, pp. 84-91. Postscript

[8] Grundy, J.C., Mugridge, W.B., Hosking, J.G., and Apperley, M.D., Tool integration, collaborative work and user interaction issues in component-based software architectures, In Proceedings of TOOLS Pacific '98, Melbourne, Australia, 24-26 November, IEEE CS Press. Postscript
 

Back to John Grundy's Home Page...

Dr John Grundy
Department of Computer Science
University of Auckland
Private Bag 92019
Auckland
New Zealand

Phone: +64-9-3737-599 ext 8761
FAX:   +64-9-3737-453
WWW:    http://www.cs.auckland.ac.nz/~john-g


John Grundy (john-g@cs.auckland.ac.nz). Last updated: 28/01/2000