Software Engineering | Introduction to Software Engineering

Software is a program or set of programs containing instructions which provide desired functionality . And Engineering is the processes of designing and building something that serves a particular purpose and find a cost effective solution to problems. 


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


Dual Role of Software: 

1. As a product – 

  • It delivers the computing potential across network of Hardware.
  • It enables the Hardware to deliver the expected functionality.
  • It acts as information transformer because it produces, manages, acquires, modifies, displays, or transmits information.

2. As a vehicle for delivering a product – 

  • It provides system functionality (e.g., payroll system)
  • It controls other software (e.g., an operating system)
  • It helps build other software (e.g., software tools)

Objectives of Software Engineering: 

  1. Maintainability – 
    It should be feasible for the software to evolve to meet changing requirements.
  2. Correctness – 
    A software product is correct, if the different requirements as specified in the SRS document have been correctly implemented.
  3. Reusability – 
    A software product has good reusability, if the different modules of the product can easily be reused to develop new products.
  4. Testability – 
    Here software facilitates both the establishment of test criteria and the evaluation of the software with respect to those criteria.
  5. Reliability – 
    It is an attribute of software quality. The extent to which a program can be expected to perform its desired function, over an arbitrary time period.
  6. Portability – 
    In this case, software can be transferred from one computer system or environment to another.
  7. Adaptability – 
    In this case, software allows differing system constraints and user needs to be satisfied by making changes to the software.

Program vs Software Product: 

  1. A program is a set of instructions which is given to a computer in order to achieve a specific task whereas a software is when a program is made available for commercial business and is properly documented along with its licensing. Software=Program+documentation+licensing.
  2. A program is one of the stages involved in the development of the software, whereas a software development usually follows a life cycle, which involves the feasibility study of the project, requirement gathering, development of a prototype, system design, coding and testing.


Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using or mail your article to See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : AnimeshSahu, indrani25

Article Tags :


Please write to us at to report any issue with the above content.