1 / 10

Overview

ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Case Studies Instructor Paulo Alencar. Overview. Metrics related to maintainability of software systems Evaluation of the effect of design and coding factors on software system maintainability

zazu
Download Presentation

Overview

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ECE 453 – CS 447 – SE 465 Software Testing & Quality AssuranceCase StudiesInstructorPaulo Alencar

  2. Overview • Metrics related to maintainability of software systems • Evaluation of the effect of design and coding factors on software system maintainability • Experimental analysis that uses a suite of twenty measures to obtain indications of their effect on maintainability • Investigation involved a large number of systems in a single study (50 systems) • Misra, S., Modeling Design/Coding Factors that Drive Maintainability of Software Systems, Software Quality Journal, vol. 13, pp. 297-320, Springer, 2005.

  3. Main Results • A pool of 50 software systems written in C++ was evaluated in this experimental case study

  4. Main Results • A pool of 50 software systems written in C++ was evaluated in this experimental case study (cont.)

  5. Main Results • Metrics used in the case:

  6. Main Results • Metrics used in the case:

  7. Main Results • Metrics used in the case:

  8. Main Results • The effort needed for maintaining software: • MI = 171 – 5.2ln(Avg V) – 0.23 avg V(G’) – 16.2 ln (avgLOC) + 50 sin(sqrt(2.4 perCM)) • where • avgV = Halstead’s volume per module • avg V(G’) = average cyclomatic complexity • avgLOC = average lines of code • perCM = average percent of lines of comments per module

  9. Main Results • The final best model can be presented as follows: • MI = 123.344 (1/AMLOC) + 1.944 ln(N) + • 2.166 (1/CDENS) – 5.692 (1/DIT) – • 17.707 exp(MHF) + 89.426 • where • AMLOC = average method size (lines per method) • N = program length (Halstead’s # of operators and operands) • CDENS = control density (% control statements) • DIT = depth of inheritance tree (position of class in tree) • MHF = method inheritance factor (#inherited methods that a class has inherited from super-classes / total # of inherited methods)

  10. Main Results • Correlation analysis show that there is a strong log-dependence of MI on SLOC • Variables such as AMLOC, CDENS, MHF, SLOC are relatively strongly influential on MI • AMLOC had the most influential factor on MI; a function should not be more than two screens long and “spaghetti code” should be avoided • The average method size (AMLOC) will influence almost 60% of the final maintainability of the code

More Related