Introduction & SDLC · Software Engineering

What is Software Engineering

Watch lectures

What is Software Engineering

Definition

Software Engineering is the systematic, disciplined, and quantifiable approach to the design, development, operation, and maintenance of software.

IEEE definition: "The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software."

In short — it is engineering applied to software, the same way civil engineering is applied to building bridges or mechanical engineering is applied to building machines.

Why "Engineering"?

Software engineering borrows the engineering mindset:

  • Systematic — following defined processes, not ad-hoc coding
  • Disciplined — adhering to standards, documentation, and best practices
  • Quantifiable — measurable in terms of cost, time, quality, and effort
  • Reliable — producing software that works correctly and consistently
  • Economical — delivered within budget and schedule

Software vs. Program

Program Software
A set of instructions written to perform a task A program + documentation + user manuals + support
Small scale, single developer Large scale, team-developed
No formal process required Requires SDLC, testing, maintenance
Not necessarily maintained Maintained and updated over its lifetime

Software = Program + Documentation + Configuration data

Goals of Software Engineering

  1. Improve the quality of software products
  2. Increase productivity and job satisfaction of engineers
  3. Produce software within time and budget
  4. Make software maintainable and reliable
  5. Handle large and complex systems systematically

Why Software Engineering is Needed

  • Software has become large, complex, and mission-critical (banking, healthcare, aviation)
  • Ad-hoc development leads to unreliable, costly, and unmaintainable systems
  • Growing demand for software in every domain requires repeatable, scalable processes
  • Helps manage the software crisis (covered in the next topic) — cost overruns, missed deadlines, poor quality

Key Takeaway

Software Engineering is not just "writing code" — it is an engineering discipline covering the entire lifecycle: requirements, design, coding, testing, deployment, and maintenance, done in a structured and measurable way.


Exam tip: A common question is "Define Software Engineering and distinguish it from a Program." Use the IEEE definition + the Program vs Software table above.

Student FinanceWeb Platform

Pocketly — Personal Finance for Students

Keep your hostel and college expenses under control. Track accounts, log spending in seconds, and stay within your monthly budget.

← All Software Engineering modules