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

Post on 06-Jan-2022

3 views 0 download

Transcript of 第3讲 RUP与XP - cs.sjtu.edu.cn

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

第3讲 RUP与XP

XP

Extreme Programming

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

1. 统一过程的历史

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

统一过程的历史(1)

w Ericsson n  1967 Ericsson

n  Ivar

Jacobson

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

统一过程的历史(2)

w  SDL n  1976 CCITT

Ericsson

SDLSDL

UML

n  SDL UML

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

统一过程的历史(3)

w  n  1987 Ivar Jacobson Ericsson

Object AB

n 

n  1988

objectory 1.0 19950bjectory 3.8

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

统一过程的历史(4)

w Rational n  Rational 1995 Objectory AB

Rational 4.1 n  1998 Rational

1998 6Rational RUP5.0

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

2. 统一过程的概述

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

2.1 统一过程概述

w 

w 

w  UML w  :

n  n  n 

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

2.2 软件开发的要素

工具 项目

产品

过程

人员

模板

参与者

自动化

结果

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

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

w  w 

n  n  n  n  n  n 

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

w 

w  n  n  n  n 

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

(2)项目创造产品

w  n  a sequence of change

release n  a series of iterations

n  an organizational pattern :

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

(3)产品不仅仅是代码

w  n  n  n  ……

w  w  (artifact)

w 

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

(4)系统包含一组模型

w 

w 

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

w 

w 

w 

w 

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

w 

w 

UML

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

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

(5)过程指导项目

w “ ”“ ”

w 

w 

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

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

w  w  w 

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

w 

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

w  w 

n 

w  w  UML w 

上海交通大学计算机科学与工程系 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

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

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

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

3.1.1 为什么使用用例

w  n  “ ” n 

w  w 

w 

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

3.1.2用例驱动的含义

w  w  w  (use-case driven) w 

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

3.1.3用例驱动概述

w  n  —— n  ——

w 

w  w  w 

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

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

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

3.2.1 什么是架构(1)

w  w 

w 

“ ” w 

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

3.2.1 什么是架构(2)

w 

w 

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

3.2.2 以构架为中心的含义

w  w 

w 

w 

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

3.2.3 架构的描述方法(1)

w 

RUPSoftware Architecture Document .

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

3.2.3 架构的描述方法(2)

w 

. w 

[PW92].

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

3.2.3 架构的描述方法(3)

w  n 

“ ” RUP “4+1 view model”

[KRU95].

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

3.2.4 架构化过程

w  RUP ,

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

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

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

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

w mini-project

w 

w 

(controlled)

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

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

w  n 

n 

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

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

w  n 

n 

UML

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

3.3.2 循环包含的阶段(1)

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

3.3.2 循环包含的阶段(2)

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

3.3.2 循环包含的阶段(3)

w  (Inception Phase) n 

n 

n 

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

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

w  (Elaboration Phase ) n 

n 

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

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

w  (Construction Phase ) n 

n 

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

3.3.2 循环包含的阶段(3)

w  (Transition Phase ) w  w 

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

3.3.3 迭代(1)

w  n 

n 

w 

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

3.3.3 迭代(2)

w  n 

:

n 

BUG

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

3.3.3 迭代(2) n 

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

3.3.3 迭代(2)

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

3.3.3 迭代(2) n 

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

3.3.3 迭代(2)

w 

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

增量模型

3/14/19 50

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

增量模型

3/14/19 51

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

增量模型

3/14/19 52

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

增量的方式

3/14/19 53

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

增量模型的特点

3/14/19 54

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

增量模型的优点

3/14/19 55

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

4 统一过程最佳实践

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

4.1 最佳实践

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

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

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

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

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

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

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

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

4.3 最佳实践:管理需求

w 

w  w  w  w  w  w 

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

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

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

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

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

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

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

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

4.7 最佳实践: 变更管理

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

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

5 XP的简单介绍

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

XP是什么?

w 

w  Kent Beck 《Extreme Programming

Explained – Embrace Change》 97

w 

w  ――fowler

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

XP的目标

w 

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

什么时候需要XP?

w 

w 

w  10

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

XP的系统隐喻

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

依赖于

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

依赖于

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

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

XP体现四个价值目标

w  communication w  simplicity w  feedback w  courage

上海交通大学计算机科学与工程系 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)

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

实例

w 某 J2EERUP

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

w 

w  BUG

BUG

上海交通大学计算机科学与工程系 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名

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

现场客户 ( On-site Customer )

w  XP

w 

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

代码规范 ( Code Standards )

w XP

w 

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

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

w XP 40

w 

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

测试驱动 ( Test-driven )

w XP " "

w  JUNIT

JBUILDER6

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

代码重构 ( Refactoring )

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

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

个功能实现和实现后。

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

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

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

设计。

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

成对编程 ( Pair Programming )

w XP

w 

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

集体代码所有权(Collective ownership)

w  XP

w  ""

" "

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

持续集成 ( Continuous Integration )

w XP

w  VSS

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

小型发布 ( Small Release )

w  XP

w 

" "BUG Rational Clear Case

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

计划博弈 ( Planning Game )

w XP

w 

15

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

系统隐喻 ( System Metaphor )

w XP

XP

w  STRUTS

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

简单设计 ( Simple Design )

w  XP

w 

" "

上海交通大学计算机科学与工程系 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

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

实践之间的互相支持

现场客户

规划策略

一周40小时

小发行版

简单设计

测试驱动

配对编程

系统隐喻

重构

编码标准

集体所有权 持续集成

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

XP项目的状态图

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

XP的计划/反馈循环

上海交通大学计算机科学与工程系 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

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

XP vs. RUP

w  w  w  w