UML + CPN @ Nokia

Partners:

CPN Group at DAIMI
Nokia Research Center (Software Architecture Group)
Danish National Centre for IT-Research

 

Start of project: January 2003

UML is well suitable for describing the static structures of software systems and components and hence sufficient for development of many traditional systems, e.g., those where the critical concurrency and synchronisation issues are handled by a database system, and hence hidden from the ordinary software developers.

UML has been advertised as the modelling language. However, in its present version, UML has some limitations when expressing the dynamic behaviour of systems. Therefore it is interesting to consider improvements and extensions of UML and consider the use of supplementary modelling languages and modelling tools.

One of the modelling languages which may supplement UML is Coloured Petri Nets. Analogously to UML, CPN models have an intuitive and appealing graphical representation. As a difference to UML models (given the present standard for the language), CPN models can be executed or simulated. This means that by using CPN models it is possible, e.g., to investigate different working situations in a requirement specification phase or investigate the behavioural properties of different design suggestions in a design phase.

CPN models have been applied in a number of industrial projects. This has usually been as an "appendix" to other system development methods, without integrating CPN and the CPN Tools with these methods and their tools. Based on our experiences from earlier projects, we are convinced that it will be fruitful to integrate CPN models more directly with other system development methods and their tools. In the present project we take the first steps towards such an integration. Although this idea is simple, it is also challenging from a scientific point of view. The reason for this is that we want the static UML models and the dynamic CPN models to form an integrated set of models, allowing reuse of data from one model to the other and making possible automatic checks of consistency between models. This is not at all straightforward. Otherwise, it is rather obvious that UML already would have had much better facilities for dynamic modelling.

Project Outline

The basic idea of this research is to integrate CPN Tools to the current architecture modelling tools used at Nokia so that the dynamic scenarios and static data about the memory consumption figures of components could be extracted from UML models and fed into CPN Tools. Then, CPN Tools can be used in a transparent way to simulate the scenarios and produce statistics about memory usage during the scenarios. In particular, this will require:

  1. Extracting relevant information from UML models.
  2. Modelling basic mechanisms of the underlying operating system in CPN and defining generic collaboration scenarios.
  3. Feeding the scenarios to be simulated from a UML model into CPN Tools.
  4. Simulating the scenarios and producing statistics in an appropriate format to be added as an appendix to architecture documentation.

The first step will be to investigate whether the UML diagrams contain enough information for the CPN simulations that we want to make. We are not sure that is the case from the beginning, but then we must investigate how the needed information can be added. Some of it can be added via the UML tools, but it is also likely that we need some core elements of the system architecture to be modelled directly in CPN. If this can be done general enough to be applicable for a large range of features, we see no problem in doing this, since it can be totally hidden from the ordinary application engineer.

To investigate the basic idea in the proposed approach, we will start by making manual bridges between the UML tool and CPN Tools. We will manually extract the necessary information from UML and put it in the CPN model, but of course in such a way that the process later can be automated. Analogously, we manually feed the simulation results back in the UML documents and other design documents to illustrate how the end result will look, but again in such a way that the process can eventually be automated. Next we will investigate what it takes, from the technical point of view, to automate the bridges between the UML tools and CPN Tools. Whether the actual implementation of the bridges can be achieved as part of the present project is not yet clear.

The investigation of memory requirements is only one out of many ways in which CPN models may be used to augment UML models. We will start by pursuing this idea, but as the project progresses we may also decide to investigate other ways of using CPN models together with UML models.

Software Architecture Group at Nokia Research Center

The Software Architecture Group (SAG) is one of the most important research groups in the Software Technology Laboratory at Nokia Research Center. The mission of SAG is to help Nokia to excel in software engineering and software architecture. Within Nokia SAG works on the following areas: technology development, technology application in product development, development of new product ideas, standardisation, and knowledge transfer. SAG has strong relations with the research community and has many joint research projects with universities and research organisations in Europe. SAG participates in EU co-operation projects to contribute its research results and gain visibility, contacts and ideas.

Project Group

Research manager:
Jens Bæk Jørgensen, PostDoc, DAIMI
Phone: +45 8942 5657, E-mail: jbj@cs.au.dk
Other participants from CPN group:
Kurt Jensen, Prof., Dr. Scient., DAIMI (kjensen@cs.au.dk)
Søren Christensen, Assoc. Prof., PhD, DAIMI (schristensen@cs.au.dk)
Participants from Nokia:
Jianli Xu (jianli.xu@nokia.com 
Antti-Pekka Tuovinen (antti-pekka.tuovinen@nokia.com)