The AOSD Research Community in Brazil and Its Crosscutting Impact.
Christina Chavez, Uirá Kulesza, Sérgio Soares, Paulo Borba, Carlos José Pereira de Lucena, Paulo Cesar Masiero, Cláudio Sant'Anna, Eduardo Piveta, Fabiano Cutigi Ferrari, Fernando Castor, Roberta Coelho, Lyrene Fernandes da Silva, Vander Alves, Nabor C. Mendonça, Eduardo Figueiredo, Valter Vieira de Camargo, Carla T. L. L. Silva, Paulo F. Pires, Thaís Vasconcelos Batista, Nélio Cacho, Arndt von Staa, Julio Cesar Sampaio do Prado Leite, Fabio Silveira, Otávio Augusto Lazzarini Lemos, Rosangela Penteado, Flávia Coimbra Delicato, Rosana T. V. Braga, Marco Tulio Valente, Ricardo Argenton Ramos, Rodrigo Bonifácio, Fernanda M. R. Alencar, Jaelson Castro
-
Citations (0)
-
Cited In (0)
Page 1
The AOSD Research Community in Brazil and
its Crosscutting Impact
Christina Chavez∗, Uir´ a Kulesza†, S´ ergio Soares‡, Paulo Borba‡, Carlos Lucena§, Paulo Masiero¶, Claudio Sant’Anna∗,
Eduardo Piveta?, Fabiano Ferrari∗∗, Fernando Castor‡, Roberta Coelho†, Lyrene Silva†, Vander Alves††,
Nabor Mendonc ¸a‡‡, Eduardo Figueiredo
Arndt von Staa§, Julio Leite§, Fabio Silveira
Rosana Braga¶, Marco T´ ulio Valente
∗UFBA,†UFRN,‡UFPE,§PUC-Rio,¶USP,?UFSM,∗∗UFSCAR,††UnB,
‡‡UNIFOR,
x, Valter Camargo∗∗, Carla Silva
xiii, Ot´ avio Lemos
x, Ricardo Ramos
xi, Paulo Pires
xiii, Rosangela Penteado∗∗, Fl´ avia Delicato
xiv, Rodrigo Bonif´ acio††, Fernanda Alencar‡, Jaelson Castro‡
xii, Thais Batista†, N´ elio Cacho†,
xii,
xUFMG,
xiUFPB,
xiiUFRJ,
xiiiUNIFESP,
xivUNIVASF
Abstract—In this paper, we present the birth, growth, and
maturation of Aspect-Oriented Software Development (AOSD)
research over the last years, with emphasis on the Brazilian
AOSD community and its research contributions. These research
contributions are illustrated from different perspectives: (i) an
overview of the research work developed by our community in
several prominent software engineering areas; (ii) a historical
chronology of the community; and (iii) the growth, impact and
quality of research outcomes.
I. INTRODUCTION
Aspect-Oriented Software Development (AOSD) [4] pro-
motes advanced separation of concerns and software mod-
ularity throughout the software development lifecycle, by
investigating, developing, and evaluating new modularization
paradigms and techniques for extensibility, flexibility, and
adaptability.
Separation of concerns is a fundamental principle that
addresses the limitations of human cognition for dealing with
complexity. It advocates that to master complexity, one has
to deal with one important issue (or concern) at a time
[1]. In software engineering (SE), this principle is usually
related to system decomposition and modularization: complex
software systems should be decomposed into smaller, clearly
separated modular units, each dealing with a single concern.
The expected benefits are improved comprehensibility and
increased potential for evolution and reuse.
The abstraction and composition mechanisms supported
by successive generations of programming languages have
evolved to foster the expression of solutions to real world
problems in a more natural way as well as to advance
one’s ability to achieve separation of concerns at the source
code level. Object-Oriented Programming(OOP) has been the
dominant programming technology for several years and its
benefits are broadly recognized. However, OOP has some
limitations1for dealing with concerns that address require-
ments involving global constraints and systemic properties,
such as synchronization, persistence, error handling, logging
1These limitations are not specific to OOP, but rather part of a general
problem that has been coined “The Tyranny of Dominant Decomposition”
[2].
mechanisms, among many others. These concerns have been
called crosscutting concerns (CC) since they naturally crosscut
the boundaries of modular units that implement other concerns.
Without proper means for separation and modularization, CC
tend to be scattered over a number of modular units and
tangled up with other concerns. The natural consequences
are lower cohesion and stronger coupling between modular
units, reduced comprehensibility, evolvability, and reusability
of code artifacts.
Aspect-Oriented Programming (AOP) [3] is an evolutionary
technology that supports a new flavor of separation of concerns
at the source code level. AOP uses aspects as a new modular
unit for separating CC, also providing a new mechanism for
composing (or weaving) aspects with other modular units at
well-defined join points. Aspect-Oriented Software Develop-
ment (AOSD) has the goal of promoting separation of CC
throughout the software development lifecycle [4].
Since the seminal work of Kiczales et al. [3] was presented
at ECOOP 1997, the research work on AOSD has evolved
and matured to be applied along the different software devel-
opment stages and activities with the promise of improving
the modularity of crosscutting requirements, concerns, and
features. The AOSD Brazilian (AOSD-BR) research commu-
nity also emerged and matured during this period, and has
contributed to different research topics. The involvement of
this community with the Brazilian Symposium on Software
Engineering (SBES) since 1999 has been very important to
promote a long established interaction between the AOSD-BR
research groups and the development of high-quality research
work, thus allowing the consolidation of this community along
the last years.
In this paper, we present the birth, growth, and maturation
of AOSD research over the last years, with emphasis on
the Brazilian AOSD community (AOSD-BR) and its research
contributions, illustrated from different perspectives. Section II
presents an overview of the research work developed by
AOSD-BR in several prominent SE areas. Section III presents
a historical chronology of the community from its official birth
– the First Brazilian Workshop on AOSD (WASP) in 2004
– until the organization, in Brazil, of the 10th International
Page 2
Conference on AOSD in 2011, and a discussion on the growth,
impact, and quality of the AOSD-BR research outcomes in
terms of several indicators, such as the number of publications
in journals and conferences over the last decade, the number of
papers published in international top SE conferences, and the
number of citations to papers from our community. Section IV
raises some questions for discussion by the Brazilian AOSD
community.
II. OVERVIEW OF RESEARCH CONTRIBUTIONS
In this section, we provide an overview of the main con-
tributions of the AOSD-BR community for different AOSD
research topics and challenges.
A. Exception Handling
Exception handling (EH) [5] is a promising candidate for
the use of AOP techniques since, in most programming
languages, it is an inherently scattered and tangled concern
[3]. The first study to investigate the use of AO constructs
to modularize EH was performed by Lippert and Lopes [6].
In this work they observed a considerable reduction in the
amount of EH code in the AO version of a reusable object-
oriented framework. Since then, a considerable body of work
has studied the effects of aspects on EH, from a number of
different perspectives. AOSD-BR researchers have conducted
the majority of this research. We can organize the work on
exceptions and aspects in three categories: (i) investigation
on the effects of using aspects to modularize EH code; (ii)
new EH mechanisms leveraging AOP constructs; (iii) tools to
support the understanding and verification of EH code in AO
systems.
Castor Filho et al. [7] conducted a study similar to the
one of Lippert and Lopes but targeting four different, non-
trivial applications. This work revealed that the aspectization
and reuse of exception handlers is not as straightforward
as advocated beforehand by Lippert and Lopes. Instead, it
depends on a set of factors, such as, the type of exceptions
being handled, what the handler does and the amount of
contextual information needed. Later on, Castor Filho et al. [8]
elaborated a catalog of best and worst practices related to
the aspectization of EH. Taveira et al. [9] continued the
investigation and found out that a considerable amount of
error handling code could be reused inside a single application
by using aspects. Nonetheless, the programming overhead
associated to it, somewhat, overshadows that reuse.
Coelho et al. [10] performed an empirical study which
took into account the error-proneness of AspectJ constructs
for handling exceptions. The most important finding of the
study was that EH aspects, even when used with great care,
can introduce a number of bugs that materialize as uncaught
exceptions. This led to the creation of a catalog of bug patterns
and an approach for preventing and automatically detecting
such bug patterns [11].
In the second category, Cacho et al. [12] devised a new
EH model that uses the join point and advice mechanisms
of AspectJ to generalize the concepts of EH context and
exception handler. Later, Cacho et al. [13] performed an
exploratory study to evaluate this new model, and observed
that it was useful to foster the development of readable and
reliable software systems.
Last but not least, Brazilian researchers have recently de-
vised a number of testing and static analysis approaches
targeting the EH code of AO systems [14], [15]. Bernardo et
al. [14] proposed an extension of the JUnit framework to check
whether the paths that exceptions take in an OO or AO system
are the intended ones. This tool relies on aspects to monitor
the exception paths of a system. Coelho et al. [15] presented a
static analysis-based approach which allows AO developers to
describe the EH behavior of a system and automatically check
it. Both tools target Java and AspectJ based systems.
B. Refactoring
The AOSD-BR research community has been working in
several research areas related to Refactoring [16]. For instance,
the community has results on the identification of refactoring
opportunities, including the definition of catalogs of bad
smells [17], their detection [18], and guidelines to reduce
their occurrence in AO software [19]. Additional research
focused on the representation of refactoring opportunities [20]
and on refactoring processes [21]. Moreover, recent studies
have pointed out that not all kinds of CC are harmful to the
system quality attributes, such as robustness [22] and stability
[23]. Therefore, only harmful CC should be factored out to
aspects. Brazilian researchers on AOSD have documented [24]
and proposed means to modularize [25] several patterns of
CC recurrently observed in software systems. The patterns
of harmful CC can be detected by visualization environments
[26], metrics and heuristic strategies [27], [28].
Another research area focuses on assessing the effects of
refactoring on quality. In this context, AOSD-BR researchers
have been developing tools and concepts to improve the quality
of AO software. One of these tools is ConcernMetrics [29],
an Eclipse plugin that computes metrics commonly employed
to evaluate the benefits of AOP, without requiring physical
extraction of CC to aspects. This tool was used to evaluate
the benefits of using aspects in three small-to-medium Java
systems.
The AOSD-BR community has also played a pioneering
role in research focusing on guaranteeing that AO refactoring
preserves behavior. The first work on this area uses AO
programming laws for deriving refactorings for AspectJ [30],
aiming to verify if the transformations they define preserve
behavior. These laws have been used to derive a catalog of
AspectJ refactorings, which can be employed to restructure
applications and to extract variations in software product lines.
In both cases, the aspects were used as a modularization
mechanism, either for features [31] or for common CC, such as
distribution and persistence. Most refactorings on this catalog
were implemented in an industrial strength tool [32] and used
in the mobile game domain [33].
Refactoring is also used to provide mechanisms for aspect-
mining, in which code fragments related to a CC are located
Page 3
and extracted to aspects. However, the base program often has
to be modified to fit these aspects properly. In this context,
the AOSD-BR community has proposed a catalog of OO
transformations [34] to associate crosscutting code with points
of the base program that can be captured using the pointcut
model of current AO languages. This catalog was evaluated
on a case study with medium-sized Java-based systems that
have been aspectized using AspectJ.
Current and future work on this area focus on refactoring
to introduce aspects in large-scale software applications and
product lines, including refactorings for extracting features to
aspects, for improving the internals of AO constructs, and for
moving features from aspects to objects.
C. Testing
The understanding and subsequent testing of AO programs
is one of the main ways to make the approach less costly and
more feasible in practice [35]. With this in mind, the AOSD-
BR research community has contributed to establish testing
approaches that address particularities of AO software. The
main achievements are following summarized.
1) Structural-based testing: Zhao [36] published the sem-
inal piece of work related to structural testing of AO pro-
grams. Since then, the AOSD-BR contributions have been
very relevant, resulting in a series of papers published in
scientific events [37], [38] and in high quality journals [39],
[40], [41]. The contribution addresses structural-based testing
at the unit level [37], [39] and the integration level [38], [40],
[41]. Control flow and data flow models have been formally
defined, from which a range of test selection criteria has been
devised. The control flow-based criteria extended the concepts
of the all-nodes and all-edges criteria to incorporate AO-
specific properties like join points and pointcuts. Similarly,
the widely studied data flow-based criteria, such as all-defs
and all-uses, were adapted to take into consideration data that
flows through aspectual elements like pieces of advice and
introductions. The applications of all these criteria is supported
by a tool named JaBUTi/AJ [39], [40], [41], which has been
continuously evolved through the last years.
2) Fault-based testing: Fault-based testing [42] requires a
well-characterized set of faults types – generally organized
as a taxonomy – to be applied effectively. In this context,
Alexander et al. [43] had the first initiative to define a
fault taxonomy for AO software. Some years later, Brazilian
researchers performed a systematic survey of candidate fault
taxonomies and devised a comprehensive taxonomy for AO
programs [44]. Their subsequent studies investigated the fault-
proneness of evolving AO programs and revealed that the
taxonomy has the ability to classify the observed variety
of AOP-specific faults. These studies addressed, respectively,
coarse-grained [22] and fine-grained fault classifications [45].
The proposed taxonomy guided the definition of a mutation-
based testing approach for AspectJ-like programs [44]. The
approach encompasses a set of mutation operators that model
several instances of fault types and is supported by a tool
named Proteum/AJ [46]. Note that such set of operators has
inspired other research groups to propose AO-specific testing
approaches and automated support [47]. The feasibility of
applying the mutation operators supported by Proteum/AJ has
been recently reported [48].
3) Functional-based testing: Functional-based testing has
been addressed by Silveira [51], with emphasis on the impor-
tance of developing a testing model for AO programs, which
can reveal a potential fault caused by aspects composition
project both in static and dynamic weaving processes. METE-
ORA [52] is a new state-based testing method for AO software,
which includes a model to represent the dynamic behavior
of aspects interactions, an extended strategy to derive testing
sequences, and a testing tool prototype to support the method.
Experimentation and other types of evaluation comprise
an essential part of research. With this in mind, a major
limitation to be addressed by the community is the robust
evaluation of the varied testing approaches proposed in the
last decade. Another prominent research branch comprises
hybrid approaches that combine different testing techniques
(e.g. structural and mutation testing, or static and dynamic
evaluation). Preliminary efforts have been reported [49], [50]
and shall be further revisited.
D. Metrics
As a new software development technique emerges, it is
essential that empirical studies are carried out to investigate
whether and in which cases the advocated benefits are real.
Software metrics provide modularity indicators of software
design. The AOSD-BR community has been developing sig-
nificant work on quantitative assessment of AO software.
Sant’Anna et al. proposed one of the first works on AO
metrics: a suite of metrics for quantifying modularity-related
attributes, published in a SBES paper [53]. The suite included
coupling, cohesion and size metrics adapted from existing
OO metrics to deal with AO abstractions and mechanisms.
The suite also encompassed innovative concern-driven metrics,
aimed at quantifying different facets of separation of concerns.
Concern-driven metrics promote the notion of concern as a
measurement abstraction. This kind of metric relies on the
identification and documentation of the pieces of source code
that implement each concern of the system. A first empirical
study relied on the suite of metrics to compare Java and
AspectJ implementations of a multi-agent system [53], [54].
These metrics were later formalized by means of a conceptual
framework [55].
Several other empirical studies used the suite of AO metrics
proposed in [53] to assess AO systems of different domains
and nature. Empirical studies [56], [57], [58] compared the
modularity of Java and AspectJ solutions of the 23 design
patterns from the Gang of Four. Another study systematically
investigated how AOP scaled up to deal with modularization
of design patterns in the presence of pattern interactions [59].
The authors made both qualitative and quantitative assess-
ments of 62 pair-wise compositions of patterns taken from
3 medium-sized systems implemented in Java and AspectJ
programming languages. Cacho et al. [60] assessed the use of
Page 4
AOP for improving the modularity of a reflective middleware.
Kulesza et al. [61] presented an empirical study in which
they quantified the effects of AOP in the maintainability
of a web-based information system. Figueiredo et al. [23]
undertook an empirical study for evaluating whether AOP
promotes better modularity and changeability of product lines
than conventional variability mechanisms, such as conditional
compilation. Silva et al. [62] performed an empirical study to
assess whether AO solutions for agent-oriented design patterns
improve the separation of pattern-related concerns.
The aforementioned studies showed that concern-driven
metrics could be a very useful mechanism for evaluating
software modularity. Then, some works focused on further
investigating this kind of measurement. Sant’Anna et al.
[63], [64] extended the metrics suite defined in [53] with
new concern-driven metrics. Besides concern scattering and
tangling, these new metrics also quantify concern interaction,
concern-based cohesion, and concern-sensitive coupling. This
work also adapted concern-driven metrics to be applied on
architectural design and the architectural metrics were used
in some empirical studies [63], [65], [64], [66]. In addition,
Figueiredo et al. [28] defined heuristic rules based on concern-
driven metrics aiming at detecting code smells.
There are several opportunities for future work on concern-
driven measurement. First, there is still a need for empirically
validating concern-driven metrics in terms of their correlation
with external quality attributes, such as change-proneness [67].
The use of visualization techniques to support concern-driven
measurement has already been exploited [26], but there is still
much to be done in this area.
E. Early Aspects
The term “Early Aspects” (EA) is used to refer to crosscut-
ting properties at the requirements and software architecture
levels. Preliminary work on AO Requirements Engineering
(AORE) [68], [69], [70] pointed out that some existing tech-
niques failed to explicitly handle the crosscutting nature of
some requirements. These crosscutting requirements produced
scattered and tangled representations that were harder to un-
derstand, maintain and reuse. In this context, the Requirements
Engineering community addressed CC and their modulariza-
tion in earlier phases of the software development cycle.
Sousa et al.’s work was the first one to address AORE in
Brazil [71]. The authors used the NFR-Framework [72] along
with use cases to explicitly represent crosscutting requirements
separately from non-crosscutting ones and to compose them
in a non-invasive way. Other researchers have addressed the
modeling [73], [74] and evaluation of AO requirements [75],
the mapping of CC between different modeling languages, and
the elicitation of crosscutting requirements [76], [77].
In the context of requirements modeling, an extension of
the i* (iStar) modeling language [78], called Aspectual i*, was
proposed to support separation of CC [74]. i* models capture
social and intentional characteristics, while Aspectual i* de-
fines rules to systematically identify, modularize and compose
CC, reducing the complexity and making maintenance and
evolution of i* models easier [74], [79]. Aspectual i* has also
been used as the basis for the identification of aspectual use
cases, as described in [80].
In the modeling context, a meta-model for AO requirements
languages [73] was defined. Two modeling languages have
been defined upon this meta-model: (i) AOPML [81] – an
extension of the BPM notation to describe processes, improve
modularity and make processes easier to understand and reuse
[82]; and (ii) AOV-graph [83] – an extension of V-graph (a
goal-oriented language used to model early aspects [84]) to
represent the relationships among requirements. The AOV-
graph has been used in empirical studies with the Health
Watcher and Mobile Media benchmarks [85], [86], [87].
More recently, AOV-graph has been extended to PL-
AOVgraph, in a strategy to automatically map feature models
in the context of Software Product Lines (SPL) – see also
Section II-G – into PL-AOVgraph and vice-versa [88]. As-
pectual i* has also been used in the SPL context to capture
common and variable features and thus facilitate the selection
among product configurations [89]. Finally, use case scenarios
[90] and business processes [91] were defined to modularize
features in SPL specifications. Case studies and controlled
experiments were conducted showing that in software evolu-
tion scenarios, the gains in modularization depend on several
factors such as the team experience and the nature of the
change requests.
There are many challenges ahead of AORE research, espe-
cially in the context of modeling tools, evaluation mechanisms
and controlled experiments for assessing the benefits of the
separation of crosscutting requirements, from earlier to later
stages in the development lifecycle. Another issue to be
addressed is how to mainstream these approaches into industry.
In the context of software architecure, research on AO
architecture aims to improve and broaden the understanding of
the identification, representation and management of architec-
tural concerns, specially crosscutting architectural concerns.
The work from Batista and colleagues [92] pioneered the
discussions on some fundamental issues about the integration
of AOSD and architecture description languages (ADLs). They
proposed a composition model based on existing architectural
abstractions – connectors and configuration – to support the
definition of crosscutting composition facilities and quan-
tification mechanisms. The AspectualACME [93], [94] AO
ADL was developed following this approach. AspectualACME
supported improved composability by means of aspectual con-
nectors. In contrast to the heavyweight solutions provided by
some AO-ADLs, AspectualACME is a lightweight AO-ADL
that extends traditional architectural connection abstractions to
support the definition of composition facilities.
Chavez et al. [95] propose style-based composition, a new
flavor of aspect composition at the architectural level based
on architectural styles that addresses the pointcut fragility
problem2[96]. The authors proposed style-based join point
2Pointcut definitions are fragile because when the system evolves, pointcuts
may unintentionally capture or miss a given join point, as a result of apparently
harmless modifications of base elements.
Page 5
models and provided a pointcut language that supports the
selection of join points based on style-constrained architectural
models. Stability and reusability assessments of the proposed
style-based composition model were carried out through three
case studies involving different styles [95]. The interplay of
style-based pointcuts and some style composition techniques
was also discussed [97] using four different architectural styles
applied to an evolving multi-agent architecture.
Current and future directions include the integration of
ADLs, AOSD and SPL. The idea is to support the modular
representation of architectural commonalities, variabilities, and
their composition, and also providing means to express the
specific product configuration. Another promising venue is to
provide mechanisms to improve the traceability to other activ-
ities and related models (e.g. analysis and implementation).
F. Modeling and Model-Based Techniques
Aspect-Oriented Modeling (AOM) is a critical part of
AOSD that focuses on notations and techniques for specifying,
representing, visualizing and communicating AO solutions.
Approaches range from lightweight profiles for AspectJ pro-
grams [98] to heavyweight and generic UML extensions [99]
for most kinds of AO programs. The AOSD-BR research
community has also developed solutions for AOM, from mod-
eling languages, for instance, the aSideML language [100],
[101] to profiles such as UML-AOF [102]. The aSideML
language[100] is a modeling language for specifying and
communicating AO designs. It provides notation, semantics
and rules with the main purpose of addressing the conceptual
modeling and detailed design of a system in terms of aspects
and crosscutting within the UML Object Model – for structural
and behavioral models. UML-AOF is a profile that makes
the design characteristics of AO frameworks (AOFs) more
evident in models than standard profiles for AOP [102]. UML-
AOF gathers several stereotypes and tagged values which
represent design and architectural details commonly found in
AOFs, such as idioms, patterns and extension mechanisms.
Furthermore, since most profiles lack important concepts or
have deficiencies when used for code generation, a process to
detect inconsistencies between what is provided by the profile
and what is required by the paradigm [103] has been proposed.
Historically, AOSD has focused on modeling and managing
CC (horizontal separation) whereas Model Driven Develop-
ment (MDD) [104] has focused on the explicit separation of
platform independent from platform specific concerns (vertical
separation). As such, AOSD and MDD are complementary
and can benefit from each other to tackle the challenges of
developing large and complex software systems.
Some work combines AOSD with MDD, integrating CC in
models by using model-driven transformations [101], [105],
[106], [107], [108]. The AOSD-BR community has exploited
the synergy between AOSD and MDD by developing an
infrastructure named CrossMDA [109], which encompasses a
transformation process, a set of services and associated support
tools. CrossMDA is based on the Model-Driven Architecture
(MDA) [110] and aims at: (i) raising the abstraction level of as-
pect modeling through the use of platform independent models
(PIM) representing CC independent on the business models;
(ii) promoting the reuse of CC modeled as PIM elements; (iii)
automating the process of mapping the relationship of CC and
business models through automatic transformation.
The AOSD-BR community has developed different solu-
tions to tackle the pointcut fragility problem [96] using model-
based techniques. One of the proposals is an extension of
the CrossMDA framework [109], named CrossMDA2 [111],
built as a new instantiation of the model-driven pointcuts
approach [96]. Another approach [112] also relies on the use
of model-based pointcuts [96] but has the distinctive feature
of defining model-based pointcuts at the architectural level,
instead of focusing at the design or implementation levels as
other existing proposals. An MDD process drives the definition
of conceptual and aspect models, and their instantiation and
composition to generate the architectural base model. The
solution is implemented using an AO-ADL [113].
The research in Model-Based Techniques in AOSD can be
further explored in different directions. One possible direction
is to investigate the types of join points that can be suitably
captured by architecture-oriented approaches and those that
cannot be captured (or even do not make sense to be). Another
one is to investigate what happens with the portions of the
system that do not adhere to identifiable architectural patterns.
Finally, the area still lacks on experiments that evaluate prac-
tical aspects, such as the overhead introduced in the software
development process by the proposed approaches.
G. Product-Lines and Frameworks
A Software Product Line (SPL) is a set of software inten-
sive systems that share a common, managed set of features
satisfying the specific needs of a particular market segment
or mission, and that are developed from a common set of
core assets in a prescribed way [114]. Since the implemen-
tation of features tends to have crosscutting and tangled
implementation [115], AOSD has been explored as a possible
implementation strategy for SPLs in order to tackle these
issues and ensure modular feature implementation.
The synergy between AOP and SPL research has been
reported in the SPL community by exploring variability man-
agement to address portability issues in industrial-strength
mobile game development [116], [31]. Such works propose
the use of aspects to modularize the implementation of device-
specific features, by applying a set of refactorings to boot-
strap a product line and to evolve it. Furthermore, an SPL-
based extension of XPIs [117] named Extension Join Points
(EJPs) [118], [119] has been proposed to enforce design rules
between object-oriented core and aspect-based device-specific
assets. Empirical work has assessed benefits and drawbacks of
AOP in evolving SPLs [23].
In the context of AOSD, many researchers have investigated
how aspects impact both framework development and instan-
tiation [120], [121], [122], [123] and how to turn the reuse of
CC into a more systematic and controlled task. A Crosscut-
ting Framework (CF) [123], [124] is an AO framework that
Page 6
encapsulates a single CC, e.g., persistence or business rules.
Patterns [125], idioms [126] and UML profiles [127] support
the use of CFs.
The interaction between AOP and SPL is also investigated in
terms of development processes and tools. The work of Pacios
and others [128] proposes guidelines to use AOP to implement
the functional features of a SPL using an incremental strategy.
It was further evolved to an approach named AIPLE-IS [129],
in which the main idea is to incrementally build a SPL for
information systems using AOP. The SPL core is developed
first, followed by the addition of optional features through
aspects. Application generators have been proposed to ease
SPL instantiation. Captor-AO is a Configurable Application
Generator that implements AOP concepts and is used to
support the development of domain-specific applications [130].
Captor-AO can also be used in an approach in which aspects
are used to implement SPL crosscutting features to improve
their reuse not only within the SPL domain, but also across
different domains [131]. The idea is to isolate these cross-
cutting features into “crosscutting domains”, so that features
scattered across different SPLs are easily located and reused.
Prospective development on the interaction of AOSD and
SPL Engineering includes providing sound and evidence-based
guidelines and tools on how to combine different implementa-
tion strategies that provide feature modularity and stability of
SPL assets as well as usability and low usage cost. Another
promising research thread is exploring the use of formal
methods techniques in order to ensure in a scalable way the
checking of properties such as type safety and non-functional
requirements of SPL artifacts at different levels of abstraction.
III. EVOLUTION AND RESEARCH IMPACT
A. AOSD-BR Timeline and Growth
The creation of the Brazilian Workshop on AOSD (WASP),
in 2004, is probably the starting milestone of the AOSD Brazil-
ian community. That was definitely the first effort to bring
together the AOSD researchers in a single event. WASP was
organized as a one-day workshop at the Brazilian Symposium
on Software Engineering (SBES). After the first edition in
Brasilia - DF, two more WASP workshops were held at SBES
2005 (Uberlˆ andia - MG) and SBES 2006 (Florian´ opolis - SC).
At this point, the community was better organized and there
were well-established international collaborations.
In 2006, the Latin American Network for Research in
AOSD (LatinAOSD) emerged, involving several institutions
from Brazil , Chile, Argentina and Colombia. The LatinAOSD
network pushed WASP to a broader scope, and in 2007, WASP
became LA-WASP, the Latin-American Workshop on AOSD,
organized as two-day workshops at SBES.
In 2011, the Brazilian AOSD community had another im-
portant milestone, the 10th International Conference on AOSD
was held in Brazil (Porto de Galinhas - PE). The conference
had 138 attendees, where 65 (47%) were Brazilian researchers.
This recognizes the role played by the AOSD Brazilian
community in the international context. Table I presents a
TABLE I
AOSD-BR TIMELINE
1997First paper coining the term AOP [3]
First AOP workshop (ECOOP 1997)
First Brazilian paper on AOSD in SBES [132]
First Brazilian MSc Dissertation on AOSD [133]
First AOSD conference (AOSD 2002)
First Brazilian paper on AOSD published in an international
conference [134]
First AOSD book released (Laddad R., AspectJ in Action)
First Brazilian PhD Theses on AOSD [100], [54]
First Brazilian Workshop on AOSD (WASP 2004)
JBCS Special Issue on AOSD
First AOSD journal (Transactions on AOSD)
First Latin-American workshop on AOSD (LA-WASP 2007)
10th AOSD conference held in Brazil (AOSD 2011)
1999
2000
2002
2003
2004
2005
2006
2007
2011
TABLE II
AOSD-BR IN NUMBERS
SBES
Papers
49
Journal
Papers
49
*100 at international conferences, 76 at national (including SBES)
Conference
Papers
176*
Theses Dissertations Int’l Coop.
Projects
12 2155
timeline that summarizes the Brazilian community milestones
also showing some crucial international AOSD milestones.
Table II depicts raw/absolute numbers related to AOSD
research in Brazil, including publications, theses, and inter-
national cooperation projects. The selected papers: (1) had
at least one author working in a Brazilian institution when
the paper was written; (2) brought contributions to AOSD or
related topics; and (3) were indexed by Google Scholar. The
growth of the AOSD community can be noted by the number
of international research projects developed in cooperation
among Brazilian and foreign groups, as well as an increase in
the number of research papers resulting from such cooperative
research. This is more evident when looking at the number of
conference papers (Table II) – more than 50% were accepted
by international conferences.
Fig. 1.AOSD-BR publications.
Figures 1 and 2 depict publications and theses growing from
the AOSD-BR community over the years. It is interesting to
notice: (i) the increase in the number of publications and theses
since the formation of AOSD-BR community in 2004; and (ii)
the high number of international publications that, since 2006,
has been greater than the number of publications at Brazilian
Page 7
Fig. 2.AOSD-BR theses and dissertations.
venues, showing once more the internationalization process
of this community. Figure 1 also shows the number of SBES
papers from the AOSD-BR community. The growth of the
community and its research can be clearly seen by the increase
of the AOSD related papers at SBES over the years. In fact,
most of the national AOSD-BR papers (76) were published on
SBES (49), as shown in Table II.
B. Assessment of AOSD-BR Research Impact
The research impact of the AOSD-BR community can be
quantified in terms of the increasing number of accepted pa-
pers in top SE conferences around the world, the number of ci-
tations, and the number of best paper awards and nominations
received in international and national conferences. In addition,
other relevant results are reported, such as the adoption of AO
applications as benchmarks by the AOSD research community,
and the participation of Brazilian researchers in program and
organizing committees of several international conferences and
workshops.
A quantitative indicator of the quality and relevance of
the AOSD-BR research community is the visible increase of
accepted papers in top SE conferences over the last years.
Table III shows the number of papers published by the
Brazilian research community from 1999 to 2011 in top
software engineering (SE) conferences3and the number and
percentage of the total number of these accepted papers that
are a contribution from the AOSD-BR community. In some
cases, the contribution of our community is equal or superior
to 50% of the total number of papers published by Brazilian
researchers in these conferences: International Conference on
SE (ICSE), International Conference on Software Maintenance
(ICSM), Object-Oriented Programming, Systems, Languages
and Applications (OOPSLA), European Conference on Object-
Oriented Programming (ECOOP), and Foundations on SE
(FSE). We can also notice that the AOSD-BR community
has gradually increased the number of accepted papers in the
premier AOSD conference from 2002 to 2011. It is important
to emphasize that all these conferences have a strict acceptance
rate, and the papers published there represent the state-of-the-
art of outstanding and high-quality research developed around
the world. These publications also demonstrate the maturity
3Only papers with at least one author from a Brazilian institution.
and quality of research work developed by the AOSD-BR
community.
Another important quality indicator of the AOSD-BR re-
search is the citation number of papers published by this
community in SE international and national conferences. Two
research contributions [134], [58] from the community have
received more than 200 citations4each. The first one [134] is a
contribution from the Software Productivity Group (SPG) from
UFPE that illustrates the modularization of the persistence
and distribution CC using AspectJ. The second one was the
first relevant international publication of the SE Laboratory
(LES) from PUC-Rio that quantifies and compares OO and
AO implementations of classical design patterns [58] using
software internal metrics. There are also several papers [23],
[65], [53], from our community that have received more
than 100 citations, even though many of them have been
published only recently. One of these papers, “On the reuse
and maintenance of AO software: An assessment framework”
[53], presents a metrics suite to compare AO and OO imple-
mentations, including the new separation of concerns (SoC)
metrics. To the best of our knowledge, this is the most cited
SBES paper considering all SBES editions. It illustrates that
a paper published in SBES can be read and recognized by the
international SE research community. Many of the empirical
assessments developed by the AOSD-BR community [23],
[65] adopted this metric suite and helped to disseminate the de-
velopment of several quantitative comparative studies between
AO and OO implementations. Moreover, several other papers
written by our community and published in international
SE conferences have received between 40 to 100 citations.
Finally, many papers published in SBES have been cited by
other international and national papers. A complete list of
citations to papers from the AOSD-BR research community
can be found elsewhere [135]. Also, as a result of this high
number of citations to their publications, six researchers from
AOSD-BR community are listed in the Top 100 SE research
ranking considering the citations over the last five years in the
Microsoft Academic Search engine.
TABLE III
BRAZILIAN RESEARCHERS PAPERS ON TOP SE CONFERENCES.
Top SE Con-
ferences
Papers
Brazilian Community
(1999-2011)
4
7
3
2
2
15
9
from the Papers (Percentage) from
AOSD-BR
(1999-2011)
2 (50%)
4 (57%)
2 (67%)
1 (50%)
1 (50%)
6 (40%)
9 (100%)
Community
ICSE
ICSM
ECOOP
OOPSLA
FSE
CSMR
AOSD
Several papers have been nominated to the best paper
award in the AOSD – the premier international conference on
AOSD, and SBES – the main Brazilian SE symposium. Three
4Source: Google Scholar.
Page 8
papers have been nominated at the AOSD conference, one in
2010 [136], another in 2009 [95], and the other in 2005 [57].
Besides, our community has received 11 nominations for the
SBES best paper award along the last decade (2001-2010), and
received the best paper award on three occasions [56], [101],
[26]. This reflects the high quality and recognition of the SE
international and national communities on the research work
developed by AOSD-BR groups. A list of all awards received
by AOSD-BR research work is available elsewhere [135].
Another contribution of this community is the development
and evolution of two application benchmarks that were used by
several researchers around the world: HealthWatcher [134] and
MobileMedia [23]. HealthWatcher [134] is a real web infor-
mation system that stores information about the public health
system and registers complaints from citizens. HealthWatcher
was first implemented in Java programming language, and the
Software Productivity Research Group from UFPE derived an
AspectJ implementation of it. From this point, both Java and
AspectJ versions were evolved, creating several versions that
were used in several studies at Brazilian and international in-
stitutions. For example, Health Watcher was the recommended
case study for the papers submitted to the Early Aspects
at ICSE 2007 (Workshop in AO Requirements Engineering
and Architecture Design). At this moment, HealthWatcher
encompasses nine subsequent releases that provide support to
the execution of AO maintainability studies. Our main partner
on the evolution of HealthWatcher is the Lancaster University,
where the versions of HealthWatcher are publicly available5.
MobileMedia [23] is a Software Product Line (SPL) exem-
plar for media management on mobile devices. MobileMedia
was first implemented in Java and AspectJ by Brazilian
students at Lancaster University. After a few years, the current
version of MobileMedia gathered contributions from a set of
16 institutions. Each of these contributed in many different
ways. For example, some institutions’ members directly pro-
vided initial MobileMedia artifacts that followed AO design
guidance cooperatively developed by them. Other partners
contributed by reviewing the artifacts according to their area
of expertise. Some contributions were offered by experts in
specific techniques used to produce the MobileMedia artifacts,
such as goal models and architecture descriptions. At this
moment, MobileMedia encompasses eight subsequent releases
that support the execution of studies of AO SPL maintainabil-
ity. In addition, MobileMedia has already been successfully
used in a number of assessments of AOSD [23], [86].
Last but not least, AOSD-BR researchers now participate
in program committees of important international confer-
ences (AOSD and ICSE) and have organized and participated
in the technical program committee of several workshops
(Early Aspects, Assessment of Contemporary Modularization
Techniques - ACOM, Workshop on Empirical Evaluation of
Software Composition Techniques - ESCOT) in conjunction
with top SE conferences.
5http://bit.ly/HealthWatcher
IV. CONCLUSIONS AND FUTURE TRENDS
In this paper, we presented an overview of the research
developed by the AOSD research community in Brazil. AOSD
research is about modularizing CC, and interestingly enough,
AOSD research is itself crosscutting. AOSD weaves different
subareas of SE together, around topics such as abstraction,
encapsulation, separation of concerns, decomposition, and
mainly, modularity. These different subareas have overlapping
goals and interact in several and different ways. The AOSD-
BR experience showed that such interaction is rich and pro-
motes a great deal of opportunities gathering researchers from
different universities and subareas.
One of the major forums that have fostered the AOSD-BR
community is the Brazilian Symposium on Software Engi-
neering (SBES) – most of the AOSD research work in Brazil
has been published at SBES. Most AOSD-BR researchers
are SE researchers with active participation in the SBES
conference. SBES has also hosted the WASP/LA-WASP series
of workshops that created and allowed the community to
become mature, active, and internationalized.
After almost 15 years of research worldwide and more than
10 years of research in Brazil, with a growing number of high-
quality publications, academic theses and projects, increas-
ing international impact, the big question for the AOSD-BR
community is: what are the most demanding and promising
paths for the community? In the paper, several challenges
were presented for different subareas in which the AOSD-BR
community has concentrated its research efforts (Section II).
Definitely, one necessary challenging path is towards industry
issues. The research community needs to look over real prob-
lems, and apply AOSD solutions to these problems. On the
other hand, the AOSD-BR community might have influenced
one of the most successful industry cases of AOSD in practice,
the SpringSource6. The OOPSLA 2002 paper from Soares et
al. [134] presented a way to use aspects to implement database
transactions. Currently, Spring integration framework still uses
a similar approach. This is an evidence that the Brazilian com-
munity needs to better exploit the existing synergy between
goals and challenges related to AOSD to problems in industry
thus contributing to increase the number of applications, tools,
and users.
ACKNOWLEDGEMENTS.
This work was partially supported by the National Institute
of Science and Technology for Software Engineering (INES),
CNPq grant 573964/2008-4.
REFERENCES
[1] E. Dijkstra, A Discipline of Programming.
[2] P. Tarr et al., Aspect-Oriented Software Development.
Addison-Wesley, 2005, ch., pp. 37–61.
[3] G. Kiczales et al., “Aspect-oriented programming”, in Proc. ECOOP
1997, ser. LNCS 1271, 1997, pp. 220–242.
[4] R. Filman et al., Eds., Aspect-Oriented Software Development.
Boston: Addison-Wesley, 2005.
Prentice-Hall, 1976.
Boston:
6http://www.springsource.org/
Page 9
[5] J. B. Goodenough, “Exception handling: Issues and a proposed nota-
tion”, CACM, 18(12):683–696, 1975.
[6] M. Lippert and C. V. Lopes, “A study on exception detection and
handling using aspect-oriented programming”, in ICSE 2000, pp. 418–
427.
[7] F. Castor Filho et al., “Exceptions and aspects: The devil is in the
details”, in 14th ACM SIGSOFT FSE, 2006, pp. 152–162.
[8] F. Castor Filho et al., “Extracting error handling to aspects: A cook-
book”, in ICSM 2007, pp. 134–143.
[9] J. C. Taveira et al., Assessing intra-application exception handling reuse
with aspects. in SBES, 2009.
[10] R. Coelho et al., “Assessing the impact of aspects on exception flows:
An exploratory study”, in ECOOP 2008, pp. 207–234.
[11] R. Coelho et al., “Unveiling and taming liabilities of aspect libraries
reuse”, in SBES 2008.
[12] N. Cacho et al., “Ejflow: taming exceptional control flows in aspect-
oriented programming”, in AOSD 2008, pp. 72–83.
[13] N. Cacho et al., “Exception flows made explicit: An exploratory study”,
in SBES 2009.
[14] R. Bernardo et al., “Agile testing of exceptional behavior”, in SBES
2011.
[15] R. Coelho et al., “Unveiling and taming liabilities of aspects in the
presence of exceptions: A static analysis based approach”, Inf. Sci.,
181(13):2700–2720, 2011.
[16] W. Opdyke, “Refactoring object-oriented frameworks”, Ph.D. disserta-
tion, University of Illinois at Urbana Champaign, 1992.
[17] E. Piveta et al., “Bad smells em sistemas orientados a aspectos”, in
SBES 2005.
[18] E. Piveta et al., “Detecting bad smells in aspectj”, J. Universal Comp.
Science, 12(7):811–827, 2006.
[19] E. Piveta et al., “Avoiding bad smells in aspect-oriented software”, in
19th SEKE, 2007.
[20] E. Piveta et al., “Representing refactoring opportunities”, in ACM SAC
2009. Honolulu, EUA: ACM Press, 2009.
[21] E. Piveta, “Improving the search for refactoring opportunities on
aspect-oriented and object-oriented software”, Ph.D. dissertation,
UFRGS, 2009.
[22] F. Ferrari et al., “An exploratory study of fault-proneness in evolving
aspect-oriented programs”, in ICSE 2010, pp. 65–74.
[23] E. Figueiredo et al., “Evolving software product lines with aspects: an
empirical study on design stability”, in ICSE 2008, pp. 261–270.
[24] E. Figueiredo et al., “Crosscutting patterns and design stability: An
exploratory analysis”, in 17th ICPC, 2009, pp. 138–147.
[25] B. Silva et al., “On the support and application of macro-refactorings
for crosscutting concerns”, in SBCARS 2009.
[26] G. Carneiro et al., “Identifying code smells with multiple concern
views”, in SBES 2010, pp. 128–137.
[27] E. Figueiredo et al., “Concernmorph: Metrics-based detection of cross-
cutting patterns”, in ACM SIGSOFT FSE 2009.
[28] E. Figueiredo et al., “Applying and evaluating concern-sensitive design
heuristics”, in SBES 2009, pp. 83–93.
[29] M. T. Valente et al., “On the benefits of quantification in aspectj
systems”, J. Braz. Comp. Society, 16(2):133–146, 2010.
[30] L. Cole and P. Borba, “Deriving refactorings for aspectj”, in AOSD
2005, pp. 123–134.
[31] V. Alves et al., “Extracting and evolving code in product lines with
aspect-oriented programming”, Trans. on AOSD, 4:117–142, 2007.
[32] F. Calheiros et al., “Product line variability refactoring tool”, in WRT
2007 with ECOOP 2007, pp. 32–33.
[33] V. Alves et al., “Flip: Managing software product line extraction and
reaction with aspects”, in 12th SPLC, 2008, p. 354.
[34] M. T. Valente et al., “Guidelines for enabling the extraction of aspects
from existing object-oriented code”, J. of Object Technology, 8(3):101–
119, 2009.
[35] R. Alexander, “Aspect-Oriented Programming: the Real Costs?” IEEE
Software, 20(6):90–93, 2003.
[36] J. Zhao, “Tool support for unit testing of aspect-oriented software”, in
OOPSLA Workshop on Tools for AOSD, 2002.
[37] O. Lemos et al., “Teste de unidade de programas orientados a aspectos”,
in SBES 2004, pp. 55–70.
[38] O. Lemos and P. Masiero, “Integration testing of aspect-oriented
programs: a structural pointcut-based approach”, in SBES 2008, pp.
49–64.
[39] O. Lemos et al., “Control and data flow structural testing criteria for
aspect-oriented programs”, J. Syst. and Software, 80(6):862–882, 2007.
[40] O. Lemos et al., “Integration testing of object-oriented and aspect-
oriented programs: A structural pairwise approach for java”, Science
of Comp. Programming, 74:861–878, 2009.
[41] O. Lemos and P. Masiero, “A pointcut-based coverage analysis ap-
proach for aspect-oriented programs”, Info. Sciences, 181(13):2721–
2746, 2011.
[42] L. J. Morell, “A theory of fault-based testing”, IEEE Trans. on Soft.
Engineering, 16(8):844–857, 1990.
[43] R. T. Alexander et al., “Towards the systematic testing of aspect-
oriented programs”, Colorado State Univ. TR CS-04-105, 2004.
[44] F. Ferrari et al., “Mutation testing for aspect-oriented programs”, in
ICST 2008, pp. 52–61.
[45] F. Ferrari et al., “Characterising faults in aspect-oriented programs:
Towards filling the gap between theory and practice”, in SBES 2010,
pp. 50–59.
[46] F. Ferrari et al., “Automating the mutation testing of aspect-oriented
Java programs”, in ICSE Workshop on Automation of Software Test,
2010, pp. 51–58.
[47] R. Delamare et al., “A test-driven approach to developing pointcut
descriptors in aspectj”, in ICST, 2009, pp. 376–385.
[48] F. Ferrari, “A contribution to the fault-based testing of aspect-oriented
software”, Ph.D. dissertation, ICMC/USP, 2010.
[49] O. Lemos et al., “Testing aspect-oriented programming pointcut de-
scriptors”, in ISSTA Workshop on Testing AO Programs, 2006, pp.
33–38.
[50] R. Coelho et al., “On the robustness assessment of aspect-oriented
programs”, in ACoM Workshop at OOPSLA 2009.
[51] F. F. Silveira et al., “The testing activity on the aspect-oriented
paradigm”, in AOSD Workshop on Testing Aspect Oriented Programs,
2005.
[52] F. Silveira, “Meteora: Um m´ etodo de teste baseado em estados para
software de aplicac ¸˜ ao orientado a aspectos”, Ph.D. dissertation, ITA,
2007.
[53] C. Sant’anna et al., “On the reuse and maintenance of aspect-oriented
software: An assessment framework”, in SBES 2003, pp. 19–34.
[54] A. Garcia, “From Objects to Agents: An Aspect-Oriented Approach”,
Ph.D. dissertation, PUC-Rio, 2004.
[55] E. Figueiredo et al., “On the maintainability of aspect-oriented soft-
ware: A concern-oriented measurement framework”, in CSMR, 2008,
pp. 183–192.
[56] C. Sant’Anna et al., “Design Patterns as Aspects: A Quantitative
Assessment”, in SBES 2004.
[57] A. Garcia et al., “Modularizing design patterns with aspects: a quanti-
tative study”, in AOSD 2005, pp. 3–14.
[58] A. Garcia et al., “Modularizing design patterns with aspects: a quanti-
tative study”, Trans. on AOSD I, pp. 36–74, 2006.
[59] N. Cacho et al., “Composing design patterns: a scalability study of
aspect-oriented programming”, in AOSD, 2006, pp. 109–121.
[60] N. Cacho et al., “Improving modularity of reflective middleware with
aspect-oriented programming”, in Workshop on Software Engineering
and Middleware, 2006, pp. 31–38.
[61] U. Kulesza et al., “Quantifying the effects of aspect-oriented program-
ming: A maintenance study”, in ICSM, 2006, pp. 223–233.
[62] C. Silva et al., “Advanced separation of concerns in agent-oriented
design patterns”, IJAOSE, 3(2/3):306–327, 2009.
[63] C. Sant’Anna et al., “On the modularity of software architectures: A
concern-driven measurement framework”, in ECSA 2007, pp. 207–224.
[64] C. Sant’Anna, “On the modularity of aspect-oriented design: A
concern-driven measurement approach”, Ph.D. dissertation, PUC-Rio,
2008.
[65] P. Greenwood, T. Bartolomei, E. Figueiredo, A. Garcia, N. Cacho,
C. Sant’Anna, P. Borba, U. Kulesza, and A. Rashid, “On the impact
of aspectual decompositions on design stability: An empirical study”,
in Proc. ECOOP 2007.Springer-Verlag, 2007, pp. 176–200.
[66] C. Sant’Anna et al., “On the modularity assessment of aspect-oriented
multiagent architectures: a quantitative study”, IJAOSE, vol. 2, pp. 34–
61, 2008.
[67] B. Silva et al., “Concern-based cohesion as change proneness indicator:
an initial empirical study”, in ICSE WETSoM 2011, pp. 52–58.
[68] J. Grundy, “Aspect-oriented requirements engineering for component-
based software systems”, in IEEE Symp. on Req. Eng., 1999, pp. 84–
91.
Page 10
[69] A. Rashid et al., “Early aspects: A model for aspect-oriented require-
ments engineering”, in Joint Int’l Conf. on Req. Eng., 2002.
[70] A. Moreira et al., “Crosscutting quality attributes for requirements
engineering”, in SEKE 2002, pp. 167–174.
[71] G. Sousa et al., “Adapting the nfr framework to aspect-oriented
requirements engineering”, in SBES 2003, pp. 83–98.
[72] L. Chung et al., Non-functional requirements in software engineering,
Kluwer Academic Publishers, 2000.
[73] L. Silva and J. Leite, “Uma linguagem de modelagem de requisitos
orientada a aspectos”, in Workshop on Req. Eng., 2005, pp. 13–25.
[74] F. Alencar et al., “Integration of aspects with i* models”, in AOIS
2006, pp. 183–201.
[75] R. Ramos et al., “Avaliac ¸˜ ao da qualidade de documentos de requisitos
orientado a aspectos”, in IDEAS 2006.
[76] A. Sampaio et al., “Ea-miner: a tool for automating aspect-oriented
requirements identification”, in ASE, 2005, pp. 352–355.
[77] L. Antonelli et al., “Early identification of crosscutting concerns in the
domain model guided by states”, in SAC 2010, pp. 275–280.
[78] E. Yu et al., Social Modeling for Requirements Engineering. Mit Press,
2011.
[79] F. Alencar et al., “Towards modular i* models”, in SAC 2010, pp.
292–297.
[80] K. A. L. Rojas et al., “Derivaci´ on de casos de uso con aspectos a partir
de modelos organizacionales i*”, in CIbSE 2009, pp. 253–258.
[81] C. Cappelli et al., “An aspect-oriented approach to business process
modeling”, in EA Workshop at AOSD 2009, pp. 7–12.
[82] C. Cappelli et al., “Reflections on the modularity of business pro-
cess models: The case for introducing the aspect-oriented paradigm”,
Business Proc. Management Journal, 16(4):662–687, 2010.
[83] L. Silva and J. Leite, “Integrac ¸˜ ao de caracter´ ısticas transversais durante
a modelagem de requisitos”, in SBES 2005, pp. 26–39.
[84] Y. Yu, J. Leite, and J. Mylopoulos, “From goals to aspects: discovering
aspects from requirements goal models”, in RE, 2004, pp. 38–47.
[85] P. Greenwood et al., “On the contributions of an end-to-end aosd
testbed”, in Early Aspects Workshop. IEEE Comp. Soc., 2007, p. 8.
[86] E. Figueiredo et al., “Detecting architecture instabilities with concern
traces: An exploratory study”, in WICSA/ECSA 2009, pp. 261–264.
[87] R. Chitchyan et al., “Semantic vs. syntactic compositions in aspect-
oriented requirements engineering: an empirical study”, in AOSD 2009,
pp. 149–160.
[88] L. Santos et al., “On the integration of the feature model and pl-
aovgraph”, in EA Workshop at AOSD 2011, pp. 31–36.
[89] C. Silva et al., “Tailoring an aspectual goal-oriented approach to model
features.” in SEKE 2008, pp. 472–477.
[90] R. Bonif´ acio and P. Borba, “Modeling scenario variability as crosscut-
ting mechanisms”, in AOSD 2009, pp. 125–136.
[91] I. Machado et al., “Managing variability in business processes: an
aspect-oriented approach”, in EA Workshop at AOSD 2011, pp. 25–30.
[92] T. Batista et al., “Reflections on Architectural Connection: Seven Issues
on Aspects and ADLs”, in EA at ICSE 2006.
[93] A. Garcia et al., “On the Modular Representation of Architectural
Aspects”, in EWSA 2006.
[94] T. Batista et al., “Aspectual Connectors: Supporting the Seamless
Integration of Aspects and ADLs”, in SBES 2006.
[95] C. Chavez et al., “Composing architectural aspects based on style
semantics”, in AOSD 2009, pp. 111–122.
[96] A. Kellens et al., “Managing the evolution of aspect-oriented software
with model-based pointcuts”, in ECOOP 2006, pp. 501–525.
[97] A. Molesini et al., “Stability Assessment of Aspect-oriented Software
Architectures: A Quantitative Study”, J. Syst. and Software, 2009.
[98] J. Evermann, “A meta-level specification and profile for aspectj in uml”,
Journal of Object Technology, 6(7):27–49, 2007.
[99] S. Clarke and R. Walker, Aspect-Oriented Software Development. ch.
Generic Aspect-Oriented Design with Theme/UML, pp. 425–458.
[100] C. Chavez, “Um enfoque baseado em modelos para o design orientado
a aspectos”, Ph.D. dissertation, PUC-Rio, 2004.
[101] C. Chavez et al., “Taming Heterogeneous Aspects with Crosscutting
Interfaces”, in SBES 2005.
[102] J. Uetanabara et al., “Uml-aof: A profile for modeling aspect-oriented
frameworks”, in AOM at AOSD 2009.
[103] T. Gottardi et al., “A process for aspect-oriented platform-specific
profile checking”, in Int’l workshop on Early aspects.
[104] D. Schmidt, “Guest editor’s introduction: Model-driven engineering”,
IEEE Comp., vol. 39, no. 2, pp. 25–31, 2006.
[105] T. Graziadei, “TAspect-Oriented Model Weaver”, Master’s thesis, Fach-
hochschule Vorarlberg, Dornbirn, Austria, 2005.
[106] D. Simmonds et al., “An aspect oriented model driven framework”,
Computing, pp. 119–130, 2005.
[107] A. Solberg, “Using aspect oriented techniques to support separation of
concerns in model driven development”, in SAC 2005, pp. 121–126.
[108] D. Wampler, “The role of aspect-oriented programming in omg’s
model-driven architecture”, 2003.
[109] M. Alves et al., “Crossmda: a model-driven approach for aspect
management”, JUCS, 14(8), pp. 1314–1343, 2008.
[110] S. o. Mellor, MDA Distilled.
Wesley Longman Publishing Co., Inc., 2004.
[111] V. Fernandes et al., “Crossmda2: Uma abordagem baseada em modelos
para gerˆ encia de evoluc ¸˜ ao de pointcuts”, in SBCARS 2009, pp. 195–
208.
[112] M. Pinto et al., “On the need of architectural patterns in aosd for
software evolution”, in WICSA/ECSA 2009, pp. 245–248.
[113] M. Pinto and L. Fuentes, “Ao-adl: an adl for describing aspect-oriented
architectures”, in 10th Early Aspects: current challenges and future
directions, 2007, pp. 94–114.
[114] P. Clements and L. M. Northrop, Software Product Lines: Practices
and Patterns. Addison-Wesley, 2001.
[115] M. Mezini and K. Ostermann, “Variability management with feature-
oriented programming and aspects”, in 12th ACM SIGSOFT FSE,
2004, pp. 127–136.
[116] V. Alves et al., “Extracting and evolving mobile games product lines”,
in SPLC 2005, pp. 70–81.
[117] K. Sullivan et al., “Information hiding interfaces for aspect-oriented
design”, in 10th ESEC/FSE-13, pp. 166–175.
[118] U. Kulesza et al., “Improving extensibility of object-oriented frame-
works with aspect-oriented programming”, in 9th Int’l Conf. on
Software Reuse (ICSR 2006), pp. 231–245.
[119] U. Kulesza et al., “Implementing framework crosscutting extensions
with ejps and AspectJ”, in SBES 2006.
[120] A. Rashid and R. Chitchyan, “Persistence as an aspect”, in AOSD 2003,
pp. 759–764.
[121] M. Mortensen and S. Ghosh, “Using aspects in object-oriented frame-
works”, in Int’l Conf. on AOSD 2006, 2006.
[122] M. Pinto et al., “Separation of coordination in a dynamic aspect-
oriented framework”, in Int’l Conf. on AOSD 2002, 2002.
[123] V. Camargo and P. Masiero, “Frameworks orientados a aspectos”, in
Proc. SBES 2005, 2005, pp. 200–216.
[124] V. Camargo et al., “Um estudo comparativo do tempo de composic ¸˜ aoo
de um framework orientado a aspectos de persistencia e de um
framework orientado a objetos de persistencia”, in SBES 2006, pp.
193–208.
[125] V. Camargo and P. Masiero, “A pattern to design crosscutting frame-
works”, in ACM SAC 2008, 2008, pp. 759–764.
[126] S. Hanenberg and S. Schmidmeir, “Aspectj idioms for aspect-oriented
software construction”, in EuroPLoP 2003, 2003.
[127] J. U. Junior et al., “An overview and an empirical evaluation of uml-aof:
A uml profile for aspect-oriented frameworks”, in ACM SAC 2010, pp.
1–6.
[128] S. F. Pacios et al., “Guidelines for using aspects to evolve product
lines”, in WASP 2006, 2006, pp. 111–120.
[129] R. Braga et al., “Aiple-is: An approach to develop product lines for
information systems using aspects”, in SBCARS 2007, pp. 17–30.
[130] C. Pereira et al., “Captor-AO: An application generator supported by
aspect-oriented programming”, in SBCARS 2008 Tools, pp. 1–8.
[131] R. Braga et al., “Using aspect-oriented programming to promote reuse
across domains in software product lines”, in LA-WASP’10, pp. 1-6.
[132] A. Sztajnberg et al., “Towards integrating meta-level programming and
configuration programming”, in SBES 1999, 1999, pp. 309–323.
[133] U. Kulesza, “T´ ecnicas de orientac ¸˜ ao a objetos para o projeto de
sistemas adapt´ aveis”, Master’s thesis, USP-IME, 2000.
[134] S. Soares et al., “Implementing Distribution and Persistence Aspects
with AspectJ”, in OOPSLA 2002, pp. 174–190.
[135] AOSD-BR-Community, “Production of the aosd-br community”,
http://bit.ly/AOSD-BR_Production.
[136] K. Farias, A. Garcia, and J. Whittle, “Assessing the impact of aspects
on model composition effort”, in AOSD 2010, pp. 73–84.
Redwood City, CA, USA: Addison