Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Alessandro Garcia is active.

Publication


Featured researches published by Alessandro Garcia.


international conference on software engineering | 2008

Evolving software product lines with aspects: an empirical study on design stability

Eduardo Figueiredo; Nélio Cacho; Cláudio Sant'Anna; Mario Monteiro; Uirá Kulesza; Alessandro Garcia; Sérgio Soares; Fabiano Cutigi Ferrari; Safoora Shakil Khan; Fernando Castor Filho; Francisco Dantas

Software product lines (SPLs) enable modular, large-scale reuse through a software architecture addressing multiple core and varying features. To reap the benefits of SPLs, their designs need to be stable. Design stability encompasses the sustenance of the product lines modularity properties in the presence of changes to both the core and varying features. It is usually assumed that aspect-oriented programming promotes better modularity and changeability of product lines than conventional variability mechanisms, such as conditional compilation. However, there is no empirical evidence on its efficacy to prolong design stability of SPLs through realistic development scenarios. This paper reports a quantitative study that evolves two SPLs to assess various design stability facets of their aspect-oriented implementations. Our investigation focused upon a multi-perspective analysis of the evolving product lines in terms of modularity, change propagation, and feature dependency. We have identified a number of scenarios which positively or negatively affect the architecture stability of aspectual SPLs.


aspect-oriented software development | 2005

Modularizing design patterns with aspects: a quantitative study

Alessandro Garcia; Cláudio Sant'Anna; Eduardo Figueiredo; Uirá Kulesza; Carlos José Pereira de Lucena; Arndt von Staa

Design patterns offer flexible solutions to common problems in software development. Recent studies have shown that several design patterns involve crosscutting concerns. Unfortunately, object-oriented (OO) abstractions are often not able to modularize those crosscutting concerns, which in turn decrease the system reusability and maintainability. Hence, it is important verifying whether aspect-oriented approaches support improved modularization of crosscutting concerns relative to design patterns. Ideally, quantitative studies should be performed to compare OO and aspect-oriented implementations of classical patterns with respect to important software engineering attributes, such as coupling and cohesion. This paper presents a quantitative study that compares aspect-based and OO solutions for the 23 Gang-of-Four patterns. We have used stringent software engineering attributes as the assessment criteria. We have found that most aspect-oriented solutions improve separation of pattern-related concerns, although only 4 aspect-oriented implementations have exhibited significant reuse.


european conference on object oriented programming | 2007

On the impact of aspectual decompositions on design stability: an empirical study

Phil Greenwood; Thiago Tonelli Bartolomei; Eduardo Figueiredo; Marcos Dósea; Alessandro Garcia; Nélio Cacho; Cláudio Sant'Anna; Sérgio Soares; Paulo Borba; Uirá Kulesza; Awais Rashid

Although one of the main promises of aspect-oriented (AO) programming techniques is to promote better software changeability than objectoriented (OO) techniques, there is no empirical evidence on their efficacy to prolong design stability in realistic development scenarios. For instance, no investigation has been performed on the effectiveness of AO decompositions to sustain overall system modularity and minimize manifestation of ripple-effects in the presence of heterogeneous changes. This paper reports a quantitative case study that evolves a real-life application to assess various facets of design stability of OO and AO implementations. Our evaluation focused upon a number of system changes that are typically performed during software maintenance tasks. They ranged from successive re-factorings to more broadly-scoped software increments relative to both crosscutting and non-crosscutting concerns. The study included an analysis of the application in terms of modularity, change propagation, concern interaction, identification of ripple-effects and adherence to well-known design principles.


foundations of software engineering | 2006

Exceptions and aspects: the devil is in the details

Fernando Castor Filho; Nélio Cacho; Eduardo Figueiredo; Raquel Maranhão; Alessandro Garcia; Cecília M. F. Rubira

It is usually assumed that the implementation of exception handling can be better modularized by the use of aspect-oriented programming (AOP). However, the trade-offs involved in using AOP with this goal are not well-understood. This paper presents an in-depth study of the adequacy of the AspectJ language for modularizing exception handling code. The study consisted in refactoring existing applications so that the code responsible for implementing heterogeneous error handling strategies was moved to separate aspects. We have performed quantitative assessments of four systems - three object-oriented and one aspect-oriented - based on four quality attributes, namely separation of concerns, coupling, cohesion, and conciseness. Our investigation also included a multi-perspective analysis of the refactored systems, including (i) the reusability of the aspectized error handling code, (ii) the beneficial and harmful aspectization scenarios, and (iii) the scalability of AOP to aspectize exception handling in the presence of other crosscutting concerns.


international conference on software maintenance | 2006

Quantifying the Effects of Aspect-Oriented Programming: A Maintenance Study

Uirá Kulesza; Cláudio Sant'Anna; Alessandro Garcia; Roberta Coelho; Arndt von Staa; Carlos José Pereira de Lucena

One of the main promises of aspect-oriented programming (AOP) is to promote improved modularization of crosscutting concerns, thereby enhancing the software stability in the presence of changes. This paper presents a quantitative study that assesses the positive and negative effects of AOP on typical maintenance activities of a Web information system. The study consists of a systematic comparison between the object-oriented and the aspect-oriented versions of the same application in order to assess to what extent each solution provides maintainable software decompositions. Our analysis was driven by fundamental modularity attributes, such as coupling, cohesion, conciseness, and separation of concerns. We have found that the aspect-oriented design has exhibited superior stability and reusability through the changes, as it has resulted in fewer lines of code, improved separation of concerns, weaker coupling, and lower intra-component complexity


aspect-oriented software development | 2006

Composing design patterns: a scalability study of aspect-oriented programming

Nélio Cacho; Cláudio Sant'Anna; Eduardo Figueiredo; Alessandro Garcia; Thaís Vasconcelos Batista; Carlos José Pereira de Lucena

Pattern composition has been shown as a challenge to applying design patterns in real software systems. One of the main problems is that multiple design patterns in a system are not limited to affect only the application concerns. They also crosscut each other in multiple heterogeneous ways so that their separation and composition are far from being trivial. In this context, it is of paramount importance to systematically verify whether aspect-oriented programming (AOP) supports improved composability of design patterns. This paper presents a systematic investigation on how AOP scales up to deal with modularization of pattern-specific concerns in the presence of pattern interactions. We have made both qualitative and quantitative assessments of 62 pairwise compositions taken from 3 medium-sized systems implemented in Java and AspectJ programming languages. Our analysis has also included the evaluation of compositions involving more than two patterns. The assessment was based on four fundamental software attributes, namely separation of concerns, coupling, cohesion, and conciseness.


Archive | 2003

Software Engineering for Large-Scale Multi-Agent Systems

Alessandro Garcia; Carlos José Pereira de Lucena; Franco Zambonelli; Andrea Omicini; Jaelson Castro

A circular tank having a generally flat bottom with a sediment well positioned at one side thereof. Feces and other sediment are brought into the well by inducing a circular movement to the water within the tank to move the sediment around the tank and into the well. The tank preferably includes a standpipe arrangement within the well which continually removes the sediment from the well. The tank is preferably situated with the bottom sloping toward the sediment well. In large tanks, jets of water are positioned adjacent the bottom to jet the sediment up the slope of the tank where the circulation of the water then moves the sediment downwardly to the sediment well. Charged air bubbles are used to produce a froath of the dissolved protein surrounding the standpipe so that waste water also removes the protein. The tank is preferably made out of fiberglass so that it has very smooth internal surfaces which do not retain the sediment. The tank is inexpensively constructed using a fiberglass coated plywood bottom that is supported on a polygonal frame located centrally of the tank with the sediment well positioned between the frame and the sidewall of the tank. Outriggers from the frame extend under the sidewalls of the tank on opposite sides of the sediment well so that the sidewalls are utilized to carry verticle load and decrease the stresses in the bottom of the tank.


european conference on software architecture | 2006

On the modular representation of architectural aspects

Alessandro Garcia; Christina Chavez; Thaís Vasconcelos Batista; Cláudio Sant'Anna; Uirá Kulesza; Awais Rashid; Carlos José Pereira de Lucena

An architectural aspect is a concern that cuts across architecture modularity units and cannot be effectively modularized using the given abstractions of conventional Architecture Description Languages (ADLs). Dealing with crosscutting concerns is not a trivial task since they affect each other and the base architectural decomposition in multiple heterogeneous ways. The lack of ADL support for modularly representing such aspectual heterogeneous influences leads to a number of architectural breakdowns, such as increased maintenance overhead, reduced reuse capability, and architectural erosion over the lifetime of a system. On the other hand, software architects should not be burdened with a plethora of new ADL abstractions directly derived from aspect-oriented implementation techniques. However, most aspect-oriented ADLs rely on a heavyweight approach that mirrors programming languages concepts at the architectural level. In addition, they do not naturally support heterogeneous architectural aspects and proper resolution of aspect interactions. This paper presents AspectualACME, a simple and seamless extension of the ACME ADL to support the modular representation of architectural aspects and their multiple composition forms. AspectualACME promotes a natural blending of aspects and architectural abstractions by employing a special kind of architectural connector, called Aspectual Connector, to encapsulate aspect-component connection details. We have evaluated the applicability and scalability of the AspectualACME features in the context of three case studies from different application domains.


International Workshop on Software Engineering for Large-Scale Multi-agent Systems | 2003

Separation of Concerns in Multi-agent Systems: An Empirical Study

Alessandro Garcia; Cláudio Sant’Anna; Christina Chavez; Viviane Torres da Silva; Carlos José Pereira de Lucena; Arndt von Staa

With multi-agent systems (MASs) growing in size and complexity, the separation of their concerns throughout the different development phases is crucial to MAS engineers. Separation of concerns is a well-known principle in software engineering to achieve improved reusability and maintainability of complex software. Hence it is necessary to investigate systematically whether ions from object-oriented (OO) software engineering are able to isolate explicitly MAS concerns. This paper presents an empirical study that evaluates the degree to which abstractions associated with two OO techniques enable modularization of MAS concerns. The selected techniques involve basic OO ions, such as classes and objects, and more sophisticated ones, namely design patterns and aspects. The gathered results shown that the use of aspects allowed the construction of a MAS with a significant improvement in the modularization of different concerns. Also, the use of aspects resulted in: (i) fewer lines of code, (ii) fewer design and implementation components, and (iii) lower coupling between the components. However, the aspect-oriented approach produced lower cohesion in the MAS components. Finally, an important finding of this empirical study is that aspects supported a better alignment with higher-level abstractions from agent-oriented design models.


conference on software maintenance and reengineering | 2008

On the Maintainability of Aspect-Oriented Software: A Concern-Oriented Measurement Framework

Eduardo Figueiredo; Cláudio Sant'Anna; Alessandro Garcia; Thiago Tonelli Bartolomei; Walter Cazzola; Alessandro Marchetto

Aspect-oriented design needs to be systematically assessed with respect to modularity flaws caused by the realization of driving system concerns, such as tangling, scattering, and excessive concern dependencies. As a result, innovative concern metrics have been defined to support quantitative analyses of concerns properties. However, the vast majority of these measures have not yet being theoretically validated and managed to get accepted in the academic or industrial settings. The core reason for this problem is the fact that they have not been built by using a clearly-defined terminology and criteria. This paper defines a concern-oriented framework that supports the instantiation and comparison of concern measures. The framework subsumes the definition of a core terminology and criteria in order to lay down a rigorous process to foster the definition of meaningful and well-founded concern measures. In order to evaluate the framework generality, we demonstrate the framework instantiation and extension to a number of concern measures suites previously used in empirical studies of aspect-oriented software maintenance.

Collaboration


Dive into the Alessandro Garcia's collaboration.

Top Co-Authors

Avatar

Carlos José Pereira de Lucena

Pontifical Catholic University of Rio de Janeiro

View shared research outputs
Top Co-Authors

Avatar

Uirá Kulesza

Federal University of Rio Grande do Norte

View shared research outputs
Top Co-Authors

Avatar

Eduardo Figueiredo

Universidade Federal de Minas Gerais

View shared research outputs
Top Co-Authors

Avatar

Cláudio Sant'Anna

Federal University of Bahia

View shared research outputs
Top Co-Authors

Avatar

Christina Chavez

Federal University of Bahia

View shared research outputs
Top Co-Authors

Avatar

Thaís Vasconcelos Batista

Federal University of Rio Grande do Norte

View shared research outputs
Top Co-Authors

Avatar

Arndt von Staa

Pontifical Catholic University of Rio de Janeiro

View shared research outputs
Top Co-Authors

Avatar

Nélio Cacho

Federal University of Rio Grande do Norte

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Francisco Dantas

Pontifical Catholic University of Rio de Janeiro

View shared research outputs
Researchain Logo
Decentralizing Knowledge