Information Technology Reference
In-Depth Information
interdependencies between softgoals (or non-functional requirements). Based on these
interdependencies, we identify concern decompositions. This information is added to
the Decomposition element of the template. 1
The Classification element classifies the concern according to its type, e.g.,
functional, non-functional. The Type element classifies the concern according to its'
crosscutting nature. The Stakeholders element shows which stakeholders interact with
the concern. The Responsibilities element lists the operations that the concern should
provide, while the Contributions element offers a list of positive and negative
interactions with other concerns. This element helps detecting conflicts whenever
concerns contribute negatively to each other. The Stakeholders' importance element
assigns priorities to concerns from the stakeholders' perspective, in an attempt to help
solving the identified conflicting situations. Finally, the Required concerns element
acts as a dependency reference to other concerns in the system. This element will be
used to identify which concerns are crosscutting.
The information about each concern is collected in a template. These concerns, and
their relationships, can be modeled more rigorously using textual or visual
representations, such as UML [22].
2.3 Compose Concerns
This task offers the possibility to compose a set of concerns, including crosscutting
concerns, incrementally, until the whole system is analyzed. A concern is crosscutting
if it is required by more than one other concern. This task is accomplished by taking
into account the information in rows Required concerns in Table 1.
Each composition takes place in a match point in the form of a composition rule. A
match point tells us which concerns (crosscutting or non-crosscutting) should be
composed together in a given point (strongly related with a join point in AspectJ [2]).
A composition rule shows how a set of concerns can be weaved together by means of
some pre-defined operators. In order to accomplish this, we need to identify
crosscutting concerns (those that are required by more than one other concern). At
this point conflicting situations can be detected — whenever concerns that contribute
negatively between them (row List of contribution in Table 1), have the same
importance (row List of stakeholders' importance ) and need to be composed in the
same match point. These conflicting situations are identified automatically by our
AORA tool [5].
2.4 Conflicts Handled by Existing AORE Approaches
Several AORE approaches [6, 7, 17, 18] handle conflicts mostly based on intuitive
and very simple reasoning methods that are error prone and do not allow a rigorous
engineering approach to the problem. For example, while [6] proposes allocating
different priorities to conflicting concerns, in [7] conflict solving is based on the
principle of iteratively identifying the dominant candidate aspect, or crosscutting
concern, with respect to a set of stakeholders' requirements. This is achieved by
importance comparison, which may involve trade-off negotiations with stakeholders.
For example, suppose we have four concerns with priority “Very Important” to all
1 Note that other types of concerns can also be decomposed into simpler concerns.
Search WWH ::




Custom Search