models and programming language, which permits the transformation of the problem
domain description into the executable code.
Unified Modelling Language (UML) [1] was created not only as a system specifi-
cation tool, but is positioned also as a mean, which will allow automatically generate
code from UML models. With such a position Object Management Group proclaimed
its new invention, Model Driven Architecture (MDA) [2], in the end of 2001. Just
that it will be possible to generate a software system from the thoroughly developed
model of the problem domain. Since then, it is now already 10 years, and 15 years
since UML was standardized. At that time, a lot of different CASE tools have been
developed, which are advertised as more or less able to generate the program code
from system model. These are both open source tools, and commercial products.
While still not yet heard about a software system that could be developed based only
on principles of MDA.
Inadequate models and lack of the formalization of modelling process is consid-
ered as one of the MDA implementation disincentives [3]. About 100 different tech-
niques, methodologies, approaches, transformation algorithms has been developed in
the last 10 years, which makes it possible to automate the creation of UML class
diagrams, from which the subsequent code generation is defined as it is already
solved the problem. [4] presents an analysis of different approaches to transformation
of the problem domain description into the UML class diagram during last 10 years,
published in four digital libraries – IEEEXplore, ACM, Science Direct and Springer-
Link. The survey states, that there exist enough different approaches for the genera-
tion of the UML class diagram. So far different solutions are offered for making the
process of the class diagram development more suitable, more formal, or even more
“user-friendly” [3]. Therefore, the authors doubt about the abilities to use class dia-
gram elements for further generation of software components also in [3].
The authors of this paper state to investigate exactly the stage of code generation,
because there are a very few works, which are devoted to deep analysis of code gen-
eration abilities in advanced CASE tools. Eichelberger with colleagues in [5] has
been evaluated current UML modelling tools including the products of all major
players being relevant to industry and academia. The study is meant to provide an
overview of UML modelling tools as well as decision support to potential buyers and
users. One of the evaluated aspects also is the code generation. Several researchers
have been introduced some mechanisms for code generation improvements, like [6]
and [7]. But it is still a fact, that there is no tool, where according to [5] code genera-
tion ability would be evaluated closed to 100%. But authors of [5] themselves admit
that, the main focus of this study is on the availability of the modelling capabilities as
defined in the UML specification. So far the analysis of code generation possibilities
from the UML class diagram using advanced CASE tools is selected as a research
object.
2 General Principles of Code Generators
Code generators and the idea of code generation itself is nothing new during the last
30 years. In fact, currently popular software development environments like Visual
58