|
|
Introduction
In
general, the software lifecycle consist of:
- Definition (what)
- Development (how)
- Maintenance (change)
There are different process models concentrate
on different aspects of the lifecycle. Some commonly known models
are:
- Waterfall model - maintainability
- Prototyping Process Model - clarifying requirements
- Spiral Process Model - identifying risk
As you can see from these examples, the "Standard" Development
Cycle can generally be summarized as:
Definition > Requirements >
Design > Coding > Testing
Comparing to the NPD process of the 'manufactured products:
Product Planning > Need Assessments > Concept
Generation >
Concept Selection > Concept Testing >
Product architecture > Prototyping
The two process share many similarities, especially in the initial
stages before production. But the nature of software has made it interestingly
different from other products. The most fundamental difference is
that software is not a physical product. In the development process,
it is relatively easier to go back and make changes. (It is obvious
that the implementation stage is usually more iterative than the production
stage of a physical product). But it doesn't imply that making changes
is not costly in software development. The following chart shows the
relative costs of fixing errors in different stages of the development
cycle:
It shows that the further down the development cycle, the more expensive
it is to make changes/fix errors, which imply to us why the planning
stage is as important to software development as to other products.
As a matter of fact, one of the major reasons of the many software
engineering project failures is due to poor planning/design, not implementation.
An example would be the series of 'the Therac-25 accidents.' Of course
there are various reason resulted in the failure of the machine, which
ended up resulting in the death of the patients. But one major reason
is that people overlooked the significance of software engineering,
and thus the system was developed without a careful planning, and
a well-defined development models. It overdosed 6 people and is believed
to be "the most serious computer-related accidents to date (at
least nonmilitary and admitted) and have even drawn the attention
of the popular press. (Stories about the Therac-25 have appeared in
trade journals, newspapers, People Magazine, and on television's 20/20
and McNeil/ Lehrer News Hour.)"
This example give a good illustration of how serious the outcome can
be resulted from poor project planning in a software development.
Therefore, while providing an overview of the software development
process, this website tries to focus on providing more information
of the initial stages of software development process (i.e. before
entering the implementation stage), and see how the NPD process can
be mapped to the software development in particular.
At the initial stage, this site would mainly provide pointers to various
resources to the related issues, and with brief description of what
they are all about. Hopefully, in the next stage, I would be to re-organize
the information available and present it in a useful way for people
who are interested in software development process. If you have any
comments, suggestions, please feel free to contact
me!
Hope this site will be helpful to you!
last updated Dec 3, 2002
|
|