Multi-perspective specification, design and implementation of software components using aspects

Research output: Contribution to journalArticleResearchpeer-review

21 Citations (Scopus)


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. Aspect-oriented 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.

Original languageEnglish
Pages (from-to)713-734
Number of pages22
JournalInternational Journal of Software Engineering and Knowledge Engineering
Issue number6
Publication statusPublished - 1 Dec 2000
Externally publishedYes

Cite this