Transcript
Page 1: CJEA (中国 JAVA 工程师协会)

CJEACJEA (中国(中国 JAVAJAVA 工程师协会)工程师协会)

流行软件开发过程方法流行软件开发过程方法 比较比较

Page 2: CJEA (中国 JAVA 工程师协会)

主主 要要 内内 容容 软件开发过程产生的背景软件开发过程产生的背景 软件开发过程是什么软件开发过程是什么 RUPRUP 是什么 是什么 ISO9001ISO9001 是什么是什么 CMMCMM 是什么 是什么 UMLUML 是什么是什么 XPXP 是什么 是什么 软件开发过程的比较软件开发过程的比较 测试在软件开发过程中的测试在软件开发过程中的

地位地位

Page 3: CJEA (中国 JAVA 工程师协会)

软件开发过程的背景软件开发过程的背景 软件越来越复杂 软件越来越复杂 需求越来越多变 需求越来越多变 过程越来越规范 过程越来越规范

Page 4: CJEA (中国 JAVA 工程师协会)

主主 要要 内内 容容 软件开发过程产生的背景 软件开发过程产生的背景 软件开发过程是什么软件开发过程是什么 RUPRUP 是什么 是什么 ISO9001ISO9001 是什么是什么 CMMCMM 是什么 是什么 UMLUML 是什么是什么 XPXP 是什么 是什么 软件开发过程的比较软件开发过程的比较 测试在软件开发过程中的测试在软件开发过程中的

地位地位

Page 5: CJEA (中国 JAVA 工程师协会)

软件开发过程是什么软件开发过程是什么 软件开发过程是按照软件工业化的标准定软件开发过程是按照软件工业化的标准定

义的在软件开发中必须具有的一系列过程义的在软件开发中必须具有的一系列过程规范;规范;

软件开发过程是定义软件中的软件需求、软件开发过程是定义软件中的软件需求、软件设计,软件编码、软件测试、软件部软件设计,软件编码、软件测试、软件部署的实现目标和规范化的管理方法论;署的实现目标和规范化的管理方法论;

软件开发过程是保证软件工业化生产的法软件开发过程是保证软件工业化生产的法典;典;

Page 6: CJEA (中国 JAVA 工程师协会)

软件开发过程是什么软件开发过程是什么 软件开发过程做的是:定义标准和为了达软件开发过程做的是:定义标准和为了达

到标准的路;到标准的路; 软件开发过程要改善的是:软件开发的效软件开发过程要改善的是:软件开发的效

率和质量;率和质量; 软件开发过程的实现最重要的是:软件开发过程的实现最重要的是: 人人

Page 7: CJEA (中国 JAVA 工程师协会)

我国的软件开发存在的问题我国的软件开发存在的问题 (( 11 )质量意识淡薄,企业从上到下都缺乏正确的产品质量意识,只)质量意识淡薄,企业从上到下都缺乏正确的产品质量意识,只

注重完成软件产品的功能,忽视产品的质量问题。注重完成软件产品的功能,忽视产品的质量问题。 (( 22 )体制不灵活,不健全,导致质量监督不力。由于体制问题造成)体制不灵活,不健全,导致质量监督不力。由于体制问题造成

软件人才不必要的流动,同样是因为体制问题造成实际上企业的软件软件人才不必要的流动,同样是因为体制问题造成实际上企业的软件资产流失。资产流失。

(( 33 )做产品的概念不浓,大多只为短期的经济利益,做短期的项目。)做产品的概念不浓,大多只为短期的经济利益,做短期的项目。 (( 44 )形式化的东西太多,为追求评奖或完成项目,报喜不报忧。)形式化的东西太多,为追求评奖或完成项目,报喜不报忧。 (( 55 )软件企业的交流少,思想保守。)软件企业的交流少,思想保守。 (( 66 )对新技术研究的跟进、投入少。)对新技术研究的跟进、投入少。 (( 77 )多数项目盲目采用国外技术,没有从自身问题入手,寻找适合)多数项目盲目采用国外技术,没有从自身问题入手,寻找适合

产品开发的技术和过程。产品开发的技术和过程。

Page 8: CJEA (中国 JAVA 工程师协会)

主主 要要 内内 容容 软件开发过程产生的背景 软件开发过程产生的背景 软件开发过程是什么软件开发过程是什么 RUPRUP 是什么是什么 ISO9001ISO9001 是什么是什么 CMMCMM 是什么 是什么 UMLUML 是什么是什么 XPXP 是什么 是什么 软件开发过程的比较软件开发过程的比较 测试在软件开发过程中的测试在软件开发过程中的

地位地位

Page 9: CJEA (中国 JAVA 工程师协会)

RUPRUP 是什么是什么 Rational unified procesRational unified processs

Page 10: CJEA (中国 JAVA 工程师协会)

RUPRUP

RationalRational 公司的改进过程的规范 公司的改进过程的规范 ;; 给出了最完善的团队建设解决方案 给出了最完善的团队建设解决方案 ;; 它又是文档化的软件工程产品,所有它又是文档化的软件工程产品,所有 RUP RUP

的实施细节及方法导引均以的实施细节及方法导引均以 WebWeb 文档的方文档的方式集成在一张光盘上,由式集成在一张光盘上,由 RationalRational 公司开公司开发、维护并销售,当前版本是发、维护并销售,当前版本是 RUP2002RUP2002 。 。

Page 11: CJEA (中国 JAVA 工程师协会)

RUPRUP

RUPRUP 又是一套软件工程方法的框架,各个又是一套软件工程方法的框架,各个组织可根据自身的实际情况,以及项目规组织可根据自身的实际情况,以及项目规模对模对 RUPRUP 进行裁剪和修改,以制定出合乎进行裁剪和修改,以制定出合乎需要的软件工程过程。需要的软件工程过程。

与统一建模语言(与统一建模语言( Unified Model LanguaUnified Model Language , ge , 以下简称以下简称 UMLUML )的良好集成、多种)的良好集成、多种 CCASEASE 工具的支持、不断的升级与维护,迅工具的支持、不断的升级与维护,迅速得到业界广泛的认同,越来越多的组织速得到业界广泛的认同,越来越多的组织以它作为软件开发模型框架 以它作为软件开发模型框架

Page 12: CJEA (中国 JAVA 工程师协会)

RUPRUP

如图 1 所示,时间维从组织管理的角度描述整个软件开发生命周期,是 RUP 的动态组成部分。它可进一步描述为

周期( Cycle )、阶段( phase )、迭代 (Iteration)。核心工作流从技术角度描述 RUP 的静态组成部分,它可进一步描述为

行为( activities)、工作流(workflow)、产品( artifact )、工人(worker)。

Page 13: CJEA (中国 JAVA 工程师协会)

RUPRUP

RUPRUP 采用采用 UsecaseUsecase 的概念 ;的概念 ; RUPRUP 采用迭代的思想把系统的风险分布在采用迭代的思想把系统的风险分布在四个阶段,风险越大的迭代越要放在靠前四个阶段,风险越大的迭代越要放在靠前的阶段做 的阶段做

理解和掌握理解和掌握 RUPRUP 需要一个相对较长的过程 需要一个相对较长的过程

Page 14: CJEA (中国 JAVA 工程师协会)

主主 要要 内内 容容 软件开发过程产生的背景 软件开发过程产生的背景 软件开发过程是什么软件开发过程是什么 RUPRUP 是什么 是什么 ISO9001ISO9001 是什么是什么 CMMCMM 是什么 是什么 UMLUML 是什么是什么 XPXP 是什么 是什么 软件开发过程的比较软件开发过程的比较 测试在软件开发过程中的测试在软件开发过程中的

地位地位

Page 15: CJEA (中国 JAVA 工程师协会)

ISO9001ISO9001

ISO9000ISO9000其实是一族国际标准,其中其实是一族国际标准,其中 ISO9001ISO9001 是是关于产品质量保证的标准,关于产品质量保证的标准, ISO9000-3ISO9000-3 是关于软是关于软件产品质量管理的指南 ;件产品质量管理的指南 ;

管理职责,质量体系,合同评审,设计控制,文管理职责,质量体系,合同评审,设计控制,文件和资料控制,采购,顾客提供产品的控制,产件和资料控制,采购,顾客提供产品的控制,产品标识和可追溯性,过程控制,检验、测量和试品标识和可追溯性,过程控制,检验、测量和试验设备的控制,检验和试验状态,不合格品的控验设备的控制,检验和试验状态,不合格品的控制,纠正和预防措施,搬运、储存、包装、防护制,纠正和预防措施,搬运、储存、包装、防护和交付,质量记录的控制,内部质量审核,培训,和交付,质量记录的控制,内部质量审核,培训,服务和统计技术 服务和统计技术

Page 16: CJEA (中国 JAVA 工程师协会)

ISO9001ISO9001

它是一种来源于工业的一种标准,由于软它是一种来源于工业的一种标准,由于软件有其特定的特殊性,所以很难使用;件有其特定的特殊性,所以很难使用;

主要是用它的标准化文档管理;主要是用它的标准化文档管理;

Page 17: CJEA (中国 JAVA 工程师协会)

主主 要要 内内 容容 软件开发过程产生的背景 软件开发过程产生的背景 软件开发过程是什么软件开发过程是什么 RUPRUP 是什么 是什么 ISO9001ISO9001 是什么是什么 CMMCMM 是什么 是什么 UMLUML 是什么是什么 XPXP 是什么 是什么 软件开发过程的比较软件开发过程的比较 测试在软件开发过程中的测试在软件开发过程中的

地位地位

Page 18: CJEA (中国 JAVA 工程师协会)

CMMCMM

CMM(Capability Maturity ModelCMM(Capability Maturity Model ,能力成,能力成熟度模型熟度模型 ))是美国国防部对软件承包商软件是美国国防部对软件承包商软件能力评估的一种模型,也是承包商改进其能力评估的一种模型,也是承包商改进其软件过程的一种途径 软件过程的一种途径

Page 19: CJEA (中国 JAVA 工程师协会)

CMMCMM 其模型分为五个等级 :其模型分为五个等级 : 始级,软件生产过程的特征是随机的,有时甚至始级,软件生产过程的特征是随机的,有时甚至

是杂乱的。很少过程被定义,成功依赖于个人的是杂乱的。很少过程被定义,成功依赖于个人的努力。 努力。

可重复级,建立基本的项目管理过程,以跟踪费可重复级,建立基本的项目管理过程,以跟踪费用、进度和功能。设定必要的过程纪律以重复以用、进度和功能。设定必要的过程纪律以重复以往在相同应用的项目的成功。往在相同应用的项目的成功。

已定义级,管理和工程活动的软件过程已文档化、已定义级,管理和工程活动的软件过程已文档化、标准化、集成化到一个标准的组织的软件过程。标准化、集成化到一个标准的组织的软件过程。组织内所有的项目使用的软件过程是集体同意、组织内所有的项目使用的软件过程是集体同意、裁剪过的标准开发和维护软件的版本。裁剪过的标准开发和维护软件的版本。

Page 20: CJEA (中国 JAVA 工程师协会)

CMMCMM

已管理级,详细的软件过程和产品质量的特征已已管理级,详细的软件过程和产品质量的特征已被收集。软件过程和产品已被定量管理和控制。被收集。软件过程和产品已被定量管理和控制。

优化级,能自觉利用各种经验和来自新技术、新优化级,能自觉利用各种经验和来自新技术、新思想的先导试验的定量反馈信息,不断改进和优思想的先导试验的定量反馈信息,不断改进和优化组织统一的标准软件过程。化组织统一的标准软件过程。

全世界已有近万家软件机构通过认证,绝大部分全世界已有近万家软件机构通过认证,绝大部分通过通过 22级,级, 16%16%的企业通过的企业通过 33级,级, 1414家通过家通过 44级,级, 66家通过家通过 55级。通过级。通过 22级评审即可向欧美国级评审即可向欧美国家接订单 家接订单

Page 21: CJEA (中国 JAVA 工程师协会)

主主 要要 内内 容容 软件开发过程产生的背景 软件开发过程产生的背景 软件开发过程是什么软件开发过程是什么 RUPRUP 是什么 是什么 ISO9001ISO9001 是什么是什么 CMMCMM 是什么 是什么 UMLUML 是什么是什么 XPXP 是什么 是什么 软件开发过程的比较软件开发过程的比较 测试在软件开发过程中的测试在软件开发过程中的

地位地位

Page 22: CJEA (中国 JAVA 工程师协会)

UMLUML 的介绍的介绍 UMLUML (( unified model language)unified model language) UMLUML 是一门用于软件产品的建模语言 是一门用于软件产品的建模语言 UMLUML 是重量级的软件过程(大而全) 是重量级的软件过程(大而全) UMLUML 给软件产业带来了工程化的设计理念 给软件产业带来了工程化的设计理念 UMLUML 不是方法、不是过程、不是思想。它不是方法、不是过程、不是思想。它

只是一种交流工具 只是一种交流工具

Page 23: CJEA (中国 JAVA 工程师协会)

XPXP (( AMAM (( agilemodelingagilemodeling ) ) AMAM 是一种最近才出现的软件思想 是一种最近才出现的软件思想 AMAM 是一种轻方法论 是一种轻方法论 XPXP (极限编程)就是一种(极限编程)就是一种 AMAM 的具体实现 的具体实现

Page 24: CJEA (中国 JAVA 工程师协会)

主主 要要 内内 容容 软件开发过程产生的背景 软件开发过程产生的背景 软件开发过程是什么软件开发过程是什么 RUPRUP 是什么 是什么 ISO9001ISO9001 是什么是什么 CMMCMM 是什么 是什么 UMLUML 是什么是什么 XPXP 是什么 是什么 软件开发过程的比较软件开发过程的比较 测试在软件开发过程中的测试在软件开发过程中的

地位地位

Page 25: CJEA (中国 JAVA 工程师协会)

XPXP 的四个观点的四个观点 交流交流 简单简单 回馈回馈 勇气勇气

Page 26: CJEA (中国 JAVA 工程师协会)

XPXP 的原则的原则 :: 测试 测试

11.所有的代码都必须有单元测试 .所有的代码都必须有单元测试 22.所有的代码在发布之前必须通过所有单.所有的代码在发布之前必须通过所有单元测试 元测试

33.当一个.当一个 BUGBUG 发现时,就增加新的测试 发现时,就增加新的测试 44.我们经常运行验收测试,并公布分数 .我们经常运行验收测试,并公布分数 推荐工具:推荐工具: JunitJunit

Page 27: CJEA (中国 JAVA 工程师协会)

主主 要要 内内 容容 软件开发过程产生的背景 软件开发过程产生的背景 软件开发过程是什么软件开发过程是什么 RUPRUP 是什么 是什么 ISO9001ISO9001 是什么是什么 CMMCMM 是什么 是什么 UMLUML 是什么是什么 XPXP 是什么 是什么 软件开发过程的比较软件开发过程的比较 测试在软件开发过程中的测试在软件开发过程中的

地位地位

Page 28: CJEA (中国 JAVA 工程师协会)

软件开发过程的比较软件开发过程的比较 CMMCMM也是一个标准,它要求我们应该做到什也是一个标准,它要求我们应该做到什

么,而没有告诉我们应该如何做 么,而没有告诉我们应该如何做 XPXP告诉我们如何做,但是没有明确的指出,告诉我们如何做,但是没有明确的指出,

做到以后该如何改进;做到以后该如何改进; ISO9001ISO9001 是工业标准,但是不是软件业的工是工业标准,但是不是软件业的工

业标准;业标准; RUPRUP 和和 CMMCMM结合,把结合,把 RUPRUP 的九个工作流和的九个工作流和

CMM2CMM2 、、 33级的级的 KPAKPA 结合起来是一种趋势;结合起来是一种趋势; UMLUML 成为交流的工具 成为交流的工具

Page 29: CJEA (中国 JAVA 工程师协会)

JunitJunit 的使用的使用 从从 http://download.sourceforge.net/junit/junit3.7.ziphttp://download.sourceforge.net/junit/junit3.7.zip 设定你的设定你的 CLASSPATHCLASSPATH;; INSTALL_DIR\junit3\junit.jar INSTALL_DIR\junit3\junit.jar for the batch TestRunner type: for the batch TestRunner type:

java junit.textui.TestRunner junit.samples.AllTests java junit.textui.TestRunner junit.samples.AllTests for the graphical TestRunner type: for the graphical TestRunner type:

java junit.awtui.TestRunner junit.samples.AllTests java junit.awtui.TestRunner junit.samples.AllTests for the Swing based graphical TestRunner type: for the Swing based graphical TestRunner type:

java junit.swingui.TestRunner junit.samples.AllTests java junit.swingui.TestRunner junit.samples.AllTests


Top Related