From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,9a0ff0bffdf63657 X-Google-Attributes: gidfac41,public X-Google-Thread: 1108a1,9a0ff0bffdf63657 X-Google-Attributes: gid1108a1,public X-Google-Thread: 103376,4b06f8f15f01a568 X-Google-Attributes: gid103376,public X-Google-Thread: f43e6,9a0ff0bffdf63657 X-Google-Attributes: gidf43e6,public From: "John G. Volan" Subject: Re: Module size (was Re: Software landmines) Date: 1998/09/04 Message-ID: <35F02981.B13C875@ac3i.dseg.ti.com>#1/1 X-Deja-AN: 387912740 Content-Transfer-Encoding: 7bit References: <6rfra4$rul$1@nnrp1.dejanews.com> <35DBDD24.D003404D@calfp.co.uk> <6sbuod$fra$1@hirame.wwa.com> <904556531.666222@miso.it.uq.edu.au> <6sgror$je8$3@news.indigo.ie> <6sh3qn$9p2$1@hirame.wwa.com> <6simjo$jnh$1@hirame.wwa.com> <6sjk3p$4tc$1@hirame.wwa.com> <6skgn4$3gq$1@hirame.wwa.com> Content-Type: text/plain; charset=us-ascii Organization: Raytheon Systems Company, Advanced C3I Systems Mime-Version: 1.0 Reply-To: johnvolan@sprintmail.com Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada Date: 1998-09-04T00:00:00+00:00 List-Id: Jeffrey C. Dege wrote: > > I've been trying to run various size metrics against a fairly large > (130kloc) C++ project we finished a year or so ago, with an eye to > improving our estimating techniques. Some of the results have been > hard to explain to my manager. > > He used to program for a living, but he's never done real work in an OO > language. When I tell him the project has 510 classes, with 2871 methods, > he nods his head wisely. But when I tell him that 965 of those methods > contain one line of code each, he starts to frown. He asks me if maybe > we're taking modularization a bit too far. When I tell him that we have > 63 methods that contain zero lines of code, he wants to know why we > bothered to write them in the first place, if they don't do anything. > > I can't think of a short answer. For short methods, here's an analogy you can use: Does your stock broker make a lot of one-minute long-distance calls to New York throughout the day? Would you rather he waited till the end of the day and made one very long call, just to get the 20-minute discount? I don't think so. For empty methods, here's another analogy: The score of Beethoven's 9th symphony calls for whole sections of the orchestra, and even the four singers, to be absolutely silent in certain spots, while other sections are playing. But, I dunno, I don't think that's really getting our money's worth out of them, do you? Why don't they all play at once continuously full blast for the whole four movements? A much-bandied-about statistic pundits like to quote is that human beings only use 10% of their brain power at any given time. Gosh, what we could do if we could only get at the other 90%! But what this statistic _really_ means is that on average only 10% of the _nerve cells_ in the human brain are _firing_ at any given time! We have a term for a situation when brain activity reaches significantly more than 10%: an epileptic fit. -- indexing description: "Signatures for John Volan" home: "johnvolan@sprintmail.com"; work: "johnv@ac3i.dseg.ti.com" self_plug: "Ex Ada guru", "Java 1.1 Certified", "Eiffelist wannabe" two_cents: "Java would be even cooler with Eiffel's generics, % %assertions/DBC, true MI, feature adaptation, % %selective export, uniform access, etc., etc..." class JOHN_VOLAN_SIGNATURE inherit SIGNATURE invariant disclaimer: not (opinion implies employer.opinion) end -- class JOHN_VOLAN_SIGNATURE