流行软件开发过程方法比较.ppt
CJEA(中国JAVA工程师协会),流行软件开发过程方法 比较,主要内容,软件开发过程产生的背景 软件开发过程是什么RUP是什么 ISO9001是什么CMM是什么 UML是什么XP是什么 软件开发过程的比较测试在软件开发过程中的地位,软件开发过程的背景,软件越来越复杂 需求越来越多变 过程越来越规范,主要内容,软件开发过程产生的背景 软件开发过程是什么RUP是什么 ISO9001是什么CMM是什么 UML是什么XP是什么 软件开发过程的比较测试在软件开发过程中的地位,软件开发过程是什么,软件开发过程是按照软件工业化的标准定义的在软件开发中必须具有的一系列过程规范;软件开发过程是定义软件中的软件需求、软件设计,软件编码、软件测试、软件部署的实现目标和规范化的管理方法论;软件开发过程是保证软件工业化生产的法典;,软件开发过程是什么,软件开发过程做的是:定义标准和为了达到标准的路;软件开发过程要改善的是:软件开发的效率和质量;软件开发过程的实现最重要的是:人,我国的软件开发存在的问题,(1)质量意识淡薄,企业从上到下都缺乏正确的产品质量意识,只注重完成软件产品的功能,忽视产品的质量问题。(2)体制不灵活,不健全,导致质量监督不力。由于体制问题造成软件人才不必要的流动,同样是因为体制问题造成实际上企业的软件资产流失。(3)做产品的概念不浓,大多只为短期的经济利益,做短期的项目。(4)形式化的东西太多,为追求评奖或完成项目,报喜不报忧。(5)软件企业的交流少,思想保守。(6)对新技术研究的跟进、投入少。(7)多数项目盲目采用国外技术,没有从自身问题入手,寻找适合产品开发的技术和过程。,主要内容,软件开发过程产生的背景 软件开发过程是什么RUP是什么 ISO9001是什么CMM是什么 UML是什么XP是什么 软件开发过程的比较测试在软件开发过程中的地位,RUP是什么Rational unified process,RUP,Rational公司的改进过程的规范;给出了最完善的团队建设解决方案;它又是文档化的软件工程产品,所有RUP 的实施细节及方法导引均以Web文档的方式集成在一张光盘上,由Rational公司开发、维护并销售,当前版本是RUP2002。,RUP,RUP又是一套软件工程方法的框架,各个组织可根据自身的实际情况,以及项目规模对RUP进行裁剪和修改,以制定出合乎需要的软件工程过程。与统一建模语言(Unified Model Language,以下简称UML)的良好集成、多种CASE工具的支持、不断的升级与维护,迅速得到业界广泛的认同,越来越多的组织以它作为软件开发模型框架,RUP,如图1所示,时间维从组织管理的角度描述整个软件开发生命周期,是RUP的动态组成部分。它可进一步描述为周期(Cycle)、阶段(phase)、迭代(Iteration)。核心工作流从技术角度描述RUP的静态组成部分,它可进一步描述为行为(activities)、工作流(workflow)、产品(artifact)、工人(worker)。,RUP,RUP采用Usecase的概念;RUP采用迭代的思想把系统的风险分布在四个阶段,风险越大的迭代越要放在靠前的阶段做 理解和掌握RUP需要一个相对较长的过程,主要内容,软件开发过程产生的背景 软件开发过程是什么RUP是什么 ISO9001是什么CMM是什么 UML是什么XP是什么 软件开发过程的比较测试在软件开发过程中的地位,ISO9001,ISO9000其实是一族国际标准,其中ISO9001是关于产品质量保证的标准,ISO9000-3是关于软件产品质量管理的指南;管理职责,质量体系,合同评审,设计控制,文件和资料控制,采购,顾客提供产品的控制,产品标识和可追溯性,过程控制,检验、测量和试验设备的控制,检验和试验状态,不合格品的控制,纠正和预防措施,搬运、储存、包装、防护和交付,质量记录的控制,内部质量审核,培训,服务和统计技术,ISO9001,它是一种来源于工业的一种标准,由于软件有其特定的特殊性,所以很难使用;主要是用它的标准化文档管理;,主要内容,软件开发过程产生的背景 软件开发过程是什么RUP是什么 ISO9001是什么CMM是什么 UML是什么XP是什么 软件开发过程的比较测试在软件开发过程中的地位,CMM,CMM(Capability Maturity Model,能力成熟度模型)是美国国防部对软件承包商软件能力评估的一种模型,也是承包商改进其软件过程的一种途径,CMM,其模型分为五个等级:始级,软件生产过程的特征是随机的,有时甚至是杂乱的。很少过程被定义,成功依赖于个人的努力。可重复级,建立基本的项目管理过程,以跟踪费用、进度和功能。设定必要的过程纪律以重复以往在相同应用的项目的成功。已定义级,管理和工程活动的软件过程已文档化、标准化、集成化到一个标准的组织的软件过程。组织内所有的项目使用的软件过程是集体同意、裁剪过的标准开发和维护软件的版本。,CMM,已管理级,详细的软件过程和产品质量的特征已被收集。软件过程和产品已被定量管理和控制。优化级,能自觉利用各种经验和来自新技术、新思想的先导试验的定量反馈信息,不断改进和优化组织统一的标准软件过程。全世界已有近万家软件机构通过认证,绝大部分通过2级,16%的企业通过3级,14家通过4级,6家通过5级。通过2级评审即可向欧美国家接订单,主要内容,软件开发过程产生的背景 软件开发过程是什么RUP是什么 ISO9001是什么CMM是什么 UML是什么XP是什么 软件开发过程的比较测试在软件开发过程中的地位,UML的介绍,UML(unified model language)UML是一门用于软件产品的建模语言 UML是重量级的软件过程(大而全)UML给软件产业带来了工程化的设计理念 UML不是方法、不是过程、不是思想。它只是一种交流工具,XP(AM(agilemodeling),AM是一种最近才出现的软件思想 AM是一种轻方法论 XP(极限编程)就是一种AM的具体实现,主要内容,软件开发过程产生的背景 软件开发过程是什么RUP是什么 ISO9001是什么CMM是什么 UML是什么XP是什么 软件开发过程的比较测试在软件开发过程中的地位,XP的四个观点,交流 简单回馈 勇气,XP的原则:测试,1所有的代码都必须有单元测试 2所有的代码在发布之前必须通过所有单元测试 3当一个BUG发现时,就增加新的测试 4我们经常运行验收测试,并公布分数 推荐工具:Junit,主要内容,软件开发过程产生的背景 软件开发过程是什么RUP是什么 ISO9001是什么CMM是什么 UML是什么XP是什么 软件开发过程的比较测试在软件开发过程中的地位,软件开发过程的比较,CMM也是一个标准,它要求我们应该做到什么,而没有告诉我们应该如何做 XP告诉我们如何做,但是没有明确的指出,做到以后该如何改进;ISO9001是工业标准,但是不是软件业的工业标准;RUP和CMM结合,把RUP的九个工作流和CMM2、3级的KPA结合起来是一种趋势;UML成为交流的工具,Junit的使用,从设定你的CLASSPATH;INSTALL_DIRjunit3junit.jar for the batch TestRunner type:java for the graphical TestRunner type:java for the Swing based graphical TestRunner type:java,