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:
- Maintainability –
It should be feasible for the software to evolve to meet changing requirements.
- Correctness –
A software product is correct, if the different requirements as specified in the SRS document have been correctly implemented.
- Reusability –
A software product has good reusability, if the different modules of the product can easily be reused to develop new products.
- Testability –
Here software facilitates both the establishment of test criteria and the evaluation of the software with respect to those criteria.
- 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.
- Portability –
In this case, software can be transferred from one computer system or environment to another.
- 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:
- 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.
- 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.
- Software Engineering | Requirements Engineering Process
- Software Engineering | Re-engineering
- Software Engineering | Reverse Engineering
- Difference between Software Engineering process and Conventional Engineering Processs
- Software Engineering | MOCK (Introduction)
- Introduction to Faults in Software Engineering
- Difference between Forward Engineering and Reverse Engineering
- Introduction to Business Process Re-engineering
- Software Engineering | Halstead’s Software Metrics
- Software Engineering | Classification of Software Requirements
- Software Engineering | Classification of Software
- Software Engineering | Software Project Management Complexities
- Software Engineering | Role and Responsibilities of a software Project Manager
- Software Engineering | Seven Principles of software testing
- Software Engineering | Agile Software Development
- Software Engineering | Software Maintenance
- Software Engineering | Jelinski Moranda software reliability model
- Software Engineering | Schick-Wolverton software reliability model
- Software Engineering | Software Business and Development
- Software Engineering | Characteristics of good Software
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. 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.