UFCE8V-20-3 Information Systems Development SHAPE Hong Kong 2010/11

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: ____________________.
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.
No Silver Bullet “There is no single development, in either technology or management technique, which by itself promises even one order-of magnitude improvement.
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
“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.
No Silver Bullet – Essence and Accident in Software Engineering.
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.
“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.
Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents.
1 No Silver Bullet Brooks rides again…. 2 Essential Difficulties What are these “essential difficulties” that Brooks is referring to? Complexity Conformity.
Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,
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.
Disciplined Software Engineering Lecture #3 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
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
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
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
PRESENTATION 2 CS 5391 Survey of Software Engineering Chang-Ho Lee No Silver Bullet: Essence and Accidents of Software Engineering By Frederick P. Brooks,
Advanced Software Engineering Dr. Cheng
Prototyping in the software process
Why is software engineering worth studying?
Chapter 1- Introduction
Software Requirements
Fred Brooks - A Software Engineering Icon - “No Silver Bullet”
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
The Systems Engineering Context
Complexity Time: 2 Hours.
Software Engineering and Best Practices
CS701 SOFTWARE ENGINEERING
CSC480 Software Engineering
Informatics 43 – March 31, 2016.
Project Planning is a waste of time!!!
Why Object-oriented Programming?
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.
Members: Keshava Shiva Sanjeeve Kareena
CSC 480 Software Engineering
What Is Good Software(Program)?
Introduction Software maintenance:
From Use Cases to Implementation
Presentation transcript:

UFCE8V-20-3 Information Systems Development SHAPE Hong Kong 2010/11 Lecture 5 : 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 – Other things are too, however • 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

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…” Notes are taken from a presentation given by Kenneth M. Anderson, Spring 2001