Research Areas and Projects

Aspect-Oriented Programming, Separation of Concerns, Refactoring

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.

(Sérgio, Ayla, Leonardo, Paulo vão definir o texto que vem aqui...)

Neste projeto analisamos a viabilidade de usar AspectJ, uma extensão de Java com recursos de programação orientada a aspectos, para implementar de forma modular e progressiva requisitos não funcionais essenciais tanto para aplicações coroporativas quanto para aplicações móveis de celulares e PDAs. Os requisitos sendo considerados são os seguintes: distribuição, concorrência, persistência, e adaptabilidade. Espera-se que os frameworks, padrões de projeto, processos e ferramentas resultantes deste projeto contribuam para aumentar a produtividade do desenvolvimento destes tipo de aplicações, preservando níveis de qualidade adequados para o mercado.

    • Pim persistence, concurrency, distribution
    • Pim adaptability
    • Refactorings for AspectJ

Aspect-Oriented Programming and Software Product Lines

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.

Refactoring and Generative Programming

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. (Alexandra, Ives, Madson, Sérgio, Leonardo, Paulo vão definir o texto que vem aqui...)

Neste projeto estamos desenvolvendo JaTS, um sistema de transformação para Java, que permite a definição de novas transformações usando uma linguagem simples e declarativa. Com esta linguagem, pode-se definir novos refactorings e padrões para geração de código baseada em informações fornecidas pelo usuário. Por automatizar várias tarefas repetitivas e facilitar o uso de padrões de projeto em um sistema, o JaTS contribui para aumentar tanto a produtividade do desenvolvimento quanto a qualidade do sistema.

Refactoring and Formal Methods

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.

Testing, XP, and Generative Programming

(Eduardo, Paulo vão definir o texto que vem aqui...)

-- TWikiGuest - 09 May 2003

Topic attachments
I Attachment Action Size Date Who Comment
PDFpdf alloy_book.pdf manage 256.3 K 2003-06-09 - 22:36 TiagoMassoni Alloy Book
Edit | Attach | Print version | History: r44 | r15 < r14 < r13 < r12 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r13 - 2003-06-09 - TiagoMassoni
 
This site is powered by the TWiki collaboration platformCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback

mersin escort bayan adana escort bayan izmit escort ankara escort bursa escort