Linked by Yamin on Wed 9th Sep 2009 16:17 UTC
General Development I've been developing software for quite a few years. One of the issues that seems to come up again and again in my work is this concept of design and implementation. I recall it being a significant part of my education at the University of Waterloo's Computer Engineering program as well. The message was always the same. Never write code first. First you must design software by writing a design document, flow charts, pseudo-code, timing charts... then it's merely a trivial matter of implementing it. Make note of the attitude here given towards implementing. The real work is in the design, and it's just a trivial matter of implementing it. It sounds so simple doesn't it? Now, how often does this work out in real life?
Thread beginning with comment 383072
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: Must be nice...
by samad on Wed 9th Sep 2009 18:04 UTC in reply to "Must be nice..."
Member since:

I don't deny the existence of bugs in compilers, but they are increasingly rare for the following reasons:

1. It's much easier to test compilers than graphical applications. One feeds a predefined set of code to the compiler and ensures that it produces code functioning properly. It's difficult to test graphical applications, since they don't follow the simple input-output design the compiler neatly follows.

2. A compiler like GCC has been gradually refined over decades. Software that's been slowly and continuously developed is quite stable.

3. It's easy to detect a compiler error when the compiler compiles its own source code. Comparing output of the bootstrapped compiler to the original is a very powerful way of debugging it.

Reply Parent Score: 1

RE[2]: Must be nice...
by cjcoats on Wed 9th Sep 2009 20:16 in reply to "RE: Must be nice..."
cjcoats Member since:

It has been said,

While testing can establish with certainty that
a piece of software has bugs, no amount of testing
can ensure that it has no bugs.

This statement is slightly too strong; there are a few
cases where there is a finite and small number of inputs
and one can "test" the program by running it on all
possible cases. For an example, consider a tic-tac-toe

Most real-world programs do not deal with such a simple

Reply Parent Score: 1