<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Domain Aspects: Weaving Aspect Families to Domain- Specific Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Iris Reinhartz-Berger</string-name>
          <email>iris@mis.haifa.ac.il</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Management Information Systems, University of Haifa</institution>
          ,
          <addr-line>Haifa 31905</addr-line>
          ,
          <country country="IL">Israel</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2009</year>
      </pub-date>
      <abstract>
        <p>The exponential growth of data and information in the last decade has caused a rapid increase of system complexity. Two ways to face the emerging challenges are aspect-orientation and Software Product Line Engineering (SPLE). However, most of the works in these areas deal with specific aspects that are woven to concrete systems or product lines. Recent works suggest incorporating aspect-orientation to different tasks in software product line engineering, mainly variability specification and management. For improving reusability, validation, and compatibility of aspects, we suggest in this work recruiting an Application-based DOmain Modeling (ADOM) approach in order to define families of aspects and their weaving rules to families of applications during the entire development lifecycle. In particular, three types of models, namely aspect, base, and woven models, are defined in different abstraction levels and exemplified using UML notation.</p>
      </abstract>
      <kwd-group>
        <kwd>aspect-oriented modeling</kwd>
        <kwd>early aspects</kwd>
        <kwd>software product line engineering</kwd>
        <kwd>domain analysis</kwd>
        <kwd>metamodeling</kwd>
        <kwd>UML</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        The significant increase in systems complexity in the last decade has increased the
need for software engineering techniques for dividing and decomposing complex
problems into smaller ones, which may be solved one at a time with relatively simple
means, and for gathering and composing these solutions into holistic solutions that
solve the complex problems at hand. As long as the decomposed parts are orthogonal
to each other, the separation of concerns can be easily achieved. However, when the
concerns are interdependent, it is difficult or impossible to achieve completely
separated parts. Aspect-oriented software development (AOSD) [
        <xref ref-type="bibr" rid="ref13 ref8">8, 13</xref>
        ] aims at
providing modularization according to which crosscutting concerns are separated
from traditional units during the entire software development lifecycle. Percolating
aspect-orientation to early development phases [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], aspect-oriented modeling [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]
deals with defining, specifying, weaving, and managing crosscutting concerns during
the requirements, analysis, and design phases.
      </p>
      <p>
        Focusing on representation and weaving of aspects at the modeling level, many
works apply UML or its extensions (e.g., [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], and [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]), while several
use goal-related notations (e.g., [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ]). However, most of these works deal with
either aspects at a high level of abstraction, partially specifying (or completely
neglecting) the weaving guidelines, or present aspects and weaving guidelines very
close to implementation. Furthermore, these works mainly deal with general aspects
that fit all systems and, hence, their weaving rules are quite vague, or with aspects
which were particularly developed for, or integrated to, a specific system and, hence,
are limited in their reusability capabilities. Several works, such as JPDD [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], define
query models for specifying the models to which a specific aspect model can be
woven. They further use these query models, along with parameters and templates, for
defining weaving rules. This way join points may not be explicitly specified in the
base systems (to which the aspects are woven).
      </p>
      <p>
        Recent works have investigated the relationships between aspect-orientation and
software product line engineering (SPLE), which is a field dealing with sets of
software-intensive systems that share common, managed features satisfying the
specific needs of particular market segments or missions [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. Kuhlemann et al. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]
concluded that feature-orientation, a leading SPLE approach, is closely related to
aspect-orientation. Furthermore, feature-oriented methods suffice in many situations
where aspect-orientation is commonly used. Apel and Batory [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] have noticed that
Aspect-Oriented Programming and Feature-Oriented Programming are
complementary technologies: the weakness of one maps to the strength of the other.
Different works use aspects for tackling various SPLE obstacles: implementing
heterogeneous crosscuts [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], managing variability [
        <xref ref-type="bibr" rid="ref19 ref28">19, 28</xref>
        ], instantiating and
customizing product line architectures [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], and so on. These works focus on weaving
a particular aspect to a generic system that can be derived into different products in
order to fulfill particular requirements. They do not support specifying and designing
families of aspects and weaving rules that can be similarly applied to domains of
applications or systems.
      </p>
      <p>
        In this paper, an approach for defining families of aspects and their weaving rules
to families of applications during the analysis and design phases is suggested. This
approach utilizes the Application-based DOmain Modeling framework (ADOM),
presented in [
        <xref ref-type="bibr" rid="ref23 ref24">23, 24</xref>
        ] in order to develop and maintain domain aspects and their
weaving into particular applications. Aspect, base, and woven models are defined at
different abstraction levels of ADOM; namely application and domain levels.
      </p>
      <p>The main contribution of the work is two-fold. First, we enable designing and
representing families of aspects together, capturing their commonality and variability.
This way reusability, validation, and compatibility can be applied to aspects and not
just to systems and software. Second, aspects can be woven to families of applications
rather than to specific or generic applications. In particular, we offer specifying a
match pattern as part of the aspect model. This match pattern defines the (minimal)
requirements from the systems to which the aspect is intended to be woven. This way,
the weaving rules can be more specific to the domain at hand and yet applied to
different applications in that domain.</p>
      <p>The remainder of this paper is organized as follows. Section 2 describes the
ADOM approach, while Section 3 elaborates on its extension towards
aspectorientation. For demonstrating the approach, UML class diagrams are used on a case
study of a Check-In Check-Out (CICO) domain and a security aspect family1. Section
4 reviews related works, discussing their advantages and shortcomings with respect to
the proposed approach. Finally, Section 5 concludes and refers to future research
directions.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Application-based DOmain Modeling (ADOM)</title>
      <p>
        The framework at the basis of the Application-based DOmain Modeling (ADOM)
approach [
        <xref ref-type="bibr" rid="ref23 ref24">23, 24</xref>
        ] is comprised of three layers: application, domain, and language.
The application layer consists of models of particular applications and systems,
including their structure and behavior. The language layer includes metamodels of
modeling languages, such as UML. The intermediate domain layer consists of
specifications of various application families or product lines, including their common
features and allowed variability. Furthermore, constraints among the different layers
are enforced; in particular, the domain layer enforces constraints on the application
layer, while the language layer enforces constraints on both the domain and
application layers.
      </p>
      <p>
        Separating the application and domain layers from the language layer, ADOM can
be used in conjunction with different modeling languages, but when adopting ADOM
with a specific modeling language, this language is used in both application and
domain layers, easing the task of application creation (instantiation) and validation by
employing the same constructs and terminology in both layers [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. In this research
we chose to apply ADOM to the widely used modeling language, UML [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], in order
to create a workable dialect of ADOM, called ADOM-UML.
      </p>
      <p>For expressing multiplicity-related constraints in the domain layer, a
&lt;&lt;multiplicity&gt;&gt; stereotype is defined in the language layer. This stereotype is
associated to the top level Element metaclass in order to represent how many times a
model element of this type can appear in a specific context. The multiplicity
stereotype has two associated tagged values, min and max, which respectively define
the lowest and upper most multiplicity boundaries. For clarity purposes, four
commonly used multiplicity groups are defined on top of this stereotype: &lt;&lt;optional
many&gt;&gt;, where min=0 and max= ∞, &lt;&lt;optional single&gt;&gt;, where min=0 and max=1,
&lt;&lt;mandatory many&gt;&gt;, where min=1 and max= ∞, and &lt;&lt;mandatory single&gt;&gt;, where
min=max=1. Any multiplicity interval constraint can be specified using the general
&lt;&lt;multiplicity min=m1 max=m2&gt;&gt; stereotype. The multiplicity stereotypes of
dependent elements (i.e., elements that depend on other elements in the model, such
as attributes that depend on their owning classes) and relational elements (i.e.,
elements that connect other elements such as associations between classes) are
interpreted according to the "elements context". For example, defining an attribute of
an optional class as mandatory means that each application class that instantiates the
optional domain class must have this attribute. However, valid applications in the
domain may have no instantiations of the class and its attributes.
1 A complete version of this example, including application of the approach to UML 2.0 sequence
diagrams, can be found at http://mis.haifa.ac.il/~iris/research/CICOexample.pdf.</p>
      <p>A domain model in ADOM-UML includes the main concepts of the domain and
the relations among them expressed in UML. In particular, the multiplicity
stereotypes are used in the domain layer in order to specify cardinality-related
commonality and variability, i.e., denote the range of possible instantiations of
domain elements. In addition, ADOM employs the modeling language expressiveness
and semantics in order to specify additional constraints in the domain layer. The
metaclass of an element, for example, imposes constraints on its instantiation; namely
domain classes can be instantiated by application classes, domain associations can be
instantiated by application associations, and so on.</p>
      <p>
        As an example of a domain model in ADOM-UML, consider Check-In Check-Out
(CICO) applications [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] which manage operations for item enrollment and
signingout. Examples of applications in this domain include library, car rental, hotel
management, and version control systems. The class diagram in Fig. 1 constrains the
structure of such applications: any application in this domain must have at least one
class of Items, at least one class of Loaners, and at least one class of Lending
objects. The abilities to maintain a Waiting List in case the items are occupied
and to handle Item Types (as sometimes reservation is done for item types rather
than for individual items) are optional, as not all the applications in the domain
support this functionality. The CICO domain model further specifies that each
instantiated Item class has one attribute identifying the item ID, zero or more
enumerated attributes denoting the item status, and zero or more descriptive attributes.
Each Item class also exhibits at least one operation for getting the item details and
possibly exhibits operations for getting and updating the item status. Requiring a
queue implementation, each Waiting List class exhibits at least one operation for
adding nodes to the list, at least one operation for getting the first node details, and at
least one operation for removing the first node. As the Waiting List class is
optional, these operations may not appear in a CICO application model. However, if
such class is instantiated, these operations are mandatory.
      </p>
      <p>Having a domain model, it is used as a reference for developing the target
application model. The relationships between a generic element and its instantiations
are maintained by domain classifiers, represented as stereotypes. In addition, some
generic elements may be omitted and not included in the application model (these
should be specified as optional elements in the domain model) and some new specific
elements may be inserted to the specific application model (these are termed
application-specific elements). Nevertheless, the domain knowledge embedded in the
generic model must be maintained in the specific one. The class diagram in Fig. 2
exemplifies an application model in ADOM-UML which specifies a library system in
the CICO domain. This application model contains two types of loaners (Students
and Staff members), two types of item types (Books and Multimedia), one
type of items (Copies), one type of waiting lists (book Reservations), and
Loans. Note that since the different loaners have similarities in the application
model, inheritance relations are used in the application layer. Furthermore, the library
system model maintains the structure constrained by the CICO domain model,
presented in Fig. 1. In this case, Author and Student Reservation are
application-specific classes and all optional CICO domain classes are instantiated at
least once.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Aspect-Oriented ADOM-UML</title>
      <p>
        The aspect-oriented ADOM-UML approach distinguishes among three types of
models: base, aspect, and woven models. A base model describes an application, a
system, or a family of such (i.e., a domain). Base models are described in
ADOMUML as explained and exemplified in Section 2. An aspect model describes a
particular concern and its possible weaving to different systems. Similarly to [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ],
ADOM-UML aspect models can be described as triples of concern specifications
(CS), match patterns (MP), and merge guidance (MG). The concern specification
deals only with issues that are relevant to the concern at hand (what will be woven).
The match pattern constrains the range of base models to which the aspect is
applicable (where the aspect will be woven). Finally, the merge guidance specifies
guidelines for weaving the given aspect to any applicable base model (how to weave
the aspect). Note that although the same concern specification may have several pairs
of suitable match pattern and merge guidance models, we consider an aspect model as
the aforementioned triple. In other words, several aspect models may share the same
concern specification with different match patterns (and consequently different merge
guidance). The model formed after weaving the concern model using the merge
guidance into a base model that satisfies the match pattern is termed a woven model.
      </p>
      <p>
        Differently from [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], an ADOM-UML aspect model can be defined in the
application or domain layer, respectively specifying a specific concern or a family of
“similar” concerns. This way rules for weaving aspect families to domains of
applications can be specified. Fig. 3 summarizes the main model types in the
aspectoriented ADOM-UML approach and the relations between them, while the rest of this
section elaborates and exemplifies each type of model.
3.1
      </p>
      <sec id="sec-3-1">
        <title>Concern Specification</title>
        <p>
          Being separated from the weaving rules, concern specifications are designed similarly
to base models. As an example of a domain aspect (i.e., a family of aspects), consider
security, which is a branch of computer science concerned with risk management
trade-offs in the areas of confidentiality, integrity, and availability of electronic
information [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ]. Systems which contain fundamental flaws in their security designs
cannot be made secure without compromising their usability. However, in many cases
security techniques can be woven into (existing) system designs and, hence,
considered as aspects. An example of a particular security aspect (which resides in the
application layer) is authorization, which deals with protecting computer resources by
allowing those resources to be used only by consumers that have been granted
authority to use them. Other examples of particular security aspects are authentication
and fraud protection.
        </p>
        <p>
          The domain model depicted in Fig. 4 describes that each aspect in this security
domain must deal with Performers, Secured items, and Actions. In
addition, some of the applications in the domain may deal with Policies (referred
to a specific performer, a specific item, or a specific performer-item pair) and record
the History of security-related activities. Fig. 5 specified the particular
authorization aspect, which enables executing only authorized actions by users: each
Item is connected to Users through Authorized Actions and
Authorization policies. Fig. 5 is an instantiation of Fig. 4, as all the domain
level security constraints are satisfied in the authorization model. Note that History
is not handled in this particular aspect.
A match pattern is the part of an aspect model that specifies rules and constraints on
the base models to which the concern specification can be woven. In other words, this
part represents the minimal requirements from the base models that can weave the
concern specification. Furthermore, as explained in the next section, a match pattern
defines "anchors" (join points) to which the merge guidance can refer. The least
restricting match pattern is the empty model which implies that the aspect model in
general and its concern specification in particular are applicable and can be woven to
any base model. Making the match pattern more detailed reduces the number of base
models to which the concern specification can be woven, but enables specifying more
reasonable and detailed weaving rules. The aim of match patterns is similar to that of
Joint Point Designation Diagrams (JPDD) [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ]: to specify all properties that a model
element must provide in order to represent a join point. However, as opposed to JPDD
that defines joint points on particular aspects and applications (base models), our
approach enables definitions of match patterns at the domain layer, implying the
specification of similar joint points to all the applications in the domain.
        </p>
        <p>
          To visually specify match patterns in ADOM-UML, we define in the language
layer a &lt;&lt;matchcond&gt;&gt; stereotype, which is associated to the top level Element
metaclass in the UML metamodel and has two associated tagged values: elCardinality
and elConstraint. elCardinality specifies the range of elements required to be matched
to this element in the base model, whereas elConstraint constrains the possible
matched elements using OCL [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. The default values of these tagged values (when
not presented) are the less restricting ones, namely elConstraint is true and
elCardinality is optional (0..n). As an example, Fig. 6 exemplifies a match pattern of
the security domain aspect for domain base models. This match pattern requires that
the base model to which the concern specification will be woven includes Products
whose names syntactically or semantically contain the string 'product' and exhibit
operations that return void. Furthermore, as the default value of elCardinality is 0..n,
the base model may have Controlling Elements, each of which has a name
that syntactically or semantically contains the string 'control' or 'system', a multiplicity
stereotype of mandatory single or mandatory many, and may have association to
Product elements. The CICO domain model specified in Fig. 1 satisfies the match
pattern depicted in Fig. 6. In particular, Item corresponds to Product2, while
updateStatus corresponds to operationOnProduct. The other two
operations of Item do not match operationOnProduct, since they do not return
void. Similarly, Item Type does not match Product, since it does not have
"void" operations. Furthermore, the security aspects family in general and the
authorization aspect in particular can be woven to the library system, specified in Fig.
2, as this system handles updateable items in the form of copies (of multimedia or
books).
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>3.3 Merge Guidance</title>
        <p>
          The merge guidance of an aspect model combines the concern specification and the
match pattern of the same aspect in order to guide the designer how to weave the
concern specification into a base model that satisfies the match pattern. For this
purpose, the elements of the match pattern and the concern specification are used as
the elements of the merge guidance3.
2 Their linguistic similarity according to Wu and Palmer formula [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ] is 0.7143 (out of 1),
meaning that they are relatively close terms.
3 If the name spaces of the concern specification and the match pattern of the same aspect are
not distinctive, then adding the model (package) name to the element names is required.
        </p>
        <p>We distinguish between four types of operations: combining, concern addition,
merge addition, and match only operations. A combining operation takes two
elements, one from the concern specification (CS) and the other from the match
pattern (MP), and combines them into a third element that exhibits the features of the
two composing elements. This third element appears in the merge guidance, where its
name is taken from the match pattern and its stereotype – from the concern
specification. A concern addition operation enables adding elements from the
concern specification that does not exist neither have counterparts in the base model.
These elements appear in the merge guidance without names and with stereotypes
taken from the concern specification. A merge addition operation enables adding
elements that do not appear in the concern specification neither in the match pattern,
but are rather required when merging or weaving the concern specification into a base
model that satisfies the match pattern. The names of these elements do not appear in
the match pattern and their stereotypes are not taken from the concern specification.
Finally, a match only operation enables specifying elements that are required only for
matching base models, but are not modified as a result of weaving the concern
specification into the base model. They identically appear in both match pattern and
merge guidance.</p>
        <p>As an example consider the concern specification depicted in Fig. 4 and the match
pattern specified in Fig. 6. A possible merge guidance (MG) is depicted in Fig. 74:
SecuredItem from the concern specification is combined with Product from the
match pattern (where perform is combined with operationOnProduct).
Controlling Element identifies a match only operation. The merge guidance
further adds associations between Controlling Element (if exists in the base
model) and Action and History (from the concern specification). This merge
guidance can be used in order to weave any security aspect (e.g., authorization) to any
application in the CICO domain (e.g., the library system).</p>
        <p>A woven model is achieved by finding maximal matches between a base model
and a match pattern and replacing each such occurrence with the merge guidance.
Note that there may be more than one maximal match in a given base model that
satisfies a single merge guidance element, implying application of the same merge
rule several times to the base model (with different model portions). Furthermore,
woven models can be created in the application or domain layers. In particular, merge
4 The different ei are name replacers.
guidance models in the domain layer can help develop woven models in the
application layer, which weave concrete aspects to particular applications. Fig. 8, for
example, presents an authorized library system model that follows the security
domain aspect in general and its merge guidance part in particular. In this figure, the
elements that belong only to the base model are depicted in white, the base model
elements that are combined with aspect elements are depicted in bold and grey, and
the elements that are added due to the aspect are depicted in grey. The woven model
is generated here only for the purpose of comprehending better the meaning of the
aspect model parts. In the resultant woven model, the terminology (i.e., element
names) is first taken from the base model and only afterwards (for additions) from the
aspect model (or more accurately, the merge guidance).
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Related Work</title>
      <p>
        Many works in early aspects refer to visual modeling in general and UML in
particular. They usually introduce different sets of UML stereotypes or profiles for
representing aspect-oriented design concepts (e.g., [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], and [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]). They deal
with specific aspects, partially handling (or completely neglecting) weaving
guidelines, or present aspects and weaving guidelines very closely to the
implementation and programming level, falling short in considering the entire
spectrum of modeling concepts not present in programming languages [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ].
Baniassad and Clarke [
        <xref ref-type="bibr" rid="ref3 ref6">3, 6</xref>
        ], for example, suggest Theme/Doc and Theme/UML for
aspect-oriented analysis and design. Theme/UML [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], which aims at modeling
concerns, extends UML with two types of composition relations, merge and override,
that involve an entire UML unit (e.g., attribute, method, or class). They do not
explicitly refer to the conditions that a base model should fulfill so that the specific
aspect will be woven into it. Furthermore, the weaving guidelines are specified as part
of the aspect models, narrowing the ability to reuse the same aspect in different
contexts.
      </p>
      <p>
        Kande [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] proposes a Perspectival Concern-Space (PCS) technique for
developing architecture with concerns as primary dimensions. Using UML, the PCS
framework provides means for composing and decomposing different concern spaces.
Groher and Voelter [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] present a model weaver that supports weaving of both
models and metamodels. This weaver, which is developed on top of the Eclipse
Modeling Framework [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], enables modeling optional parts as aspects and weaving
them to a system at will. Reddy et al. [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] present a signature-based aspect
composition approach. This approach refers to model element's signatures defined in
terms of their syntactic properties, namely attributes or association ends. No
separation between the concerns and the weaving rules is made in these works,
reducing the ability to weave the same concern to different base models.
      </p>
      <p>
        Stein et al. [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] suggest a special kind of diagram, called Joint Point Designation
Diagrams (JPDD), for visualizing the selection criteria of base models to which an
aspect can be woven. The notation extends the UML metamodel and is accompanied
by a set of OCL operations for validating the selection queries on a modeling context.
However, the approach does not support specifying weaving rules on the basis of
these query models.
      </p>
      <p>
        In the field of software product line engineering (SPLE), aspect-orientation is used
for implementing heterogeneous crosscuts, managing variability, instantiating and
customizing product line architectures. Lopez-Herrejon and Batory [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] suggest
emulating function composition in aspect-oriented programming using a small set of
advice, bounded quantification, and algebraic specification. Using ADORA, Stoiber
et al. [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] propose visualizing and modeling variability using aspect-orientation and
table-based modeling of configuration possibilities and constraints. Morin et al. [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]
argue that aspect-oriented modeling can help users design optional and variant parts
of a model. They further claim that the ability to weave aspects incrementally into
base models enables constructing final products step-by-step. Their generic approach
supports generating target languages and some weaving instructions to any given
metamodel. After deriving an aspect by choosing the most appropriate variants and
options, aspect configurations can be woven into base models, to integrate new
features and propose different variants of the system. Kulesza et al. [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] allow for
improved customization and instantiation of frameworks by using crosscutting feature
models. The approach intends to provide guidelines to modularize the implementation
of framework features using aspects.
      </p>
      <p>All these reviewed aspect-oriented SPLE approaches refer to aspects as particular
concerns and, hence, suggest different ways to weave them to specific systems or
product lines. The proposed ADOM-based approach enables modeling aspect, base,
and woven models at different abstraction levels using the same modeling language.
Moreover, the upper abstraction layer is used for reusing and guiding the development
of models in the lower abstraction layer.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Summary and Future Work</title>
      <p>Aspects refer to crosscutting concerns that should be woven to systems. Currently,
aspects are specified either in a high level of abstraction or in the lowest level of
design and implementation. The field of SPLE offers techniques and approaches for
weaving aspects into software product lines rather than into particular applications
(software products). In this work, we aim at enhancing the reusability of aspects by
enabling specification of families of aspects and weaving rules. Adopting the
Application-based DOmain Modeling (ADOM) framework, the proposed approach
refers to three types of models; namely base, aspect, and woven models. An aspect
model is further divided into three parts: (1) concern specification, which refers to
issues of the aspect itself, (2) match pattern, which includes conditions on the base
models to which the aspect can be woven, and (3) merge guidance, which comprises
guidelines and rules for weaving the aspect to any base model that satisfies the match
pattern conditions. The resultant woven models define the semantics of the different
models and their related operations. Each model may reside at the domain or
application layer of ADOM, respectively increasing or decreasing its level of
generality. Four types of weaving processes can be defined on the basis of these
models (see Table 1).</p>
      <p>
        The proposed approach supports three main tasks in AOSD: aspect identification
and representation (through the concern specification), join point determination
(through the match patterns), and weaving guidelines definition (through the merge
guidance). By separating an aspect into three different models, each type of model
remains in a reasonable size, improving comprehensibility and maintainability. In
addition, evolvability, which is the property of software that can easily be updated to
fulfill new requirements [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], is enhanced: aspects depend on base models through
match patterns. Therefore, they can be added or removed with minor changes to the
different parts. Changes to the aspect itself, for example, may influence the concern
specification and the merge guidance parts, while changes to the weaving process
may influence the match pattern and the merge guidance parts.
      </p>
      <p>Managing the different kinds of models at two different abstraction levels, the
domain and application layers, enables generalizing families of models and
instantiating them into valid application models. The domain models are used for
representing knowledge on families of models, including their weaving rules,
enabling the reuse of this knowledge in particular cases and validating that the
specifications of these cases do not violate the elicited knowledge of the
corresponding domain. Furthermore, the expressiveness of the approach promotes its
usability. It enables designing and representing families of aspects together, capturing
their commonality and variability. This way reusability, validation, and compatibility
can be applied on aspects and not just on systems and software. In addition, aspects
can be woven to families of applications rather than to specific applications or
generally to all the applications. Hence, the weaving rules can be more specific to the
domain at hand and yet applied to different applications in that domain, enhancing
once again the reusability of aspects.</p>
      <p>We started developing a supporting tool for the aspect-oriented ADOM-UML
approach. In its current state, the tool is plugged into an existing UML CASE tool
(TOPCASED) and checks the correctness and completeness of specific base and
aspect models (with respect to their base and aspect domain models)5. In the future,
we intend to enhance the tool to automatically generate resultant woven models and
check the consistency between the different parts of an aspect model (namely,
concern specification, match pattern, and merge guidance).</p>
      <p>Level of
aspect
Domain</p>
      <p>Level of
system</p>
      <p>Domain
Domain</p>
      <p>Application
Application</p>
      <p>Domain</p>
      <p>Application</p>
      <p>The meaning of the weaving
The result resides at the domain layer. Both
system and aspect models should be
instantiated into a particular system that
includes specific aspects.</p>
      <p>The result resides at the domain layer. The
aspects that belong to the same family and are
included in the particular system have to be
instantiated.</p>
      <p>The result resides at the domain layer. A
family of system models includes the particular
aspect. Each system in the family similarly
integrates the particular aspect into its
architecture.</p>
      <p>The result resides at the application layer. The
particular system includes the particular aspect.</p>
      <p>No instantiation or further treatments are
required.</p>
      <p>An Example
Weaving the
Security aspect
family into CICO
applications
Weaving the
Security aspect
family into the
library system
Weaving the
authorization
aspect into CICO
applications
Weaving the
authorization
aspect into the
library system</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Aldawud</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Elrad</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Bader</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <article-title>A UML Profile for Aspect Oriented Modeling</article-title>
          .
          <source>Workshop on Advanced Separation of Concerns in Object-Oriented Systems</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Apel</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Batory</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <article-title>When to use features and aspects?: a case study</article-title>
          .
          <source>Proceedings of the 5th international conference on Generative programming and component engineering (GPCE'06)</source>
          ,
          <year>2006</year>
          , pp.
          <fpage>59</fpage>
          -
          <lpage>68</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Baniassad</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <article-title>Theme: An Approach for Aspect-Oriented Analysis and Design</article-title>
          .
          <source>Proceedings of the 26th International Conference on Software Engineering</source>
          (ICSE'
          <year>2004</year>
          ), IEEE Computer Society,
          <year>2004</year>
          , pp.
          <fpage>158</fpage>
          -
          <lpage>167</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Chitchyan</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rashid</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sawyer</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garcia</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alarcon</surname>
            ,
            <given-names>M.P</given-names>
          </string-name>
          , Bakker,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Tekinerdogan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Jackson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            , and
            <surname>Clarke</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          <article-title>Survey of Aspect Oriented Analysis and Design Approaches</article-title>
          .
          <article-title>AOSD-Europe Network of Excellence</article-title>
          , http://www.aosd-europe.net/,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Chris</surname>
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosenblum</surname>
            ,
            <given-names>D.S.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>van der Hoek</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <article-title>The evolution of software evolvability</article-title>
          .
          <source>Proceedings of the 4th International Workshop on Principles of Software Evolution (IWPSE '01)</source>
          ,
          <year>2001</year>
          , pp.
          <fpage>134</fpage>
          -
          <lpage>137</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Baniassad</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <article-title>Aspect-Oriented Analysis and Design: The Theme Approach</article-title>
          .
          <source>The Addison-Wesley Object Technology Series</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <article-title>Extending standard UML with model composition semantics</article-title>
          .
          <source>Science of Computer Programming</source>
          ,
          <volume>44</volume>
          (
          <issue>1</issue>
          ), Elsevier Science,
          <year>2002</year>
          , pp.
          <fpage>71</fpage>
          -
          <lpage>100</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Elrad</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Filman</surname>
            ,
            <given-names>R.E.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Bader</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Aspect-Oriented</surname>
            <given-names>Programming</given-names>
          </string-name>
          : Introduction.
          <source>Communications of the ACM</source>
          , Vol.
          <volume>44</volume>
          , No.
          <volume>10</volume>
          ,
          <year>2001</year>
          , pp.
          <fpage>29</fpage>
          -
          <lpage>32</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Fuentes</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Sànchez</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <article-title>Designing and Weaving Aspect-Oriented Executable UML models</article-title>
          .
          <source>Journal of Object Technology</source>
          , vol.
          <volume>6</volume>
          , no.
          <issue>7</issue>
          ,
          <string-name>
            <given-names>Special</given-names>
            <surname>Issue on Aspect-Oriented Modeling</surname>
          </string-name>
          ,
          <year>2007</year>
          , pp.
          <fpage>109</fpage>
          -
          <lpage>136</lpage>
          , http://www.jot.fm/issues/issue_2007_
          <volume>08</volume>
          /article5.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Groher</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Voelter</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>XWeave - Models and Aspects in Concert</article-title>
          .
          <source>Proceedings of the 10th Workshop on Aspect-Oriented Modeling</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Groher</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Baumgarth</surname>
          </string-name>
          ,
          <string-name>
            <surname>T.</surname>
          </string-name>
          Aspect-Orientation from Design to Code. Workshop on Early Aspects:
          <article-title>Aspect-Oriented Requirements Engineering and Architecture Design</article-title>
          , AODS'
          <year>2004</year>
          ,
          <year>2004</year>
          , http://trese.cs.utwente.nl/workshops/early-aspects-2004/Papers/GroherBaumgarth.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kande</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.M. Perspectival</surname>
          </string-name>
          Concern-Spaces:
          <article-title>An Aspect-Oriented Architectural Framework"</article-title>
          , Workshop on Aspect-Oriented
          <source>Modeling with UML</source>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Kiczales</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lamping</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mendhekar</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maeda</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lopes</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Loingtier</surname>
            ,
            <given-names>J. M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Irwin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Aspect-Oriented Programming</surname>
          </string-name>
          .
          <source>Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP'97)</source>
          ,
          <source>LNCS 1241</source>
          ,
          <year>1997</year>
          , pp.
          <fpage>220</fpage>
          -
          <lpage>242</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , France, R., and
          <string-name>
            <surname>Ghosh</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <article-title>A UML-Based Language for Specifying DomainSpecific Patterns</article-title>
          .
          <source>Journal of Visual Languages and Computing, Special Issue on Domain Modeling with Visual Languages</source>
          <volume>15</volume>
          (
          <issue>3-4</issue>
          ),
          <year>2004</year>
          , pp.
          <fpage>265</fpage>
          -
          <lpage>289</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Kuhlemann</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosenmuller</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Apel</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Leich</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <article-title>On the Duality of AspectOriented and Feature-Oriented Design Patterns</article-title>
          .
          <source>Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software (ACP4IS '07)</source>
          ,
          <year>2007</year>
          , pp.
          <fpage>5</fpage>
          -
          <lpage>11</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Kulesza</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garcia</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Lucena</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <article-title>Generating aspect-oriented agent architectures</article-title>
          .
          <source>Proceedings of the 3rd Workshop on Early Aspects</source>
          , AOSD'
          <year>2004</year>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Kulesza</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garcia</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bleasby</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Lucena</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <article-title>Instantiating and Customizing Product Line Architectures Using Aspects and Crosscutting Feature Models</article-title>
          . Workshop on Early Aspects, OOPSLA'
          <year>2005</year>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Lopez-Herrejon</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Batory</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <article-title>From Crosscutting Concerns to Product Lines: A Function Composition Approach</article-title>
          .
          <source>Technical Report TR-06-24</source>
          , University of Texas at Austin,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Morin</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barais</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Jézéquel</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          <article-title>Weaving Aspect Configurations for Managing System Variability</article-title>
          .
          <source>2nd International Workshop on Variability Modelling of Softwareintensive Systems (VaMoS'2008)</source>
          ,
          <year>2008</year>
          , pp.
          <fpage>53</fpage>
          -
          <lpage>62</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>OMG</surname>
          </string-name>
          <article-title>: "UML 2.0 OCL Specification"</article-title>
          , (
          <year>2004</year>
          ), http://www.omg.org/docs/ptc/03-10-14.pdf
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>OMG</surname>
          </string-name>
          <article-title>: "Unified Modeling Language: Superstructure"</article-title>
          ,
          <source>Version</source>
          <volume>2</volume>
          .0, (
          <year>2005</year>
          ), http://www.omg.org/docs/formal/05-07-04.pdf
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Reddy</surname>
            ,
            <given-names>Y. R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ghosh</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , France,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Straw</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Bieman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>McEachen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            ,
            <surname>Song</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            and
            <surname>Georg</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Directives for Composing Aspect-Oriented Design Class Models</article-title>
          .
          <source>Transactions on Aspect-Oriented Software Development, LNCS 3880</source>
          ,
          <year>2006</year>
          , pp.
          <fpage>75</fpage>
          -
          <lpage>105</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Reinhartz-Berger</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Sturm</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Enhancing UML</surname>
          </string-name>
          <article-title>Models: A Domain Analysis Approach</article-title>
          .
          <source>Journal on Database Management (JDM)</source>
          ,
          <volume>19</volume>
          (
          <issue>1</issue>
          ), special issue on UML Topics,
          <year>2008</year>
          , pp.
          <fpage>74</fpage>
          -
          <lpage>94</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Reinhartz-Berger</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Sturm</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <article-title>Utilizing Domain Models for Application Design and Validation</article-title>
          .
          <source>Accepted for Information and Software Technology journal</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Schauerhuber</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwinger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kapsammer</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Retschitzegger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Kappel</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <article-title>A Survey on Aspect-Oriented Modeling Approaches</article-title>
          .
          <year>2006</year>
          , Available at: http://www.bioinf.jku.at/publications/2006/1506.pdf
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Stein</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hanenberg</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , and Unland R.
          <article-title>Expressing different conceptual models of join point selections in aspect-oriented design</article-title>
          .
          <source>Proceedings of the 5th International Conference on Aspect-Oriented Software Development (AOSD'2006)</source>
          ,
          <year>2006</year>
          , pp.
          <fpage>15</fpage>
          -
          <lpage>26</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Stein</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hanenberg</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Unland</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <article-title>A UML-based Aspect-Oriented Design Notation for AspectJ</article-title>
          .
          <source>Proceeding of the 1st International Conference on Aspect-Oriented Software Development, ACM</source>
          ,
          <year>2002</year>
          , pp.
          <fpage>106</fpage>
          -
          <lpage>112</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Stoiber</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meier</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Glinz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Visualizing Product Line Domain Variability by Aspect-Oriented</surname>
            <given-names>Modeling</given-names>
          </string-name>
          ,
          <source>Proceedings of the 2nd International Workshop on Requirements Engineering Visualization (REV'2007)</source>
          ,
          <year>2007</year>
          , pp.
          <fpage>8</fpage>
          -
          <lpage>13</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Weiss</surname>
            ,
            <given-names>D. M.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Lai</surname>
            ,
            <given-names>C.T.R. Software</given-names>
          </string-name>
          <string-name>
            <surname>Product-Line Engineering</surname>
            :
            <given-names>A</given-names>
          </string-name>
          <string-name>
            <surname>Family-Based Software Development Process. Addison-Wesley Professional</surname>
          </string-name>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30. Wikipedia: Security engineering,
          <year>2007</year>
          , http://en.wikipedia.org/wiki/Security_engineering
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Wu</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Palmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>Verb Semantics and Lexical Selection</article-title>
          .
          <source>Proceedings of the 32nd Annual Meeting of the Association for Computational Linguistics</source>
          ,
          <year>1994</year>
          , pp.
          <fpage>133</fpage>
          -
          <lpage>138</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leite</surname>
            ,
            <given-names>J. C. S. d. P.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Mylopoulos</surname>
          </string-name>
          , J. From Goals to Aspects:
          <article-title>Discovering Aspects from Requirements Goal Models</article-title>
          .
          <source>The 12th International Conference on Requirements Engineering</source>
          (RE'
          <year>2004</year>
          ),
          <year>2004</year>
          , pp.
          <fpage>38</fpage>
          -
          <lpage>47</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>