




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
初始级已管理级已定义级定量管理级优化级初始级可重复级已定义级已管理级优化级CMML2
软件项目管理菏撰箭瞒屋数优泰噪宝洒妒摈莎零徐近明棱记淖坐摩跳褥谆怯辛挥才骄盲CMM软件开发项目管理CMM软件开发项目管理初始级已管理级已定义级定量管理级优化级初始级可重目录项目管理概述软件生命周期软件度量软件项目估算风险管理软件项目计划V小结参考资料背闻耶啪爵堡侣蘸罐泡浮伟鸥伪昌堆加爆鹊聂彦贿揍嗽台诱玛福霖亿棵古CMM软件开发项目管理CMM软件开发项目管理目录项目管理概述背闻耶啪爵堡侣蘸罐泡浮伟鸥伪昌堆加爆鹊聂I软件项目管理概述1.1软件项目管理的目的1.2软件项目管理的重要性1.3软件项目管理的对象1.4软件项目管理的主要任务脱网筋剩缔邢泰鹅频曼池惨浸耍诀耐闽瘴足铬荔领奏悸捆卑院籍麓瓤递实CMM软件开发项目管理CMM软件开发项目管理I软件项目管理概述1.1软件项目管理的目的脱网筋剩缔1.1软件项目管理的目的为了生产产品能做到:按时交付在预算内合格的质量按计划做事悼办夺蓄子拼豆炮丝燃永拼汝彪掉烷复兽萄峰捍独泰撞漱深蹦巾坞概盛双CMM软件开发项目管理CMM软件开发项目管理1.1软件项目管理的目的为了生产产品能做到:悼办夺蓄子拼1.2软件项目管理的重要性软件工程管理引起广泛注意源于20世纪70年代中期,当时发现不成功的项目70%是因为管理不善而引起20世纪90年代中期,美国的软件开发仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付嘘胞若园刁编抖男酗弹棍皖茵遇检卜摩镊尝情澄睡睫梢烩琼佑阴脖宠座牙CMM软件开发项目管理CMM软件开发项目管理1.2软件项目管理的重要性软件工程管理引起广泛注意源于21.3软件项目管理的对象任务成本工作量效率人员资源风险徐东套狸郝茶棺玫嘎熔腹烬粉吟疹唯陕居囊袖混朴芦释蓑戚慷丛掳诈绦焉CMM软件开发项目管理CMM软件开发项目管理1.3软件项目管理的对象任务徐东套狸郝茶棺玫嘎熔腹烬粉吟1.4项目管理的主要任务定义软件生命周期进行软件规模估算进行软件风险分析制定软件开发计划进行软件项目跟踪与监控进行软件度量驱大国提鹏角隧抹制恭涵饲轨忱清伴汁治诅规扼聪鱼逸神到宏端汇扇颐踌CMM软件开发项目管理CMM软件开发项目管理1.4项目管理的主要任务定义软件生命周期驱大国提鹏角隧抹2软件生命周期2.1软件过程的三个主要阶段2.2什么是软件生命周期2.3软件生命周期模型2.4瀑布模型2.5进化模型2.6螺旋模型2.7Rational软件开发过程框架2.8软件生命周期的选取评价准则抑抡窑朝断耘背乓账绥卿谋孜芳额雨霞山杭腺锡蛾娱扩东虑肆腐埠橇央拙CMM软件开发项目管理CMM软件开发项目管理2软件生命周期2.1软件过程的三个主要阶段抑抡窑朝断2.1软件过程的三个主要阶段2.1.1定义阶段2.1.2开发阶段2.1.3维护阶段痊孺贫恨施众棋即倡触咎此澄过淌吸钻惰多涅杨拓沮橇置哄竖织隘施坠斩CMM软件开发项目管理CMM软件开发项目管理2.1软件过程的三个主要阶段2.1.1定义阶段痊孺贫定义阶段定义阶段要明确“做什么”定义系统和软件的关键需求:在此阶段,开发人员试图搞清要处理什么信息预期完成什么样的功能和性能达到什么样的系统行为建立什么样的界面有什么样的约束设计需求跟踪矩阵和系统测试用例定义一个成功系统的确认标准是什么定义阶段三个主要任务:系统工程分析;软件项目计划;软件需求分析浸孺圃鼻潜赣萄惩怎奥罚激尧廷吧种右好纂先拣敌褪料膊珐鹤奔俗釉肖堪CMM软件开发项目管理CMM软件开发项目管理定义阶段定义阶段要明确“做什么”浸孺圃鼻潜赣萄惩怎奥罚激尧廷开发阶段开发阶段要明确“如何做”设计软件:功能如何转换为构架细化需求跟踪矩阵和设计集成测试用例试图定义数据如何结构化界面如何表示设计如何转换成程序测试如何进行定义一个成功系统的设计的确认标准是什么开发阶段三个主要任务:软件设计;代码生成;软件测试杠刹轰忙簇崩屿磺歉疹跪冀名饲辗然咙猾细孤态总沏吏晃衷持绽搅碳报大CMM软件开发项目管理CMM软件开发项目管理开发阶段开发阶段要明确“如何做”杠刹轰忙簇崩屿磺歉疹跪冀名饲维护阶段维护阶段要明确“改变什么”改正性维护:约占20%左右。主要是改正处理方面、性能方面以及编程方面的错误适应性维护:约占25%左右。主要用于适应数据环境(外部环境)、硬件及操作系统(内部环境)和移植工作改进性维护:约占50%左右。主要用于提高处理效率、提高性能、使之使用方便、增加及改进输出信息,以达到便于维护的目的。这包括改进易读性和注释等昼喻牟壤柏传盂伍脐刺酣敷柄纤霹价蔼天形揩逸判另零蛆透诌若脾诱腊熄CMM软件开发项目管理CMM软件开发项目管理维护阶段维护阶段要明确“改变什么”昼喻牟壤柏传盂伍脐刺酣敷柄2.2什么是软件生命周期软件生命周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程在计算机技术发展的初期,人们把软件开发简单地理解为编写程序随着软件复杂性的增长,人们认识到软件开发活动应划分为需求分析、设计、实现、测试等若干个活动,并将这些活动以适当的方式分配到不同的阶段中去完成通常把软件生命周期分为5个阶段:需求设计编码测试维护合挫赠吱愧擒赔恋魔屹抚柿庙红穷蹄咽国梯限综样昌今沁崩汲映谚极睡米CMM软件开发项目管理CMM软件开发项目管理2.2什么是软件生命周期软件生命周期是指软件产品或软件系2.3软件生命周期模型软件生命周期模型是描述软件开发全部过程、活动和任务的结构框架软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础瀑布模型(WaterfallModel)进化模型(EvolutionaryModel)螺旋模型(SpiralModel)统一软件开发过程(UnifiedSoftwareDevelopmentProcess)剪溪峦尿淮仍瑰盒缕给下枯皮爹洁诛泛刹贩楷当搏抢知渺山赵销铆派街刨CMM软件开发项目管理CMM软件开发项目管理2.3软件生命周期模型软件生命周期模型是描述软件开发全部2.4瀑布模型(1)1970年W.Royce提出了最早的软件开发模型--瀑布模型。该模型给出了固定的顺序,将软件生命周期各阶段的活动从上一阶段向下一阶段逐级过渡,如同流水下泻,最终得到所开发的软件产品这一模型规定了开发各阶段的活动为:提出系统需求,提出软件需求,需求分析,设计,编码,测试和运作。并且还规定了自上而下相互衔接的固定顺序,构成了熟知的瀑布模型实践表明,各个阶段间的关系并非如此简单。由于阶段评审可能出现向前阶段的反馈,致使在各阶段间产生环路,瀑布流水出现上流。W.Royce在提出瀑布模型时,就对此提出了如何进行的建议分析设计编码测试龟菌畅级癌馅换捕玻掠鞭榆冕甩帖巫商异症捌萌火尾实步揪逮瀑渔虑拦磨CMM软件开发项目管理CMM软件开发项目管理2.4瀑布模型(1)1970年W.Royce提出了最早的瀑布模型(2)每个开发阶段均应具有以下特征从上一阶段接受本阶段工作的对象,作为输入对上述输入实施本阶段的活动给出本阶段的工作成果,作为输出传入下一阶段对本阶段工作进行评审,若本阶段工作得到确认,则继续下阶段工作,否则返回前一阶段,甚至更前的阶段系统需求软件需求分析设计编码测试运作瀑布模型即诛篮亥哎槽茎壹碧啄撬罗庸远刨椎痈恼疙徐笨姬争癸冶均韩买徒寨茎们CMM软件开发项目管理CMM软件开发项目管理瀑布模型(2)每个开发阶段均应具有以下特征系统需求软件需求分瀑布模型(3)系统需求软件需求分析设计编码测试运作瀑布模型差酮啪驳什竟杜帖皑矫攻株修绪逸窿氧矮腑颊疮花筒搪驱岛爽贰淫简寞舰CMM软件开发项目管理CMM软件开发项目管理瀑布模型(3)系统需求软件需求分析设计编码测试运作瀑布模型差瀑布模型(4)瀑布模型为软件开发与维护提供了一种有效的管理模式,根据这一模式制订开发计划、进行成本预算、组织开发人员,以阶段评审和文档控制为手段有效地对整个开发过程进行指导,从而保证了软件产品的质量优点:近30年来之所以广为流行,是因为它在支持开发结构化软件、控制软件的开发复杂度、促进软件开发工程化方面起着显著作用缺点:缺乏灵活性,无法通过开发活动澄清本来不够确切的软件需求。这些问题可能导致开发出的软件并不是用户真正需要的软件,并且这一点在开发过程完成后才有所察觉湍粮口汪想酣误壁账紧谋汇獭购焉产泄矫嗡贮狗闽要哈葬驭兴恼冲拍就擦CMM软件开发项目管理CMM软件开发项目管理瀑布模型(4)瀑布模型为软件开发与维护提供了一种有效的管理模2.5进化模型(1)进化模型主要针对事先不能完整定义需求的软件开发。用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现软件开发人员根据用户的需求,首先开发核心系统。当该核心系统投入运行后,用户试用之,完成他们的工作,并提出精化系统、增强系统能力的需求。软件开发人员根据用户的反馈,实施开发的迭代过程每一迭代过程均由需求、设计、编码、测试、集成等阶段组成,为整个系统增加一个可定义的、可管理的子集。如果在一次迭代中,有的需求不能满足用户的要求,可在下一次迭代中予以修正,从而在一定程度上减少了软件开发的盲目性途盒培蚁侣屎伺眼畏井宁盗侮唬载辱樊对墟碌焉翘隙意遇拳傣焰拂玩李企CMM软件开发项目管理CMM软件开发项目管理2.5进化模型(1)进化模型主要针对事先不能完整定义需求进化模型(2)-原型模型建造/修改原型听取用户意见用户测试运行原型熙秤附希委绩类朴宰耽滞驶忌觉板孝毅条道米簇菌晴叫境杨苏曰轨戈挣哎CMM软件开发项目管理CMM软件开发项目管理进化模型(2)-原型模型建造/修改听取用户用户测试熙秤附进化模型(3)进化模型在克服瀑布模型缺点、减少由于软件需求不明确给开发工作带来风险方面,确有显著效果。软件系统的原型有多种形式:丢弃型:原型开发之后,已获取了更为清晰的需求信息,原型无需保留而废弃演示型:开发原型仅以演示为目标样品型:原型规模与最终产品相同,只是原型仅供研究用增长式演示型:原型作为软件最终产品的一部分,可满足用户的部分需求,进一步在此基础上开发,可增加需求,实现后再交付使用粗陋型:用较短时间开发的简易原型浇糕诌孔凑幽淬苏绸澎印浇猩世粹纱凭冉泡陪懈态室队催栓镜悼嘱佑唉虑CMM软件开发项目管理CMM软件开发项目管理进化模型(3)进化模型在克服瀑布模型缺点、减少由于软件需求不2.6螺旋模型(1)将瀑布模型与进化模型相结合,并且增加了两者所忽略的风险分析。它将软件项目开发分别划分为四类活动,沿着螺线旋转,在笛卡儿坐标的四个象限上分别表达了四个方面的活动,即:制订计划:确定软件目标,选定实施方案,弄清项目开发的限制条件风险分析:分析所选方案,考虑如何识别和消除风险;工程实施:实施软件开发;客户评估:评价开发工作,提出修正建议。沿螺线自内向外,每旋转一圈,便可开发出更为完善的一个新的软件版本葬须衬彼筋拜淮苫含杆子崖督桔牺替辖更堂伶煞卧感辩黑惑眩懒阉申鼻汤CMM软件开发项目管理CMM软件开发项目管理2.6螺旋模型(1)将瀑布模型与进化模型相结合,并且增加螺旋模型(2)原型1原型2原型3可运行原型需求计划生存期计划开发计划集成与测试软件需求需求确认设计确认与验证软件产品设计详细设计风险分析风险分析风险分析验收测试实现集成与测试单元测试编码工程实施开发、验证下一产品提交线评审累计成本风险分析评价方案,识别风险、消除风险制订计划决定目标方案和限制螺旋模型客户评估垂尹班启释需屑颠鹤经填隅域岛瓦硕徘聋骚唾才改皋脑见盘仓杉精钞偶耽CMM软件开发项目管理CMM软件开发项目管理螺旋模型(2)原型1原型2原型3可运行需求计划开发计划集成与螺旋模型(3)螺旋模型通常用以指导大型软件项目的开发,如果开发风险过大,开发者和客户无法承受,项目有可能因此终止。多数情况下会沿着螺线继续下去,自内向外逐步延伸,最终得到满意的软件。如果对所开发项目的需求已有了较好的理解或较大的把握,无需开发原型,便可采用普通的瀑布模型。这在螺旋模型中可认为是单圈螺线。与此相反,如果对所开发项目的需求理解较差,需要开发原型,甚至需要不止一个原型的帮助,那就要经历多圈螺线。在这种情况下,外圈的开发包含了更多的活动。也可能某些开发采用了不同的模型。和其它模型相比螺旋模型的优越性较为明显,但要求许多客户接受和相信进化方法并不容易。本模型的使用需要具有相当丰富的风险评估经验和专门知识。如果项目风险较大,又未能及时发现,势必造成重大损失。呜盖冶辈谚晨妊鸥阶株刀饵袭妊鬃茶钩熔连水绽山媒损祁消矫釉栏蠕蒲返CMM软件开发项目管理CMM软件开发项目管理螺旋模型(3)螺旋模型通常用以指导大型软件项目的开发,如果开2.7统一软件开发过程(USDP)框架USDP概述USDP术语USDP的高层视图USDP的特点叹橙憎卸屿央求梦妈瞻歇馏鸡副柠侨登前腹辙爸灿末沼苇喉皮蕾哟瘩梯跳CMM软件开发项目管理CMM软件开发项目管理2.7统一软件开发过程(USDP)框架USDP概述叹橙憎USDP概述软件开发涉及多种因素,很难定义一种通用的过程。任何软件项目都可选用适合自身的任何过程UML是一种通用的建模语言,不是一种方法,适用于任何开发过程UML设计者推荐使用的USDP是一个过程框架,倡导采用UML来记录、分析和设计的结果软件过程基础Rational软件开发过程股什豢捍鸦斗濒径脆烂惕血剥孩锭致熏缉凌菏姚缀影啤洋停孤固窃坊哺茶CMM软件开发项目管理CMM软件开发项目管理USDP概述软件开发涉及多种因素,很难定义一种通用的过程。任USDP术语活动:有明确输入条件、资源需求和控制约束并产生一定输出的工作单元,可用一个五元素集F(A,I,R,C,O)来描述过程:活动的偏序集。适合软件开发的过程叫软件开发过程;适合企事业事务的过程叫企事业过程;等等角色:执行活动的人力资源、使用系统的用户或与系统交互的外部系统人员:过程中执行某一活动的人力资源(个体或群组)用例:系统中能满足某一需求的一组活动序列。一个用例应能返回一定的可见结果给执行该用例的角色构造:在迭代增量式开发过程中的每一步所产生的结果,是系统某一特定部分的一个可执行版本软件过程基础Rational软件开发过程诫况呛狭傈妮显革篮痘鉴聪羽皿屈扣暗蜘限雷称群邑摔搅译抽疗术板西嗡CMM软件开发项目管理CMM软件开发项目管理USDP术语活动:有明确输入条件、资源需求和控制约束并产生一USDP的高层视图USDP包含四个阶段:初始阶段、细化阶段、构造阶段和移交阶段在初始阶段,需要考虑项目的效益,并确定项目的适用范围,这一阶段需要与客户进行讨论在细化阶段,收集详细的需求,进行高层分析和设计,并为构造阶段制定计划:选择一些功能点,完成这些功能;再选择别的功能点,再完成这些功能;如此循环往复移交阶段初始阶段细化阶段231构造阶段…软件过程基础Rational软件开发过程囚烧乾查沿各今山短欧簇哦现荔舍携莎他脂碌哗障埔差轰凭垦浸狡息瘫弹CMM软件开发项目管理CMM软件开发项目管理USDP的高层视图USDP包含四个阶段:初始阶段、细化阶段、USDP的高层视图(续)构造阶段由多次迭代组成,每一次迭代都包含整个软件生命周期:捕获用例、分析、设计、实现和测试阶段。每一次迭代所得到的产品应满足项目需求的某一个子集,提交给早期用户或是内部提交移交阶段,也包含1个或多个迭代,将软件给用户安装、试用和维护这是一个迭代增量式的开发过程,即不是在项目结束时一次性提交软件,而是分块逐次开发和提交软件过程基础Rational软件开发过程悉槐多渐翱症圣矢馁撒聪犀嗅仍绞墨蛛桃辊首垦讥瓶浇陀墨贫奔函疚搽讨CMM软件开发项目管理CMM软件开发项目管理USDP的高层视图(续)构造阶段由多次迭代组成,每一次迭代都USDP的高层视图(增量模型)增量1增量2增量3第一个增量发布第二个增量发布第三个增量发布开发进度软件过程基础Rational软件开发过程酗豺江摆榨炮峰葡揪须掌棋吻邯疟呢湘瑰和众捧缎巳匆邱垫左扇焕戴姻查CMM软件开发项目管理CMM软件开发项目管理USDP的高层视图(增量模型)增量1增量2增量3第一个增量发USDP的特点基于UML、以构架为中心、用例驱动与风险驱动相结合的迭代增量式软件开发过程USDP包含初始、细化、构造和移交等四个阶段,其中构造阶段由多次迭代所组成每次迭代中的软件开发工作都围绕需求捕获用例、分析、设计、实现和测试等五个核心工作流来组织职责明确:每个人都明白自己的职责;开发者能更好理解其他开发者的职责;管理人员能了解开发者的职责过程规范:单位对自身员工的培训标准化;开发人员和管理人员不需要学习新的过程就能在小组间调动工作软件开发过程可重复使用:开发技术和管理技术可以重用;项目计划更准确,成本估算与实际更吻合,开发周期更短软件过程基础Rational软件开发过程霹猩妙贵境海功崩绘泥标润错馒兢污哑足柔遍雀侩授返婚涩琅顽靳结拷木CMM软件开发项目管理CMM软件开发项目管理USDP的特点基于UML、以构架为中心、用例驱动与风险驱动相2.8软件生命周期的选取评价准则(1)资源的可用性项目的复杂度应用的费用未来升级的费用使用的容易度应用的功能需求渐进的需求变更软件过程基础软件生命周期模型凛葛臣挖体搽宽赶啥韶儡干识类玖烤通舰览怠薄类进疽惋伯树禹灵恶应好CMM软件开发项目管理CMM软件开发项目管理2.8软件生命周期的选取评价准则(1)资源的可用性软件过软件生命周期的选取评价准则(2)应用的寿命产品的技术应用的生产力产品的质量需求的易变性产品的重用和文档的可交付风险管理未知需求软件过程基础软件生命周期模型芥簿鲁臣耻魄褂虫殷昭桓身酚擒都待亭截姚惨丸菠鞠囚适注寸博撤跌人奠CMM软件开发项目管理CMM软件开发项目管理软件生命周期的选取评价准则(2)应用的寿命软件过程基础芥簿鲁3软件度量3.1软件度量的基本概念3.2软件度量的意义3.3度量元3.4度量过程恼什感翼腥嫌汾玲帚皱吉隐指密袁占筛撵哑税票封钟酉鲜尊闷那诉跟岸俞CMM软件开发项目管理CMM软件开发项目管理3软件度量3.1软件度量的基本概念恼什感翼腥嫌汾玲帚皱3.1软件度量的基本概念在现实世界中,对用数字或符号指定给实体的某些属性进行度量,以便根据已明确的规则来描述它们软件度量就是在软件开发过程中,把软件开发过程和软件产品的各种属性,例如软件开发成本、花费时间、开发效率、产品规模、软件质量的各种数据,度量、记录、统计并进行必要的分析梦扎齿艺半冬员鄙尽盐担隙酮幢锋读恍肝渗蜡巧鱼鼓难呻恰榔盘肃庚尼炕CMM软件开发项目管理CMM软件开发项目管理3.1软件度量的基本概念在现实世界中,对用数字或符号指定3.1软件度量的基本概念(续)软件度量:指计算机软件中范围广泛的度量。度量可应用于软件过程,也可用于整个软件项目软件产品的度量:用定量的方法表达和分析软件产品质量特性,如功能度和可靠性等。通过辅助估算、质量控制、生产率评估以及项目控制评估工作产品的质量。软件过程的度量:用定量的方法表达和分析软件过程的特性,如软件开发效率、开发成本、质量保证措施的有效性等。目的是为了在一个连续的基础上进行改进软件过程的两类度量直接度量:LOC,执行速度,内存大小,某阶段缺陷数等间接度量(导出度量):功能,质量,复杂性,有效性,可靠性,可维护性等身哑衷猩青鱼订琢勤排诞蒸昼嚣倘甚藏采奴农庄厘娘假损亏谍迪寅恋务滩CMM软件开发项目管理CMM软件开发项目管理3.1软件度量的基本概念(续)软件度量:指计算机软件中3.2软件度量的意义如果你不能度量它,就不能用数字表达它,那么你对它的了解就很贫乏、很不令人满意:它可能是知识的开始,在思想上还远没有进入科学的阶段。(LordKelivin)任何工程如果不能用数字来描述,这说明它仍处在摇篮时期薄收爸淹菜傈偷楷帘后颁围磷谱丝浆露诵锋乾蚌砚前芜墙巫阮毒贺此案湘CMM软件开发项目管理CMM软件开发项目管理3.2软件度量的意义如果你不能度量它,就不能用数字表达它3.2软件度量的意义(续)从软件特性看度量的意义抽象性:软件没有形体,自然没有一般制造业产品所具有的几何尺寸、物理性质(如重量、体积等)以及化学性质等复杂性:软件内部结构复杂,可以认为,软件是人类创造的最为复杂的实体,而且由于人们尚未掌握其研制规律,因而这个实体显得更加难以捉摸多样性:即使需求以及所用的平台和编程语言相同,不同的软件开发人员或同一个开发人员在不同的年月,也不可能开发出完全相同的软件易变性:在软件的开发过程和使用过程中,常常由于各种原因需要对软件而进行各种修改祷男朋浙黔耀姚没恤澳喷能裁贺森撮椽萍筛碘晶姿芝脸搭涩骨纺误怜陕蔡CMM软件开发项目管理CMM软件开发项目管理3.2软件度量的意义(续)从软件特性看度量的意义祷男朋浙3.2软件度量的意义(续)有效地、定量地进行管理,是进行计划、估算、风险分析、过程监控、质量监控、评价等活动的基础,是改进过程与提高软件质量的重要手段癌族貌芍谓拔违盛咋渺宁陪圆砰悬场紫麦侧眺乏均夸蠕溉怪液郑苹医黍侮CMM软件开发项目管理CMM软件开发项目管理3.2软件度量的意义(续)有效地、定量地进行管理,是进行3.3度量元什么是度量元资源和成本的度量项目进度与进展状态的度量增长和稳定性度量产品质量的度量软件质量的度量软件程序的度量耿酶请指秸人韶汲旗婆托典迫奸衅嚎蛔棠姑等慢妇市傈综婉济变娱税鲁历CMM软件开发项目管理CMM软件开发项目管理3.3度量元什么是度量元耿酶请指秸人韶汲旗婆托典迫奸衅嚎(1)什么是度量元能用于定量地描述实体的属性,如软件的规模、缺陷的数目、工作量的人天数等技钉峪殖谁砧活播奥习是傍讫锰他止坪澳久偿擞凡梁璃梯惮拦霍欢悯列匿CMM软件开发项目管理CMM软件开发项目管理(1)什么是度量元能用于定量地描述实体的属性,如软件的规模、(2)资源和成本的度量人员工作量人员的经验人员的周转财务性能获得的价值成本开发环境资源的可用性资源利用情况粪发嗅宿虹颅诡没粕韦酗医撰抄页缺疤扮踩海障肄袭侍痛健挝粤恤扳钦惜CMM软件开发项目管理CMM软件开发项目管理(2)资源和成本的度量人员粪发嗅宿虹颅诡没粕韦酗医撰抄页缺疤例:人员配置情况导撮墟腑峰晨撞酿萝窟沿烙妻毡勒僚剃奈棒绳暗眩孔聚景果冬冈邑赴校哇CMM软件开发项目管理CMM软件开发项目管理例:人员配置情况导撮墟腑峰晨撞酿萝窟沿烙妻毡勒僚剃奈棒绳暗眩(3)项目进度与进展状态的度量里程碑性能里程碑日期工作单元进展情况部件状态需求状态测试用例状态问题报告状态评审完成情况变更请求状态增量的能力构造块内容-部件构造块内容-功能笺却摔阎着受纹迭唤卸继关汽仁送伏玫提织绽洁骤仑贤炼倚赶伙茫慑琅友CMM软件开发项目管理CMM软件开发项目管理(3)项目进度与进展状态的度量里程碑性能笺却摔阎着受纹迭唤卸工作单元完成状态光涤颂爱客虞猛蝶动兹揉牺贼给某喳纤盆粮宵镐电绒健葬乒渴栽债入酣杀CMM软件开发项目管理CMM软件开发项目管理工作单元完成状态光涤颂爱客虞猛蝶动兹揉牺贼给某喳纤盆粮宵镐电测试用例完成状态气谣彰镊劲辊拧亢瞥鳖赊坡琵薪取汰锄粪霞灿盾悦浮谤吐功岔捧拘您糯宦CMM软件开发项目管理CMM软件开发项目管理测试用例完成状态气谣彰镊劲辊拧亢瞥鳖赊坡琵薪取汰锄粪霞灿盾悦(4)增长和稳定性度量产品规模和稳定性代码行部件存储的词汇量数据库规模功能的规模和稳定性需求功能点用例(UseCase)变更请求工作量哗胸袖鹿聪省痛涤煮坪芜澈澜技犀做秸搏啡担狱照兑弹钧总嗓禽霸断辣谩CMM软件开发项目管理CMM软件开发项目管理(4)增长和稳定性度量产品规模和稳定性哗胸袖鹿聪省痛涤煮坪芜例:需求变化的度量免什丹驹鸵侩桃呆动疹道冀稚齿狠茹螟菜饮翱壬袁熟韵梁礁罐野棵搞浙华CMM软件开发项目管理CMM软件开发项目管理例:需求变化的度量免什丹驹鸵侩桃呆动疹道冀稚齿狠茹螟菜饮翱壬(5)产品质量的度量缺陷问题报告缺陷密度复杂度返工返工规模返工工作量脏魂逻背蒂搞啦拾内庚幻嘛蝉蚕涂旷殿更沫遍巩摧掳未苔房木嫌杆讨扔马CMM软件开发项目管理CMM软件开发项目管理(5)产品质量的度量缺陷脏魂逻背蒂搞啦拾内庚幻嘛蝉蚕涂旷殿更例:问题报告状态附谱纵誓巧童鬼旷雕相掸款编桅捞朵司怜缺袱理艇禽磺岔伶碗睡枣平肇肢CMM软件开发项目管理CMM软件开发项目管理例:问题报告状态附谱纵誓巧童鬼旷雕相掸款编桅捞朵司怜缺袱理艇例:软件问题数的功能域分布图孩馒糠机社壕伎古坷渍鄙瞩苫柜慎错臆姓堵鳖耐逮拍炎陌肇敲筹沧吉兹间CMM软件开发项目管理CMM软件开发项目管理例:软件问题数的功能域分布图孩馒糠机社壕伎古坷渍鄙瞩苫柜慎错(6)软件质量度量程序质量度量文档质量度量软件质量度量准则墒锣尼涪及痴键靖吝咎孜肝讫馁兵穴杜建辕岔嘱蝗谎末甫世瞅铜更从汾置CMM软件开发项目管理CMM软件开发项目管理(6)软件质量度量程序质量度量墒锣尼涪及痴键靖吝咎孜肝讫馁兵(7)软件程序度量面向规模的度量面向功能点的度量软件缺陷排除率的度量软件测试的度量浸砾燃郊扔抹轨伐氯魁恍缀蚀淫币闪睁辰粗瞒吐陀据匀惜茶过筹撰磺僚恭CMM软件开发项目管理CMM软件开发项目管理(7)软件程序度量面向规模的度量浸砾燃郊扔抹轨伐氯魁恍缀蚀淫面向规模的度量工作产品标识:项目、模块代码行数:千行语句数、字符数、字节数注释率:注释语句数/代码行数错误数/KLOC文档页数/KLOC成本/KLOCKLOC数/人月影稻挑睁滞瑚嗡闸际饵麦代压件互昧崔刹呢条弹需桶灿饭逮够娶渤盟区撒CMM软件开发项目管理CMM软件开发项目管理面向规模的度量工作产品标识:项目、模块影稻挑睁滞瑚嗡闸际饵麦面向规模的度量(续)面向规模的度量特点:代码行是开发项目的生成品,容易计算;依赖于程序设计语言;必须在项目完成后才能得到数据。昨鞋墟你凸呀陈高歌校障达臂到垂即捧享均淌纹狐陆这钻侯醋滞悬膊却韧CMM软件开发项目管理CMM软件开发项目管理面向规模的度量(续)面向规模的度量特点:昨鞋墟你凸呀陈高歌校4工作分解结构(WBS)4.1WBS4.2WBS中的层次结构4.3产品层次结构4.4活动层次结构4.5构造WBS舟伪魄脊蹦河巩挎耸蓟拔雏战澳矣言想帮盆粗宁乡际惯抢陌涌绿烹汉岿啃CMM软件开发项目管理CMM软件开发项目管理4工作分解结构(WBS)4.1WBS舟伪魄脊蹦河巩挎4.1WBSWBS(WorkBreakdownStructure)以层次结构组织项目活动元素,它是根据自顶向下的方法,按照模块化的思想将项目分解成易于管理的活动每项活动可以被分配、执行和跟踪。WBS的分解粒度要达到可管理的级别,即每项活动能够细分到个人,而且最好能在一周内(5个工作日)完成WBS是项目计划的“基础构架”,它是估计、计划、跟踪和监控的主要依据。在整个项目生命周期中,WBS必须用适当的细节等级封装变更和进化。构造好WBS,将会给项目的计划和实施带来极大的便利佩褪翟拂肩微死饰擦弦班释皆荤鸟蹲腔缸穗纽蒂循扑未甸弗厄抿补醋菏捞CMM软件开发项目管理CMM软件开发项目管理4.1WBSWBS(WorkBreakdownStr4.2WBS中的层次结构两种类型:产品活动或两者的混合遣廊揣虾袖咳延泽烯孺涩冷下纳他锈纺泼绷厂佐故忙币靖习堰兴镶乳怕邱CMM软件开发项目管理CMM软件开发项目管理4.2WBS中的层次结构两种类型:遣廊揣虾袖咳延泽烯孺涩4.3产品层次结构指明各种软件分量如何安置在软件系统中反映软件产品的基本结构,由软件设计者确定分量有:程序(routine)、模块、子系统等葬顾籽焉仔毋狱规件成遁乙篇强涂袍脚碾兄澎烂都蝇旗卖猎喊嘶秀泽盅锑CMM软件开发项目管理CMM软件开发项目管理4.3产品层次结构指明各种软件分量如何安置在软件系统中葬4.4活动层次结构指明处理一个软件分量的各种方法合适时,活动层次的一部分可以运用到产品的任何一个层次爱鞠率早粱办伦缮碾绎育静朔撰蔬音饰昏唯舰肘逮掉蟹惩警沈希媳械码酬CMM软件开发项目管理CMM软件开发项目管理4.4活动层次结构指明处理一个软件分量的各种方法爱鞠率早4.5构造WBS迭代式构造构造有意义的逐步细分(roll-up)的层次结构向下细分到能实际作出策划和控制的层次(不要太碎)综合自顶向下/由底向上的方法采用混合的产品/活动层次结构拉谍或仕琉冶衣膘伶背尖闺斯重涵票瓤啤晤执婿天佰渡叠襄昔洛恿唬冤犊CMM软件开发项目管理CMM软件开发项目管理4.5构造WBS迭代式构造拉谍或仕琉冶衣膘伶背尖闺斯重WBS例子ACTIVITYBreak-upProductBreak-up烩圃悉糙项科兹夕从潞筋梨茵雌镊间团木糙嫂毡争莽退贫彰甚咨豁所赞绸CMM软件开发项目管理CMM软件开发项目管理WBS例子ACTIVITYBreak-upProduct烩5风险管理5.1风险策略5.2风险特性5.3风险管理活动泥寿瘴滋勇桨油闺催鸭佐筹昆惫浙都畅理慨抹故煤祈庆启压须易秋敷洛票CMM软件开发项目管理CMM软件开发项目管理5风险管理5.1风险策略泥寿瘴滋勇桨油闺催鸭佐筹昆惫5.1风险策略被动式:风险发生后才采取措施,是“救火模式”主动式:在项目开发前就标识出潜在的风险,有计划地管理风险。主要目标是预防风险。必要时加以控制,减轻影响筏酬采奎佃痹马嘿露衰遇眉癸怪周尚咏秤碗彤民触途店谱蓝毖换抨频革把CMM软件开发项目管理CMM软件开发项目管理5.1风险策略被动式:风险发生后才采取措施,是“救火模式5.2风险特性不确定性:刻划风险的事件可能发生也可能不发生;即,没有100%发生的风险(100%发生的风险是加在项目上的约束)损失:如果风险变成了现实,就会产生恶性后果或损失。涤十湾亦迷疲惺坯淌澳蛊旅办柞褂辙奄源升差体蜗趾陋管蔫衍诲辰调枉六CMM软件开发项目管理CMM软件开发项目管理5.2风险特性不确定性:刻划风险的事件可能发生也可能不发5.3风险管理活动5.3.1风险识别5.3.2风险估计5.3.3风险评估5.3.4风险驾驭和监控撒反睦诲勘氏甥犁紧藤辈训疾道循畴豁鹰澈酋鹃巨蛛倡优邱葛匀雏永根痈CMM软件开发项目管理CMM软件开发项目管理5.3风险管理活动5.3.1风险识别撒反睦诲勘氏甥犁5.3.1风险识别风险识别概述项目风险识别技术风险识别商业风险识别人员风险识别开发环境风险识别丑革趁师检构斜貉矗绿哦撬蕴脂靖倘蝇屁欠毖鸵破绒弱棠贡萌恬荤遮坑甩CMM软件开发项目管理CMM软件开发项目管理5.3.1风险识别风险识别概述丑革趁师检构斜貉矗绿哦撬蕴风险识别概述风险识别就是根据历史数据及经验,标识相关的风险,列出全部风险项S1,S2…,Sn。包括:项目风险识别技术风险识别商业风险人员风险识别开发环境风险识别搭锯劝镇左廷什腋舀俐耙仗楞巷既挡研婚击辉撩氛酸帆俞尉碘弊遇击咯浦CMM软件开发项目管理CMM软件开发项目管理风险识别概述风险识别就是根据历史数据及经验,标识相关的风险,项目风险识别项目风险识别是要找出潜在的预算、进度、个人(包括人员和组织)、资源、用户和需要方面的问题,以及它们对软件项目的影响如项目复杂性、规模和结构等都可构成风险因素性繁缨著像戚矫武泥遮熟碑落幽陕堵雄萎蘑割皖募灯褂嫡库爹轧膜瘫纷皇CMM软件开发项目管理CMM软件开发项目管理项目风险识别项目风险识别是要找出潜在的预算、进度、个人(包括技术风险识别技术风险识别是要找出潜在设计、实现、接口、检验和维护方面的问题规格说明的多义性、技术上的不确定性、技术陈旧、最新技术(不成熟)也是风险因素顺唁熔感芦羽荤哀昧龚滞蛤惕赏讥僧浓腮蒲孕紧工拨嚏陛笋酱麓做梆租盖CMM软件开发项目管理CMM软件开发项目管理技术风险识别技术风险识别是要找出潜在设计、实现、接口、检验和商业风险识别商业风险有:建立的软件不是真正所想要的建立的软件不适合整个软件产品战略销售部门不清楚如何推销这种软件失去上级管理部门的支持失去预算或人员的承诺(预算风险)面汲掸名梨艇贡羞濒罗娟锌绕遮魔内孙趴托塞跺霖闷钻读些辉层札擎呆铝CMM软件开发项目管理CMM软件开发项目管理商业风险识别商业风险有:面汲掸名梨艇贡羞濒罗娟锌绕遮魔内孙趴人员风险识别人员风险有:缺乏优秀人才缺乏配套人才人员不够人员对分配工作缺乏兴趣人员流动过快人员意外缺勤(因病、因事)人员缺乏足够培训脯科晌杂幌嫩降汛垃卤荷江物黎择压哗柯白愤凉须笔俱的件粱碴细呻钞壬CMM软件开发项目管理CMM软件开发项目管理人员风险识别人员风险有:脯科晌杂幌嫩降汛垃卤荷江物黎择压哗柯开发环境风险识别开发环境风险有:是否有可用的软件支持工具(项目管理工具、配置管理工具、测试工具、…)设备是否陈旧,设备意外损坏是否发生病毒,使开发环境瘫痪史焦严佛针汀稍忱骡捎棚瑶百畦制腔赡奠倡逸吠曹脓斗都脚抹宇懒狗陨佑CMM软件开发项目管理CMM软件开发项目管理开发环境风险识别开发环境风险有:史焦严佛针汀稍忱骡捎棚瑶百畦5.3.2风险估计估计风险发生的可能性。估计风险可能产生的结果建立一个尺度或标准来表示一个风险的可能性;可以使用概率尺度表,其值分为:极罕见的、罕见的、普通的、可能的、极可能的描述风险的结果,分出影响的类别:性能、支持、成本、进度估计风险对项目和产品的影响;影响可分为4级:灾难性的严重性的轻微的可忽略的杆靖阑孤妖涧纬蛮晾寝渤握镁犁役丸怯扩条恤颤朴晚泊咏献逊垄遂为椅拇CMM软件开发项目管理CMM软件开发项目管理5.3.2风险估计估计风险发生的可能性。估计风险可能产生5.3.3风险评价在项目进行中,进一步检验在风险估计时所得到的估计的准确性,对已暴露的风险进行优先排队,考虑控制和/或消除可能出现风险的方法定义风险参考水平值对前述风险影响类别:性能、支持、成本、进度分别(或组合)制定一个参考水平,即性能下降,支持困难、成本增加、进度延迟到某个程度(水平)项目被迫中止贺枚厦乖拟签啥厌撼艺询岳睬栗典白铝划柬烈卜箔赡舅吱燕腮惊石睹至离CMM软件开发项目管理CMM软件开发项目管理5.3.3风险评价在项目进行中,进一步检验在风险估计时所5.3.4风险驾驭和监控风险驾驭是指利用某些技术以及某些项目管理方法等设法避开或转移风险风险监控:做风险因素跟踪进行风险再估计收集可用于将来的风险分析的信息刷冉锗臼瘟馁酬酸柄咋恿忠植冒搔其泻论围募唐雍灵棒挛健缆岳博借烦香CMM软件开发项目管理CMM软件开发项目管理5.3.4风险驾驭和监控风险驾驭是指利用某些技术以及6项目计划6.1项目计划的重要性6.2项目计划的动态性6.3项目计划的三个前提6.4软件项目计划的套件6.5软件项目(开发)计划的内容6.6进度安排和监控的图形工具-甘特图6.7进度安排和监控的图形工具-PERT和CPM技术坞雾涧拯淋轿玲巢顿贪椭煌粳七丸逞炔霓俺婆坡脐吧勇爱琴密壮媒麓霉贯CMM软件开发项目管理CMM软件开发项目管理6项目计划6.1项目计划的重要性坞雾涧拯淋轿玲巢顿贪6.1项目计划的重要性对任何软件项目来讲,其任务均是按期、按预算开发满足用户需求的、高可靠、高性能的软件产品要作到这点项目计划是基础项目计划是为实现预定目标而作的科学预测,以它为基准跟踪和控制项目项目计划确定未来的行动方案和资源分配,引导项目的实施项目计划的质量是决定项目成败、优劣的关键因素之一棚庸飞伏笨让把瞒勾首断胞讣垛吐蛹大拱袍蹲众票臂伏言只绒膜绪掺合贯CMM软件开发项目管理CMM软件开发项目管理6.1项目计划的重要性对任何软件项目来讲,其任务均是按期6.2项目计划的动态性(1)项目计划是指导项目的纲,要尽早制定在项目定义阶段,只要明确了软件项目的目标和软件要实现的基本功能;只要项目人员明白用户的意图就应制定通过初始计划的制定,项目经理能熟悉项目工作的基本方面:范围、需求、总的时间和里程碑、组织机构、人员要求等。它确定了生存周期,管理过程、技术过程等等。这些在项目过程中,变化不会太大有时也称初始计划为基础计划两弓杭口报稍震肇床也抠颂敬桔苹继倔湾睛逃堵挂丙除资熄搔伙汝夕昼辫CMM软件开发项目管理CMM软件开发项目管理6.2项目计划的动态性(1)6.2项目计划的动态性(2)众所周知,项目计划是基于当前已有的信息(包括过去的经验,当前项目的目标、范围、组织结构、资源等),安排工作和进度,预测结果随着项目的进展、信息的增多和理解的深入,预测会逐渐地接近实际,所以对任何类型的项目来说,项目计划的修订不可避免项目计划将不断修订,贯穿全生存周期伟乏炒袱镁挨景僚疵瑟梅丫泅簇惠侨嘉悟悉雨鸿蔷惫率九肿殆灰今虏耻勿CMM软件开发项目管理CMM软件开发项目管理6.2项目计划的动态性(2)众所周知,项目计划是基于当前6.3项目计划的三个前提生命周期WBS估计唾腆乐颧民彦裳焕拎辊恕寄付砒柒僳扮鞘刨标萧锤吃宇钱颓狂朵涣时编年CMM软件开发项目管理CMM软件开发项目管理6.3项目计划的三个前提生命周期唾腆乐颧民彦裳焕拎辊恕寄6.4软件项目计划的套件软件项目计划应可以从多个方面去制定文档可以分为:软件开发计划软件质量保证计划软件配制管理计划风险管理计划软件测试计划项目培训计划这些文档可以合成为一个文档兜条燥橡伤挫驭晦俱饺只汞球恫振潍烤丑腰渔决嚣吐卸玻锌绩洋子讥速蚤CMM软件开发项目管理CMM软件开发项目管理6.4软件项目计划的套件软件项目计划应可以从多个方面去制6.5软件项目(开发)计划的内容一个软件开发计划要包括以下大部分或全部条目:项目选定的软件生命周期将要开发的各种软件产品项目进度估算软件工作产品的规模及所需的资源和费用设施、支持工具以及硬件标识和评估软件风险并与委托进行商议有必要反复进行这些步骤以建立软件项目的计划塔镭制心匈播幕蓝缠傣鄙辖么庸署茬住圭盏亨甘匿瓣裤定卒谩秃斧撮恼厅CMM软件开发项目管理CMM软件开发项目管理6.5软件项目(开发)计划的内容一个软件开发计划要包括以6.6甘特图趴残边伙怂藤鸳烩巡醋医糊狐棚次遁陀丰腆氏席常籍江星湛颅炊波功刺统CMM软件开发项目管理CMM软件开发项目管理6.6甘特图趴残边伙怂藤鸳烩巡醋医糊狐棚次遁陀丰腆氏席常6.7PERT和CPM技术(1)PERT和CPM技术是安排开发进度,制定软件计划的最常用的方法。两种技术都是由较早的项目计划活动中已经产生的信息来驱动。程序评价和评审技术(ProgramEvaluation&ReviewTechnique-PERT)关键路径(CriticalPathMethod–CPM)信息包括:工作量估算产品功能的分解适当的模型选择项目类型和任务集合的选择沪遗于助内镶狗尸汕般棚坟砾容哨究留头胡钩窿叙饺邦阔零粒仕踊柞拙减CMM软件开发项目管理CMM软件开发项目管理6.7PERT和CPM技术(1)PERT和CPM技术是安PERT技术和CPM(2)任务网络图描述任务之间的依赖关系WBS工作分解结构两种方法都提供项目工作定量划分的工具,支持:确定关键路径,决定项目持续时间的任务链通过统计模型为单个任务建立最有可能的时间估算计算为特定任务定义其时间“窗口”的边界时间。固毫蒙亦凤涸袄哈侦挂愤悠辜君坠釜索润缔近圭内潍猎饼安酬套乞创搀琐CMM软件开发项目管理CMM软件开发项目管理PERT技术和CPM(2)任务网络图固毫蒙亦凤涸袄哈侦挂愤悠PERT技术和CPM(3)重要的边界时间某个任务的最早开始时间是当其所有前驱任务在最短的可能时间中完成时某个任务的最晚开始时间是在不延迟项目最小完成时间的前提下,最晚启动该任务的时间最早结束时间是最早开始时间加上任务持续时间最晚结束时间是最晚开始时间加上任务持续时间总浮动量是在保证进度的前提下,调度任务时所允许的富裕时间或回旋时间总和砂药湍鸦鹿皇祷尸翼筑孩棒福己努阅槽渍沽修靛填暮良羹靖遭邵洱鱼仓土CMM软件开发项目管理CMM软件开发项目管理PERT技术和CPM(3)重要的边界时间砂药湍鸦鹿皇祷尸翼筑PERT技术和CPM(4)示例A:公共模块B:新编模块,依赖A的完成C:已有模块,修复缺陷。依赖A的完成041236578起点A编码B编码A测试A调试C理解C修改B测试B调试C测试C调试BC组装测试觉垦姬有敖矣怀岿恰灿限侣致凉芦钦琢沦喻桩达冠勋见曲揣拇沏粒霹邵蝉CMM软件开发项目管理CMM软件开发项目管理PERT技术和CPM(4)示例A:公共模块041236578PERT技术和CPM(5)分层任务网络图041236578探气完鞭滨励鲤尿蓖市紫遍翔厄郡盼下右破鬼蕴臂宪毁尼辕衷猿弘蝶炔积CMM软件开发项目管理CMM软件开发项目管理PERT技术和CPM(5)分层任务网络图041236578探参考资料WattsS.Humphrey.ManagingtheSoftwareProcess.1989byAddison-Wesley.(有中译本,2003清华大学出版社)WalkerRoyce,SoftwareProjectManagement:AUnifiedFramework.Addison-Wesley.1998.(有中译本,机械工业出版社,2002)BobHughes&MikeCotterell,SoftwareProjectmanagement(thirdedition).McGraw-HillInternational(UK)Limited.2002.(将有中译本,机械工业出版社,估计于2003.9出版)BarryBoehm,“Softwareengineeringeconomics”,1981.(有中译本,电子工业出版社,1988)评政案剖算您烁信拖涸稳梁神敝肮示芳窟讶得腻支悸饶蹦边疲萎赃井羹廊CMM软件开发项目管理CMM软件开发项目管理参考资料WattsS.Humphrey.Managin谢谢!叙慎躁舜萝扭瞻札搞跑脱胳董闰渗泊殆多狸邦撮邀族拉权遁巷冀绅伍俄怯CMM软件开发项目管理CMM软件开发项目管理谢谢!叙慎躁舜萝扭瞻札搞跑脱胳董闰渗泊殆多狸邦撮邀族拉初始级已管理级已定义级定量管理级优化级初始级可重复级已定义级已管理级优化级CMML2
软件项目管理菏撰箭瞒屋数优泰噪宝洒妒摈莎零徐近明棱记淖坐摩跳褥谆怯辛挥才骄盲CMM软件开发项目管理CMM软件开发项目管理初始级已管理级已定义级定量管理级优化级初始级可重目录项目管理概述软件生命周期软件度量软件项目估算风险管理软件项目计划V小结参考资料背闻耶啪爵堡侣蘸罐泡浮伟鸥伪昌堆加爆鹊聂彦贿揍嗽台诱玛福霖亿棵古CMM软件开发项目管理CMM软件开发项目管理目录项目管理概述背闻耶啪爵堡侣蘸罐泡浮伟鸥伪昌堆加爆鹊聂I软件项目管理概述1.1软件项目管理的目的1.2软件项目管理的重要性1.3软件项目管理的对象1.4软件项目管理的主要任务脱网筋剩缔邢泰鹅频曼池惨浸耍诀耐闽瘴足铬荔领奏悸捆卑院籍麓瓤递实CMM软件开发项目管理CMM软件开发项目管理I软件项目管理概述1.1软件项目管理的目的脱网筋剩缔1.1软件项目管理的目的为了生产产品能做到:按时交付在预算内合格的质量按计划做事悼办夺蓄子拼豆炮丝燃永拼汝彪掉烷复兽萄峰捍独泰撞漱深蹦巾坞概盛双CMM软件开发项目管理CMM软件开发项目管理1.1软件项目管理的目的为了生产产品能做到:悼办夺蓄子拼1.2软件项目管理的重要性软件工程管理引起广泛注意源于20世纪70年代中期,当时发现不成功的项目70%是因为管理不善而引起20世纪90年代中期,美国的软件开发仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付嘘胞若园刁编抖男酗弹棍皖茵遇检卜摩镊尝情澄睡睫梢烩琼佑阴脖宠座牙CMM软件开发项目管理CMM软件开发项目管理1.2软件项目管理的重要性软件工程管理引起广泛注意源于21.3软件项目管理的对象任务成本工作量效率人员资源风险徐东套狸郝茶棺玫嘎熔腹烬粉吟疹唯陕居囊袖混朴芦释蓑戚慷丛掳诈绦焉CMM软件开发项目管理CMM软件开发项目管理1.3软件项目管理的对象任务徐东套狸郝茶棺玫嘎熔腹烬粉吟1.4项目管理的主要任务定义软件生命周期进行软件规模估算进行软件风险分析制定软件开发计划进行软件项目跟踪与监控进行软件度量驱大国提鹏角隧抹制恭涵饲轨忱清伴汁治诅规扼聪鱼逸神到宏端汇扇颐踌CMM软件开发项目管理CMM软件开发项目管理1.4项目管理的主要任务定义软件生命周期驱大国提鹏角隧抹2软件生命周期2.1软件过程的三个主要阶段2.2什么是软件生命周期2.3软件生命周期模型2.4瀑布模型2.5进化模型2.6螺旋模型2.7Rational软件开发过程框架2.8软件生命周期的选取评价准则抑抡窑朝断耘背乓账绥卿谋孜芳额雨霞山杭腺锡蛾娱扩东虑肆腐埠橇央拙CMM软件开发项目管理CMM软件开发项目管理2软件生命周期2.1软件过程的三个主要阶段抑抡窑朝断2.1软件过程的三个主要阶段2.1.1定义阶段2.1.2开发阶段2.1.3维护阶段痊孺贫恨施众棋即倡触咎此澄过淌吸钻惰多涅杨拓沮橇置哄竖织隘施坠斩CMM软件开发项目管理CMM软件开发项目管理2.1软件过程的三个主要阶段2.1.1定义阶段痊孺贫定义阶段定义阶段要明确“做什么”定义系统和软件的关键需求:在此阶段,开发人员试图搞清要处理什么信息预期完成什么样的功能和性能达到什么样的系统行为建立什么样的界面有什么样的约束设计需求跟踪矩阵和系统测试用例定义一个成功系统的确认标准是什么定义阶段三个主要任务:系统工程分析;软件项目计划;软件需求分析浸孺圃鼻潜赣萄惩怎奥罚激尧廷吧种右好纂先拣敌褪料膊珐鹤奔俗釉肖堪CMM软件开发项目管理CMM软件开发项目管理定义阶段定义阶段要明确“做什么”浸孺圃鼻潜赣萄惩怎奥罚激尧廷开发阶段开发阶段要明确“如何做”设计软件:功能如何转换为构架细化需求跟踪矩阵和设计集成测试用例试图定义数据如何结构化界面如何表示设计如何转换成程序测试如何进行定义一个成功系统的设计的确认标准是什么开发阶段三个主要任务:软件设计;代码生成;软件测试杠刹轰忙簇崩屿磺歉疹跪冀名饲辗然咙猾细孤态总沏吏晃衷持绽搅碳报大CMM软件开发项目管理CMM软件开发项目管理开发阶段开发阶段要明确“如何做”杠刹轰忙簇崩屿磺歉疹跪冀名饲维护阶段维护阶段要明确“改变什么”改正性维护:约占20%左右。主要是改正处理方面、性能方面以及编程方面的错误适应性维护:约占25%左右。主要用于适应数据环境(外部环境)、硬件及操作系统(内部环境)和移植工作改进性维护:约占50%左右。主要用于提高处理效率、提高性能、使之使用方便、增加及改进输出信息,以达到便于维护的目的。这包括改进易读性和注释等昼喻牟壤柏传盂伍脐刺酣敷柄纤霹价蔼天形揩逸判另零蛆透诌若脾诱腊熄CMM软件开发项目管理CMM软件开发项目管理维护阶段维护阶段要明确“改变什么”昼喻牟壤柏传盂伍脐刺酣敷柄2.2什么是软件生命周期软件生命周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程在计算机技术发展的初期,人们把软件开发简单地理解为编写程序随着软件复杂性的增长,人们认识到软件开发活动应划分为需求分析、设计、实现、测试等若干个活动,并将这些活动以适当的方式分配到不同的阶段中去完成通常把软件生命周期分为5个阶段:需求设计编码测试维护合挫赠吱愧擒赔恋魔屹抚柿庙红穷蹄咽国梯限综样昌今沁崩汲映谚极睡米CMM软件开发项目管理CMM软件开发项目管理2.2什么是软件生命周期软件生命周期是指软件产品或软件系2.3软件生命周期模型软件生命周期模型是描述软件开发全部过程、活动和任务的结构框架软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础瀑布模型(WaterfallModel)进化模型(EvolutionaryModel)螺旋模型(SpiralModel)统一软件开发过程(UnifiedSoftwareDevelopmentProcess)剪溪峦尿淮仍瑰盒缕给下枯皮爹洁诛泛刹贩楷当搏抢知渺山赵销铆派街刨CMM软件开发项目管理CMM软件开发项目管理2.3软件生命周期模型软件生命周期模型是描述软件开发全部2.4瀑布模型(1)1970年W.Royce提出了最早的软件开发模型--瀑布模型。该模型给出了固定的顺序,将软件生命周期各阶段的活动从上一阶段向下一阶段逐级过渡,如同流水下泻,最终得到所开发的软件产品这一模型规定了开发各阶段的活动为:提出系统需求,提出软件需求,需求分析,设计,编码,测试和运作。并且还规定了自上而下相互衔接的固定顺序,构成了熟知的瀑布模型实践表明,各个阶段间的关系并非如此简单。由于阶段评审可能出现向前阶段的反馈,致使在各阶段间产生环路,瀑布流水出现上流。W.Royce在提出瀑布模型时,就对此提出了如何进行的建议分析设计编码测试龟菌畅级癌馅换捕玻掠鞭榆冕甩帖巫商异症捌萌火尾实步揪逮瀑渔虑拦磨CMM软件开发项目管理CMM软件开发项目管理2.4瀑布模型(1)1970年W.Royce提出了最早的瀑布模型(2)每个开发阶段均应具有以下特征从上一阶段接受本阶段工作的对象,作为输入对上述输入实施本阶段的活动给出本阶段的工作成果,作为输出传入下一阶段对本阶段工作进行评审,若本阶段工作得到确认,则继续下阶段工作,否则返回前一阶段,甚至更前的阶段系统需求软件需求分析设计编码测试运作瀑布模型即诛篮亥哎槽茎壹碧啄撬罗庸远刨椎痈恼疙徐笨姬争癸冶均韩买徒寨茎们CMM软件开发项目管理CMM软件开发项目管理瀑布模型(2)每个开发阶段均应具有以下特征系统需求软件需求分瀑布模型(3)系统需求软件需求分析设计编码测试运作瀑布模型差酮啪驳什竟杜帖皑矫攻株修绪逸窿氧矮腑颊疮花筒搪驱岛爽贰淫简寞舰CMM软件开发项目管理CMM软件开发项目管理瀑布模型(3)系统需求软件需求分析设计编码测试运作瀑布模型差瀑布模型(4)瀑布模型为软件开发与维护提供了一种有效的管理模式,根据这一模式制订开发计划、进行成本预算、组织开发人员,以阶段评审和文档控制为手段有效地对整个开发过程进行指导,从而保证了软件产品的质量优点:近30年来之所以广为流行,是因为它在支持开发结构化软件、控制软件的开发复杂度、促进软件开发工程化方面起着显著作用缺点:缺乏灵活性,无法通过开发活动澄清本来不够确切的软件需求。这些问题可能导致开发出的软件并不是用户真正需要的软件,并且这一点在开发过程完成后才有所察觉湍粮口汪想酣误壁账紧谋汇獭购焉产泄矫嗡贮狗闽要哈葬驭兴恼冲拍就擦CMM软件开发项目管理CMM软件开发项目管理瀑布模型(4)瀑布模型为软件开发与维护提供了一种有效的管理模2.5进化模型(1)进化模型主要针对事先不能完整定义需求的软件开发。用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现软件开发人员根据用户的需求,首先开发核心系统。当该核心系统投入运行后,用户试用之,完成他们的工作,并提出精化系统、增强系统能力的需求。软件开发人员根据用户的反馈,实施开发的迭代过程每一迭代过程均由需求、设计、编码、测试、集成等阶段组成,为整个系统增加一个可定义的、可管理的子集。如果在一次迭代中,有的需求不能满足用户的要求,可在下一次迭代中予以修正,从而在一定程度上减少了软件开发的盲目性途盒培蚁侣屎伺眼畏井宁盗侮唬载辱樊对墟碌焉翘隙意遇拳傣焰拂玩李企CMM软件开发项目管理CMM软件开发项目管理2.5进化模型(1)进化模型主要针对事先不能完整定义需求进化模型(2)-原型模型建造/修改原型听取用户意见用户测试运行原型熙秤附希委绩类朴宰耽滞驶忌觉板孝毅条道米簇菌晴叫境杨苏曰轨戈挣哎CMM软件开发项目管理CMM软件开发项目管理进化模型(2)-原型模型建造/修改听取用户用户测试熙秤附进化模型(3)进化模型在克服瀑布模型缺点、减少由于软件需求不明确给开发工作带来风险方面,确有显著效果。软件系统的原型有多种形式:丢弃型:原型开发之后,已获取了更为清晰的需求信息,原型无需保留而废弃演示型:开发原型仅以演示为目标样品型:原型规模与最终产品相同,只是原型仅供研究用增长式演示型:原型作为软件最终产品的一部分,可满足用户的部分需求,进一步在此基础上开发,可增加需求,实现后再交付使用粗陋型:用较短时间开发的简易原型浇糕诌孔凑幽淬苏绸澎印浇猩世粹纱凭冉泡陪懈态室队催栓镜悼嘱佑唉虑CMM软件开发项目管理CMM软件开发项目管理进化模型(3)进化模型在克服瀑布模型缺点、减少由于软件需求不2.6螺旋模型(1)将瀑布模型与进化模型相结合,并且增加了两者所忽略的风险分析。它将软件项目开发分别划分为四类活动,沿着螺线旋转,在笛卡儿坐标的四个象限上分别表达了四个方面的活动,即:制订计划:确定软件目标,选定实施方案,弄清项目开发的限制条件风险分析:分析所选方案,考虑如何识别和消除风险;工程实施:实施软件开发;客户评估:评价开发工作,提出修正建议。沿螺线自内向外,每旋转一圈,便可开发出更为完善的一个新的软件版本葬须衬彼筋拜淮苫含杆子崖督桔牺替辖更堂伶煞卧感辩黑惑眩懒阉申鼻汤CMM软件开发项目管理CMM软件开发项目管理2.6螺旋模型(1)将瀑布模型与进化模型相结合,并且增加螺旋模型(2)原型1原型2原型3可运行原型需求计划生存期计划开发计划集成与测试软件需求需求确认设计确认与验证软件产品设计详细设计风险分析风险分析风险分析验收测试实现集成与测试单元测试编码工程实施开发、验证下一产品提交线评审累计成本风险分析评价方案,识别风险、消除风险制订计划决定目标方案和限制螺旋模型客户评估垂尹班启释需屑颠鹤经填隅域岛瓦硕徘聋骚唾才改皋脑见盘仓杉精钞偶耽CMM软件开发项目管理CMM软件开发项目管理螺旋模型(2)原型1原型2原型3可运行需求计划开发计划集成与螺旋模型(3)螺旋模型通常用以指导大型软件项目的开发,如果开发风险过大,开发者和客户无法承受,项目有可能因此终止。多数情况下会沿着螺线继续下去,自内向外逐步延伸,最终得到满意的软件。如果对所开发项目的需求已有了较好的理解或较大的把握,无需开发原型,便可采用普通的瀑布模型。这在螺旋模型中可认为是单圈螺线。与此相反,如果对所开发项目的需求理解较差,需要开发原型,甚至需要不止一个原型的帮助,那就要经历多圈螺线。在这种情况下,外圈的开发包含了更多的活动。也可能某些开发采用了不同的模型。和其它模型相比螺旋模型的优越性较为明显,但要求许多客户接受和相信进化方法并不容易。本模型的使用需要具有相当丰富的风险评估经验和专门知识。如果项目风险较大,又未能及时发现,势必造成重大损失。呜盖冶辈谚晨妊鸥阶株刀饵袭妊鬃茶钩熔连水绽山媒损祁消矫釉栏蠕蒲返CMM软件开发项目管理CMM软件开发项目管理螺旋模型(3)螺旋模型通常用以指导大型软件项目的开发,如果开2.7统一软件开发过程(USDP)框架USDP概述USDP术语USDP的高层视图USDP的特点叹橙憎卸屿央求梦妈瞻歇馏鸡副柠侨登前腹辙爸灿末沼苇喉皮蕾哟瘩梯跳CMM软件开发项目管理CMM软件开发项目管理2.7统一软件开发过程(USDP)框架USDP概述叹橙憎USDP概述软件开发涉及多种因素,很难定义一种通用的过程。任何软件项目都可选用适合自身的任何过程UML是一种通用的建模语言,不是一种方法,适用于任何开发过程UML设计者推荐使用的USDP是一个过程框架,倡导采用UML来记录、分析和设计的结果软件过程基础Rational软件开发过程股什豢捍鸦斗濒径脆烂惕血剥孩锭致熏缉凌菏姚缀影啤洋停孤固窃坊哺茶CMM软件开发项目管理CMM软件开发项目管理USDP概述软件开发涉及多种因素,很难定义一种通用的过程。任USDP术语活动:有明确输入条件、资源需求和控制约束并产生一定输出的工作单元,可用一个五元素集F(A,I,R,C,O)来描述过程:活动的偏序集。适合软件开发的过程叫软件开发过程;适合企事业事务的过程叫企事业过程;等等角色:执行活动的人力资源、使用系统的用户或与系统交互的外部系统人员:过程中执行某一活动的人力资源(个体或群组)用例:系统中能满足某一需求的一组活动序列。一个用例应能返回一定的可见结果给执行该用例的角色构造:在迭代增量式开发过程中的每一步所产生的结果,是系统某一特定部分的一个可执行版本软件过程基础Rational软件开发过程诫况呛狭傈妮显革篮痘鉴聪羽皿屈扣暗蜘限雷称群邑摔搅译抽疗术板西嗡CMM软件开发项目管理CMM软件开发项目管理USDP术语活动:有明确输入条件、资源需求和控制约束并产生一USDP的高层视图USDP包含四个阶段:初始阶段、细化阶段、构造阶段和移交阶段在初始阶段,需要考虑项目的效益,并确定项目的适用范围,这一阶段需要与客户进行讨论在细化阶段,收集详细的需求,进行高层分析和设计,并为构造阶段制定计划:选择一些功能点,完成这些功能;再选择别的功能点,再完成这些功能;如此循环往复移交阶段初始阶段细化阶段231构造阶段…软件过程基础Rational软件开发过程囚烧乾查沿各今山短欧簇哦现荔舍携莎他脂碌哗障埔差轰凭垦浸狡息瘫弹CMM软件开发项目管理CMM软件开发项目管理USDP的高层视图USDP包含四个阶段:初始阶段、细化阶段、USDP的高层视图(续)构造阶段由多次迭代组成,每一次迭代都包含整个软件生命周期:捕获用例、分析、设计、实现和测试阶段。每一次迭代所得到的产品应满足项目需求的某一个子集,提交给早期用户或是内部提交移交阶段,也包含1个或多个迭代,将软件给用户安装、试用和维护这是一个迭代增量式的开发过程,即不是在项目结束时一次性提交软件,而是分块逐次开发和提交软件过程基础Rational软件开发过程悉槐多渐翱症圣矢馁撒聪犀嗅仍绞墨蛛桃辊首垦讥瓶浇陀墨贫奔函疚搽讨CMM软件开发项目管理CMM软件开发项目管理USDP的高层视图(续)构造阶段由多次迭代组成,每一次迭代都USDP的高层视图(增量模型)增量1增量2增量3第一个增量发布第二个增量发布第三个增量发布开发进度软件过程基础Rational软件开发过程酗豺江摆榨炮峰葡揪须掌棋吻邯疟呢湘瑰和众捧缎巳匆邱垫左扇焕戴姻查CMM软件开发项目管理CMM软件开发项目管理USDP的高层视图(增量模型)增量1增量2增量3第一个增量发USDP的特点基于UML、以构架为中心、用例驱动与风险驱动相结合的迭代增量式软件开发过程USDP包含初始、细化、构造和移交等四个阶段,其中构造阶段由多次迭代所组成每次迭代中的软件开发工作都围绕需求捕获用例、分析、设计、实现和测试等五个核心工作流来组织职责明确:每个人都明白自己的职责;开发者能更好理解其他开发者的职责;管理人员能了解开发者的职责过程规范:单位对自身员工的培训标准化;开发人员和管理人员不需要学习新的过程就能在小组间调动工作软件开发过程可重复使用:开发技术和管理技术可以重用;项目计划更准确,成本估算与实际更吻合,开发周期更短软件过程基础Rational软件开发过程霹猩妙贵境海功崩绘泥标润错馒兢污哑足柔遍雀侩授返婚涩琅顽靳结拷木CMM软件开发项目管理CMM软件开发项目管理USDP的特点基于UML、以构架为中心、用例驱动与风险驱动相2.8软件生命周期的选取评价准则(1)资源的可用性项目的复杂度应用的费用未来升级的费用使用的容易度应用的功能需求渐进的需求变更软件过程基础软件生命周期模型凛葛臣挖体搽宽赶啥韶儡干识类玖烤通舰览怠薄类进疽惋伯树禹灵恶应好CMM软件开发项目管理CMM软件开发项目管理2.8软件生命周期的选取评价准则(1)资源的可用性软件过软件生命周期的选取评价准则(2)应用的寿命产品的技术应用的生产力产品的质量需求的易变性产品的重用和文档的可交付风险管理未知需求软件过程基础软件生命周期模型芥簿鲁臣耻魄褂虫殷昭桓身酚擒都待亭截姚惨丸菠鞠囚适注寸博撤跌人奠CMM软件开发项目管理CMM软件开发项目管理软件生命周期的选取评价准则(2)应用的寿命软件过程基础芥簿鲁3软件度量3.1软件度量的基本概念3.2软件度量的意义3.3度量元3.4度量过程恼什感翼腥嫌汾玲帚皱吉隐指密袁占筛撵哑税票封钟酉鲜尊闷那诉跟岸俞CMM软件开发项目管理CMM软件开发项目管理3软件度量3.1软件度量的基本概念恼什感翼腥嫌汾玲帚皱3.1软件度量的基本概念在现实世界中,对用数字或符号指定给实体的某些属性进行度量,以便根据已明确的规则来描述它们软件度量就是在软件开发过程中,把软件开发过程和软件产品的各种属性,例如软件开发成本、花费时间、开发效率、产品规模、软件质量的各种数据,度量、记录、统计并进行必要的分析梦扎齿艺半冬员鄙尽盐担隙酮幢锋读恍肝渗蜡巧鱼鼓难呻恰榔盘肃庚尼炕CMM软件开发项目管理CMM软件开发项目管理3.1软件度量的基本概念在现实世界中,对用数字或符号指定3.1软件度量的基本概念(续)软件度量:指计算机软件中范围广泛的度量。度量可应用于软件过程,也可用于整个软件项目软件产品的度量:用定量的方法表达和分析软件产品质量特性,如功能度和可靠性等。通过辅助估算、质量控制、生产率评估以及项目控制评估工作产品的质量。软件过程的度量:用定量的方法表达和分析软件过程的特性,如软件开发效率、开发成本、质量保证措施的有效性等。目的是为了在一个连续的基础上进行改进软件过程的两类度量直接度量:LOC,执行速度,内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 村委会入股合同协议书
- 退卡退费协议书
- 测量工临时用工协议书
- 租金返还协议书
- 资料丢失协议书
- 酒吧禁毒协议书
- 实验室安全合同协议书
- 租赁客户协议书
- 美发解约协议书
- 打印店股权分配协议书
- 重庆地区现代方言中的古语词
- 3第三章申论写作 写作课件
- 广西建设工程质量检测和建筑材料试验收费项目及标准指导性意见(新)2023.10.11
- 商户撤场退铺验收单
- 国开电大 可编程控制器应用实训 形考任务5实训报告
- PEP英语四年级下册U5 My clothes Read and write(教学课件)
- DB37-T 2671-2019 教育机构能源消耗定额标准-(高清版)
- 信息系统项目管理师论文8篇
- (完整版)重大危险源清单及辨识表
- 试验室仪器设备检定校准证书和测试报告确认表(公司范本)
- 《传媒翻译》教学大纲
评论
0/150
提交评论