Identify Required Concerns. This step identifies
concern dependencies for functional concerns. For
example, if the “Update” concern requires the
“Persistence” concern, it is not possible to achieve
“Update” without “Persistence”. Two concerns
requiring each other indicate an analysis error, or
that perhaps they should be merged together.
Identify Stakeholder Priorities. Different
stakeholders may allocate different priorities to the
same concerns: Very Important, Important, Medium,
Low, Very Low, or Don’t Care – the default value.
Decompose Concerns. Functional concerns can be
decomposed, as in object-oriented or component-
based software development. Non-functional
concerns, on the other hand, can be decomposed
using a softgoal dependency graph (Chung et al.,
2000) with a set of softgoals or operationalizations.
When performing the system analysis, the choice of
which softgoals and operationalizations are to be
implemented is based on the graph analysis.
Build Concern Models. Concern models can be
built using UML 2.0. A simple set of rules help to
generate a use case diagram: (i) for each stakeholder,
map to an actor; (ii) for each functional concern,
map to an use case and link to the actors
(stakeholders) that have an interest on it; (iii) for
each “required” relationship, create an <<include>>,
<<extend>>, or <<constrain>> (for non-functional
concerns) relationship in the diagram; (iv) for each
concern decomposition, create a <<part of>>
relationship between the concern and its
decomposed concerns.
3.5 Analyse Match Points
The purpose of this task is to compose the concerns
to allow the identification and resolution of
conflicting situations. This task is supported by
automatically generated documentation from the
analysis specification.
Review Stakeholders. This review is made through
a table composed of three columns: Name,
Description, and Role, where the stakeholder related
information is presented.
Review Concerns. This review is accomplished
through the use of two tables, showing functional
and non-functional concerns. Both tables share three
columns: Name, Description, and Stakeholders. The
non-functional concerns table has an extra column,
Classification according to Stapleton (1997).
Concerns are grouped according to their hierarchy.
For concerns with a parent concern, the parent(s)
path of specialization is depicted, where “Security >
Performance”, for example, means that the concern
“Security” is specialized by the concern
“Performance”, following the same convention as
OCL.
Review Concern Contributions. A table “concerns
vs. concerns” is built to provide a global view of the
concerns contributions. This table can be simplified
by pruning the unused rows and columns, but even
doing that, in some cases it may not be a scalable
visualization. For these cases, it is preferable to view
this information using lists. An example is shown in
Figure 2 for a test case.
Review Required Concerns. To achieve this, a
table “concerns vs. required concerns” is proposed.
Again, a scalability problem may occur, so it is also
proposed to use lists as an auxiliary visualization of
this content. A cell with a checked mark (“√”)
means that the concern in the row requires the
concern in the column.
Identify Crosscutting Concerns. A concern is
crosscutting if it is required by more than one
concern. Crosscutting concerns, or candidate
aspects, represent functionalities and constraints that
are scattered among other concerns. These can be
mapped into architectural design choices, functions
or implementation aspects (Rashid, Moreira &
Araújo, 2003).
Identify Match Points. A match point is a set of
concerns that need to be composed together to
accomplish certain functionalities. In a match point,
one of the concerns plays the role of base concern to
which the behaviour of the remaining concerns
needs to be weaved. Match points are specified
based on the required relationship between concerns
in the Specify Concerns step. This task is performed
by (i) produce a list of match points and their
respective concerns; (ii) analyse match points table
with concerns and stakeholder priorities.
Figure 2: Concern contributions for a test case.
ICEIS 2008 - International Conference on Enterprise Information Systems
132