32
SE 470 Software Development Processes James Nowotarski 28 April 2003

SE 470 Software Development Processes James Nowotarski 28 April 2003

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SE 470 Software Development Processes James Nowotarski 28 April 2003

SE 470Software Development Processes

James Nowotarski

28 April 2003

Page 2: SE 470 Software Development Processes James Nowotarski 28 April 2003

Course Map

Overview. Introduction. History

Content. Rational Unified Process. Extreme Programming

Implementation. Tools, Training, Roles. CMM, Metrics. Selection & Evaluation

Briefings (Term Papers)

1 2 3 4 6 7 8 9 10 115

Assignments

Quizzes

Week

Mem

ori

al D

ay

Page 3: SE 470 Software Development Processes James Nowotarski 28 April 2003

• Background on Lightweight Methods• Understand basics of Extreme Programming

– Principles– Benefits– What’s Different– Applicability– Track Record– Key Players & Products– References

Today’s Objectives

Page 4: SE 470 Software Development Processes James Nowotarski 28 April 2003

Topic Duration

• Quiz 2 and Assignment 1 Recap 10 minutes

• Lightweight Methods 30 minutes

• Extreme Programming 45 minutes

• *** Break 10 minutes

• Assignment 5 reports 15 minutes

• Extreme Programming (cont.) 60 minutes

• Term Project 15 minutes

Today’s agenda

Page 5: SE 470 Software Development Processes James Nowotarski 28 April 2003

Topic Duration

• Quiz 2 and Assignment 1 Recap 10 minutes

• Lightweight Methods 30 minutes

• Extreme Programming 45 minutes

• *** Break 10 minutes

• Assignment 5 reports 15 minutes

• Extreme Programming (cont.) 60 minutes

• Term Project 15 minutes

Today’s agenda

Page 6: SE 470 Software Development Processes James Nowotarski 28 April 2003

Rational Unified Process

Page 7: SE 470 Software Development Processes James Nowotarski 28 April 2003

Assignment 1 Recap

Best practice average top vote low vote

Iterative development 19.3 2.5 1Manage requirements 15.8 1 1Use component-based architecture 17.7 2 1Visually model software 18.1 2 1Continuously verify software quality 18.2 1.5 1Control changes to software 10.9 0 4

Page 8: SE 470 Software Development Processes James Nowotarski 28 April 2003

Topic Duration

• Assignment 1 Recap 10 minutes

• Lightweight Methods 30 minutes

• Extreme Programming 45 minutes

• *** Break 10 minutes

• Assignment 5 reports 15 minutes

• Extreme Programming (cont.) 60 minutes

• Term Project 15 minutes

Today’s agenda

Page 9: SE 470 Software Development Processes James Nowotarski 28 April 2003

Lightweight Methods

• Just enough process• Emphasis on the people on the team• Embrace change (adaptive/agile vs. predictive)• Frequent testing• Frequent releases• Much less documentation

Key Principles

Page 10: SE 470 Software Development Processes James Nowotarski 28 April 2003

Lightweight Methods

• Extreme Programming (XP) (Kent Beck)• Crystal (Alistair Cockburn)• Adaptive Software Development (Jim Highsmith)• SCRUM (Ken Schwaber)• Feature Driven Development (Peter Coad, Ken

DeLuca, Steve Palmer)

Several methodologies fit under this lightweight banner

Page 11: SE 470 Software Development Processes James Nowotarski 28 April 2003

Lightweight Methods

• On February 11-12, 2001 seventeen proponents met at Snowbird ski resort and what emerged was the:Agile “Software Development” Alliance

• “We have come to value:– Individuals and interactions over processes and tools– Working software over comprehensive

documentation– Customer collaboration over contract negotiation– Responding to change over following a plan”

Page 12: SE 470 Software Development Processes James Nowotarski 28 April 2003

Approach References

XP www.extremeprogramming.org

www.xprogramming.com

Crystal A. Cockburn, Agile Software Development, Addison-Wesley, 2001

SCRUM K. Schwaber and M. Beedle, Agile Software Development with Scrum, Prentice Hall, 2001.

Adaptive Software Development

J. Highsmith, Adaptive Software Development, Dorset House, 2000.

FDD S. Palmer, A Practical Guide to Feature-Driven Development, Prentice Hall, 2002.

Agile - General http://www.agilealliance.org/home

Lightweight Methods

Page 13: SE 470 Software Development Processes James Nowotarski 28 April 2003

Topic Duration

• Quiz 2 and Assignment 1 Recap 10 minutes

• Lightweight Methods 30 minutes

• Extreme Programming 45 minutes

• *** Break 10 minutes

• Assignment 5 reports 15 minutes

• Extreme Programming (cont.) 60 minutes

• Term Project 15 minutes

Today’s agenda

Page 14: SE 470 Software Development Processes James Nowotarski 28 April 2003

XP Background

• Developed by Kent Beck and Ward Cunningham• Based on Beck and Ward’s experiences developing

Smalltalk software at Tektronix• First large project was the C3 Payroll Project at Chrysler

– 1993 project started with Business Modeling– 1994 development begun with a small 40 person

consulting firm & Smalltalk– 1995 performance problems - Kent Beck brought in to

improve quality– 1996 Kent Beck took over project and began

implementing project in a new method that we now call Extreme Programming

Page 15: SE 470 Software Development Processes James Nowotarski 28 April 2003

What is XP

• Rapid feedback• Assume simplicity• Incremental change• Embrace change• Quality work

First Principles

Page 16: SE 470 Software Development Processes James Nowotarski 28 April 2003

What is XP

• Pair programming • Test all the time

– unit testing– functional testing– continuous integration

• Short iterations, small releases– 2 month releases, 2 week iterations

• Incremental planning (learning to drive)• Customer on-site as integral part of team• Do simplest thing that could possibly work

Key Features

Page 17: SE 470 Software Development Processes James Nowotarski 28 April 2003

What is XP

• 40-hour week• Coding standards• Refactoring and evolutionary design• Metaphor to aid in understanding the

architecture• Only highest priority tasks are worked• Collective ownership

Key Features

Page 18: SE 470 Software Development Processes James Nowotarski 28 April 2003

What is XP

Life cycle phase

Co

st

of

ch

an

ge

Req Anal. Des. Impl. Test Prod

y = axp

Page 19: SE 470 Software Development Processes James Nowotarski 28 April 2003

What is XP

Time

Co

st

of

ch

an

ge

XP purports to change the curve so that the cost to find and repair software problems does not rise dramatically over time

Page 20: SE 470 Software Development Processes James Nowotarski 28 April 2003

What is XP

• Start design with a test• Start coding with a test• Test things that might break• Testing is isolated• Testing is automated• At least one dedicated tester

Begin with the end in mind . . .

Page 21: SE 470 Software Development Processes James Nowotarski 28 April 2003

What is XP

• Faster• Better quality• Cheaper• Reduced risk• More likely to be followed than a heavyweight

methodology• More fun

Benefits

Page 22: SE 470 Software Development Processes James Nowotarski 28 April 2003

When to Use XP

• Small to medium sized teams• Vague or rapidly changing requirements• 2-10 programmers • Responsible and motivated developers• Not sharply constrained by existing computing

environment• A reasonable job of executing tests can be done in a

fraction of a day• Customer who understands and will get involved

Page 23: SE 470 Software Development Processes James Nowotarski 28 April 2003

When Not to Use• Culture

– Pointing the car– Big specification– Long hours

• 20 or more programmers– though projects are emerging with up to 50 developers

• More than 15 months’ duration• More than 50K source lines of code (SLOC)• Fixed price contracts• Technology barriers

– Exponential cost curve– Long time needed to get feedback

• Geographic separation• Architecture not well established• Developers are low quality and motivation

Page 24: SE 470 Software Development Processes James Nowotarski 28 April 2003

What’s the Same

Page 25: SE 470 Software Development Processes James Nowotarski 28 April 2003

What’s Different

Page 26: SE 470 Software Development Processes James Nowotarski 28 April 2003

RUP vs. XP

Attribute RUP (“Heavyweight”) XP (“Lightweight”)

Time and Effort Allocation

2 weeks-6 months 2 weeks - 2 months

Architecture Stabilized during Elaboration phase

Just enough to support functionality

Scope of Activities and Artifacts

Broad Narrow

Omits:

• Business modeling

• Deployment

Project size Small to Very Large Small to Medium

Artifacts 25-30 in small project roadmap

roughly 30

Roles ~ 30 (5 in small project roadmap)

7

Page 27: SE 470 Software Development Processes James Nowotarski 28 April 2003

Assignment 1 Recap

Best practice average top vote low vote

Iterative development 19.3 2.5 1Manage requirements 15.8 1 1Use component-based architecture 17.7 2 1Visually model software 18.1 2 1Continuously verify software quality 18.2 1.5 1Control changes to software 10.9 0 4

Page 28: SE 470 Software Development Processes James Nowotarski 28 April 2003

Topic Duration

• Quiz 2 and Assignment 1 Recap 10 minutes

• Lightweight Methods 30 minutes

• Extreme Programming 45 minutes

• *** Break 10 minutes

• Assignment 5 reports 15 minutes

• Extreme Programming (cont.) 60 minutes

• Term Project 15 minutes

Today’s agenda

Page 29: SE 470 Software Development Processes James Nowotarski 28 April 2003

Term Paper

Summary:A briefing on a significant, currently relevant software development methodology or process-related framework not covered in class

Deliverables:PaperPresentation and Discussion (30 minutes)

Topic Ideas:SCRUMFeature Driven DevelopmentAdaptive Software DevelopmentCrystalSEI Team Software ProcessSEI Personal Software Process

Page 30: SE 470 Software Development Processes James Nowotarski 28 April 2003

Term Paper

Paper Outline:1. Abstract2. Historical Background3. Description

• Philosophy/Principles• Components• Benefits

4. Usage Guidelines• When to use/avoid• Success factors/Challenges

5. Marketplace Analysis• Key Players/Products/Gurus• Market data/forecasts

6. References• Books, articles, web sites• Need to interview a practitioner and/or faculty

member

Page 31: SE 470 Software Development Processes James Nowotarski 28 April 2003

• Kruchten, Chapter 17• Quiz #3

– XP

– Implementing Methodology

Topics for May 5

Page 32: SE 470 Software Development Processes James Nowotarski 28 April 2003

Extra Slides