36
RUP, Agile, XP

RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Embed Size (px)

Citation preview

Page 1: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

RUP, Agile, XP

Page 2: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Administrative stuff

• TA office hours

– 4—6pm Th @ CSIL3

– 3:30—5:30pm Fri @ CSIL3

• Class enrollment

Page 3: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Outline

• The problems of waterfall

– How to improve waterfall?

• RUP

– Phases

– (iterative) Activities

– UML

• Agile

– XP

Page 4: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Waterfall model

Requirement

design

implementation

testing

maintenance

Page 5: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

What are the problems?

• 1. difficult to handle changes

• 2. take long time to deliver

• 3. expensive to fix errors

• 4. difficult to estimate/planning

Page 6: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

How to deliver faster?

Page 7: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Incremental process

• Produce core products first

• Produce further refinements in follow-up releases

Page 8: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Incremental process

Page 9: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Example

• Text editor

• Class registration system

Page 10: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

How to handle changes better?

Page 11: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Evolutionary process

• Spiral model

Design

Page 12: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Rational Unified Process

1990’

Page 13: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Rational Unified Process

• Basic idea: incremental + iterative

• Phases + workflows

Business req.

Req.

Design

Impl.

Test

Deployment

Which workflow happens at which phase?

Page 14: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

RUP

Page 15: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

RUP

• What is the product of each workflow?

– Unified Modeling Language

• Business modeling + requirement

Actor and use case diagram

• Analysis & design

class diagram, sequence diagram, state diagram

• Implementation

• Testing

• Deployment

deployment diagram

Page 16: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

UML examples

Page 17: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Agile

2001

Page 18: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Background

• Planning planning planning

– Airplane’s control system needs 10 years to develop

• Problems

– Too much document

– Too late code delivery

– Not easy to deal with changes

– Too much bureaucracy

– Hard to finalize design w/o implementation

– Hard to estimate time before design & imp.

– Hard to finish planning (prioritize) w/o estimating time

Page 19: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

The Agile manifesto

• http://agilemanifesto.org/

Page 20: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

12 key practices

• planning game

• small releases

• metaphor

• simple design

• testing (customer tests and tdd)

• Refactoring

• pair programming

• collective code ownership

• continuous integration

• 40 hour week

• onsite customer

• coding standards

Page 21: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

The XP process

for each release/iteration (=2 weeks)

review & planning

design

implementation

Page 22: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Planning

• Requirement document

• User stories

– What is it?

– Customer provides …

– Developers provide …

Page 23: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Example user stories

Page 24: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Design

• Principle – KIS (keep it simple)

• Output

– CRC Card (Class-Respopnsibility-Collaboration)

Page 25: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Example (keep it simple)

Simplicity Generality

Page 26: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Example (CRC Card)

Page 27: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Design

• What is the problem of KIS?

• Solution

Page 28: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

refactoring

• What is refactoring?

Page 29: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Implementation

• TDD (test-driven development)

– Unit tests

– Test suite

– Regression testing & continuous integration

• Pair programming

Page 30: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Implementation

• TDD (test-driven development)

– Unit tests (www.codehunt.com)

– Test suite

– Regression testing & continuous integration

• Pair programming

Page 31: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

How to end an iteration?

Page 32: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

12 key practices

• planning game

• small releases

• metaphor

• simple design

• testing (customer tests and tdd)

• Refactoring

• pair programming

• collective code ownership

• continuous integration

• 40 hour week

• onsite customer

• coding standards

Page 33: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Did Agile solve the problems?

Page 34: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Challenges for Agile

Page 35: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

Summary

• Drawbacks of waterfall

• Good practices

– Incremental, evolutionary

• RUP

– Separating phases and work-flows

– UML

• Agile, XP

– …

– tdd, small releases, …

Page 36: RUP, Agile, XP - University of Chicago · PDF fileOutline •The problems of waterfall –How to improve waterfall? •RUP –Phases –(iterative) Activities –UML •Agile –XP

A few project example

• https://github.com/catherinemoresco/PDFProject

• https://github.com/courageousillumination/deckr

• https://github.com/dyxh/cs220