🔹 1.
Introduction to Software Engineering
Software Engineering is the application of engineering principles to software development in a methodical way
to ensure high-quality software.
📌 Key Characteristics:
Systematic and disciplined
Focus on maintainability and scalability
Reduces cost and time-to-market
🔹 2. SDLC (Software Development Life Cycle)
The SDLC is a process used by software developers to design, develop, test, and deploy software systematically.
📋 Phases:
1. Requirement gathering
2. System design
3. Implementation (Coding)
4. Testing
5. Deployment
6. Maintenance
🔹 3. Software Process Models
✅ Waterfall Model
Linear and sequential
Each phase must complete before moving to the next
Disadvantage: Inflexible to changes
✔️ Advantages:
Simple and easy to understand
Well-suited for small projects with fixed requirements
Clear documentation
❌ Disadvantages:
Inflexible to changing requirements
Late testing phase – bugs discovered late
Not ideal for complex or long-term projects
✅ V-Model (Verification and Validation Model)
Extension of Waterfall with testing at each development stage
Emphasizes validation and quality
✔️ Advantages:
Emphasizes verification and validation
Early detection of defects
Well-structured and disciplined
❌ Disadvantages:
Rigid model – no flexibility
High maintenance cost
Not suitable for complex or evolving projects
✅ Iterative Model
Cycles through planning → development → testing
Useful for large systems that need regular feedback
✔️ Advantages:
Early delivery of working product
Easy to accommodate changes
More customer feedback and involvement
❌ Disadvantages:
Requires strong planning and design
Repeated rework can be expensive
May increase project duration
✅ Spiral Model
Combines iterative development with risk analysis
Best for complex, high-risk projects
✔️ Advantages:
Best for large, complex, and high-risk projects
Encourages customer feedback and risk mitigation
Iterative nature allows refinement
❌ Disadvantages:
Costly and complex to manage
Requires expertise in risk analysis
Not suitable for small or low-risk projects
🔹 4. Introduction to Agile
🌀 What is Agile Development?
Agile is a set of principles for software development under which requirements and solutions evolve through
collaborative effort.
📜 Agile Manifesto (2001):
"Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan"
🌟 Agile Principles (12 Key Ideas):
Some key principles:
Satisfy the customer through early and continuous delivery
Welcome changing requirements
Deliver working software frequently
Daily collaboration between business and developers
Simplicity—the art of maximizing the amount of work not done—is essential
🔹 5. Agile Project Management (APM)
Agile Project Management is a flexible, iterative approach to managing software projects that encourages
adaptability and customer feedback.
Key Concepts:
Short iterations (Sprints)
Team empowerment
Continuous improvement
Transparency and communication
🔹 6. Specific Agile Methodologies
🔸 Scrum
Iteration-based framework using Sprints
Roles: Product Owner, Scrum Master, Development Team
Events: Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective
🔸 Extreme Programming (XP)
Focuses on engineering practices like:
o Pair programming
o Test-driven development (TDD)
o Continuous Integration
🔸 Lean Software Development
Derived from Lean Manufacturing
Emphasizes:
o Eliminate waste
o Build quality in
o Deliver fast
o Respect people
🔸 Kanban
Visual workflow management
Uses Kanban boards to manage tasks
Focus on limiting Work In Progress (WIP)
🔹 7. Agile Requirements
📘 User Story
A brief description of a feature from an end-user’s perspective.
Format:
"As a [user], I want [feature] so that [benefit]."
🗺 Story Mapping
Visual way to organize and prioritize user stories
Helps in planning MVP (Minimum Viable Product)
🔹 8. Scrum Introduction
🗺 What is Scrum?
Scrum is a lightweight agile framework for managing complex projects through iterative development.
📖 Scrum Origins:
Created by Ken Schwaber and Jeff Sutherland
Inspired by the 1986 Harvard Business Review paper on "The New New Product Development Game"
❓ Why Scrum?
Handles dynamic, changing requirements well
Empowers cross-functional teams
Encourages regular feedback
Supports early and continuous delivery
📊 Summary Table
Topic Key Points
Software Engineering Systematic, structured development
SDLC Requirements → Design → Implementation → Testing → Maintenance
Models Waterfall, V-Model, Iterative, Spiral
Agile Iterative, collaborative, value-focused
Agile Manifesto 4 values, 12 principles
Agile PM Sprints, stakeholder involvement, continuous delivery
Agile Methods Scrum (sprints), XP (engineering), Lean (waste reduction), Kanban (visual)
Requirements User Stories, Story Mapping
Scrum Lightweight agile framework; origins by Schwaber and Sutherland