Skip to content
SE eBook
Menu

Software Engineering Definition

Public section
Preferences are saved on this device.

Software Engineering

Software engineering applies engineering principles and practices to the development, operation and maintenance of software systems. The goal is to produce software that is:

  • Reliable.
  • Efficient.
  • Maintainable.
  • Delivered on time and within budget.

In simple terms: software engineering is the application of engineering to software development.

A widely used definition from IEEE states:

“Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software.”

Modern software engineering focuses on:

  • High-quality software products that meet specified functional and non-functional requirements.
  • Process discipline: using defined methods, models and tools rather than ad hoc coding.
  • Manageability: planning, tracking and controlling cost, schedule and risks.

It is often observed that software development can cost more than the hardware on which it runs. Without proper software engineering practices, large, complex systems are:

  • Hard to understand and modify.
  • More likely to fail or become unmaintainable.
  • Much more expensive over their lifetime.

This is why software engineering is now treated as a full-fledged engineering discipline, similar in seriousness to civil, electrical or mechanical engineering.

Login to add personal notes and bookmarks.