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:
- Program is a set of instruction related each other where as Software Product is a collection of program designed for specific task.
- Programs are usually small in size where as Software Products are usually large in size.
- Programs are developed by individuals that means single user where as Software Product are developed by large no of users.
- In program, there is no documentation or lack in proper documentation.
In Software Product, Proper documentation and well documented and user manual prepared.
- Development of program is Unplanned, not Systematic etc but Development of Software Product is well Systematic, organised, planned approach.
- Programs provide Limited functionality and less features where as Software Products provides more functionality as they are big in size (lines of codes) more options and features.
- Software Engineering | Project size estimation techniques
- Types of Software Testing
- Software Testing | Basics
- Software Engineering | Architectural Design
- Software Engineering | Halstead’s Software Metrics
- Beta Testing | Software Testing
- Software Engineering | Debugging Approaches
- Pairwise Software Testing
- Software Engineering | COCOMO Model
- Software Engineering | Classification of Software Requirements
- Software Engineering | Classical Waterfall Model
- Software Engineering | Iterative Waterfall Model
- Software Engineering | Spiral Model
- Software Engineering | Requirements Engineering Process
- Software Engineering | Requirements Elicitation
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.
Improved By : AnimeshSahu