收藏 分享(赏)

软件项目管理-CH01-选择恰当的过程-典型软件开发过程模型.ppt

上传人:hwpkd79526 文档编号:4848498 上传时间:2019-01-16 格式:PPT 页数:127 大小:2.39MB
下载 相关 举报
软件项目管理-CH01-选择恰当的过程-典型软件开发过程模型.ppt_第1页
第1页 / 共127页
软件项目管理-CH01-选择恰当的过程-典型软件开发过程模型.ppt_第2页
第2页 / 共127页
软件项目管理-CH01-选择恰当的过程-典型软件开发过程模型.ppt_第3页
第3页 / 共127页
软件项目管理-CH01-选择恰当的过程-典型软件开发过程模型.ppt_第4页
第4页 / 共127页
软件项目管理-CH01-选择恰当的过程-典型软件开发过程模型.ppt_第5页
第5页 / 共127页
点击查看更多>>
资源描述

1、软件项目管理 Software Project Management (SPM),郭建东,CH01 选择恰当的开发过程 -典型软件工程过程模型,01.1 软件工程过程 01.2 典型软件工程过程模型 01.3 过程模型的选择,2,软件项目管理 CH01 选择过程 郭建东,01.1 软件工程过程,软件过程是近十年来人们关注的焦点。软件过程是为开发高质量软件所需要完成的任务的框架。软件工程是有创造力、有知识的人在定义好的、成熟的软件过程框架中进行的。,3,软件项目管理 CH01 选择过程 郭建东,软件过程,软件过程层次图,质量焦点,过程,方法,工具,4,软件项目管理 CH01 选择过程 郭建东,软

2、件过程,软件过程提供了一个框架,在该框架下可以建立一个软件开发的综合计划: 若干框架活动适用于所有软件项目,而不在乎其规模和复杂性。 若干不同任务的集合-每一个集合都由任务、里程碑、交付物以及质量保证点组成-使得框架活动适应于不同软件项目的特征和项目组的需求。 若干保护性活动-如软件质量保证、软件配置管理、测试与度量-它们贯穿于整个过程模型之中。保护性活动独立于任何一个框架活动,且贯穿于整个过程之中。,5,软件项目管理 CH01 选择过程 郭建东,软件过程,里程碑、交付物,SQA点,公共过程框架,框架活动,保护性活动,任务集合,工作任务,6,软件项目管理 CH01 选择过程 郭建东,软件过程,

3、软件过程可分为三大类: 基本过程类:是构成软件生存周期主要部分的那些过程,包括获取、供应、开发、操作、维护等过程。 支持过程类:可穿插到基本过程中提供支持的一系列过程,包括文档开发、配置管理、质量保证、验证、确认、联合评审、审计、问题解决等过程。 组织过程类:一个组织用来建立、实施一种基础结构、并不断改进该基础结构的过程,包括管理、基础、改进、培训等过程。,7,软件项目管理 CH01 选择过程 郭建东,软件过程模型,软件过程模型是软件开发的指导思想和全局性框架,软件过程模型的提出和发展反映了人们对软件过程的某种认识观,体现了人们对软件过程认识的提高和飞跃。,8,软件项目管理 CH01 选择过程

4、 郭建东,什么是过程?,软件工程中的目标就是开发和维护软件及相关产品,9,软件项目管理 CH01 选择过程 郭建东,当前主流的软件过程,CMM RUP MSF XP,10,软件项目管理 CH01 选择过程 郭建东,过程铁三角,过程:把各部分集成在一起 CMM,11,软件项目管理 CH01 选择过程 郭建东,过 程,过程就是针对某一给定目标的一系列运作步骤,IEEE-STD-610 是在过程环境下的一系列有序活动。所谓活动(Activity)就是过程对象一次状态改变,也叫过程步(Step)。 活动起始态和活动结果态表征了活动的进行。可以说一切事物的发生、发展、消亡都离不开过程,都寓于过程之中。,

5、12,软件项目管理 CH01 选择过程 郭建东,过程的一般定义,13,软件项目管理 CH01 选择过程 郭建东,煮蛋的启示,14,软件项目管理 CH01 选择过程 郭建东,软件过程,软件过程是将用户的需求转化成有效的软件解决方案的一系列活动。 许多软件组织无法正确定义和控制这一过程,但这恰恰是组织改进的关键。,15,软件项目管理 CH01 选择过程 郭建东,软件过程(Cont.),过程的好坏由结果状态与预期状态的差异决定,也就是目标成果质量的好坏。 规程(Procedure)是人们对客观事物运动规律 的理解和掌握,使规范了的过程。 软件过程是为了获得高质量软件产品所需要完 成的一系列任务的框架

6、,它规定了完成各项任务的工作步骤。 软件过程必须科学、合理,才能开发出高质量 的软件产品。,16,软件项目管理 CH01 选择过程 郭建东,软件过程(Cont.),软件过程又称软件生存周期过程,是软件生存周期内为达到一定目标而必须实施的一系列相关过程的集合。早期:立项、需求分析、设计、编码、测试、交付、维护、退役,17,软件项目管理 CH01 选择过程 郭建东,软件过程(Cont.),项目计划就是安排实际的过程,制作项目计划首先要定义过程。项目计划是某个软件过程模型的实例。 软件过程是人类制作产物的一系列活动,而过去的软件工程师把产物和人分离,只研究产品过程及其质量,假定人力、物力资源是无限大

7、、无限好。现在认识到面对实际资源实施软件过程学,求相对最佳质量才是有效的。,18,软件项目管理 CH01 选择过程 郭建东,软件过程(Cont.),现在的软件生命周期过程包括:早期:立项、需求分析、设计、编码、测试、交付、维护、退役又加入了:管理各种活动、质量保证环境基础设施配置、文档管理等。,19,软件项目管理 CH01 选择过程 郭建东,软件开发问题的循环解决过程,状态描述 问题定义 技术开发 方案综述,20,软件项目管理 CH01 选择过程 郭建东,软件开发过程,为开发小组的活动顺序提供向导 详细说明那些制品将被开发,以及什么时候开发 指导每一个开发人员和整个开发组的工作 为监控和度量项

8、目的产品和活动提供准则,21,软件项目管理 CH01 选择过程 郭建东,软件工程 方法学,传统方法学 面向对象的方法学,22,软件项目管理 CH01 选择过程 郭建东,传统方法学(生命周期方法学),仍然是使用十分广泛的软件工程方法学。 采用结构化技术来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。 从上而下,顺序地完成软件开发的各阶段任务。,23,软件项目管理 CH01 选择过程 郭建东,01.2 典型软件工程过程模型,24,软件项目管理 CH01 选择过程 郭建东,瀑布模型(Waterfall) 原型模型(Prototype) 增量模型(Increment

9、al) 螺旋模型(Spiral) 迭代模型(Iterative),01.2 典型软件工程过程模型,25,软件项目管理 CH01 选择过程 郭建东,瀑布模型(线性顺序模型),瀑布式模型包含以下活动: 系统/信息工程和建模 软件需求分析 设计 代码生成 测试 维护,26,软件项目管理 CH01 选择过程 郭建东,基本概念,软件生存期(过程)模型:软件生存期是软件产品或系统一系列相关活动的全周期。从形成概念开始,经过研制,交付使用,在使用中不断增补修订,直到最后被淘汰,让位于新的软件产品的过程。对软件生存期的不同划分,形成了不同的软件生存期模型。,27,软件项目管理 CH01 选择过程 郭建东,软件

10、工程的传统途径生命周期方法学,生命周期方法学的基本内容从时间角度对软件开发和维护的复杂问题进行分解,把软件生命的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。生命周期方法学的应用方法从对任务的抽象逻辑分析开始,一个阶段一个阶段地进行开发;前一个阶段任务的完成是后一个阶段工作的前提和基础,而后一个阶段任务通常是使前一阶段提出的解法更进一步的具体化,加进了更多的实现细节。阶段过渡方法每一个阶段的开始和结束都有严格标准,前一阶段结束的标准是后一阶段工作开始的标准。 技术审查和管理复审。 基本概念 文档及其作用。生命周期各阶段的基本任务问题定义可行性研究 需求分析

11、 总体设计(概要设计) 详细设计 编码和单元测试 综合测试 软件维护。,28,软件项目管理 CH01 选择过程 郭建东,软件工程(生命周期各阶段的基本任务),问题定义,可行性研究,需求分析,总体设计,详细设计,编码与单元测试,综合测试,软件维护,要解决的问题是什么?,问题性质、工程目标和规模的报告,分析员:实际用户+负责人,是否有解决办法?,分析员,高层逻辑模型,准确和具体的工程规模和目标,成本/效益分析等可行性报告,为了解决的问题,目标系统必须做什么?准确确定系统的功能,系统的逻辑模型 (数据流图+数据字典+简要算法),如何解决这些问题,模块划分软件结构,如何具体地实现系统:每个模块的流程图

12、 (程序的详细规格说明),通过各种类型的测试,使软件达到预定的要求,写出正确的容易理解和容易维护的程序模块,通过各种必要的维护活动使系统持久地满足用户的需要,29,软件项目管理 CH01 选择过程 郭建东,生命周期法各阶段的工作小结,生命周期法各阶段的工作小结,“生命周期法”的特点,阶段具有顺序性和依赖性 推迟实现的观点 质量保证的观点 每个阶段都必须完成规定的文档 每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。,32,软件项目管理 CH01 选择过程 郭建东,软件工程瀑布模型,瀑布模型,问题定义,特点:1) 阶段间具有顺序性和依赖性2) 推迟实现的观点3) 质量保证的

13、观点。,可行性研究,需求分析,总体设计,详细设计,编码与单元测试,综合测试,软件维护,软件定义时期,软件开发时期,软件维护时期,33,软件项目管理 CH01 选择过程 郭建东,软件开发过程模型,瀑布模型的特征 从上一项活动中接受该项活动的工作对象,作为输入。 利用这一输入实施该项活动应完成的内容 给出该项活动的工作成果,作为输出传给下一项活动 对该项活动实施的工作进行评审。若其工作得到确认,则继续下一项活动。,34,软件项目管理 CH01 选择过程 郭建东,瀑布模型 特点,文档驱动的模型 阶段间具有顺序性和依赖性 推迟实现的观点 质量保证的观点,35,软件项目管理 CH01 选择过程 郭建东,

14、思考?,传统瀑布模型存在什么问题?,36,软件项目管理 CH01 选择过程 郭建东,传统的瀑布模型 存在什么问题?,传统的瀑布模型过于理想化了,事实上,人在工作过程中不可能不犯错误。在设计阶段可能发生规格说明文档中的错误。而设计上的缺陷或错误可能在实现过程中显现出 来。在综合测试阶段将发现需求分析、设计或编码阶段的许多错误。,37,软件项目管理 CH01 选择过程 郭建东,Tom Gilb: “假如你不积极地解决你项目中存在的风险,它们就会积极地解决掉你”瀑布方法会掩饰项目中真正的风险,当你太晚发现它们时已无济于事。,38,软件项目管理 CH01 选择过程 郭建东,瀑布模型 问题,实际项目很少

15、按照该模型给出的顺序进行 用户常常难以清楚地给出所有需求 用户必须有耐心 开发者常常被不必要地耽搁,39,软件项目管理 CH01 选择过程 郭建东,软件开发过程模型,瀑布模型的缺点: 从认识论角度看,人的认识是一个多次反复循环的过程,不可能一次完成。但瀑布模型中划分的几个阶段,没有反映出这种认识过程的反复性。 软件开发是一个知识密集型的开发活动,需要相互合作完成,但瀑布模型没有体现这一点。,40,软件项目管理 CH01 选择过程 郭建东,瀑布模型 实际的瀑布模型,需求分析,验证,规格说明,验证,设计,验证,编码,测试,综合测试,维护,变化的需求,验证,41,软件项目管理 CH01 选择过程 郭

16、建东,软件开发过程模型,具有维护循环的软件生存期的瀑布模型,42,软件项目管理 CH01 选择过程 郭建东,软件开发过程模型原型模型,基本思想 在获取一组基本的需求定义后,利用高级软件工具的可开发环境,快速地建立一个目标系统的最初版本,并把它交给用户试用、补充和修改,再进行新的版本开发。反复进行这个过程,直到得出系统的“精确解”,即用户满意为止。经过这样一个反复补充和修改的过程,应用系统的“最初版本”就逐步演变为系统的“最终版本”。,43,软件项目管理 CH01 选择过程 郭建东,原型模型,快速建立起来的可以在计算机上运行的程序,他所能完成的功能往往是最终产品能完成的功能的一个子集。,44,软

17、件项目管理 CH01 选择过程 郭建东,原型模型 适用情况,用户定义了一组一般性目标,但不能标识出详细的输入、处理及输出需求; 开发者可能不能确定算法的有效性、操作系统的适应性或人机交互的形式; 原型模型可能是最好的选择,45,软件项目管理 CH01 选择过程 郭建东,原型模型(Cont.),原型模型从需求收集开始。 开发者和用户在一起定义软件的总体目标,标识出已知的需求,并规划出进一步定义的区域。 然后是“快速设计”,快速设计集中于软件那些对用户可见部分的表示。“快速设计”导致原型的建造。 原型由用户评估,并进一步精化待开发软件的需求,逐步调整原型使其满足客户的要求。同时开发者对将要做的事情

18、有更好的理解, 这个过程是迭代的。,46,软件项目管理 CH01 选择过程 郭建东,原型模型(Cont.),快速原型,验证,规格说明,验证,设计,验证,编码,测试,综合测试,维护,变化的需求,验证,维护过程,开发过程,47,软件项目管理 CH01 选择过程 郭建东,原型模型存在的问题,用户似乎看到的是软件的工作版本,其实 开发者常常需要实现上的折衷,以使原型能够尽快工作,48,软件项目管理 CH01 选择过程 郭建东,原型模型,在“需求分析”、“原型设计”两个阶段中,开发者和用户一起为想象中的系统的某些主要部分定义需求和规格说明,并由开发者在规格说明级用原型描述语言构造一个系统原型,它代表了部

19、分系统,包括那些为满足用户需求的必要属性。该原型可用来帮助分析和设计工作,而不是一个软件产品。,49,软件项目管理 CH01 选择过程 郭建东,原型模型,在演示原型期间,用户可以根据他所期望的系统行为来评价原型的实际行为。如果原型不能满意地运行,用户能立刻找出问题和不可接受的地方,并与开发者重新定义需求。该过程一直持续到用户认为该原型能成功地体现想象中的系统的主要部分功能为止。在这期间,用户和开发者都不要为程序算法或设计技巧等枝节问题分心,而是要确定开发者是否理解了用户的意思,同时试验实现它们的若干方法。,50,软件项目管理 CH01 选择过程 郭建东,原型模型特征,原型特征 软件原型是软件的

20、最初版本,以最少的费用、最短的时间开发出的、以反映最后软件的主要特征的系统。它具有以下特征: (1)它是一个可实际运行的系统。,51,软件项目管理 CH01 选择过程 郭建东,原型模型特征,(2)它没有固定的生存期。一种极端是扔掉原型(以最简便方式大量借用已有软件,做出最后产品的模型,证实产品设想是成功的,但产品中并不使用);另一种极端是最终产品的一部分即增量原型(先做出最终产品的核心部分,逐步增加补充模块),演进原型居于其中(每一版本扔掉一点,增加一点,逐步完善至最终产品)。,52,软件项目管理 CH01 选择过程 郭建东,原型模型特征,(3)从需求分析到最终产品都可作原型,即可为不同目标作

21、原型。 (4)它必须快速、廉价。 (5)它是迭代过程的集成部分,即每次经用户评价后修改、运行,不断重复双方认可。,53,软件项目管理 CH01 选择过程 郭建东,原型模型评价,原型法的评价 优点 1.原型法在得到良好的需求定义上比传统生存周期法好得多,可处理模糊需求,开发者和用户可充分通信。 2.原型系统可作为培训环境,有利于用户培训和开发同步,开发过程也是学习过程。 3.原型给用户以机会更改心中原先设想的、不尽合理的最终系统。 4.原型可低风险开发柔性较大的计算机系统。 5.原型增加使系统更易维护、对用户更友好的机会。 6.原型使总的开发费用降低,时间缩短。,54,软件项目管理 CH01 选

22、择过程 郭建东,缺点 1.“模型效应”或“管中窥豹”。对于开发者不熟悉的领域把次要部分当作主要框架,做出不切题的原型。 2.原型迭代不收敛于开发者预先的目标。即每次更改,为了消除错误,次要部分越来越大,“淹没”了主要部分。 3.原型过快收敛于需求集合,而忽略了一些基本点。 4.资源规划和管理较为困难,随时更新文档也带来麻烦。 5.长期在原型环境上开发,只注意得到满意的原型,容易“遗忘”用户环境和原型环境的差异。,原型模型评价,55,软件项目管理 CH01 选择过程 郭建东,适用范围:原型开发可以应用于软件生存周期的不同阶段,也可以替代生存期的部分或全部阶段,具体可以用于以下领域: 1.辅助分析

23、和确定用户需求的任务。 2.作为软件设计的一种工具。例如:研究系统设计的可行性和适应性。 3.作为一种解决不确定性的工具。例如:研究一种新技术的效果,逐步使其适应预定的环境。 4.作为一种实验工具。 5.充作同步培训工具。 6.“一次性”的应用。例如写一个能运行的程序,一旦得到答案,该程序将不再使用。 7.作为软件维护的辅助工具。特别是在用户需求不稳定,维护工作量很大的情况下,要求大量的重新设计工作。,原型模型评价,56,软件项目管理 CH01 选择过程 郭建东,增量模型,融合了瀑布模型的基本成分和原型的迭代特征。采用随着日程时间的进展而交错的线性序列。,57,软件项目管理 CH01 选择过程

24、 郭建东,增量模型(Cont.),需求分析,验证,规格说明,验证,设计,验证,维护,针对每个构件完成详细设计、编码和集成,经测试后交付给用户,58,软件项目管理 CH01 选择过程 郭建东,增量模型 (Cont.),分析,分析,分析,分析,设计,设计,设计,设计,编码,编码,编码,编码,测试,测试,测试,测试,增量1,增量2,增量3,增量4,59,软件项目管理 CH01 选择过程 郭建东,增量模型 (Cont.),增量模型融合了瀑布模型的基本成分和原型 的迭代特性。 例如,使用增量模型开发字处理软件 基本的文件管理、编辑和文档生成功能。 更完善的编辑和文档生成能力。 实现拼写和文法检查功能。

25、完成高级的页面布局功能。,60,软件项目管理 CH01 选择过程 郭建东,增量模型 (Cont.),第一个增量往往是核心产品 每一个增量均发布一个可操作产品 早期的增量是最终产品的“可拆卸”版本,61,软件项目管理 CH01 选择过程 郭建东,软件开发过程模型,喷泉模型 喷泉模型认为软件生命周期的各个阶段是相互重叠和多次反复的。 主要用于面向对象方法中,62,软件项目管理 CH01 选择过程 郭建东,软件开发过程模型螺旋模型,在原型基础上,进行多次原型反复并增加风险评估,形成螺旋模型。,63,软件项目管理 CH01 选择过程 郭建东,软件开发过程模型螺旋模型,64,软件项目管理 CH01 选择

26、过程 郭建东,软件开发过程模型螺旋模型,65,软件项目管理 CH01 选择过程 郭建东,螺旋模型分析 在螺旋模型结构中,维护只是螺旋模型的另一个周期,在维护和开发之间本质上并没有区别,从而解决了做太多测试或未作足够测试所带来的风险。 适用条件 内部的大规模软件的开发,不太适合合同软件。 一般只适用于大规模软件的开发,软件开发过程模型螺旋模型,66,软件项目管理 CH01 选择过程 郭建东,迭代模型,建立在Barry Boehm 的螺旋模型基础上的。,67,软件项目管理 CH01 选择过程 郭建东,迭代模型(Cont.),68,软件项目管理 CH01 选择过程 郭建东,迭代模型(Cont.),E

27、ach iteration results in an executable release.,69,软件项目管理 CH01 选择过程 郭建东,70,软件项目管理 CH01 选择过程 郭建东,Time,Risk,Waterfall Risk,Risk Profiles,71,软件项目管理 CH01 选择过程 郭建东,特点,这种方法可以在生命周期早期强制性的确定项目中存在的风险。 这种方法是一个连续地发现、创造和实现的过程。 在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动项目制品的生产和制作。,72,软件项目管理 CH01 选择过程 郭建东,提供解决方案:,在生命周期的早期,这种方

28、法可以及时地发现一些严重的需求理解错误,此时还可能修正这些错误。 允许并鼓励用户反馈信息,以明确系统的真实需求。 这种方法使开发小组重视项目中最关键的问题,而屏蔽掉那些使他们远离项目真实风险的问题。 不断地迭代测试能够给出项目状况的客观评价。,73,软件项目管理 CH01 选择过程 郭建东,提供解决方案: (Cont.),尽早地发现需求、设计和实现中的不一致。 在整个项目生命周期中更加平均地分配开发组的工作量,特别是测试小组的工作量。 开发组可以不断打在开发中进行学习从而改进过程。 在整个生命周期中,项目相关人员可以通过具体证据了解项目状况。,74,软件项目管理 CH01 选择过程 郭建东,R

29、eview: 软件过程模型,瀑布模型 原型模型 增量模型 螺旋模型 迭代模型,75,软件项目管理 CH01 选择过程 郭建东,软件开发问题的症状,对于最终用户的需要理解得不够精确 对需求的改变束手无策 程序块不兼容 软件不易维护或不易扩展 对项目严重缺陷的发现较晚 软件质量低劣 软件性能令人无法接受 开发组的人员按各自的方式进行开发,如果有人改变可部分软件,将很难进行重组 一个不可靠的构造和发布过程,76,软件项目管理 CH01 选择过程 郭建东,失败原因,特别的需求管理 模糊和不精确的交流 脆弱的构架 过度复杂 未检测出需求、设计和实现之间的不一致 测试的不足 对于项目状况的评估过于主观 未

30、解决存在的风险 无法控制变化的产生和传播 自动控制不足,77,软件项目管理 CH01 选择过程 郭建东,RUP,RUPRational Unified Process,78,软件项目管理 CH01 选择过程 郭建东,RUP,现在软件产业界普遍认为,开发复杂软件项目必须采用基于UML的、以构架为中心、用例驱动与风险驱动相结合的迭代式增量开发过程,他是世界公认的开发复杂软件项目的最好过程,已经成为软件界的“圣经”。这一开发过程目前已经稳定、成熟。这就是:,79,软件项目管理 CH01 选择过程 郭建东,Rational Unified ProcessRUP,Rational 统一过程是由Ratio

31、nal 软件公司开发和营销的一种软件工程过程,是开发组织用以分配与管理任务和职责的一种规范化方法。这个过程的目的是在预定的进度和预算范围内,开发出满足最终用户需要的高质量软件。,80,软件项目管理 CH01 选择过程 郭建东,RUP捕获的6项最佳商业实践,被证明是解决软件开发过程中根本问题的方法,81,软件项目管理 CH01 选择过程 郭建东,最佳软件开发实践 Best Practices,迭代地开发软件 Develop Iteratively 管理需求 Manage Requirements 应用基于构件的构架 Use Component Architectures 为软件建立可视化的模型

32、Model Visually (UML) 不断地验证软件质量 Continuously Verify Quality 控制软件的变更 Manage Change,82,软件项目管理 CH01 选择过程 郭建东,RUP的目标,按照预先制定的时间计划和经费预算,开发出高质量的软件产品以满足最终用户的需求,83,软件项目管理 CH01 选择过程 郭建东,RUP是什么?,是一种软件工程过程 是一个过程产品 有自己的过程框架 捕获了现代软件开发中的最佳实践,84,软件项目管理 CH01 选择过程 郭建东,RUP的三大特点,用例驱动 以架构为中心 迭代和增量开发,85,软件项目管理 CH01 选择过程 郭

33、建东,用例驱动,用Use Case作为划分问题的组织单元,分析和设计活动的局部粒度都遵循这一划分原则。Use Case的定义反映可系统外部要素根据特定目标使用拟建系统的状况,能确保问题的局部划分粒度适当,保持了全局与局部的平衡。,86,软件项目管理 CH01 选择过程 郭建东,87,软件项目管理 CH01 选择过程 郭建东,RUP的整体架构,88,软件项目管理 CH01 选择过程 郭建东,RUP的迭代模型,89,软件项目管理 CH01 选择过程 郭建东,RUP的关键概念,90,软件项目管理 CH01 选择过程 郭建东,RUP,RUP将这些最佳实践活动以一种适当的形式结合起来,从而适应了广泛的项

34、目和开发组织。,RUP 是一个过程产品(process product)。Rational (IBM) 软件公司开发并维护着这个产品,并将其与Rational 软件公司自己的一系列软件开发工具集成。,91,软件项目管理 CH01 选择过程 郭建东,RUP,RUP 有自己的过程框架 (process framework), 这个框架可以被改造和扩展以适应采纳此方法的组织。,软件过程也是软件 设计、开发、交付和维护,92,软件项目管理 CH01 选择过程 郭建东,RUP 简要历史,RUP 2000,RUP 5.5,RUP 5.0,ROP 4.1,ROP 4.0,Rational 方法,Object

35、ive 过程3.8,200019991998199719961995,实时,ROOM,业务工程,配置和,变更管理,需求学院,Booch 方法,OMT,UML 0.8,SQA 过程,UML 1.1,数据工程,UI 设计,UML 1.2,基于WEB的开发,UML1.3,93,软件项目管理 CH01 选择过程 郭建东,谁在使用RUP?,电信业 Ericsson、Alcatel、MCI 交通、航空、国防 Lockheed-Martin、British Aerospace 制造业 Xerox、Volvo、Intel 金融业 Visa、Merrill Lynch、Schwab 系统集成业 Ernst &

36、Young、Oracle、Deloitte & Touche,94,软件项目管理 CH01 选择过程 郭建东,RUP,RUP核心是解决可操作性问题,帮助开发人员尽可能少地依赖那些“不可描述的经验”。他详细给出了每个阶段参与该过程的各种焦色,然后表示在过程中,该角色创建的制品。,95,软件项目管理 CH01 选择过程 郭建东,Rational Unified Process 的主要工件,及这些工件间的信息流,96,软件项目管理 CH01 选择过程 郭建东,97,软件项目管理 CH01 选择过程 郭建东,98,软件项目管理 CH01 选择过程 郭建东,99,软件项目管理 CH01 选择过程 郭建东

37、,100,软件项目管理 CH01 选择过程 郭建东,101,软件项目管理 CH01 选择过程 郭建东,102,软件项目管理 CH01 选择过程 郭建东,增量和迭代开发,基于风险前驱的原则,渐进地展开分析、设计及其相关活动,每个迭代都会提供一次验证和调整模型机会,推动软件质量的提升。,103,软件项目管理 CH01 选择过程 郭建东,RUP 二维过程结构,沿时间轴的组织结构,沿内容轴的组织结构,104,软件项目管理 CH01 选择过程 郭建东,RUP的生命开发周期,105,软件项目管理 CH01 选择过程 郭建东,RUP的生命开发周期,106,软件项目管理 CH01 选择过程 郭建东,RUP的生

38、命开发周期,107,软件项目管理 CH01 选择过程 郭建东,RUP的生命开发周期,108,软件项目管理 CH01 选择过程 郭建东,主要困难,多层次持续的规划与评估 判断架构中关键风险的经验 高效率的验证和评价手段 多工种之间的频繁沟通 多版本工作产品的管理,109,软件项目管理 CH01 选择过程 郭建东,基础保障,核心人员必要的管理与技术经验 自动化的验证和评价工具 团队成员之间有高效的沟通工具 软件配置与变更管理工具,110,软件项目管理 CH01 选择过程 郭建东,RUP 的裁减,RUP 仅仅是一个通用的过程框架,需要根据实际情况裁减。,111,软件项目管理 CH01 选择过程 郭建

39、东,A Process is not Enough to Build a System,112,软件项目管理 CH01 选择过程 郭建东,XP,XP(Extreme Programming),它是由Kent Beck大师提出的。大师在经历传统软件开发的痛苦之后,希望能够找到一种优秀的软件开发方法。大师总结了大量的软件的成功和失败的因素之后,提出了改进软件开发方法的四个要素:沟通(communication)、简单化(simplicity)、反馈(feedback)、勇气(courage)。这形成了XP的核心价值观。在经历了数年的发展,XP在软件开发的各方面都发展出了众多的方法来支持软件开发。,

40、113,软件项目管理 CH01 选择过程 郭建东,XP是什么?,敏捷方法的代表。 Kent Beck在他的开篇之作Extreme Programming Explained Embrace Change中提出97年 一种高度动态的过程,它通过非常短的迭代周期来应对软件开发中的变化 强调有效测试和演化设计fowler,114,软件项目管理 CH01 选择过程 郭建东,XP的目标,在规定的时间生产出满足客户需要的软件,115,软件项目管理 CH01 选择过程 郭建东,什么时候需要XP?,需求不明确、变化快 高风险:在特定的时间内,面对一个相当难开发的系统 中小型团队(人数不超过10 个),116,

41、软件项目管理 CH01 选择过程 郭建东,XP的系统隐喻,117,软件项目管理 CH01 选择过程 郭建东,XP体现四个价值目标,沟通(communication) 简化(simlicity) 反馈(feedback) 勇气(courage),118,软件项目管理 CH01 选择过程 郭建东,XP的12个核心实践,规划策略(Planning game) 系统隐喻(System Metaphor) 简单设计(Simple design) 配对编程(pair programming) 编码标准(Coding standards) 测试驱动(Test-driven) 重构(Refactoring)

42、持续集成(Continuous integration) 小发行版(Small releases) 现场客户(On-site customer) 集体代码所有权(Collective ownership) 一周40小时 (40-hour week),119,软件项目管理 CH01 选择过程 郭建东,实践之间的互相支持,120,软件项目管理 CH01 选择过程 郭建东,XP项目的状态图,121,软件项目管理 CH01 选择过程 郭建东,XP的计划/反馈循环,122,软件项目管理 CH01 选择过程 郭建东,从CMM角度看XP,XP部分满足或大部分满足了CMM 2-3 级KPA 的要求,而基本上没

43、有涉及CMM 4-5 级的KPA XP 侧重于具体的过程和开发技术,而CMM 更关注组织和管理上的问题 XP 缺少的一个重要内容是“institutionalization” -Mark Paulk, SEI,123,软件项目管理 CH01 选择过程 郭建东,XP vs. RUP,124,软件项目管理 CH01 选择过程 郭建东,对XP的置疑,技术前提:对变化成本曲线的置疑 技艺前提:对于有经验的人是简单的代码,对没有经验的人是复杂的 社会结构前提 :程序员可以能否对自己的开发过程承担责任,125,软件项目管理 CH01 选择过程 郭建东,不适用于XP的场合,不能接受XP 文化的组织 中大型(超过10 个人)的团队 重构会导致大量开销的应用 需要很长的编译或测试周期的系统 不太容易测试的应用 人员异地分布的物理环境 Beck,126,软件项目管理 CH01 选择过程 郭建东,01.3 过程模型的选择,127,软件项目管理 CH01 选择过程 郭建东,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 项目管理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报