+ All Categories
Home > Documents > University of Virginia Software Development Processes (CS340 John Knight 2005) 1 Software...

University of Virginia Software Development Processes (CS340 John Knight 2005) 1 Software...

Date post: 31-Dec-2015
Category:
Upload: kerry-walter-douglas
View: 215 times
Download: 0 times
Share this document with a friend
22
Software Development Processes (CS340 John Knight 2005) 1 University of Virginia Software Development Processes
Transcript

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


Recommended