Software Development Process
 
::Home
::Software Process Model
::Current Standards for SW Dev
::User Need Assessments
::Concept Generation/Selection
::Specification
::Prototyping
::Maintenance
::Management Issues
 
::Game Development
 
::Paper Archive
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:
  1. Waterfall model - maintainability
  2. Prototyping Process Model - clarifying requirements
  3. 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