第3讲 rup与xp - cs.sjtu.edu.cn

93
上海交通大学计算机科学与工程系 3/14/19 1 3RUPXP XP Extreme Programming

Upload: others

Post on 06-Jan-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 1

第3讲 RUP与XP

XP

Extreme Programming

Page 2: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 2

1. 统一过程的历史

Page 3: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 3

统一过程的历史(1)

w Ericsson n  1967 Ericsson

n  Ivar

Jacobson

Page 4: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 4

统一过程的历史(2)

w  SDL n  1976 CCITT

Ericsson

SDLSDL

UML

n  SDL UML

Page 5: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 5

统一过程的历史(3)

w  n  1987 Ivar Jacobson Ericsson

Object AB

n 

n  1988

objectory 1.0 19950bjectory 3.8

Page 6: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 6

统一过程的历史(4)

w Rational n  Rational 1995 Objectory AB

Rational 4.1 n  1998 Rational

1998 6Rational RUP5.0

Page 7: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 7

2. 统一过程的概述

Page 8: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 8

2.1 统一过程概述

w 

w 

w  UML w  :

n  n  n 

Page 9: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 9

2.2 软件开发的要素

工具 项目

产品

过程

人员

模板

参与者

自动化

结果

Page 10: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 10

(1)软件开发的要素:人员

w  w 

n  n  n  n  n  n 

Page 11: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 11

w 

w  n  n  n  n 

Page 12: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 12

(2)项目创造产品

w  n  a sequence of change

release n  a series of iterations

n  an organizational pattern :

Page 13: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 13

(3)产品不仅仅是代码

w  n  n  n  ……

w  w  (artifact)

w 

Page 14: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 14

(4)系统包含一组模型

w 

w 

Page 15: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 15

w 

w 

w 

w 

Page 16: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 16

w 

w 

UML

用例模型 分析模型 设计模型 实现模型

Page 17: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 17

(5)过程指导项目

w “ ”“ ”

w 

w 

Page 18: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 18

Page 19: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 19

w  w  w 

n  Organizational factor n  Domain factor n  Life cycle factor n  Technical factor

w 

Page 20: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 20

w  w 

n 

w  w  UML w 

Page 21: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 21

w  Rational Administrator w  Rational ClearCase w  Rational ClearQuest w  Rational Process Workbench w  Rational ProjectConsole w  Rational PureCoverage w  Rational Purify w  Rational QualityArchitect w  Rational Quantify w  Rational RequisitePro w  Rational Robot w  Rational Rose Tool Set w  Rational Rose (classic tool mentors) w  Rational Rose (business modeling toolmentors) w  Rational Rose RealTime w  Rational SoDA w  Rational Suite AnalystStudio w  Rational Test RealTime w  Rational TestFactory w  Rational TestManager

Page 22: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 22

3. 统一过程的特点 3.1 用例驱动

Page 23: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 23

3.1.1 为什么使用用例

w  n  “ ” n 

w  w 

w 

Page 24: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 24

3.1.2用例驱动的含义

w  w  w  (use-case driven) w 

Page 25: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 25

3.1.3用例驱动概述

w  n  —— n  ——

w 

w  w  w 

Page 26: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 26

3. 统一过程的特点 3.2 架构为中心

Page 27: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 27

3.2.1 什么是架构(1)

w  w 

w 

“ ” w 

Page 28: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 28

3.2.1 什么是架构(2)

w 

w 

Page 29: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 29

3.2.2 以构架为中心的含义

w  w 

w 

w 

Page 30: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 30

3.2.3 架构的描述方法(1)

w 

RUPSoftware Architecture Document .

Page 31: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 31

3.2.3 架构的描述方法(2)

w 

. w 

[PW92].

Page 32: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 32

3.2.3 架构的描述方法(3)

w  n 

“ ” RUP “4+1 view model”

[KRU95].

Page 33: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 33

3.2.4 架构化过程

w  RUP ,

Page 34: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 34

3. 统一过程的特点 3.3 迭代和增量的

Page 35: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 35

3.3.1 迭代和增量的含义(1)

w mini-project

w 

w 

(controlled)

Page 36: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 36

3.3.1 迭代和增量的含义(2)

w  n 

n 

Page 37: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 37

3.3.1 迭代和增量的含义(3)

w  n 

n 

UML

Page 38: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 38

3.3.2 循环包含的阶段(1)

Page 39: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 39

3.3.2 循环包含的阶段(2)

Page 40: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 40

3.3.2 循环包含的阶段(3)

w  (Inception Phase) n 

n 

n 

Page 41: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 41

3.3.2 循环包含的阶段(3)续

w  (Elaboration Phase ) n 

n 

Page 42: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 42

3.3.2 循环包含的阶段(3)续

w  (Construction Phase ) n 

n 

Page 43: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 43

3.3.2 循环包含的阶段(3)

w  (Transition Phase ) w  w 

Page 44: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 44

3.3.3 迭代(1)

w  n 

n 

w 

Page 45: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 45

3.3.3 迭代(2)

w  n 

:

n 

BUG

Page 46: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 46

3.3.3 迭代(2) n 

Page 47: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 47

3.3.3 迭代(2)

Page 48: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 48

3.3.3 迭代(2) n 

Page 49: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 49

3.3.3 迭代(2)

w 

Page 50: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系

增量模型

3/14/19 50

Page 51: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系

增量模型

3/14/19 51

Page 52: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系

增量模型

3/14/19 52

Page 53: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系

增量的方式

3/14/19 53

Page 54: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系

增量模型的特点

3/14/19 54

Page 55: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系

增量模型的优点

3/14/19 55

Page 56: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 56

4 统一过程最佳实践

Page 57: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 57

4.1 最佳实践

Page 58: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 58

4.2 最佳实践:迭代化开发(1)

Page 59: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 59

4.2 最佳实践:迭代化开发(2) 在瀑布模型中,直到生命周期结束时,你才能验证系统

Page 60: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 60

4.2 最佳实践:迭代化开发(3) w  在一个迭代周期中,你需要根据关键风险列表选择开发的内容。由于每一

次迭代的产品都是可执行的,因此,你可以判断你是否将目标风险进行了转移。

Page 61: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 61

4.3 最佳实践:管理需求

w 

w  w  w  w  w  w 

Page 62: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 62

4.4 最佳实践:使用组件架构

Page 63: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 63

4.5 最佳实践:可视化建模 (UML)

Page 64: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 64

4.6 最佳实践:持续质量校核

w  在部署阶段后,查找和修复软件问题的成本将 100倍,1000倍的增加。在整个项目过程中不断对软件的质量进行校核和管理是在正确的时间开发出正确的软件的必要条件。

Page 65: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 65

4.7 最佳实践: 变更管理

w  变更管理不局限于对文件的checking-in和checking-out操作。它包含了对工作空间的管理,以及对并行开发,集成和构造的管理。

Page 66: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 66

5 XP的简单介绍

Page 67: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 67

XP是什么?

w 

w  Kent Beck 《Extreme Programming

Explained – Embrace Change》 97

w 

w  ――fowler

Page 68: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 68

XP的目标

w 

Page 69: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 69

什么时候需要XP?

w 

w 

w  10

Page 70: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 70

XP的系统隐喻

过程顺利完成 发扬4个价值准则 实现12个实践

依赖于

平衡短期利益与长期利益的冲突

依赖于

构造XP开发规范中的四项活动:-编码-测试-聆听-设计

Page 71: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 71

XP体现四个价值目标

w  communication w  simplicity w  feedback w  courage

Page 72: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 72

XP的12个核心实践

w  (Planning game) w  (System Metaphor) w  (Simple design) w  (pair programming) w  (Coding standards) w  (Test-driven) w  Refactoring w  (Continuous integration) w  (Small releases) w  (On-site customer) w  (Collective ownership) w  40 (40-hour week)

Page 73: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 73

实例

w 某 J2EERUP

Page 74: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 74

w 

w  BUG

BUG

Page 75: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 75

w  XP

w  2001 XP2002 5 XP

n  项目名称

w  合作伙伴管理系统 n  处理工作流程

w  9个 n  项目周期

w  43个工作日 n  项目金额

w  25万 n  项目小组人员

w  5人,其中资深顾问2名

Page 76: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 76

现场客户 ( On-site Customer )

w  XP

w 

Page 77: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 77

代码规范 ( Code Standards )

w XP

w 

Page 78: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 78

每周40小时工作制 ( 40-hour Week )

w XP 40

w 

Page 79: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 79

测试驱动 ( Test-driven )

w XP " "

w  JUNIT

JBUILDER6

Page 80: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 80

代码重构 ( Refactoring )

w  XP: 强调代码重构在其中的作用,认为开发人员应该经

常进行重构,通常有两个关键点应该进行重构:对于一

个功能实现和实现后。

w  项目: 在项目中将JREFACTORY工具部署到JBuilder中进

行代码的重构,重构的时间是在各个迭代周期的前后。

代码重构在项目中的作用是改善既有设计,而不是代替

设计。

Page 81: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 81

成对编程 ( Pair Programming )

w XP

w 

Page 82: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 82

集体代码所有权(Collective ownership)

w  XP

w  ""

" "

Page 83: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 83

持续集成 ( Continuous Integration )

w XP

w  VSS

Page 84: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 84

小型发布 ( Small Release )

w  XP

w 

" "BUG Rational Clear Case

Page 85: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 85

计划博弈 ( Planning Game )

w XP

w 

15

Page 86: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 86

系统隐喻 ( System Metaphor )

w XP

XP

w  STRUTS

Page 87: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 87

简单设计 ( Simple Design )

w  XP

w 

" "

Page 88: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 88

成果

w  n  2002/4/25

w  n  2002/6/28

w  n  2002/7/2

w  n  199080

w  n  177340

w  " "6

Page 89: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 89

实践之间的互相支持

现场客户

规划策略

一周40小时

小发行版

简单设计

测试驱动

配对编程

系统隐喻

重构

编码标准

集体所有权 持续集成

Page 90: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 90

XP项目的状态图

Page 91: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 91

XP的计划/反馈循环

Page 92: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 92

从CMM角度看XP

w XP CMM 2-3 KPA CMM 4-5 KPA

w XP CMM

w XP “institutionalization”

--Mark Paulk, SEI

Page 93: 第3讲 RUP与XP - cs.sjtu.edu.cn

上海交通大学计算机科学与工程系 3/14/19 93

XP vs. RUP

w  w  w  w