Siksha Sarovar

Siksha Sarovar (sikshasarovar.com) is a free educational web application that helps students in India learn programming and prepare for academic and competitive exams. The platform offers structured coding courses (C, C++, Python, Java, HTML, CSS, PHP, Power BI, AI, Machine Learning, Data Science), complete university curriculum notes for BCA/MCA students with previous year question papers, Class 10 and Class 12 CBSE/HBSE school notes, and dedicated preparation material for SSC, UPSC, Banking, Railway and other government exams. Browsing the site is completely free and requires no account. Users may optionally sign in with Google solely to save their learning progress, quiz scores and personal preferences across devices.

Privacy Policy | Terms of Service | Contact Siksha Sarovar | About Siksha Sarovar

v4.0.9 · PWA
Siksha Sarovar logo
Siksha Sarovar
Your Learning Universe

Siksha Sarovar is a free e-learning platform for coding courses, BCA university notes and competitive exam preparation. Optional Google sign-in saves your learning progress across devices.

Initializing knowledge base…
Compiling modules 0%

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)

  1. 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.…
  2. 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,…
  3. 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,…
  4. 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…
  5. 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…
  6. 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,…
  7. 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…
  8. 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…
  9. 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…
  10. 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…
  11. 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…
  12. 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…
  13. 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…
  14. 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,…
  15. 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…
  16. 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…
  17. 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…
  18. 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,…
  19. 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,…
  20. 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,…
  21. 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)…
  22. 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…
  23. 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…
  24. 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 CrisisCauseSoftware Engineering Response
Projects deliver lateNo realistic estimationFunction Point, COCOMO models
Cost overrunsUnmanaged scopeChange-control boards, configuration management
Bugs in productionAd-hoc testingLevels of testing, formal verification
Maintenance dominates costNo documentation, no designSRS, design documents, traceability
User dissatisfactionRequirements never validatedPrototyping, 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:

AspectProgramSoftware
Author = User?YesNo — many users, separate from author
LifetimeShort, throwawayYears to decades
DocumentationOptionalMandatory (SRS, design, user manual)
TestingAuthor's intuitionSystematic, multi-level
MaintenanceRare60–80% of total cost
Team sizeOne developerMany developers, multiple roles
Failure costLowCan 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

UnitThemeKey TopicsHours (IPU)
IIntroduction, SDLC, RequirementsProcess models, SRS, Agile, system modeling12
IIProject PlanningMetrics, LOC, FP, COCOMO, risk management10
IIIDesign, Quality, ImplementationCohesion, coupling, SQA, TQM, reverse engineering10
IVTesting & MaintenanceBlack/white-box, unit/integration/system testing, maintenance types12

---

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

  1. Read in order — Unit I lays the foundation; Units II–IV all reference SDLC stages.
  2. Memorise the diagrams — Waterfall, Spiral, V-Model, COCOMO formula, cohesion/coupling hierarchies all show up directly in question papers.
  3. 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.
  4. 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:

  1. What is software engineering? — definition, characteristics, evolution
  2. How is software built? — the Software Development Life Cycle (SDLC) and its models (Waterfall, Prototyping, Spiral, RAD, Agile)
  3. How do we know what to build? — requirements engineering, SRS document, IEEE 830
  4. 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.