CoCoViLa at a glance

CoCoViLa is a software tool for model-based software development with a visual language support that performs automatic synthesis of programs from logical specifications. It is tightly integrated with Java: it is written in Java, uses advanced features of Java, and it supports programming of new software components in Java almost without restrictions.

CoCoViLa at a glance
Class Editor

Class Editor

Class Editor is used for creating visual languages for different problem domains. A CoCoViLa package consists of a package description in XML format (e.g., mypackage.xml), bitmaps for all visual classes of the package (to be shown on the tool bar in the Scheme Editor), and Java classes associated with the visual classes.

Class Editor manual

Scheme Editor

The Scheme Editor is used as a visual environment for specifying models by drawing schemes and solving problems on the models. To solve a problem, first a package must be loaded and, thereafter a scheme that specifies a model has to be built or opened from a package folder.

Scheme Editor manual
Class Editor

Specification language

All software components developed in CoCoViLa are in essence Java classes, but they have extensions. In CoCoViLa, in order to describe the behavior of a component, one has to annotate component's Java class with a metainterface. Java class supplied with a metainterface is called a metaclass. Metainterface is a textual specification of a model of a component. It contains information about computability of variables occuring in the model. For defining a metainterface of a component, the specification language is used.

Specification language description

Expert System Shell

A lightweight and modular expert system shell for the usage in decision support system. Expert System Shell is developed to enhance decision support applications in CoCoViLa.

Expert System Shell manual


Parts of the CoCoViLa system have been described in the following papers.

  • Geert Alberghs, Pavel Grigorenko, Jyri Kivimaa. Quantitative system reliability approach for optimizing IT security costs in an AI environment. In J. Penjam, ed., Proc. of 12th Symp. on Programming Languages and Software Tools, SPLST 2011 (Tallinn, Oct. 2011), pp. 219-230. Inst. of Cybern., 2011.
  • Vahur Kotkas, Andres Ojamaa, Pavel Grigorenko, Riina Maigre, Mait Harf, Enn Tyugu. CoCoViLa as a multifunctional simulation platform. In: SIMUTOOLS 2011 - 4th International ICST Conference on Simulation Tools and Techniques : March 21-25 - Barcelona, Spain: Brussels: ICST, 1 - 8, 2011.
  • A. Ojamaa, E. Tyugu. Rich Components of Extendable Simulation Platform. In: Proceedings of the 2007 International Conference on Modeling, Simulation & Visualization Methods, MSV 2007: June 25-28 2007, Las Vegas Nevada, USA: (Ed.) Arabnia, Hamid R. Las Vegas: CSREA Press, 2007, 121-127.
  • P. Grigorenko, E. Tyugu. Deep Semantics of Visual Languages. In: E. Tyugu, T. Yamaguchi (eds.) Knowledge-Based Software Engineering. Frontiers in Artificial Intelligence and Applications, vol. 140. IOS Press, p. 83 - 95.
  • P. Grigorenko, A. Saabas, E. Tyugu. Visual Tool for Generative Programming. Proc. of the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ACM Press, 2005.
  • P. Grigorenko, A. Saabas, E. Tyugu. COCOVILA - Compiler-Compiler for Visual Languages. Proc. of the 5th Workshop on Language Descriptions, Tools and Applications, 2005 (Edinburgh, April 2005), v. 141, n. 4 of Electron. Notes in Theor. Comput. Sci., pp. 137-142. Elsevier, 2005.

Interested in doing your own Master's or PhD project with CoCoViLa?

Possible topics include applications of methods of artificial intelligence, visual specification languages, automatic synthesis of programs, model-based software engineering, modeling and simulation, web services etc. See the Modeling and Simulation Group's web page for potential supervisors and suggested topics for Master's or PhD projects, or come up with your own topic!


The following is a list of theses on CoCoViLa-related topics that have been successfully defended.