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.

Slides:



Advertisements
Similar presentations
September 2008Mike Woodard Rational Unified Process Key Concepts Mike Woodard.
Advertisements

Design, prototyping and construction
Object-Oriented Software Development CS 3331 Fall 2009.
MIS 2000 Class 20 System Development Process Updated 2014.
Designing and Developing Decision Support Systems Chapter 4.
What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
Software Process Models
Ch 3 System Development Environment
Alternate Software Development Methodologies
Introduction to Software Engineering Lecture 3 André van der Hoek.
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 “There is no single development, in either technology or management technique, which by itself promises even one order-of magnitude improvement.
Part 1: Introducing User Interface Design Chapter 1: Introduction –Why the User Interface Matters –Computers are Ubiquitous –The Importance of Good User.
No Silver Bullet Essence and Accidents of Software Engineering By Frederick P. Brooks Frederick P. Brooks Presentation by Yan Qi
Design and Evaluation of Iterative Systems n For most interactive systems, the ‘design it right first’ approach is not useful. n The 3 basic steps in the.
Software lifecycle. CS351 - Software Engineering (AY2004)2 Software lifecycle “student view” Design & Specification Coding Testing (optional) Hand it.
CHAPTER 19 Building Software.
INFO 355Week #61 Systems Analysis II Essentials of design INFO 355 Glenn Booker.
Essence and Accident in Software Engineering By: Mike Hastings.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 2 The process Process, Methods, and Tools
THE PROTOTYPING MODEL The prototyping model begins with requirements gathering. Developer and customer meet and define the overall objectives for the software.
No Silver Bullet – Essence and Accident in Software Engineering.
CSCI 6231 Software Engineering ( Chapter 10?) Requirements Workflow Instructor: Morris Lancaster.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
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.
Design, prototyping and construction CSSE371 Steve Chenoweth and Chandan Rupakheti (Chapter 11- Interaction Design Text)
Prescriptive Process Models
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem Darwish.
Note Excerpts from Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R. Schach
INTRO TO USABILITY Lecture 12. What is Usability?  Usability addresses the relationship between tools and their users. In order for a tool to be effective,
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Chapter 2 – Software Processes Lecture 2 1Chapter 2 Software Processes.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
1 Human Computer Interaction Week 7 Prototyping. 2 Introduction Prototyping is a design technique where users can be involved in testing design ideas.
CS205 Software Engineering_Overview Specifications: The Ariane 6 must be able to deliver both satellite hardware and crew into geostationary orbit. (Ariane.
Chapter 2 Software Processes (2/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
System Construction System Construction is the development, installation and testing of system components.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
“No Silver Bullet”. No Silver Bullet  "No Silver Bullet" –– a paper by Fred Brooks, Professor of Computer Science at University of North Carolina in.
Introduction to Software Development (Software Engineering - I)
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
IAD 2263: System Analysis and Design Chapter 3: Investigating System Requirements.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Lecture 4: Requirements Engineering COSI 120b, Principles of Software Engineering.
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
By David Sanders Title Explanation  Werewolves are quite terrifying, simply because they transform unexpectedly into horrors. To kill werewolves,
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 CP586 © Peter Lo 2003 Multimedia Communication Multimedia Development Team.
Design, prototyping and construction(Chapter 11).
Systems Development Life Cycle
Case Study of Agile Development Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
PROJECT LIFE CYCLE AND EFFORT ESTIMATION
Software Development methodologies
Software Life Cycle “What happens in the ‘life’ of software”
Engineering Design Process
Informatics 43 – March 31, 2016.
Design, prototyping and construction
UFCE8V-20-3 Information Systems Development SHAPE Hong Kong 2010/11
Engineering Design Process
Software Engineering Furqan Rustam.
User Interface Design and Evaluation
Baisc Of Software Testing
The User Interface Design Process
Software Engineering Lecture #3
SNS College of Engineering Coimbatore
Requirements Analysis Techniques
Design, prototyping and construction
Presentation transcript:

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 be any – no inventions that will do for software productivity, reliability, and simplicity what electronics, transistors, and large-scale integration did for computer hardware.”

Productivity Equation Time of task = SUM[(frequency) i X (time) i ] Conceptual components of the task take most of the time (deciding what to build) In order to increase software productivity we must focus on this aspect of software development

Promising Attacks on the Conceptual Essence Buy vs. Build Requirements refinement - Rapid Prototyping Incremental development

Buy versus Build “The most radical possible solution for constructing software is not to construct it at all” ANY software product is cheaper to buy than to build Even at a cost of $100,000, a purchased piece of software is costing only about as much as one programmer-year Delivery is immediate The cost of software is in development, not replication. By sharing the cost among a large number of users, the per-user cost is lowered. Examples: spreadsheets/payroll apps/accounting software

Requirements Refinement Most difficult step in software development Any mistakes in the requirements cripple the resulting system and are difficult to rectify later Clients generally do not know what they want or know what questions must be answered Clients almost never communicate the problem to the software designers in the detail that must be specified It is the designers job to iteratively extract and refine the product requirements from the client

Rapid Prototyping Prototypes generally simulate important interfaces and perform major functions of the intended system Prototypes are an important tool designers use to extract requirements specifications from the client Give clients a chance to test versions of the product they are specifying to designers Any problems in requirements are caught early in the design phase

Incremental Development Software is not written Software is grown by incremental development Every new function or class grows out of what is already in the program Decreases bugs Ease of backtracking Prevents the project from going off course