(SDLC) Understanding the Software Development Life Cycle Lesson
Understanding the Software Development Life Cycle
The software development life cycle is a conceptual model that describes the stages involved in software development. It is a structured, systematic way to ensure that the solution fully meets the needs of the end user. It is an important part of software development in the real world.
Even the simplest software development projects can be broken down into a number of phases. The number and names of these phases may differ from textbook to textbook, but most descriptions of the software development life cycle share the same common elements. The actual phases depend upon the model chosen to develop the software.
Basic Software Development Life Cycle Phases
Choose each of the items to learn more about the Software Development Life Cycle.
1. Requirements/Analysis/Planning Phase
The purpose of this phase is to:
- Thoroughly understand the problem
- Understand the problem requirements
- Divide problem into sub-problems using stepwise refinement or a top down approach
- Interview the client or use questionnaires to determine the needs
- Review any current systems in use
- Review the documentation
- Create the Software Specification that outlines the scope of the software, the boundaries of the software, the budget, timeframe and test data.
Constraints that might stand in the way of developing the product.
- timeframe for delivery of the final product
- technical limitations (hardware/software issues)
- budgetary constraints (can the client afford to pay for the product’s development)
2. Design Phase
A document is created called the software requirements specifications document. It establishes the basis for an agreement between the developer and client on what the software is expected to do as well as what it is not expected to do. It established a rigorous assessment of requirements before the design can begin. It aso provides a basis for estimating product costs, risks, and schedules. Software requirements specification prevents software projects from failure
Next, a blueprint or prototype is developed that meets the requirements from the specifications document. The problem is divided into smaller subproblems through stepwise refinement and algorithms are developed to solve the problem.
3. Development/Implementation Phase
This the phase that actually creates the software as specified by the software specifications document. Code can generated using different languages. Work is divided in modules and the actual coding is started. This is usually the longest phase of the software development life cycle.
4. Testing and Deployment Phase
The testing stage verifies that the software meets the requirements.
There are normally four levels of software testing.
- Unit testing - Unit testing takes the smallest piece of testable software in the application, isolates it from the remainder of the code, and determine whether it behaves exactly as you expect.
- Integration testing - Integration testing takes those individual pieces and test them as a group.
- System testing - The complete application software is checked for overall compliance of the product with the functional requirements using a black box rather than a real interface.
- Acceptance testing - Acceptance testing checks the system behavior using the real data.
Once the major problems with the application have been ironed out, the software is ready to be deployed. Depending on the complexity of the application, it may be unrealistic to expect all of the bugs to be eliminated. These problems are addressed during the maintenance phase.
5. Evaluate/Maintenance Phase
This phase maintains the software throughout its lifetime. Changes to the software may be necessary for a number of reasons:
- The client may not have tested the software thoroughly enough.
- The client may think of ways to extend the software in ways that were unforeseen before.
- Software bugs are almost inevitable. If enough bugs accumulate, releasing an improved version of the software may be in order.
- The business rules that were in place at design time may change, necessitating changes in the software.
[CC BY 4.0] UNLESS OTHERWISE NOTED | IMAGES: LICENSED AND USED ACCORDING TO TERMS OF SUBSCRIPTION