“Software's Chronic Crisis” by W. Wayt Gibbs

Slides:



Advertisements
Similar presentations
System Analysis and Design CSUB Yong Choi. 2 Systems Analysis Phases Scope Definition Phase : WHAT PROBLEM – Is the project worth looking at ? Problem.
Advertisements

The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Object-Oriented Software Development CS 3331 Fall 2009.
MADALINA CROITORU Software Engineering week 1 Madalina Croitoru IUT Montpellier.
BUSINESS DRIVEN TECHNOLOGY
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Chapter 2 The Software Process
CLEANROOM SOFTWARE ENGINEERING
Software Engineering Concepts System Engineering Prof. Nancy Leveson Fall 2013.
“Not Fully Specified (Project) Objectives” CS524 – Software Engineering I Azusa Pacific University Professor Dr. Sheldon X. Liang Fall I 2007 Ernie Rosales.
MADALINA CROITORU Software Engineering week 1 Madalina Croitoru IUT Montpellier.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
What is Software Engineering? And why is it so hard?
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
June 1, 2004Computer Security: Art and Science © Matt Bishop Slide #18-1 Chapter 18: Introduction to Assurance Overview Why assurance? Trust and.
Capability Maturity Model (CMM) in SW design
Software Development Problems Range of Intervention Theory Prevention, Treatment and Maintenance Planning, Development and Use Cost of Intervention.
CS CS 5150 Software Engineering Lecture 20 Acceptance and Delivery.
SE is not like other projects. l The project is intangible. l There is no standardized solution process. l New projects may have little or no relationship.
3-Jul-15Software Engineering1 IS F341 : Software Engineering Dr. Yashvardhan Sharma Assistant Professor, CSIS Department, BITS-Pilani.
CSC230 Software Design (Engineering)
Software Reliability: The “Physics” of “Failure” SJSU ISE 297 Donald Kerns 7/31/00.
Chapter : Software Process
Software Project Management
Software Qualities. Unique Properties of Software (Teams: What are the properties of software that make it unique from other engineering disciplines?)
Objectives of the Lecture
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.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
©2009 Excel Experts. All rights reservedJune Johannesburg, South Africa Introduction An.
SE513 Software Quality Control Lecture01: Introduction to Software Quality Assurance Galin, SQA from Theory to Education Limited.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Software Process Improvement zCurrent Problems zPromising Approaches/Solutions zNature of Software Engineering zSoftware Engineering Research zRecent Developments.
Software Engineering Lecture # 17
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
Prof. Aiken CS 169 Lecture 61 Project Planning CS169 Lecture 6.
Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box Lafayette, LA 70504, USA.
1 Requirements Management - General concepts - Noureddine Abbadeni King Saud University College of Computer and Information Sciences Based on “Software.
Software Requirements: Overview and Motivation Gruia-Catalin Roman and Christopher Gill CSE 436 January 2007 Department of Computer Science and Engineering.
Ethics of Software Testing Thomas LaToza CS 210 Final Presentation 12 / 2 / 2002.
What is S.E? Describe S.E in terms of its mistakes Standish Group ( US - $250 Billion on IT projects. 31% projects are cancelled 52.7%
Process Improvement. It is not necessary to change. Survival is not mandatory. »W. Edwards Deming Both change and stability are fundamental to process.
Lecture 4. Software Engineering Body of Knowledge SWEBOK  Articulating a body of knowledge is an essential step toward developing a profession because.
1 EE29B Feisal Mohammed EE29B: Introduction to Software Engineering Feisal Mohammed Ph: x3156.
1 Levent Yilmaz COMP7730: Formal Methods in Software Engineering.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents.
Software Engineering (CSI 321) Software Process: A Generic View 1.
Software Engineering Introduction Slide 1 Software Engineering Introduction.
Software Engineering Facilitator Faisal Shafique Butt.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Slide #18-1 Introduction to Assurance CS461/ECE422 Fall 2008 Based on slides provided by Matt Bishop for use with Computer Security: Art and Science.
Saroj Saengphongumphai, May Thank you to every teachers, books, websites, posts, articles, etc.
Project Office Effectiveness Educating the Organization on How to Use a PMO February 22 nd, 2006.
Advanced Software Engineering Dr. Cheng
Why is software engineering worth studying?
Lecture 3 Prescriptive Process Models
Introduction to Software Engineering (2/2)
Software Process Improvement
Software Engineering (CSI 321)
Chapter 18: Introduction to Assurance
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
A possible solution: Personal Software Process (PSP)
Software engineering Lecturer: Nareena.
Construction and Materials Management System
THE SOFTWARE PROCESS (revisited)
Software Engineering I
Software Quality Assurance 2015
SVV Lec: software process assurance.
Capability Maturity Model
Presentation transcript:

“Software's Chronic Crisis” by W. Wayt Gibbs Presented by Daniel Thomasset EECS 810 - Fall 2005

Organization Software's chronic crisis Factors contributing to the crisis challenges of large software case studies impacts of software failures The need for software engineering software engineering defined Software engineering techniques CMM Standardization Concluding remarks

Software's Chronic Crisis The software crisis is chronic chronic - of long duration, continuing - marked by frequent reoccurance crisis - a crucial state of affairs in which a decisive change is impending; especially one with the possibility of an undesirable outcome Definitions: Merriam-Webster Dictionary, online

Challenges of Large Software Distributed and realtime systems distributed software is complex and has more paths of failure Human comprehension No single person can completely comprehend a large project Growth in hardware complexity hardware complexity doubles every 18 months Lack of standardization interfaces and methods for software construction can differ Lack of measurement time and cost are hard to estimate without empirical knowledge of the organization's capabilities

Case Study: Denver Airport A complex distributed software system baggage delivered by 4000 automated “telecars” 100 computers controlled movement using electric eyes, bar-code sensors, and radio receivers cost $193M for initial implementation Over budget, operating failure failure delayed airport opening one year (cost >$1M per day) canceled in August 2005 Reasons for failure high maintenance costs: $1M per month couldn't handle real-world errors Sources: Johnson, 2005 and Gibbs, 1994

Impacts of Software Failures Business impacts from IBM Consulting Group survey 55% of projects cost more than expected 68% took longer than estimated to complete 88% of projects had to be substantially redesigned Failed projects are not used 75% of large projects are operating failures or not used at all Public safety can be affected software controls trains, aviation, life support systems, and nuclear power plants

Case Study: Federal Aviation Administration (FAA) Advanced Automation System (AAS) replacement air-traffic control system contracted to IBM in 1983 with a budget of $2.6 billion >1M lines of code, 100s of computers Over budget, late, and unfinished in 1996, General Accounting Office (GAO) reports 57% of the budget was wasted 2/3 of project is canceled, the rest is late Reasons for failure FAA assumed that IBM would use engineering techniques GAO reports that “human factors” were the main reason for failure Sources: House, 2001 and Gibbs, 1994

Need for Software Engineering Software development is preindustrial “It's like musket making was before Eli Whitney” artisans using little standardization each piece is unique Consistent software quality requires a process “If we are ever going to lick this software crisis, we're going to have to stop this hand-to-mouth every-programmer-builds-everything-from-the-ground-up, preindustrial approach” Quotes: Brad Cox in Gibbs, 1994

Software Engineering First defined in1968 by the NATO Science Committee 50 software experts met to solve the software crisis defined software engineering as “the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”

The Engineering Process Important aspects of an engineering discipline systematic - establishes standard practices - allows repeatable results quantifiable - allows comparison of systems - allows estimation of time, cost, The process of improvement a systematic and quantifiable system allows for continuous process improvement the cycle 1. establish a system, do a project, measure the results 2. evaluate and refine the system 3. goto step 1

Capability Maturity Model The Capability Maturity Model (CMM) developed by the Software Engineering Institute (SEI) a quantifiable engineering process applied to software development that “provides a vision of software engineering and management excellence” defines levels of maturity from 1 to 5. updated version called Capability Maturity Model Integration (SEI, 2005) Results of Raytheon's transition from Level 1 to 3 most projects completed ahead of schedule and under budget productivity doubled savings of $7.80 for every dollar invested in CMM Quote: David Zubrow in Gibbs, 1994

CMM Levels

Other Techniques Formal Methods Growing Software Cleanroom mathematically prove that the algorithm is correct Growing Software start simple and grow until complete Cleanroom combines formal methods, statistical quality control, and evolutionary approach analogous to a hardware clean room - don't let in the bugs

Standardization Standard software pieces Standard processes Results interfaces become simpler allows standard tests Standard processes forces all software developers to use best-practices may require government involvement and licensing Results increases reliability reduces repeated mistakes facilitates budget estimation

Summary Software's chronic crisis Factors contributing to the crisis challenges of large software case studies impacts of software failures The need for software engineering software engineering defined Software engineering techniques CMM standardization

Conclusions Software development is hard complexity will always cause challenges Software engineering improves the process continuous improvement possible with method and measurement Industry is making progress in 1994, two CMM level 5 organizations today, eighty-five CMM level 5 organizations (SEI, 2005) Slow, directed growth there's no “silver bullet” research is required to make improvements in the process

Bibliography Gibbs, W. Wayt, “Software's Chronic Crisis”, Scientific American, September 1994. House of Representatives, Aviation Subcommittee, “FAA's efforts to modernize the Air Traffic Control system”, March 14, 2001. Johnson, Kirk, “Denver Airport Saw the Future: It Didn't Work”, New York Times, August 27, 2005. http://www.nytimes.com/2005/08/27/national/27denver.html Software Engineering Institute, “Capability Maturity Model Integration (CMMI) Overview”, 2005 http://www.sei.cmu.edu/cmmi/adoption/pdf/cmmi-overview05.pdf