Project Life Cycle


The following diagram shows the steps in a project life cycle.

Market/Customer Analysis

The software life cycle begins with an analysis of a potential need by a customer. This need is expressed in the project concept document. This document is then presented to the software development group to initiate a development project.

Project Initiation

A project is initiated by assigning the initial team members and then presenting the project concept document to the team. The team manager can then determine the appropriate personnel needed and begin the project.

Analysis and Scheduling

Once the complete team is formed, it begins the process of analysis. The concept document is studied and the software requirements are determined and documented. When needed, an appropriate software architecture document is also produced. In order to better understand user requirements, a UI prototype may also be produced. In addition, the initial project schedule is developed and a project plan document produced.

Design - Implement - Verify

Once the requirements are defined, the team begins a cycle of design, implement and verify. This cycle includes not only code development but also all other procedures needed to produce the final product. The design step produces a design document. Implementation of the design results in the actual system code, the build and install procedure, test plans and data, and user documentation. Verification, or testing, produces feedback in the form of error reports. These will require changes to the implementation to correct the error. If during correction it is determined that the current design will not produce a correct implementation, the developer must back up to the design step and make corrections. During this development cycle, new or changed requirements may be determined. These changes cause the team to repeat the analyisys step and make any changes to the requirements as well as update the project plan accordingly. Testing involves both in-house testing and customer testing (aka �beta test�). These two separate tests are not shown on the life cycle as separate tests since they are functionally the same.

Release

When the implementation passes all tests and meets all the requirements, the software is released. The release process involves creating a final, stable build, master distribution disks, and escrow of the source code. For an application project, this will also include installation at the customer site, final acceptance by the customer, and training of the users. It is essential that the final version of the code and documentation be set out as separate for future maintenance and not be lost during future development.