第十三章软件项目管理

上传人:仙*** 文档编号:167506166 上传时间:2022-11-03 格式:PPT 页数:67 大小:434KB
收藏 版权申诉 举报 下载
第十三章软件项目管理_第1页
第1页 / 共67页
第十三章软件项目管理_第2页
第2页 / 共67页
第十三章软件项目管理_第3页
第3页 / 共67页
资源描述:

《第十三章软件项目管理》由会员分享,可在线阅读,更多相关《第十三章软件项目管理(67页珍藏版)》请在装配图网上搜索。

1、软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 1第十三章第十三章软件项目管理软件项目管理软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 213.1 概述l所谓管理管理就是通过计划、组织和控制计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。(P277)l软件项目管理先于任何技术活动之前开始,并且贯穿于软件的整个生命周期之中。l软件项目管理涉及对人员、过程、产品和项目本身等管理过程中发生的事件的计划和

2、监控软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 313.1 概述l 项目:l是指一系列独特的、复杂的并相互关联的活动,这些活动有着一个明确的目标或目的,必须在特定的时间、预算、资源限定内依据规范完成。l项目参数:项目范围、质量、成本、时间和资源l 项目管理l是一种为实现既定目标而对技术、人力和资源所进行的系统集成,软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 413.1 概述l软件项目管理l针对软件开发的各个阶段进行管理l

3、启动阶段:l 用户提出需求,开发人员进行需求分析,确定可行性,编写项目实施计划l计划阶段l 创建项目范围文档和项目计划,项目计划规定如何开展工作是项目得以实施l实施阶段l 项目进一步设计、编码、测试l 应协调好实施阶段和控制阶段的关系,确保项目小组成员满足任务、时间和预算要求l控制阶段l 项目经理监督小组成员的工作,l收尾阶段l 正式认可过程软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 513.1 概述l项目管理范围l项目与过程l 项目职责:l 活动或任务l人员l 人员资源计划l 协调与沟通l软件团队组织l软

4、件度量l软件过程度量l风险管理l软件配置管理l软件项目管理计划文档l(Software Project Management Plan SPMP)软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 613.2 计划l 软件计划最详尽地描述了软件过程,它包括采用的生命周期模型、开发组织的组织结构、责任分配、管理目标和优先级、所用的技术和CASE工具,以及详细的进度、预算和资源分配。整个计划的基础是工作量估算和完成期限估算。l 软件项目管理过程从一组项目计划活动开始,而第一项计划活动是“估算”。软件工程(Softwar

5、e Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 713.2.1估算软件规模l代码行技术代码行技术l是比较简单的定量估算软件规模的方法。这种方法根据以往开发类似产品的经验和历史数据,估计实现一个功能需要的源程序行数。当有以往开发类似项目的历史数据可供参考时,用这种方法估计出的数据还是比较准确的。把实现每个功能需要的源程序行数累加起来,就得到实现整个软件需要的源程序行数。l为了使得对程序规模的估计值更接近实际值,可以由多名有经验的软件工程师分别作出估计。每个人都估计程序的最小规模(a)、最大规模(b)和最可能的规模(m),分别算出l这三种

6、规模的平均值a,b,和m之后,再用下式计算程序规模的估计值:l用代码行技术度量软件规模时,当程序较小时常用的单位是代码行数(LOC),当程序较大时常用的单位是千行代码数(KLOC)。64bmaL软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 813.2.1估算软件规模l软件科学方法l例如:计算操作数和运算符的个数l可测量数据l针对软件开发中的可测量数据进行度量l如:FFP即文件、流和过程l 文件:持久存在的关系记录集合(排除临时文件和事物文件)l 流:软件产品与环境之间的数据接口l 过程:数据的逻辑或算术的操作

7、SBCPFFSrli软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 9l功能点技术功能点技术l功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。这种方法用功能点功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。这种方法用功能点(FP)(FP)为单位,度量软件的规模。为单位,度量软件的规模。1.信息域特性 功能点技术定义了信息域的5个特性,分别是输入项数(Inp)、输出项数(Out)、查询数(Inq),主文件数(Maf)和外部接口数(Inf)。2.估算功能点的步骤 用下述三个步

8、骤,可以估算出一个软件的功能点数(即软件规模)。(1)计算未调整的功能点数UFP 首先,把产品信息域的每个特性(即Inp、Out、Inq、Maf和Inf)都分类成简单级、平均级或复杂级。根据其等级,为每个特性都分配一个功能点数,例如,一个平均级的输入项分配4个功能点,一个简单级的输入项是3个功能点,而一个复杂级的输入项分配6个功能点。然后,用下式计算未调整的功能点数UFPUFP=a1Inp+a2Out+a3Inq+a4Maf+a5Inf其中,ai(1i5)是信息域特性系数,其值由相应特性的复杂级别决定,如表所示。13.2.1估算软件规模软件工程(Software Engineering)沈阳工

9、业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 10表 13.1 信息域特性系数值 复杂级别 特性系数 简单 平均 复杂 输入系数 a1 3 4 6 输出系数 a2 4 5 7 查询系数 a3 3 4 6 文件系数 a4 7 10 15 接口系数 a5 5 7 10 13.2.1估算软件规模软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 11 (2)计算技术复杂性因子TCF 这一步将度量14种技术因素对软件规模的影响程度。这些因素包括高处理率、性能标准(例如,响应时间)、联机更新等,在

10、表中列出了全部技术因素,并用Fi(1i14)代表这些因素。根据软件特点,为每个因素分配一个从0(不存在或对软件规模无影响)到5(有很大影响)的值。然后,用下式计算技术因素对软件规模的综合影响程度DI:技术复杂性因子TCF由下式计算:TCF=0.65+0.01DI 因为DI的值在070之间,所以TCF的值在0.651.35之间。141iiFDI13.2.1估算软件规模软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 12表 13.2 技术因素 序号 Fi 技术因素 1 F1 数据通信 2 F2 分布式数据处理 3

11、F3 性能标准 4 F4 高负荷的硬件 5 F5 高处理率 6 F6 联机数据输入 7 F7 终端用户效率 8 F8 联机更新 9 F9 复杂的计算 10 F10 可重用性 11 F11 安装方便 12 F12 操作方便 13 F13 可移植性 14 F14 可维护性 13.2.1估算软件规模软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 13 (3)计算功能点数FP 功能点数FP由下式计算:FP=UFPTCF 功能点数与所用的编程语言无关,因此,功能点技术比代码行技术更合理一些。但是,在判断信息域特性复杂级别

12、及技术因素的影响程度时,存在相当大的主观因素。13.2.1估算软件规模软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 14l 面向对象度量l场景脚本数量l关键类的数量l支持类的数量l每个关键类的平均支持类数量l子系统的数量13.2.1估算软件规模软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 1513.2.2 工作量估算l计算机软件估算模型使用由经验导出的公式来预测软件开发的工作量,工作量是软件规模(LOC或FP)的函数,工作量

13、的单位通常是人月(pm)。l支持大多数估算模型的经验数据,都是从有限个项目的样本集中总结出来的,因此,没有一个估算模型能够适用于所有类型的软件和开发环境。软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 16l 静态单变量模型l这类模型的总体结构形式如下:E=A+B(ev)Cl其中,A、B和C是由经验数据导出的常数,E是以人月为单位的工作量,ev是估算变量(LOC或FP)。此外,大多数模型都有某种形式的调整成分,使得E能够依据项目的其他特性(例如,问题的复杂程度、开发人员的经验、开发环境等)加以调整。下面给出几个

14、典型的静态单变量模型。13.2.2 工作量估算软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 171.面向LOC的估算模型(1)WalstonFelix模型E=5.2(KLOC)0.91(2)BaileyBasili模型E=5.5+0.73(KLOC)1.16(3)Boehm简单模型E=3.2(KLOC)1.05(4)Doty模型(在KLOC9的情况下)E=5.288(KLOC)1.40713.2.2 工作量估算软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科

15、学与工程学院 魏东 Slide 182面向FP的估算模型(1)Albrecht&Gaffney模型E=-13.39+0.0545FP(2)Kemerer模型E=60.627.72810-8FP3(3)Maston、Barnett和Mellichamp模型E=585.7+5.12FP13.2.2 工作量估算软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 19l 动态多变量模型l动态多变量模型也称为软件方程式,它是根据从4000多个当代软件项目中收集的生产率数据推导出来的。这种模型把工作量看作是软件规模和开发时间这

16、两个变量的函数。动态多变量估算模型的形式如下:lE=LOCB0.333/P3(1/t)4 l其中:l E是以人月或人年为单位的工作量;l t是以月或年为单位的项目持续时间;l B是“特殊技术因子”,它随着对集成、测试、质量保证、文档及管理技术的需求的增长而缓慢增加,对于较小的程序(KLOC=510),B=0.16,对于超过70KLOC的程序,B=0.39;l P是“生产率参数”,它反映了下述因素对工作量的影响:13.2.2 工作量估算软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 20 使用良好的软件工程实践的

17、程度;使用的程序设计语言的级别;软件环境的状态;软件项目组的技术及经验;总体的过程成熟度及管理水平;应用系统的复杂程度。13.2.2 工作量估算软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 21l当开发实时嵌入式软件时,典型值是P=2000;对于电信和系统软件来说,P=10000;对于商业系统应用,P=28000。适用于当前项目的生产率参数,可以从历史数据导出。l应该注意,软件方程式有两个独立的变量:对软件规模的估算值(用LOC表示);以月或年为单位的项目持续时间。l从式可以看出,开发同一个软件(即LOC固定

18、)的时候,如果把项目持续时间延长一些,则可降低完成项目所需要的工作量。13.2.2 工作量估算软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 22lCOCOMO2模型 所谓COCOMO模型就是Boehm提出的构造性成本模型(COnstructive COst MOdel),COCOMO是一种层次结构的软件估算模型。三个层次的估算模型如下1、应用系统组成模型2、早期设计模型3、后体系结构模型以后体系结构模型为例171ibfiKLOCaE13.2.2 工作量估算软件工程(Software Engineering)沈

19、阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 2313.2.3 成本估算l Walston_Felix模型:T=2.5E0.35l Cocomo模型:T=2.5E0.38l Cocomo2模型:T=3.0E0.33+0.2(b-1.0)l Putnam模型:T=2.4E1/3软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 2413.2.4 进度计划l项目管理者的目标是定义全部项目任务,识别出关键任务,跟踪关键任务的进展状况,以保证能及时发现拖延进度的情况。为了做到这一点,管理者必

20、须制定一个足够详细的进度表,以便监督项目进度,并控制整个项目。l软件项目的进度安排是一项活动,它通过把工作量分配给特定的软件工程任务,并规定完成各项任务的起、止日期,从而将估算的工作量分布于计划好的项目持续期内。软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 2513.2.4 进度计划l 目标是为项目负责人提供一个框架l 7个指导原则:l(1)运用项目规划的方法进行协调而不是控制l(2)在项目环境中利用不同个性的人l(3)预先制定项目规划中需要经常修改的版本l(4)授权员工对自己的工作进行评估l(5)描述创造价

21、值的任务而不仅仅是价值创造的活动l(6)定义具体的可实现的里程碑式的事件l(7)在项目规划中使用检查列表、矩阵模型等其他补充工具软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 26l 项目计划的内容l引入l项目组织l风险分析l硬件和软件资源需求l工作分解l项目进度l监控和报告机制13.2.4 进度计划软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 27l 基本原则l下述的基本原则能够指导软件项目的进度安排。l 1.划分l 2.相

22、互依赖性l 3.时间分配l 4.工作量确认l 5.定义责任l 6.定义结果l 7.定义里程碑13.2.4 进度计划软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 28l Gantt图:l为了醒目地表示里程碑,可以在Gantt图中加上菱形标记,一个菱形代表一个里程碑,l 工程网络图:一种有向图l 圆表示事件l 有向弧或箭头表示子任务的进行l 箭头上的数字称为权,该权表示此子任务的持续时间l 箭头下面括号中的数字表示该任务的机动时间13.2.3 进度计划软件工程(Software Engineering)沈阳工业大

23、学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 29图图9.1 9.1 旧木板房刷漆工程的旧木板房刷漆工程的GanttGantt图图 13.2.4 进度计划软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 30软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 31l 工程网络l前面介绍的Gantt图能很形象地描绘任务分解情况,以及每个子任务(作业)的开始时间和结束时间,因此是进度计划和进度管理的有力工具。它具有

24、直观简明和容易掌握、容易绘制的优点,但是Gantt图也有三个主要缺点:l 不能显式地描绘各项作业彼此间的依赖关系;l 进度计划的关键部分不明确,难于判定哪些部分应当是主攻和主控的对象;l 计划中有潜力的部分及潜力的大小不明确,往往造成潜力的浪费。13.2.4 进度计划软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 3213.2.4 进度计划软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 33l事件的最早时刻最早时刻l是该事件可以

25、发生的最早时间。通常工程网络中第一个事件的最早时刻定义为零,其他事件的最早时刻在工程网络上从左至右按事件发生顺序计算。l计算最早时刻EET使用下述三条简单规则:l 考虑进入该事件的所有作业;l 对于每个作业都计算它的持续时间与起始事件的EET之和;l 选取上述和数中的最大值作为该事件的最早时刻EETl事件的最迟时刻l是在不影响工程竣工时间的前提下,该事件最晚可以发生的时刻。按惯例,最后一个事件(工程结束)的最迟时刻就是它的最早时刻。其他事件的最迟时刻在工程网络上从右至左按逆作业流的方向计算。l计算最迟时刻LET使用下述三条规则:l 考虑离开该事件的所有作业;l 从每个作业的结束事件的最迟时刻中

26、减去该作业的持续时间;l 选取上述差数中的最小值做为该事件的最迟时刻LET。13.2.4 进度计划软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 34l 关键路径p290l关键路径上的事件(关键事件)必须准时发生,组成关键路径的作业(关键作业)的实际持续时间不能超过估计的持续时间,否则工程就不能准时结束。l 机动时间p290l不在关键路径上的作业有一定程度的机动余地实际开始时间可以比预定时间晚一些,或者实际持续时间可以比预计的持续时间长一些,而并不影响工程的结束时间。l一个作业可以有的全部机动时间等于它的结束事

27、件的最迟时刻减去它的开始事件的最早时刻,再减去这个作业的持续时间:机动时间=(LET)结束-(EET)开始-持续时间13.2.4 进度计划软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 35l规划软件团队结构应考虑下列7个项目因素:l待解决问题的难度l程序的规模l团队成员需要共同工作的时间l对问题分解的程度l待开发系统的质量要求和可靠性要求l项目交付日期的严格程度l项目的沟通程度l软件团队组织范式l民主分权式:l 小组没有固定的负责人,问题和解决方法由小组讨论决策。l 个人偏爱自己l 管理员难以管理太民主的小组

28、l控制集权式:l 团队的顶层问题和组内协调由团队负责人管理。负责人和组员之间的沟通是上下级的。l 专业化l 层次性l控制分权最基本的概念是取消团队负责人的大部分管理工作。13.3 人员组织软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 36l民主制程序员组l小组成员完全平等,通过协商作出技术决策l主程序员组l有主程序员作为主要人员l现代程序员组13.3 人员组织软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 37l 一般说来,所

29、谓控制就是掌握被控制的对象,不让它任意活动或超出规定范围活动,尽量使一切活动都按照预定的计划进行,向预期的目标前进。13.4 控制软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 3813.4 控制l风险管理l风险有两个显著特点。l 不确定性:标志风险的事件可能发生也可能不发生,也就是说,没有100%发生的风险(100%发生的风险是施加在软件项目上的约束)。l 损失:如果风险变成了现实,就会造成不好的后果或损失。l软件开发几乎总会存在某些风险。对付风险应该采取主动的策略,也就是说,早在技术工作开始之前就应该启动风

30、险管理活动:标识出潜在的风险,评估它们出现的概率和影响,并且按重要性把风险排序,然后,软件项目组制定一个计划来管理风险。l风险管理:是评定风险对决策影响的一次决策制定活动l被动风险策略、主动风险策略 l风险管理的主要目标是预防风险,但是,并非所有风险都能预防,因此,项目组还必须制定一个处理意外事件的计划,以便一旦风险变成现实时能够以可控的和有效的方式作出反应。l风险管理的3个阶段l 风险识别l 风险评估l 风险处理 软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 3913.4 控制l 软件风险分类软件风险分类l

31、 1.按照风险的影响范围分类l (1)项目风险l (2)技术风险l (3)商业风险软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 40l 软件风险分类软件风险分类l按照风险的影响范围分类l 项目风险l 技术风险l 商业风险l按照风险的可预测性分类l 已知风险l 可预测的风险l 不可预测的风险13.4 控制软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 41l 风险识别风险识别l通过识别已知的和可预测的风险,项目管理者就朝着在可能

32、时避免风险并且在必要时控制风险的目标迈出了第一步。l在上面中描述的每一类风险又可进一步分成两种类型:一般性风险和特定产品的风险。一般性风险对每个软件项目都是潜在的威胁。特定产品的风险只有那些对当前项目的技术、人员、及环境非常了解的人才能识别出来。为了识别出特定产品的风险,必须检查项目计划和软件范围说明,并且回答下述问题:“本项目有什么特殊的性质可能会威胁我们的项目计划”。l事实上,“如果你不主动地攻击风险,风险将主动地攻击你”。因此,应该系统化地识别出一般性风险和特定产品的风险。13.4 控制软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学

33、与工程学院 魏东 Slide 42l采用建立风险条目检查表的方法,人们可以集中精力识别下列已知的和可预测的风险。l 产品规模与要开发或要修改的软件总体规模相关的风险。l 商业影响与管理或市场所施加的约束相关的风险。l 客户特性与客户素质以及开发者和客户定期通信的能力相关的风险。l 过程定义与软件过程已被定义的程度以及软件开发组织遵守软件过程的程度相关的风险。l 开发环境与用来开发产品的工具的可用性和质量相关的风险。l 所用技术与待开发系统的复杂性及系统所包含的技术的“新奇性”相关的风险。l 人员数目与经验与参加工作的软件工程师的总体技术水平及项目经验相关的风险。13.4 控制软件工程(Soft

34、ware Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 43l风险评估l风险评估(也称为风险估算)试图从两个方面来评估每个风险:风险变成现实的可能性或概率,以及当风险变成现实时所造成的后果。l评估风险后果 13.4 控制软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 441不能满足需求而导致次要功能降级成本有些增加,进度延迟可补救,预计超支1k 至100k轻微的2技术性能稍微降低一点较好的软件支持资金充足现实的、可完成的进度计划1不能满足需求而导致使用不

35、方便或对非运行方面有影响错误对成本和进度影响很小,预计超支少于1k可忽略的2技术性能没有降低易于支持的软件可能低于预算交付日期提前软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 45l建立风险表l表中第4列给出的是风险后果的整体等级值,其中,1代表灾难性的,2代表严重的,3代表轻微的,4代表可忽略的。l一旦填好了风险表前4列的内容,就应该根据概率和影响来排序。高概率、高影响的风险放在表的上方,而低概率的风险放在表的下方,这样就完成了第一次风险排序。l项目管理者研究排好序的风险表,并确定一条中止线。该中止线是经过

36、表中某一点的水平直线,它的含义是,只有位于线的上方的那些风险才会得到进一步的关注。对于处于线下方的风险要再次评估,以完成第二次排序。l从管理的角度看,风险影响和风险概率的作用是不同的。对一个具有高影响但发生概率很低的风险因素,不应该花费太多管理时间。但是,高影响且发生概率为中到高的风险,以及低影响且高概率的风险,应该进入风险管理的下一个步骤。l应该在软件项目进展的过程中,迭代使用上述的风险预测与分析技术。项目组应该定期复查风险表,再次评估每个风险,以确定新情况是否引起它的概率和影响发生变化。作为这项活动的结果,可能在表中添加了一些新风险,删除了某些与项目不再有关系的风险,并且改变了表中风险的相

37、对位置。13.4 控制软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 4613.4 控制软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 47l处理风险的策略l对于绝大多数软件项目来说,上述的4个风险因素(性能、成本、支持和进度)都有一个临界值,超过临界值就会导致项目被迫终止。也就是说,如果性能下降、成本超支、支持困难或进度延迟(或这4种因素的组合)超过了预先定义的限度,则因风险过大项目将被迫终止。l如果风险还没有严重到迫使项目终

38、止的程度,则项目组应该制定一个处理风险的策略。一个有效的策略应该包括下述三方面的内容:风险避免(或缓解);风险最小化;意外事件计划。l1.风险避免l 如果软件项目组采用主动的策略来处理风险,则避免风险总是最好的策略。这可以通过建立风险缓解计划来达到。l2.风险最小化l 随着项目的进展,风险监控活动也就开始了。项目管理者监控某些能指出风险概率正在变高还是变低的因素。l3.风险管理和意外事件计划l 意外事件计划假设缓解风险的努力失败了,风险变成了现实。13.4 控制软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 4

39、813.5 质量保证l质量是产品的生命,不论生产什么产品,质量都是极端重要的。软件产品开发周期长,耗费巨大的人力和物力,更必须特别注意保证质量。l软件质量l概括地说,软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。更具体地说,软件质量是软件符合明确地叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。上述定义强调了下述的三个要点。l软件需求是度量软件质量的基础,与需求不一致就是质量不高。l指定的标准定义了一组指导软件开发的准则,如果没有遵守这些准则,几乎肯定会导致质量不高。l通常,有一组没有显式描述的隐含需求(例如,期望软件是容易维护的)

40、。如果软件满足明确描述的需求,但却不满足隐含的需求,那么软件的质量仍然是值得怀疑的。软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 49图 软件质量因素与产品活动的关系13.5 质量保证软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 5013.5 质量保证软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 51可理解性理解和使用该系统的容易程度可维修

41、性诊断和改正在运行现场发现的错误所需要的工作量的大小灵活性(适应性)修改或改进正在运行的系统需要的工作量的多少可测试性软件容易测试的程度可移植性把程序从一种硬件配置和(或)软件系统环境转移到另一种配置和环境时,需要的工作量多少。有一种定量度量的方法是:用原来程序设计和调试的成本除移植时需用的费用可再用性在其他应用中该程序可以被再次使用的程度(或范围)互运行性把该系统和另一个系统结合起来需要的工作量的多少13.5 质量保证软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 52可靠性、可用性、可维护性(可靠性、可用性

42、、可维护性(Reliability,availability,maintainabilityReliability,availability,maintainability)l定义(Definitions)为了了解我们所指的可靠性,可用性和可维护性,可以想想汽车。如果一辆车在大多数情况下都工作正常,我们就认为汽车性能可靠。我们知道,有些功能会停止使用,有些磨损的部件需要修理或替换,但是我们希望一辆可靠的车在需要维修之前工作一段很长的时间。因此,在两次维修之间能长时间段的、稳固的、正常的、另人满意地工作的汽车就是稳定的、可靠的。可靠性指一段时间的行为,但可用性是描述在某一给定时间上发生的事。一辆

43、汽车可用是指当你需要它时,可以使用它。这辆车可能已使用20年了,且只维修了2次,我们称这辆车具有很高的稳定性。但是恰巧它在修理厂时你却需要它,它仍是不可用的。因此有些东西有很高的稳定性,当在某一时刻仍不可用。假设你的车既可靠又可用,但生产它的厂商已经关闭了。这意味着一旦你的车出了故障(无可否认,很少发生),维修商将很难找到可替换的部件。因此你的汽车在修好返回给你需要很长的时间,在这种情况下,你的车具有很低的可维护性。13.5 质量保证软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 53可靠性、可用性、可维护性(

44、可靠性、可用性、可维护性(Reliability,availability,maintainabilityReliability,availability,maintainability)l我们讲的软件可靠性(软件可靠性(software reliabilitysoftware reliability)是指系统在给定条件下,在一段时间内无故障工作的概率。我们用01之间的数表示可靠性。l软件的可用性(软件的可用性(software availabilitysoftware availability)是在一特定时间点上,系统按要求操作成功的概率。l软件可维护性(软件可维护性(software ma

45、intainabilitysoftware maintainability)是指在给定使用情况下,在一个规定的时间间隔和使用规定的资源,规定的过程,维护活动完成的概率。同样它的范围也在0与1之间。和硬件维护有很大不同,硬件维护在执行时总是要求系统不可用,而软件维护在系统工作时也能做。13.5 质量保证软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 54评估软件的可靠性、可用性、可维护性 l系统平均无故障时间MTTFl平均维修时间MTTR 修复一个故障平均需要用的时间,它取决于维护人员的技术水平和对系统的熟悉程度

46、,也和系统的可维护性有重要关系。平均无故障时间MTTF是系统按规格说明书规定成功地运行的平均时间,它主要取决于系统中潜伏的错误的数目,因此和测试的关系十分密切。l错误之间的平均时间错误之间的平均时间 MTBF:系统会有多长时间不可用 MTBF=MTTF+MTTRlReliability R=MTTF/(1+MTTF)lAvailability A=MTBF/(1+MTBF)lMaintainabilityM=1/(1+MTTR)13.5 质量保证软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 55l估算平均无故

47、障时间lEt 测试之前程序中的错误数lIt 程序长度(机器指令总数)l 测试(包括调试)时间lEd()在0到期间发现的错误数lEc()在0到期间改正的错误数 TCTTIEIEKMTTF113.5 质量保证软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 56 估计错误总数的方法 (1)植入错误法 使用这种估计方法,在测试之前由专人在程序中随机地植入一些错误,测试之后,根据测试小组发现的错误中原有的和植入的两种错误的比例,来估计程序中原有错误的总数。假设人为地植入的错误数为Ns,经过一段时间的测试之后发现ns个植入

48、的错误,此外还发现了n个原有的错误。如果可以认为测试方案发现植入错误和发现原有错误的能力相同,则能够估计出程序中原有错误的总数为 N=*Ns 其中即是错误总数的估计值。snnsnn13.5 质量保证软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 57 (2)分别测试法 怎样随机地给一部分错误加标记,分别测试法使用两个测试员(或测试小组),彼此独立地测试同一个程序的两个副本,把其中一个测试员发现的错误作为有标记的错误。具体做法是,在测试过程的早期阶段,由测试员甲和测试员乙分别测试同一个程序的两个副本,由另一名分析

49、员分析他们的测试结果。用表示测试时间,假设 =0时错误总数为B0;=1时测试员甲发现的错误数为B1;=1时测试员乙发现的错误数为B2;=1时两个测试员发现的相同错误的数目为bc。13.5 质量保证软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 58 如果认为测试员甲发现的错误是有标记的,即程序中有标记的错误总数为B1,则测试员乙发现的B2个错误中有bc个是有标记的。假定测试员乙发现有标记错误和发现无标记错误的概率相同,则可以估计出测试前程序中的错误总数为 使用分别测试法,在测试阶段的早期,每隔一段时间分析员分析

50、两名测试员的测试结果,并且用(5.8)式计算B0。如果几次估算的结果相差不多,则可用B0的平均值作为ET的估计值。此后一名测试员可以改做其他工作,由余下的一名测试员继续完成测试工作,因为他可以继承另一名测试员的测试结果,所以分别测试法增加的测试成本并不太多。120BbBBC120BbBBC13.5 质量保证软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 59l软件质量保证措施l软件质量保证(Software Quality Assurance,通常缩写为SQA)的措施主要有,基于非执行的测试(也称为复审)、基于

51、执行的测试和程序正确性证明。l1.技术复审的必要性l正式技术复审的明显优点是,能够较早地发现错误,防止错误被传播到软件过程的后续阶段。l正式技术复审实际上是一类复审方法,包括走查(Walkthrough)和审查(Inspection)等具体方法。走查的步骤比审查少,而且没有审查那样正规。13.5 质量保证软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 602.走查 (1)参与者驱动法 参与者按照事先准备好的列表,提出他们不理解的术语和认为不正确的术语。文档编写组的代表必须对每个质疑做出回答,要么承认确实有错误,

52、要么对质疑做出解释。(2)文档驱动法 文档编写者向走查组成员仔细解释文档。走查组成员在此过程中不时针对事先准备好的问题或解释过程中发现的问题提出质疑。这种方法可能比第一种方法更彻底,往往能检测出更多错误。经验表明,采用文档驱动法时许多错误是由文档讲解者自己发现的。13.5 质量保证软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 61 3.审查l审查的范围要比走查广泛得多,它的步骤也比较多。一般来说,审查有5个基本步骤。l(1)综述:由负责编写文档的一名成员向审查组成员综述该文档。在综述会议结束时把文档分发给每位

53、与会者。l(2)准备:评审员仔细阅读文档。最好列出在审查中发现的错误的类型,并按发生频率把错误类型分级,以辅助审查工作的进行。这些列表有助于评审员们把注意力集中到最常发生错误的区域。l(3)审查:评审组仔细走查整个文档。和走查一样,这一步的目的也是找出文档中的错误,而不是改正它们。审查组组长必须在一天之内写出一份关于审查的报告。通常每次审查会不超过90分钟。l(4)返工:文档的作者负责解决在书面报告中列出的所有错误及问题。l(5)跟踪:组长必须确保所提出的每个问题都得到了圆满的解决(要么修正了文档,要么澄清了被误认为是错误的条目)。必须检查对文档所做的每个修正,以确保没有引入新的错误。如果在审

54、查过程中返工量超过5%,则应该召集审查组再对文档全面地审查一遍。13.5 质量保证软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 62 4.程序正确性证明 正确性证明的基本思想是证明程序能完成预定的功能。因此,应该提供对程序功能的严格数学说明,然后根据程序代码证明程序确实能实现它的功能说明。13.5 质量保证软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 6313.6 变更与配置管理l在开发计算机软件的过程中,变化(或称为变动)

55、是不可避免的。如果不能适当地控制和管理变化,势必造成混乱并产生许多严重的错误。l软件配置管理是在计算机软件整个生命期内管理变化的一组活动。具体地说,这组活动用来:标识变化;控制变化;确保适当地实现了变化;向需要知道这方面信息的人报告变化。软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 64软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 65l软件配置管理不同于软件维护。维护是在软件交付给用户使用后才发生的,而软件配置管理是在软件

56、项目启动时就开始,并且一直持续到软件退役后才终止的一组跟踪和控制活动。l软件配置管理的目标是,使变化更容易被适应,并且在必须变化时减少所需花费的工作量。l软件配置管理:存储货物操作开发团队不同成员生产的工件(P131)13.6 变更与配置管理软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 66软件配置1.软件配置项 软件过程的输出信息可以分为三类:计算机程序(源代码和可执行程序);描述计算机程序的文档(供技术人员或用户使用);数据(程序内包含的或在程序外的)。上述这些项组成了在软件过程中产生的全部信息,我们把它

57、们统称为软件配置,而这些项就是软件配置项。可以把软件配置管理看作是应用于整个软件过程的软件质量保证活动,是专门用于管理变化的软件质量保证活动。2.基线 基线是一个软件配置管理概念,它有助于我们在不严重妨碍合理变化的前提下来控制变化。IEEE把基线定义为:已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。简而言之,基线就是通过了正式复审的软件配置项。在软件配置项变成基线之前,可以迅速而非正式地修改它。一旦建立了基线之后,虽然仍然可以实现变化,但是,必须应用特定的、正式的过程(称为规程)来评估、实现和验证每个变化。13.6 变更与配置管理软件工程(Software Engineering)沈阳工业大学信息科学与工程学院沈阳工业大学信息科学与工程学院 魏东 Slide 67l 软件配置管理过程l软件配置管理是软件质量保证的重要一环,它的主要任务是控制变化,同时也负责各个软件配置项和软件各种版本的标识、软件配置审计以及对软件配置发生的任何变化的报告。l具体来说,软件配置管理主要有五项任务:标识、版本控制、变化控制、配置审计和报告。13.6 变更与配置管理

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!