Upload
sandro
View
37
Download
3
Tags:
Embed Size (px)
DESCRIPTION
CS121: Software Development. Today. Importance of software development Software methodologies Overview of course First assignment Administrative issues. We need software to …. Customer. Developer. Here it is …. Customer. Developer. “Software Development”. …later in the millennium…. - PowerPoint PPT Presentation
Citation preview
CS121: Software Development
Today
• Importance of software development
• Software methodologies• Overview of course• First assignment• Administrative issues
“Software Development”
…later in the millennium…
Customer Developer
Here it is …
We need
software to ….
Customer Developer
Key Processes
• Requirements• Design • Implementation • Testing
“Software Development”
…later in the millennium…
Customer Developer
Here it is …
We need
software to ….
Customer Developer
Customer Developer
It broke
!
Key Processes
• Requirement• Design • Implementation • Testing• Maintenance
Key Processes
• Requirement • Design• Implementation (focus of CS70) • Testing• Maintenance
Why study software development?
• Society has become increasingly dependent on software systems.– How many software systems do you
interact with every day?
Why study software development?
• Society has become increasingly dependent on software systems.
• Failures in software systems can be costly and dangerous.
10 mi.
Expedia Maps: I need to go to the airport (1999)
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
Why study software development?
• Society has become increasingly dependent on software systems.
• Failures in software systems can be costly and dangerous
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)
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.
• 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.
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.
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!
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
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
Is there hope?
Software engineering: tools, techniques, and principles to promote software quality
software engineering is an evolving field
Historical Perspective
1950s
this is how to do it
Code and fix
Historical Perspective
1950s
Historical Perspective
1970s that was soooooo wrong, but now we know,
this is how to do it
waterfall
1950s
Essential Processes of Software Development
• Requirements
• Design
• Implementation
• Testing
Software Life Cycle Model
How to organize the key processes of
software development
Waterfall Model
Requirements
Design
Implementation
Test
with feedback
Historical Perspective
1970s
1950s
What is wrong with waterfall?
• Initial requirements are speculative
Requirements
“The hardest single part of building a software system is deciding precisely what to build.”
Frederick P. Brooks Jr. in “No Silver Bullet”:
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”:
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.
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
Growth in requirements
0
10
20
30
40
50
60
10 100 1000 10000 100000
Project Size in Function Points
Cre
epin
g R
eq's
as
% o
f O
rig
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
What is wrong waterfall?
• Initial requirements are speculative• Initial designs are speculative
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.”
What is wrong waterfall?
• Initial requirements are speculative• Initial designs are speculative• Speculative decisions compound
Complexity vs. Productivity
0500
10001500200025003000350040004500
1 10 100 1000
Project Size in KSLOC
SL
OC
/Per
son
Mo
nth
Source: Measures For Excellence, Putnam, 1992. Based on 1,600 systems.
SLO
C/P
ers
on
Mon
th
What is wrong waterfall?
• Initial requirements are speculative• Initial designs are speculative• Speculative decisions compound
• As a result we build the wrong thing that doesn’t work any
Historical Perspective
Don’t bite off more than you can chew.
1990s
1970s
1950s
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.
Boehm Spiral Model
•Iterations: .5 – 2 years
•Risk analysis
•Prototype-based
Boehm (1988) was first to clearly articulate the advantages of iterative development.
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
Scrum Model
A small group is responsible for picking up the ball and moving it toward the goal.
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
…
Extreme Programming
Do agile methods work?
Succeeded
Challenged
Failed
Succeeded
Challenged
Failed
1994 2004
Standish CHAOS survey
16% 29%
53%53%
18%31%
Software projects
come in all shapes and size
some are easy, many hard
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
Objectives of CS121
• Understand the problems • Understand the various solutions
to the problems• Practice applying the solutions to a
particular problem
Project
You will work in teams to design and develop an educational computer game for social science teachers at Hillside Middle School, Kalamazoo, MI
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.
• You already have domain expertise• Games are great projects for your portfolio• Scope of the game project can be “easy” to
adjust
Why educational games?
• Customer involvement• Understanding an “other” user• Useful product
Overview of 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.
Phase 1
• Competitive analysis• High concept• Management plan for phase 1• Customer elicitation• Technology assessment• Game Design Document (preliminary)• Prototype• Proposal
Assignments due next time
• Competitive analysis• High Concept• Initial management Plan (incl. trac
set up)
Details on the phase 1 project page
Readings (Keller)
Reading for next time
• McConnel: requirements, software quality
• Wiegers: Requirement Traps• Ambler: Big Requirements Up Front• Trac Guide: wiki, ticket• Keller: Goal breakdown
Daily quizzes
• Based on reading – McConnell– other articles linked to web page
Grading
• Project 65%• Midterm exam 10%• Final exam 10%• Daily quizzes 10%• Class participation 5%
Today
• Complete intro questionnaires• Make sure you have subscribed to
the class mail list• See me if you need accounts for:
– Charlie– Knuth
Tomorrow
I’ll email (and post) team assignments
Assignments
• Typically due on Monday• Exceptions:
– next week
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
Sample questions from today
• 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