Software engineering is the systematic application of engineering approaches to the development of software. Software engineering is a computing discipline.
History of software engineering
From its beginnings in the 1960s, writing software has evolved into a profession concerned with how best to maximize the quality of software and of how to create it. Quality can refer to how maintainable software is, to its stability, speed, usability, testability, readability, size, cost, security, and number of flaws or "bugs", as well as to less measurable qualities like elegance, conciseness, and customer satisfaction, among many other attributes. How best to create high quality software is a separate and controversial problem covering software design principles, so-called "best practices" for writing code, as well as broader management issues such as optimal team size, process, how best to deliver software on time and as quickly as possible, work-place "culture", hiring practices, and so forth. All this falls under the broad rubric of software engineering.
Definition of software engineering
- The systematic application of scientific and technological knowledge, methods, and experience to the design, implementation, testing, and documentation of software
- The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software
- An engineering discipline that is concerned with all aspects of software production
- The establishment and use of sound engineering principles in order to economically obtain software that is reliable and works efficiently on real machines
- A branch of computer science that deals with the design, implementation, and maintenance of complex computer programs