software engineering
In this topic book, you will cover the following:
- What is software engineering?
- The need for software engineering.
The term software engineering is composed of two words, software and engineering.
- Software is more than just a program code. A program is an executable code, which serves some computational purpose. Software is considered to be a collection of executable programming code, associated libraries and documentations. Software, when made for a specific requirement, is called software product.
- Engineering on the other hand, is all about developing products using well-defined, scientific principles and methods. So, we can define software engineering as an engineering branch associated with the development of software product using well-defined scientific principles, methods, and procedures.
The outcome of software engineering is an efficient and reliable software product. The Institute of Electrical and Electronics Engineers (IEEE) defines software engineering as ‘The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.’
The need of software engineering arises due to the higher rate of change in user requirements and environment on which the software is working.
Large software
It is easier to build a wall than to a house or building, likewise, as the size of software becomes large, engineering has to step in to define a scientific process for it.
Scalability
If the software process is not based on scientific and engineering concepts, it will be easier to re-create new software than to scale an existing one.
Cost
The hardware industry has demonstrated its prowess by significantly reducing the prices of computer and electronic hardware through large-scale manufacturing. However, the cost of software remains high if proper processes are not implemented.
Dynamic Nature
The always growing and adapting nature of software hugely depends upon the environment in which the user works. If the nature of software is always changing, new enhancements need to be done to existing software. This is where software engineering plays a crucial role.
Quality management
A better software development process provides better quality software products.