There is some code coverage instrumentation in the "errortrace" library, and I believe the DrRacket has some kind of coverage feature.

The other metrics you mention are very easy to get. How useful they are is a different question, and depends on why you're asking.

Aside: code metrics are of course useful for convincing managers of things:

WRONG: "We've been making steady progress on functionality and QA, and the schedule feels tighter than last month, but people have been staying late, we're still on track for our weekly milestones, and morale is still pretty good. We just don't have wiggle room to absorb any more surprises without slipping."

RIGHT: Ensure that the line count increases monotonically, whether or not that's good practice. "We have been producing average 9,876 new lines of code a day, and so are on track to our milestone of 300,000 new lines by the end of Q2."

WRONG: "We think it would take our best available developer more than a month to develop that functionality, but Acme has a component that does exactly what we need and that we think will be very quick to integrate."

RIGHT: "Acme answered our inquiry that their off-the-shelf component has 40,000 SLOC of code, so if we multiply that by our cost metric of 12.3 cents per SLOC, the Acme $3,000 royalty-free license gives us a cost savings of $1,920."

WRONG: "Everyone on the team is saying that the bit-rotted old library is slowing us down, and we think that Jim spending a couple days refactoring it in a few specific ways that he identified would be an immediate big win."

RIGHT: "Thanks to the software metrics tiger team that I led, we've learned that three of the key functions in the old library have McCabe cyclomatic complexity over 100, which, gentlemen, we all know is bad. I propose we task some resources to cut that in half, which we all know is better. In fact, I have a new initiative to boost productivity by simplifying our code and bringing this number down to 10. Heck, why be followers when we can be leaders: we're going to five blades."

Neil V.

____________________
 Racket Users list:
 http://lists.racket-lang.org/users

Reply via email to