No Silver Bullet Essence and Accidents of Software Engineering By Frederick P. Brooks Frederick P. Brooks Presentation by Yan Qi 2005-04-11.

Slides:



Advertisements
Similar presentations
CS565 Advanced Software Development Software Development Process A. O’Riordan, 2006, 2007.
Advertisements

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Essence and Accident Inherent Difficulties –Complexity –Conformity.
Delivering peace of mind Architecting for Changes with UML Emmanuel FUCHS C2 Architect.
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.
Software Testing and Quality Assurance
Chapter 1: Key Points Program = Useful to the programmer in the garage Programming Product = Useful to anyone Programming System Component = Part of a.
What is Software Engineering? And why is it so hard?
Readings in Computer Science: Software Engineering No Silver Bullet Essence and Accidents of Software Engineering Frederick P. Brooks, Jr. Prepared by.
“No Silver Bullet” by F. Brooks
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Design Recovery II Informatics 122 Alex Baker. Cake Recovery – Opinions? How difficult was this? Why?
Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.
September 1999 Overview Software Engineering1 CS466: Tools and Processes for Software Gio Wiederhold Dorothea Beringer Anca-Juliana Stoica.
Course Introduction and Overview of Software Engineering Richard N. Taylor ICS 221 Fall 2002.
SOFTWARE CRISIS SOLUTIONS? © University of LiverpoolCOMP 319slide 1.
CS189A/172 - Winter 2008 Lecture 2: Software’s Chronic Crisis (No Silver Bullet)
COMS W3156: Software Engineering, Fall 2001 Lecture #24: The End…? Janak J Parekh
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Essence and Accident in Software Engineering By: Mike Hastings.
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
272: Software Engineering Fall 2012 Instructor: Tevfik Bultan Lecture 0: Introduction.
No Silver Bullet – Essence and Accident in Software Engineering.
“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.
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,
Core Concepts of Geoinformatics: introdcution Gilberto Camara National Institute for Space Research, Brazil Institut für Geoinformatik, Univ Münster.
Models for Language Engineering Bruno F. Barroca.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki 1 Machine Learning.
Object-Oriented Software Engineering - The professional Developer’s Guide(on OMG’s OOA/OOD proposal) George Wilkie.
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.
 What is Modeling What is Modeling  Why do we Model Why do we Model  Models in OMT Models in OMT  Principles of Modeling Principles of Modeling 
Design Principle & Patterns by A.Surasit Samaisut Copyrights : All Rights Reserved.
OOAD Unit – I OBJECT-ORIENTED ANALYSIS AND DESIGN With applications
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
Software Project Estimation IMRAN ASHRAF
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. The Big Idea Software Architecture Lecture 1.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
“Planning” or “why use objects?” ACO101: Introduction to Computer Science.
RE-ENGINEERING AND DOMAIN ANALYSIS BY- NISHANTH TIRUVAIPATI.
Pertemuan 1 Introduction to Software Engineering Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010.
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.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
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)
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
High-level language programming paradigms. Programming languages come in many forms or 'paradigms'. Each form of language offers advantages over other.
Software Design Process. What is software? mid-1970s executable binary code ‘source code’ and the resulting binary code 1990s development of the Internet.
PRESENTATION 2 CS 5391 Survey of Software Engineering Chang-Ho Lee No Silver Bullet: Essence and Accidents of Software Engineering By Frederick P. Brooks,
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Fred Brooks - A Software Engineering Icon - “No Silver Bullet”
Unified Modeling Language
Complexity Time: 2 Hours.
Software Processes.
Informatics 43 – March 31, 2016.
Why Object-oriented Programming?
UFCE8V-20-3 Information Systems Development SHAPE Hong Kong 2010/11
“No Silver Bullet” by F. Brooks
What Is Good Software(Program)?
Presented by KARRI GOVINDA RAO ,
Presentation transcript:

No Silver Bullet Essence and Accidents of Software Engineering By Frederick P. Brooks Frederick P. Brooks Presentation by Yan Qi

What is “ 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 * According to Brooks, “ Silver Bullet ” should be a kind of technique which can lead much improvement in the software development.

Why no Silver Bullet? Essence and Accidents Essence and Accidents Essence Essence Difficulties inherent in the nature of software; Difficulties inherent in the nature of software; The complex conceptual structures that compose the abstract software entity. The complex conceptual structures that compose the abstract software entity. Accidents Accidents Difficulties related to the production of software Difficulties related to the production of software Representation of the abstract essences in programming language, and mapping from the abstract essences onto machine languages with space and speed constraints. Representation of the abstract essences in programming language, and mapping from the abstract essences onto machine languages with space and speed constraints.

Why no Silver Bullet? Difficulties of Essence Difficulties of Essence The essence of a software entity is a construct of interlocking concepts: data sets, relationships among data items, algorithms and invocation of functions. The essence of a software entity is a construct of interlocking concepts: data sets, relationships among data items, algorithms and invocation of functions. The essence is abstract, in that it may be represented in many different ways. The essence is abstract, in that it may be represented in many different ways. Even though the essence is abstract it is highly precise and richly detailed. Even though the essence is abstract it is highly precise and richly detailed.

Essence Four categories are divided: Four categories are divided: Complexity Complexity Compared with materials in other domains, almost no two parts in the software are alike. Compared with materials in other domains, almost no two parts in the software are alike. There are a huge number of states, much more than in the hardware. There are a huge number of states, much more than in the hardware. The number of entities increases exponentially with the size of the system. The number of entities increases exponentially with the size of the system. There are many tight interrelationships between heterogeneous artifacts: docs, code, test cases etc. There are many tight interrelationships between heterogeneous artifacts: docs, code, test cases etc.

Essence Four categories are divided: Four categories are divided: Conformity Conformity A lot of the complexity is arbitrary complexity in that the software product has to conform to arbitrary interfaces created by other humans. A lot of the complexity is arbitrary complexity in that the software product has to conform to arbitrary interfaces created by other humans. It ’ s hard to plan for arbitrary change. It ’ s hard to plan for arbitrary change. Changeability Changeability Software is constantly asked to change. Software is constantly asked to change.

Essence Four categories are divided: Four categories are divided: Invisibility Invisibility Software is invisible and unvisualizable. Software is invisible and unvisualizable. Maybe we can construct the screenshots for a software, but how to diagram a software? Maybe we can construct the screenshots for a software, but how to diagram a software? Flow of control, flow of data, patterns of dependency, etc. only reflect parts of a software, not all. Flow of control, flow of data, patterns of dependency, etc. only reflect parts of a software, not all.

What we have? Deal with the accidental difficulties: Deal with the accidental difficulties: High-level languages High-level languages Time-Sharing Time-Sharing Programming Environments Programming Environments OO programming OO programming AI AI Expert systems Expert systems Automatic programming Automatic programming …… ……

Maybe works on Essences Hopes … Hopes … Reuse Reuse Rapid prototyping Rapid prototyping Incremental Development Incremental Development Great designers !!! Great designers !!!

Question? Thanks Thanks