Can Source Code Metrics predict Maintainability?

I did my Ph.D. thesis on how network factors can predict and influence user satisfaction in wireless networks. I.e. how “hard” but low-level technical factors have an impact on more abstract entities.

Hegedűs et al does something similar but for source code metrics and their impact on maintainability. It has long been maintained by the software development community that cyclometric complexity and so on will have a high impact on maintainability. Maintainability is important for agile software development!

So do source code metrics predict maintainability? According to the article “A decision tree based classifier achieved a precision of over 76% during the estimation of the Changeability ISO/IEC 9126 attribute.” But how large is the effect?

References

  • G. Wikstrand, “Human factors and wireless network applications : more bits and better bits,” PhD Thesis, 2006.
    [Bibtex]
    @phdthesis{citeulike:10216067,
    author = {Wikstrand, Greger},
    citeulike-article-id = {10216067},
    citeulike-linkout-0 = {http://www.ub.umu.se/sok/bocker/album},
    isbn = {91-7264-205-X},
    keywords = {20120112a},
    posted-date = {2012-01-12 13:46:48},
    priority = {2},
    title = {Human factors and wireless network applications : more bits and better bits},
    url = {http://www.ub.umu.se/sok/bocker/album},
    year = {2006}
    }
  • [DOI] P. HegedH{u}s, T. Bakota, L. Illés, G. Ladányi, R. Ferenc, and T. Gyimóthy, “Source code metrics and maintainability: a case study software engineering, business continuity, and education,” , T. Kim, H. Adeli, H. Kim, H. Kang, K. J. Kim, A. Kiumi, and B. Kang, Ed., Berlin, Heidelberg: Springer Berlin Heidelberg, 2011, vol. 257, pp. 272-284.
    [Bibtex]
    @incollection{citeulike:10216018,
    abstract = {Measuring high level quality attributes of operation-critical {IT} systems is essential for keeping the maintainability costs under control. International standards and recommendations, like {ISO}/{IEC} 9126, give some guidelines regarding the different quality characteristics to be assessed, however, they do not define unambiguously their relationship to the low level quality attributes. The vast majority of existing quality models use source code metrics for measuring low level quality attributes. Although, a lot of researches analyze the relation of source code metrics to other objective measures, only a few studies deal with their expressiveness of subjective feelings of {IT} professionals. Our research involved 35 {IT} professionals and manual evaluation results of 570 class methods of an industrial and an open source Java system. Several statistical models have been built to evaluate the relation of low level source code metrics and high level subjective opinions of {IT} experts. A decision tree based classifier achieved a precision of over 76\% during the estimation of the Changeability {ISO}/{IEC} 9126 attribute.},
    address = {Berlin, Heidelberg},
    author = {Heged\H{u}s, P\'{e}ter and Bakota, Tibor and Ill\'{e}s, L\'{a}szl\'{o} and Lad\'{a}nyi, Gergely and Ferenc, Rudolf and Gyim\'{o}thy, Tibor},
    chapter = {28},
    citeulike-article-id = {10216018},
    citeulike-linkout-0 = {http://dx.doi.org/10.1007/978-3-642-27207-3_28},
    citeulike-linkout-1 = {http://www.springerlink.com/content/m4p61121x530r527},
    doi = {10.1007/978-3-642-27207-3_28},
    editor = {Kim, Tai-hoon and Adeli, Hojjat and Kim, Haeng-kon and Kang, Heau-jo and Kim, Kyung J. and Kiumi, Akingbehin and Kang, Byeong-Ho},
    isbn = {978-3-642-27206-6},
    keywords = {20120112a},
    pages = {272--284},
    posted-date = {2012-01-12 13:26:40},
    priority = {2},
    publisher = {Springer Berlin Heidelberg},
    series = {Communications in Computer and Information Science},
    title = {Source Code Metrics and Maintainability: A Case Study Software Engineering, Business Continuity, and Education},
    url = {http://dx.doi.org/10.1007/978-3-642-27207-3_28},
    volume = {257},
    year = {2011}
    }

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>