University of Helsinki Department of Computer Science

Department of Computer Science

Department information


ROOSA - Research on Object-Oriented Software Architectures

Welcome to ROOSA

The ROOSA research group at the Department of Computer Science, University of Helsinki studies software architectures, and especially their object-oriented flavour. The research focuses both on conceptual issues as well as on constructive methods. The developed methods and tools provide support for systematically forward-engineering software in an architectrure-centric way and for reverse-engineering software into its architectural views.

Current Projects

Past Projects

SERIOUS - Software Evolution, Refactoring, Improvement of Operational & Usable Systems


Many software intensive systems are being maintained and developed throughout their life cycle. During the design phase, required functionality and quality is built into the system. If the evolutionary aspects are not taken into account in the software process, gradual quality deterioration is imminent. Defining, measuring, and building quality need to be used as an integral part of software process to avoid such problems. By combining quality requirements with the planning of modifications we reduce maintenance costs and extend the product life cycle.

The goals of the SERIOUS project are:

  • To develop methods for making software analysis and refactoring as an integral part of the software process.
  • Defining quality attributes for software architectures so that they can easily be measured (as early as possible).
  • Making industrial case studies with tools and techniques.
Research emphasis is on quality metrics for software product families.

IRMA - Improving Requirements Modeling and Analysis

IRMA is a research project for studying and improving methods for modeling and analyzing software requirements. We are particularly interested in the following:

  • support to finding all relevant stakeholders and all relevant requirements,
  • support to structuring the constantly changing collection of requirements,
  • support to ensuring the unambiguity of requirements and solving conflicting requirements,
  • support to maintaining the requirement history.

ASTA - Aspect Software Testing Assistant

ASTA is a research project for developing tools and methodolgy to facilitate systematic testing of aspect-oriented software. The project builds on the results of the previous RITA project that developed an environment for testing framework-based software product lines.

JavaFrames - Object-Oriented Frameworks


The JavaFrames project aims at increasing knowledge of application frameworks and design patterns in software construction. The main result of the project is a software tool, which supports systematic specification of framework reuse interfaces and guides construction of applications from the frameworks.

MAISA / UML++ - Metrics for Analysis and Improvement of Software Architectures

The project develops methods for the measurement of software quality at the design level. The metrics are computed from the system's architectural description, predicting the quality attributes of the system derived from it. Most notably, size and performance metrics are addressed. The performance analysis is refined by analysis at code level.

RITA - Environment for Testing Framework-based Software Product Lines

RITA is a research and development project aiming at developing theory and methods for testing framework-based software product lines. In addition to the theoretical approach, the RITA environment for testing of framework-based software product line is under development.

SAARA - Software Architecture Analysis, Recovery and Assessment

The project develops methods and tools for automatically creating architectural views over a software system by extracting different kinds of patterns from its source code.

VILPERT - Visual Language Expert

The project develops an object-oriented framework for the implementation of visual design and programming languages. The framework is founded on a powerful grammar formalism targeted especially on the specification of multi-dimensional (i.e., "visual") languages.