No Silver Bullet “There is no single development, in either technology or management technique, which by itself promises even one order-of magnitude improvement.

Slides:



Advertisements
Similar presentations
Chapter 4 Design Approaches and Methods
Advertisements

© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
INFORMATION TECHNOLOGY IN BUSINESS AND SOCIETY SESSION 20 – HOW SOFTWARE IS MADE SEAN J. TAYLOR.
Introduction to Software Engineering Lecture 3 André van der Hoek.
CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1.
The Mythical Man-Month by Fred Brooks (I) Published 1975, Republished 1995 Experience managing the development of OS/360 in Central Argument –Large.
No Silver Bullet - Essence and Accident in Software Engineering By: R. Adam Mead.
Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering.
11.1 Lecture 11 CASE tools IMS Systems Design and Implementation.
What is Software Engineering? And why is it so hard?
No Silver Bullet Essence and Accidents of Software Engineering By Frederick P. Brooks Frederick P. Brooks Presentation by Yan Qi
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Processes: Traditional CSCI102 - Systems ITCS905 - Systems MCS Systems.
“No Silver Bullet” by F. Brooks
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
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.
Course Introduction and Overview of Software Engineering Richard N. Taylor ICS 221 Fall 2002.
SOFTWARE CRISIS SOLUTIONS? © University of LiverpoolCOMP 319slide 1.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Essence and Accident in Software Engineering By: Mike Hastings.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
No Silver Bullet – Essence and Accident in Software Engineering.
HW/SW/FW Allocation – Page 1 of 14CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Allocation of Hardware, Software, and Firmware.
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
6-January-2003cse Introduction © 2003 University of Washington1 Introduction CSE 403, Winter 2003 Software Engineering
CSE 303 – Software Design and Architecture
“No Silver Bullet” - refired
No Silver Bullet. CS460 - Senior Design Project I (AY2004)2 No silver bullet "No Silver Bullet" –– a paper by Fred Brooks, Professor of Computer Science.
Intro to Architecture – Page 1 of 22CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Introduction Reading: Chapter 1.
1 No Silver Bullet Brooks rides again…. 2 Essential Difficulties What are these “essential difficulties” that Brooks is referring to? Complexity Conformity.
Mr C Johnston ICT Teacher BTEC IT Unit 06 - Lesson 01 Introduction to Computer Programming.
Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa REQUIREMENT SPECIFICATION Today: Requirements Specification.
CSE 308 Software Engineering Software Engineering Strategies.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
The Art of Estimating Programming Tasks Adriana Lopez Development Director Dragon Age II.
Slide 2.1 CHAPTER 2 THE SOFTWARE PROCESS. Slide 2.2 Overview l Client, Developer, and User l Requirements Phase l Specification Phase l Design Phase l.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
No Silver Bullet – Essence and Accident “Not only are there no silver bullets now in view, the very nature of software makes it unlikely that there will.
“No Silver Bullet”. No Silver Bullet  "No Silver Bullet" –– a paper by Fred Brooks, Professor of Computer Science at University of North Carolina in.
Software Design Process
Open Source as a different Silver Bullet Carlo Daffara Conecta Srl, AMOS project Advancing the research.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Pertemuan 1 Introduction to Software Engineering Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010.
Evaluating Requirements
By David Sanders Title Explanation  Werewolves are quite terrifying, simply because they transform unexpectedly into horrors. To kill werewolves,
CS3320-Chap21 Office Hours TR 1:00-2:15 PM W 2:30-3:30 PM By appointment.
1 FPB 11/24/13 Nuggets from The Mythical Man-Month Fred Brooks University of North Carolina at Chapel Hill
“The Role of Experience in Software Testing Practice” A Review of the Article by Armin Beer and Rudolf Ramler By Jason Gero COMP 587 Prof. Lingard Spring.
THE PHOENIX ARCHITECTURE A New Approach to Student Satellite Software Riley Pack University of Colorado at Boulder.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
1 Software Requirements Descriptions and specifications of a system.
PRESENTATION 2 CS 5391 Survey of Software Engineering Chang-Ho Lee No Silver Bullet: Essence and Accidents of Software Engineering By Frederick P. Brooks,
Fred Brooks - A Software Engineering Icon - “No Silver Bullet”
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
The Systems Engineering Context
CSC480 Software Engineering
Informatics 43 – March 31, 2016.
Accidental and Essential Problems Excise Tasks
Why Object-oriented Programming?
UFCE8V-20-3 Information Systems Development SHAPE Hong Kong 2010/11
Nuggets from The Mythical Man-Month Fred Brooks University of North Carolina at Chapel Hill ONR_Updated.
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
“No Silver Bullet” by F. Brooks
COCOMO 2 COCOMO 81 was developed with the assumption that a waterfall process would be used and that all software would be developed from scratch. Since.
What Is Good Software(Program)?
Presentation transcript:

Fred Brooks’ – No Silver Bullet : Essence and Accidents of Software Engineering

No Silver Bullet “There is no single development, in either technology or management technique, which by itself promises even one order-of magnitude improvement within a decade in productivity, in reliability, in simplicity.” -- Fred Brooks, 1986 i.e. There is no magical cure for the “software crisis”

Why? Essence and Accidents Brooks divides the problems facing software engineering into two categories - essence : difficulties inherent in the nature of software - accidents : difficulties related to the production of software Brooks argues that most techniques attack the accidents of software engineering

An Order of Magnitude In order to improve the development process by a factor of 10 – the accidents of software engineering would have to account for 9/10ths of the overall effort – tools would have to reduce accidents to zero Brooks – doesn’t believe the former is true and – the latter is highly unlikely, even if it was true

The Essence Brooks divides the essence into four subcategories – complexity – conformity – changeability – invisibility Lets consider each in turn

Complexity Software entities are amazingly complex – No two parts (above statements) are alike Contrast with materials in other domains – They have a huge number of states Brooks claims they have an order of magnitude more states than computers (e.g. hardware) do – As the size of the system increases, its parts increase exponentially

Complexity, continued Problem – You can’t abstract away the complexity Physics models work because they abstract away complex details that are not concerned with the essence of the domain; with software the complexity is part of the essence! – The complexity comes from the tight interrelationships between heterogeneous artifacts: specs, docs, code, test cases, etc.

Complexity, continued Problems resulting from complexity – difficult team communication – product flaws – cost overruns – schedule delays – personnel turnover (loss of knowledge) – unenumerated states (lots of them) – lack of extensibility (complexity of structure) – unanticipated states (security loopholes) – project overview is difficult (impedes conceptual integrity)

Conformity A significant portion of the complexity facing software engineers is arbitrary Consider a system designed to support a particular business process : – New VP arrives and changes the process – System must now conform to the (from our perspective) arbitrary changes imposed by the VP

Conformity, continued Other instances of conformity – Non-standard module or user interfaces Arbitrary since each created by different people – not because a domain demanded a particular interface Adapting to a pre-existing environment May be difficult to change the environment however if the environment changes, the software system is expected to adapt! It is difficult to plan for arbitrary change!

Changeability Software is constantly asked to change – Other things are too, however manufactured things are rarely changed – the changes appear in later models – automobiles are recalled infrequently – buildings are expensive to remodel With software, the pressures are greater – software = functionality (plus its malleable) functionality is what often needs to be changed!

Invisibility Software is invisible and unvisualizable – In contrast to things like blueprints here geometry helps to identify problems and optimizations of space – Its hard to diagram software We find that one diagram may consist of many overlapping graphs rather than just one – flow of control, flow of data, patterns of dependency, etc. This lack of visualization deprives the engineer from using the brain’s powerful visual skills

What about X? Brooks argues that past breakthroughs solve accidental difficulties – High-level languages – Time-Sharing – Programming Environments New hopefuls – Ada, OO Programming, AI, expert systems, “automatic” programming, etc.

Promising Attacks on Essence Buy vs. Build – Don’t develop software at all! Rapid Prototyping – Brooks buys in Incremental Development – grow, not build, software Great designers

No Silver Bullet Refired Brooks reflects on the “No Silver Bullet” paper, ten years later – Lots of people have argued that their methodology is the silver bullet If so, they didn’t meet the deadline of 10 years! – Other people misunderstood what Brooks calls “obscure writing” For instance, when he said “accidental”, he did not mean “occurring by chance”

The size of “accidental” effort Some people misunderstood his point with the “9/10ths” figure – Brooks doesn’t actually think that accidental effort is 9/10th of the job its much smaller than that – As a result, reducing it to zero (which is probably impossible) will not give you an order of magnitude improvement

Obtaining the Increase Some people interpreted Brooks as saying that the essence could never be attacked – That’s not his point however; he said that no single technique could produce an order of magnitude increase by itself He argued that several techniques in tandem could achieve that goal but that requires industry-wide enforcement and discipline (e.g. web standards)

Obtaining the Increase, continued Brooks states : “We will surely make substantial progress over the next 40 years; an order of magnitude over 40 years is hardly magical…” These slides are taken from a presentation given by Kenneth M. Anderson, Spring 2001