Download Prospectus


What is the Software Development LifeCycle?

The SDLC (Software Development Life Cycle) is a breakdown of all the steps involved in the creation of software and will normally move through the following steps:

  • Requirement analysis
  • In-depth planning
  • Product design
  • Coding
  • Testing
  • Deployment (putting the software ‘live’)
  • Post-production maintenance

Why is it used?

The SDLC gives a business or team a tried-and-tested foundation for every software related project that they produce.  Subsequently, teams can develop high-quality products with more speed and consistency while the company can:

  • Maintain deadlines and keep projects within budget
  • Maintain high standards for code quality
  • Keep bugs and vulnerabilities out of production
  • Align product features with business goals
  • Prioritise tasks effectively
  • Avoid scenarios where team members work on the same or low value tasks
  • Lower the number of post deployment bug fixes.

The SDLC outlines each stage of software development and breaks them down in separate phases.  While SDLC strategies have been around since the 1960s, most of the core concepts have evolved over time.  The most significant change is in the testing phase, which was traditionally a separate SDLC stage. Modern teams prefer to integrate testing and security activities into every stage of the life cycle to create a more reliable software that’s secure by design.  Nevertheless, it’s still important to have a separate stage for in-depth testing.

The below image gives a quick overview of the 6-stage SDLC most organisations use and which team members are involved in each stage:

, What is the Software Development LifeCycle?

Stages of the SDLC

Requirements Analysis

This is the first step where we define the project’s requirements.  Overall questions we ask during this stage are:

  • What is the goal of this project?
  • What does the business hope to get from the product?
  • Is the team going to write code from scratch or are we updating an existing system?
  • Do we have any hard deadlines to meet?
  • Do we have the necessary knowledge in-house or will we have to outsource some part(s) of the project?

All the data gathered in this stage goes into a document called a Software Requirement Specification document (SRS).  It includes all the software, hardware, security, and network specifications for the product, as well as information on how many people are needed for the project, what the deadlines are and how much it will cost.

Design

Once the project has been approved in the stage above, the team would then start creating a design plan that will lay out all major aspects of the new product, including:

  • Architecture (programming language, databases, interfaces, operating system, pre-made templates, APIs and so on)
  • Features list (what the product will do and how it will behave)
  • Infrastructure requirements (servers, network and so on)
  • UI design (how it will look, colours etc.)
  • Necessary security measures (e.g. SSL encryption, password protection, recommended database migrations, etc.)

The team adds this information to a Design Document Specification (DDS) which is reviewed by a stakeholder and approved or rejected. The DDS lists all the information that developers will need to code the product.

Software development

The development team start to work on the code. This phase results in operational software that meets all the requirements listed in the SRS and DDS.  Although the code will need more testing, the developers should have carried out some basic tests. 

In-depth software testing

The software created in the previous stage now goes through extensive testing.  Companies will have a wide variety of test methods, depending on the product, including:

  • Code quality testing
  • Unit testing (functional tests)
  • Integration testing
  • Performance testing
  • Security testing
  • Acceptance testing
  • Non-functional testing.

While most modern teams rely on automated tests to speed up this phase, some manual tests are still needed such as penetration testing.  If the team finds a defect, the code goes back to the development phase where developers will resolve the defect.  We would end the testing phase when the product is stable, bug free and up to the quality standards that were defined in previous phases.

Software deployment

The product leaves testing and is ready to go into production (accessible to the end users), and some projects need the team to write user manuals or create instructional videos before the product is fully deployed.

Ideally this phase will happen automatically to reduce the chance of human error, but some companies may still require manual approvals during this stage.

Product maintenance and enhancement

Every piece of software requires periodic reviews and updates based on user feedback.  The most common activities during this stage are:

  • Bug fixing
  • Setting up continuous monitoring
  • Upgrading the software to newer versions
  • Adding new features to the software

Once a bug is discovered the team will move back as many steps in the SDLC as needed.  Occasionally, severe defects need updates in the design stage, while most take it back to the development stage.

Interested in computer engineering? Find out more about all the computer engineering courses we have available by clicking here.

Diploma in Computer Engineering

Diploma in Computer Science

Diploma in Artificial Intelligence

Alternatively, you can view all our online engineering courses here.

Recent Posts

How can we analyse a single-degree-of-freedom lumped parameter systems with damping?

How can we analyse a single-degree-of-freedom lumped parameter system with damping? In our previous article on undamped vibration, we looked at solving vibration problems with a single degree of freedom.  In this article, we’re going to look at systems with damping and how to analyse them. We’ll focus on the mathematical analysis of a single-degree-of-freedom […]

How can we analyse undamped vibration problems.

How can we analyse undamped vibration problems. In our previous article on harmonic motion, we looked at how we can analyse problems involving simple harmonic motion, now we’re going to look at solving vibration problems with a single degree of freedom. Vibration Analysis In vibration analysis, there are two approaches we are interested in.  One […]

How do we analyse problems involving harmonic motion?

How do we analyse problems involving harmonic motion? In our previous article on mechanical resonance, we looked at harmonic motion and how it affects structures.  Now we’re going to jump into how we can solve issues that involve simple harmonic motion. What is simple harmonic motion? Many systems consist of components that vibrate in the […]