软件工程 第3版 教学课件 PPT 作者 张海藩 倪宁 第10章

上传人:E**** 文档编号:89494128 上传时间:2019-05-25 格式:PPT 页数:98 大小:386.50KB
返回 下载 相关 举报
软件工程 第3版  教学课件 PPT 作者 张海藩 倪宁 第10章_第1页
第1页 / 共98页
软件工程 第3版  教学课件 PPT 作者 张海藩 倪宁 第10章_第2页
第2页 / 共98页
软件工程 第3版  教学课件 PPT 作者 张海藩 倪宁 第10章_第3页
第3页 / 共98页
软件工程 第3版  教学课件 PPT 作者 张海藩 倪宁 第10章_第4页
第4页 / 共98页
软件工程 第3版  教学课件 PPT 作者 张海藩 倪宁 第10章_第5页
第5页 / 共98页
点击查看更多>>
资源描述

《软件工程 第3版 教学课件 PPT 作者 张海藩 倪宁 第10章》由会员分享,可在线阅读,更多相关《软件工程 第3版 教学课件 PPT 作者 张海藩 倪宁 第10章(98页珍藏版)》请在金锄头文库上搜索。

1、第四篇 软件项目管理,第10章 计划,所谓管理就是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。,软件项目管理先于任何技术活动之前开始,并且贯穿于软件的整个生命周期之中。,软件项目管理过程从一组称为项目计划的活动开始,而第一项计划活动是“估算”。,软件计划最详尽地描述了软件过程,它包括采用的生命周期模型、开发组织的组织结构、责任分配、管理目标和优先级、所用的技术和CASE工具,以及详细的进度、预算和资源分配。整个计划的基础是工作量估算和完成期限估算。,10.1 度量软件规模,10.1.1 代码行技术 代码行技术是比较简单的定量估算软件规模的方法。这种方法根据

2、以往开发类似产品的经验和历史数据,估计实现一个功能需要的源程序行数。,当有以往开发类似项目的历史数据可供参考时,用这种方法估计出的数据还是比较准确的。把实现每个功能需要的源程序行数累加起来,就得到实现整个软件需要的源程序行数。,为了使得对程序规模的估计值更接近实际值,可以由多名有经验的软件工程师分别作出估计。每个人都估计程序的最小规模(a)、最大规模(b)和最可能的规模(m),分别算出这三种规模的平均值a,b,和m之后,再用下式计算程序规模的估计值: ,用代码行技术度量软件规模时,当程序较小时常用的单位是代码行数(LOC),当程序较大时常用的单位是千行代码数(KLOC)。,10.1.2 功能点

3、技术 功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。这种方法用功能点(FP)为单位,度量软件的规模。,1. 信息域特性 功能点技术定义了信息域的5个特性,分别是输入项数(Inp)、输出项数(Out)、查询数(Inq),主文件数(Maf)和外部接口数(Inf)。,2. 估算功能点的步骤 用下述三个步骤,可以估算出一个软件的功能点数(即软件规模)。,(1) 计算未调整的功能点数UFP 首先,把产品信息域的每个特性(即Inp、Out、Inq、Maf和Inf)都分类成简单级、平均级或复杂级。,根据其等级,为每个特性都分配一个功能点数,例如,一个平均级的输入项分配4个功能点,一个简

4、单级的输入项是3个功能点,而一个复杂级的输入项分配6个功能点。,然后,用下式计算未调整的功能点数UFPUFP=a1Inp+a2Out+a3Inq+a4Maf+a5Inf其中,ai(1i5)是信息域特性系数,其值由相应特性的复杂级别决定,如表10.1所示。,(2) 计算技术复杂性因子TCF 这一步将度量14种技术因素对软件规模的影响程度。这些因素包括高处理率、性能标准(例如,响应时间)、联机更新等,在表102中列出了全部技术因素,并用Fi(1i14)代表这些因素。,根据软件特点,为每个因素分配一个从0(不存在或对软件规模无影响)到5(有很大影响)的值。然后,用下式计算技术因素对软件规模的综合影响

5、程度DI:,技术复杂性因子TCF由下式计算: TCF=0.65+0.01DI 因为DI的值在070之间,所以TCF的值在0.651.35之间。,(3) 计算功能点数FP 功能点数FP由下式计算: FP=UFPTCF 功能点数与所用的编程语言无关,因此,功能点技术比代码行技术更合理一些。,但是,在判断信息域特性复杂级别及技术因素的影响程度时,存在相当大的主观因素。,10.2 工作量估算,计算机软件估算模型使用由经验导出的公式来预测软件开发的工作量,工作量是软件规模(LOC或FP)的函数,工作量的单位通常是人月(pm)。,支持大多数估算模型的经验数据,都是从有限个项目的样本集中总结出来的,因此,没

6、有一个估算模型能够适用于所有类型的软件和开发环境。,10.2.1 静态单变量模型 这类模型的总体结构形式如下: E=A+B(ev) C 其中,A、B和C是由经验数据导出的常数,E是以人月为单位的工作量,ev是估算变量(LOC或FP)。,此外,大多数模型都有某种形式的调整成分,使得E能够依据项目的其他特性(例如,问题的复杂程度、开发人员的经验、开发环境等)加以调整。下面给出几个典型的静态单变量模型。,1. 面向LOC的估算模型 (1) WalstonFelix模型 E=5.2(KLOC)0.91 (2) BaileyBasili模型 E=5.5+0.73(KLOC)1.16,(3) Boehm简

7、单模型 E=3.2(KLOC)1.05 (4) Doty模型(在KLOC9的情况下) E=5.288(KLOC)1.407,2.面向FP的估算模型 (1) Albrecht & Gaffney模型 E=-13.39+0.0545FP (2) Kemerer模型 E=60.627.72810-8FP3 (3) Maston、Barnett和Mellichamp模型 E=585.7+5.12FP,10.2.2 动态多变量模型 动态多变量模型也称为软件方程式,它是根据从4000多个当代软件项目中收集的生产率数据推导出来的。,这种模型把工作量看作是软件规模和开发时间这两个变量的函数。动态多变量估算模型

8、的形式如下: E=LOCB0.333/P3(1/t) 4,其中, E是以人月或人年为单位的工作量; t是以月或年为单位的项目持续时间;,B是“特殊技术因子”,它随着对集成、测试、质量保证、文档及管理技术的需求的增长而缓慢增加,对于较小的程序(KLOC=510),B=0.16,对于超过70KLOC的程序,B=0.39; P是“生产率参数”,它反映了下述因素对工作量的影响:, 总体的过程成熟度及管理水平; 使用良好的软件工程实践的程度; 使用的程序设计语言的级别; 软件环境的状态; 软件项目组的技术及经验; 应用系统的复杂程度。,当开发实时嵌入式软件时,典型值是P=2000;对于电信和系统软件来说

9、,P=10000;对于商业系统应用,P=28000。适用于当前项目的生产率参数,可以从历史数据导出。,应该注意,软件方程式有两个独立的变量:对软件规模的估算值(用LOC表示);以月或年为单位的项目持续时间。,从(10.2)式可以看出,开发同一个软件(即LOC固定)的时候,如果把项目持续时间延长一些,则可降低完成项目所需要的工作量。,10.2.3 COCOMO2模型,1997年Boehm等人提出的COCOMO2模型,是原始的COCOMO模型的修订版,它反映了十多年来在成本估计方面所积累的经验。,下面以后体系结构模型为例,介绍COCOMO2模型。该模型把软件开发工作量表示成代码行数(KLOC)的非

10、线性函数:,i=1,其中, E是开发工作量(以人月为单位); a是模型系数; KLOC是估计的源代码行数(以千行为单位); b是模型指数; fi (i=117)是成本因素。,每个成本因素都根据它的重要程度和对工作量影响大小被赋予一定数值(称为工作量系数)。,与原始的COCOMO模型相比,COCOMO2模型使用的成本因素有下述变化,这些变化反映了在过去十几年中软件行业取得的巨大进步。,(1) 新增加了4个成本因素,它们分别是要求的可重用性、需要的文档量、人员连续性(即人员稳定程度)和多地点开发。这个变化表明,这些因素对开发成本的影响日益增加。,(2) 略去了原始模型中的2个成本因素(计算机切换时

11、间和使用现代程序设计实践)。现在,开发人员普遍使用工作站开发软件,批处理的切换时间已经不再是问题。,而“现代程序设计实践”已经发展成内容更广泛的“成熟的软件工程实践”的概念,并且在COCOMO2工作量方程的指数b中考虑了这个因素的影响。,(3) 某些成本因素(分析员能力、平台经验、语言和工具经验)对生产率的影响(即工作量系数最大值与最小值的比率)增加了,另一些成本因素(程序员能力)的影响减小了。,COCOMO2采用了更加精细得多的b分级模型,这个模型使用5个分级因素Wi(1i5),其中每个因素都划分成从甚低(Wi=5)到特高(Wi=0)的6个级别,然后用下式计算b的数值: b=1.01+0.0

12、1Wi,COCOMO2使用的5个分级因素如下所述: (1) 项目先例性。 (2) 开发灵活性。 (3) 风险排除度。 (4) 项目组凝聚力。 (5) 过程成熟度。,10.3 进度计划,项目管理者的目标是定义全部项目任务,识别出关键任务,跟踪关键任务的进展状况,以保证能及时发现拖延进度的情况。为了做到这一点,管理者必须制定一个足够详细的进度表,以便监督项目进度,并控制整个项目。,软件项目的进度安排是一项活动,它通过把工作量分配给特定的软件工程任务,并规定完成各项任务的起、止日期,从而将估算的工作量分布于计划好的项目持续期内。,10.3.1 基本原则 下述的基本原则能够指导软件项目的进度安排。,1

13、. 划分 2. 相互依赖性 3. 时间分配 4. 工作量确认,5. 定义责任 6. 定义结果 7. 定义里程碑,10.3.2 Gantt图 Gantt图(甘特图)是历史悠久、应用广泛的进度计划工具,下面通过一个非常简单的例子介绍这种工具。,图10.1 旧木板房刷漆工程的Gantt图,为了醒目地表示里程碑,可以在Gantt图中加上菱形标记,一个菱形代表一个里程碑,如图10.2所示。,图10.2 标有里程碑的Gantt图,10.3.3 工程网络 上一小节介绍的Gantt图能很形象地描绘任务分解情况,以及每个子任务(作业)的开始时间和结束时间,因此是进度计划和进度管理的有力工具。它具有直观简明和容易

14、掌握、容易绘制的优点,但是Gantt图也有三个主要缺点:, 不能显式地描绘各项作业彼此间的依赖关系; 进度计划的关键部分不明确,难于判定哪些部分应当是主攻和主控的对象; 计划中有潜力的部分及潜力的大小不明确,往往造成潜力的浪费。,当把一个工程项目分解成许多子任务,并且它们彼此间的依赖关系又比较复杂时,仅仅用Gantt图作为安排进度的工具是不够的,不仅难于做出既节省资源又保证进度的计划,而且还容易发生差错。,工程网络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解情况以及每项作业的开始时间和结束时间,此外,它还显式地描绘各个作业彼此间的依赖关系。,因此,工程网络是系统分析和系统设计的强

15、有力的工具。,在工程网络中用箭头表示作业(例如,刮旧漆,刷新漆,清理等),用圆圈表示事件(一项作业开始或结束)。注意,事件仅仅是可以明确定义的时间点,它并不消耗时间和资源。,作业通常既消耗资源又需要持续一定时间。图10.3是旧木板房刷漆工程的工程网络。图中表示刮第1面墙上旧漆的作业开始于事件1,结束于事件2。用开始事件和结束事件的编号标识一个作业,因此“刮第1面墙上旧漆”是作业12。,图10.3 旧木板房刷漆工程的工程网络 图中:12刮第1面墙上的旧漆;23刮第2面墙上的旧漆; 24给第1面墙刷新漆;35刮第3面墙上旧漆; 46给第2面墙刷新漆;47清理第1面墙窗户; 58刮第4面墙上旧漆;68给第3面墙刷新漆; 79清理第2面墙窗户;810给第4面墙刷新漆; 910清理第3面墙窗户;1011清理第4面墙窗户; 虚拟作业:34;56;67;89。,在工程网络中的一个事件,如果既有箭头进入又有箭头离开,则它既是某些作业的结束又是另一些作业的开始。,例如,图10.3中事件2既是作业12(刮第1面墙上的旧漆)的结束,又是作业23(刮第2面墙上旧漆)和作业24(给第1面墙刷新漆)的开始。,也就是说,只有第1面墙上的旧漆刮完之后,才能开始刮第2面墙上旧漆和给第1面墙刷新漆这两个作业。因此,工程网络显式地表示了作业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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