Complexity Measures in 4GL Environment

  • Csaba Nagy
  • László Vidács
  • Rudolf Ferenc
  • Tibor Gyimóthy
  • Ferenc Kocsis
  • István Kovács
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6786)


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.


4GL Magic software metrics software complexity software quality assurance 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    IEEE Standard Glossary of Software Engineering Terminology. Tech. rep. (1990)Google Scholar
  2. 2.
    Albrecht, A.J., Gaffney, J.E.: Software function, source lines of code, and development effort prediction: A software science validation. IEEE Transaction on Software Engineering 9, 639–648 (1983)CrossRefGoogle Scholar
  3. 3.
    Bakota, T., Beszédes, Á., Ferenc, R., Gyimóthy, T.: Continuous software quality supervision using SourceInventory and Columbus. In: ICSE Companion, pp. 931–932 (2008)Google Scholar
  4. 4.
    Basili, V.R., Briand, L.C., Melo, W.L.: A validation of object-oriented design metrics as quality indicators. IEEE Transaction on Software Engineering 22, 751–761 (1996)CrossRefGoogle Scholar
  5. 5.
    Boehm, B.W.: Software Engineering Economics, 1st edn. Prentice Hall PTR, Upper Saddle River (1981)zbMATHGoogle Scholar
  6. 6.
    Burgin, M., Debnath, N.: Complexity measures for software engineering. J. Comp. Methods in Sci. and Eng. 5, 127–143 (2005)zbMATHGoogle Scholar
  7. 7.
    Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Transaction on Software Engineering 20, 476–493 (1994)CrossRefGoogle Scholar
  8. 8.
    Ferenc, R., Beszédes, Á., Tarkiainen, M., Gyimóthy, T.: Columbus – Reverse Engineering Tool and Schema for C++. In: Proceedings of the 18th International Conference on Software Maintenance (ICSM 2002), pp. 172–181. IEEE Computer Society, Los Alamitos (2002)CrossRefGoogle Scholar
  9. 9.
    Halstead, M.H.: Elements of Software Science (Operating and programming systems series). Elsevier Science Inc., New York (1977)zbMATHGoogle Scholar
  10. 10.
    MacDonell, S.: Metrics for database systems: An empirical study. In: Proceedings of the 4th International Symposium on Software Metrics, pp. 99–107. IEEE Computer Society, Los Alamitos (1997)CrossRefGoogle Scholar
  11. 11.
    McCabe, T.J.: A complexity measure. IEEE Transaction on Software Engineering SE-2(4) (December 1976)Google Scholar
  12. 12.
    van der Meulen, M.J.P., Revilla, M.A.: Correlations between internal software metrics and software dependability in a large population of small C/C++ programs. In: Proceedings of ISSRE 2007, The 18th IEEE International Symposium on Software Reliability, pp. 203–208 (November 2007)Google Scholar
  13. 13.
    Nagy, C.: MAGISTER: Quality assurance of magic applications for software developers and end users. In: Proceedings of ICSM 2010, 26th IEEE International Conference on Software Maintenance, pp. 1–6. IEEE Computer Society, Los Alamitos (2010)Google Scholar
  14. 14.
    Nagy, C.: Solutions for reverse engineering 4GL applications, recovering the design of a logistical wholesale system. In: Proceedings of CSMR 2011, 15th European Conference on Software Maintenance and Reengineering. IEEE Computer Society, Los Alamitos (2011)Google Scholar
  15. 15.
    Navlakha, J.K.: A survey of system complexity metrics. The Computer Journal 30, 233–238 (1987)CrossRefGoogle Scholar
  16. 16.
    Verner, J., Tate, G.: Estimating size and effort in fourth-generation development. IEEE Software 5, 15–22 (1988)CrossRefGoogle Scholar
  17. 17.
    Witting, G.E., Finnie, G.R.: Using artificial neural networks and function points to estimate 4GL software development effort. Australasian Journal of Information Systems 1(2) (1994)Google Scholar
  18. 18.
    Yu, S., Zhou, S.: A survey on metric of software complexity. In: Proceedings of ICIME 2010, The 2nd IEEE International Conference on Information Management and Engineering, pp. 352–356 (April 2010)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Csaba Nagy
    • 1
  • László Vidács
    • 2
  • Rudolf Ferenc
    • 1
  • Tibor Gyimóthy
    • 1
  • Ferenc Kocsis
    • 3
  • István Kovács
    • 3
  1. 1.Department of Software EngineeringUniversity of SzegedHungary
  2. 2.Research Group on Artificial IntelligenceUniversity of Szeged & HASHungary
  3. 3.SZEGED Software ZrtHungary

Personalised recommendations