The Aspect-Oriented Software Architecture Design Portal

 Advanced Separation of Concerns at the Architecture Design Level
 Identifying and Specifying Early Aspects
 

Home
Software Architecture
AOSD
Architectural Aspects
Publications
Events
Related Links
AOSAD Project
E-Tutorial

Site Map
Search
Contact

Edited by:
Bedir Tekinerdogan

State of the Art ASAAM AODA

 

Aspectual Software Architecture Analysis Method

Software architecture analysis methods aim to predict the quality of a system before it has been developed. In general, the quality of the architecture is validated by analyzing the impact of predefined scenarios on architectural components. Hereby, it is implicitly assumed that an appropriate refactoring of the architecture design can help in coping with critical scenarios and mending the architecture. There are however also concerns at the architecture design level which inherently crosscut multiple architectural components, which cannot be localized in one architectural component and which, as such, can not be easily managed by using conventional abstraction mechanisms. We propose the Aspectual Software Architecture Analysis Method (ASAAM) to explicitly identify and specify these architectural aspects and make them transparent early in the software development life cycle. ASAAM introduces a set of heuristic rules that help to derive architectural aspects and the corresponding tangled architectural components from scenarios.

ASAAM builds on the Software Architecture Analysis Method (SAAM) and applies scenarios to identify aspects. ASAAM is complementary to SAAM and includes explicit mechanisms for identifying architectural aspects and the related tangled components.  

It appears that there are several similarities between aspects and scenarios. First, aspects are crosscutting concerns, that is, concerns that interact over many components. In the same way, (indirect) scenarios also require changes to several components and can be said to ‘crosscut’ components. Second, aspects are relative to the problem description and the given decomposition of the design. Similarly, the categorization of scenarios into direct and indirect scenarios is completely dependent on the problem description and the given architecture design. Based on these observations we think that scenarios provide potential architectural aspects.

The basic activities for the ASAAM are illustrated in the following Figure.


Figure 1. Activities of ASAAM

ASAAM, like the SAAM, takes as input a problem description, a requirements statement and architecture descriptions. In addition to developing a candidate architecture and scenarios, ASAAM comprises the following steps:

1. Candidate architecture development

A (candidate) architecture design is provided that will be analysed with respect to the required quality factors and potential aspects.

2. Develop scenarios

This is similar to SAAM. Scenarios from various stakeholders are collected, which represent both important uses and anticipated uses of the software architecture.

3. Individual scenario evaluation and aspect identification

Scenarios are firstly categorized into direct and indirect scenarios. Complementary to SAAM, the scenario evaluation also searches for potential architectural aspects. The application of the heuristic rules will result in a further classification of the scenarios into direct scenarios, indirect scenarios, aspectual scenarios and architectural aspects. Aspectual scenarios are derived from direct or indirect scenarios and represent potential aspects. By aspect domain analysis the corresponding aspect for the scenario is searched and described.

4. Scenario interaction assessment and component classification

The goal of this step is to assess whether the architecture supports an appropriate separation of concerns. This includes both non-crosscutting concerns and crosscutting concerns, i.e. aspects. For each component both direct and indirect components are analyzed and categorized into cohesive component, tangled component, composite component, or ill-defined component.

5. Refactoring of architecture

Based on the scenario interaction assessment and component classifications a refactoring of the architecture is proposed. The refactoring can be done using conventional abstraction techniques, such as design patterns, or using aspect-oriented techniques. The architectural aspects and the tangled components are explicitly described in the architecture.

SAAM considers the set of scenarios to be complete when the addition of a new scenario no longer disturbs the architecture design. However, there is a risk that for a given set of scenarios this process will never be completed, that is, the architecture will need to be disturbed all the time. This may even the case if all the architectural components in the system are modular. The reason why the set of scenario analysis will not be completed is the fact that a scenario might include a potential architectural aspect. As we have described before, an architectural aspect is a concern that crosscuts across multiple architectural components.

In the ASAAM we have defined a set of heuristic rules to categorize scenarios into direct scenarios, indirect scenarios and architectural aspects. The heuristic rules are expressed using conditional statements in the following form:

IF <condition> THEN <consequent>

The condition part includes an artifact that is analyzed. In this context, an artifact is a work product in the software architecture design process. The basic artifacts in ASAAM are as follows:

ARCHITECTURE
PROBLEM DESCRIPTION
SCENARIO
ASPECT
COMPONENT.

As we will see, each of these artifacts are further specialized into intermediate representations to support the software engineer in processing the heuristic rules of ASAAM. The consequent part of each rule includes an action, which usually includes a transformation of an artifact to another artifact.

Figure 2. Scenario artifact diagram

The above Figure shows the scenario artifact diagram of ASAAM, which defines the relations among the heuristic rules and the scenario artifacts. The rounded rectangles represent artifacts, the labeled arrows the heuristic rules. The bold rounded rectangles represent the artifacts that are finally delivered. In the individual scenario analysis and aspect identification process the delivered artifacts are the following:

Direct Scenario, describes a scenario that can directly perform the provided scenarios. 

Indirect Scenario, describes a scenario which requires some changes to the component that it interacts with.

Aspectual Scenario, a direct or indirect scenario which is scattered over different architectural components and which cannot be captured in a single component.

Architectural Aspect, a well-defined concern transformed from an aspectual scenario based on the domain models derived from a domain analysis process.

The heuristic rules for scenario evaluation in ASAAM are shown in Figure 3. The rules are numbered from R0 to R6 and include the manipulation of the artifacts shown in the scenario artifact diagram in Figure 2 .

R0:
Develop SCENARIO artifacts based on PROBLEM DESCRIPTION

R1:
IF
SCENARIO does not require any changes to architectural description
THEN SCENARIO becomes DIRECT SCENARIO

R2:
IF
SCENARIO requires changes to one or more ARCHITECTURAL COMPONENTs
THEN SCENARIO becomes INDIRECT SCENARIO

R3:
IF
INDIRECT SCENARIO can be resolved after refactoring
THEN INDIRECT SCENARIO is DIRECT SCENARIO

R4:
IF
DIRECT SCENARIO is scattered and cannot be localized in one component
THEN DIRECT SCENARIO is  ASPECTUAL SCENARIO

R5:
IF
INDIRECT SCENARIO is scattered and cannot be localized in one component
THEN INDIRECT SCENARIO is  ASPECTUAL SCENARIO

R6:
Derive ARCHITECTURAL ASPECT from ASPECTUAL SCENARIO

Figure 3. Heuristic rules for scenario evaluation

After scenarios have been classified ASAAM focuses on scenarios at individual components. Figure 4 shows the component artifact diagram in ASAAM which shows the relation between the various corresponding heuristic rules and the intermediate forms of component artifacts. ASAAM delivers the following type of components (bold rounded rectangles in the figure):

Cohesive Component, which is a component that is well defined and performs semantically close scenarios.

Composite Component, a component consisting of several sub-components that each perform a semantically close set of scenarios.

Tangled Component, a component that performs an aspectual scenario which is either directly or indirectly performed by the component.

Ill-defined Component, a component that includes semantically distinct scenarios but which cannot be decomposed or does not include an aspectual scenario.

Further, the artifacts Component, and Tentative Tangled Component represent the intermediate artifacts that help to identify the above four types of components. The heuristic rules R7 to R18 are shown in Figure 7.

Figure 4. Component artifact diagram

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Aspectual Scenario

Architectural Aspect