Complexity Measures in 4GL Environment


Nowadays, the most popular programming languages are so-called third generation languages, such as Java, C# and C++, but higher level languages are also widely used for application development. Our work was motivated by the need for a quality assurance solution for a fourth generation language (4GL) called Magic. We realized that these very high level languages lie outside the main scope of recent static analysis techniques and researches, even though there is an increasing need for solutions in 4GL environment. During the development of our quality assurance framework we faced many challenges in adapting metrics from popular 3GLs and defining new ones in 4GL context. Here we present our results and experiments focusing on the complexity of a 4GL system. We found that popular 3GL metrics can be easily adapted based on syntactic structure of a language, however it requires more complex solutions to define complexity metrics that are closer to developers’ opinion. The research was conducted in co-operation with a company where developers have been programming in Magic for more than a decade. As an outcome, the resulting metrics are used in a novel quality assurance framework based on the Columbus methodology.

Proceedings of the 2011 Computational Science and Its Applications (ICCSA 2011), Santander, Spain, Pages 293–309


    author    = {Nagy, Csaba and Vid{\'a}cs, L{\'a}szl{\'o} and Ferenc, Rudolf and Gyim{\'o}thy, Tibor and Kocsis, Ferenc and Kov{\'a}cs, Istv{\'a}n},
    title     = {Complexity Measures in {4GL} Environment},
    booktitle = {Proceedings of the 2011 Computational Science and Its Applications (ICCSA 2011)},
    year      = {2011},
    volume    = {6786},
    series    = {Lecture Notes in Computer Science (LNCS)},
    pages     = {293--309},
    address   = {Santander, Spain},
    month     = jun,
    publisher = {Springer-Verlag},
    doi       = {10.1007/978-3-642-21934-4_25},
    keywords  = {4GL, Magic, software metrics, software complexity, software quality assurance},
    url       = {},