Software Development Lifecycle
Software Development Lifecycle
Lesson Objectives
- Software Development lifecycle
- Phases of SDLC
- Waterfall lifecycle model
- Spiral model
- Agile model: Extreme programming & Rapid Action Development
Introduction

- New software applications are developed for various purposes, such as online ticket booking systems, payroll systems, online shops, simulating weather forecasts and many more.
- In this topic, you will learn about various stages of a software development process.
- A concept is used to describe the list of tasks completed in each phase of the software development process.
- This flowchart represents a general lifecycle.
- You will also learn about advanced lifecycle methodologies.
Step 1: Analysis
- Define the problem.
- Specification of the software required to solve the problem is listed.
- Data collection for understanding the user’s requirements: amount, frequency & collection method is followed.
- The procedure is followed in designing the system.
- Problems with the existing system & future developments.
Step 2: Design
- Separating software functionality into modules.
- Algorithms, input and output for each module.
- Interface between modules.
- Data structure used, or do we need a database to store data?
- Hardware and user interface.Security: To prevent hacking and data corruption.
Step 3: Implementation

- Implementation is divided into the following.
Programming
- The modules are now broken into smaller modules until each module performs a task.
- The code for the modules is developed.
- Before letting the user access the software, the design team makes sure that the software is error-free.
Testing
- White box testing or structural testing
- Black box testing or Functional testing
- Unit testing & Integration testing
- Alpha testing
- Beta testing
- Acceptance testing
Whitebox Testing (or Structural Testing)
- All modules are checked during the development process.
- Based on the structure of the program along with code logic.
- It is ensured that each path in the program is checked at least once by using appropriate test data.
- Missing modules cannot be identified.
Blackbox Testing (or Functional Testing)
- Testing the final program
- Code-independent testing
- It is made sure that individual modules are assembled correctly.
- Functioning of the final program is checked by looking at the output values produced for all the possible ranges of input values.
- All program functions are also checked using test data.
Unit Testing & Integration Testing
- Unit testing: Testing carried out on just one module or a component of the whole system is called unit testing. It includes both white box testing and black box testing.
- Integration testing: Once all the units have been tested, it is checked whether the individual units work together as they are intended to.
System Testing
- System testing is the process of testing the complete system instead of testing the individual units to make sure that the system conforms to user requirements.
Alpha testing
Beta testing
Alpha Testing
- The testing team in the organisation tests the program with unexpected inputs, and in case of unexpected or faulty results, the programmer is notified.
- This testing ensures that the requirements defined during the initial phase are satisfied.
- Modifications are made after alpha testing. The program at this stage is called the beta version.
Beta Testing
- The beta version of a program is distributed to its selected number of users.
- Now, the program works with real-time data.
- Any feedback from these users and its modification is called beta testing.
- After implementing the modifications, further beta testing is done to ensure the quality of the product.
- After incorporating solutions for all the errors traced, the software is installed on the user’s computer.
- More testing is done at this stage, and new weaknesses may come to light.
- Solutions to these weaknesses are also incorporated into the software.
Acceptance Testing
- Firstly, programs are tested with normal, erroneous and boundary data.
- Then, unit testing, module testing, and system testing are carried out.
- Then, the system is tested to see whether it meets the user’s requirements. This is called acceptance testing.
- The test data supplied to the acceptance data is supplied by the end-user instead of the data used for testing purposes.
- The system is also tested in an environment where a realistic volume of data is supplied. This is a part of the hand-over process and is carried out by the intended user.
Step 4: Evaluation
- This phase comes into action three to six months after the software has come to use.
- This time duration allows the user and organisation to get used to the new software environment.
- Users may identify a few shortcomings at this stage, and their feedback is evaluated.
- The software must be effective in solving the problem, easy to use and easy to maintain.
Step 5: Maintenance
- In this phase, software upgrades, repairs and bug fixes take place.
- This phase occurs when the software is in full operation.
Waterfall Lifecycle Model

- All the stages of the software development lifecycle are implemented one by one.
- The output of one stage acts as the input for the next stage.
- This model is also not flexible.
- If necessary, previous stages can be visited, but the steps still have to be followed in order.
- The user inputs are analysed in the analysis phase.
- After this phase, the input from users plays a minimal role.
- Well-suited for the manufacturing industry where changes after the implementation stage will increase the hardware cost.
- In such cases, each stage is completed with utmost care before moving to the next.
- A disadvantage of this model is that the involvement of the user is not present.
The Spiral Model

- Same stages as in the Waterfall model.
- The difference is that the spiral model allows us to develop it in an iterative manner.
- In the analysis phase of the first iteration, the requirements of the software are listed.
- At the end of the first iteration, a prototype is produced.
- The prototype generated in the first iteration is improved in the second iteration. In each successive loop, an improved version of the prototype is generated.
- This model is well-suited for long-term projects.
- Short-term projects are implemented using an agile model.
- An advantage of spiral and agile models is that users may not be able to define their requirements perfectly at the beginning of the development process. An iterative approach allows flexibility to the user so that the requirements can evolve as the software is built.
Agile Model

- An iterative process similar to the spiral model.
- Difference: Stages are implemented in a non-linear manner.
- An initial prototype is designed to understand the requirements of the software.
- This initial prototype is improved with incremental changes based on the user’s feedback.
- A non-linear model with great emphasis on the user’s feedback.
- The project is divided into several parts. When the design team is working on some of the parts, some parts could still be in the analysis stage, or the implementation could be working on other parts. Testing and maintenance shall be carried out then and there.
- A software development process must be simple and avoid unused features in the software.
- It is important to implement the feedback from the user to the software in an incremental and fast manner.
Extreme Programming
- A methodology based on an agile model, in which software is released more frequently in short cycles.
- This model is helpful in receiving customer feedback more frequently, and improvements shall be updated to the software based on new requirements.
Rapid Action Development (RAD)
- A methodology used to complete large projects in a shorter time period, which may otherwise take a long time to complete.
- In a longer development cycle, the user requirements may change which results in the cancellation of a project.
- The time taken to complete a project can be reduced by reusing modules wherever possible.
- The user requirements collected through a workshop instead of asking them to fill in documents improves the definition of requirements.
- Refining the prototype based on these requirements with a deadline for each part of the prototype ensures that a large project is completed in a shorter time period.
Related Worksheets: