
Software engineering applies a disciplined and systematic approach to the development of software, along with its ongoing maintenance and operation. It involves recognized software development processes that aim to improve the reliability and ease the maintenance of software.
As a discipline, software engineering requires the knowledge, tools and methods for software design, construction, testing and maintenance. Software engineering is closely related to computer science.