Software Design
John,
I have been following your conversation with Steve and thought I would
throw in a few cents. I am a developer for Martin Marietta. I have
been writing software for 5 years: 4 years of PL/1, FORTRAN, COBOL
on a mainframe and 1 year developing in C on Sun platform. I have
seen many styles of implementation; some good, some bad. One thing
that has, IMO, hindered our development efforts are requirements to:
1) Name all software components (.c, .h, functions, variables, etc)
using a given standard.
2) Provide detailed prologues for every function (Roughly, a page or
more in length)
3) Deleting debug statements from software before building to controlled
library
4) Style guides for code development: e.g. placement of braces
if (TRUE) {
}
v.s.
if (TRUE)
{
}
Now, the question I ask myself is, what value is added to the software
by requiring these things?
1) Some of our variable names, and function names are 32 or more chars.
They become unreadable for the most part, and hard to maintain. As
long as names are logical, this reqt. doesnt add anything. (Use of
emacs and tags makes following software a breeze, anyway)
2) Multipage prologues per function are a huge overhead. Good comments
are all that are needed.
3) No sense at all. I must admit, my latest project does not require
this (Use of #if's, asserts is a must!).
4) Some value here. I would prefer programmers to write all statements
using {}'s so that a future programmer can add statements within
{}'s. e.g. if (TRUE) { done = TRUE;} v.s. if (TRUE) done = TRUE;
That would be the extent of my reqt however.
Anyway, I hope to make some changes on my project to maximize
maintainability while minimizing bureaucracy.
Take care!
Dan Barber
Software Design Engineer
barber@mdso.vf.ge.com
My opinions are my own, and not representative of Martin Marietta Corp.