Definition of Software Engineering - 04
Software engineering is an engineering discipline which is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use. In this definition there is two key phases,
"Engineering discipline" - Engineers make things work. They apply theories, methods and tools where these are appropriate but they use them selectively and always try to discover solutions to problems even when there are no applicable theories and methods to support them. Engineers also recognize that they must work to organizational and financial constraints ,so they look for solutions within these constraints.
"All aspects of software production" - Software engineering is not just concerned with the technical process of software development but also with activities such as software project management and with the development of tool, methods and theories to support software production.