Page 58 -
P. 58
CHAPTER 2 THE PROCESS 29
FIGURE 2.4
The linear
sequential
model System/information
engineering
Analysis Design Code Test
design and analysis. Information engineering encompasses requirements gathering
at the strategic business level and at the business area level.
Software requirements analysis. The requirements gathering process is intensi-
fied and focused specifically on software. To understand the nature of the program(s)
to be built, the software engineer ("analyst") must understand the information domain
(described in Chapter 11) for the software, as well as required function, behavior, per-
formance, and interface. Requirements for both the system and the software are doc-
umented and reviewed with the customer.
Design. Software design is actually a multistep process that focuses on four distinct
attributes of a program: data structure, software architecture, interface representa-
tions, and procedural (algorithmic) detail. The design process translates requirements
into a representation of the software that can be assessed for quality before coding
begins. Like requirements, the design is documented and becomes part of the soft-
Although the linear
model is often derided ware configuration.
as “old fashioned,” it Code generation. The design must be translated into a machine-readable form.
remains a reasonable The code generation step performs this task. If design is performed in a detailed man-
approach when ner, code generation can be accomplished mechanistically.
requirements are well
understood. Testing. Once code has been generated, program testing begins. The testing process
focuses on the logical internals of the software, ensuring that all statements have
been tested, and on the functional externals; that is, conducting tests to uncover
errors and ensure that defined input will produce actual results that agree with required
results.
Support. Software will undoubtedly undergo change after it is delivered to the cus-
tomer (a possible exception is embedded software). Change will occur because errors
have been encountered, because the software must be adapted to accommodate
changes in its external environment (e.g., a change required because of a new oper-
ating system or peripheral device), or because the customer requires functional or
performance enhancements. Software support/maintenance reapplies each of the
preceding phases to an existing program rather than a new one.