Introduction
Taosad stands for The Aspect-Oriented
Software Architecture Design and is actually a synthesis of Tao
(Aspect-Orientation) and Sad (Software Architecture Design). The simplest
meaning of Tao is "way" or "rule". This site is a port(al) aiming
to present/discuss a way for aspect-oriented software architecture design.
It
is generally accepted that software architecture design should support
the required software system qualities such as robustness, reusability and
adaptability. For ensuring these quality factors the common assumption is that
identifying the fundamental concerns for architecture design is necessary. A
number of software architecture design approaches have been introduced to derive
the fundamental architectural abstractions.
It appears that some concerns, even at the
architectural design level, can not be easily localized and specified in
individual architectural components. Similar to the notion of aspect at the
programming level, we say that these concerns are crosscutting and denote
so-called architectural aspects. Since the crosscutting property
of architectural aspects is inherent we claim that these cannot be undone simply
by redefining the software architecture using conventional architectural
abstractions. In fact, we believe that like various aspect-oriented programming
abstractions we
need explicit mechanisms to identify, specify and evaluate aspects at the
architecture design level.
Current software architecture design methods do not make an explicit distinction between
conventional architectural concerns that can be localized using current
architectural abstractions and architectural concerns that crosscut multiple
architectural components. The risk is that potential aspects might be easily
overlooked during the software architecture design and remains unsolved at the
design and programming level. This may lead to tangled code in the system and
consequently the quality factors that the architecture analysis methods attempt
to verify will still be impeded.
Aspect-Oriented Software Development (AOSD) is an emerging technology that provides explicit abstractions
and mechanisms to model concerns that tend to crosscut multiple system
components. Existing aspect-oriented software development approaches
have basically focused on identifying the aspects at the programming level and
less attention has been taken on the impact of crosscutting concerns at the
architecture design level. In a fashion similar to traditional software
engineering (procedural, functional, logic, object-oriented), aspect-orientation
is now starting to follow a cycle of natural progression from programming up to
design and analysis phases. Despite the interest and the recognition of its
importance, there is still a lack of appropriate techniques to identify concerns
at the software architecture design level.
To solve the above problems is is worthwhile to
integrate the ideas in software architecture design and aspect-oriented software
development, and for this the term Aspect-Oriented Software Architecture
Design is coined. From a software architecture design perspective this will
improve and broaden the understanding of the identification and management of
architecture design concerns. In this way, not only functional components will
be addressed as architecture design components, but also crosscutting
architectural concerns will be explicitly handled. From an aspect-orientation
perspective this project will enhance the understanding of aspects at the
earlier phases of the software development process, and likewise will improve
the aspect-orientation approach through the overall software life cycle.