home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume20 / metrics / part02 < prev    next >
Text File  |  1989-09-18  |  10KB  |  236 lines

  1. Subject:  v20i009:  Tools for generating software metrics, Part02/14
  2. Newsgroups: comp.sources.unix
  3. Sender: sources
  4. Approved: rsalz@uunet.UU.NET
  5.  
  6. Submitted-by: Brian Renaud <huron.ann-arbor.mi.us!bdr>
  7. Posting-number: Volume 20, Issue 9
  8. Archive-name: metrics/part02
  9.  
  10. ---- Cut Here and unpack ----
  11. #!/bin/sh
  12. # this is part 2 of a multipart archive
  13. # do not concatenate these parts, unpack them in order with /bin/sh
  14. # file doc/References continued
  15. #
  16. CurArch=2
  17. if test ! -r s2_seq_.tmp
  18. then echo "Please unpack part 1 first!"
  19.      exit 1; fi
  20. ( read Scheck
  21.   if test "$Scheck" != $CurArch
  22.   then echo "Please unpack part $Scheck next!"
  23.        exit 1;
  24.   else exit 0; fi
  25. ) < s2_seq_.tmp || exit 1
  26. echo "x - Continuing file doc/References"
  27. sed 's/^X//' << 'SHAR_EOF' >> doc/References
  28. X    Systems Development Activities with Function Points", IEEE
  29. X    Transactions on Software Engineering, Vol. SE-9, No. 6 (November
  30. X    1983).
  31. X
  32. X    [Both articles reference: Allen J. Albrecht, "Measuring
  33. X    application development productivity", Proceedings IBM Applications
  34. X    Development Symposium Oct 14-17, 1979, GUIDE Int. and SHARE Inc.,
  35. X    IBM Corp., p. 83; which I do not have.
  36. X    
  37. X    Conte, Dunsmore and Shen state "... [Allbrecht] obtained a
  38. X    reasonably smooth fit of his weighted function points to actual
  39. X    costs.  However, the programs he studied were all commercial
  40. X    applications, in which the function units are more or less clearly
  41. X    definable and fairly homogeneous.  For systems programs, ...
  42. X    function units are more difficult to define precisely and, in any
  43. X    case, may differ significantly in size and scope." So, if you are
  44. X    working with fairly standard commercial applications, you may want
  45. X    to check this out.]
  46. X
  47. X
  48. XB4.    Chris F. Kemerer, "An Empirical Validation of Software Cost
  49. X    Estimation Models", Communications of the ACM, Vol 30, No. 5
  50. X    (May 1987).
  51. X
  52. X    [Pretty easy to read.  Kemerer, like most writers, found that
  53. X    different models do better in different environments.  He thinks
  54. X    that function points (Albrecht, see above) may be a better basis
  55. X    for estimation than lines of code.]
  56. X
  57. X
  58. XModels based on software science (halstead)
  59. X
  60. XC1.    M.H. Halstead, _Elements of Software Science_, Elsevier
  61. X    North-Holland, Inc., New York, New York, 1977.
  62. X    [Apparently the seminal statement on software science.
  63. X    Unfortunately, I don't have the book, so I cannot provide any
  64. X    commentary on it.]
  65. X
  66. XC2.    "Commemorative Issue in Honor of Dr. Maurice H. Halstead", IEEE
  67. X    Transactions on Software Engineering, Vol. SE-5, No. 2 (March 1979)
  68. X    [A number of papers on the subject.  Some good, some not so
  69. X    great.  Also contains a good article by Parnas.]
  70. X
  71. XC3.    Linda M. Ottenstein, "Quantitative Estimates of Debugging
  72. X    Requirements",  IEEE Transactions on Software Engineering, Vol
  73. X    SE-5, No. 5 (September 1979).
  74. X    [Ok.  Nice example of use of software science model.]
  75. X
  76. XC4.    Martin Trachtenberg, "Order and Difficulty of Debugging",
  77. X    correspondence in IEEE Transactions on Software Engineering, Vol.
  78. X    SE-9, No. 6 (November 1983).
  79. X
  80. X    John E. Gaffney, "Estimating the Number of Faults in Code", 
  81. X    correspondence in IEEE Transactions on Sofware Engineering, Vol.
  82. X    SE-10, No. 4 (July 1984).
  83. X
  84. X    Martin Trachtenberg, "Validating Halstead's Theory with System 3
  85. X    Data", correspondence in IEEE Transactions on Software
  86. X    Engineering, Vol. SE-12, No. 4 (April 1986).
  87. X
  88. X    Myron Lipow, "Comments on ``Estimating the Number of Faults in
  89. X    Code'' and Two Corrections to Published Data", correspondence in 
  90. X    IEEE Transactions on Software Engineering, Vol. SE-12, No. 4
  91. X    (April 1986).
  92. X
  93. X    [Various comments on estimating bugs, debugging difficulty.]
  94. X
  95. XC5.    R.R. Oldehoeft and Leonard J. Bass, "Dynamic Software Science with
  96. X    Applications", IEEE Transactions on Software Engineering, Vol SE-5,
  97. X    No 5 (September 1979)
  98. X    [Somewhat interesting.]
  99. X
  100. XC6.    T.Y. Chen and S.C. Kwan, "An Analysis of Length Equation Using a
  101. X    Dynamic Approach", ACM SIGPLAN Notices, Vol. 21, No. 4 (April 1986)
  102. X    [Uhhh, well, to be honest, I didn't really understand what they
  103. X    were trying to do here.  I think it was really just a pointer to a
  104. X    more comprehensive article which Chen was publishing in Computer
  105. X    Journal sometime later.  Looks interesting though.]
  106. X
  107. XC7.    Ann Fitzsimmons and Tom Love,  "A Review And Evaluation of Software
  108. X    Science", ACM Computing Surveys, Vol. 10, No. 1 (March 1978).
  109. X    [Reasonable overview of early work.]
  110. X
  111. X
  112. X
  113. XModels based on cyclomatic complexity (mccabe) and other syntatic
  114. Xcomplexity measures:
  115. X
  116. XD1.    Thomas J. McCabe, "A Complexity Measure", IEEE Transactions on
  117. X    Software Engineering, Vol SE-2, No. 4 (December 1976).
  118. X    [The classic.]
  119. X
  120. XD2.    Edward T. Chen, "Program Complexity and Programmer Productivity",
  121. X    IEEE Transactions on Software Engineering, Vol. SE-4, No. 3 (May
  122. X    1978).
  123. X    [An important reworking of some of McCabe's ideas.]
  124. X
  125. XD3.    Martin R. Woodward, Michael A. Hennel and David Hedley, "A Measure
  126. X    of Control Flow Complexity", IEEE Transactions on Software
  127. X    Engineering, Vol SE-5, No. 1 (January 1979).
  128. X    [Another view of complexity]
  129. X
  130. XD4.    Sallie Henry and Dennis Kafura, "Software Structure Metrics Based
  131. X    on Information Flow", IEEE Transactions on Software Engineering,
  132. X    Vol. SE-7, No. 5 (September 1981).
  133. X    [Develop concept of complexity as function of module
  134. X    interconnection, apply this complexity measure to the Unix kernel.]
  135. X
  136. XD5.    Victor R. Basili and David H. Hutchens, "An Empirical Study of a
  137. X    Syntactic Complexity Family", IEEE Transactions on Software
  138. X    Engineering, Vol. SE-9, No. 6 (November 1983).
  139. X    [A typically well done article from Basili and company.  They find
  140. X    that (no surprise), some programmers handle complexity better than
  141. X    others.  They are not especially thrilled with any particular
  142. X    complexity measure, but find that statement counts and a hybrid
  143. X    measure which combines software volume and control organization
  144. X    seem a little better.]
  145. X
  146. XD6.    David H. Hutchens and Victor R. Basili, "System Structure Analysis:
  147. X    Clustering with Data Bindings", IEEE Transactions on Software
  148. X    Engineering, Vol. SE-11, No. 8 (August 1985).
  149. X    [They attempt to use modularization as a complexity measure.
  150. X    Conclusions are a little weak, but some interesting ideas here.]
  151. X
  152. XD7.    Kenneth Magel.  "Efficient Calculation of the Scope Program
  153. X    Complexity Metric", ACM SIGPLAN Notices, Vol. 21, No. 9 (September
  154. X    1986).
  155. X    [A complexity measure based on levels of nesting.  It has some
  156. X    intuitive appeal, but no experimental results provided.]
  157. X
  158. XD8.    Dennis Kafura and Geereddy R. Reddy, "The Use of Software
  159. X    Complexity Metrics in Software Maintenance", Vol. SE-13, No. 3
  160. X    (March 1987).
  161. X    [Using metrics to guide and control software maintenance.]
  162. X
  163. XD9.    H. Dieter Rombach, "A Controlled Experiment on the Impact of
  164. X    Software Structure on Maintainability", IEEE Transactions on
  165. X    Software Engineering, Vol. SE-13, No. 3 (March 1987).
  166. X    [Just like the title says.]
  167. X
  168. XD10.    Leslie J. Waguespack, Jr., and Sunil Badlani, "Software Complexity
  169. X    Assesment: An Introduction and Annotated Bibliography", ACM SIGSOFT
  170. X    Software Engineering Notes, Vol. 12, No. 4 (October 1987).
  171. X    [A very complete bibliography, much better than this.]
  172. X
  173. X
  174. XArticles that discuss more than one estimation method:
  175. X
  176. XE1.    Victor R. Basili, Richard W. Selby, Jr., Tsai-Yun Phillips, "Metric
  177. X    Analysis and Data Validation Across Fortran Projects", IEEE
  178. X    Transactions on Software Engineering, Vol SE-9, No. 6 (November
  179. X    1983)
  180. X    [Basili, et. al. compare software science, cyclomatic complexity
  181. X    and source lines of code measures and find them all somewhat
  182. X    lacking as effort estimators.]
  183. SHAR_EOF
  184. echo "File doc/References is complete"
  185. chmod 0644 doc/References || echo "restore of doc/References fails"
  186. echo "x - extracting doc/Results1 (Text)"
  187. sed 's/^X//' << 'SHAR_EOF' > doc/Results1
  188. XThe results of running a multi-variate linear regression on the
  189. X(somewhat massaged) ouput of the various tools for the source code
  190. Xin a Pascal compiler (30,000 - 40,000 lines of code).  "Changes"
  191. Xare the number of delta's (excluding version rollovers) in the sccs
  192. Xfiles.  I assumed that was a good estimator for errors.
  193. X
  194. Xchanges    = -0.1362 comments  +  0.00282 volume  -  0.1065 mccabe 
  195. X      + 0.3178 returns  +  3.11129
  196. X
  197. XCorrelation Matrix:
  198. Xchanges        1.0000
  199. Xcomments    0.3670    1.0000
  200. Xvolume        0.8801    0.5137     1.0000
  201. Xmccabe        0.7912    0.4550     0.8969    1.0000
  202. Xreturns        0.5319    0.2885     0.5221    0.7635    1.0000
  203. XVariable    changes    comments volume    mccabe    returns
  204. X
  205. XThe equation was significant at an R-squared of 0.8034, with the
  206. Xfollowing t test values:
  207. X
  208. Xcomments    3.5532
  209. Xvolume        13.3951
  210. Xmccabe        3.5085
  211. Xreturns        4.5460
  212. X
  213. X
  214. XSo, what does all this stuff mean?  Well, that is a good question.
  215. XNote that I am not sure what the mccabe and returns variables mean,
  216. Xexactly.  I believe that I summed the mccabe and returns values for
  217. Xeach file, however I am not positive about that.
  218. X
  219. XObviously, the most important predictor of the number of changes in a
  220. Xmodule is its halstead volume.  This is very intuitive.  Comments
  221. Xapparently help cut down on changes.  This is also intuitive.  Code
  222. Xcomplexity (mccabe) also seems to cut down on changes.  This is not at all
  223. Xintuitive.  In fact, I don't understand it at all.  My guess is that there
  224. Xwere a few routines with much higher complexity than the others which were
  225. Xnot changed much, while a number of ``simple'' routines had many changes.
  226. X
  227. XIn other words, I think it is a statistical anomaly.  Clearly, additional
  228. Xdata is needed.  Finally, the number of returns contributes pretty
  229. SHAR_EOF
  230. echo "End of part 2"
  231. echo "File doc/Results1 is continued in part 3"
  232. echo "3" > s2_seq_.tmp
  233. exit 0
  234.  
  235.  
  236.