Software Engineering — Free Notes & Tutorial
Free Software Engineering notes for BCA (GGSIPU IPU) — SDLC, Waterfall, Spiral, Agile, Scrum, XP, SRS (IEEE 830), DFD, UML, COCOMO, risk management, cohesion, coupling, SQA, TQM, ISO 9001, CMM, testing (black/white box, cyclomatic complexity) and maintenance. 100% free.
This Software Engineering course is part of Siksha Sarovar and is 100% free for students in India — no sign-up required to read. It contains 24 structured lessons with examples, and pairs with our free online compiler and AI tutor.
What you will learn
- SDLC
- Waterfall
- Spiral
- Agile
- SRS
- UML
- COCOMO
- Risk management
- Cohesion
- Coupling
- SQA
- TQM
- Testing methods
- Software maintenance
Course content (24 lessons)
- Course Introduction: Software Engineering — Course Introduction: Software Engineering Software Engineering is the disciplined application of engineering principles to the development, operation, and maintenance of software.…
- 1.0 Unit 1 Overview: Introduction, Process Models & Requirements — Unit I — Overview Unit I lays the conceptual foundation of software engineering. It answers four questions: 1. What is software engineering? — definition, characteristics,…
- 1.1 Introduction to Software Engineering — 1.1 Introduction to Software Engineering Definition IEEE 610.12-1990 definition (the IPU textbook answer): "Software engineering is the application of a systematic, disciplined,…
- 1.2 SDLC, Waterfall & Prototyping Models — 1.2 SDLC, Waterfall & Prototyping Models Software Development Life Cycle (SDLC) The SDLC is the structured sequence of phases that a software project passes through from inception…
- 1.3 Spiral, RAD & V-Model — 1.3 Spiral, RAD & V-Model 1. The Spiral Model (Boehm, 1988) Barry Boehm's Spiral model is the first explicitly risk-driven model. The project advances by spiralling outward — each…
- 1.4 Agile, Scrum & Extreme Programming (XP) — 1.4 Agile, Scrum & Extreme Programming (XP) The Agile Manifesto (2001) In 2001, seventeen software practitioners (Kent Beck, Robert C. Martin, Ken Schwaber, Jeff Sutherland,…
- 1.5 Requirements Engineering — 1.5 Requirements Engineering Requirements Engineering (RE) is the systematic process of discovering, analysing, documenting, validating and managing the requirements for a…
- 1.6 SRS Document & System Modeling (DFD, ER, UML) — 1.6 SRS Document & System Modeling Software Requirements Specification (SRS) The SRS is the formal, written document that captures all requirements after elicitation, analysis and…
- 2.0 Unit 2 Overview: Software Project Planning — Unit II — Overview: Software Project Planning Unit II answers the most management-heavy questions in software engineering: 1. How big is this software going to be? — Size…
- 2.1 Software Metrics — Product, Process, Project — 2.1 Software Metrics What is a software metric? A software metric is a quantitative measure of an attribute of a software product, process, or project. Lord Kelvin's famous quote…
- 2.2 Size Estimation — LOC, Function Points & Halstead — 2.2 Size Estimation — LOC, Function Points & Halstead Why size matters Software size is the first input to every cost-estimation model. Predict size wrong, and your cost, schedule…
- 2.3 Cost Estimation — COCOMO Model — 2.3 Cost Estimation — COCOMO COCOMO (COnstructive COst MOdel) is Barry Boehm's empirical model for estimating software effort and schedule from size. Published in 1981 in Software…
- 2.4 Risk Management — 2.4 Risk Management What is a software risk? A risk is an event with a probability of occurrence and an impact if it occurs. Risk is forward-looking: we cannot manage past…
- 3.0 Unit 3 Overview: Design, Quality & Implementation — Unit III — Overview: Design, Quality & Implementation Unit III covers the middle of the SDLC — turning requirements into a working system: 1. Software Design — modular structure,…
- 3.1 Software Design — Cohesion, Coupling & Design Principles — 3.1 Software Design — Cohesion, Coupling & Design Principles What is software design? Design is the bridge between requirements (what) and implementation (how). It transforms the…
- 3.2 Quality Management — SQA, TQM, ISO 9001, CMM/CMMI — 3.2 Quality Management — SQA, TQM, ISO 9001, CMM/CMMI What is software quality? Software quality is the degree to which the software meets specified requirements and meets…
- 3.3 Software Implementation — Coding, Standards & Documentation — 3.3 Software Implementation — Coding, Standards & Documentation What is implementation? Implementation (coding) is the phase that turns design into executable source code. Despite…
- 3.4 Reverse Engineering, Re-engineering & Configuration Management — 3.4 Reverse Engineering, Re-engineering & Software Configuration Management The legacy code problem Most software work is not writing new code from scratch — it is understanding,…
- 4.0 Unit 4 Overview: Software Testing & Maintenance — Unit IV — Overview: Software Testing & Maintenance Unit IV closes the SDLC story: 1. Testing process — verification, validation, testing principles 2. Levels of testing — unit,…
- 4.1 Testing Process & Levels of Testing — 4.1 Testing Process & Levels of Testing What is software testing? Software testing is the process of executing a program with the intent of finding errors (Glenford Myers, 1979,…
- 4.2 Black-Box Testing Methods — 4.2 Black-Box Testing Methods What is Black-Box Testing? Black-box testing treats the software as a sealed box — testers know what it should do (the inputs and expected outputs)…
- 4.3 White-Box Testing & Cyclomatic Complexity — 4.3 White-Box Testing & Cyclomatic Complexity What is White-Box Testing? White-box testing (also glass-box , clear-box , structural testing ) examines the internal structure of…
- 4.4 Manual vs Automation, V&V, Testing vs Debugging — 4.4 Manual vs Automation Testing, V&V & Testing vs Debugging Manual vs Automation Testing Aspect Manual Testing Automation Testing --- --- --- Performed by Human tester Scripted…
- 4.5 Software Maintenance — 4.5 Software Maintenance What is Software Maintenance? IEEE 1219 / ISO 14764 definition: "The modification of a software product after delivery to correct faults, improve…
Course Introduction: Software Engineering
Course Introduction: Software Engineering
Software Engineering is the disciplined application of engineering principles to the development, operation, and maintenance of software. Unlike "just programming," software engineering treats software as an engineered product — built to specifications, tested to standards, delivered on a schedule, and maintained over a lifetime.
This course (IPU BCA) covers the complete software lifecycle across four units: process models and requirements (Unit I), planning, metrics and risk (Unit II), design, quality and implementation (Unit III), and testing and maintenance (Unit IV). By the end you will be able to model a real software project end-to-end — from gathering a client's requirements to estimating its cost, designing its modules, choosing test strategies, and planning its ongoing maintenance.
---
Why Software Engineering Exists — The Software Crisis
In the late 1960s the term software crisis was coined at the NATO Software Engineering Conference (1968, Garmisch). Hardware was advancing exponentially, but software projects kept failing: delivered late, over-budget, riddled with defects, or scrapped entirely. The IBM OS/360 project — 5,000 staff-years, repeatedly missed deadlines — became the textbook example.
| Symptom of the Crisis | Cause | Software Engineering Response |
|---|---|---|
| Projects deliver late | No realistic estimation | Function Point, COCOMO models |
| Cost overruns | Unmanaged scope | Change-control boards, configuration management |
| Bugs in production | Ad-hoc testing | Levels of testing, formal verification |
| Maintenance dominates cost | No documentation, no design | SRS, design documents, traceability |
| User dissatisfaction | Requirements never validated | Prototyping, requirements review |
The famous Standish CHAOS report has tracked IT project outcomes since 1994. Even in modern years, only ~30% of projects succeed; the rest are challenged (late/over-budget) or fail outright. Software engineering is the body of techniques developed to push that success rate up.
---
Software vs Program — The Critical Distinction
A program is a piece of code that solves one problem for its author. Software is an engineered product that solves problems for many users over a long period. The differences are substantial and define what software engineering must address:
| Aspect | Program | Software |
|---|---|---|
| Author = User? | Yes | No — many users, separate from author |
| Lifetime | Short, throwaway | Years to decades |
| Documentation | Optional | Mandatory (SRS, design, user manual) |
| Testing | Author's intuition | Systematic, multi-level |
| Maintenance | Rare | 60–80% of total cost |
| Team size | One developer | Many developers, multiple roles |
| Failure cost | Low | Can be catastrophic (e.g. Therac-25, Ariane-5) |
Exam tip: When asked "Why is software engineering needed?" — the textbook answer is the software crisis plus the program-vs-software distinction. Quote at least three differences from the table above.
---
The Four Units At a Glance
| Unit | Theme | Key Topics | Hours (IPU) |
|---|---|---|---|
| I | Introduction, SDLC, Requirements | Process models, SRS, Agile, system modeling | 12 |
| II | Project Planning | Metrics, LOC, FP, COCOMO, risk management | 10 |
| III | Design, Quality, Implementation | Cohesion, coupling, SQA, TQM, reverse engineering | 10 |
| IV | Testing & Maintenance | Black/white-box, unit/integration/system testing, maintenance types | 12 |
---
Textbooks (IPU Prescribed)
- TB1. K.K. Aggarwal & Yogesh Singh, Software Engineering, 2nd Ed., New Age International — the IPU primary textbook
- TB2. Ian Sommerville, Software Engineering, 9th Edition, Pearson — the global standard
- RB1. R.S. Pressman, Software Engineering — A Practitioner's Approach, McGraw Hill — best for design
- RB2. Jibitesh Mishra & Ashok Mohanty, Software Engineering, Pearson
- RB3. James Peter & W. Pedrycz, Software Engineering: An Engineering Approach, Wiley
---
How to Get the Most From This Course
- Read in order — Unit I lays the foundation; Units II–IV all reference SDLC stages.
- Memorise the diagrams — Waterfall, Spiral, V-Model, COCOMO formula, cohesion/coupling hierarchies all show up directly in question papers.
- Match topics to PYQ patterns — every IPU paper since 2010 includes at least one question on COCOMO, one on cohesion/coupling, and one on black/white-box testing.
- Practice short numericals — LOC estimation, COCOMO calculation, cyclomatic complexity. They are 12.5-mark question favourites.
Let's begin.
1.0 Unit 1 Overview: Introduction, Process Models & Requirements
Unit I — Overview
Unit I lays the conceptual foundation of software engineering. It answers four questions:
- What is software engineering? — definition, characteristics, evolution
- How is software built? — the Software Development Life Cycle (SDLC) and its models (Waterfall, Prototyping, Spiral, RAD, Agile)
- How do we know what to build? — requirements engineering, SRS document, IEEE 830
- How do we describe the system on paper? — system modeling (DFD, ER, UML)
Learning outcomes
After Unit I you should be able to:
- Define software engineering and explain the software crisis
- List software characteristics and types
- Compare at least 5 SDLC models with their strengths and weaknesses
- Identify functional vs non-functional requirements
- Write the structure of an IEEE-830 SRS document
- Draw a Data-Flow Diagram (Level 0 and Level 1) for a small system
Topic map
Chapter mapping (IPU)
- TB1 (K.K. Aggarwal): Chapters 1, 3
- TB2 (Sommerville): Chapters 3, 5
Typical exam weight
Unit I usually contributes 2 long questions (25 marks) in the end-term paper. The most repeated questions are:
- Compare Waterfall and Spiral models — 12.5 marks
- What is an SRS? Describe IEEE 830 structure — 12.5 marks
- Differentiate functional and non-functional requirements with examples — short answer
- Draw a Level-1 DFD for [a system] — 12.5 marks
Frequently asked questions
Is the Software Engineering course really free?
Yes. The entire Software Engineering course on Siksha Sarovar is free to read with no account required. You can optionally sign in with Google to save your progress.
Do I get a certificate for Software Engineering?
Yes — finish the lessons and pass the quiz to earn a free, verifiable certificate you can share on LinkedIn or with recruiters.
Can I run code while learning?
Yes. The built-in online compiler runs C, C++, Python, Java, PHP, JavaScript, C# and SQL directly in your browser — no installation needed.