Software Development Life Cycle (SDLC) - SSS 3 Digital Technologies note

Software Development Life Cycle (SDLC) - SSS 3 Digital Technologies | CMPNOTE

SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)

Subject: Digital Technologies

Class: SSS 3

Term: First Term

Week: 4

Topic: Software Development Life Cycle (SDLC)

Duration: 80 Minutes (Double Period)

1. Introduction

Software is a set of instructions that tells a computer how to perform specific tasks. Examples include school management systems, banking applications, web browsers, mobile applications and examination software. Developing useful software involves more than writing computer code. Developers must understand the problem, plan a solution, design the system, write the program, test it, release it and maintain it after deployment. These activities are organised into a process known as the Software Development Life Cycle (SDLC).
Definition: The Software Development Life Cycle (SDLC) is a structured process used to plan, design, develop, test, deploy and maintain software systems.
The SDLC helps software developers work systematically so that the finished product meets users' needs, performs correctly and can be maintained over time.

2. Meaning and Importance of SDLC

The SDLC provides a framework for managing software development from the initial idea to the continued use and improvement of the software. Without a clear development process, a software project may experience poor planning, wasted resources, missed deadlines, security weaknesses and errors that are expensive to correct.

Importance of SDLC

  1. Improves planning: It helps developers identify the tasks, resources, time and skills required for a project.
  2. Clarifies requirements: It helps ensure that the software addresses the actual needs of its intended users.
  3. Improves software quality: Design reviews and testing help identify problems before and after release.
  4. Controls costs: Early identification of errors can reduce the cost of correcting them later.
  5. Supports teamwork: It helps developers, designers, testers, project managers and users understand their responsibilities.
  6. Improves security: Security requirements and checks can be included throughout development.
  7. Supports maintenance: It provides a process for fixing errors, improving performance and adding new features.
  8. Improves documentation: It encourages the recording of requirements, designs, tests and changes.

3. Phases of the Software Development Life Cycle

Although the exact stages may differ between organisations and development models, the following are common SDLC phases.

3.1 Planning and Feasibility Study

This is the stage where the software project is proposed and examined to determine whether it is practical and worth undertaking. The development team identifies the problem, the project objectives, the expected benefits, the available resources and possible risks. A feasibility study may consider:
  • Technical feasibility: Whether the required technology, equipment and skills are available.
  • Economic feasibility: Whether the expected benefits justify the cost of development and operation.
  • Operational feasibility: Whether the proposed software can work effectively within the organisation and be used by its intended users.
  • Schedule feasibility: Whether the project can reasonably be completed within the available time.
Example: A school planning to introduce an electronic result-management system must consider the cost of computers, electricity, internet access, staff training and software development.

3.2 Requirements Analysis

At this stage, developers gather and analyse information about what users expect the software to do. They may interview users, distribute questionnaires, observe existing processes and examine current records. Requirements are commonly divided into two categories:
  • Functional requirements: Describe what the software must do.
  • Non-functional requirements: Describe the quality or conditions under which the software should operate, such as security, reliability, performance and usability.
Example: For a school result-management system, functional requirements may include recording marks, calculating totals and generating report cards. Non-functional requirements may include protecting student records and responding quickly to user requests. The requirements are documented so that the development team and users have a common understanding of the expected system.

3.3 System Design

In the design phase, developers determine how the proposed software will be structured and how its components will work together. Design activities may include:
  • Designing the user interface.
  • Planning the software architecture.
  • Designing databases and data structures.
  • Defining the major program components.
  • Planning security and access control.
  • Preparing flowcharts, diagrams or pseudocode where appropriate.
Example: The team may design a student database containing admission numbers, names, classes, subjects and examination scores, as well as screens for entering marks and viewing results.

3.4 Implementation or Coding

Implementation is the stage where developers translate the design into a working program using one or more programming languages. Examples of programming languages include Python, Java, JavaScript, C++ and PHP. Developers write code, create database operations and build the functions required by the system. Example: A programmer writes code to calculate a student's total score, determine a grade and display the result on the screen.
Important: Coding is an essential part of software development, but it is only one phase of the SDLC. A working program must also be tested, deployed and maintained.

3.5 Testing

Software testing is the process of checking a program to identify defects and determine whether it meets the specified requirements. Testing helps developers discover problems before software is released to users. It may also reveal security weaknesses, incorrect calculations, poor performance or difficulties with the user interface. Common types of testing include:
Type of Testing Meaning Example
Unit testing Tests an individual function or component. Checking whether a grade-calculation function returns the correct grade.
Integration testing Checks whether different components work correctly together. Checking whether the marks-entry screen sends data correctly to the database.
System testing Tests the complete software system. Testing the entire result-management application.
Acceptance testing Checks whether the software meets users' requirements and is acceptable for use. Teachers verify that the system correctly produces report cards.
Testing should be performed throughout development where appropriate, rather than postponed until the very end.

3.6 Deployment or Implementation in the User Environment

Deployment is the process of making completed software available for actual use. Depending on the project, deployment may involve installing the software, configuring servers, transferring data, training users and providing user instructions. Software may be released to all users at once or introduced gradually. Example: A school installs a result-management application on its computers and trains teachers to enter and access examination results.

3.7 Maintenance

Maintenance takes place after the software has been deployed. It involves correcting defects, improving performance, responding to changing requirements and keeping the system compatible with its operating environment. Common maintenance activities include:
  • Corrective maintenance: Fixing errors discovered after release.
  • Adaptive maintenance: Modifying software to work with changes in hardware, operating systems or other environments.
  • Perfective maintenance: Improving performance, usability or existing features.
  • Preventive maintenance: Making changes intended to reduce future problems and improve maintainability.
Example: A school updates its software to correct a report-card calculation error and later adds a feature for sending results to parents.

4. Summary of the SDLC Phases

Phase Main Activity Expected Outcome
Planning and Feasibility Identify the problem, goals, costs and risks. A project plan and feasibility decision.
Requirements Analysis Determine users' needs. Documented software requirements.
System Design Plan the structure and operation of the system. A design specification.
Implementation Write and assemble the program. Working software components.
Testing Check the software for defects and compliance with requirements. Identified and corrected problems.
Deployment Release the software for use. Software available to users.
Maintenance Fix, adapt and improve the software. Software that remains useful and reliable.
Remember: A common SDLC sequence is Planning → Requirements Analysis → Design → Implementation → Testing → Deployment → Maintenance. Some development models combine, repeat or reorder activities.

5. The Waterfall Model

The Waterfall model is a traditional software development model in which work is organised into distinct phases that generally proceed in sequence. A phase is normally completed and reviewed before the project moves to the next major phase.
Planning
   |
   v
Requirements Analysis
   |
   v
System Design
   |
   v
Implementation (Coding)
   |
   v
Testing
   |
   v
Deployment
   |
   v
Maintenance

Advantages of the Waterfall Model

  • Its stages are clearly defined and easy to understand.
  • Documentation and project milestones are usually well organised.
  • It can be suitable for projects with stable, well-understood requirements.
  • Progress can be monitored against planned stages.

Disadvantages of the Waterfall Model

  • It is difficult to accommodate major changes once development has progressed.
  • Users may not see a working version until relatively late in the project.
  • Problems discovered late can be expensive to correct.
  • It may be unsuitable for projects whose requirements change frequently.

Example of Waterfall Use

A small organisation developing a system with clearly defined requirements and formal documentation needs may choose the Waterfall model if the requirements are unlikely to change significantly.

6. The Agile Model

Agile is an approach to software development that emphasises iterative development, collaboration, frequent feedback and the ability to respond to changing requirements. Instead of waiting until every feature has been completed, a team develops the software in smaller increments, reviews the results and makes improvements based on feedback. A simplified Agile development cycle is shown below.
Plan a small set of features
          |
          v
Design and develop
          |
          v
Test the features
          |
          v
Review with users
          |
          v
Improve and plan the next iteration
          |
          +--------> Repeat

Advantages of Agile

  • It can accommodate changing user requirements.
  • Users can provide feedback regularly.
  • Working software can be delivered in smaller increments.
  • Frequent testing can help teams identify problems earlier.
  • It encourages collaboration among team members and stakeholders.

Disadvantages of Agile

  • Frequent changes can make costs and completion dates more difficult to predict.
  • It requires regular communication and active participation from stakeholders.
  • The project can lose direction without clear priorities and effective management.
  • Documentation may be insufficient if the team neglects it.

Example of Agile Use

A team developing a school mobile application may first release student registration, then add result checking, notifications and other features in later iterations after receiving feedback from teachers and students.

7. Differences Between Waterfall and Agile

Feature Waterfall Model Agile Model
Development approach Generally follows a sequence of phases. Uses iterative and incremental development.
Handling changes Major changes may be difficult and costly. Designed to accommodate changing requirements.
User feedback Often concentrated at defined review points. Usually gathered frequently throughout development.
Delivery Often delivers the complete system after the main phases. Can deliver working increments during development.
Documentation Often emphasises detailed documentation and phase approvals. Values useful documentation alongside working software and collaboration.
Suitable projects Projects with stable, clearly defined requirements. Projects where requirements may evolve through feedback.
Note: Agile does not mean working without planning, documentation or testing. Both Agile and Waterfall projects require appropriate planning, quality assurance and maintenance.

8. Choosing an Appropriate Development Model

The choice of development model depends on the nature of the project and its constraints. Factors to consider include:
  1. Stability of requirements: Stable requirements may favour Waterfall, while frequently changing requirements may favour Agile.
  2. Project size and complexity: Larger projects may require additional coordination, documentation and risk management.
  3. Time and budget: The team must consider deadlines, available funding and resources.
  4. User involvement: Agile can be especially useful when users are available to review progress and provide frequent feedback.
  5. Risk and regulation: Projects involving sensitive data or strict compliance requirements may need extensive documentation, verification and formal approval.
  6. Team skills: The development approach should suit the team's experience, tools and working practices.
No single development model is best for every software project. The most appropriate choice is the one that meets the project's needs and constraints.

9. Class Activity

Activity A: Identify the SDLC Phases A school wants to develop a computer-based examination system. Students should identify what the development team would do during each of the seven SDLC phases. Activity B: Compare Development Models In pairs, students should prepare a table showing three differences between Waterfall and Agile. Activity C: Choose a Model A school wants to build a new application. The school is still deciding which features it needs and wants teachers to test new features regularly. Students should recommend a development model and give two reasons for their choice.

10. Summary

The Software Development Life Cycle is a structured process for developing and maintaining software. Its common phases are planning and feasibility, requirements analysis, system design, implementation, testing, deployment and maintenance. The Waterfall model organises work mainly into sequential phases and is often suitable when requirements are stable. Agile uses iterative development, regular feedback and incremental delivery, making it useful when requirements may change. Both approaches aim to produce software that meets users' needs, but the most suitable approach depends on the project.

11. Evaluation Questions

Answer the following questions in your notebook.
  1. Define the Software Development Life Cycle (SDLC).
  2. State five reasons why the SDLC is important.
  3. List and explain the seven common phases of the SDLC.
  4. What is a feasibility study? State three types of feasibility.
  5. Differentiate between functional and non-functional requirements.
  6. Explain unit testing, integration testing and acceptance testing.
  7. State three advantages and three disadvantages of the Waterfall model.
  8. Explain the meaning of Agile software development.
  9. State three advantages of Agile development.
  10. Give three differences between Waterfall and Agile.

12. Assignment

  1. Explain the seven common phases of the Software Development Life Cycle.
  2. Draw a flowchart showing the sequence of phases in the Waterfall model.
  3. Describe the Agile development cycle and explain how user feedback improves software.
  4. A hospital wants to develop a patient-record management system. Identify four requirements the development team should consider before coding begins.
  5. Compare Waterfall and Agile in terms of requirements changes, user feedback and software delivery.

13. Interactive Online Quiz

Choose the correct answer for each question and click Submit Quiz to see your score.

1. What does SDLC stand for?

2. Which SDLC phase involves gathering and documenting users' needs?

3. Which of the following is a common characteristic of the Waterfall model?

4. Which development approach emphasises iterations and frequent user feedback?

5. What is the main purpose of software maintenance?

Quiz Answer Guide

Click to reveal the correct answers
  1. B — Software Development Life Cycle.
  2. C — Requirements analysis.
  3. A — It generally follows a sequence of phases.
  4. D — Agile.
  5. B — To fix, adapt and improve software after deployment.

Comments

Popular posts from this blog

Complete Computer Studies/ICT Curriculum for JSS 1 to SSS 3

90 Objective Examination Questions in Major Subjects

Number Base System