Meta-models and Tools for Evolution Towards Component Systems

Meta-models and Tools for Evolution Towards Component Systems is a project funded by the Swiss National Science Foundation (SNSF project # 20-61655.00).

!Funding: 216'614.— SFr.
!Period: Oct 1, 2000 - Sept. 30, 2002

Summary

All successful software systems evolve to meet changing requirements. Without continual reengineering, however, such systems necessarily suffer from architectural drift, as their original design no longer matches new business goals and requirements. As a consequence, they become increasingly complex and fragile, leading to ever higher maintenance costs.

We propose a component-based approach to software evolution, in which stable software artifacts are identified over time, and are migrated towards components and component architectures. The key to the approach is a component meta model for modelling and analysing evolving software systems. This meta model facilitates component migration tools and techniques. As a successful software system matures, instead of becoming more complex and fragile, its architecture gradually migrates towards a configuration of software components, which can be more easily reconfigured and adapted than a typical legacy system. To achieve this flexibility, however, a component-based system requires a suitable compositional infrastructure for specifying component configurations and the compositional abstractions that hold the components together.

We propose to develop (i) a component meta model for modelling software systems that extends existing standards (such as UML) with concepts required to support evolution, focusing on such issues as non-functional requirements and software dependencies. Based on this meta model, we will develop (ii) component migration tools and methods that will help to identify candidate components, identify and resolve architectural and design drift, and support transformation to component-based software structures. We will focus on software metrics and visualization to support analysis, and language-independent refactorings to support transformation. Component migration methods will be documented as reverse and reengineering patterns. Finally, we propose to develop (iii) a compositional infrastructure to support architectural specification, and run-time configuration and evolution, using the agent-based framework of the Piccola composition language.

For more information, please consult the Research Plan of the project [pdf].

Intermediate Report

The intermediate report covers the period from Oct. 1, 2000 through Sept. 30, 2001.

This project focuses on tools and models to support the transition towards component-based software development. The following results have been achieved in the first year:

For further details, please see:

Final Report

The final report covers the period from Oct. 1, 2001 through Sept. 30, 2002.

This project focuses on tools and models to support the transition towards component-based software development. The following results have been achieved in the second year:

For further details, please see: