|
SDLC Phases
|
Phase Description
|
Questions/Engineering Principles
|
Typical Documents or Artifacts used in this phase
|
|
Requirements/
Analysis
|
The objective of this phase is to determine the user expectations for a new or modified system. At the end of this phase all the functions to be performed by the system will be known although it might be clear how the system will perform them.
During requirements analysis there is frequent communication with the users of the system to determine their expectations and requirements all which are documented to avoid feature creep.
|
· How should the program calculate the bills?
· What information should be included in the billing statement?
· At what point/time should the bills be calculated?
|
Requirements Document
Software Requirements Specifications (SRS)
Use Cases
|
|
Design
|
It is in this phase that the elements that will make up the new system are designed.
These elements include: the system architecture, modules and components as well the different interfaces of the system.
The data that goes into the system and the database design must also be decided in this phase. The design of the new system follows the user requirements set in the requirement analysis phase.
During this phase the programming language to be used to program the system is also decided.
|
1. Evaluate design alternatives
2. Use an appropriate process model
3. Use different languages for different phases
|
Software Development Plan (SDP)
Data flow diagram (DFD) or entity-relationship diagram (ERD)
Design Specification
Technical Specification
User Interface Prototype
|
|
Implementation
|
In the implementation phase the program specifications are turned into source code through coding by programmers.
Other experts such as network engineers and database developers may be brought in to develop the system network and database respectively.
A flow chart is incorporated in this phase to ensure that everything is node well. The programming of the system must be done in modules in order to speed the development and make it easy to maintain as well as to make changes.
|
1. Put technique before tools
2. Inspect code
3. People are the key to success
|
Implementation Strategy
Programming Conventions and Libraries Specification
Implementation Schedule
|
|
Testing
|
This is the process which checks the functionality and the correctness of the developed system to find whether it meets the requirements set. This process is time consuming and can sometimes be expensive and requires good planning in order to succeed.
The tests may be repeated as many times as possible with different data to check for errors and bugs. If the system passes the tests set and the end user finds it acceptable, it is good and ready to go to production. Testing also involves verification and validation to ensure that every process in the system completes successfully.
|
1. Base the process on an architecture-first approach.
2. Establish an iterative process that addresses risks early in the process.
3. Establish a configurable process, because no one process is suitable for all software development.
|
Testing Plan
|
|
Deploy/Maintenance
|
This phase involves installation of the developed system and putting it production. In the process of deploying the new system data and components are moved from old system to the newly developed system.
When the system is in production it is maintained to eliminate errors that may occur during its working life.
|
1. Establish a change-management environment.
2. Plan to have incremental releases, each composed of a group of usage scenarios, with evolving levels of detail.
3. Use model-based and machine-processable notation to capture design
|
Installation Guide
Training Manuals
|