Skip to main content

Unit 3 SDLC


 Software Development Life Cycle

The Software Development Life Cycle (SDLC) is a structured process used for developing high-quality software systematically. It defines steps to follow, from the initial planning to the final deployment and maintenance of software.

Need of SDLC (Software Development Life Cycle)

  1. SDLC provides a structured approach to software development, helping developers follow a clear, step-by-step process.
  2. It improves project management by allowing better planning, scheduling, and tracking of resources, time, and progress.
  3. It helps in early detection of errors, reducing the cost and effort required to fix issues later in the development cycle.
  4. SDLC enhances communication between developers, testers, clients, and stakeholders by maintaining clear documentation and process flow.
  5. It ensures quality assurance by including validation and testing activities at every stage of development.
  6. It helps manage complex projects by dividing the work into manageable phases, making it easier to develop and monitor.

 

 Importance of SDLC

  1. SDLC ensures a clear understanding of user requirements, helping the development team deliver what the client actually needs.
  2. It makes efficient use of resources, including time, cost, and workforce, by avoiding unnecessary work and rework.
  3. It leads to higher customer satisfaction by involving the client throughout the development process and delivering a usable product.
  4. It helps in identifying and managing risks early, preventing major issues in later stages of the project.
  5. It maintains proper documentation at each stage, which is helpful for future maintenance, updates, or upgrades.
  6. SDLC offers flexibility in development, as it supports different models like Waterfall, Agile, Spiral, etc., depending on project needs.

Phases of SDLC

1. Planning
This initial phase involves defining what the software should do, who will use it, and why it is needed. The team sets clear goals, decides the budget, creates a timeline, identifies risks, and checks if the project is feasible. A detailed project plan is made to guide the entire process.

2. Requirements Analysis
In this phase, the team meets with users and clients to gather all necessary requirements. They clearly document these needs in the Software Requirements Specification (SRS) to avoid confusion later and ensure everyone agrees on what the software must deliver.

3. Design
Here, the team designs how the software will function and appear. This includes creating system architecture, user interface layouts, data flow diagrams, and database designs. All these details are compiled into the Software Design Document (SDD), serving as a blueprint for development.

4. Coding and Unit Testing
Developers write the actual code based on the design documents. Each part or module of the software is tested individually through unit testing to catch and fix errors early while following coding standards.

5. Integration and System Testing
After individual modules are complete, they are combined and tested together in integration testing. Then, system testing verifies that the entire software meets user requirements and functions correctly as a whole, with any bugs found being fixed.

6. Deployment
Once testing is successful, the software is released or installed for end-users. This phase often includes user training and ongoing support to help users effectively use the software.

7. Maintenance
After deployment, the software requires continuous support to fix bugs, update features, and improve performance based on user feedback and changing needs.





 Elaborate System Study

System Study is the first and most important step in system development. It is done to understand the current system completely and to identify the need for a new system.

Key Objectives:

·         Understand how the existing system works.

·         Identify problems, weaknesses, or limitations.

·         Determine user needs and expectations.

·         Study the business processes and information flow.

Techniques Used:

·         Interviews with users and stakeholders

·         Observations and document reviews

·         Questionnaires and surveys

·         Studying system reports and data flow

Output: A clear understanding of the current system and a strong base for planning the new system.


Elaborate the Feasibility Study and Its Types

Feasibility Study checks if the new system is practical and possible. Before spending time and money on development, we must know whether it is worth doing.

Purpose:

·         To evaluate if the project is possible, useful, and affordable.

·         To help management decide whether to go ahead with the project.

Types of Feasibility:

1.      Technical Feasibility – Do we have the technology, tools, and expertise to build the system?

2.      Economic Feasibility – Will the benefits of the system be greater than its cost?

3.      Operational Feasibility – Will the users accept and be able to use the system easily?

4.      Legal Feasibility – Are there any laws or regulations that affect the system?

5.      Time Feasibility – Can we complete the project within the required deadline?

Output: A Feasibility Report stating whether the project is suitable for development.

Describe the System Analysis

System Analysis is the process of gathering and analyzing all requirements for the new system. This is where we understand what the system should do, but not how to do it.

Goals:

·         Find out what users want and need.

·         Understand problems in the current system.

·         Document the functional and non-functional requirements.

 Output:

·         A Software Requirement Specification (SRS) document should be prepared


SRS

SRS (Software Requirements Specification) is a document that clearly describes what a software system should do. It is used by developers, testers, and clients to understand all the system's requirements.

It includes:

1.      Introduction – Purpose and scope of the project

2.      Overall Description – Users, system environment, and features

3.      Functional Requirements – What the system should do

4.      Non-Functional Requirements – How the system should behave (e.g. speed, security)

5.      Interfaces – User interface, hardware/software connections

Types of requirements

Functional Requirements

Functional requirements describe the specific actions or tasks that a software system must be able to perform. They tell us what the system should do to meet the needs of users. For example, in an online shopping website, a functional requirement would be that users can add items to their shopping cart and place an order. These requirements focus on the features and behaviors of the system.

Non-Functional Requirements

Non-functional requirements describe the qualities or characteristics that the software must have. They explain how the system should perform rather than what it does. For instance, in the same online shopping website, a non-functional requirement could be that the website should load within 2 seconds or that the user’s personal data must be securely protected. These requirements focus on performance, security, usability, and other system attributes.


Describe the System Design

System Design is the phase where the structure and components of the system are planned. This includes how the system will look and how it will work internally.

 Activities:

·         Design system architecture and modules

·         Create database design (ER diagrams, tables)

·         Design user interfaces and screen layouts

·         Plan inputs, outputs, reports, and data flow

 Output:

·         Software Design Document (SDD) that guides the programmers in coding

·         Helps break down the system into manageable parts


Describe the System Development

System Development (also called Coding or Programming) is when the actual software is created by developers. They write the code using the programming languages defined during design.

 Activities:

·         Developers write and organize code module by module

·         Unit testing is done for each small piece

·         Developers may use tools like version control (e.g., Git) to manage code

·         Follow coding standards and documentation

Output: A working software system based on design.


Demonstrate the System Testing

System Testing checks if the software works properly and is free from bugs or errors. It ensures that the software meets all the requirements.

 Types of Testing:

1.      Unit Testing – Testing individual components or modules

2.      Integration Testing – Testing combined modules together

3.      System Testing – Testing the complete software system

4.      User Acceptance Testing (UAT) – Final testing by the end-users  

5.      Alpha Testing:             Done by internal team before release.

6.      Beta Testing:   Done by selected real users after alpha and before final release.

7.      Black Box Testing:     Tester doesn't know internal code, focuses on input/output.

8.      White Box Testing:     Tester knows internal logic and tests paths, loops, etc.

9.      Grey Box Testing:       Combines both black and white box techniques.

 Goal:

·         To find and fix bugs

·         To check whether the system works correctly, securely, and efficiently

Output: A fully tested and verified software product, ready for use.


Describe  the System Implementation

System Implementation is the phase where the tested software is delivered to the users and installed in the real environment.

 Activities:

·         Installing the software on user systems or servers

·         Migrating data from old to new system

·         Training users and IT staff

·         Providing manuals and support

Implementation Strategies:

·         Direct (Big Bang) – Replace old system completely at once

·         Parallel – Use both old and new systems for a while

·         Phased – Implement one part/module at a time

·         Pilot – Test the system at one location before full rollout

Output: The system goes live, and users start using it in real scenarios.


Describe the System Maintenance and Reviews

System Maintenance is the phase after deployment where the system is regularly checked, updated, and improved.

 Types of Maintenance:

1.      Corrective Maintenance – Fixing bugs or problems

2.      Adaptive Maintenance – Making the system work with new hardware/software

3.      Perfective Maintenance – Improving performance or adding small features

4.      Preventive Maintenance – Making changes to avoid future problems

System Review:

·         Regularly checking system performance

·         Collecting user feedback

·         Planning for future updates or replacement

Output: A stable, updated system that keeps meeting users' needs over time.

Comments

Popular posts from this blog

Function of OS 1. Process Management The operating system helps in running many programs at the same time. It keeps track of each running program (called a process), decides which one should run next, and stops or starts them as needed. It makes sure that all the programs get a fair chance to use the CPU.   2. Memory Management The OS manages the computer's memory (RAM). It decides which program will use how much memory and keeps track of it. When a program is closed, it frees up the memory so that other programs can use it. This helps the computer run smoothly without crashing.   3. File System Management The operating system helps us to create, save, open, and delete files. It organizes files in folders and keeps them safe. It also controls who can open or edit a file to protect our data.   4. Device Management The OS controls all the input and output devices like the keyboard, mouse, printer, and monitor. It tells the devices what to do and makes su...
  Unit-2 Control Statements in c# A control statement in java is a statement that determines whether the other statements will be executed or not. It controls the flow of a program. Control Statements can be divided into three categories, namely ●         Decision Making statements ●         Iteration (Looping) statements ●         Jump statements ⮚   Decision Making statements Decision making statements help you to make decision based on certain conditions. These conditions are specified by a set of decision making statements having boolean expressions which are evaluated to a boolean value true or false. There are following types of decision making statements in C#. 1) Simple if statement:   It is the most basic statement among all control flow statements in C#. It evaluates a Boolean expression and enables the program to enter a block of code if the ...
    Basic Structure Of Java Program   // 1. Package Declaration (optional) package mypackage;   // 2. Import Statements (optional) import java.util.Scanner;   // 3. Class Declaration public class MyProgram {       // 4. Main Method – Entry point of the program     public static void main(String[] args) {           // 5. Statements – Code to be executed         System.out.println("Hello, World!");     } }   1. Package Declaration (Optional) A Java program may begin with a package declaration that defines the folder or package name in which the class is stored. For example: package mypackage; This helps organize code into different logical groups.   2. Import Statements (Optional) After the package declaration, import statements can be added to include built-in or user-defined Jav...