C Language
DSA
Software Engineering
Software Architecture
Operating System
Big Data

Topics

  • 1. Software Engineering
  • 2. Why We Need Software Engineering
  • 3. Principles of Software Engineering (SE)
  • 4. Software Product and Software Process
  • 5. Program vs Software Product in Software Engineering
1. Software Engineering

Software

Software is a set of computer programs or instructions that, when executed, perform specific tasks or provide desired functionalities.


Engineering

Engineering is the application of knowledge, principles, and scientific methods to design, build, and analyze objects or systems efficiently.


Software Engineering

Software engineering is the systematic and disciplined process of developing, operating, and maintaining software in a quantifiable manner.

In simpler words, it’s applying engineering principles to software development to make it reliable, maintainable, and efficient.

2. Why We Need Software Engineering

Software engineering is important because it ensures that software is:

  1. Maintainable – Easy to update and modify.

  2. Correct – Works according to specifications.

  3. Reusable – Components or modules can be reused in other projects.

  4. Testable – Can be systematically tested for errors.

  5. Reliable – Performs consistently under expected conditions.

  6. Portable – Can run on different platforms or environments.

  7. Adaptable – Can adjust to changes in requirements or environment.

3. Principles of Software Engineering (SE)
  • Think through the problem completely before implementation – Understand the problem fully before writing code.

  • Divide and conquer – Break complex problems into smaller, manageable parts.

  • Keep it simple – Avoid unnecessary complexity in design and code.

  • Learn from mistakes – Continuously improve from past errors.

  • Maintain the vision – Always keep the overall goals of the software in mind.

  • Consider users – What you produce will be used by others.

  • Be open to the future – Design software to accommodate future changes.

  • Plan ahead for reuse – Write code and design components so they can be reused in other projects.

4. Software Product and Software Process

Software Process

A software process is the set of activities and associated results that produce a software product. It deals with both the technical and management aspects of software development.

Software Process Activities

  1. Software Specification – Defining what the software should do and the constraints on its operation (done by both customers and engineers).

  2. Software Development – Designing and programming the software.

  3. Software Validation – Ensuring the software meets customer requirements.

  4. Software Evolution – Modifying the software to reflect changing customer and market needs.

Note: Different types of systems require different development processes.

  • Real-time software (e.g., in aircraft) must have complete specifications before development.

  • E-commerce systems can have specification and programming done incrementally.

5. Program vs Software Product in Software Engineering
Feature Program Software Product
Size Usually small, 100–2000 lines of code Large, can be thousands to millions of lines of code
Documentation Not required Proper documentation with user manuals
Users Developer is the user Large number of users
Development Team Single developer or small team Well-trained team of developers
User Interface No UI needed Properly designed user interface
Functionality Limited features Many options and features according to size and complexity