Top Banner
CS121: Software Development Fall 2011 mae
68

CS121: Software Development Fall 2011 mae. Facetious View of SD.

Dec 28, 2015

Download

Documents

Grant Miles
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CS121: Software Development Fall 2011 mae. Facetious View of SD.

CS121: Software DevelopmentFall 2011

mae

Page 2: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Facetious View of SD

Page 3: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Today

• Importance of software development• Software methodologies• Overview of course

Page 4: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Panic: Due in next 7 Days

• GLEC choice

Page 5: CS121: Software Development Fall 2011 mae. Facetious View of SD.

“Software Development”

…later in the millennium…

Customer Developer

Here it is …

We need

software to ….

Customer Developer

Page 6: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Key Processes

• Requirements• Design • Implementation • Testing

Page 7: CS121: Software Development Fall 2011 mae. Facetious View of SD.

“Software Development”

…later in the millennium…

Customer Developer

Here it is …

We need

software to ….

Customer Developer

Customer Developer

It broke

!

Page 8: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Key Processes

• Requirement• Design • Implementation • Testing• Maintenance – every system I have worked on

spent most of its software time in maintenance and modification

Page 9: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Key Processes

• Requirements• Design• Implementation (focus of CS70) • Testing• Maintenance

Page 10: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Why study software development?

• Society has become increasingly dependent on software systems.– How many software systems do you interact with

every day?

Page 11: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Why study software development?

• Society has become increasingly dependent on software systems.

• Failures in software systems can be costly and dangerous.

Page 12: CS121: Software Development Fall 2011 mae. Facetious View of SD.

10 mi.

Expedia Maps: I need to go to the airport (1999)

Page 13: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Output reported in The Risks Digest          Oct. 1, 1999

Excerpts from Expedia Maps directions:From: Laurel, Maryland To: Baltimore-Washington International Airport, Maryland Driving Distance: 5865.1 miles Time: 9 day(s) 3 hour(s) 22 minute(s)

Time (hour:minute) Instruction 0:00 Depart Laurel, Maryland 1:01 Entering Delaware 1:17 Entering New Jersey 3:24 Entering New York 3:51 Entering Connecticut 5:51 Entering Massachusetts 7:29 Entering New Hampshire 7:44 Entering Maine 12:20 Entering New Brunswick 20:20 Take the North Sydney-Argentia Ferry 34:32 Entering Newfoundland 36:35 Turn left onto Local road(s) (4543.1 mi) 219:22 Arrive Baltimore-Washington International Airport, Maryland

Page 14: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Why study software development?

• Society has become increasingly dependent on software systems.

• Failures in software systems can be costly and dangerous

Page 15: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Therac-25

• Linear accelerators create high- energy beams that can

destroy tumors with minimal impact on the surrounding healthy tissue

• Therac 25 was the first linear accelerator with dosage controlled solely by software (as opposed to hardware)

Page 16: CS121: Software Development Fall 2011 mae. Facetious View of SD.

1983: Pre-release Safety Analysis

• Programming errors have been reduced by extensive testing on a hardware simulator and under field conditions on teletherapy units. Any residual software errors are not included in the analysis. (testing does not guarantee correctness....)

• Program software does not degrade due to wear, fatigue, or reproduction process.

• Computer execution errors are caused by faulty hardware components and by "soft" (random) errors induced by alpha particles and electromagnetic noise.

Page 17: CS121: Software Development Fall 2011 mae. Facetious View of SD.

and then …

• 1983: First Therac 25 installed

• 1985-1987: Six massive-overdose accidents due to “software error” are reported. Overdoses caused severe burns and death.

• 1987: Recalled for extensive design changes, including hardware to safeguard against software errors in dosage.

Page 18: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Why study software development?

• Society has become increasingly dependent on software systems.

• Failures in software systems can be costly and dangerous

• Software design/development is HARD!

Page 19: CS121: Software Development Fall 2011 mae. Facetious View of SD.

FAA

• 1981: FAA announced plans to modernize air-traffic control.

• 1985: IBM awarded contract. System estimate to have 1.5 million lines of code, cost $2.5 billion, and be deployed by 1991.

• 1987: Revised cost $4.3 billion, deployment slipped to 1995.

• 1994: FAA decided that the project would never be completed, and cancelled it. Net loss $1.5 billion

Page 20: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Stats on software projects

• 31.1% are canceled before they are finished• 52.7% overrun their cost estimates by at least

189%• 33.3% overrun their time estimates by 100%-

200%• 94% of all projects do a “restart”

J. Johnson, “Creating Chaos,” American Programmer, July 1995

Page 21: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Is there hope?

Software engineering: tools, techniques, and principles to promote software quality

software engineering is an evolving field – why?

Page 22: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Historical Perspective1950s

this is how to do it

Code and fix

Page 23: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Historical Perspective1950s

Page 24: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Historical Perspective

1970s that was soooooo wrong, but now we know,

this is how to do it

waterfall

1950s

Page 25: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Essential Processes of Software Development

• Requirements

• Design

• Implementation

• Testing

• Maintenance – many times totally different group

Page 26: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Software Life Cycle Model

How to organize the key processes of

software development

Page 27: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Waterfall Model – 1950’s .. 1970’s

Requirements

Design

Implementation

Test

with feedback

Page 28: CS121: Software Development Fall 2011 mae. Facetious View of SD.

What is wrong with waterfall?

• Initial requirements are speculative

Page 29: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Requirements

“The hardest single part of building a software system is deciding precisely what to build.”

Frederick P. Brooks Jr. in “No Silver Bullet”:

Page 30: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Requirements

“No other part of of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later.”

Frederick P. Brooks Jr. in “No Silver Bullet”:

Page 31: CS121: Software Development Fall 2011 mae. Facetious View of SD.

1992 Iowa State study of safety-critical errors in software systems for Voyager and Galileo:

The majority of safety-critical software errors were not caused in the design or implementation process. They were due to errors in the requirements specification. The systems as specified were flawed.

Page 32: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Requirements

• Customer’s don’t usually know what they want/need

• Even if they do know what they want/need, they are likely to change their minds

• Customers cannot clearly specify what they need even if they know....

Page 33: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Growth in requirements

Source: Applied Software Measurement, Capers Jones, 1997. Based on 6,700 systems.

% in

cre

as

e in

re

qu

irem

en

ts

du

rin

g p

roje

ct

life

Page 34: CS121: Software Development Fall 2011 mae. Facetious View of SD.

What is wrong waterfall?

• Initial requirements are speculative• Initial designs are speculative• Final system satisfies no one...

Page 35: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Design

Design Methods: Seeds of Human Futures (Jones, 1970)

“The fundamental problem is that designers are obliged to use current information to predict a future state that will not come about unless their predictions are correct.”

Page 36: CS121: Software Development Fall 2011 mae. Facetious View of SD.

What is wrong with waterfall?

• Initial requirements are speculative• Initial designs are speculative• Speculative decisions compound

Page 37: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Complexity vs. Productivity

Source: Measures For Excellence, Putnam, 1992. Based on 1,600 systems.

SLO

C/P

ers

on

Mon

th

Page 38: CS121: Software Development Fall 2011 mae. Facetious View of SD.

What is wrong with waterfall?

• Initial requirements are speculative• Initial designs are speculative• Speculative decisions compound

• As a result we build the wrong thing that doesn’t work or doesn’t work like envisioned by the customer

Page 39: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Historical Perspective

Don’t bite off more than you can chew.

1990s

1970s

1950s

Page 40: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Iterative Models

In each iteration:• Identify the objectives of the iteration• Design a solution to achieve the objectives• Implement the solution• Test the implementation

Each iteration is a mini-waterfall process.

Page 41: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Boehm Spiral Model

•Iterations: .5 – 2 years

•Risk analysis

•Prototype-based

Boehm (1988) was first to clearly articulate the advantages of iterative development.

Page 42: CS121: Software Development Fall 2011 mae. Facetious View of SD.

RUP Life Cycle

ManagementEnvironment

Business Modeling

Implementation

Test

Analysis & Design

Preliminary Iteration(s)

Iter.#1

PhasesProcesses

Iterations within phases

Supporting Workflows

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Iterations

RUP – Rational Unified Process

Page 43: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Agile principles• Working software, delivered regularly, is the primary measure

of progress• High standards of excellence; test regularly and

re-factor/redesign when necessary• Customer involvement is critical• Simplicity; just-in-time design/development• Adaptability; embrace change• Small, cross-functional, self-organizing teams of professionals

Page 44: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Scrum Model

A small group is responsible for picking up the ball and moving it toward the goal.

Page 45: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Extreme Programming

Page 46: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Do agile methods work?

1994 2004

Standish CHAOS survey

16% 29%

53%53%

18%31%

Page 47: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Software projects

come in all shapes and size

some are easy, many hard

Page 48: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Harder• Large• Open-ended, poorly

understood • Cutting edge technology• Inexperienced personnel• Stringent requirements

Easier• Small• Well defined

• Ready-to-use tools, packages

• Experienced personnel

• Flexible requirements

Page 49: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Objectives of CS121

• Understand the problems • Understand the various solutions to the

problems• Practice applying the solutions to a particular

problem• Prepare for Clinic and jobs

Page 50: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Project

You will work in teams to design and develop an educational computer game for teachers at various middle schools (6th .. 8th grade)

Page 51: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Why games?• Games involve a range of problems that rarely show up in a

single software project– User interface design– Computer graphics and sound– Simulation and modeling– Real-time– AI, networking, etc.– Customer requirements include ‘emotion’

• You (probably) already have domain expertise• Games are great projects for your portfolio• Scope of the game project can be “easy” to adjust

Page 52: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Why educational games?

• Customer involvement• Understanding an “other” user• Useful product• Social impact: students

Page 53: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Overview of CS 121 Project

• Phase 1: Develop game concept• Phase 2: Design game/software• Phase 3: Evaluate, refine, add content

But NOT waterfall. Each phase will have involve several iterations/deliverables.

Page 54: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Phase 1 – on web

• Competitive analysis• High concept• Management plan for phase 1• Customer elicitation• Technology assessment• Game Design Document (preliminary)• Prototype• Proposal

Page 55: CS121: Software Development Fall 2011 mae. Facetious View of SD.

The Class: CS 121• Called “Software Engineering” (SE) most

places – HMC Engineering owns ‘Engineering’• Web page holds it all....• Web page changing as we go; Calendar the

key• Quizzes on readings – unannounced

Page 56: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Quizzes

• Based on readings– McConnell– other articles linked to web page

Page 57: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Today

• Make sure you are in class, mail list – should be automatic....

• See me if you need accounts for:– Charlie– Knuth

Page 58: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Late Wednesday

We will email (and post) team assignments

Page 59: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Sample questions from today & readings

• What are the key processes to software development?• What is a software life cycle model?• What is the waterfall model? What are its problems?• How do iterative and agile models differ from the waterfall

model?• How do iterative and agile models differ from each other?• What is the Boehm Spiral model and why is it important?• Name two different agile process methods

Page 60: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Lecture Objectives• Understand history of SD, SE• Understand challenges, many failures• Mapping of key SD components and how class• Course Covers 3 types aspects of SE

– principles – readings/lectures– practices – project– patterns – lecture/project

Page 61: CS121: Software Development Fall 2011 mae. Facetious View of SD.

The End

Page 62: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Assignments due next time

• Competitive analysis• High Concept• Initial management Plan (incl. trac set up)

Details on the phase 1 project page

Readings (Keller)

Page 63: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Reading for next time

• McConnel: requirements, software quality• Wiegers: Requirement Traps• Ambler: Big Requirements Up Front• Trac Guide: wiki, ticket• Keller: Goal breakdown

Page 64: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Grading

• Project 65%• Midterm exam 10%• Final exam 10%• Daily quizzes 10%• Class participation 5%

Page 65: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Assignments

• Due as indicated on Calendar

Page 66: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Next week

• Wed – you will meet with the customer• 1 team will do an “elicitation” in class (the guinea

pigs are guaranteed the full 10 point credit for the actual elicitation – volunteers?)

• the rest will do it after class Wed. or Thurs. morning – post all available times on your wiki

Page 67: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Assignments due next time

• Competitive analysis• High Concept• Initial management Plan (incl. trac set up)

Details on the phase 1 project page

Readings (Keller)

Page 68: CS121: Software Development Fall 2011 mae. Facetious View of SD.

Historical Perspective

1970s

1950s