comp.lang.ada
 help / color / mirror / Atom feed
From: sgi!fido.asd.sgi.com!dblues!jackr@ames.arc.nasa.gov  (John Jack Repenning
Subject: Re: McCabe package for Ada?
Date: 7 Jun 93 18:43:27 GMT	[thread overview]
Message-ID: <1v028f$3g@fido.asd.sgi.com> (raw)

In article <1993Jun4.154720.23587@saifr00.cfsat.honeywell.com>, shanks@saifr00.
cfsat.honeywell.com writes:

> But it seems you're concluding that the complexity metric would
> (could?) be correlated with the number of statements, and I
> haven't had that experience.

Over large amounts of code, the correlation has been measured, and has
been found to be high.  I don't believe this invalidates the ideas
here.  Rather, it demonstrates that people tend to write code of a
particular complexity density - why should that be surprising?  The
important question is, when you use the tools to learn a new style, do
you produce code which is "better" in some way (such as having fewer
defects, being easier to maintain, or being easier to verify)?  I
haven't seen any published research on this, by my own experience say
the tools can indeed help many programmers develop better judgement
and style.

> I have a problem with high McCabe values as a necessary indicator of
> procedure complexity/lack of maitainability.

You should.  No one should be telling you that this is a necessary (or
sufficient) indicator.  The claim is that it's a common indicator,
that it ought to raise your suspicions: it's an aid to your good
judgement, not a quick-fix.

> (If XXXXXX and then YYYYY then...)
> Based on the nature of this McCabe metric, the count of IFs and
> ELSEIFs gets quite high very quickly, yet the code is quite
> simple to follow.

There really are cases where a string of conditionals are completely
independent, and don't add to any real complexity; there really are
cases where they interact in ways that make the superficially-simple
code a disaster area.  At the very least, this is an area where you
should apply your judgement (as you have), and might well be justified
in ignoring the numbers.

"Essential" and "Design" complexity numbers attempt to count things
that are more helpful in these situations, but you still have to treat
them as warning flags, not gospel.

> Should I care if the McCabe is high but the code is obviously not
> complex and after exhaustive testing has no defects?

Absolutely not.  Just be convinced in your own mind as to why the
numbers raised a false flag, just in case there really is cause for
concern.


Jack Repenning		      M/S 1-875	     jackr@wpd.sgi.com
Silicon Graphics, Inc.	       x3-3027      Off:(415) 390-3027
Visual Magic Division			    Fax:(415) 390-6056

             reply	other threads:[~1993-06-07 18:43 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1993-06-07 18:43 sgi!fido.asd.sgi.com!dblues!jackr [this message]
  -- strict thread matches above, loose matches on Subject: below --
1993-06-05 19:29 McCabe package for Ada? David Boyd
1993-06-04 23:53 Kevin Sullivan
1993-06-04 22:07 dog.ee.lbl.gov!network.ucsd.edu!swrinde!cs.utexas.edu!csc.ti.com!tilde.cs
1993-06-04 21:44 Ala n R. Weiss
1993-06-04 21:25 Dani Zweig
1993-06-04 15:47 agate!usenet.ins.cwru.edu!magnus.acs.ohio-state.edu!math.ohio-state.edu!w
1993-06-04  6:24 Dani Zweig
1993-06-03 19:47 dog.ee.lbl.gov!network.ucsd.edu!sdd.hp.com!portal!lisburn!jaime
1993-05-27 17:55 Laurence VanDolsen
1993-05-26 22:42 David Boyd
1993-05-26 20:44 Wes Groleau X7574
1993-05-25 10:52 pipex!uknet!glasgow!unix.brighton.ac.uk!wjmc
1993-05-24 19:36 Alex Blakemore
1993-05-24  0:33 mole-end!mat
1993-05-19 23:04 David Boyd
1993-05-19 22:09 David Boyd
1993-05-19 21:18 agate!howland.reston.ans.net!darwin.sura.net!haven.umd.edu!news.umbc.edu!
1993-05-19 20:03 Wes Groleau X7574
1993-05-19 15:20 cis.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!howland.
1993-05-19  0:44 sgi!fido.asd.sgi.com!dblues!jackr
1993-05-18 23:42 David Boyd
1993-05-18 21:26 dog.ee.lbl.gov!overload.lbl.gov!agate!howland.reston.ans.net!ux1.cso.uiuc
1993-05-18 19:24 dog.ee.lbl.gov!network.ucsd.edu!usc!howland.reston.ans.net!europa.eng.gte
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox