Motivation Why study Software Engineering ?. What is Engineering ? 2 Engineering (Webster) – The application of scientific and mathematical principles.

Slides:



Advertisements
Similar presentations
The Therac-25: A Software Fatal Failure
Advertisements

A Gift of Fire, 2edChapter 4: Can We Trust the Computer?1 PowerPoint ® Slides to Accompany A Gift of Fire : Social, Legal, and Ethical Issues for Computers.
Concurrency: introduction1 ©Magee/Kramer 2 nd Edition Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Background Increasing use of automated systems Hardware and software technology are improving rapidly User interface technology is lagging Critical bottleneck.
MADALINA CROITORU Software Engineering week 1 Madalina Croitoru IUT Montpellier.
Cs2220: Engineering Software Class 1: Engineering Software? Fall 2010 University of Virginia David Evans.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
©Ian Sommerville 2000CS 365 Ariane 5 launcher failureSlide 1 The Ariane 5 Launcher Failure June 4th 1996 Total failure of the Ariane 5 launcher on its.
What is Software Engineering? And why is it so hard?
SWE Introduction to Software Engineering
A Gift of Fire Third edition Sara Baase
Jacky: “Safety-Critical Computing …” ► Therac-25 illustrated that comp controlled equipment could be less safe. ► Why use computers at all, if satisfactory.
CSE 341 S. Tanimoto Social/Ethical Issues - 1 Social and Ethical Issues in Programming Language Design Can harm be done by designers of programming languages?
Lecture 3.
Gerardo Schneider Department of Informatics University of Oslo Oslo, March 2009.
Chapter 1 - Introduction Lecture 1. Way back when... “The name ‘software engineering’ was proposed in 1969 at a NATO conference to discuss software development.
Software Failures Ron Gilmore, CMC Edmonton April 2006.
Software Design F28SD2 Nature of Software & Cost of Failure.
Why is software engineering worth studying?  Demand for software is growing dramatically  Software costs are growing per system  Many projects have.
INTRODUCTION & OVERVIEW SOFTWARE ENGINEERING SOFTWARE ENGINEERING INTRODUCTION AND OVERVIEW.
Therac 25 Nancy Leveson: Medical Devices: The Therac-25 (updated version of IEEE Computer article)
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.
Course: Software Engineering © Alessandra RussoUnit 1 - Introduction, slide Number 1 Unit 1: Introduction Course: C525 Software Engineering Lecturer: Alessandra.
1 Can We Trust the Computer? What Can Go Wrong? Case Study: The Therac-25 Increasing Reliability and Safety Perspectives on Failures, Dependence, Risk,
Software engineering. What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software.
CSE 403 Lecture 14 Safety and Security Requirements.
Security and Reliability THERAC CASE STUDY TEXTBOOK: BRINKMAN’S ETHICS IN A COMPUTING CULTURE READING: CHAPTER 5, PAGES
Digitaalsüsteemide verifitseerimise kursus1 Digitaalsüsteemide verifitseerimine IAF0620, 5.0 AP, E Jaan Raik IT-208,
CSc161 Software Quality Pete Sawyer & Alan Dix
Dimitrios Christias Robert Lyon Andreas Petrou Dimitrios Christias Robert Lyon Andreas Petrou.
An Introduction to Software Engineering. What is Software?
© 2008 Wayne Wolf Overheads for Computers as Components 2nd ed. System design techniques Quality assurance. 1.
15 October 2003Computer Science1 David Evans ComputerScience.
1 Software Engineering Ian Sommerville th edition Instructor: Mrs. Eman ElAjrami University Of Palestine.
SOFTWARE ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Slide 1 Critical Systems Specification 1.
Forensic Software Engineering: Are Software Failures Symptomatic of Systemic Problems? Chris Johnson, University of Glasgow My name is Elisabeth.
Engineers and Engineering Design 1. Seven Engineering Resources 1. People 2. Information 3. Time 4. Capital 5. Machines & Tools 6. Materials 7. Energy.
CSE 403, Software Engineering Lecture 6
CSCI 3428: Software Engineering Tami Meredith Chapter 1 Why Software Engineering.
Dr. Rob Hasker. Classic Quality Assurance  Ensure follow process Solid, reviewed requirements Reviewed design Reviewed, passing tests  Why doesn’t “we.
Lecture 6 Title: Project Cost Management MIS 434.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Chapter 8: Errors, Failures, and Risk Zach Archer Daniel O’Hara Eric Strittmatter.
Topic 10Summer Ariane 5 Some slides based on talk from Sommerville.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
What is Engineering Robotics 7/8. What is Engineering? What do you think of when the term “engineering” is used? What are some examples?
EECE 310 Software Engineering
Why is software engineering worth studying?
Increasing use of automated systems
Software Quality and Testing (CSC 4133)
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Why study Software Design/Engineering ?
Introduction SOFTWARE ENGINEERING.
COMP60611 Directed Reading 1: Therac-25
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Quality Assurance Lecture 1
Therac-25 Accidents What was Therac-25? Who developed it?
Why Object-oriented Programming?
A Gift of Fire Third edition Sara Baase
PowerPoint® Slides to Accompany
Chapter 1. Introduction Eric Braude and Michael Bernstein.
Week 13: Errors, Failures, and Risks
Social and Ethical Issues in Programming Language Design
What Is Good Software(Program)?
Why study Software Engineering ?
Computer in Safety-Critical Systems
A Gift of Fire Third edition Sara Baase
Presentation transcript:

Motivation Why study Software Engineering ?

What is Engineering ? 2 Engineering (Webster) – The application of scientific and mathematical principles to practical ends such as the design, manufacture, and operation of efficient and economical structures, machines, processes, and systems.

Is Software Engineering ? “Engineering is design under constraint… Engineering is synthetic - it strives to create what can be, but it is constrained by nature, by cost, by concerns of safety, reliability, environmental impact, manufacturability, maintainability and many other such 'ilities.'...” William Wulf and George Fisher

Moore’s Law – Compute Power

Constraints of Software Engineers Not like those for “real” engineers: Weight, physics, etc. Complexity of what we can understand Most important constraints: Limits of human memory Cost of human effort This class is about managing complexity to efficiently produce reliable, complex software systems.

Why is software difficult to get right ? 6 Human beings are not accustomed to being perfect, and few areas of human activity demand it. Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program. -Frederick P. Brooks, "The Mythical Man- Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)”, 1965

Software Complexity 7 Growth in size of Linux Kernel between 1991 and 2003

S/W Failure Example 1: Therac-25 8 Radiation machine produced by Atomic Energy of Canada In 1986, delivered massive overdoses of radiation injuring 100 patients and killing 3 Caused by a Software error (race condition) that led to the wrong beam being engaged Main reasons for the failure: 1.Inadequate testing – one person tested the whole system 2.Program did not check its internal values for consistency – user- error in data entry went unnoticed by the machine 3.Did not anticipate errors and degrade gracefully

S/W Failure Example 2: Ariane 5 9 Ariane 5 rocket took off but within seconds veered dangerously from its flight path and self-destructed – Ariane 5 code was ported from Ariane 4 code which had a much smaller range of orbital values. – Ariane 5 needed a wider range of values, which led to the overflow of some of the internal variables. – This caused a software exception. Unfortunately, exception handling was disabled, and hence the entire system crashed.

Down-to-earth examples of S/W Failures 10 Windows BSOD Amazon.com outage Can you think of examples from your own experiences ?

Software Failures Vs. Bridge Failures 11 Bridge Failures – Failure to adhere to the laws of physics Software failures – Failure to adhere to sound design principles Tacoma narrows, 1940

Techniques to reduce the cognitive complexity of software development 12 Abstraction: Information hiding for divide & conquer Specifications: Write it down precisely & test it

Specifications …

Summary Software is everywhere – bugs in software can have serious consequences Software development (on large scale) is hard – Too many details lead to errors – hard to reason about – Important to reduce the cognitive complexity of software Abstraction: Art of hiding unimportant details and generalizing across multiple entities – Key technique to enable modular development – Write down precise specifications wherever possible 14

Further Reading Fred Brooks, “The mythical man month”, Addison Wesley, 2 nd edition, Henry Petroski, “To engineer is human: The role of failure in successful design”, 1 st edition, Nancy Leveson, “Safeware, System Safety and Computers”, Addison-Wesley, – Software accidents and their provenance