Software development cycle

The software development life cycle is the name of the overall process of developing software from start to finish. When starting any new software project, it is important to plan how it will be developed and maintained. There are different theories about how to develop and test software.

The process is known as a cycle because even when a piece of software is finished, it might be necessary to go back to the beginning. For example, it might be possible to update the software based on a new piece of technology that has become available. You might be able to make big changes to how the software works, and continue through the development cycle again.

Key stages of the software development life cycle

The following are the key stages of the cycle:

  1. Requirements - also known as the analysis stage. This is the first step, when the team decide what the software needs to do. The main point is to think about what the user will want from the program. At this stage, it might be a good idea to ask other people what they want from the software. Who is going to use it? What information do they need to input? What information or data does it need to output?
  2. Design - the team work out the details of the program by breaking it down into smaller chunks. This includes thinking about the visual appearance and the programming behind the software. The team will use pseudocode and diagrams to work out how the program should go.
  3. Implementation - the program code is written. Good pseudocode allows the implementation stage to be relatively easy. The code is normally written in a high-level language.
  4. Testing - this involves testing the program under various conditions to make sure it is going to work. You need to think about what devices it could be used on and what might cause the program to crash.
  5. Evolution - the software is ready to be launched, but after it has been launched you will need to think about how the software evolves. Software needs to be maintained to ensure it works on new systems. Smartphone apps are constantly being maintained to make sure they work on the latest smartphones and computers.
Diagram demonstrating  the stages of a system life cycle

There are three typical types of maintenance:

  • corrective - fix any errors that are discovered in the program
  • perfective - add new features to the program
  • adaptive - make changes to the program to take account of new conditions so the program can work on new operating systems and hardware

Steve Furber describes how he and his team get together and draw plans for software on a white board before they get into coding