Aspect-Oriented Programming, Separation of Concerns, Refactoring
Description
We are defining an implementation method that separates data management, distribution, and concurrency control concerns using Aspect-Oriented Programming. In particular, we are using AspectJ to implement those concerns to a system implemented in Java. The method should help to achieve better software with higher productivity levels. We are also investigating how the implementation method definition affects analysis, design, and tests activities. Experiments are being performed to analyze the benefits and liabilities of AspectJ, the the implementation method, and some approaches to apply the method. For instance, we can use a progressive approach, where persistence, distribution, and concurrency control are not initially considered in the implementation activities, but are gradually introduced, preserving the system's functional requirements. This progressive approach helps to decrease the impact caused by requirements changes during development and also allows gradual test of the concerns.
We are also working on patterns, guidelines and techniques for applying Aspect-Oriented Programming for providing adaptability for existent and novel systems. In this area we are developing experiments to compare pure object-oriented solutions to AspectJ solutions in relation to adaptability capacity, code and bytecode size, number of classes, modularity, etc.
Refactorings for AspectJ are also being considered here. Our approach uses basic behaviour preserving transformations from Java to AspectJ. From this basic transformations we can derive more complex refactorings. The basic transformations has pre-conditions to intuitivelly ensure the behaviour preserving property. We already proved some refactorings found in the literature. Also, we were able to refactor two applications, modularizing some of their crosscutting concerns. We are still working to provide some formalism as the basis for a soundness discution.
Members
CIn-UFPE
DSC-UPE
Former members
Sponsors
Related papers
Related Events
In addition to the
major events related to the group, we consider also the following events which are more closely related to this project:
Related Links
Publications
2010
-
[dAmorimBorba10]
-
Fernanda d'Amorim and Paulo Borba.
Modularity analysis of use case implementations.
In IV Brazilian Symposium on Software Components, Architectures,
and Reuse (SBCAR'S 2010), Salvador-BA, Brasil, September 2010.
[ .pdf ]
2009
-
[PontualEtal09]
-
Carlos Eduardo Pontual, Rodrigo Bonifácio, Henrique Rebelo, Márcio
Ribeiro, and Paulo Borba.
Modularizing variabilities with caesarj collaboration interfaces.
In 3rd Workshop on Assessment of Contemporary Modularization
Techniques (ACoM'09) at ACM SIGPLAN International Conference on
Object-Oriented Programming (OOPSLA'09), Orlando, USA, October 2009.
[ .pdf ]
-
[dAmorimBorba09]
-
Fernanda d'Amorim and Paulo Borba.
Modularity analysis of use case implementations.
In 3rd Workshop on Assessment of Contemporary Modularization
Techniques (ACoM'09) at ACM SIGPLAN International Conference on
Object-Oriented Programming (OOPSLA'09), Orlando, USA, October 2009.
[ .pdf ]
-
[CachoEtal09]
-
Nelio Cacho, Francisco Danta, Alessandro Garcia, and Fernando Castor.
Exception flows made explicit: An exploratory study.
In XXIII Brazilian Symposium on Software Engineering - SBES'09,
Fortaleza-CE, Brazil, October 2009.
To appear.
[ .pdf ]
-
[TaveiraEtal09]
-
Julio Cesar Taveira, Cristiane Queiroz, Romulo Lima, Juliana Saraiva, Sergio
Soares, Hitalo Oliveira, Nathalia Temudo, Amanda Araujo, Jefferson Amorim,
Fernando Castor, and Emanoel Barreiros.
Assessing intra-application exception handling reuse with aspects.
In XXIII Brazilian Symposium on Software Engineering - SBES'09,
Fortaleza-CE, Brazil, October 2009.
To appear.
[ .pdf ]
-
[NetoEtal09]
-
Alberto Costa Neto, Arthur Marques, Rohit Gheyi, Paulo Borba, and
Fernando Castor Filho.
A design rule language for aspect-oriented programming.
In XIII Brazilian Symposium on Programming Languages - SBLP'09,
Gramado-RS, Brazil, August 2009.
To appear.
[ .pdf ]
2008
-
[RebeloEtal08]
-
Henrique Rebelo, Sergio Soares, Ricardo Lima, Paulo Borba, and Marcio Cornelio.
Jml and aspects: The benefits of instrumenting jml features with
aspectj.
In SAVCBS'08, pages 11-18, Atlanta, USA, November 2008.
[ .pdf ]
-
[MouraEtal08]
-
Marcelo Moura, Sergio Soares, Fernando Castor Filho, Mario Monteiro,
Alessandro Garcia, Phil Greenwood, Elliackin Figueiredo, and Diego Araujo.
Towards a framework for guiding aspect-oriented software maintenance
emirical studies.
In OOPSLA'2008 Workshop on Assessment of Contemporary
Modularization Techniques - ACoM'2008, Nashville, US, October 2008.
[ .pdf ]
-
[MonteiroEtal08]
-
Mario Monteiro, Marcelo Moura, Sergio Soares, and Fernando Castor Filho.
Towards an analysis of layering violations in aspect-oriented
software architectures.
In 3rd ECOOP Workshop on Aspects, Dependences, and Interactions
- ADI'2008, Paphos, Cyprus, July 2008.
[ .pdf ]
-
[FigueiredoEtal08]
-
Eduardo Figueiredo, Nelio Cacho, Claudio Sant'Anna, Mario Monteiro, Uira
Kulesza, Alessandro Garcia, Sergio Soares, Fabiano Ferrari, Safoora Khan,
Fernando Filho, and Francisco Dantas.
Evolving software product lines with aspects: An empirical study on
design stability.
In 30th International Conference on Software Engineering
ICSE'08, Leipzig, Germany, May 2008.
[ .pdf ]
-
[CachoEtal08]
-
Nelio Cacho, Fernando Castor Filho, Alessandro Garcia, and Eduardo
Figueiredo.
Ejflow: taming exceptional control flows in aspect-oriented
programming.
In 7th ACM Conference on Aspect-Oriented Software Development -
AOSD'08, pages 72-83, Brussels, Belgium, March 2008.
[ .pdf ]
2007
-
[RibeiroEtal07]
-
Márcio Ribeiro, Pedro Matos Jr., Paulo Borba, and Ivan Cardim.
On the modularity of aspect-oriented and other techniques for
implementing product lines variabilities.
In I Latin American Workshop on Aspect-Oriented Software
Development - LA-WASP'2007, affiliated with SBES'07, pages 119-130, October
2007.
[ .pdf ]
-
[SpecifyingDesignRulesinAspect-OrientedSystems07]
-
Specifying design rules in aspect-oriented systems.
In I Latin American Workshop on Aspect-Oriented Software
Development - LA-WASP'2007, affiliated with SBES'07, pages 67-78, October
2007.
[ .pdf ]
-
[RibeiroEtal07b]
-
Márcio Ribeiro, Marcos Dósea, Rodrigo Bonifácio, Alberto Costa
Neto, Paulo Borba, and Sérgio Soares.
Analyzing class and crosscutting modularity with design structure
matrixes.
In XXI Brazilian Symposium on Software Engineering - SBES'07,
pages 167-181, October 2007.
[ .pdf ]
-
[AJaTS-nopAspectJTransformationSystemToolSupportAspect-OrientedDevelopmentandRefactoring07]
-
AJaTS - <nop>AspectJ Transformation System: Tool Support for
Aspect-Oriented Development and Refactoring.
In Tools Session of the XXI Brazilian Symposium on Software
Engineering (SBES'07), October 2007.
To appear.
[ .pdf ]
-
[SoaresEtal07]
-
Sergio Soares, Paulo Borba, and Ricardo Lima.
Concurrency control modularization with aspect-oriented programming.
In 31st Annual International Computer Software and Applications
Conference COMPSAC'07, Beijin, China, July 2007. IEEE.
[ .pdf ]
-
[AJaTSnopAspectJTransformationSystem07]
-
AJaTS: <nop>AspectJ Transformation System.
In 1st Workshop on Refactoring Tools (WRT'07), in conjunction
with the 21st European Conference on Object-Oriented Programming (ECOOP'07),
ISSN 1436-9915, pages 35-36, Berlin, July 2007. Danny Dig, Michael Cebulla
(Eds.).
[ .pdf ]
-
[GreenwoodEtal07]
-
Philip Greenwood, Thiago Bartolomei, Eduardo Figueiredo, Marcos Dosea,
Alessandro Garcia, Nelio Cacho, Claudio Sant'Anna, Sergio Soares, Paulo
Borba, Uira Kulesza, and Awais Rashid.
On the impact of aspectual decompositions on design stability: An
empirical study.
In 21st European Conference on Object-Oriented Programming -
ECOOP'07, volume Lecture Notes in Computer Science 4609, pages 176-200,
Berlin, Germany, July 2007. Springer-Verlag.
[ .pdf ]
-
[OnContributionsEnd-to-EndAOSDTestbed07]
-
On the contributions of an end-to-end aosd testbed.
In Early Aspects: Workshop in Aspect-Oriented Requirements
Engineering and Architecture Design, affiliated with ICSE 2007, Minneapolis,
USA, May 2007.
[ .pdf ]
-
[NetoEtal07]
-
Alberto Costa Neto, Márcio Ribeiro, Marcos Dósea, Rodrigo
Bonifácio, and Paulo Borba.
Semantic dependencies and modularity of aspect-oriented software.
In ICSE Workshop on Assessment of Contemporary Modularization
Techniques (ACoM.07), affiliated with ICSE 2007, Minneapolis, USA, May 2007.
[ .pdf ]
-
[OnDesignEnd-to-EndAOSDTestbedSoftwareStability07]
-
On the design of an end-to-end aosd testbed for software stability.
In Workshop on Assessement of Aspect-Oriented Technologies
(ASAT.07), affiliated with AOSD 2007, Vancouver, Canada, March 2007.
[ .pdf ]
-
[SoaresBorba07]
-
Sergio Soares and Paulo Borba.
Towards reusable and modular aspect-oriented concurrency control.
In 22nd Annual ACM Symposium on Applied Computing, Seoul,
Korea, March 2007. ACM press.
[ .pdf ]
2006
-
[SoaresEtal06]
-
Sérgio Soares, Paulo Borba, and Eduardo Laureano.
Distribution and Persistence as Aspects.
Software: Practice & Experience, 36(7):711-759, 2006.
John Wiley & Sons.
[ .pdf ]
2005
-
[SoaresBorba05]
-
Sergio Soares and Paulo Borba.
Implementing modular and reusable aspect-oriented concurrency control
with aspectj.
In 2nd Brazilian Workshop on Aspect-Oriented Software Develpment
- WASP'05 - SBES'05, October 2005.
[ .pdf ]
-
[ColeBorba05]
-
Leonardo Cole and Paulo Borba.
Deriving refactorings for aspectJ.
In 4th International Conference on Aspect-Oriented Software
Development - AOSD'05, Chicago, USA, March 2005.
[ .pdf ]
-
[ColeEtal05]
-
Leonardo Cole, Paulo Borba, and Alexandre Mota.
Proving aspect-oriented programming laws.
In FOAL 2005 Proceedings: Foundations of Aspect-Oriented
Langauges Workshop at AOSD 2005, Technical Report, pages 1-10. Department
of Computer Science, Iowa State University, March 2005.
[ .pdf ]
2004
-
[ColeEtal04]
-
Leonardo Cole, Eduardo Piveta, and Autusto Sampaio.
Rup based analysis and design with aspects.
In XVIII Brazilian Symposium on Software Engineering - SBES'04,
pages 210-224, October 2004.
[ .pdf ]
-
[TowardsProgressiveandNon-progressiveImplementationApproachesEvaluation04]
-
Towards progressive and non-progressive implementation approaches evaluation.
In 1st Experimental Software Engineering Latin American Workshop
- ESELAW'04 - SBES'04, October 2004.
[ .pdf ]
-
[ColeBorba04b]
-
Leonardo Cole and Paulo Borba.
Using programming laws to modularize concurrency in a replicated
database application.
In 1st Brazilian Workshop on Aspect-Oriented Software Develpment
- WASP'04 - SBES'04, October 2004.
[ .pdf ]
-
[SoaresBorba04]
-
Sérgio Soares and Paulo Borba.
Aspect-oriented software development with <nop>rup and <nop>aspectj
(in portuguese).
In Tutorial at XVIII Brazilian Symposium on Software Engineering
- SBES'04, Brasília-DF, Brazil, October 2004.
[ .pdf ]
-
[DantasEtal04]
-
Ayla Dantas, Joseph Yoder, Paulo Borba, and Ralph Johnson.
Using aspects to make adaptive object-models adaptable.
In RAM-SE'04. ECOOP'04 Workshop on Reflection, AOP and Meta-Data
for Software Evolution, Oslo, Norway, June 2004.
[ .pdf ]
-
[SousaEtal04]
-
Geórgia Sousa, Sérgio Soares, Paulo Borba, and Jaelson Castro.
Separation of Crosscutting Concerns from Requirements to
Design: Adapting the Use Case Driven Approach.
In Early Aspects'04: Aspect-Oriented Requirements Engineering
and Architecture Design. Workshop at International Conference on
Aspect-Oriented Software Development, AOSD 2004, Workshop Report., pages
93-102 (97-106), Lancaster, UK, March 2004.
[ .pdf ]
-
[ColeBorba04]
-
Leonardo Cole and Paulo Borba.
Deriving refactorings for aspectj.
In OOPSLA '04: Companion to the 19th annual ACM SIGPLAN
conference on Object-oriented programming systems, languages, and
applications, pages 202-203, New York, NY, USA, 2004. ACM Press.
[ DOI |
.pdf ]
2003
-
[Aspect-OrientedImplementationMethodProgressiveorNon-progressiveApproach03]
-
Aspect-oriented implementation method: Progressive or non-progressive approach?
In OOPSLA'03 Companion, Doctoral Symposium of the 18th Annual
ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages,
and Applications, OOPSLA'03, pages 128-129, Anaheim, CA, USA, October 2003.
ACM Press.
[ .pdf ]
-
[DantasEtal03]
-
Ayla Dantas, Paulo Borba, and Vander Alves.
Using aspects to structure small devices applications.
In First Workshop on Reuse in Constrained Environments at the
18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems,
Languages, and Applications, OOPSLA'03, Anaheim, CA, USA, October 2003.
[ .pdf ]
-
[DantasBorba03]
-
Ayla Dantas and Paulo Borba.
Adaptability aspects: An architectural pattern for structuring
adaptive applications with aspects.
In Third Latin American Conference on Pattern Languages of
Programming, SugarLoafPLoP'03, pages 12-15, Porto de Galinhas, PE, Brazil,
August 2003.
[ .pdf ]
-
[DantasBorba03b]
-
Ayla Dantas and Paulo Borba.
Developing adaptive j2me applications using aspectj.
In VII Brazilian Symposium on Programming Languages, SBLP'03,
pages 226-242, Ouro Preto, MG, Brazil, May 2003.
[ .pdf ]
2002
-
[SoaresBorba02]
-
Sérgio Soares and Paulo Borba.
PIP: Progressive Implementation Pattern.
In 1st Workshop on Software Development Patterns (SDPP'02),
OOPSLA'02, Seattle, WA, USA, November 2002.
[ .pdf ]
-
[SoaresEtal02]
-
Sérgio Soares, Eduardo Laureano, and Paulo Borba.
Implementing Distribution and Persistence Aspects with
AspectJ.
In Proceedings of the 17th ACM conference on Object-oriented
programming, systems, languages, and applications, OOPSLA'02, pages
174-190, Seattle, WA, USA, November 2002. ACM Press.
Also appeared in ACM SIGPLAN Notices 37(11).
[ .pdf ]
-
[SoaresBorba02b]
-
Sérgio Soares and Paulo Borba.
PaDA: A Pattern for Distribution Aspects.
In Second Latin American Conference on Pattern Languages of
Programming - SugarLoafPLoP'02, pages 87-99, Itaipava, RJ, Brazil, August
2002.
Published in University of São Paulo Magazine - ICMC.
[ .pdf ]
-
[DiasBorba02]
-
Klissiomara Dias and Paulo Borba.
In Second Latin American Conference on Pattern Languages of
Programming - SugarLoafPLoP'02, pages 55-86, Itaipava, RJ, Brazil, August
2002.
Published in University of São Paulo Magazine - ICMC.
[ .pdf ]
-
[SoaresBorba02c]
-
Sérgio Soares and Paulo Borba.
Aspectj - aspect-oriented programming in java. (in portuguese).
In Tutorial in Proceedins of VI Brazilian Symposium on
Programming Languages, SBLP'02, pages 39-55, Rio de Janeiro, RJ, Brazil,
June 2002.
[ .pdf ]
2001
-
[MassoniEtal01]
-
Tiago Massoni, Augusto Sampaio, and Paulo Borba.
Progressive implementation of aspects.
In Workshop on Advanced Separation of Concerns in
Object-Oriented Systems, OOPSLA'01, Tampa Bay, FL, USA, October 2001.
[ .pdf ]
-
[AlvesBorba01]
-
Vander Alves and Paulo Borba.
An implementation method for distributed object-oriented
applications.
In XV Brazilian Symposium on Software Engineering, SBES'01,
pages 161-176, Rio de Janeiro, RJ, Brazil, October 2001.
[ .pdf ]
-
[SoaresBorba01]
-
Sérgio Soares and Paulo Borba.
Concurrency Manager.
In First Latin American Conference on Pattern Languages of
Programming - SugarLoafPLoP'01, pages 221-231, Rio de Janeiro, Brazil,
October 2001.
Published in UERJ Magazine: Special Issue on Software Patterns.
[ .pdf ]
-
[MassoniEtal01b]
-
Tiago Massoni, Vander Alves, Sérgio Soares, and Paulo Borba.
PDC: Persistent Data Collections pattern.
In First Latin American Conference on Pattern Languages of
Programming - SugarLoafPLoP'01., pages 311-326, Rio de Janeiro, Brazil,
October 2001.
Published in University of São Paulo Magazine - ICMC, 2002.
[ .pdf ]
-
[AlvesBorba01b]
-
Vander Alves and Paulo Borba.
Distributed adapters pattern: A design pattern for object-oriented
distributed applications.
In First Latin American Conference on Pattern Languages of
Programming - SugarLoafPLoP'01., pages 132-142, Rio de Janeiro, Brazil,
October 2001.
Published in University of São Paulo Magazine - ICMC, 2002.
[ .pdf ]
2000
-
[AlvesBorba00]
-
Vander Alves and Paulo Borba.
A design pattern for distributed applications.
In XIV Brazilian Symposium on Software Engineering, SBES'00 -
Minicourses and Tutorials, pages 191-219, October 2000.
[ .pdf ]
--
AlbertoNeto - 30 Jun 2009 --
SergioSoares - 12 Dec 2007 --
AlbertoNeto - 27 Apr 2007 --
VanderAlves - 24 Nov 2005 --
SergioSoares - 28 Jul 2005