• The first step is to model concrete features, which
is relatively easy as concrete features correspond
to the user visible functionalities of the system.
Current use case modeling and scenarios based
approaches are able to address the functional re-
quirements of the software systems. The output
of this step is a model which is able to clearly
represent the concrete features and relationships
between these concrete features.
• The second step is to identify and modularize as-
pectual concerns, which is one of the major con-
tributions of our framework. Aspectual concerns
could be identified in NFR modeling process in
order to describe the impact of NFRs onto the
functional features. In the framework, the contri-
butionof each concrete feature to satisfy the NFRs
will be examined so that the related quality levels
can be specified by these options.
• The last step of AO feature modeling is to identify
aspectual features and map aspectual concerns to
concrete features and aspectual features. An as-
pectual feature is a feature that crosscutting other
concrete features, i.e. impact the behaviors of
other features. They are additional responsibili-
ties that do not affect the main business flow.
By the end, we will convert feature model into
quality attributes and other three components, i.e.
concrete features, aspectual features and aspectual
concerns. The impact of aspectual concerns on both
types of features will be identified as well. Moreover,
the complex feature relationships will be decomposed
into relationships among these three components and
NFRs.
3.2 Aspect-Oriented Reference
Architecture
Aspect-oriented reference architecture framework is
to specify how features and aspectual concerns from
AO feature modeling are mapped onto reference ar-
chitecture. The key point is to identify crosscutting
concerns caused at architecture level and how refer-
ence architecture is affected and composed.
• The first task is to model functional requirements
by developing components and subsystems to im-
plement concrete features. Conventional SPL
approaches can be used to transform concrete
features into components or subsystems to meet
functional requirements. The output of this task
will be components and connectors to link these
components.
• The next step is to develop a set of architecture
scenarios (Rommes and America, 2006) to de-
scribe systems. From use case and business pro-
cesses identified, we are able to work out a set
of scenarios describing the internal behaviors of
systems. Since the requirements are from multi-
ple products, it is common that we have multiple
alternative flows, which suggest alternative inter-
nal workflow of the system and will be mapped to
parallel scenarios.
• The following step is to identify variabilities of
components and possibly pointcut on the archi-
tecture components. Components of architectural
model from the first step are involved, so it is
possible to specify the responsibilities of these
components and their interactions. Here we need
to examine how the aspectual concerns are ad-
dressed in the architecture. These aspectual con-
cerns suggest how the components interact and
possibly ways the component crosscutting each
other for satisfying functional and non-functional
requirements at different levels.
• The final step is to assess scenario interactions
to refine possible bigger scope crosscutting con-
cerns. Scenarios could be combined together to
implement more complex functionalities, so ex-
amining the interactions between scenarios could
address some complex aspectual concerns. Af-
ter this step, all the identified concerns should be
properly address in the reference architecture in
terms of components crosscutting relationships.
4 CASE STUDY
In this section, we will present a small case study
to illustrate how to identify aspects from requirement
level and map them to architecture level in our frame-
work. The case study used is a crisis management
system product line (Kienzle et al., 2010). To better
demonstrate our approach, we also did some adapta-
tions to fit this case into our framework, e.g. adding
some features, expanding use case mapping diagrams,
developing alternative flows of some use cases, etc.
First, we will identify all the features of the sys-
tem, which includes concert feature and aspect fea-
tures. Table 1 below shows a list of features with their
responsibilities. By relating these features to use case
mappings, some features exist in multiple business
flows. These features should be considered as can-
didates of aspectual features in this step. Fig. 1 shows
a trivial part of use case mapping. As mentioned, we
decompose use case into business flows and observe
systems’ internal processes and behaviors. Fig. 1
shows a business flow of “Capture a Crisis Report”.
ICSOFT-EA2015-10thInternationalConferenceonSoftwareEngineeringandApplications
390