教学课件PPT软件项目管理

上传人:pu****.1 文档编号:569524040 上传时间:2024-07-30 格式:PPT 页数:75 大小:947.54KB
返回 下载 相关 举报
教学课件PPT软件项目管理_第1页
第1页 / 共75页
教学课件PPT软件项目管理_第2页
第2页 / 共75页
教学课件PPT软件项目管理_第3页
第3页 / 共75页
教学课件PPT软件项目管理_第4页
第4页 / 共75页
教学课件PPT软件项目管理_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《教学课件PPT软件项目管理》由会员分享,可在线阅读,更多相关《教学课件PPT软件项目管理(75页珍藏版)》请在金锄头文库上搜索。

1、第三章 软件项目管理刘 燕n n 软件项目管理概念:为了使软件项目能够按预软件项目管理概念:为了使软件项目能够按预定的成本、进度、质量顺利完成,而对成本、人员、定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。进度、质量、风险等进行分析和管理的活动。 软软件件产产品品与与其其他他任任何何产产业业的的产产品品不不同同,它它是是非非物物质质性性的的产产品品,是是知知识识密密集集型型的的逻逻辑辑思思维维产产品品。由由于于软软件件的的这这种种独独特特性性,使使软软件件项项目目管管理理过过程程更更加加复复杂和难以控制。杂和难以控制。3.1 软件项目管理概述n n3.1

2、.1 3.1.1 软件项目的特征软件项目的特征_”_”复杂和易变复杂和易变“ “n n(1 1)软件产品的不可见性:抽象的、逻辑的。)软件产品的不可见性:抽象的、逻辑的。n n(2 2)项目的高度不确定性:复杂的、管理者难以预见所)项目的高度不确定性:复杂的、管理者难以预见所有的问题。有的问题。n n(3 3)软件过程的多变化性:软件各工作环节是一个迭代)软件过程的多变化性:软件各工作环节是一个迭代和增量发展的动态过程。和增量发展的动态过程。n n(4 4)软件人员的高流动性:项目核心人才流动性高。)软件人员的高流动性:项目核心人才流动性高。n软件项目管理的主要特点是:软件项目管理的主要特点是

3、:n 1、软件项目管理涉及的范围广,涉及到软件开、软件项目管理涉及的范围广,涉及到软件开发进度计划、人员配置与组织、项目跟踪与控制发进度计划、人员配置与组织、项目跟踪与控制等。等。 n 2、应用到多方面的综合知识,特别是要涉及到、应用到多方面的综合知识,特别是要涉及到社会的因素、精神的因素、认知的因素,这比技社会的因素、精神的因素、认知的因素,这比技术问题复杂得多。术问题复杂得多。n 3、人员配备情况复杂多变,组织管理难度大。、人员配备情况复杂多变,组织管理难度大。n 4、管理技术的基础是实践,为取得管理技术成、管理技术的基础是实践,为取得管理技术成果必须反复实践。果必须反复实践。3.1.2软

4、件项目管理的“4P” (1 1)人员:人员:人员:人员:人员的素质和组织管理是保证项目成功的重要因素。人员的素质和组织管理是保证项目成功的重要因素。人员的素质和组织管理是保证项目成功的重要因素。人员的素质和组织管理是保证项目成功的重要因素。涉及人员的选择、组织、分工与管理。涉及人员的选择、组织、分工与管理。涉及人员的选择、组织、分工与管理。涉及人员的选择、组织、分工与管理。 (2 2)产品:产品:产品:产品:软件的目标是在预定的时间和成本内开发出满足客软件的目标是在预定的时间和成本内开发出满足客软件的目标是在预定的时间和成本内开发出满足客软件的目标是在预定的时间和成本内开发出满足客户需求的产品

5、,质量问题主要发生在需求阶段,对问题不确定、户需求的产品,质量问题主要发生在需求阶段,对问题不确定、户需求的产品,质量问题主要发生在需求阶段,对问题不确定、户需求的产品,质量问题主要发生在需求阶段,对问题不确定、描述不准确。主要是需求分析和需求变更的管理。描述不准确。主要是需求分析和需求变更的管理。描述不准确。主要是需求分析和需求变更的管理。描述不准确。主要是需求分析和需求变更的管理。 (3 3)过程:过程:过程:过程:将软件开发和维护所用到的技术、方法、活动和工将软件开发和维护所用到的技术、方法、活动和工将软件开发和维护所用到的技术、方法、活动和工将软件开发和维护所用到的技术、方法、活动和工

6、具有机地结合起来。具有机地结合起来。具有机地结合起来。具有机地结合起来。 (4 4)项目:项目:项目:项目:在于规划和跟踪控制。在于规划和跟踪控制。在于规划和跟踪控制。在于规划和跟踪控制。 在启动和规划阶段:确定项目范围和需求,以此为基础进在启动和规划阶段:确定项目范围和需求,以此为基础进在启动和规划阶段:确定项目范围和需求,以此为基础进在启动和规划阶段:确定项目范围和需求,以此为基础进行项目规划、估算和资源分配、制定计划。行项目规划、估算和资源分配、制定计划。行项目规划、估算和资源分配、制定计划。行项目规划、估算和资源分配、制定计划。 过程执行:关注项目进展和变更控制。过程执行:关注项目进展

7、和变更控制。过程执行:关注项目进展和变更控制。过程执行:关注项目进展和变更控制。过程定义过程定义过程改进过程改进项目规划项目规划项目监控项目实施项目实施软件过程管理软件过程管理软件项目管理软件项目管理3.1.3软件项目管理活动n n软件项目管理活动包括项目启动、项目规划、项目实施、项目收尾n n(1)项目启动 与客户一起确定项目范围 组建项目团队 建立项目环境 n n开发小组的组织有以下原则:开发小组的组织有以下原则:开发小组的组织有以下原则:开发小组的组织有以下原则:n 1 1、软件开发小组的规模不宜太大,、软件开发小组的规模不宜太大,、软件开发小组的规模不宜太大,、软件开发小组的规模不宜太

8、大,人数不能太多,一般人数不能太多,一般3-5人左右为宜。人左右为宜。n 2 2、切忌在开发过程中增加人员,、切忌在开发过程中增加人员,、切忌在开发过程中增加人员,、切忌在开发过程中增加人员,这将因增加人员之间的联这将因增加人员之间的联系而降低效率。系而降低效率。n例:设一开发小组有例:设一开发小组有4个软件工程师(图个软件工程师(图a),开发效率为),开发效率为5000行行/年,共有年,共有6条通信路径,每条路径降低生产率条通信路径,每条路径降低生产率250行行/年,则小组生产率为:年,则小组生产率为:n 50004250618500(行(行/年)年)n如为了加快进度,新增加如为了加快进度,

9、新增加2人(图人(图b),每人效率为),每人效率为840行行/年,通信路径增加到年,通信路径增加到15条,此时的小组生产率为:条,此时的小组生产率为:n2000084022501517930 (行(行/年)年)n 即新增加人,并未提高生产率。即新增加人,并未提高生产率。 图a 图bn n(2)项目规划 确定项目活动 预算项目成本 指定进度计划 软件测试软件测试 编编 码码 详细设计详细设计 总体设计总体设计 需求分析需求分析1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 任务任务月份月份进度表进度表0 0101020203030404

10、0505060607070一月一月二月二月三月三月四月四月五月五月六月六月进度表进度表n n(3 3)项目实施)项目实施n n 监控项目执行:下图为任务之间的依赖关系监控项目执行:下图为任务之间的依赖关系 1 12 20 03 37 78 84 45 56 6周任务5 5 10 15 2010 15 20A1A1A2A2A3A3B1B1B2B2E1E1E2E2C CD1D1D2D2D3D3 网状时标图n n n n 管理项目风险:n n 控制项目变更:n n(4)项目收尾 客户验收项目: 安装培训软件: 总结项目经验:3.2 人员组织与管理1、最好的和最坏的程序员的比较:生产效率:10:1运行

11、速度和空间:5:12、在软件的开发过程中,人员的选择、分配和组织直接影响着项目的效率、进度、过程管理和产品的质量。软件项目组的三种常见管理模式n n3.2.1 软件项目组织n n1、民主式组织结构:组长和成员完全平等。民主式组织结构:组长和成员完全平等。n n优点:有利于每个成员发挥创造力。优点:有利于每个成员发挥创造力。n n缺点:领导缺乏权威,分歧不易同意,不缺点:领导缺乏权威,分歧不易同意,不适合大规模的软件开发。适合大规模的软件开发。n n2 2、主程序员式组织结构、主程序员式组织结构、主程序员式组织结构、主程序员式组织结构n n 由一个人全面负责(主程序员),其他人员给予必要的支由一

12、个人全面负责(主程序员),其他人员给予必要的支由一个人全面负责(主程序员),其他人员给予必要的支由一个人全面负责(主程序员),其他人员给予必要的支持,以便提高效率。持,以便提高效率。持,以便提高效率。持,以便提高效率。n n主程序员:软件的体系结构、关键部分的详细设计、指导其主程序员:软件的体系结构、关键部分的详细设计、指导其主程序员:软件的体系结构、关键部分的详细设计、指导其主程序员:软件的体系结构、关键部分的详细设计、指导其他人员的工作。他人员的工作。他人员的工作。他人员的工作。n n后备程序员:密切协助主程序员工作,并负责外事工作。后备程序员:密切协助主程序员工作,并负责外事工作。后备程

13、序员:密切协助主程序员工作,并负责外事工作。后备程序员:密切协助主程序员工作,并负责外事工作。n n秘书:完成事务性工作秘书:完成事务性工作秘书:完成事务性工作秘书:完成事务性工作n n优点:优点:优点:优点:1 1、专业化分工明确;、专业化分工明确;、专业化分工明确;、专业化分工明确;n n 2 2、降低了管理的复杂性、降低了管理的复杂性、降低了管理的复杂性、降低了管理的复杂性秘书秘书主程序员主程序员后备主程序员后备主程序员程序员程序员程序员程序员程序员程序员n n3 3、技术管理式组织结构、技术管理式组织结构、技术管理式组织结构、技术管理式组织结构n n是民主式和主程序员式两种方式的结合是

14、民主式和主程序员式两种方式的结合是民主式和主程序员式两种方式的结合是民主式和主程序员式两种方式的结合n n1 1、技术组长:负责小组的技术决策、代码审查;、技术组长:负责小组的技术决策、代码审查;、技术组长:负责小组的技术决策、代码审查;、技术组长:负责小组的技术决策、代码审查;n n2 2、管理组长:负责非技术性事物的管理工作,对、管理组长:负责非技术性事物的管理工作,对、管理组长:负责非技术性事物的管理工作,对、管理组长:负责非技术性事物的管理工作,对成员的业绩进行评价成员的业绩进行评价成员的业绩进行评价成员的业绩进行评价n n缺点:如果权限划分不清,会导致职责混乱缺点:如果权限划分不清,

15、会导致职责混乱缺点:如果权限划分不清,会导致职责混乱缺点:如果权限划分不清,会导致职责混乱技术组长技术组长管理组长管理组长程序员程序员程序员程序员程序员程序员开发大型软件的层次式结构 项目管理 组长 组长 组长程序员 程序员 程序员 程序员 程序员 程序员 3.3 项目沟通管理1、软件的组织涉及领域专家、用户、分析人员、软件的组织涉及领域专家、用户、分析人员、设计人员、程序员、测试人员和管理人员等,各设计人员、程序员、测试人员和管理人员等,各自承担不同的工作并协调完成整个任务。自承担不同的工作并协调完成整个任务。2、项目沟通是软件工程中最关键和最耗时的工、项目沟通是软件工程中最关键和最耗时的工

16、作。大多数项目失败的主要原因在于项目内部或作。大多数项目失败的主要原因在于项目内部或外部沟通不畅、误解和遗漏。外部沟通不畅、误解和遗漏。3.3.1 3.3.1 项目沟通复杂性项目沟通复杂性 沟通太少和太多都会严重影响开发人员的工作效率沟通太少和太多都会严重影响开发人员的工作效率沟通太少和太多都会严重影响开发人员的工作效率沟通太少和太多都会严重影响开发人员的工作效率3.3.23.3.2项目沟通方式项目沟通方式项目沟通方式项目沟通方式n n1.1.直接交谈:基于时机的非正式沟通由,由事件驱动。节直接交谈:基于时机的非正式沟通由,由事件驱动。节直接交谈:基于时机的非正式沟通由,由事件驱动。节直接交谈

17、:基于时机的非正式沟通由,由事件驱动。节省时间;不能有太多的人参加,也没有记录。省时间;不能有太多的人参加,也没有记录。省时间;不能有太多的人参加,也没有记录。省时间;不能有太多的人参加,也没有记录。n n2.2.电话交谈:直接交谈的一种方式,不受地点限制,但受电话交谈:直接交谈的一种方式,不受地点限制,但受电话交谈:直接交谈的一种方式,不受地点限制,但受电话交谈:直接交谈的一种方式,不受地点限制,但受同一时间限制同一时间限制同一时间限制同一时间限制n n3.3.电子邮件:和电话相似,但不受时间限制,但是行文可电子邮件:和电话相似,但不受时间限制,但是行文可电子邮件:和电话相似,但不受时间限制

18、,但是行文可电子邮件:和电话相似,但不受时间限制,但是行文可能让人不能正确理解。能让人不能正确理解。能让人不能正确理解。能让人不能正确理解。n n4.4.会议:受时间和地点的限制,并且有详细的准备工作,会议:受时间和地点的限制,并且有详细的准备工作,会议:受时间和地点的限制,并且有详细的准备工作,会议:受时间和地点的限制,并且有详细的准备工作,参与的人员可以是多位。参与的人员可以是多位。参与的人员可以是多位。参与的人员可以是多位。n n常见的会议:项目启动会议常见的会议:项目启动会议常见的会议:项目启动会议常见的会议:项目启动会议n n 阶段评审会议阶段评审会议阶段评审会议阶段评审会议n n

19、解决问题会议解决问题会议解决问题会议解决问题会议n n 项目验收会议项目验收会议项目验收会议项目验收会议n n5.5.项目网站:保持组间交流,对外发布信息:项目文档的项目网站:保持组间交流,对外发布信息:项目文档的项目网站:保持组间交流,对外发布信息:项目文档的项目网站:保持组间交流,对外发布信息:项目文档的最新版本、进展动态、论坛最新版本、进展动态、论坛最新版本、进展动态、论坛最新版本、进展动态、论坛n n6.6.书面报告:表达准确、完整适合复杂性高、逻辑性强的书面报告:表达准确、完整适合复杂性高、逻辑性强的书面报告:表达准确、完整适合复杂性高、逻辑性强的书面报告:表达准确、完整适合复杂性高

20、、逻辑性强的信息沟通。但花费时间长、缺乏信息反馈。信息沟通。但花费时间长、缺乏信息反馈。信息沟通。但花费时间长、缺乏信息反馈。信息沟通。但花费时间长、缺乏信息反馈。3.3.3. 项目沟通活动n n项目管理者需要规划沟通的内容、方式、渠道及物质项目管理者需要规划沟通的内容、方式、渠道及物质项目管理者需要规划沟通的内容、方式、渠道及物质项目管理者需要规划沟通的内容、方式、渠道及物质条件条件条件条件n n1.1.规划项目沟通:规划项目沟通:规划项目沟通:规划项目沟通:n n(1 1)项目组内部的信息交流活动)项目组内部的信息交流活动)项目组内部的信息交流活动)项目组内部的信息交流活动n n 状态检查

21、:组内讨论:需求阐明:项目变更状态检查:组内讨论:需求阐明:项目变更状态检查:组内讨论:需求阐明:项目变更状态检查:组内讨论:需求阐明:项目变更n n(2 2)项目组之间的信息交流活动项目组之间的信息交流活动项目组之间的信息交流活动项目组之间的信息交流活动n n 客户评审、项目评审、版本发布、需求阐明、项目变更、问题讨客户评审、项目评审、版本发布、需求阐明、项目变更、问题讨客户评审、项目评审、版本发布、需求阐明、项目变更、问题讨客户评审、项目评审、版本发布、需求阐明、项目变更、问题讨论。论。论。论。n n2.2.建立基础设施:项目管理者建立的信息系统建立基础设施:项目管理者建立的信息系统建立基

22、础设施:项目管理者建立的信息系统建立基础设施:项目管理者建立的信息系统n n以网站为例可实现:以网站为例可实现:以网站为例可实现:以网站为例可实现:n n项目公告、问题论坛、项目文档。项目公告、问题论坛、项目文档。项目公告、问题论坛、项目文档。项目公告、问题论坛、项目文档。n n3.3.实施阶段性评审实施阶段性评审实施阶段性评审实施阶段性评审n n(1 1)客户参与的评审活动客户参与的评审活动客户参与的评审活动客户参与的评审活动 需求文档发布及系统验收交付需求文档发布及系统验收交付需求文档发布及系统验收交付需求文档发布及系统验收交付n n(2 2)项目组进行的评审活动:贯穿软件过程项目组进行的

23、评审活动:贯穿软件过程项目组进行的评审活动:贯穿软件过程项目组进行的评审活动:贯穿软件过程n n4.4.每周组织小组会议每周组织小组会议每周组织小组会议每周组织小组会议n n 主要解决各项任务与计划中突出的项目中未解决的和有偏差的问主要解决各项任务与计划中突出的项目中未解决的和有偏差的问主要解决各项任务与计划中突出的项目中未解决的和有偏差的问主要解决各项任务与计划中突出的项目中未解决的和有偏差的问题。题。题。题。3.4软件项目规划软件项目规划软件项目规划包括以下几个步骤:n n确定项目的范围确定项目的范围 ,最终产品、开发时间、成本、质量标准。,最终产品、开发时间、成本、质量标准。n n分解和

24、定义项目的各项活动和任务。分解和定义项目的各项活动和任务。 n n估算项目规模和所需资源估算项目规模和所需资源 n n制定合理的工作计划制定合理的工作计划3.4.1软件规模估算1 1 1 1 代码行度量技术代码行度量技术代码行度量技术代码行度量技术 以以以以LOCLOCLOCLOC(Lines of Code,Lines of Code,Lines of Code,Lines of Code,代码行)表示的软件规模是最基代码行)表示的软件规模是最基代码行)表示的软件规模是最基代码行)表示的软件规模是最基 本的度量,它直接关系到软件的成本、开发工作量和完成本的度量,它直接关系到软件的成本、开发工

25、作量和完成本的度量,它直接关系到软件的成本、开发工作量和完成本的度量,它直接关系到软件的成本、开发工作量和完成时间。软件质量通常以每千行代码中存在的错误数来衡量。时间。软件质量通常以每千行代码中存在的错误数来衡量。时间。软件质量通常以每千行代码中存在的错误数来衡量。时间。软件质量通常以每千行代码中存在的错误数来衡量。 例:项目例:项目例:项目例:项目A01A01A01A01 工作量:工作量:工作量:工作量:13131313(人月)(人月)(人月)(人月) 代码规模(代码规模(代码规模(代码规模(KLOCKLOCKLOCKLOC):):):):9 9 9 9 成本(元成本(元成本(元成本(元/L

26、OC/LOC/LOC/LOC):12:12:12:12 文档页数:文档页数:文档页数:文档页数:240240240240 错误数:错误数:错误数:错误数:20202020 人数:人数:人数:人数:4 4 4 4L=(a+4m+b)/6对于每一个项目,可以根据上面列出的基本数据进行对于每一个项目,可以根据上面列出的基本数据进行对于每一个项目,可以根据上面列出的基本数据进行对于每一个项目,可以根据上面列出的基本数据进行一些简单的面向代码行的生产率和质量的度量。一些简单的面向代码行的生产率和质量的度量。一些简单的面向代码行的生产率和质量的度量。一些简单的面向代码行的生产率和质量的度量。 例:软件成本

27、例:软件成本例:软件成本例:软件成本( (元元元元)=LOC)=LOC(行)(行)(行)(行) 每行代码的成本(元每行代码的成本(元每行代码的成本(元每行代码的成本(元/ /行)行)行)行) 开发工作量开发工作量开发工作量开发工作量( (人人人人)=LOC()=LOC(行行行行)/ )/每人月开发的代码行每人月开发的代码行每人月开发的代码行每人月开发的代码行( (行行行行/ /人月人月人月人月) ) 有些项目可计算出平均值:有些项目可计算出平均值:有些项目可计算出平均值:有些项目可计算出平均值: 1 1、生产率、生产率、生产率、生产率=KLOC/PM=KLOC/PM(人月)(人月)(人月)(人

28、月) 2 2、单位成本、单位成本、单位成本、单位成本( (每行代码的平均成本):每行代码的平均成本):每行代码的平均成本):每行代码的平均成本): C=S(C=S(总成本总成本总成本总成本)/KLOC)/KLOC 3 3、代码出错率:、代码出错率:、代码出错率:、代码出错率:EQR=N(EQR=N(错误数错误数错误数错误数)/ KLOC)/ KLOC 面向代码行度量技术尽管为很多软件企业采用,但其也面向代码行度量技术尽管为很多软件企业采用,但其也面向代码行度量技术尽管为很多软件企业采用,但其也面向代码行度量技术尽管为很多软件企业采用,但其也有明显缺点。有明显缺点。有明显缺点。有明显缺点。 2

29、2 功能点技术功能点技术功能点技术功能点技术 本方法针对程序的本方法针对程序的本方法针对程序的本方法针对程序的“功能性功能性功能性功能性”,其依据在于,其依据在于,其依据在于,其依据在于,任何软件是由若干功能组成的,每种功能可划分任何软件是由若干功能组成的,每种功能可划分任何软件是由若干功能组成的,每种功能可划分任何软件是由若干功能组成的,每种功能可划分为复杂程度不同的若干功能点,利用功能的一些为复杂程度不同的若干功能点,利用功能的一些为复杂程度不同的若干功能点,利用功能的一些为复杂程度不同的若干功能点,利用功能的一些计算度量和功能复杂性估计的经验关系式,得出计算度量和功能复杂性估计的经验关系

30、式,得出计算度量和功能复杂性估计的经验关系式,得出计算度量和功能复杂性估计的经验关系式,得出功能点度量数据,以代替原来常用的功能点度量数据,以代替原来常用的功能点度量数据,以代替原来常用的功能点度量数据,以代替原来常用的LOCLOCLOCLOC度量法。度量法。度量法。度量法。 根据软件功能的类型和特征,可把功能划分为五根据软件功能的类型和特征,可把功能划分为五根据软件功能的类型和特征,可把功能划分为五根据软件功能的类型和特征,可把功能划分为五种类型:种类型:种类型:种类型:用户输入,用户输出。用户查询,主文件数,外部用户输入,用户输出。用户查询,主文件数,外部用户输入,用户输出。用户查询,主文

31、件数,外部用户输入,用户输出。用户查询,主文件数,外部处理。处理。处理。处理。n n1 1、外部出入:用户进行添加或修改数据的屏幕、表格,、外部出入:用户进行添加或修改数据的屏幕、表格,、外部出入:用户进行添加或修改数据的屏幕、表格,、外部出入:用户进行添加或修改数据的屏幕、表格,但不包括查询。但不包括查询。但不包括查询。但不包括查询。n n2 2、外部输出:软件为用户产生的屏幕、表格,但不包括、外部输出:软件为用户产生的屏幕、表格,但不包括、外部输出:软件为用户产生的屏幕、表格,但不包括、外部输出:软件为用户产生的屏幕、表格,但不包括错误信息。错误信息。错误信息。错误信息。n n3 3、外部

32、查询:软件以联机的方式产生的独立查询。、外部查询:软件以联机的方式产生的独立查询。、外部查询:软件以联机的方式产生的独立查询。、外部查询:软件以联机的方式产生的独立查询。n n4 4、内部逻辑文件:软件修改或保存的逻辑记录集合,可、内部逻辑文件:软件修改或保存的逻辑记录集合,可、内部逻辑文件:软件修改或保存的逻辑记录集合,可、内部逻辑文件:软件修改或保存的逻辑记录集合,可以是关系数据库的表或独立数据文件。以是关系数据库的表或独立数据文件。以是关系数据库的表或独立数据文件。以是关系数据库的表或独立数据文件。n n5 5、外部接口、外部接口、外部接口、外部接口 与其他系统进行信息交换或共享的文档。

33、与其他系统进行信息交换或共享的文档。与其他系统进行信息交换或共享的文档。与其他系统进行信息交换或共享的文档。五类功能点按其复杂程度可划分为简单、中等、复杂五类功能点按其复杂程度可划分为简单、中等、复杂3 3种,表种,表3-23-2给出的功能点加权计算表。给出的功能点加权计算表。 表表3-23-2功能点加权计算表功能点加权计算表 软件功能点数加权计算方法如下:以类型“用户输入”为例,设功能点按等级分类计数分别为:简单为Inp1个,中等为Inp2 个,复杂为Inp3个,则:功能点计数功能点计数功能点计数功能点计数 InpInpInpInp=Inp1+Inp2+Inp3=Inp1+Inp2+Inp3

34、=Inp1+Inp2+Inp3=Inp1+Inp2+Inp3分类加权计算合计数分类加权计算合计数分类加权计算合计数分类加权计算合计数 Inp_FPInp_FPInp_FPInp_FP=Inp1=Inp1=Inp1=Inp1 3+Inp23+Inp23+Inp23+Inp2 4+Inp34+Inp34+Inp34+Inp3 6 6 6 6软件加权功能点数量为:软件加权功能点数量为:软件加权功能点数量为:软件加权功能点数量为: UFP=UFP=Inp_FP+Out_FP+Inq_FP+Fil_FP+Int_FPInp_FP+Out_FP+Inq_FP+Fil_FP+Int_FP 用用用用TCFTC

35、FTCFTCF(技术复杂性因子)来修正、调节功能点的计算方法。(技术复杂性因子)来修正、调节功能点的计算方法。(技术复杂性因子)来修正、调节功能点的计算方法。(技术复杂性因子)来修正、调节功能点的计算方法。 FPFPFPFP(调节后)(调节后)(调节后)(调节后)=UFP=UFP=UFP=UFP TCFTCFTCFTCF 其中:其中:其中:其中:TCF=0.65+0.01TCF=0.65+0.01TCF=0.65+0.01TCF=0.65+0.01 Fi Fi Fi Fi (I=1I=1I=1I=114141414) FiFiFiFi取值见表取值见表取值见表取值见表3-33-33-33-3。当

36、由公式计算出当由公式计算出当由公式计算出当由公式计算出FPFPFPFP修正值后,就可像修正值后,就可像修正值后,就可像修正值后,就可像 LOCLOCLOCLOC方式一样,计算出项目软件的其他属性,例:生产率功方式一样,计算出项目软件的其他属性,例:生产率功方式一样,计算出项目软件的其他属性,例:生产率功方式一样,计算出项目软件的其他属性,例:生产率功能点成本、质量等。能点成本、质量等。能点成本、质量等。能点成本、质量等。3.4.2 软件成本估算n n 软件成本(开发时间和工作量)估算的一般方法包括软件成本(开发时间和工作量)估算的一般方法包括软件成本(开发时间和工作量)估算的一般方法包括软件成

37、本(开发时间和工作量)估算的一般方法包括专家判断、类比估算、经验模型。专家判断、类比估算、经验模型。专家判断、类比估算、经验模型。专家判断、类比估算、经验模型。n n方式:自上而下:由总体目标逐级划分到单元。方式:自上而下:由总体目标逐级划分到单元。方式:自上而下:由总体目标逐级划分到单元。方式:自上而下:由总体目标逐级划分到单元。n n 自下而上:由单元逐级汇总到总体目标。自下而上:由单元逐级汇总到总体目标。自下而上:由单元逐级汇总到总体目标。自下而上:由单元逐级汇总到总体目标。n n1 1、专家判断:、专家判断:、专家判断:、专家判断:一个或多个专家对项目成本作出估算。要求专一个或多个专家

38、对项目成本作出估算。要求专家具有专门的知识和丰富的经验。家具有专门的知识和丰富的经验。n nDelphifDelphif方法的步骤:方法的步骤:n n1 1)项目协调人向每个专家提供软件规模和估算表格;)项目协调人向每个专家提供软件规模和估算表格;)项目协调人向每个专家提供软件规模和估算表格;)项目协调人向每个专家提供软件规模和估算表格;n n2 2)项目协调人召集专家小组会讨论与规模相关的因素;)项目协调人召集专家小组会讨论与规模相关的因素;)项目协调人召集专家小组会讨论与规模相关的因素;)项目协调人召集专家小组会讨论与规模相关的因素;n n3 3)每个专家匿名填写成本估算表格;)每个专家匿

39、名填写成本估算表格;)每个专家匿名填写成本估算表格;)每个专家匿名填写成本估算表格;n n4 4)项目协调人整理出一个估算总结,并将其反馈给专家;)项目协调人整理出一个估算总结,并将其反馈给专家;)项目协调人整理出一个估算总结,并将其反馈给专家;)项目协调人整理出一个估算总结,并将其反馈给专家;n n5 5)项目协调人召集专家小组讨论较大的估算差异;)项目协调人召集专家小组讨论较大的估算差异;)项目协调人召集专家小组讨论较大的估算差异;)项目协调人召集专家小组讨论较大的估算差异;n n6 6)专家复查估算总结,并在估算表上提交另一个匿名估算;)专家复查估算总结,并在估算表上提交另一个匿名估算;

40、)专家复查估算总结,并在估算表上提交另一个匿名估算;)专家复查估算总结,并在估算表上提交另一个匿名估算;n n7 7)重复)重复)重复)重复4646,直到个专家意见达成一致。,直到个专家意见达成一致。,直到个专家意见达成一致。,直到个专家意见达成一致。n n2 2、类比估算:、类比估算:、类比估算:、类比估算:类比估算是一种比较科学的传统估类比估算是一种比较科学的传统估算方法,适合评估一些历史项目在应用领域、环算方法,适合评估一些历史项目在应用领域、环节和复杂度上相似的项目,新项目与历史项目的节和复杂度上相似的项目,新项目与历史项目的比较得到规模估算。故其结果的准确度取决于历比较得到规模估算。

41、故其结果的准确度取决于历史项目数据的完整性和准确度。基本步骤为:史项目数据的完整性和准确度。基本步骤为:n n1 1)整理出项目的功能列表和实现每个功能的代码行数;)整理出项目的功能列表和实现每个功能的代码行数;)整理出项目的功能列表和实现每个功能的代码行数;)整理出项目的功能列表和实现每个功能的代码行数;n n2 2)标识出每个功能的列表与历史项目的相同点和不同点,)标识出每个功能的列表与历史项目的相同点和不同点,)标识出每个功能的列表与历史项目的相同点和不同点,)标识出每个功能的列表与历史项目的相同点和不同点,特别注意历史项目中不足;特别注意历史项目中不足;特别注意历史项目中不足;特别注意

42、历史项目中不足;n n3 3)有步骤)有步骤)有步骤)有步骤1 1和和和和2 2得出各个功能的估算值;得出各个功能的估算值;得出各个功能的估算值;得出各个功能的估算值;n n4 4)产生成本估算。)产生成本估算。)产生成本估算。)产生成本估算。n n3 3 3 3、COCOMOCOCOMOCOCOMOCOCOMO模型模型模型模型 结构型成本估算模型(结构型成本估算模型(Constructive Cost ModelConstructive Cost ModelConstructive Cost ModelConstructive Cost Model), ,简称简称COCOMOCOCOMO模型

43、,由模型,由W_BoehmW_Boehm于于19811981年提出。基本年提出。基本COCOMOCOCOMO模型是一个静态单变量模型,它以一个已计算出来的代模型是一个静态单变量模型,它以一个已计算出来的代码行数(码行数(LOCLOC)为自变量的函数公式,计算软件开发工作)为自变量的函数公式,计算软件开发工作量、进度等数据。并依据开发环境、应用领域和技术复量、进度等数据。并依据开发环境、应用领域和技术复杂性程度等因素对软件开发项目进行分类。杂性程度等因素对软件开发项目进行分类。 COCOMOCOCOMO模型可分为模型可分为基本的、中间的和详细基本的、中间的和详细基本的、中间的和详细基本的、中间的

44、和详细的三个层次。的三个层次。 软件项目分类软件项目分类 (1 1)组织型()组织型(OrganicOrganic):各种应用类软件;):各种应用类软件;(2 2)半半独独立立型型(SemidetachedSemidetached):各各类类实实用用程程序序、编译程序;编译程序;(3 3)嵌嵌入入型型(EmbeddedEmbedded)实实时时处处理理、控控制制程程序序、操操作系统。作系统。(1 1 1 1)基本)基本)基本)基本COCOMOCOCOMOCOCOMOCOCOMO模型模型模型模型 是一个静态单变量模型,它用估算出来的程序代码行是一个静态单变量模型,它用估算出来的程序代码行数(数(

45、LOCLOC)为自变量,通过计算软件的工作量等,对软件)为自变量,通过计算软件的工作量等,对软件成本作粗略估算。估算公式如下:成本作粗略估算。估算公式如下: 开发所需工作量(人月):开发所需工作量(人月):开发所需工作量(人月):开发所需工作量(人月): E=E=E=E=aLaLaLaLb b b b 开发时间(月)开发时间(月)开发时间(月)开发时间(月) : D=D=D=D=cEcEcEcEd d d d 类型类型类型类型 a a b b c c d d 组织型组织型组织型组织型 2.42.4 1.051.05 2.52.5 0.380.38半独立型半独立型半独立型半独立型 3.03.0

46、1.121.12 2.52.5 0.350.35 嵌入式嵌入式嵌入式嵌入式 3.63.6 1.21.2 2.52.5 0.320.32例:一个规模为10KSDI的微处理器上的嵌入型电信处理程序,使用基本COCOMO模型计算所需的工作量和开发时 开发工作量开发工作量 E = 3.6101.2 开发时间开发时间 D = 2.5E0.32 如果参入分析与设计人员的月平均工资为6000元,则开发该项目的工资支出成本为:60002.5E0.32(2 2)中间)中间COCOMOCOCOMO模型模型 在基本模型处理的基础上,再考虑影响软件产品、硬在基本模型处理的基础上,再考虑影响软件产品、硬件设备、人员、项

47、目等方面属性的因素(四大类件设备、人员、项目等方面属性的因素(四大类1515项,项,见表见表9-39-3),增加修正系数来调整工作量的估算。),增加修正系数来调整工作量的估算。 开发所需工作量(人月):开发所需工作量(人月):开发所需工作量(人月):开发所需工作量(人月): E=E=E=E=aLaLaLaLb b b bF F F F F= F= F= F= 类型类型类型类型 a a b b 组织型组织型组织型组织型 3.23.2 1.051.05 半独立型半独立型半独立型半独立型 3.03.0 1.121.12 嵌入式嵌入式嵌入式嵌入式 2.82.8 1.21.2例例:一一个个规规模模为为1

48、0KSDI10KSDI的的微微处处理理器器上上的的嵌嵌入入型型电电信信处处理理程程序序,使用中间使用中间COCOMO COCOMO 模型计算所需的工作量和开发时间。模型计算所需的工作量和开发时间。 调节因子调节因子 F=0.97 开发工作量开发工作量: E = 2.8E = 2.810101.21.20.970.97 开发时间开发时间: D = 2.5D = 2.5E E0.320.32n n3.4.3 3.4.3 软件项目计划(软件项目计划(SPMP)SPMP)n n 软件项目计划(软件项目计划(SPMP)SPMP)是用来协调其他计划,是用来协调其他计划, 以指导项目实施和控制的文件。以指导

49、项目实施和控制的文件。n n 内容范围:内容范围:计划的假设条件;方案选择;确计划的假设条件;方案选择;确定关键管理审查的内容、范围和时间;并为进度定关键管理审查的内容、范围和时间;并为进度评测和项目控制提供一个基线。评测和项目控制提供一个基线。3.5软件的风险管理n n 项目的风险项目的风险项目的风险项目的风险是一种不确定的事件或条件,一是一种不确定的事件或条件,一是一种不确定的事件或条件,一是一种不确定的事件或条件,一旦发生,就会对项目目标产生某种旦发生,就会对项目目标产生某种旦发生,就会对项目目标产生某种旦发生,就会对项目目标产生某种正面或负面的正面或负面的正面或负面的正面或负面的影响。

50、影响。影响。影响。n n 软件的风险管理是主动而系统地对项目风险进软件的风险管理是主动而系统地对项目风险进软件的风险管理是主动而系统地对项目风险进软件的风险管理是主动而系统地对项目风险进行全过程的识别、分析、监控,最大限度地降低行全过程的识别、分析、监控,最大限度地降低行全过程的识别、分析、监控,最大限度地降低行全过程的识别、分析、监控,最大限度地降低风险对软件开发的影响。风险对软件开发的影响。风险对软件开发的影响。风险对软件开发的影响。n n 风险识别风险识别风险分析风险分析风险规划风险规划风险监控风险监控确定项目有哪些风险、分析产生的原因或影确定项目有哪些风险、分析产生的原因或影响因素,以

51、确定风险事件及来源。方法:专响因素,以确定风险事件及来源。方法:专家判断法、头脑风暴法等。家判断法、头脑风暴法等。比较风险大小、确定风险性质。对各种风险比较风险大小、确定风险性质。对各种风险进行定性和定量分析,包括发生的概率、影进行定性和定量分析,包括发生的概率、影响程度,对风险排序。响程度,对风险排序。按照风险的大小和性质,制定相应的措施去按照风险的大小和性质,制定相应的措施去应对和响应风险。包括风险接受、风险规避、应对和响应风险。包括风险接受、风险规避、风险转移。风险转移。监督、检查风险事件的发生情况及风险措施监督、检查风险事件的发生情况及风险措施的落实情况,通过对风险事件及其来源的控的落

52、实情况,通过对风险事件及其来源的控制和对风险计划落实情况的监督,确保风险制和对风险计划落实情况的监督,确保风险措施有效。措施有效。 3.5.1 3.5.1 风险识别风险识别风险识别风险识别n n风险识别是试图采用系统化的方法,识别特定项目已知的风险识别是试图采用系统化的方法,识别特定项目已知的风险识别是试图采用系统化的方法,识别特定项目已知的风险识别是试图采用系统化的方法,识别特定项目已知的和可预测的风险。和可预测的风险。和可预测的风险。和可预测的风险。n n风险识别常用的方法:建立风险条目检查表,其中列出所风险识别常用的方法:建立风险条目检查表,其中列出所风险识别常用的方法:建立风险条目检查

53、表,其中列出所风险识别常用的方法:建立风险条目检查表,其中列出所有可能的与每个风险因素有关的提问,通过问答的方式帮有可能的与每个风险因素有关的提问,通过问答的方式帮有可能的与每个风险因素有关的提问,通过问答的方式帮有可能的与每个风险因素有关的提问,通过问答的方式帮助项目管理者了解项目和技术方面的一些风险。助项目管理者了解项目和技术方面的一些风险。助项目管理者了解项目和技术方面的一些风险。助项目管理者了解项目和技术方面的一些风险。n n该方法的优点:使项目管理者可以集中识别常见的、已知该方法的优点:使项目管理者可以集中识别常见的、已知该方法的优点:使项目管理者可以集中识别常见的、已知该方法的优点

54、:使项目管理者可以集中识别常见的、已知的和可预测的风险。的和可预测的风险。的和可预测的风险。的和可预测的风险。项目风险的分类:项目风险的分类:项目风险的分类:项目风险的分类:n n软件规模风险软件规模风险软件规模风险软件规模风险n n商业影响风险商业影响风险商业影响风险商业影响风险n n客户相关风险客户相关风险客户相关风险客户相关风险n n软件过程风险软件过程风险软件过程风险软件过程风险n n开发技术风险开发技术风险开发技术风险开发技术风险n n开发环境风险开发环境风险开发环境风险开发环境风险n n开发人员风险开发人员风险开发人员风险开发人员风险3.5.2 风险分析n n风险分析的任务是对已识

55、别的风险进行估计和评风险分析的任务是对已识别的风险进行估计和评风险分析的任务是对已识别的风险进行估计和评风险分析的任务是对已识别的风险进行估计和评价,确定风险发生的概率与后果。价,确定风险发生的概率与后果。价,确定风险发生的概率与后果。价,确定风险发生的概率与后果。n n风险的来源通常包括性能、支持、成本、进度。风险的来源通常包括性能、支持、成本、进度。风险的来源通常包括性能、支持、成本、进度。风险的来源通常包括性能、支持、成本、进度。其影响等级划分为可忽略的、轻微的、严重的、其影响等级划分为可忽略的、轻微的、严重的、其影响等级划分为可忽略的、轻微的、严重的、其影响等级划分为可忽略的、轻微的、

56、严重的、灾难性的。灾难性的。灾难性的。灾难性的。n n风险分析的方法:头脑风暴法、建立风险评估表风险分析的方法:头脑风暴法、建立风险评估表风险分析的方法:头脑风暴法、建立风险评估表风险分析的方法:头脑风暴法、建立风险评估表举例:头脑风暴法n n举例:识别举办短期培训班项目的风险举例:识别举办短期培训班项目的风险n n列出项目的工作分解结构;列出项目的工作分解结构;列出项目的工作分解结构;列出项目的工作分解结构;n n项目小组一起进行头脑风暴,对每一项任务进项目小组一起进行头脑风暴,对每一项任务进项目小组一起进行头脑风暴,对每一项任务进项目小组一起进行头脑风暴,对每一项任务进行讨论,识别所有可能

57、的风险,防止遗漏重要行讨论,识别所有可能的风险,防止遗漏重要行讨论,识别所有可能的风险,防止遗漏重要行讨论,识别所有可能的风险,防止遗漏重要的风险。的风险。的风险。的风险。举例:头脑风暴法举例:头脑风暴法n n可能的风险可能的风险n n确定培训项目确定培训项目确定培训项目确定培训项目n n题目选择不当,可能招不来学生,导致亏本。题目选择不当,可能招不来学生,导致亏本。题目选择不当,可能招不来学生,导致亏本。题目选择不当,可能招不来学生,导致亏本。n n寻找培训讲师寻找培训讲师寻找培训讲师寻找培训讲师n n讲师可能生病或者临时有重要事情来不了。讲师可能生病或者临时有重要事情来不了。讲师可能生病或

58、者临时有重要事情来不了。讲师可能生病或者临时有重要事情来不了。n n招生招生招生招生n n可能没有学员报名。可能没有学员报名。可能没有学员报名。可能没有学员报名。n n授课授课授课授课n n投影仪可能出问题。投影仪可能出问题。投影仪可能出问题。投影仪可能出问题。n n结束课程结束课程结束课程结束课程n n学员不满意,大闹课堂学员不满意,大闹课堂学员不满意,大闹课堂学员不满意,大闹课堂 问题:还有哪些可能问题:还有哪些可能的风险?的风险?举例:风险检查表举例:风险检查表风险类型风险类型n n常见的软件项目风险类型:常见的软件项目风险类型:n n 软件规模风险软件规模风险软件规模风险软件规模风险n

59、 n与待开发或修改的软件系统估算相关的风险,包括与待开发或修改的软件系统估算相关的风险,包括与待开发或修改的软件系统估算相关的风险,包括与待开发或修改的软件系统估算相关的风险,包括系统规模、数据库大小、用户数量、可复用性、度系统规模、数据库大小、用户数量、可复用性、度系统规模、数据库大小、用户数量、可复用性、度系统规模、数据库大小、用户数量、可复用性、度量方法及其可信度等;量方法及其可信度等;量方法及其可信度等;量方法及其可信度等;n n如:软件规模估计不足;开发所需时间不足等。如:软件规模估计不足;开发所需时间不足等。如:软件规模估计不足;开发所需时间不足等。如:软件规模估计不足;开发所需时

60、间不足等。n n商业影响风险商业影响风险商业影响风险商业影响风险n n与软件产品的商业环境与要求相关的风险,包括产与软件产品的商业环境与要求相关的风险,包括产与软件产品的商业环境与要求相关的风险,包括产与软件产品的商业环境与要求相关的风险,包括产品对公司业务带来的利润影响、管理层的重视程度、品对公司业务带来的利润影响、管理层的重视程度、品对公司业务带来的利润影响、管理层的重视程度、品对公司业务带来的利润影响、管理层的重视程度、交付期限的合理性、产品质量对于成本的影响、产交付期限的合理性、产品质量对于成本的影响、产交付期限的合理性、产品质量对于成本的影响、产交付期限的合理性、产品质量对于成本的影

61、响、产品与其他系统的互操作性等品与其他系统的互操作性等品与其他系统的互操作性等品与其他系统的互操作性等 ; n n如:组织的结构发生了变化;组织财政问题导致项如:组织的结构发生了变化;组织财政问题导致项如:组织的结构发生了变化;组织财政问题导致项如:组织的结构发生了变化;组织财政问题导致项目预算消减等。目预算消减等。目预算消减等。目预算消减等。风险类型n n常见的软件项目风险类型:常见的软件项目风险类型:n n客户相关风险客户相关风险客户相关风险客户相关风险n n与客户的素质以及开发者和客户定期通信的能力相与客户的素质以及开发者和客户定期通信的能力相与客户的素质以及开发者和客户定期通信的能力相

62、与客户的素质以及开发者和客户定期通信的能力相关的风险,包括需求的明确程度、客户的参与和支关的风险,包括需求的明确程度、客户的参与和支关的风险,包括需求的明确程度、客户的参与和支关的风险,包括需求的明确程度、客户的参与和支持程度、客户与开发人员的配合程度等;持程度、客户与开发人员的配合程度等;持程度、客户与开发人员的配合程度等;持程度、客户与开发人员的配合程度等; n n如:需求变更导致主要的设计和开发重做;客户无如:需求变更导致主要的设计和开发重做;客户无如:需求变更导致主要的设计和开发重做;客户无如:需求变更导致主要的设计和开发重做;客户无法理解需求变更带来的影响。法理解需求变更带来的影响。

63、法理解需求变更带来的影响。法理解需求变更带来的影响。n n软件过程风险软件过程风险软件过程风险软件过程风险n n如果软件过程定义得不清楚,分析、设计、测试是如果软件过程定义得不清楚,分析、设计、测试是如果软件过程定义得不清楚,分析、设计、测试是如果软件过程定义得不清楚,分析、设计、测试是以无序的方式进行,且没有采取实际行动来保证软以无序的方式进行,且没有采取实际行动来保证软以无序的方式进行,且没有采取实际行动来保证软以无序的方式进行,且没有采取实际行动来保证软件的质量,则软件项目处于风险之中。包括过程问件的质量,则软件项目处于风险之中。包括过程问件的质量,则软件项目处于风险之中。包括过程问件的

64、质量,则软件项目处于风险之中。包括过程问题、技术问题。题、技术问题。题、技术问题。题、技术问题。n n如:没有定期对测试过程和测试情况进行复审;如:没有定期对测试过程和测试情况进行复审;如:没有定期对测试过程和测试情况进行复审;如:没有定期对测试过程和测试情况进行复审; 没有使用特定的方法进行软件分析。没有使用特定的方法进行软件分析。没有使用特定的方法进行软件分析。没有使用特定的方法进行软件分析。风险类型n n常见的软件项目风险类型:常见的软件项目风险类型:n n开发技术风险开发技术风险开发技术风险开发技术风险n n与开发软件系统所使用的软件技术或硬件技术相关的与开发软件系统所使用的软件技术或

65、硬件技术相关的与开发软件系统所使用的软件技术或硬件技术相关的与开发软件系统所使用的软件技术或硬件技术相关的风险,包括所用技术的成熟程度、开发方法的特殊要风险,包括所用技术的成熟程度、开发方法的特殊要风险,包括所用技术的成熟程度、开发方法的特殊要风险,包括所用技术的成熟程度、开发方法的特殊要求和创新要求、功能实现的可行性等;求和创新要求、功能实现的可行性等;求和创新要求、功能实现的可行性等;求和创新要求、功能实现的可行性等;n n如:数据库事务处理速度不够;拟采用的系统组件存如:数据库事务处理速度不够;拟采用的系统组件存如:数据库事务处理速度不够;拟采用的系统组件存如:数据库事务处理速度不够;拟

66、采用的系统组件存在缺陷,而影响系统的功能。在缺陷,而影响系统的功能。在缺陷,而影响系统的功能。在缺陷,而影响系统的功能。 n n开发环境风险开发环境风险开发环境风险开发环境风险n n与所用软件工程环境相关的风险,包括软件项目管理与所用软件工程环境相关的风险,包括软件项目管理与所用软件工程环境相关的风险,包括软件项目管理与所用软件工程环境相关的风险,包括软件项目管理工具、过程管理工具、分析与设计工具、编程工具、工具、过程管理工具、分析与设计工具、编程工具、工具、过程管理工具、分析与设计工具、编程工具、工具、过程管理工具、分析与设计工具、编程工具、配置管理工具、测试工具等的可用程度和人员培训程配置

67、管理工具、测试工具等的可用程度和人员培训程配置管理工具、测试工具等的可用程度和人员培训程配置管理工具、测试工具等的可用程度和人员培训程度;度;度;度;n n如:如:如:如:CASECASE工具生成的代码效率低,工具生成的代码效率低,工具生成的代码效率低,工具生成的代码效率低,CASECASE工具无法集工具无法集工具无法集工具无法集成。成。成。成。 风险类型n n常见的软件项目风险类型:常见的软件项目风险类型:n n开发人员风险开发人员风险开发人员风险开发人员风险n n与项目团队成员相关的风险,包括人员的能力和经与项目团队成员相关的风险,包括人员的能力和经与项目团队成员相关的风险,包括人员的能力

68、和经与项目团队成员相关的风险,包括人员的能力和经验、技术培训、人员稳定性等。验、技术培训、人员稳定性等。验、技术培训、人员稳定性等。验、技术培训、人员稳定性等。n n如:招牌不到所需技能的人员;关键的人员在项目如:招牌不到所需技能的人员;关键的人员在项目如:招牌不到所需技能的人员;关键的人员在项目如:招牌不到所需技能的人员;关键的人员在项目的关键时刻生病或不在;无法进行所需的人员培训的关键时刻生病或不在;无法进行所需的人员培训的关键时刻生病或不在;无法进行所需的人员培训的关键时刻生病或不在;无法进行所需的人员培训等。等。等。等。 风险分析n n风险分析风险分析是对已识别的风险进行估计和评是对已

69、识别的风险进行估计和评价,确定风险发生的概率与后果。价,确定风险发生的概率与后果。n n定性分析定性分析定性分析定性分析n n评估已识别出的项目风险的影响和可能性,并按照评估已识别出的项目风险的影响和可能性,并按照评估已识别出的项目风险的影响和可能性,并按照评估已识别出的项目风险的影响和可能性,并按照可能产生的影响进行排序。可能产生的影响进行排序。可能产生的影响进行排序。可能产生的影响进行排序。n n定量分析定量分析定量分析定量分析n n量化分析每一风险的概率及其对项目目标造成的后量化分析每一风险的概率及其对项目目标造成的后量化分析每一风险的概率及其对项目目标造成的后量化分析每一风险的概率及其

70、对项目目标造成的后果,并得出每种风险的大小和严重程度等。果,并得出每种风险的大小和严重程度等。果,并得出每种风险的大小和严重程度等。果,并得出每种风险的大小和严重程度等。n n软件开发风险通常包括性能、成本、支持软件开发风险通常包括性能、成本、支持和进度等因素,这些因素对项目目标可能和进度等因素,这些因素对项目目标可能产生的影响可以划分为可忽略的、轻微的、产生的影响可以划分为可忽略的、轻微的、严重的、灾难性的等四个级别。严重的、灾难性的等四个级别。P62举例:软件项目风险分析n n风险评估表是随着软件项目的进展发生变化的,风险评估表是随着软件项目的进展发生变化的,项目管理者需要定期复查和更新风

71、险评估表。项目管理者需要定期复查和更新风险评估表。风险规划n n在识别和分析项目风险之后,项目管理者在识别和分析项目风险之后,项目管理者应该关注那些影响较大的风险,并制定出应该关注那些影响较大的风险,并制定出具体的风险应对策略。具体的风险应对策略。n n常用的风险应对策略包括风险规避、风险常用的风险应对策略包括风险规避、风险缓解、风险转移、风险接受等。缓解、风险转移、风险接受等。n n风险规避是设法降低风险出现的可能性风险规避是设法降低风险出现的可能性风险规避是设法降低风险出现的可能性风险规避是设法降低风险出现的可能性n n风险缓解是设法减少风险产生的影响风险缓解是设法减少风险产生的影响风险缓

72、解是设法减少风险产生的影响风险缓解是设法减少风险产生的影响n n风险转移是将风险转移给第三方风险转移是将风险转移给第三方风险转移是将风险转移给第三方风险转移是将风险转移给第三方n n风险接受是采取应急方案应对风险的发生风险接受是采取应急方案应对风险的发生风险接受是采取应急方案应对风险的发生风险接受是采取应急方案应对风险的发生举例:风险应对策略风险监控n n风险监控风险监控是跟踪和监视项目的执行状态,是跟踪和监视项目的执行状态,洞察由于人员、技术、环境等方面的变化洞察由于人员、技术、环境等方面的变化而给项目目标实现产生的影响。而给项目目标实现产生的影响。n n监控风险发生的情况,及早发现风险事件

73、的征监控风险发生的情况,及早发现风险事件的征监控风险发生的情况,及早发现风险事件的征监控风险发生的情况,及早发现风险事件的征兆和苗头兆和苗头兆和苗头兆和苗头n n监控风险管理计划的落实情况,确保该计划的监控风险管理计划的落实情况,确保该计划的监控风险管理计划的落实情况,确保该计划的监控风险管理计划的落实情况,确保该计划的有效实施有效实施有效实施有效实施n n风险监控可能产生的结果风险监控可能产生的结果n n随机应变措施随机应变措施随机应变措施随机应变措施n n纠正行动纠正行动纠正行动纠正行动n n变更请求变更请求变更请求变更请求n n修改风险应对计划修改风险应对计划修改风险应对计划修改风险应对

74、计划举例:风险监控3.6 软件配置管理n n软件配置管理是一种标识、组织和控制修改的技术。软件配置管理是一种标识、组织和控制修改的技术。软件配置管理是一种标识、组织和控制修改的技术。软件配置管理是一种标识、组织和控制修改的技术。n n软件在变化过程中产生新的版本软件在变化过程中产生新的版本软件在变化过程中产生新的版本软件在变化过程中产生新的版本n n适应不同的硬件环境或操作系统适应不同的硬件环境或操作系统适应不同的硬件环境或操作系统适应不同的硬件环境或操作系统n n提供不同的功能提供不同的功能提供不同的功能提供不同的功能n n针对特殊的用户需求进行裁剪针对特殊的用户需求进行裁剪针对特殊的用户需

75、求进行裁剪针对特殊的用户需求进行裁剪n n软件配置管理在软件生命周期中建立和修改的各种不同元软件配置管理在软件生命周期中建立和修改的各种不同元软件配置管理在软件生命周期中建立和修改的各种不同元软件配置管理在软件生命周期中建立和修改的各种不同元素(例如:源代码和文档)素(例如:源代码和文档)素(例如:源代码和文档)素(例如:源代码和文档)n n协调和整理所开发的产品协调和整理所开发的产品协调和整理所开发的产品协调和整理所开发的产品n n管理软件的构建和测试环境管理软件的构建和测试环境管理软件的构建和测试环境管理软件的构建和测试环境n n管理发布和安装工具管理发布和安装工具管理发布和安装工具管理发

76、布和安装工具n n管理软件的改错和功能增加管理软件的改错和功能增加管理软件的改错和功能增加管理软件的改错和功能增加n n目的目的目的目的n n使错误使错误使错误使错误达到最小并最有效地提高生产率。达到最小并最有效地提高生产率。达到最小并最有效地提高生产率。达到最小并最有效地提高生产率。软件配置项n n软件配置项软件配置项n n是为了配置管理而作为单独实体处理的一个工是为了配置管理而作为单独实体处理的一个工是为了配置管理而作为单独实体处理的一个工是为了配置管理而作为单独实体处理的一个工作产品或软件。作产品或软件。作产品或软件。作产品或软件。n n具体形式具体形式n n与合同、过程、与合同、过程、

77、与合同、过程、与合同、过程、计划和产品有关的计划和产品有关的计划和产品有关的计划和产品有关的文档和数据。文档和数据。文档和数据。文档和数据。n n源代码、目标代源代码、目标代源代码、目标代源代码、目标代码、可执行程序码、可执行程序码、可执行程序码、可执行程序n n相关产品,包括软件工具、库内可复用软件、相关产品,包括软件工具、库内可复用软件、相关产品,包括软件工具、库内可复用软件、相关产品,包括软件工具、库内可复用软件、外购软件及用户提供的软件。外购软件及用户提供的软件。外购软件及用户提供的软件。外购软件及用户提供的软件。基线n n基线基线n n是已经通过了正式复审的规格说明或中间产品,是已经

78、通过了正式复审的规格说明或中间产品,是已经通过了正式复审的规格说明或中间产品,是已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过它可以作为进一步开发的基础,并且只有通过它可以作为进一步开发的基础,并且只有通过它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变。正式的变化控制过程才能改变。正式的变化控制过程才能改变。正式的变化控制过程才能改变。n n基线标志着软件开发过程的各个里程碑基线标志着软件开发过程的各个里程碑基线是指软件配置项通过正式复审而进入正式受控的一种状态。版本版本n n版本版本n n是确定在明确定义的时间点上某个配置项的状是确定在明

79、确定义的时间点上某个配置项的状是确定在明确定义的时间点上某个配置项的状是确定在明确定义的时间点上某个配置项的状态。态。态。态。n n版本记录了软件配置项的演化过程,是系统的版本记录了软件配置项的演化过程,是系统的版本记录了软件配置项的演化过程,是系统的版本记录了软件配置项的演化过程,是系统的具体实例。具体实例。具体实例。具体实例。n n软件在变化过程中产生新的版本软件在变化过程中产生新的版本软件在变化过程中产生新的版本软件在变化过程中产生新的版本n n针对不同的硬件环境或针对不同的硬件环境或针对不同的硬件环境或针对不同的硬件环境或OSOS而设置而设置而设置而设置n n具有不同的功能和性能具有不

80、同的功能和性能具有不同的功能和性能具有不同的功能和性能n n能够适用特殊用户的需求能够适用特殊用户的需求能够适用特殊用户的需求能够适用特殊用户的需求软件配置库软件配置库n n作用:用于记录整个软件生命周期内与配置有关的所有信作用:用于记录整个软件生命周期内与配置有关的所有信作用:用于记录整个软件生命周期内与配置有关的所有信作用:用于记录整个软件生命周期内与配置有关的所有信息,来帮助评估系统变更带来的影响,提供有关配置管理息,来帮助评估系统变更带来的影响,提供有关配置管理息,来帮助评估系统变更带来的影响,提供有关配置管理息,来帮助评估系统变更带来的影响,提供有关配置管理过程的管理信息。过程的管理

81、信息。过程的管理信息。过程的管理信息。n n软件配置库应满足几个要求:软件配置库应满足几个要求:软件配置库应满足几个要求:软件配置库应满足几个要求:n n软件配置库的内容不允许被任意修改和删除,只有合软件配置库的内容不允许被任意修改和删除,只有合软件配置库的内容不允许被任意修改和删除,只有合软件配置库的内容不允许被任意修改和删除,只有合法用户才能进行存取访问;法用户才能进行存取访问;法用户才能进行存取访问;法用户才能进行存取访问;n n需要保证所有配置项在各个阶段的基线是完整的;需要保证所有配置项在各个阶段的基线是完整的;需要保证所有配置项在各个阶段的基线是完整的;需要保证所有配置项在各个阶段

82、的基线是完整的;n n软件配置库可以方便地进行备份和恢复,正常情况下软件配置库可以方便地进行备份和恢复,正常情况下软件配置库可以方便地进行备份和恢复,正常情况下软件配置库可以方便地进行备份和恢复,正常情况下需要每日或每周进行备份,当出现异常时可以方便地需要每日或每周进行备份,当出现异常时可以方便地需要每日或每周进行备份,当出现异常时可以方便地需要每日或每周进行备份,当出现异常时可以方便地恢复配置信息。恢复配置信息。恢复配置信息。恢复配置信息。n n软件配置就是对软件配置库中的所有信息进行控制和软件配置就是对软件配置库中的所有信息进行控制和软件配置就是对软件配置库中的所有信息进行控制和软件配置就

83、是对软件配置库中的所有信息进行控制和管理。管理。管理。管理。配置管理活动配置管理活动n n 软件配置管理贯穿整个软件开发过程,其主要活软件配置管理贯穿整个软件开发过程,其主要活软件配置管理贯穿整个软件开发过程,其主要活软件配置管理贯穿整个软件开发过程,其主要活动包括软件配置项标识、版本管理、系统建立、动包括软件配置项标识、版本管理、系统建立、动包括软件配置项标识、版本管理、系统建立、动包括软件配置项标识、版本管理、系统建立、变更控制、配置审计和配置状态报告变更控制、配置审计和配置状态报告变更控制、配置审计和配置状态报告变更控制、配置审计和配置状态报告。n n配置项标识配置项标识配置项标识配置项

84、标识n n版本管理版本管理版本管理版本管理n n系统建立系统建立系统建立系统建立n n变更控制变更控制变更控制变更控制配置项标识配置项标识n n为了便于配置项的控制和管理,需要将配置项采为了便于配置项的控制和管理,需要将配置项采为了便于配置项的控制和管理,需要将配置项采为了便于配置项的控制和管理,需要将配置项采用合适的方式进行命名、组织。用合适的方式进行命名、组织。用合适的方式进行命名、组织。用合适的方式进行命名、组织。n n通常,采用分层命名的方式,对相关的配置项进通常,采用分层命名的方式,对相关的配置项进通常,采用分层命名的方式,对相关的配置项进通常,采用分层命名的方式,对相关的配置项进行

85、组织,下图给出了项目行组织,下图给出了项目行组织,下图给出了项目行组织,下图给出了项目 PCL PCL TOOLS TOOLS 的配置的配置的配置的配置层次结构。层次结构。层次结构。层次结构。版本管理版本管理n n版本管理版本管理n n是对系统不同的版本进行标识和跟踪的过程,是对系统不同的版本进行标识和跟踪的过程,是对系统不同的版本进行标识和跟踪的过程,是对系统不同的版本进行标识和跟踪的过程,从而保证软件技术状态的一致性。从而保证软件技术状态的一致性。从而保证软件技术状态的一致性。从而保证软件技术状态的一致性。n n版本的演变版本的演变版本管理版本管理n n版本管理是对版本的各种操作进行控制,

86、包括检版本管理是对版本的各种操作进行控制,包括检版本管理是对版本的各种操作进行控制,包括检版本管理是对版本的各种操作进行控制,包括检出控制、分支与合并、版本历史记录和版本发布出控制、分支与合并、版本历史记录和版本发布出控制、分支与合并、版本历史记录和版本发布出控制、分支与合并、版本历史记录和版本发布等等等等n n版本的存取和控制流程版本的存取和控制流程版本的存取和控制流程版本的存取和控制流程系统的构建系统的构建n n系统构建是把软件组件编译和连接成在一系统构建是把软件组件编译和连接成在一个特定目标配置上的可运行程序的过程。个特定目标配置上的可运行程序的过程。n n系统构建过程系统构建过程n n

87、配置管理工具被用于自动化系统构建过程配置管理工具被用于自动化系统构建过程配置管理工具被用于自动化系统构建过程配置管理工具被用于自动化系统构建过程变更控制变更控制n n变更控制是建立一套组织结构和控制规程,变更控制是建立一套组织结构和控制规程,有意识地控制软件的变更过程。有意识地控制软件的变更过程。n n变更控制过程变更控制过程软件配置管理工具软件配置管理工具n nRational Rational ClearCaseClearCasen n版本控制、工作空间管理版本控制、工作空间管理版本控制、工作空间管理版本控制、工作空间管理n n支持并行开发支持并行开发支持并行开发支持并行开发n n统一变更

88、管理统一变更管理统一变更管理统一变更管理n n与与与与MicrosoftMicrosoft和和和和IBM IBM 的开发工具相集成的开发工具相集成的开发工具相集成的开发工具相集成n nMicrosoft SourceSafeMicrosoft SourceSafen n版本控制版本控制版本控制版本控制n n与与与与MicrosoftMicrosoft的开发工具相集成的开发工具相集成的开发工具相集成的开发工具相集成n nCVSCVSn n并发版本控制并发版本控制并发版本控制并发版本控制n n开放源码的软件开发开放源码的软件开发开放源码的软件开发开放源码的软件开发n n适宜中小型软件企业适用适宜中

89、小型软件企业适用适宜中小型软件企业适用适宜中小型软件企业适用例题n n对开发人员的频繁流动这一风险的驾驭与控制。对开发人员的频繁流动这一风险的驾驭与控制。n n社人员的频繁流动给项目带来的风险为社人员的频繁流动给项目带来的风险为R1,R1,基于以基于以往项目的经验和直觉,该风险发生概率的估算值往项目的经验和直觉,该风险发生概率的估算值P1P1为为70%70%,而该风险的出现给项目带来的影响的,而该风险的出现给项目带来的影响的估算值估算值X1X1,使项目开发时间延长,使项目开发时间延长15%15%,总成本增,总成本增加加20%20%,为了对这一风险进行驾驭和监控,应该,为了对这一风险进行驾驭和监控,应该采取哪些风险驾驭措施。采取哪些风险驾驭措施。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号