CMM软件开发项目管理.ppt
《CMM软件开发项目管理.ppt》由会员分享,可在线阅读,更多相关《CMM软件开发项目管理.ppt(91页珍藏版)》请在三一办公上搜索。
1、,CMM L2 软件项目管理,目 录,项目管理概述软件生命周期软件度量软件项目估算风险管理软件项目计划V 小 结参考资料,I 软件项目管理概述,1.1 软件项目管理的目的1.2 软件项目管理的重要性1.3 软件项目管理的对象1.4 软件项目管理的主要任务,1.1 软件项目管理的目的,为了生产产品能做到:按时交付在预算内合格的质量按计划做事,1.2 软件项目管理的重要性,软件工程管理引起广泛注意源于20世纪70年代中期,当时发现不成功的项目70%是因为管理不善而引起20世纪90年代中期,美国的软件开发仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付,1.3 软件项目管理的对象,任务
2、成本工作量效率人员资源风险,1.4 项目管理的主要任务,定义软件生命周期进行软件规模估算进行软件风险分析制定软件开发计划进行软件项目跟踪与监控进行软件度量,2 软件生命周期,2.1 软件过程的三个主要阶段2.2 什么是软件生命周期2.3 软件生命周期模型2.4 瀑布模型2.5 进化模型2.6 螺旋模型2.7 Rational 软件开发过程框架2.8 软件生命周期的选取评价准则,2.1 软件过程的三个主要阶段,2.1.1 定义阶段2.1.2 开发阶段2.1.3 维护阶段,定义阶段,定义阶段要明确“做什么”定义系统和软件的关键需求:在此阶段,开发人员试图搞清要处理什么信息预期完成什么样的功能和性能
3、达到什么样的系统行为建立什么样的界面有什么样的约束设计需求跟踪矩阵和系统测试用例定义一个成功系统的确认标准是什么定义阶段三个主要任务:系统工程分析;软件项目计划;软件需求分析,开发阶段,开发阶段要明确“如何做”设计软件:功能如何转换为构架细化需求跟踪矩阵和设计集成测试用例试图定义数据如何结构化界面如何表示设计如何转换成程序测试如何进行定义一个成功系统的设计的确认标准是什么开发阶段三个主要任务:软件设计;代码生成;软件测试,维护阶段,维护阶段要明确“改变什么”改正性维护:约占20%左右。主要是改正处理方面、性能方面以及编程方面的错误适应性维护:约占25%左右。主要用于适应数据环境(外部环境)、硬
4、件及操作系统(内部环境)和移植工作改进性维护:约占50%左右。主要用于提高处理效率、提高性能、使之使用方便、增加及改进输出信息,以达到便于维护的目的。这包括改进易读性和注释等,2.2 什么是软件生命周期,软件生命周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程在计算机技术发展的初期,人们把软件开发简单地理解为编写程序随着软件复杂性的增长,人们认识到软件开发活动应划分为需求分析、设计、实现、测试等若干个活动,并将这些活动以适当的方式分配到不同的阶段中去完成通常把软件生命周期分为5个阶段:需求设计编码测试维护,2.3 软件生命周期模型,软件生命周期模型是描述软件开发全部过程、活动和任务的
5、结构框架软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础瀑布模型(Waterfall Model)进化模型(Evolutionary Model)螺旋模型(Spiral Model)统一软件开发过程(Unified Software Development Process),2.4 瀑布模型(1),1970年W.Royce提出了最早的软件开发模型-瀑布模型。该模型给出了固定的顺序,将软件生命周期各阶段的活动从上一阶段向下一阶段逐级过渡,如同流水下泻,最终得到所开发的软件产品这一模型规定了开发各阶段的活动为:提出系统需求,提出软件需求,需
6、求分析,设计,编码,测试和运作。并且还规定了自上而下相互衔接的固定顺序,构成了熟知的瀑布模型实践表明,各个阶段间的关系并非如此简单。由于阶段评审可能出现向前阶段的反馈,致使在各阶段间产生环路,瀑布流水出现上流。W.Royce在提出瀑布模型时,就对此提出了如何进行的建议,瀑布模型(2),每个开发阶段均应具有以下特征从上一阶段接受本阶段工作的对象,作为输入对上述输入实施本阶段的活动给出本阶段的工作成果,作为输出传入下一阶段对本阶段工作进行评审,若本阶段工作得到确认,则继续下阶段工作,否则返回前一阶段,甚至更前的阶段,瀑布模型,瀑布模型(3),系统需求,软件需求,分析,设计,编码,测试,运作,瀑布模
7、型,瀑布模型(4),瀑布模型为软件开发与维护提供了一种有效的管理模式,根据这一模式制订开发计划、进行成本预算、组织开发人员,以阶段评审和文档控制为手段有效地对整个开发过程进行指导,从而保证了软件产品的质量优点:近30年来之所以广为流行,是因为它在支持开发结构化软件、控制软件的开发复杂度、促进软件开发工程化方面起着显著作用缺点:缺乏灵活性,无法通过开发活动澄清本来不够确切的软件需求。这些问题可能导致开发出的软件并不是用户真正需要的软件,并且这一点在开发过程完成后才有所察觉,2.5 进化模型(1),进化模型主要针对事先不能完整定义需求的软件开发。用户可以给出待开发系统的核心需求,并且当看到核心需求
8、实现后,能够有效地提出反馈,以支持系统的最终设计和实现软件开发人员根据用户的需求,首先开发核心系统。当该核心系统投入运行后,用户试用之,完成他们的工作,并提出精化系统、增强系统能力的需求。软件开发人员根据用户的反馈,实施开发的迭代过程每一迭代过程均由需求、设计、编码、测试、集成等阶段组成,为整个系统增加一个可定义的、可管理的子集。如果在一次迭代中,有的需求不能满足用户的要求,可在下一次迭代中予以修正,从而在一定程度上减少了软件开发的盲目性,进化模型(2)-原型模型,进化模型(3),进化模型在克服瀑布模型缺点、减少由于软件需求不明确给开发工作带来风险方面,确有显著效果。软件系统的原型有多种形式:
9、丢弃型:原型开发之后,已获取了更为清晰的需求信息,原型无需保留而废弃演示型:开发原型仅以演示为目标样品型:原型规模与最终产品相同,只是原型仅供研究用增长式演示型:原型作为软件最终产品的一部分,可满足用户的部分需求,进一步在此基础上开发,可增加需求,实现后再交付使用粗陋型:用较短时间开发的简易原型,2.6 螺旋模型(1),将瀑布模型与进化模型相结合,并且增加了两者所忽略的风险分析。它将软件项目开发分别划分为四类活动,沿着螺线旋转,在笛卡儿坐标的四个象限上分别表达了四个方面的活动,即:制订计划:确定软件目标,选定实施方案,弄清项目开发的限制条件风险分析:分析所选方案,考虑如何识别和消除风险;工程实
10、施:实施软件开发;客户评估:评价开发工作,提出修正建议。沿螺线自内向外,每旋转一圈,便可开发出更为完善的一个新的软件版本,螺旋模型(2),原型1,原型2,原型3,可运行原型,需求计划生存期计划,计,划,软件需求,需求确认,设计确认与验证,软件 产品设计,详细设计,风,险,分,析,风,险,分,析,风,险,分,析,验收测试,实现,集成与测试,单元测试,编码,累计成本,螺旋模型,螺旋模型(3),螺旋模型通常用以指导大型软件项目的开发,如果开发风险过大,开发者和客户无法承受,项目有可能因此终止。多数情况下会沿着螺线继续下去,自内向外逐步延伸,最终得到满意的软件。如果对所开发项目的需求已有了较好的理解或
11、较大的把握,无需开发原型,便可采用普通的瀑布模型。这在螺旋模型中可认为是单圈螺线。与此相反,如果对所开发项目的需求理解较差,需要开发原型,甚至需要不止一个原型的帮助,那就要经历多圈螺线。在这种情况下,外圈的开发包含了更多的活动。也可能某些开发采用了不同的模型。和其它模型相比螺旋模型的优越性较为明显,但要求许多客户接受和相信进化方法并不容易。本模型的使用需要具有相当丰富的风险评估经验和专门知识。如果项目风险较大,又未能及时发现,势必造成重大损失。,2.7 统一软件开发过程(USDP)框架,USDP概述USDP术语USDP的高层视图USDP的特点,USDP概述,软件开发涉及多种因素,很难定义一种通
12、用的过程。任何软件项目都可选用适合自身的任何过程UML是一种通用的建模语言,不是一种方法,适用于任何开发过程UML设计者推荐使用的USDP是一个过程框架,倡导采用UML来记录、分析和设计的结果,软件过程基础Rational 软件开发过程,USDP术语,活动:有明确输入条件、资源需求和控制约束并产生一定输出的工作单元,可用一个五元素集 F(A,I,R,C,O)来描述过程:活动的偏序集。适合软件开发的过程叫软件开发过程;适合企事业事务的过程叫企事业过程;等等角色:执行活动的人力资源、使用系统的用户或与系统交互的外部系统人员:过程中执行某一活动的人力资源(个体或群组)用例:系统中能满足某一需求的一组
13、活动序列。一个用例应能返回一定的可见结果给执行该用例的角色构造:在迭代增量式开发过程中的每一步所产生的结果,是系统某一特定部分的一个可执行版本,软件过程基础Rational 软件开发过程,USDP的高层视图,USDP包含四个阶段:初始阶段、细化阶段、构造阶段和移交阶段在初始阶段,需要考虑项目的效益,并确定项目的适用范围,这一阶段需要与客户进行讨论在细化阶段,收集详细的需求,进行高层分析和设计,并为构造阶段制定计划:选择一些功能点,完成这些功能;再选择别的功能点,再完成这些功能;如此循环往复,软件过程基础Rational 软件开发过程,USDP的高层视图(续),构造阶段由多次迭代组成,每一次迭代
14、都包含整个软件生命周期:捕获用例、分析、设计、实现和测试阶段。每一次迭代所得到的产品应满足项目需求的某一个子集,提交给早期用户或是内部提交移交阶段,也包含1个或多个迭代,将软件给用户安装、试用和维护这是一个迭代增量式的开发过程,即不是在项目结束时一次性提交软件,而是分块逐次开发和提交,软件过程基础Rational 软件开发过程,USDP的高层视图(增量模型),开发进度,软件过程基础Rational 软件开发过程,USDP的特点,基于UML、以构架为中心、用例驱动与风险驱动相结合的迭代增量式软件开发过程USDP包含初始、细化、构造和移交等四个阶段,其中构造阶段由多次迭代所组成每次迭代中的软件开发
15、工作都围绕需求捕获用例、分析、设计、实现和测试等五个核心工作流来组织职责明确:每个人都明白自己的职责;开发者能更好理解其他开发者的职责;管理人员能了解开发者的职责过程规范:单位对自身员工的培训标准化;开发人员和管理人员不需要学习新的过程就能在小组间调动工作软件开发过程可重复使用:开发技术和管理技术可以重用;项目计划更准确,成本估算与实际更吻合,开发周期更短,软件过程基础Rational 软件开发过程,2.8 软件生命周期的选取评价准则(1),资源的可用性项目的复杂度应用的费用未来升级的费用使用的容易度应用的功能需求渐进的需求变更,软件过程基础软件生命周期模型,软件生命周期的选取评价准则(2),
16、应用的寿命产品的技术应用的生产力产品的质量需求的易变性产品的重用和文档的可交付风险管理未知需求,软件过程基础软件生命周期模型,3 软件度量,3.1 软件度量的基本概念3.2 软件度量的意义3.3 度量元3.4 度量过程,3.1 软件度量的基本概念,在现实世界中,对用数字或符号指定给实体的某些属性进行度量,以便根据已明确的规则来描述它们软件度量就是在软件开发过程中,把软件开发过程和软件产品的各种属性,例如软件开发成本、花费时间、开发效率、产品规模、软件质量的各种数据,度量、记录、统计并进行必要的分析,3.1 软件度量的基本概念(续),软件度量:指计算机软件中范围广泛的度量。度量可应用于软件过程,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CMM 软件 开发 项目 管理
链接地址:https://www.31ppt.com/p-6281214.html