Download presentation
Presentation is loading. Please wait.
1
Software Engineering - CSC 323
Introduction
2
The state of the practice...:
At a recent computer software engineering course in the US, the participants were given an awkward question to answer: "If you had just boarded an airliner and discovered that your team of programmers had been responsible for the flight control software, how many of you would disembark immediately?" Among the ensuing forest of raised hands only one man sat motionless. When asked what he would do, he replied that he would be quite content to stay on board. With his team's software, he reasoned, the plane was unlikely to even taxi as far as the runway, let alone take off.
3
Software development... Art? ...Craft? …or Science?
4
An Engineering Discipline?
A key difference between engineering and craftsmanship: The success of engineering projects can be assured beforehand through scientific analysis of their designs while the success of craftsmanship is attained through trial and error during long practice. However, some engineering projects have failed in new circumstances.
5
Problems BEFORE Software Engineering:
Late projects Cost overruns High maintenance costs Unreliable, inaccurate systems Poor project control Poor traceability of requirements Unpredictable development process
6
Origins of Software Engineering
NATO study group coins term NATO conference Garmisch, Germany Conference in Rome, Italy
7
Problems AFTER Software Engineering:
Late projects Cost overruns High maintenance costs Unreliable, inaccurate systems Poor project control Poor traceability of requirements Unpredictable development process
8
Definitions of Software Engineering
“The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently an real machines." Naur, P., and S. Randall, eds. Software Engineering: -A Report an a Conference Sponsored by the NATO Science Committee. NATO, 1969; quoted in Roger S. Pressman, Software Engineering: A Practitioner's Approach. New York: McGraw-Hill Book Company
9
Definitions of Software Engineering
“… the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed on time and within cost estimates.” - Fairley, Richard E. Software Engineering Concepts. New York: McGraw-Hill, 1985
10
Definitions of Software Engineering
“The disciplined application of engineering, scientific, and mathematical principles, methods, and tools to the economical production of quality software.” -Pressman, Roger S. Software Engineering: A Practitioner's Approach. New York: McGraw-Hill Book Company
11
Definitions of Software Engineering
“. . .software engineering is a discipline whose aim is the production of fault-free software, delivered on time and within budget, that satisfies the user’s needs. Furthermore, the software must be easy to modify when the user’s needs change.” Schach, Stephen R. Object-Oriented and Classical Software Engineering . 6th ed., New York: McGraw-Hill
12
Definitions of Software Engineering
“(1) The application of a systematic, disciplined, quantifiable approach to the development , operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1).” - IEEE Standards Collection: Software Engineering, IEEE Standard , IEEE, 1993.
13
Definitions of Software Engineering
“Software engineering is the discipline of developing and maintaining software systems that behave reliably and efficiently, are affordable to develop and maintain, and satisfy all the requirements that customers have defined for them.” The Overview Report, The Joint Task Force for Computing Curricula, a cooperative project of ACM, AIS, and IEEE-CS, 9/30/2005.
14
What is a “software engineer”?
“In the workplace, the term ‘software engineer’ is a job label. There is no standard definition for this term when used in a job description. Its meaning varies widely among employers. It can be a title equivalent to ‘computer programmer’ or a title for someone who manages a large, complex, and/or safety-critical software project. The public must be mindful not to confuse the discipline of software engineering with the ambiguous use of the term ‘software engineer’ as used in employment advertisements and job titles.” - The Overview Report, The Joint Task Force for Computing Curricula, a cooperative project of ACM, AIS, and IEEE-CS, 9/30/2005.
15
Definitions of Software Engineering
“Software Engineering: The process by which all fun is removed from computer programming.” -Anonymous
16
Let’s come up with a good definition!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.