Indiana _University - Purdue_University  Fort  Wayne Home Home  
School of Engineering, Technology and Computer Science
Indiana University - Purdue University Fort Wayne
Australia Canada Ecuador Germany Ireland New_Zealand Slovakia Spain Sweden United_Kingdon United_States
Students :: Prospective Students :: Alumni :: Visitors :: Friends :: Faculty/Staff :: Home :: ISEAP :: ISEUC::
Home
Survey Responses
Sofware Engineering Consortium

Degree Level

Academic Dept

Countries Responding

Definitions of SE

Our Sponsors

Contact Us

 

Definitions of Software Engineering

 


SOFTWARE ENGINEERING SURVEY
CONDUCTED UNDER AUSPICES OF
JOINT PROJECT OF ACM AND IEEE-COMPUTER SOCIETY
BY
UNIVERSITY OF MICHIGAN-DEARBORN
TEXAS TECH UNIVERSITY
UNIVERSITY OF TEXAS-AUSTIN
UNIVERSITY OF ALASKA-FAIRBANKS
OCTOBER 30, 2002

DEFINITIONS OF SOFTWARE ENGINEERING: OWN

Cal Poly-San Luis Obispo
Deployment-oriented software development

College of New Jersey
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.

Colorado Technical University
It’s hard to disagree (fully) with any of those but some definitions are much more limited in their scope than others.

Florida A&M University
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.

George Mason University
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.
Also has comments about the ones mentioned in the survey, to wit:
1. Too broad and ambiguous to be useful
2. Better, but the definition is recursive and the emphasis on “large and critical systems” is specious and unnecessary.
3. Pretty good, but leaves out the notion of “quality”, which in my opinion is essential.
4. “apparently” really liked it – gave it “XXX”
5. This is not a definition of SWE, but a partial description of what software engineers should know. As such, I agree wholeheartedly.

Milwaukee School of Engineering
Software Engineering is the application of engineering concepts, techniques, and methods to the development of software systems. [Mike Lutz, RIT, 1995]

Monmouth University
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.

Monmouth University (updated on 2/29/2000)
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.

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.

Oxford University (Dr. John Nicholls)
I can't offer any statistics on courses in SE, as I am now retired. However, I'd like to suggest a definition of Software Engineering I found useful when I taught SE to Masters students here in Oxford and other places. It's nice and short.

"SOFTWARE ENGINEERING: The construction of useful IT systems, by teams of people, with limited resources"

I used the definition to draw students' attention to the following topics:

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.

Southern Polytechnic State University
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.

Swinburne University of Technology
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

Texas Tech University
Software Engineering is the application of the engineering process to the development of software, regardless of the application.

University of Missouri-Kansas City
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

University of Nebraska
The systematic approach to the development and maintenance of software systems whose complexity exceeds the capacity of any individual to fully understand it.

University of North Florida
A software engineer is a trained professional who designs and builds computer software within an accepted set of standards for some useful purpose. Successful practitioners go through an extensive apprenticeship period, which may involve a good bit of programming activity, but with increasing responsibilities in both design and team leadership.

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.

University of Ottawa
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.

University of Queensland
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:
· Size and complexity are significant issues
· Cooperation between developers, clients and users is essential, and
· Software must evolve of time to maintain its value.
A software engineer uses the principles of computer science, engineering, design, management, psychology, sociology, and other disciplines where necessary.

University of Stuttgart (Updated March 2, 2000)
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 organisation and scheduling of the development and implementation process.

University of Tennesse, Knoxville (via Carl Hardeman and Stacy Prowell)
Software is the application of scientific knowledge and trained engineering judgement to solve problems related to software.
Also suggested the definition from “cleanroom people” notably Jesse Poore:
The economical production of provably correct software.

University of the West of England, Bristol
[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.

[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:

BSc Software Engineering
(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.

MSc Software Engineering
- the professional, technical, theoretical and management knowledge required to make an effective contribution to teams building large and complex software systems;
- the skills required for effective project management including project planning, project monitoring, and quality control;
- the skills and knowledge necessary to carry out research in Software Engineering.