Usenet.com

www.Usenet.com

Group Index

Comp Thread Archive from Usenet.com

<-- __Chronological__ --> <-- __Thread__ -->

Re: Software Engineering: Art or Science?



On Tue, 2 Dec 2003 23:23:36 +0100, "news.ip-plus.ch" <[EMAIL PROTECTED]>
wrote:

>"Ken Lee" <[EMAIL PROTECTED]> schrieb im Newsbeitrag
>news:[EMAIL PROTECTED]
>> On Thu, 27 Nov 2003 22:23:28 +0000 (UTC), [EMAIL PROTECTED]
>> ("Paul E. Bennett") wrote:
>>
>> >In article <[EMAIL PROTECTED]>
>> >           [EMAIL PROTECTED] "John Larkin"
>writes:
>> >
>> >> Except for hard DSP applications, or realtime closed-loop control,
>> >> software design seldom has a mathematical (or even theoretical) basis,
>> >> and no predictive theory is used in software system design. People
>> >> mostly just write code based on experience, and then try it out. This
>> >> certainly isn't science, and barely qualifies as engineering.
>> >
>> >I don't know where you have experienced software development but it
>> >certainly is not that way with me. I do have a theory, ahead of writing
>> >code, of what I want achieved by the code, how it will sit on the
>> >hardware and also a risk and reliability assessment down to the module
>> >level. I often write the definitive description of what is required
>> >of many of the sub-routines (certainly the upper abstraction layers
>> >and the hardware interface layers). From this attention to detail I
>> >can certify that the code does exactly as required as specified by
>> >that definitive description (glossary text).
>> >
>> >> It would only be art if the programs were beautiful, but they're
>> >> usually ugly.
>> >
>> >If the code starts looking ugly you have taken a wrong direction
>> >somewhere and should go back and re-think. Robust code is most often
>> >simply elegant and beautiful to behold. I think that applies in most
>> >languages and is not just a Forth thing.
>>
>> If you're like me & are a druid, tone-deaf and totally colour
>> un-coordinated, then I'd start to rely on software metric tools such
>> as McCabe's Cyclomatic Complexity index. Also it's sometimes difficult
>> (and possibly un-diplomatic) to criticize a team member's "beautiful"
>> code --- it's more palatable to let a utility be the "art" critic.
>> Best applied to team members who have "acceptance" issues and a large
>> collection of handguns & "home protection" appliances ;-)
>
>One of the easiest metric is the number of warnings when using -wpedantic
>with gcc. I often wonder how people can write code where a warning appears
>on every second line or so...

As a metric measure, I guess one could monitor the number of C
language non-conformances, say per week (or month). Most compilers,
like GCC do a moderate job of this at best. One should use a proper
Lint tool to get a more comprehensive coverage. Where I work we don't
track Lint output, however we do assess the Lint output at code
inspections. On a monthly basis, we do look at the McCabe Index and
the delta size of all components. The defects database is reviewed by
the team leader basically everyday and usually trended every month.

>We use quite a lot of 3rd party software, that falls into that category. At
>another company I had to fix a project. All compiler warnings were
>switched of because they wouldn't find the errors in the output anymore !
>I think you get the idea about the quality of that code.
>
>Cheers
>- Rene


+====================================+
I hate junk email. Please direct any 
genuine email to: kenlee at hotpop.com



<-- __Chronological__ --> <-- __Thread__ -->


Usenet.com



Please check out one of the premium Usenet Newsgroup Service Providers below for access to Usenet.