Java Reference
In-Depth Information
7.1 Software Development Activities
Creating software involves much more than just writing code. As the problems
you tackle get bigger, and the solutions include more classes, it becomes crucial to
carefully think through the design of the software. Any proper software develop-
ment effort consists of four basic development activities :
establishing the requirements
creating a design
implementing the design
testing
It would be nice if these activities, in this order, defined a step-by-step approach
for developing software. However, although they may seem to be sequential, they
are almost never completely linear in reality. They overlap and interact. Let's
discuss each development activity briefly.
Software requirements specify what a program must accomplish. They indi-
cate the tasks that a program should perform, not how it performs them. Often
requirements are expressed in a document called a functional specification.
We discussed in Chapter 1 the basic premise that programming is really about
problem solving; we create a program to solve a particular problem. Requirements
are the clear expression of that problem. Until we truly know what problem we
are trying to solve, we can't actually solve it.
The person or group who wants a software product developed (the client ) will
often provide an initial set of requirements. However, these initial requirements
are often incomplete, ambiguous, and perhaps even contradictory. The software
developer must work with the client to refine the requirements until all key deci-
sions about what the system will do have been addressed.
Requirements often address user interface issues such as output format, screen
layouts, and graphical interface components. Essentially, the requirements establish
the characteristics that make the program useful for the end user. They may also
apply constraints to your program, such as how fast a task must be performed.
A software design indicates how a program will accomplish its requirements.
The design specifies the classes and objects needed in a program and defines how
they interact. It also specifies the relationships among the classes. Low-level design
issues deal with how individual methods accomplish their tasks.
A civil engineer would never consider building a bridge without designing it
first. The design of software is no less essential. Many problems that occur in soft-
ware are directly attributable to a lack of good design effort. It has been shown
time and again that the effort spent on the design of a program is well worth it,
saving both time and money in the long run.
 
Search WWH ::




Custom Search