
第3章 软件过程的组织管理.ppt
53页第三章 软件过程的组织管理,软件过程组织管理的层次,软件个体软件开发人员、软件测试人员和项目协调人员等;软件团队完成某一个项目或任务所构成的组织单元;软件组织由多个软件团队组成,能够独立开展业务活动,为客户提供软件产品或服务,具有特定的目标PSP/TSP/CMM之间的关系,,,,PSP,TSP,CMM,PSP/TSP/CMM之间的关系,,,,,3.1 个体软件过程(PSP),个体软件过程(Personal Software Process,PSP)是一种个体级用于管理和改进软件工程师个人工作方式的持续改进过程PSP作用采用自底向上的方法改进软件过程;为个体软件过程改进提供有效途径;建立度量个体软件过程改进的基准3.1.1 PSP过程框架,3.1.2 PSP成熟度模型,3.1.3 个体度量过程(PSP0/ PSP0.1),时间记录用于记录工程师花费在PSP各阶段的时间,3.1.3 个体度量过程(PSP0/ PSP0.1),例:有两条时间日志记录,3.1.3 个体度量过程(PSP0/ PSP0.1),缺陷记录用于记录发现和修订的每个缺陷的相关信息,3.1.4 个体计划过程(PSP1/ PSP1.1),规模预测估计项目可能的代码行数采用代码行(LOC)和功能点(FP)度量软件规模规模度量方式LOCFPCOCOMO模型PROBE估算,LOC度量方式,0,100,200,300,400,500,600,700,800,900,1000,2000,3000,4000,5000,6000,7000,时间(min),C++ LOC,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,FP估算法,功能点方法以需求规格说明中已经得到确认的软件功能为依据,分析软件信息域特性和功能复杂性,估算软件规模,以功能点为单位。
信息域特性输入项数(Inp):用户向软件输入的项数;输出项数(Out):软件向用户输出的项数;查询数(Inq):查询是唯一的输入、输出组合;主文件数(Maf):逻辑主文件(数据的一个逻辑组合)的数目;外部接口数(Inf):机器可读的全部接口的数量FP估算法,功能复杂性 信息域特性系数值,FP估算法,估算功能点步骤计算未调整的功能点数UFPUFP=a1*Inp+a2*Out+a3*Inq+a4*Maf+a5*Inf计算技术复杂性因子TCF TCF=0.65+0.01*DI计算功能点数FPFP=UFP*TCF,COCOMO模型,3种类型的软件:组织型:相对规模较小、较简单的软件项目;嵌入型:开发工作紧密地与系统中的硬件、软件和运行限制联系在一起;半独立性:规模与复杂性均属中等COCOMO模型,基本的COCOMO模型MM=Cl*klocaMM表示开发工作量;kloc为交付的千代码行数;Cl是模型系数;a是模型指数中间的COCOMO模型fi是成本因素详细的COCOMO模型,PROBE估算(Proxy Based Estimation),概要设计代理识别估算并调整程序规模Plan Size=β0size+β1size(E)估算并调整资源Plan Time=β0time+β1time(E)计算预测区间,PROBE估算,估算给一套房子铺设地板的成本,不同类型房间及相对大小,由历史经验得到的房间相对大小矩阵,则房子的地面面积估计为:130+200+90*2+60+25+240+400房间充当代理,相对大小矩阵描述代理和面积的对应关系。
3.1.5 个体质量管理过程(PSP2/ PSP2.1),PSP质量观用缺陷管理代替质量管理高质量产品意味着组成软件产品的各组件基本无缺陷,测试消除缺陷的步骤:发现待测程序的一个异常行为;理解程序的工作方式;调试程序,找出出错的位置,确认出错原因;确定修改方案,修改缺陷;回归测试,确认修改有效评审消除缺陷的步骤:遵循评审者的逻辑理解程序流程;发现缺陷,了解缺陷的位置和原因;修正缺陷3.1.5 个体质量管理过程(PSP2/ PSP2.1),评审检查表是一份个性化的用于有效指导软件工程师开展评审活动的表格由软件工程师根据自身情况列出,表格内容与缺陷日志相关C++代码评审检查表Java代码评审检查表,3.1.5 个体质量管理过程(PSP2/ PSP2.1),质量指标PSP用于度量评审过程质量的数据Yield用以度量每个阶段在消除缺陷方面的效率Phase Yield表示某个阶段缺陷消除的效率Phase Yield=100*(某阶段消除的缺陷个数)/(某阶段注入缺陷个数+进入该阶段前遗留的缺陷个数),3.1.5 个体质量管理过程(PSP2/ PSP2.1),Phase Yield计算示例Process Yield表示在第一次编译之前消除缺陷的效率Process Yield=100*(第一次编译前消除的缺陷个数)/(第一次编译前注入的缺陷个数),3.1.5 个体质量管理过程(PSP2/ PSP2.1),A/FR(Appraisal to Failure Ratio,质量失效比)用以指导软件工程师合理安排评审和测试时间的指标A/FR=PSP质检成本/PSP失效成本质检成本是指评价软件产品,确定其质量状况所消耗的成本;PSP质检成本为设计评审时间和代码评审时间之和;失效成本是指分析失效现象、查找原因、做必要的修改所消耗的成本;PSP失效成本为编译时间和单元测试时间之和。
3.1.5 个体质量管理过程(PSP2/ PSP2.1),A/FR与单元测试缺陷数据示意图,0,1,2,3,4,20,40,60,80,100,120,140,A/FR,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,单元测试缺陷/KLOC,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,◆,PQI(Process Quality Index,过程质量指标)用以度量PSP过程的整体质量,PQI是5个过程质量的乘积设计质量:设计时间应该大于编码时间;设计评审质量:设计评审时间应该大于设计时间的50%;代码评审质量:代码评审时间应该大于编码时间的50%;代码质量:代码的编译缺陷密度应当小于10个/KLOC;程序质量:代码的单元测试缺陷密度应当小于 5个/KLOC3.1.5 个体质量管理过程(PSP2/ PSP2.1),评审速度(Review Rate)用以指导软件工程师开展有效评审的指标代码评审速度小于200 LOC/小时,文档评审速度小于4 Page/小时,已经可以保证软件工程师有效地发现足够多的缺陷。
DRL(Defect-Removal Leverage,缺陷消除效率比)度量不同缺陷消除手段消除缺陷的相对效率DRL=其他阶段每小时发现的缺陷数/测试阶段每小时发现的缺陷数,3.1.5 个体质量管理过程(PSP2/ PSP2.1),DRL计算示例一般情况下,设计评审发现缺陷的效率与单元测试相当,代码评审发现缺陷的效率高于单元测试3.1.5 个体质量管理过程(PSP2/ PSP2.1),3.1.6 个体循环过程(PSP3),PSP3主要为开发人员提供开发大型软件项目的方法;PSP3是一个不断循环的开发过程,每次循环中,包括设计、编码、编译和测试等过程都需严格执行;应用PSP3开发时,需采用增量式开发方法,要求每一个增量都具有很高的质量3.2 团队软件过程(TSP),团队软件过程(Team Software Process,TSP)指导团队成员如何有效地规划和管理项目开发任务TSP基本原则软件工程师尽可能地充分了解业务并能制定最好的计划;软件工程师在计划其工作时,要对计划作出承诺;要准确进行项目跟踪,需要详细计划和精确数据;要最大限度地缩短周期时间,软件工程师必须平衡工作量;要最大限度地提高生产率,必须先聚焦质量。
3.2 团队软件过程(TSP),PSP个人技能培养,TSP团队组建过程,TSP团队工作过程,个体过程度量过程规范估算与计划质量管理,项目目标团队角色团队过程项目计划计划平衡,团队交流团队协作状态跟踪风险管理进度报告,团队成员,团队规范,团队管理,自主团队,,,,,,,3.2 团队软件过程(TSP),TSP解决的主要问题:如何规划和管理一个软件开发团队如何制订团队工作所需要的策略如何定义和确定团队中每个角色的职责如何为团队中每个成员分配不同的角色团队及其不同角色在整个开发过程的不同阶段应该做些什么,如何更好地发挥作用在如何协调团队成员之间的任务,并跟踪报告团队整体的任务进度采用哪些方法提高团队的协作能力3.2 团队软件过程(TSP),TSP的实施手法在承担工作之前先计划工作;使用已经定义的过程;度量并跟踪开发的时间,工作量和缺陷;计划、度量并跟踪项目质量;从项目一开始就强调质量;分析各项工作并将分析结果用于过程改进3.2.1 TSP结构,TSP由分阶段的众多循环构成TSP遵循交互性原则,每一阶段和循环都能在上一阶段或循环的基础上重新规划TSP 过程流,3.2.2 TSP启动过程,整个启动流程共包含了9个启动会议。
当流程结束时,小组将创建详细的工作计划,并形成一个团结一致的、高效的团队TSP小组启动流程,3.2.3 TSP工作流程,3.2.3 TSP中人的管理,软件项目中人的特征高知识更新性;高主观经验性;高自主性;主观能动性;效率波动性;资源消耗性;不可存储性3.2.3 TSP中人的管理,激励机制内在激励因素:如成就感、责任、胜任工作所产生的愉快等;马洛斯的需求层次论匹兹伯格的双因素理论外在激励因素:如薪水、晋升、良好的工作环境等;弗罗姆的期望理论亚当斯的公平等价理论,3.2.3 TSP中人的管理,马斯洛的需要层次理论,王力是一位由部队转业的项目经理,他觉得理想的动力是巨大的,他觉得他过去就是在追求理想的动力下努力工作的他在管理中鼓励员工树立远大理想,常用一些英雄人物如铁人王进喜等等教育员工,然而收效并没有预想的大,你能说出为什么吗?,3.2.3 TSP中人的管理,匹兹伯格的双因素理论保健因素是指那些与人们的不满情绪有关的因素;激励因素是指那些与人们的满意情绪有关的因素;双因素理论认为:保健因素如果不满足,会产生不满意的情况;保健因素即使满足了,也不能激励员工更卖力地干活3.2.3 TSP中人的管理,杨森这几天一直很焦虑,因为他觉得项目组成员的工作积极性并没有期望的那样高。
他觉得现在项目组成员的工资、奖金及工作环境在同行业中算得上第一流了,但是员工并不很满意你能为他出些“点子”吗?A企业因一客户拖欠货款而周转不灵,但利用多种方法也没催回领导认为“重奖之下必有勇夫”,因此设重奖奖励能催回货款的人,但反应寥寥无几为什么?,3.2.3 TSP中人的管理,佛罗姆的期望理论弗罗姆认为,人们之所以采取某种行为,是因为他觉得这种行为可以有把握达到某种结果,并且这种结果对他有足够的价值用公式表示期望理论就是:动机激励水平M=效价V(效果的可能性)*期望值E(效果的价值),3.2.3 TSP中人的管理,亚当斯的公平理论公平等价理论认为,员工所负的责任、权职和员工所获得的薪酬、晋升等因素所造成员工的公平感对员工的激励起着重要作用结论:要使组织成员保持较高的工作热情,必须使工作报酬公平合理,使组织的成员感到组织的分配是公正的开发人员的激励因素,成就感发展机遇工作乐趣个人生活成为技术主管的机会领先同事间的人际关系,受认可程度工资责任感工作保障公司政策和经营工作条件地位,。
