- The Need for Design
- User-Programmer Agreement
- Steps to Design
- Summary
- Q and A
- Workshop
See what productive computer programmers go through before writing programs.
Save 35% off the list price* of the related book or multi-format eBook (EPUB + MOBI + PDF) with discount code ARTICLE.
* See informit.com/terms
Programmers learn to develop patience early in their programming careers. They learn that proper design is critical to a successful program. Perhaps you have heard the term systems analysis and design. This is the name given to the practice of analyzing a problem and then designing a program from that analysis. Complete books and college courses have been dedicated to systems analysis and design. Of course, you want to get back to hands-on programming—and you’ll be doing that very soon. However, to be productive at hands-on programming, you need to understand the importance of design. This chapter covers program design highlights, letting you see what productive computer programmers go through before writing programs.
The highlights of this hour include the following:
Understanding the importance of program design
Mastering the three steps required to write programs
Using output definition
Comparing top-down and bottom-up designs
Seeing how flowcharts and pseudocode are making room for RAD
Preparing for the final step in the programming process
The Need for Design
A builder who begins to build a house doesn’t pick up a hammer and begin on the kitchen’s frame. A designer must design the new house before anything can begin to be built. As you will soon see, a program should also be designed before it is written.
A builder must first find out what the purchasers of the house want. Nothing can be built unless the builder has an end result in mind. Therefore, the buyers of the house must meet with an architect. They tell the architect what they want the house to look like. The architect helps the buyers decide by telling them what is possible and what isn’t. During this initial stage, the price is always a factor that requires the designers and the purchasers to reach compromise agreements.
After the architect completes the plans for the house, the builder must plan the resources needed to build the house. Only after the design of the house is finished, the permits are filed, the money is in place, the materials are purchased, and the laborers are hired can any physical building begin. As a matter of fact, the more effort the builder puts into these preliminary requirements, the faster the house can actually be built.
The problem with building a house before it is properly designed is that the eventual owners may want changes made after it is too late to change them. It is very difficult to add a bathroom in the middle of two bedrooms after the house is completed. The goal is to get the owners to agree with the builder on the design of the house prior to construction. When the specifications are agreed on by all the parties involved, there is little room for disagreement later. The clearer the initial plans are, the fewer problems down the road because all parties agreed on the same house plans.
Sure, this is not a book on house construction, but this example provides a good analogy for writing programs of any great length. You should not go to the keyboard and start typing instructions into the editor before designing the program any more than a builder should pick up a hammer before the house plans are finalized.
Thanks to computer technology, a computer program is easier to modify than a house. If you leave out a routine that a user wanted, you can add it later more easily than a builder can add a room to a finished house. Nevertheless, adding something to a program is never as easy as designing the program correctly the first time.