Software and Processes

1. JaTS - Java Transformation System

        Object-oriented analysis and design methods are used more and more in practice. On the other hand, object-oriented implementation (or codification) methods receive much less attention. In spite of this, dealing with complex object oriented applications, we see the ever-growing need for a correct implementation method, in order to avoid compromising all investment done in project analysis and to have not only a productivity increase, but also right confidence levels, extensibility and reusability adequate for the market needs.
        This research project intends to define and validate a method for the implementations of complex object-oriented applications, so that these applications can be quickly implemented, tested and adapted. This work consists of the specification of this tool's transformation language, as well as the implementation of a prototype system capable of applying tranformations written in this language to programs written in a subset of the Java language.
        Presently, the project is divided into two teams working concurrently. One part consists of static analysis development, whose goal is to provide an infra-structure to the development of refactorings, witch are implemented by means of JaTS transformations. These static analysis are used during pre-conditions definition for refactorings effectuation. The other part of our work consists of expanding the JaTS system to perform transformations in aspect oriented programs implemented in AspectJ, extension of Java language currently maintained by Eclipse project (


Related Events

  • Paste 2004 : ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering

  • ISSTA 2004 : International Symposium on Software Testing and Analysis

  • SCAM 2005 : Fifth IEEE International Workshop on Source Code Analysis and Manipulation

Related Links

2. Health Watcher

        The Health Watcher (HW) is a real web-based information system originally implemented in Java and restructured to use AspectJ, a general purpose AO extension to Java. The system was developed to improve the quality of the services provided by health care institutions, allowing citizens to register complaints regarding health issues, and heath care institutions to investigate and take the required actions.

         The HW design has a significant number of non-crosscutting and crosscutting concerns. Furthermore, it requires a number of common day-to-day design decisions related to GUI, persistence, and concurrency. Due to theses reasons, the system was the first to integrate the TAO project. The overall aim of this project is to develop a testbed for Aspect Oriented Software Development. All HW versions in Java, AspectJ, and CaesarJ created for this project are available in the link.


Related Links

3. Variability Management Models

Variability management is one common challenge for software product line (SPL) adoption. Specifically, the community needs for suitable mechanisms for describing or implementing each kind of variability that occurs at the different SPL models (such as requirement, architecture, implementation, and tests). This project aims to formalize the support for variability management offered by these models, in such way that will be possible automatically derive variations from one model to another and improve traceability among them.

As a first result of this work, we have developed a Haskel library for representing different requirement variability mechanisms (optional use case and scenarios, parameterized scenarios, and changed scenarios). This library has several interesting SPL and requirement data types, like feature model, feature configuration, and use case model; additionally, several functions for weaving these models in order to implement a given variability mechanism were also developed. Bellow, we briefly introduce each of the modules delivered in the first release.

  • Feature Model: This module is responsible for defining the concepts related to feature modeling. It also defines functions that are used, for example, to check if a product instance is in accordance with a given feature model constraints.

  • Use Case Model: This module is responsible for defining the use case modeling core concepts, like use cases, scenarios, and steps. This module also defines a function responsible for weaving two or more related scenarios (main, alternative, and exception flows) in order to compose a complete flow of events. For instance, this module implements the changed scenario and parameterized scenario variabilities.

  • Configuration Knowledge: This module is responsible for defining the configuration knowledge repersentation and the function that is used to select which artifacts (in this version, only use case scenarios) are required for a given product instance. This module implement the optional use case and scenario mechanisms.

  • Trace Model: This module is responsible for implementing the transformation process of a complete scenario path into a trace model representation. Such representation is useful for applying refinement operations.

Other auxiliary modules (BasicTypes, FeatureSample, UseCaseSample, Main) were developed in order to define reusable types and represent case studies for requirement variability management.


Related Links

4. AspectualAcme to Design Rules Translator

In this work, we propose a set of mappings to translate design rules defined by an ADL to a language of design rules, responsible for verifying if these rules are obeyed at the source code level. Such verification may guarantee that both modularity and architectural properties obtained by the architecture design are valid in the implemented source code. In this context, we choose the AspectualAcme ADL, which uses aspect-oriented concepts, allowing the generated design rules to improve the modularity of aspect-oriented systems.

To reduce the translation costs, we have also implemented a tool to automatically generate rules in a description language of design rules from a valid specification in AspectualAcme. Besides reducing the developers' effort and the time required to perform the translation, supporting automated translation may avoid errors. In addition, the design rules are never forgotten, guaranteeing the verified properties of the architectural model and the system's modularity.


Related Links

Edit | Attach | Print version | History: r25 < r24 < r23 < r22 < r21 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r22 - 2008-09-10 - PauloBorba
This site is powered by the TWiki collaboration platformCopyright © 2008-2021 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