Software Development Processes (CS340 John Knight 2005) 1University of Virginia
Software DevelopmentProcesses
Software Development Processes (CS340 John Knight 2005)2
University of Virginia
The CONFIRM System
Generalized Reservation System: Integrate Car, Hotel, Air Reservations
Owned By Consortium Formed In 1987: Hilton Hotels Marriott Hotels Budget Rent-a-Car
To Be Built By AMR Information Services (AMRIS)
Software Development Processes (CS340 John Knight 2005)3
University of Virginia
The CONFIRM System Designed To Supersede/Outperform Separate
Systems Already In Place "Based" On AMR’s SABRE System - Successful
Airline Reservation System Original Schedule:
Design - 7 Months Development - 45 Months Delivery - June 1992
Original Budget - $55.7M, Projected Operating Cost - $1.05 Per Reservation
Software Development Processes (CS340 John Knight 2005)4
University of Virginia
CONFIRM - The End
July 1992 Consortium Disbanded
After 3 1/2 Years Of Development
After Spending $125,000,000
Technical Reasons Cited: Unable to integrate the transaction processing central
reservation system with the decision-support system. Database was unrecoverable in the event of a crash.
Software Development Processes (CS340 John Knight 2005)5
University of Virginia
CONFIRM - The End
Law Suits Flew:
AMRIS Settled Out Of Court For A Reported $160,000,000
Why? How Can This Type Of Thing Be Avoided? What Can We Learn From This?
Software Development Processes (CS340 John Knight 2005)6
University of Virginia
The Software Lifecycle
Requirements Analysis
Specification
Design
Implementation
Verification
Maintenance
Determine Customer Needs (What)
State Customer Needs (What)
Design A Solution (How)
Implement Solution (How)
Show Solution Meets Specification
Keep Solution Working
Iteration
Software Development Processes (CS340 John Knight 2005)7
University of Virginia
Software Processes Process Is The Events Undertaken And Their
Sequence Various Processes Are Advocated For Software
Development: Code And Fix - No Science (Hacking) Waterfall Spiral Model Government Imposed Standards:
DoD Standards 2167, 2167A FAA Standard DO-178A, DO-178B
Software Development Processes (CS340 John Knight 2005)8
University of Virginia
Software Processes
The Waterfall Development Process: Undertake The Lifecycle Phases In Order Document Driven, No Attention To Risk
The Spiral Development Process: Explicit Attention To Risk Activities Driven By Risk Analysis
Software Development Processes (CS340 John Knight 2005)9
University of Virginia
Risk
Most Problems In Software Development Arise
Because Of Risk
Things Happen During Development That Were
Not Anticipated
Software Engineers Are Not Malicious
Note: This Is A Special Use Of The Word RISK
Software Development Processes (CS340 John Knight 2005)10
University of Virginia
Risk Problems That Arise Are Things Like:
Insufficient Computer Time Inadequate Software Tools Critical Staff Leave The Project Wrong Requirements Incorrect Design Expected New Equipment (Hardware Or Software) Fails To
Arrive Ambiguous Documents Projected Schedule Unachievable Project Cost Estimates Incorrect
Goal - Risk Reduction Other Engineering Disciplines Use Predictive Models
Software Development Processes (CS340 John Knight 2005)11
University of Virginia
Spiral Process
Driving Philosophy:
No Software Manufacturing
Do Not Know Risks Until Development
Simple Initial Implementation
Iterative Approach To Development
Software Development Processes (CS340 John Knight 2005)12
University of Virginia
Spiral Process Repeat The Following:
Identify Objectives Identify Alternatives Identify Risks And Uncertainties Resolve Risks And Uncertainties
Many Cycles: Gradually Increasing Overall Cost Provide Intermediate Deliverables
Software Development Processes (CS340 John Knight 2005)13
University of Virginia
Significant Risk Areas
Personnel—People Vary A Lot
Schedules And Budgets—How Long Will It Take
To Build The System?
Developing Software Functions—Wrong
Functionality Developed: Developer Does Not Understand Application
Inadequate Requirements Analysis
Software Development Processes (CS340 John Knight 2005)14
University of Virginia
Significant Risk Areas Requirements Stability:
Customers Think Software Is Flexible So Requests Changes
Quality Of External Components: Compiler, Operating System, Or Other Support
Software Has Bugs Hardware Slower Than Expected Late Delivery Of Equipment
ALWAYS REMEMBER:Difficult To Anticipate All The Development
Problems
Software Development Processes (CS340 John Knight 2005)15
University of Virginia
Some Techniques For Risk Reduction
Prototyping: Build A Piece Of The Application In The Risk Area
Simulation: Simulate The Situation
Benchmarking: Try Out Things That Might Be Bottlenecks
Software Development Processes (CS340 John Knight 2005)16
University of Virginia
Some Techniques For Risk Reduction
References: See If Others Have Done It Before
User Questionnaires: Ask Users About Their Requirements
Analytic Modeling: Queueing Model, Etc.
Software Development Processes (CS340 John Knight 2005)17
University of Virginia
Prototyping
Very Important Risk Reduction Technique
A Prototype: Actually Executes - It Is A Program
It Has A Lifetime That Depends On Its Purpose(s)
Might Serve Many Purposes
A Key Part Of The Iterative (Spiral) Process
Software Development Processes (CS340 John Knight 2005)18
University of Virginia
Prototyping Two Major Approaches:
Throw-Away Prototype Build, Use, And Discard Evolutionary Prototype Build, Evaluate, And Evolve Into
Product
A Throw-Away Prototype Ignores: Structure, Efficiency, Reliability, Documentation, Maintainability, Etc.
An Evolutionary Prototype: Is A Partial Implementation - Implements The Major Risk Areas
First Must Follow Good Engineering Principles - Becomes The
Product
Software Development Processes (CS340 John Knight 2005)19
University of Virginia
Multiple Roles Of Prototyping Requirements Analysis:
Show User Important Parts Of The System Obtain Users’ Reactions
Requirements Specification: Prototype Defines System Specifications
Design Feasibility Study: Evaluate High Risk Design Decisions
Software Development Processes (CS340 John Knight 2005)20
University of Virginia
Multiple Roles Of Prototyping Human Factors Analysis:
Optimize System Interface Mouse vs. Keyboard vs. Voice, Etc.
User Training: Once Specified, Let User Learn About System
Provide One-Shot Applications: Maybe All That Is Needed
Critical Part Of Modern Software Development Method - Risk Reduction
Software Development Processes (CS340 John Knight 2005)21
University of Virginia
Prototyping Techniques Carefully Define The Risk(s) To Be Addressed Make Sure It Is The Most Important Risk Make Sure Prototyping Is The Right Risk-
resolution Approach Make Sure The Data Required To Resolve The
Risk Will Be Obtained
Software Development Processes (CS340 John Knight 2005)22
University of Virginia
Prototyping Techniques Set A Schedule For Building The Prototype Decide The Approach - Throw-Away Or Evolutionary Follow Appropriate Programming Approach:
Eliminate Unnecessary Operations Optimize Development To Answer Questions
Sophisticated Techniques Have Been Developed: Executable Specifications Application Generators Software Reuse Screen Generators Graphic-User-Interface (GUI) Workbenches