No Silver Bullet - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

No Silver Bullet

Description:

Frederick P. Brooks, Jr. (1995) Software Projects = Werewolves Innocent but capable of becoming a monster No Silver Bullets in Site Inherent Data sets, ... – PowerPoint PPT presentation

Number of Views:114
Avg rating:3.0/5.0
Slides: 29
Provided by: MikeH220
Category:

less

Transcript and Presenter's Notes

Title: No Silver Bullet


1
No Silver Bullet
  • Essence and Accident in Software Engineering

By Mike Hastings
2
Introduction
  • 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. Frederick P. Brooks,
    Jr. (1995)
  • Software Projects Werewolves
  • Innocent but capable of becoming a monster
  • No Silver Bullets in Site

3
Essence (Essential Difficulties)
  • Inherent
  • Data sets, Relationships among data items,
    Algorithms, Invocations of functions
  • Complexity
  • Conformity
  • Changeability
  • Invisibility

4
Complexity
  • No two parts are alike
  • Scaling up requires increase in elements
  • Results
  • Communication issues
  • Unreliability
  • Usage difficulties
  • Side effects from expansion

5
Conformity
  • Must adapt to the minds of various people
  • Must adapt with a variety of applications

6
Changeability
  • Constant pressures for change
  • Software is infinitely malleable
  • All software changes
  • Users find new uses
  • New hardware forces change

7
Invisibility
  • Unvisualizable
  • No floor plans
  • Cannot display geometrically
  • Robs the mind of powerful tools
  • Leading cause of communication issues

8
Accidental Difficulties
  • Not inherent
  • Three steps that attacked major difficulties
  • High-level Languages
  • Time Sharing
  • Unified Programming Environments

9
High-Level Languages
  • What do they accomplish?
  • Frees up most accidental complexity
  • User friendly language
  • Disregards problems from the machine level

10
Time-Sharing
  • Shortens system response time
  • Allows for thought retention

11
Unified Programming Environments
  • Integrated libraries
  • Unified file formats
  • Pipes and filters
  • Helped develop whole toolbenches
  • Universal tools

12
Hopes for Silver
13
ADA AND OTHER HIGH-LEVEL LANGUAGE ADVANCES
  • Ada a high-level language of the 1980s
  • Pros
  • Improvements in language concepts
  • Focused on step-by-step solutions
  • Encourages modern design
  • Cons
  • Just another high-level language
  • Low payoff after accidental complexity removal

14
OBJECT-ORIENTED PROGRAMMING
  • Two ideas Abstract Hierarchial
  • Pros
  • Avoids displaying unnecessary syntax
  • Allows a higher-order-sort of design
  • Cons
  • Makes no change to essential complexity of the
    design

15
ARTIFICIAL INTELLIGENCE
  • Pros
  • Using computers to solve problems only humans
    used to solve
  • Cons
  • Deciding what to say, not saying it

16
EXPERT SYSTEMS
EXPERT SYSTEMS
  • Pros
  • Use of human experts to develop rules of thumb
  • Inference Engine Rule Base to solve problems
  • Cons
  • Difficult to develop
  • Knowledge acquisition

17
AUTOMATIC PROGRAMMING
  • Pros
  • Solving a problem from problem specifications
  • Already proven to work
  • Cons
  • The solution method is usually required, not the
    problem

18
GRAPHICAL PROGRAMMING
  • Pros
  • Applying computer graphics to software design
  • Flowchart construction
  • Cons
  • Flow charts are poor abstractions
  • Todays screens are too small
  • Software is difficult to visualize

19
PROGRAM VERIFICATION
  • Pros
  • Error elimination in design phase
  • Secure operating system kernels
  • Cons
  • Does not save labor
  • Does not mean error proof

20
ENVIRONMENTS AND TOOLS
  • Pros
  • Use of integrated databases to track details
  • Cons
  • Only marginal gains in efficiency

21
WORKSTATIONS
  • Pros
  • Faster processing time
  • Cons
  • Still crippled by human "think time"

22
Promising Attacks on the Conceptual Essence
  • Attacks on accidental difficulties are limited by
    the productivity equation
  • Time of Task ? (Frequency) x (Time)
  • Conceptual components are time consuming
  • Attacks must then address the essence of software
    problems

23
BUY VERSUS BUILD
  • Do not construct it at all
  • Increase in products available for purchase
  • Delivery is immediate
  • Sharing cuts per-user cost
  • Adapt operation processes

24
REQUIREMENTS REFINEMENT AND RAPID PROTOTYPING
  • Decide what to build
  • Technical requirements
  • Interfaces
  • Obtain product requirements
  • Rapid prototyping
  • Simulates interfaces
  • Performs main functions
  • Minimizes hardware, and cost constraints

25
INCREMENTAL DEVELOPMENT--GROW, NOT BUILD, SOFTWARE
  • The brain is grown, not built
  • Software should be similar
  • Incremental development
  • Make it run
  • Top-down growing design
  • Allows for easy backtracking
  • Lends itself to early prototypes
  • New functions grow organically
  • Easier for teams to grow than build

26
GREAT DESIGNERS
  • Great designs come from great designers
  • Software construction is a creative process
  • Can empower the creative mind
  • Great designers are rare
  • How to grow great designers
  • Identify them early
  • Assign a career mentor
  • Devise a development plan
  • Allow them to interact with other growing
    designers

27
SUMMARY
  • Most accidental difficulties have been addressed
  • Focus on improving essential difficulties
  • Exploiting the mass market
  • Using rapid prototyping
  • Growing software organically
  • Developing great conceptual designers

28
THE END!!!
Write a Comment
User Comments (0)
About PowerShow.com