Lecture 05: Introduction to SDLC
Unit 2: Software Development Life Cycle (4353202)
Lecture Agenda
- Recap of Unit 1: Software Engineering Fundamentals
- What is the Software Development Life Cycle (SDLC)?
- Why is SDLC Essential? (Purpose and Benefits)
- The Core Phases of the SDLC
- Detailed Exploration of Each SDLC Phase
- Introduction to SDLC Models
- Summary and Q&A
Recap of Unit 1: Software Engineering Fundamentals
- Software: Programs + Data + Documentation.
- Characteristics: Intangible, engineered, non-wearing.
- Layered Approach: Quality, Process, Methods, Tools.
- Framework & Umbrella Activities: Core sequential activities and continuous supporting activities.
What is the Software Development Life Cycle (SDLC)?
The Software Development Life Cycle (SDLC) is a systematic, phased approach to developing software. It provides a structured framework that guides the entire process of building, deploying, and maintaining software systems.
Think of it as a project management model that defines the stages involved in an information system development project, from an initial feasibility study through maintenance of the completed application.
Why is SDLC Essential? (Purpose and Benefits)
- Structured Approach: Provides a clear roadmap for project execution, reducing chaos and improving predictability.
- Quality Assurance: Integrates testing and quality checks throughout the process, leading to higher quality software.
- Risk Management: Helps identify and mitigate risks early, reducing potential project failures and cost overruns.
- Cost Efficiency: By catching errors early and planning thoroughly, SDLC helps reduce overall development costs.
- Stakeholder Communication: Ensures clear communication and understanding among all parties involved (developers, clients, users).
- Resource Optimization: Facilitates better allocation and utilization of human and technical resources.
- Maintainability: Well-documented and structured development makes future maintenance and enhancements easier.
The Core Phases of the SDLC
While specific activities may vary between different SDLC models, most follow a common set of core phases:
Analysis] --> B[2. System
Design] B --> C[3. Implementation
(Coding)] C --> D[4. Testing] D --> E[5. Deployment] E --> F[6. Maintenance] F --> A
Detailed Exploration of Each SDLC Phase
Phase 1: Requirement Analysis
- Objective: To understand and document the needs and expectations of the users and stakeholders.
- Activities: Elicitation (gathering), analysis, negotiation, specification, validation.
- Key Deliverable: Software Requirement Specification (SRS) document.
- Importance: A clear understanding here prevents costly rework later.
Detailed Exploration of Each SDLC Phase (Cont.)
Phase 2: System Design
- Objective: To define the overall architecture and components of the software system.
- Activities: High-level design (system architecture), low-level design (module details), database design, user interface design.
- Key Deliverable: Design Document Specification (DDS) or Architectural Design Document.
- Importance: Translates requirements into a technical blueprint.
Detailed Exploration of Each SDLC Phase (Cont.)
Phase 3: Implementation (Coding)
- Objective: To translate the design into executable code.
- Activities: Writing source code, unit testing (testing individual components), code integration.
- Key Deliverable: The actual source code, compiled executables, and unit test reports.
- Importance: The phase where the software is actually built.
Detailed Exploration of Each SDLC Phase (Cont.)
Phase 4: Testing
- Objective: To verify and validate that the software meets the specified requirements and is free of defects.
- Activities: Integration testing, system testing, performance testing, security testing, user acceptance testing (UAT).
- Key Deliverable: Test reports, defect logs, test summary reports.
- Importance: Ensures quality, reliability, and functionality before release.
Detailed Exploration of Each SDLC Phase (Cont.)
Phase 5: Deployment
- Objective: To make the software available for end-users.
- Activities: Installation, configuration, data migration, user training, release management.
- Key Deliverable: Deployed software in the production environment.
- Importance: The point where the software becomes operational and delivers value.
Detailed Exploration of Each SDLC Phase (Cont.)
Phase 6: Maintenance
- Objective: To ensure the software continues to function effectively and meet evolving needs after deployment.
- Activities: Bug fixing (corrective), adapting to new environments (adaptive), enhancing features (perfective), preventing future issues (preventive).
- Key Deliverable: Updated software versions, maintenance reports.
- Importance: Extends the lifespan of the software and ensures its continued relevance.
Introduction to SDLC Models
The SDLC phases can be implemented in various ways, each with its own strengths and weaknesses, depending on project characteristics. These different approaches are known as SDLC Models.
In the upcoming lectures, we will explore several popular models, including:
- Waterfall Model (Linear)
- Incremental Model (Iterative, phased delivery)
- Prototype Model (Early working model)
- Spiral Model (Risk-driven, iterative)
- Rapid Application Development (RAD) Model (Fast prototyping)
- Agile Models (e.g., Scrum, Extreme Programming - XP) (Flexible, iterative, collaborative)
Summary and Q&A
Key Takeaways
- The **SDLC** is a systematic, multi-phase framework for developing and maintaining software.
- It is essential for **quality assurance, risk management, and efficient resource utilization**.
- The core phases are **Requirement Analysis, System Design, Implementation, Testing, Deployment, and Maintenance**.
- Different **SDLC Models** provide various approaches to navigate these phases, chosen based on project needs.
Q & A
Questions & Discussion

