Motivation
Models gain a steadily increasing importance in today’s software systems. Generators create great parts of a
program’s code from models describing the needed functionality from a domain specific view, the execution of the
software is monitored at runtime by comparing the actual behaviour of the system with a model of good behaviour and the
hardware requirements can be forecast even in early development phase by analysing a model.
Models are a great aid to reduce the complexity of the software system so that analysis tools and humans can conceive it.
Though, as program code does, models change during the software life-cycle. This evolution of a model often entails that other models must be changed as well. For
example, if a new software component is added to the architecture, the performance model has to regard this component, too.
The evolution of a model complying the evolution of an associated model is named co-evolution.
To support this often complex task we developed an extensible tool, so called "CoWolf", that enables model evolution and co-evolution management.
Co-Evolution as eclipse plug-in
The CoWolf tool is available as plug-in for the Eclipse IDE. The main features of CoWolf are
- allowing you to create architecture model and multiple QoS models of the same system
- allowing you to develop transformations between the models to help the evolution
- supporting you to keep multiple models consistent whenever they evolve
- integrating verification frameworks for QoS models
Built-in meta models
Out of the box CoWolf supports the creation & evolution of the following models:
- Component Diagram
- Sequence Diagram
- State Chart
- Fault Tree
- DTMC
- CTMC
- LQN
CoWolf also supports the co-evolution between the following models:
- Component Diagram --> Fault Tree
- State Chart <--> DTMC
- DTMC <--> CTMC
- Sequence Diagram --> LQN
- Fault Tree --> CTMC
Extend with own meta models
One of the main goals of the CoWolf project was to create an easily adaptable (co-)evolution framework. Therefore we provide some skeleton projects as well as a developer documentation. So, the CoWolf framework can easily be extended to support further models. CoWolf also makes use of configuration files that simply can be adopted to suit your needs.