Software Engineering is the use of a systematic, disciplined, and quantifiable approach to the development of large-scale software systems; in other words, the application of engineering principles to software development. Software engineering directly addresses the problems that too often arise in large-scale software development.
Software engineering was introduced to address the issues of low-quality software projects. Problems arise when a software generally exceeds timelines, budgets, and reduced levels of quality. It ensures that the application is built consistently, correctly, on time and budget and within requirements. The demand for software engineering also emerged to cater to the tremendous rate of change in user requirements and environment on which application is supposed to be working.