Reference
Precautions about the waterfall model
Since it is impossible to advance different processes in parallel, it is necessary
to shorten the time period of the processes themselves by working on the
components of a single process that
can be performed in parallel. However,
in such cases, people and time are required to coordinate the parallel work,
and costs tend to be higher than when
parallel work is not carried out.
Reference
2
Software development models
The typical software development models are summarized below.
Model
Description
Characteristics
Waterfall model
A development model that advances each process in sequence without backtracking,
similar to the flow of a waterfall. Also, dividing the system
into a number of subsystems
and repeatedly carrying out requirements analysis, design,
development, testing, and implementation is called an “incremental model.”
This is the most common development model. Costs can
be estimated relatively easily,
and this model is often used in
large scale developments.
However, the amount of work
that must be repeated if the
system specifications change
is extremely large.
Spiral model
A development model that divides the system into a number
of subsystems and repeats the
cycle from “requirements analysis” to “operation” for each
subsystem. It develops the
system by allowing it to evolve
as it grows.
It can shorten the period until
the first subsystem is operated.
Each subsystem is verified by
the user (system user department), making it possible to incorporate their opinions into
the next cycle.
Prototyping
model
A development model that creates prototypes from an early
stage of system development
and obtains confirmation from
the user (system user department) as development advances.
It can identify any potential
misunderstandings about the
system between the user (system user department) and the
developer at an early stage. It
also has the effect of raising
the awareness of the user
(system user department) regarding the system. However,
if prototypes are created repeatedly, cost management
can become an issue.
RAD
“RAD” is a type of development that divides the system to be developed into a
number of subsystems, and proceeds
to develop them starting from the items
with the highest priority. The goal is to
develop the system in a short time and
at low cost using sophisticated software
development tools. RAD is often used
in a prototyping model.
Abbreviation for “Rapid Application Development.”
Reference
Reverse engineering
“Reverse engineering” is a technique
for creating new software by breaking
down and analyzing existing software. It
may include studying the relationship
between modules and analyzing the
system’s basic specifications. It is often
carried out to maintain compatibility with
the existing software.
Waterfall model
Requirements definition
Systems architecture design
Software architecture design
Software detailed design
Development (Programming)
Testing
Operation and maintenance
127