Current approaches to component-based systems engineering tend to focus on low-level software component interface design and implementation. This often leads to the development of components whose services are hard to understand and combine, make too many assumptions about other components they can be composed with and component documentation that is too low-level. Aspectoriented component engineering is a new methodology that uses a concept of different system capabilities ("aspects") to categorise and reason about inter-component provided and required services. It supports the identification, description and reasoning about high-level component functional and non-functional requirements grouped by different systemic aspects, and the refinement of these requirements into design-level software component service implementation aspects. Aspect information is used to help implement better component interfaces and to encode knowledge of a component's capabilities for other components, developers and end users to access. We describe and illustrate the use of aspect-oriented component engineering techniques and notations to specify, design and implement software components, report on some basic tool support, and our experiences using the approach to build some complex, component-based software systems.
In REF an approach is described for aspect-oriented component engineering techniques together with the corresponding notations.
Multi-Perspective Specification, Design and Implementation of Software Components Using Aspects
International Journal of Software Engineering and Knowledge Engineering
Computer Science