Model Based Java Software Development Technology


Project seminar in Laulasmaa (Meeting of the Project MBJSDT)


Hele-Mai Haav: Formal Ontologies in Model-based Software Development


Vahur Kotkas: Applying CoCoViLa Model-Based Software Development technology on industrial (Bole Manufacturing Scheduling) project


Anna Molodezheva: Cocovila Class Editor demo

On MBJSDT project seminar held on September 21-22 in Laulasmaa we have presented an updated Class Editor tool with enhanced functionality. Class Editor is used for creating visual languages for different problem domains. Main enhancement is more user-friendly interface, including reusable templates, package’s and icon’s previews and editable shape properties.

Another major addition is class fields editor, that is described in more detail here:

Margarita Spichakova: Modeling and simulation of Heating/ventilation/air-conditioning systems for simple buildings


Nowadays, the big amount of energy is spent in buildings, mainly in such sub- systems as heating, ventilation and cooling. Reducing energy consumption in this field is a trend, because of economic and environmental issues.

We try to model the energy consumption for heating/cooling air in simple building, which is modeled by one volume. Energy dissipation depends on the dimensions of building, the materials from which the house is built and outside temperature. But energy consumption can be reduced by efficient control of heating or cooling.

We propose a CoCoViLa package for modeling and simulation of HVAC systems. The system consists of several components, such as: building description, heater/cooler, controller, thermostat, electric heater, occupants, ventilation etc. The simulation results can help to choose parameters for comfort temperature, properties of the heater/cooler and modify the control algorithms.

Ahto Kalja: CoCoViLa educational applications & How easy is it to get started?


We consider three cases by the using CoCoViLa environment for educational applications. At first we introduce how the CoCoViLa beginner users can start the using of CoCoViLa programming environment. The second case shows how we will change the master student cource 0410 – Basics of CAD from using older model based software systems (ExpertPRIZ and NUT) to using a new CoCoViLa system. We finish with discussion about using simplified software packages development process for developing CoCoViLa CAD packages.

Ontology seminar

  1. Ontology conceptualization and specification (Hele-Mai, 26.11.14)
  2. Description Logic(s) as a formal method of knowledge representation (Jaan, 28.11.14)
  3. OWL (Ontology Web Language): ontology representation language based on Descriptions Logic(s) (Hele-Mai, 15.12.14 )
  4. Ontology design workshop. Using Protege ontology editor and Pellet Description Logic reasoner for ontology creation. (Hele-Mai, 22.12.14)

Project seminar in Laulasmaa (the 2nd Kick-off Meeting of the Project MBJSDT)


Jaan Penjam: Project status report


Pavel Grigorenko: CoCoViLa- Visual Domain Specific languages and Automatic Synthesis of Programs


Kai Koskimies: Generating architecture models using genetic algorithms


Automated support for software architecture design is required both in the case of conventional human-driven software development and in the case of software generation. In the former case, this kind of support assists a software architect in producing an initial approximation for satisfying given requirements, exploiting known good solutions to design problems. In the latter case, automated architectural design provides a way to satisfy given quality requirements (rather than just functional requirements) in the generated software - a possibility beyond the capabilities of current DSL approaches.

In the Darwin project our goal is to study to what extent systems can design systems: is it possible to produce a reasonable architectural design proposal for a software system automatically based on its functional and quality requirements. The technique is based on using genetic algorithms and architectural patterns. Software architecture is viewed in this context as a UML structure model. As input, an initial design giving the basic fuctional decomposition of the target system is given, together with a set of available patterns. We study in this work three quality properties: modifiability, efficiency, and simplicity. The fitness function of the GA has weighted terms for these qualities. Populations in GA consist of architecture candidates, in which the initial design is augmented with applications of patterns in certain places of the architecture. In each generation, the individual architectures are subjected to crossover (merging two architectures) and mutation (adding or removing a pattern randomly). The best individual architecture (in terms of the fitness function) of the last generation is considered as the result of the architecture synthesis.

We have applied the method in a tool (see that supports an architect not only in obtaining a pattern-based architecture but also suggesting a work division scheme for the distributed development organization, minimizing the need for communication between the sites. We have also applied the approach for self-architecting systems: if the architecture of a system can be generated automatically, it opens the possibility to systems that can improve their own architecture at run-time. We have built a Java platform supporting the creation of self-architecting applications. These systems are equipped with run-time architecture representation, capability to monitor their run-time quality, and architecture inference engine (based on GA) proposing a new architecture when the run-time environment of the system changes in such a way that the existing architecture is no more optimal. In addition, the platform provides a mechanism to impose a new architecture for the system at run-time, without stopping the system.

The project is funded by the Academy of Finland for 2009-2011, and carried out as co-operation between TUT and UTA (University of Tampere). The project continues at least till the end of 2014 based on personal funding from Finnish graduate schools.

Kari Systä: Web as the application platform


One of the main research topics at TUT/Pervasive Systems is "Web as the application platform". Our background finding is that people assume that more and more of the content and computation is used from the Web and people use several devices to access those resources. This means that browser becomes the major platform, and latest developments of HTML-standard (HTML5) allows development more advanced applications and especially applications that can continue running in off-line mode. Support for smooth multi-device use requires that application state is preserved. That can be implemented by 1) running everything on server or 2) by using the local storage and offline support of the HTML5. We have selected the latter approach and implemented concept of CloudBrowser. The next logical step from CloudBrowser is is to use the technology to implement mobile agents. Those agents, that are still Web applications, can move between different browsers and servers. One potential application area is Internet-of-Things/Web-Of-Thing.

Some key publications

  • Taivalsaari, A., Mikkonen, T., Ingalls, D., Palacz, K.: Web Browser as an Application Platform. In: Proc. 34th Euromicro Conference on Software Engineering and Advanced Applications (SEAA 2008), September 3-5, pp. 293–302. IEEE Computer Society (2008)
  • Antero Taivalsaari, Kari Systä, Cloudberry: HTML5 Cloud Phone Platform for Mobile Devices. IEEE Software, July/August 2012, pp.30-35.
  • Taivalsaari, A., Mikkonen, T., Systä, K., 2013. Cloud Browser: Enhancing the Web Browser with Cloud Sessions and Downloadable User Interface, To appear in the Proceedings of GPC 2013, Soul Korea, 9-11.5.2013, will be published as LNCS (Lecture Notes in Computer Science).
  • Systä, K., Mikkonen, T., Järvenpää, L., 2013. HTML5 Agents – Mobile Agents for the Web, To appear in the Proceedings of 9th International Conference on Web Information Systems and Technologies (WEBIST), Aachen, Germany, 8-10.5.2013.
  • Laura Järvenpää, Markku Lintinen, Anna-Liisa Mattila, Tommi Mikkonen, Kari Systä, Jari-Pekka Voutilainen, Mobile Agents for the Internet of Things, In WASA2013,3rd Workshop on Applications of Software Agents, Sinaia, Romania, October 11-13, 2013.

Some speculations on how our work could be more liked to your project

  • One of our activities is related to on cloud-based and collaborative IDE. (See We could investigate if some of our work could allow you to make CoCoViLa collaborative?
  • In some of our projects, for example implementation of collaborative IDE) we have used VAADIN ( toolkit. VAADIN technology could be nice way to make your generated application Web-compatible.

Samuel Lahtinen: Model-based(ish) stuff


One of the current research topics in TUT/Pervasive Systems is service composition, research is done under EASIClouds project. Previously we have done research on model-based command interface derivation. One possible future direction could be a freeform software architecture design and sketching tool, the idea was briefly discussed in the talk.

Service Composition

RESTful services are becoming a popular technology for providing and consuming cloud services. The idea of cloud computing is based on on-demand services and their agile usage. This implies that also personal service compositions and workflows should be supported. Such compositions can be executed once or they can be configured to be executed repeatedly, for example, to get newest updates from a service once a week. Tools for controlling services and creating service compositions are mainly targeted for programmers rather than end-users and they are often implemented in an ad-hoc way. The service descriptions and service interfaces offer little aid for service composition. We are currently working on ways to describe services to enable end-users to define the compositions and composition engine to execute compositions automatically. Building a service composition tool is part of the research process. [1]

Model-based Derivation of Command Interfaces

Speech interface can be used to enhance usability and improve user experience. We have used a model-based technique for deriving command interfaces. A speech interface is used as an example of such an interface. The technique is especially suitable for applications whose functionality can be described as creating, deleting and modifying a set of elements, and activating their specific functionality. The approach can be used to produce a command interface from the given application model. [2] In model-based command interfaces the commands can be validated based on the state of the target software and the active elements in use. The same model information can also be used to produce sensible error messages, construct user guidance, and to limit the set of active commands based on the context. Limiting available commands can also be used to increase the accuracy of speech control. The model-based technique can also be used for making the command interface reflective. A reflective interface allows changing and updating of the command language by using the language itself and enables the users to change and update the command language on the fly. [3]

  1. Otto Hylli, Samuel Lahtinen, Anna Ruokonen, Kari Systä: Service Composition for End-users, SPLST 2013, Szeged, Hungary August 26-27, 2013, pp. 100-113,
  2. Samuel Lahtinen, Heikki Suontausta, Kai Koskimies : Automated Derivation of Speech Interfaces: A Model-based Approach, Proceedings of ASWEC 2008: 19th Australian Software Engineering Conference, IEEE Computer Society, pp. 289-299, Perth, Australia, March 2008.
  3. Samuel Lahtinen, Kai Koskimies, A model-based approach to reflective command interfaces, Nordic Journal of Computing, Volume 14 Issue 4, December 2008, Pages 264-281

Misha Matskin: Two Experiments with Service Composition: Trust/Privacy Management and Action Planning for Mobile Robots


We consider two cases of applying service composition in research activity of the Department of Software and Computer Systems of KTH. The first case considers exploiting dynamic privacy in socially regularized recommenders and in particular applying trust and privacy measures in Web service composition. The second case is related to designing networks of smart devices. In particular we discuss using semantic Web service composition for action planning in multi-robot systems. The cases are selected in order to discuss issues relevant to the IOC project.

Vahur Kotkas: Proposal for a new user interface and implementation platform for CoCoViLa (V2)


Margarita Spichakova: Specification of state transition models


In this presentation we discuss the usage of finite state machines as models for reactive systems. Brief overview of the existing tools for modeling with FSM is presented.

FSM can be used as additional specification of the behaviour for some class. The functionality can be stored as class methods, but FSM is used as language for describing event/action rules.

Hele-Mai Haav, Andres Ojamaa, Mait Harf, Vahur Kotkas: CoCoViLa ontology


As different people have developed the CoCoViLa system during different time periods using different terms for talking about its concepts, a need for a shared vocabulary for facilitating common understanding has raised. The goal of this work was to create a shared vocabulary of terms related to CoCoViLa and corresponding system of concepts and relationships (ontology) these terms refer to. The aim was not to specify the CoCoViLa ontology in any formal language, but rather use a diagrammatic language to facilitate human understanding. Developed CoCoViLa ontology defines a set of system-specific concepts of the CoCoViLa system and their relationships. It was not built from scratch; a number of reusable documents and system interfaces were used for this interesting task. The final vocabulary of terms and ontology will be included to the CoCoViLa system documentation.

Pavel Grigorenko: Expert decision tables in CoCoViLa


Enn Tyugu: Bootstrapping CoCoViLa


The result presented here is a case study justifying the method where object-oriented and compositional specifications are combined in software development with minimal restrictions on both. Object-oriented programming is done in Java, but it could have been C++ or some other OO language as well. Compositional specification is written in a DSL developed with CoCoViLa introduced first in Grigorenko, P.; Saabas, A.; Tyugu, E. (2005). COCOVILA - compiler-compiler for visual languages. Electronic Notes in Theoretical Computer Science, 141(4), 137 - 142, and developed further during the following years. It is essential that OO and compositional specifications have separate name spaces, and can be developed almost independently. The presented approach is justified by an example of developing a software tool. More precisely, it is bootstrapping CoCoViLa in CoCoViLa itself, whose source code is available from the web.

Hannes Tarn: Modeling of production processes in Bole OÜ

Aleksander Reitsakas


Ahto Kalja: On student projects on MB software engineering in mechanical engineering field


Model based software engineering (MBSE) has been a research topic a long period in the Institute of Cybernetics at TUT. At the same time our students have used MBSE environments for software developing in large numbers of master thesis. Firstly, an overview of PRIZ - family systems is presented. Secondly, the principles of software development using MBSE environments are given. Thirdly, a row of developed software package (in ExpertPRIZ, in NUT and in CoCoViLa) is presented.

Mait Harf: Modeling and Simulation of Technical Chain Systems


An overview of a research in the area of modelling and simulation of technical chain systems is presented. Modeling is based on principles developed in Institute of Machinery of Tallinn University of Technology (TUT). CoCoViLa environment developed in the Institute of Cybernetics is used as a tool for modeling and simulation. Multi-pole models with different oriented causalities are used that enable adequately describe physical processes in hydraulic and mechanical systems. Modeling and simulation of fluid power systems are considered. Simulation of electro-hydraulic load-sensing systems and simulation of electro-hydraulic servo-systems are presented in more detail. Proposed principles and methods are applicable for simulation of technical chain systems with any physical content. Historical remarks concerning hardware, software and different simulation tasks during several decades are presented.

Andres Ojamaa: Simulations in CyberSecurity systems


This talk gives a brief introduction to cyber security simulations by discussing some of the most important characteristics, problems and opportunities of the field. Then follows a short overview of four CoCoViLa packages for modeling and simulating various problems in the cyber security field. The talk concludes with a number of ideas and suggestions for future development of the model-based software development technology and CoCoViLa platform.