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%

Course Introduction: Software Engineering

Lesson 1 of 24 in the free Software Engineering notes on Siksha Sarovar, written by Rohit Jangra.

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.