16.355 software engineering concepts 16.842 system engineering prof. nancy leveson fall 2013

21
16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

Upload: dorthy-dixon

Post on 17-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

16.355 Software Engineering Concepts16.842 System Engineering

Prof. Nancy Leveson

Fall 2013

Page 2: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

Is There A Problem?

• AAS (FAA Advanced Automation System) [$3-6B]• FBI CIC• IRS Modernization Program [$4B]• Denver Baggage System [$200M]• Mars Program losses (MCO, MPL, other close calls)• Hubble• X-33 Reusable Launch Vehicle• Military aircraft• Dreamliner (Boeing 787)

Page 3: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

Software Difficulties• Head of AF Systems Command: “Software is the Achilles heel

of weapons development”

• 7 out of every 10 major weapons development programs are encountering software problems and the rate is increasing

• Failure or cancellation rate of large software is over 20%

• 65% of very large systems (over 1,000,000 LOC) are cancelled before completion

• Average cancelled project in U.S. is about a year behind schedule and has consumed 200% of expected budget.

• Of completed projects– 2/3 experience schedule delays and cost overruns (bad

estimates?)– 2/3 experience low reliability and quality problems in first year of

deployment

Page 4: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

• Have you ever been on a project where the software was never finished or used?

• Have you been on a system engineering project that ran into serious difficulties?

Page 5: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

Some Frequently Cited Factors

• Underestimation of complexity

• Failure to establish appropriate control over requirements and/or scope

• Inadequate communication

• Failure to engage stakeholders

• Inadequate testing

• Lack of oversight or poor project management

• Poor quality implementations

• Lack of risk management

• Failure to specify/address performance requirements

• Poorly planned/managed transitions

• Excessive process to prevent previous problems

Page 6: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

Types of Problem Projects (Yourdan)

• Mission Impossible Likely to succeed, happy workers

• Ugly Likely to succeed, unhappy workers

• Kamikaze

Unlikely to succeed, happy workers

• Suicide Unlikely to succeed, unhappy workers

Page 7: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

Software Death March Projects

• Feature creep

• Thrashing

• Integration problems

• Overwriting source code (configuration control issues)

• Constant re-estimation

• Redesign and rewriting during test

• No documentation of design decisions

• Etc.

Page 8: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

Understanding the Problem

Page 9: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

Understanding the Problem (2)

Page 10: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

Laws of Maintenance (Belady and Lehman)

• Software will continually change

• Software will become increasingly unstructured as it changes

Page 11: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

• Why is software engineering hard?

• Is software engineering more difficult than hardware engineering?

• Why or why not?

Page 12: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

The Computer Revolution

Page 13: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

Accident with No Component Failures

Page 14: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

Abstraction from Physical Design

• Software engineers are doing physical design

• Most operational software errors related to requirements (particularly incompleteness)

• Software “failure modes” are different– Usually does exactly what you tell it to do

– Problems occur from operation, not lack of operation

– Usually doing exactly what software engineers wanted

Autopilot Expert Requirements Software

Engineer

Design of Autopilot

Page 15: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

The Curse of Flexibility

• “Software is the resting place of afterthoughts”

• No physical constraints – To enforce discipline on design, construction, and

modification

– To control complexity

• So flexible that start working with it before fully understanding what need to do

• The untrained can get partial success “Scaling up is hard to do”

• “And they looked upon the software and saw that it was good. But they just had to add one other feature …”

Page 16: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

Other Factors

• Large discrete state spaces– Continuous vs. discrete math

– Cannot test exhaustively

• Intangibility– Invisible interfaces

– Hard to experiment with and manage

– Hard to diagnose problems

• No historic usage information – To allow measurement, evaluation, and improvement of

standard designs over time

– Always specially constructed

– Usually doing new things

Page 17: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

Black Box Testing

Page 18: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

White Box Testing

Page 19: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

White Box Testing (2)

Page 20: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

Class Objectives

• Students will be able to evaluate SE techniques and approaches “It is important that students bring a certain ragamuffin barefoot

irreverence to their studies. They are here not to worship what is known, but to question it.” Jacob Bronowski, The Ascent of Man

“The developed theories … have rarely been subjected to empirical testing, and so their value remains unknown. They provide zealots with opportunities to market a rash of seminars and courses and to flood the literature with papers advocating the new technologies. When the theories are subjected to testing, what little evidence has been obtained sometimes suggests that the claimed benefits, in fact, may not exist.” Vessey and Weber

Arguments may involve:Proof by vigorous handwaving

Unsupported hypotheses False analogies

• Students will be able to exercise professional judgement in selecting an approach for a particular project

Page 21: 16.355 Software Engineering Concepts 16.842 System Engineering Prof. Nancy Leveson Fall 2013

Assignments

• No programming or class projects

• Reading summaries– Main ideas or themes

– Critical evaluation or specific questions to answer

– Any additional thoughts

• Some additional short assignments

• Additional reading for those preparing for Quals Exam