Why study Software Design/Engineering ?

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.
© 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.
Syllabus Case Histories WW III Almost Medical Killing Machine
1 Basic Definitions: Testing What is software testing? Running a program In order to find faults a.k.a. defects a.k.a. errors a.k.a. flaws a.k.a. faults.
MADALINA CROITORU Software Engineering week 1 Madalina Croitoru IUT Montpellier.
Motivation Why study Software Engineering ?. What is Engineering ? 2 Engineering (Webster) – The application of scientific and mathematical principles.
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.
A Gift of Fire Third edition Sara Baase
Lecture 3.
Software Failures Ron Gilmore, CMC Edmonton April 2006.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
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.
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
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.
CSE 403 Lecture 14 Safety and Security Requirements.
Liability for Computer Errors Not covered in textbook.
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.
© 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.
Forensic Software Engineering: Are Software Failures Symptomatic of Systemic Problems? Chris Johnson, University of Glasgow My name is Elisabeth.
1 IAF0620, 5.0 AP, Exam Jaan Raik ICT-524, , Digital systems verification.
CSE 403, Software Engineering Lecture 6
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
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-
Software Testing Introduction CS 4501 / 6501 Software Testing
Albert M. K. Cheng Embedded Real-Time Systems
Introduction SOFTWARE ENGINEERING.
CSE 403 Software Engineering
EE 585 : FAULT TOLERANT COMPUTING SYSTEMS B.RAM MOHAN
COMP60611 Directed Reading 1: Therac-25
ECE 103 Engineering Programming Chapter 2 SW Disasters
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
Reliability and Safety
Software Engineering Lecture 1 Introduction Adapted from:
Software Engineering INTRODUCTION
System design techniques
Chapter 1. Introduction Eric Braude and Michael Bernstein.
Week 13: Errors, Failures, and Risks
Design Joshua Lewis Project questions Assignment questions
What Is Good Software(Program)?
Why study Software Engineering ?
A Gift of Fire Third edition Sara Baase
Functions, Procedures, and Abstraction
Presentation transcript:

Why study Software Design/Engineering ? EECE 309: Software Design Why study Software Design/Engineering ?

What is Engineering ? 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 ? 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.

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

S/W Failure Example 1: Therac-25 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: Inadequate testing – one person tested the whole system Program did not check its internal values for consistency – user-error in data entry went unnoticed by the machine Did not anticipate errors and degrade gracefully

S/W Failure Example 2: Ariane 5 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.

S/W Failure Example 3: Knight Automatic trading software from Knight went berserk in Aug 2012 By the time problem was detected and fixed, total loss was $440 million Caused by testing module being included in the production code – setup erroneous trades

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

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

Techniques to reduce the cognitive complexity of software development 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

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