Mapping Software Metrics to Module Complexity: A Pattern Classification Approach

ABSTRACT

A desirable software engineering goal is the prediction of software module complexity (a qualitative concept) using automatically generated software metrics (quantitative measurements). This goal may be couched in the language of pattern classification; namely, given a set of metrics (a pattern) for a software module, predict the class (level of complexity) to which the module belongs. To find this mapping from metrics to complexity, we present a classification strategy, stochastic metric selection, to determine the subset of software metrics that yields the greatest predictive power with respect to module complexity. We demonstrate the effectiveness of this strategy by empirically evaluating it using a publicly available dataset of metrics compiled from a medical imaging system and comparing the prediction results against several classification system benchmarks.

A desirable software engineering goal is the prediction of software module complexity (a qualitative concept) using automatically generated software metrics (quantitative measurements). This goal may be couched in the language of pattern classification; namely, given a set of metrics (a pattern) for a software module, predict the class (level of complexity) to which the module belongs. To find this mapping from metrics to complexity, we present a classification strategy, stochastic metric selection, to determine the subset of software metrics that yields the greatest predictive power with respect to module complexity. We demonstrate the effectiveness of this strategy by empirically evaluating it using a publicly available dataset of metrics compiled from a medical imaging system and comparing the prediction results against several classification system benchmarks.

Cite this paper

nullN. Pizzi, "Mapping Software Metrics to Module Complexity: A Pattern Classification Approach,"*Journal of Software Engineering and Applications*, Vol. 4 No. 7, 2011, pp. 426-432. doi: 10.4236/jsea.2011.47049.

nullN. Pizzi, "Mapping Software Metrics to Module Complexity: A Pattern Classification Approach,"

References

[1] S. R. Chidamber and C. F. Kemerer, “A Metrics Suite for Object-Oriented Design,” IEEE Transactions on Software Engineering, Vol. 20, No. 6, 1994, pp. 476-493. doi:10.1109/32.295895

[2] B. A. Kitchenham, R. T. Hughes and S. G. Kinkman, “Modeling Software Measurement Data,” IEEE Transactions on Software Engineering, Vol. 27, No. 9, 2001, pp. 788-804. doi:10.1109/32.950316

[3] N. E. Fenton and A. A. Kaposi, “Metrics and Software Structure,” Information and Software Technology, Vol. 29, No. 6, 1987, pp. 301-320. doi:10.1016/0950-5849(87)90029-2

[4] N. E. Fenton and M. Neil, “A Critique of Software Defect Prediction Models,” IEEE Transactions on Software Engineering, Vol. 25, No. 5, 1999, pp. 675-689. doi:10.1109/32.815326

[5] G. Poels and G. Dedene, “Distance-Based Software Measurement: Necessary and Sufficient Properties for Software Measures,” Information and Software Technology, Vol. 42, No. 1, 2000, pp. 35-46.

[6] E. J. Weyuker, “Evaluating Software Complexity Measures,” IEEE Transactions on Software Engineering, Vol. 14, No. 9, 1988, pp. 1357-1365. doi:10.1109/32.6178

[7] M. Reformat, W. Pedrycz and N. J. Pizzi, “Software Quality Analysis with the Use of Computational Intelligence,” Information and Software Technology, Vol. 45, No. 7, 2003, pp. 405-417. doi:10.1016/S0950-5849(03)00012-0

[8] G. A. F. Seber, “Multivariate Observations,” John Wiley & Sons Ltd., Hoboken, 1984. doi:10.1002/9780470316641

[9] R. O. Duda, P. E. Hart and D. G. Stork, “Pattern Classification,” 2nd Edition, Wiley-Interscience, New York, 2000.

[10] R. Gnanadesikan, “Methods for Statistical Data Analysis of Multivariate Observations,” 2nd Edition, John Wiley & Sons Ltd., New York, 1997. doi:10.1002/9781118032671

[11] N. J. Pizzi and W. Pedrycz, “Effective Classification Using Feature Selection and Fuzzy Integration,” Fuzzy Sets and Systems, Vol. 159, No. 21, 2008, pp. 2859-2872. doi:10.1016/j.fss.2008.03.015

[12] M. R. Lyu, “Data Directory in the CD-ROM,” http://www.cse.cuhk.edu.hk/~lyu/book/reliability/data.html

[13] J. C. Munson and T. M. Khoshgofthaar, “Software Metrics for Software Reliability Assessment,” In: M. R. Lyu, Ed., Handbook of Software Reliability Engineering, McGraw-Hill, New York, 1996, pp. 493-529.

[14] R. Lind and K. Vairavan, “An Experimental Investigation of Software Metrics and Their Relationship to Software Development Effort,” IEEE Transactions on Software Engineering, Vol. 15, No. 5, 1989, pp. 649-653. doi:10.1109/32.24715

[15] R. S. Pressman and R. Pressman, “Software Engineering: A Practitioner’s Approach,” McGraw-Hill, New York, 2000.

[16] N. E. Fenton and S. L. Pfleeger, “Software Metrics: A Rigorous and Practical Approach,” PWS Publishing, Boston, 1997.

[17] J. F. Peters and W. Pedrycz, “Software Engineering: An Engineering Approach,” John Wiley & Sons Ltd., Hoboken, 1999.

[18] M. H. Halstead, “Elements of Software Science,” Elsevier, New York, 1977.

[19] T. J. McCabe, “A Complexity Metric,” IEEE Transactions on Software Engineering, Vol. 2, No. 4, 1976, pp. 308-320. doi:10.1109/TSE.1976.233837

[20] E. K. Tang, P. N. Suganthan and X. Yao, “Gene Selection Algorithms for Microarray Data Based on Least Square Support Vector Machine,” BMC Bioinformatics, Vol. 7, No. 95, 2006. doi:10.1186/1471-2105-7-95

[21] Q. Liu, A. Sung, Z. Chen and J. Xu, “Feature Mining and Pattern Classification for LSB Matching Steganography in Grayscale Images,” Pattern Recognition, Vol. 41, No. 1, 2008, pp. 56-66.

[22] N. Kasabov and Q. Song, “DENFIS: Dynamic Evolving Neural-Fuzzy Inference System and Its Application for Time-Series Prediction,” IEEE Transactions on Fuzzy Systems, Vol. 10, No. 2, 2002, pp. 144-154. doi:10.1109/91.995117

[23] B. Sch?lkopf and A. J. Smola, “Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond,” MIT Press, Cambridge, 2002.

[24] V. Vapnik, “Statistical Learning Theory,” John Wiley & Sons Ltd., New York, 1998.

[25] L. Wang, “Support Vector Machines: Theory and Applications,” Springer-Verlag, Berlin, 2005.

[26] V. Vapnik and A. Lerner, “Pattern Recognition Using Generalized Portrait Method,” Automation and Remote Control, Vol. 24, 1963, pp. 774-780.

[27] W. H. Press, S. A. Teukolsky, W. T. Vetterling and B. P. Flannery, “Numerical Recipes: The Art of Scientific Computing,” 3rd Edition, Cambridge University Press, Cambridge, 2007.

[28] J. Moody and C. J. Darken, “Fast Learning Networks of Locally–Tuned Processing Units,” Neural Computation, Vol. 1, No. 2, 1989, pp. 281-294.

[29] S. M. Weiss and C. A. Kulikowski, “Computer Systems that Learn: Classification and Prediction Methods from Statistics, Neural Nets, Machine Learning and Expert Systems,” Morgan Kaufmann Publishing, San Mateo, 1991.

[30] B. S. Everitt, “Moments of the Statistics Kappa and Weighted Kappa,” British Journal of Mathematical and Statistical Psychology, Vol. 21, 1968, pp. 97-103.

[31] J. L. Fleiss, “Measuring Agreement between Two Judges on the Presence or Absence of a Trait,” Biometrics, Vol. 31, No. 3, 1975, pp. 651-659. doi:10.2307/2529549

[32] T. McGinn, P. C. Wyer, T. B. Newman, S. Keitz, R. Leipzig and G. Guyatt, “Tips for Learners of Evidence-Based Medicine: 3. Measures of Observer Variability (Kappa Statistic),” Canadian Medical Association Journal, Vol. 171, No. 11, 2004, pp. 1369-1373. doi:10.1503/cmaj.1031981

[1] S. R. Chidamber and C. F. Kemerer, “A Metrics Suite for Object-Oriented Design,” IEEE Transactions on Software Engineering, Vol. 20, No. 6, 1994, pp. 476-493. doi:10.1109/32.295895

[2] B. A. Kitchenham, R. T. Hughes and S. G. Kinkman, “Modeling Software Measurement Data,” IEEE Transactions on Software Engineering, Vol. 27, No. 9, 2001, pp. 788-804. doi:10.1109/32.950316

[3] N. E. Fenton and A. A. Kaposi, “Metrics and Software Structure,” Information and Software Technology, Vol. 29, No. 6, 1987, pp. 301-320. doi:10.1016/0950-5849(87)90029-2

[4] N. E. Fenton and M. Neil, “A Critique of Software Defect Prediction Models,” IEEE Transactions on Software Engineering, Vol. 25, No. 5, 1999, pp. 675-689. doi:10.1109/32.815326

[5] G. Poels and G. Dedene, “Distance-Based Software Measurement: Necessary and Sufficient Properties for Software Measures,” Information and Software Technology, Vol. 42, No. 1, 2000, pp. 35-46.

[6] E. J. Weyuker, “Evaluating Software Complexity Measures,” IEEE Transactions on Software Engineering, Vol. 14, No. 9, 1988, pp. 1357-1365. doi:10.1109/32.6178

[7] M. Reformat, W. Pedrycz and N. J. Pizzi, “Software Quality Analysis with the Use of Computational Intelligence,” Information and Software Technology, Vol. 45, No. 7, 2003, pp. 405-417. doi:10.1016/S0950-5849(03)00012-0

[8] G. A. F. Seber, “Multivariate Observations,” John Wiley & Sons Ltd., Hoboken, 1984. doi:10.1002/9780470316641

[9] R. O. Duda, P. E. Hart and D. G. Stork, “Pattern Classification,” 2nd Edition, Wiley-Interscience, New York, 2000.

[10] R. Gnanadesikan, “Methods for Statistical Data Analysis of Multivariate Observations,” 2nd Edition, John Wiley & Sons Ltd., New York, 1997. doi:10.1002/9781118032671

[11] N. J. Pizzi and W. Pedrycz, “Effective Classification Using Feature Selection and Fuzzy Integration,” Fuzzy Sets and Systems, Vol. 159, No. 21, 2008, pp. 2859-2872. doi:10.1016/j.fss.2008.03.015

[12] M. R. Lyu, “Data Directory in the CD-ROM,” http://www.cse.cuhk.edu.hk/~lyu/book/reliability/data.html

[13] J. C. Munson and T. M. Khoshgofthaar, “Software Metrics for Software Reliability Assessment,” In: M. R. Lyu, Ed., Handbook of Software Reliability Engineering, McGraw-Hill, New York, 1996, pp. 493-529.

[14] R. Lind and K. Vairavan, “An Experimental Investigation of Software Metrics and Their Relationship to Software Development Effort,” IEEE Transactions on Software Engineering, Vol. 15, No. 5, 1989, pp. 649-653. doi:10.1109/32.24715

[15] R. S. Pressman and R. Pressman, “Software Engineering: A Practitioner’s Approach,” McGraw-Hill, New York, 2000.

[16] N. E. Fenton and S. L. Pfleeger, “Software Metrics: A Rigorous and Practical Approach,” PWS Publishing, Boston, 1997.

[17] J. F. Peters and W. Pedrycz, “Software Engineering: An Engineering Approach,” John Wiley & Sons Ltd., Hoboken, 1999.

[18] M. H. Halstead, “Elements of Software Science,” Elsevier, New York, 1977.

[19] T. J. McCabe, “A Complexity Metric,” IEEE Transactions on Software Engineering, Vol. 2, No. 4, 1976, pp. 308-320. doi:10.1109/TSE.1976.233837

[20] E. K. Tang, P. N. Suganthan and X. Yao, “Gene Selection Algorithms for Microarray Data Based on Least Square Support Vector Machine,” BMC Bioinformatics, Vol. 7, No. 95, 2006. doi:10.1186/1471-2105-7-95

[21] Q. Liu, A. Sung, Z. Chen and J. Xu, “Feature Mining and Pattern Classification for LSB Matching Steganography in Grayscale Images,” Pattern Recognition, Vol. 41, No. 1, 2008, pp. 56-66.

[22] N. Kasabov and Q. Song, “DENFIS: Dynamic Evolving Neural-Fuzzy Inference System and Its Application for Time-Series Prediction,” IEEE Transactions on Fuzzy Systems, Vol. 10, No. 2, 2002, pp. 144-154. doi:10.1109/91.995117

[23] B. Sch?lkopf and A. J. Smola, “Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond,” MIT Press, Cambridge, 2002.

[24] V. Vapnik, “Statistical Learning Theory,” John Wiley & Sons Ltd., New York, 1998.

[25] L. Wang, “Support Vector Machines: Theory and Applications,” Springer-Verlag, Berlin, 2005.

[26] V. Vapnik and A. Lerner, “Pattern Recognition Using Generalized Portrait Method,” Automation and Remote Control, Vol. 24, 1963, pp. 774-780.

[27] W. H. Press, S. A. Teukolsky, W. T. Vetterling and B. P. Flannery, “Numerical Recipes: The Art of Scientific Computing,” 3rd Edition, Cambridge University Press, Cambridge, 2007.

[28] J. Moody and C. J. Darken, “Fast Learning Networks of Locally–Tuned Processing Units,” Neural Computation, Vol. 1, No. 2, 1989, pp. 281-294.

[29] S. M. Weiss and C. A. Kulikowski, “Computer Systems that Learn: Classification and Prediction Methods from Statistics, Neural Nets, Machine Learning and Expert Systems,” Morgan Kaufmann Publishing, San Mateo, 1991.

[30] B. S. Everitt, “Moments of the Statistics Kappa and Weighted Kappa,” British Journal of Mathematical and Statistical Psychology, Vol. 21, 1968, pp. 97-103.

[31] J. L. Fleiss, “Measuring Agreement between Two Judges on the Presence or Absence of a Trait,” Biometrics, Vol. 31, No. 3, 1975, pp. 651-659. doi:10.2307/2529549

[32] T. McGinn, P. C. Wyer, T. B. Newman, S. Keitz, R. Leipzig and G. Guyatt, “Tips for Learners of Evidence-Based Medicine: 3. Measures of Observer Variability (Kappa Statistic),” Canadian Medical Association Journal, Vol. 171, No. 11, 2004, pp. 1369-1373. doi:10.1503/cmaj.1031981