MEASURING SOFTWARE COMPLEXITY USING NEURAL NETWORKS

MEASURING SOFTWARE COMPLEXITY USING NEURAL NETWORKS

Measuring the software complexity is an important task in the management of software projects. In the recent years, many researchers have paid much attention to this challenging task due to the commercial importance of software projects. In the literature, there are some software metrics and estimation models to measure the complexity of software. However, we still need to introduce novel models of software metrics to obtain more accurate results regarding software complexity.  In this paper, we will show that neural networks can be used as an  alternative  method for estimation of software complexity metrics. We use a neural network of three layers with a single hidden layer and train this network by using distinct training algorithms to determine the accuracy of software complexity. We compare our results of software complexity obtained by using neural networks with those calculated by Halstead model.  This comparison shows that the difference between our estimated results obtained by Bayesian Regularization Algorithm with 10 hidden neurons and Halstead calculated results of software complexity is less than 2%, implying the effectiveness of our proposed method of neural networks in estimating software complexity. 

___

  • H. Zuse, “Software Complexity: Measures and Methods”, Walter de Gruyter, 1991
  • M. M. Lehmam and L. A. Belady, “Program Evolution - Processes of Software Change”, Academic Press Professional, 1985
  • H. F. Li and W. K. Cheung, “An Empirical Study of Software Metrics,” IEEE Transactions on Software Engineering, 13, 6, pp. 697-708, 1987
  • P. Oman and C. Cook, “The Book Paradigm for Improved Software Maintenance”, IEEE Software, 7, 1, pp. 39-45, 1990
  • H. Zuse, “A Framework of Software Measurement”, De Gruyter Publisher, 1998
  • C. Jones, "Software Metrics: Good, Bad, and Missing." Computer, 27, 9, pp. 98-100, 1994
  • J. Marciniak, “Encyclopedia of Software Engineering”, John Wiley & Sons, 1994
  • P. Oman, “HP-MAS: A Tool for Software Maintainability, Software Engineering”, (#91-08-TR), Moscow, ID: Test Laboratory, University of Idaho, 1991
  • P. Oman and J. Hagemeister, "Constructing and Testing of Polynomials Predicting Software Maintainability." Journal of Systems and Software, 24, 3, pp. 251-266, 1994
  • P: Szulewski, “Automating Software Design Metrics”, (RADC-TR-84-27), Rome, NY: Rome Air Development Center, 1984
  • M. H. Halstead, “Elements of Software Science, Operating, and Programming Systems Series”, 1977
  • G. Boetticher, K. Srinivas and D. Eichmann, “A Neural Net-Based Approach to Software Metrics”, Proceedings of the Fifth International Conference on Software Engineering and Knowledge Engineering, pp. 271-274, 1993
  • K. Levenberg, “A method for the solution of certain problems in least squares”, Quarterly of Applied Mathematics, 5, pp. 164-168, 1944
  • D. Marquardt, “An algorithm for least-squares estimation of nonlinear parameters”, SIAM Journal on Applied Mathematics, 11, pp. 431-441, 1963
  • H. Yuand, B.M. Wilamowski, “Intelligent Systems, Ch.12, Levenberg-Marquard Training”, CRC Press, 2011
  • M. T. Hagan and M. Menhaj, "Training feed-forward networks with the Marquardt algorithm," IEEE Transactions on Neural Networks, 5, 6, pp. 989–993, 1994
  • M. F. Møller, “A scaled conjugate gradient algorithm for fast supervised learning”, Neural Networks, 6, 4, pp. 525-533, 1993
  • B. M. Wilamowski, "Neural network architectures and learning algorithms," Industrial Electronics Magazine, IEEE, 3, 4, pp. 56-63, 2009
  • M. Avriel, “Nonlinear Programming: Analysis and Methods”, Dover Publishing, 2003
  • S. Haykin, “Neural Networks and Learning Machines” (3rd ed.). Prentice Hall