Research Areas and Projects
(
Português)
We are defining an implementation method that separates data management, distribution, and concurrency control concerns using Aspect-Oriented Programming. We are also working on patterns, guidelines and techniques for applying Aspect-Oriented Programming for providing adaptability for existent and novel systems. Refactorings for AspectJ are also being considered here. We are
also concerned to design experimental studies in order to evaluate the defined methods, tecniques, and approaches.
We are investigating how to model variability in a product-line architecture using Aspect-Oriented Programming techniques. The model addresses both functional and non-functional requirements and complies with quality standards. In particular, our approach aims at providing a method to instantiate a particular product in the line with AOP techniques. Tool support will also be provided to automate the process.
We are currently developing JaTS, a Java transformation system
that supports user-defined program transformations. In this way,
the user can define new refactorings and code generation templates
using a declarative language for specifying the new transformations.
An extension of JaTS for AspectJ is also being developed.
Alloy is a declarative object-oriented modeling language similar to UML, yet simpler and clearer. It is based on first-order logic and relational theory, and amenable for fully automatic analysis. Our goals are defining and proving transformation laws for Alloy models, applying to widely-adopted model transformations as used in Refactorings and MDA (Model-Driven Architecture). In addition, we are investigating the mapping of these model transformations to Java program transformations, assuring the adequate correspondence between abstract models and code.
As part of the
COOP
project, we are also defining algebraic laws for a Java-like language
and formally deriving refactorings from those laws.
In association with Motorola Brazil, we are investigating how to estimate the effort needed to execute and automate tests for cell phone using historical data, statistical models and simulation methods. We are also investigating how to estimate the capability of current teams for doing these test activities.
In addition, we are investigating historical data in order to find relationships of software metrics (complexity, test coverage, etc.) and defect information (defect density, escaped defect, defect distribution, etc.). We intend to create models to optimize test efforts and minimize the estimated defect density.
--
LeopoldoTeixeira - 29 Apr 2008
--
PauloBorba - 10 Apr 2007
--
EduardoAranha - 08 Aug 2005
--
SergioSoares - 28 Jul 2005