《软件项目管理.ppt》由会员分享,可在线阅读,更多相关《软件项目管理.ppt(77页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件项目管理授课教师:张莹电子邮件:n软件项目管理概述n人员组织与管理n软件项目规划 估算软件规模 估算软件工作量 估算开发时间 安排项目开发进度n软件风险管理n软件配置管理内容提纲软件项目的特点u软件产品不可见性u项目高度不确定性u软件过程的多变性u软件人员的高流动性软件项目管理的定义n为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动软件项目管理的“4P”模版模版结果结果参与参与过程(P Process)人员(P People)项目(P Project)产品(P Product)工具(Tools)自动化自动化思考:项目与过程之间的关
2、系?软件项目管理的基本活动n项目启动 确定项目范围、组建团队、建立项目环境n项目规划 确定项目活动、预算成本、制定进度n项目实施 监控项目执行、管理风险、控制变更n项目收尾 客户验收、安装软件、总结项目经验项目启动团队组建与管理n民主式组织结构n主程序员式组织结构n技术管理式组织结构n思考项目规划估算软件规模n代码行技术n功能点技术项目规划估算工作量u概述 关于软件规模(KLOC或FP)的函数 单位:人月(pm)不同类型的软件和开发环境需要不同的工作量估算模型u分类 静态单变量模型 动态多变量模型 COCOMO2模型举例:估算采用VB编写“工资管理系统”的工作量已知:1、“工资管理系统”的功能
3、点数=1382、假设fi=1,则求:“工资管理系统”的工作量是多少?步骤1:功能点数转换为代码行数步骤2:代入公式,计算结果E=11.47E=11.47(PMPM)项目规划估算开发时间n公式介绍T正常情况下的开发时间E工作量cd取值情况组织型c=2.5c=2.5d=0.38d=0.38应用软件半独立型c=2.5c=2.5d=0.35d=0.35实用程序、编译程序嵌入式c=2.5c=2.5d=0.32d=0.32实时处理程序、操作系统单位:月单位:月讨论:项目组总生产率和人员数量之间的关系?n成正比关系,即人多力量大n成反比关系,即人少节约成本n存在饱和值,即在一定人员数量下取得高效率项目组规模
4、和项目组总生产率的关系举例:假设项目组每人L=500LOC/月,项目组一名人 员至少与一个以上人员通信,每次通信造成效 率减少l=50LOC/月,求最佳的项目人数P=?答案向一个已经延期的项目增加人力,只会向一个已经延期的项目增加人力,只会使得它更加延期使得它更加延期 Brooks规律规律项目规划进度安排u定义适合当前项目的任务集合u识别出关键任务u跟踪关键任务的进展状况,以保证能及 时发现拖延进度的情况。制定进度计划nGantt图n工程网络Gantt图项目:矩形房屋的墙面翻新任务+时间人员工具刮旧漆第一、三面2小时/5人既可以刮旧漆,又可以刷新漆,还可以清理的熟练工人15名5把刮旧漆的刮板第
5、二、四面4小时/5人刷新漆第一、三面3小时/5人5把刷新漆的刷子第二、四面6小时/5人清理第一、三面1小时/5人5把清理的刮刀第二、四面2小时/5人讨论:如何设计上述项目任务的进度安排?n轮流法n流水线法Gantt图的缺点u不能显式地描绘各项作业彼此间的依赖关系u进度计划的关键部分不明确。u计划中有潜力的部分及潜力的大小不明确工程网络项目:矩形房屋的墙面翻新任务+时间人员工具刮旧漆第一、三面2小时/5人既可以刮旧漆,又可以刷新漆,还可以清理的熟练工人15名5把刮旧漆的刮板第二、四面4小时/5人刷新漆第一、三面3小时/5人5把刷新漆的刷子第二、四面6小时/5人清理第一、三面1小时/5人5把清理的
6、刮刀第二、四面2小时/5人“旧屋翻新”的工程网络图2431624326210000完整的工程网络图讨论:能否考虑撤销清洁的讨论:能否考虑撤销清洁的5 5个人员个人员刮漆刮漆刷漆刷漆清理清理T总共花去总共花去2323个小时个小时一面一面三面三面二面二面四面四面u什么是软件风险管理?通过主动而系统地对项目风险进行全过程的识别、分析和监控,最大程度降低风险对软件开发的影响软件风险管理u软件风险管理的过程软件风险管理风险识别风险识别风险分析风险分析风险规划风险规划风险监控风险监控确定项目有哪些风险,包括运用专家判断、确定项目有哪些风险,包括运用专家判断、头脑风暴分析风险产生原因,以确定风险头脑风暴分析
7、风险产生原因,以确定风险事件及其来源事件及其来源比较风险大小,确定风险性质比较风险大小,确定风险性质按照风险大小和性质,制定相应的措施去应按照风险大小和性质,制定相应的措施去应对和响应风险对和响应风险监督、检查风险事件的发生情况以及风险措监督、检查风险事件的发生情况以及风险措施的落实情况施的落实情况软件配置管理u定义 一种标识、组织和控制修改的技术。u基本概念软件配置项(SCI):为了配置管理而作为单独实体处理的制品或软件基线(Baseline):软件配置项经过正式复审而进入受控的状态版本(Version):记录软件配置项的演化过程软件配置库:记录与配置有关的所有信息配置管理活动SCI标识n便
8、于配置项的控制和管理,需要将配置项采用分层的方式进行命名。配置管理活动版本控制n加锁修改解锁配置管理活动版本控制n拷贝修改合并文件版本库文件版本库配置管理活动系统构建n把软件组件编译和连接成一个特定目标配置上的运行程序的过程配置管理活动变更控制变变更更机机制制变更控制机构变更控制机构变更控制规程变更控制规程变更请求变更请求变更许可变更许可变更实施变更实施能力成熟度模型CMMu目的:评价软件机构的软件过程能力成熟度 的标准u基本思想指导软件机构确定当前的过程成熟度识别出对过程改进起关键作用的问题明确软件过程改进的方向和策略通过集中开展与过程改进的方向和策略相一致的一组过程改进活动,软件机构的软件
9、过程能力得到循序渐进的提高。u初始级(1级):随意过程u可重复级(2级):可管理的软件过程u已定义级(3级):在2级基础上,定义执行的步骤标准u已管理级(4级):建立所有阶段性产品明确的度量指标u优化级(5级):通过过程执行的反馈信息持续改善下一步执行能力成熟度的5个等级人员(People)n软件人员的素质和组织管理是保证软件项目成功最为重要的因素n举例 微软公司的成功经验中,如何得到优秀员工、如何让员工发挥自己的能力是最值得我们研究的。返回产品(Product)n为了保证软件产品质量,降低风险,软件项目管理必须解决获取有效需求、管理需求变更的问题返回过程(Process)n软件过程管理中,需
10、要定义整个软件开发经历的活动、所采用的技术方法、每个阶段验收标准和制品等。n培训参与人员n在软件项目开发过程中,通过反馈,不断改进过程返回项目(Project)n项目管理者在有限资源的约束下,对软件项目的全过程进行计划、组织、指挥、协调、控制和评价,以实现项目的目标n举例 IBM公司项目经理的一天返回与“开发人员”的对比返回“项目”民主式组织结构n特点 成员之间关系平等 根据每个人的能力和经验适当分配 通过全体人员协商决定项目工作n优点 同等项目参与权,可以激发大家的创造力,利于攻克 难关 适用于小规模、能力强、有共同工作经历的团队n缺点 缺少权威人士,在意见分歧的情况下很难解决返回主程序员式
11、组织结构主程序员程序员程序员程序员秘书后备程序员主程序员式组织结构的优缺点n优点 实现了项目人员分工专业化 降低了管理的复杂性,提高了工作效率n缺点 现实社会中,缺乏同时具备高超管理才 能和技术才能的“全才”返回技术管理式组织结构1技术管理式组织结构优缺点n优点 将“主程序员”的职责专一化n缺点 “技术组长”与“行政组长”的职责划分不清 不能适应大规模的项目技术管理式组织结构2能否达到能否达到“集思广益集思广益”的效果?的效果?改进方案返回思 考1、编译原理课程实践n3-5人组成团队,实现scanner的功能n请为团队A的组织结构设计适当的方案?2、毕业设计实践过程中n教师提出项目的需求,学生
12、在教师指导下,按 时保质保量完成n请为这个团队B的组织结构设计适当的方案?团队A组建方案程序员程序员程序员程序员主程序员主程序员程序员程序员程序员程序员秘书后备程序员后备程序员团队B组建方案项目经理(教师)组长组长程序员 程序员 程序员程序员 程序员 程序员返回代码行与功能点的对照关系返回项目规模对生产率的影响项目规模(人)个人生产率(LOC/月)总生产率150050024509003400120043501400530015005.52751512625015007200140081501200返回轮流法的图示刮漆刮漆刷漆刷漆清理清理T第第1 1面面第第2 2面面总共花去总共花去3636个小
13、时个小时返回Gantt图流水线法的图示刮漆刮漆刷漆刷漆清理清理T总共花去总共花去2323个小时个小时一面一面三面三面二面二面四面四面返回Gantt图代码行技术代码行技术u依据:以往开发类似产品的经验和历史数据u输出:整个软件所需的源程序行数u计算方法:(1)多名有经验的软件工程师分别估计软件的最小规 模、最大规模和最可能规模(2)计算u简单方便u在历史数据可靠的情况下,可以很快的 估算出比较准确的软件规模代码行技术的优点代码行技术的缺点u源程序仅是软件配置的一个成分,用它的 规模代表整个软件的规模不太合理u这种方法不适用于非过程语言。返回功能点技术u定义 依据对软件信息域的基本特性和对软 件复
14、杂性的评估,估算出软件规模。单位:FP(功能点)适用于软件开发初期估算软件规模u外部输入:用户进行添加或修改数据的屏幕或表格外部输入:用户进行添加或修改数据的屏幕或表格u外部输出:软件为用户产生的输出屏幕或报表外部输出:软件为用户产生的输出屏幕或报表u外部查询:外部查询:软件以联机方式产生的独立查询软件以联机方式产生的独立查询u内部逻辑文件:软件修改或保存的逻辑记录集合内部逻辑文件:软件修改或保存的逻辑记录集合u外部接口:与其它系统进行信息交换或共享的文件外部接口:与其它系统进行信息交换或共享的文件信息域的基本特征信息域的基本特征估算未调整功能点估算未调整功能点UFP软件复杂度的评估计算n复杂
15、度调整参数复杂度调整参数F Fi i,取值,取值0.50.5 其中其中0=0=无影响、无影响、1=1=偶然、偶然、2=2=适中、适中、3=3=普通、普通、4=4=重要、重要、5=5=极重要极重要n复杂度计算公式估算软件功能点数估算软件功能点数u估算功能点的步骤估算功能点的步骤1UFP1UFP估算功能点的步骤估算功能点的步骤2TCP2TCP 估算复杂度因子估算复杂度因子FiFi 计算计算TCPTCP估算功能点的步骤估算功能点的步骤3FP3FP举例:估算“工资管理系统”的FPn系统生成不同员工的工资单,在屏幕显示,包括所有收入项、纳税扣除项,每个功能复杂度是“复杂”n系统产生7个报表,每个报表的复
16、杂度是“简单”n用户通过屏幕输入员工的基本信息和每月考勤情况,两个屏幕的复杂度是“复杂”n用户通过屏幕输入所得税信息,其复杂度是“中等”n系统提供20个独立查询,每个查询复杂度是“简单”n系统内部维护一个员工工资信息表,该文件的复杂度是“复杂”n系统引用了3个数据表,包括员工基本信息表、部门信息表和所在等级表,员工基本信息表的复杂度是“中等”,其余两个是“简单”步骤1:计算UFP特征数目+加权因子单项总和数目权值数目权值数目权值输入031426输出740527查询2030406表07010115接口2517010UFP=150步骤2:计算技术复杂因子TCP步骤3:计算FPu优点 功能点数与所用
17、的编程语言无关,比代码行技术更合理一些。u缺点 在判断信息域特性复杂级别和技术因素的影响程度时,存在着相当大的主观因素。估算功能点计算方法的优缺点返回静态单变量模型注意:注意:A,B,CA,B,C是经验常数是经验常数 单位单位人月人月面向KLOC的估算模型uWalston_Felix模型 E=5.2(KLOC)0.91uBailey_Basili模型 E=5.5+0.73(KLOC)1.16uBoehm简单模型 E=3.2(KLOC)1.05uDoty模型(在KLOC9时适用)E=5.288(KLOC)1.047uAlbrecht&Gaffney模型 E=-13.39+0.0545FPuMas
18、ton,Barnett和Mellichamp模型 E=585.7+15.12FP面向FP的估算模型返回动态多变量模型n公式介绍其中:单位其中:单位=人月或者人年人月或者人年 t=t=年或者月为单位的项目持续时间年或者月为单位的项目持续时间动态多变量模型参数介绍nB是特殊技术因子代码行数代码行数B B的取值的取值1 1KLOC=515KLOC=5150.160.162 2超过超过70 KLOC70 KLOC0.390.39典型值典型值P=2000P=2000电信、系统软件电信、系统软件P=10000P=10000应用系统应用系统P=28000P=28000nP是生产率参数返回COCOMO2模型n
19、公式介绍 类型abfi适用场合组织型3.03.01.051.05见见书书300300页页应用软件半独立型3.03.01.121.12实用程序、编译程序嵌入式3.03.01.21.2实时处理程序、操作系统返回风险识别举例n软件规模风险n商业影响风险n客户相关风险n软件过程风险n开发技术风险n开发环境风险n开发人员风险返回返回风险分析风险评估表风险风险类型类型概率概率影响影响规模估算可能非常低软件规模60%严重用户数量大大超出计划软件规模30%轻微复用程度低于计划软件规模70%严重最终用户抵制该计划商业影响40%轻微交付期限将被紧缩商业影响50%严重项目资金不到位客户相关40%灾难灾难用户改变需求软件规模80%严重技术达不到预期效果开发技术30%灾难灾难缺少对工具的培训开发环境80%轻微人员缺乏经验开发人员30%严重人员流动频繁开发人员60%严重返回返回风险规划举例n针对“风险评估表”中,“人员流动频繁”的风险,作为项目经理的你该怎么办?返回返回风险监控n在前面“人员流动频繁”例子中,作为项目经理的你应该监控哪些因素?返回返回