Software Engineering Defined
1. The computer science discipline concerned with developing large applications. Software engineering covers not only the technical aspects of building software systems, but also management issues, such as directing programming teams, scheduling, and budgeting. (Webopedia)
2. Software engineering (SE) is the profession of people who create and maintain software by applying technologies and practices from computer science, project management, engineering, application domains and other fields. (Wikipedia)
3. Software Engineering has come to mean at least two different things in our industry. First of all the term "software engineer" has generally replaced the term "programmer". So, in that sense there is a tendency to extrapolate in people's minds that Software Engineering is merely the act of programming. Secondly, the term "Software Engineering" has been used to describe "building of software systems which are so large or so complex that they are built by a team or teams of engineers". (Software Engineering Yellow Pages)
4. ACM Software Engineering 2004
5. DEFINITIONS OF SOFTWARE ENGINEERING

1. The computer science discipline concerned with developing large applications. Software engineering covers not only the technical aspects of building software systems, but also management issues, such as directing programming teams, scheduling, and budgeting. (Webopedia)
See related topics and documents

2. Software engineering (SE) is the profession of people who create and maintain software by applying technologies and practices from computer science, project management, engineering, application domains and other fields. (Wikipedia)
See related topics and documents

3. Software Engineering has come to mean at least two different things in our industry. First of all the term "software engineer" has generally replaced the term "programmer". So, in that sense there is a tendency to extrapolate in people's minds that Software Engineering is merely the act of programming. Secondly, the term "Software Engineering" has been used to describe "building of software systems which are so large or so complex that they are built by a team or teams of engineers". (Software Engineering Yellow Pages)
See related topics and documents

4. ACM Software Engineering 2004
See related topics and documents
4.1 "The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and works on real machines" [Bauer 1972].
4.2 "Software engineering is that form of engineering that applies the principles of computer science and mathematics to achieving cost-effective solutions to software problems." [CMU/SEI-90-TR-003]
4.3 "The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software" [IEEE 1990].

5. DEFINITIONS OF SOFTWARE ENGINEERING
See related topics and documents
5.1 College of New Jersey
5.1.1 Software Engineering is the computer science discipline concerned with developing large software systems. Software engineering covers both the technical aspects of building large systems (analysis, specification, design, hardware/software selection, database management, implementation, testing, documentation, training) and management issues such as project management.
5.2 Florida A&M University
5.2.1 The practice of SE is the merging of the three disciplines of management, development, and quality assurance of computer systems. It requires a basic knowledge of computer science on topics such as computer organization, algorithm analysis, data structures, programming languages, operating systems, and discrete mathematics automata. It requires basic engineering knowledge of computer organization, computer architecture, and digital theory. It requires knowledge of issues related to reliability, verification, and validation of software as well as issues related to project and process management. It should educate students in areas of real-time and embedded systems, information or financial systems, distributed systems, user interfaces, and networks.
5.3 George Mason University
5.3.1 The application of well-documented principles, techniques, and technologies to develop software that is of high quality, where the quality must satisfy goals in terms of measurable criteria such as reliability, safety, maintainability, cost, usability, and efficiency.
5.4 Milwaukee School of Engineering
5.4.1 Software Engineering is the application of engineering concepts, techniques, and methods to the development of software systems. [Mike Lutz, RIT, 1995]
5.5 Monmouth University
5.5.1 If I were trying to define SE I would take all of the above statements and try to compress them into the smallest set of sentences and words that capture all of the ideas in all of these descriptions.
5.6 Monmouth University (updated on 2/29/2000)
5.6.1 Software engineering requires education, training or experience in mathematics, physics, chemistry, computer organization and architecture, programming languages, algorithm analysis and design, data structures, operating systems, requirements analysis and specification, software design and architecture, testing and maintenance, project management and engineering economics.
5.6.2 The practice of software engineering is the provision of a service involving the creative, systematic, disciplined and quantifiable application of knowledge from the areas outlined above to problems in the areas of real-time, embedded, information, financial, networking or communications applications that can be solved by the development and operation of software systems that are large, reliable, economical and efficient in their use of computer hardware.
5.7 Oxford University (Dr. John Nicholls)
5.7.1 "SOFTWARE ENGINEERING: The construction of useful IT systems, by teams of people, with limited resources"
Untitled
The word "useful" draws attention to the idea of utility, serving a purpose, meeting requirements. Not doing something for its own sake (as science sometimes does) but for a social, or economic, or strategic purpose.
The phrase "by teams of people" embodies the idea of engineering as a group activity. In industry, and other parts of applied computing, the notion of a lone software engineer is rare. Working in a team is central to many engineering activities, and can sometimes cause as many problems as the technology.
The phrase "with limited resources" allows attention to be given to costs, the available amounts of human effort, machine resources, and to the timely delivery of results.
5.8 Southern Polytechnic State University
5.8.1 Software Engineering has emerged nationally as a specialized area of computer science that emphasizes solving the problems and complex issues associated with developing and maintaining mission-critical software to meet the needs of business and industry. It uses the life-cycle concept from traditional engineering with an emphasis on specification, design, and implementation but calls on the focused application of computer science concepts rather than those of traditional engineering.
5.9 Swinburne University of Technology
5.9.1 The use of engineering principles, in the specification, design, implementation, testing and deployment of software systems, so as to ensure that these systems meet their requirements, and are developed effectively and efficiently within required time and budget constraints
5.10 Texas Tech University
5.10.1 Software Engineering is the application of the engineering process to the development of software, regardless of the application.
5.11 University of Missouri-Kansas City
5.11.1 My basic principle is that you don’t make decisions because they are easy; you don’t make them because they are cheap; you don’t make them because they are popular; you make them because they are right. --- Theodore Hesburgh, former president of Notre Dame
5.12 University of Nebraska
5.12.1 The systematic approach to the development and maintenance of software systems whose complexity exceeds the capacity of any individual to fully understand it.
5.13 University of North Florida
5.13.1 Software engineering is the process of designing and building computer software within an accepted set of standards for some useful purpose. A software engineering program is one which prepares students to design and build software within an accepted set of standards for some useful purpose; i.e., to provide a foundation for becoming a practicing software engineer. A program for this purpose must prepare students both for using the means and for understanding the demands of the practice of software development.
5.14 University of Ottawa
5.14.1 Solving customers’ problems by the development of high quality software within cost, time and other constraints. This definition emphasizes that SE is a problem-solving discipline.
5.15 University of Queensland
5.15.1 Software Engineering is the systematic approach to the development, operation, maintenance and retirement of software. The term, software engineering, is an acknowledgement of the challenges associated with large-scale, high quality software:
5.16 University of Stuttgart (Updated March 2, 2000)
5.16.1 Software engineering is any activity towards developing and maintaining software that aims at low overall cost and/or high overall benefit, or which enables well understood and reliable organization and scheduling of the development and implementation process.
5.17 University of Tennesse, Knoxville (via Carl Hardeman and Stacy Prowell)
5.17.1 Software is the application of scientific knowledge and trained engineering judgement to solve problems related to software.
5.17.2 The economical production of provably correct software.
5.18 University of the West of England, Bristol
5.18.1 [Stewart Green] Software Engineering involves the use of a variety of methods and tools to engineer high-quality software-intensive systems to meet real-world needs on-time and within budget.
5.18.2 [Tony Solomonides] Here are two extracts from course publicity. They are clearly not intended to be rigorous definitions; rather they aim to give a clear impression to the intending student what they may expect to study:
5.19 BSc Software Engineering
5.19.1 (students will acquire) ... the professional, technical, and management skills that they will need in order to make effective contributions to teams building large, complex software systems.
5.20 MSc Software Engineering
5.20.1 The professional, technical, theoretical and management knowledge required to make an effective contribution to teams building large and complex software systems;
5.20.2 The skills required for effective project management including project planning, project monitoring, and quality control;
5.20.3 The skills and knowledge necessary to carry out research in Software Engineering.