《软件计划》课件.ppt
《《软件计划》课件.ppt》由会员分享,可在线阅读,更多相关《《软件计划》课件.ppt(82页珍藏版)》请在三一办公上搜索。
1、第14章 软件计划,14.1 软件范围界定14.2 资源需求14.3 项目估算14.4 软件项目计划的结构14.5 项目计划的分解求精14.6 计划跟踪监督14.7 计划执行情况的度量与计划调控14.8 小结,14.1 软件范围界定,软件项目计划的第一个活动是确定软件的范围。软件范围描述了软件项目的功能、性能、约束条件、接口以及可靠性等质量指标。此项工作旨在进一步将项目的开发任务明确化、具体化,并进行必要的功能分解,为下一步的估算工作打下基础。,在软件项目开始时,虽然已经定义了要求,并确立了基本的目标,但是还不足以作为开展估算的基础。必须对分配给软件的功能需求、性能需求进行评价,从管理角度和技
2、术角度出发,确定明确的、可理解的项目范围。关于软件范围的描述应当尽量给出定量的说明(如最大并发用户数,最大允许响应时间等),给出约束条件或针对项目的限制(例如成本限制、运行环境的限制等)。此外,还要界定某些质量因素(如可靠性等)。由于对成本和进度的估算都和项目功能有关,因此常常采用某种程度的功能分解细化,以便结合历史数据,采用面向规模或面向功能的方法对项目规模、成本、工作量、进度、风险、资源诸方面做出估算。,性能的考虑包括处理复杂度和系统响应时间的需求;约束条件则标志着外部硬件或其他现有系统对软件的限制。功能、性能和约束必须在一起进行综合的评价。因为在功能相同时,性能限制不同,可能将导致开发工
3、作量相差一个数量级,成本和进度也会有显著的差别。软件和其他元素是相互作用的。计划制定者要考虑每个接口的性质和复杂程度,以确定其对资源、成本和进度的影响。接口的概念可以解释为:(1)运行软件的硬件及间接受软件控制的设备和软件之间的接口。(2)必须和新软件连接的现有软件和新软件之间的接口。(3)人机接口。(4)软件运行前后的一系列操作过程。,针对每一种接口,都应当明确地理解通过接口的信息转换要求。项目要求的软件可靠性指标也应当作为一种约束予以考虑,以便在进行规模、成本、工作量估算时能够更加精确。在FP度量方法中,功能点复杂度加权因子和从F1F14的取值就反映了约束条件对最终度量结果的影响。作为例子
4、,我们对一个传送带分类系统(如图14.1所示)的软件需求进行范围界定。,图14.1 一个传送带分类系统,原始的功能需求陈述:传送带分类系统(CLSS)用来传送贴有识别条码的六类不同的产品。产品通过由一个条码阅读器和一台PC机组成的分类站。分类站的PC机连到一个分流器上,分流器将不同的产品分送到不同的包装箱中去。CLSS软件以和传送带速度一致的时间间隔接收条码阅读器送来的数据,将条码数据译码转换为产品标识符的规定格式并以此为查询键值。在最多可容纳1000个条目的数据库中进行查询检索,以便确定当前产品应当放入哪个箱子中。查出来的该箱子的编号被送到分流器,分流器将根据接收到的数据将产品推入指定的箱子
5、中。同时,每一个产品放入哪个箱子的信息还要写入数据库中备用。,CLSS软件还要接收来自脉冲流速计的输入,用以使控制信号和流速计同步。根据分类站和分流器之间产生的脉冲个数,软件将在适当时产生一个控制信号给分流器,以适当地确定产品去向。根据以上陈述,我们就可以开始进行范围界定工作。,需求范围界定:(1)读条形码作为输入。(2)读脉冲流速计输入。(3)对条码数据进行解码。(4)检索查询数据库。(5)确定合适的箱子号。(6)产生并输出分流器控制信号。(7)保存当前产品被存入的箱子的纪录。,性能要求:每一个产品的全部处理都必须在下一个产品到达分类站之前处理完毕(根据传送带的流速可以换算出最大可接受的响应
6、时间指标)。接口要求:(1)PC和分类站之间的数据接口,用来传送原始条码数据。(2)PC和脉冲流速计之间的接口,用来接收同步脉冲数据。(3)PC和分流器之间的接口,用来输出分流器驱动数据。,约束条件:(1)传送带匀速运动。(2)传送带上的产品间隔均匀摆放。如上例所示,进行了软件范围界定之后,就可以综合考虑功能、性能、接口、约束条件要求,开始进行计划的下一步工作确定资源需求并进行估算。,14.2 资 源 需 求,在进行了范围界定之后,软件计划的第二个任务是估算为完成本软件开发工作所需要的资源。包括人力资源、可复用软件资源和环境资源(如图14.2所示)。资源金字塔的底层是开发环境,包括硬件和软件工
7、具,提供支持开发工作的基础;再高一层是可复用的软件构件软件建筑块,能够极大地降低开发成本并缩短交付时间;金字塔的顶端是人力资源,这是资源中的主要成分。在项目计划中,针对所需要的每类资源,都应当从资源描述、可用性说明、需要该资源的时间以及该资源被使用的持续时间四个特征上进行说明。,图14.2 资源金字塔,计划者在开始时要评估需求范围并选择完成开发所需要的技术。对于开发组中所需要的各种角色(如项目经理、系统分析员、设计师、程序员等)和他们应当具备的专业技能都要进行描述。这就显化了对人力资源的能力要求。但所需要的人数要等到完成了项目工作量估算之后才能结合交付时间的限制完全确定。在开发过程的各个阶段,
8、对人力资源的需求是不一样的(如图14.3所示),应当按照动态的需求来制定人力资源的需求计划。,图14.3 不同开发阶段的人员参与情况,一个软件开发组织,总是不断地将自己的开发成果积累起来,形成自己的软件财富库。有一些通用功能(例如权限管理、数据维护、通用查询等等)自然地就形成了可复用的软件构件。而且分析、设计阶段的工作产品也都存在着在类似项目中重用的可能。直接使用可复用构件,将会使开发工作量(不仅仅是编码量)因重用而下降。所以,在计划阶段,就应当考虑对可复用资源的需求。考虑到需求吻合程度,对可复用构件的使用,分为完全复用和修改复用两种情况:(1)存在着现成的、完全满足要求的软件构件,肯定应当重
9、用它。(2)对于必须进行修改才能重用的软件成分,要慎重处理,建议权衡了修改工作量和重新开发工作量的对比情况后再考虑是否重用。,在项目计划阶段,常常会忽视可复用构件重用问题,应当引起注意。硬件与软件资源环境,是支持软件开发的环境,通常称为“软件工程环境”,集成了硬件和软件两大部分。硬件提供了一个支持工具平台,如各类服务器、网络通信设备、各种外设等等;而软件资源是工作在这一平台上的工具集,包括分析设计工具、语言工具、中间件工具、数据库系统、操作系统等等。除了要明确所需要的软硬件资源环境之外,还应当明确地界定资源的时间窗口,并落实在指定的时间窗口中这些资源是否可用。,14.3 项 目 估 算,就本质
10、来说,项目估算就是“超前度量”。直接度量和间接度量两种模式,面向规模度量和面向功能度量两种方法都可以用来进行估算。但是,由于“超前”的特点,必要的基本度量数据往往难以直接得到,历史数据和基于经验的模型往往成为进行估算的依据。“度量基线”在进行估算时的作用十分显著。没有度量基线,项目估算的基础就十分薄弱,很不稳定。,就种类而言,计划者要进行的项目估算主要包括项目规模估算、开发工作量估算、开发成本估算、进度估算等等。在估算中最经常使用的方法包括:(1)使用简单的“分解技术”来进行项目规模、工作量和成本的估算。(2)使用一个或多个经验模型进行软件规模、工作量和成本的估算。,分解技术采用“分而治之”的
11、策略进行软件项目估算,将项目分解成若干主要功能及相关的软件工程活动,通过逐步求精的方式进行规模、工作量和成本的估算。经验估算模型是基于经验来进行的,可以表示成d=f(vi)其中d是要估算的对象,如规模、工作量、进度;vi 是选出来的独立参数(如FP、LOC)。这两种方法可以交叉使用,以便互相验证估算结果。也有一些自动估算工具能够实现一种或多种分解技术或经验模型,通过交互式地输入基本参数,自动完成估算,能够极大地提高估算效率。,14.3.1 基于问题分解的估算 分解方法包括问题分解和过程分解,都可以用来进行项目的估算。在项目估算过程中,“规模”是一个基本的度量。如果能够估算出项目的规模,那么结合
12、历史数据对规模进行计算与分析,就不难完成对工作量、成本的间接度量估算。在资源确定的前提下,进度估算也能够利用工作量估算结果,采用间接方法完成。就规模估算本身来说,只要界定了需求目标并且进行了必要的分解细化,那么既可以利用LOC方法进行直接度量,也能够使用功能点(或特征点、3D方法等)进行间接估算。,通过对“问题”的分解进行估算时,可以采用LOC或FP估算方法。LOC和FP的求取方法已经在前一章中介绍过,不再重复。具体来说,LOC和FP在估算中有两种作用:其一是作为一个估算变量,度量软件中每个成分的规模;其二是结合度量基线数据进行计算,得到工作量与成本估算数据。这时,来自度量基线中的生产率历史数
13、据起着非常重要的作用。,由于项目的多样性,只用一个单一的生产率历史数据来作决定是不科学的。应当根据经验,从乐观的、可能的、悲观的三种主观前提出发进行估算,根据计算出来的三个结果值再来计算LOC或FP的期望值。基于经验,可以采用下述加权求和公式来计算:EV=(Sopt+4Sm+Spess)/6上式中,Sopt代表“乐观”值,Sm代表“可能”值,Spess代表“悲观”值。公式中给“可能值”以最大权重,并遵循概率分布。一旦确定了估算变量的期望值,就可以开始使用历史的LOC或FP相关数据作下一步估算。这种方法称为“三点估算”方法。,例一 基于LOC估算的例子,范围说明如下:CAD软件接收来自工程师输入
14、的三维或二维几何数据。工程师通过用户界面和CAD软件进行交互,并控制它,该界面应当表现出良好的人机界面设计的特征。所有几何数据及其他支持信息都保存在一个CAD数据库中。要求开发设计分析模块,以产生必要的输出,这些输出将表现在不同的图形设备上。软件在设计中要考虑与外设交互并控制它们。除显示器之外,外设包括鼠标、数字化仪和激光打印机。假设已经对上述要求进行了求精和分解,界定了以下的主要软件子功能:,(1)用户界面及控制机制;(2)二维几何分析(2DGA);(3)三维几何分析(3DGA);(4)数据库管理(DBM);(5)计算机图形显示机制(CGDF);(6)外设控制(PC);(7)设计分析模块(D
15、AM)。,利用本组织的度量基线数据,遵照LOC的“三点”估算技术,对分解后的需求进行LOC估算。例如,对于3DGA功能:Sopt=4600;Sm=6900;Spess=8600。求得其期望值为EV=(Sopt+4Sm+Spess)/6=6800 LOC 类似地,求出其他被分解部分的LOC期望值,形成表14.1。,表14.1 基于问题分解的LOC方法的估算表,查询本组织的度量基线得知,此类系统的平均生产率为620LOC/PM;平均人月成本为8000美元/人月,则LOC平均成本为13美元/LOC。计算可知本项目的总成本为431 000美元,总工作量54个人月。如果人力资源投入六名合格的工程师,则预
16、计工期为九个月。例二 基于FP估算的例子。对于上例中的各个子功能进一步细化,将所有功能都分解为EI、EO、EQ以及ILF、EIF的组合,假设加权因子都取为“平均”,计算出各类功能点见表14.2。,表14.2 估算信息域值基于问题分解的FP估算,表14.3 CAD软件项目复杂度调整,最后,得到整个项目的FP估算期望值:FP=3180.65+0.01Fi=372(功能点)。查询组织的度量基线数据库得知,这类系统的平均生产率为6.5FP/PM,一个PM的成本仍取8000美元,则每个FP的平均成本约为1230美元,总项目成本估算约为457 000美元,工作量估算期望值是58个人月。,14.3.2 基于
17、过程分解的估算 通过对工作过程进行分解,也能够结合度量基线进行估算。方法是将过程分解为相对较小的活动或任务,估算出完成每项任务的工作量,最后汇总即可。和基于问题分解的估算一样,基于过程分解的估算也是开始于软件功能描述。对于每一个功能,都必须要执行一系列的活动,如果能够利用同类项目的度量基线估算出对应于每项任务所需要的工作量,则加总值就是本项目的工作量估算值。仍以CAD软件开发项目为例,基础参数见表14.4,仍然按照每人月8000美元计算,项目总成本368 000美元,工作量共46个人月。,表14.4 CAD软件项目基于过程分解的工作量估算,表14.4 CAD软件项目基于过程分解的工作量估算,由
18、上面的例子可见,采用不同的估算方法,结果会有一定的误差。这在一定范围内是正常的,可以用几种方法的平均估算值作为最终估算值。同时,也可以看出,度量基线在估算中的作用是无庸置疑的。如果几种方法的估算偏差过大(一般以20%为界),则需要分析原因,进行再估算。可能的原因主要有两种,其一是度量基线中的数据和当前问题的类型不匹配;其二是对项目的范围理解不充分。计划者必须确定偏差过大的原因,并调和各个估算结果。,14.3.3 经验估算模型 经验估算模型是用经验公式来进行项目的估算。因为公式是通过对有限样本集的分析得出的,因此得到的结果并不一定适合当前项目类型,这种方法应当慎重使用。使用这种方法,工作量是LO
19、C 或FP的函数。典型的经验估算模型是通过对以前项目中收集到的数据进行回归分析导出的。总体结构具有类似的形式:E=A+B(ev)C,其中,ev是估算变量,A、B、C是基于经验导出来的常数,E是以人月为单位的工作量值。同时,还可以在公式中加一些调整因素以便适应当前项目的特征。基于工作实践,许多人提出了行之有效的经验估算模型,主要的有:(1)面向LOC的经验估算模型:Walston-Felix模型 E=5.2(KLOC)0.91Bailey-Basili模型 E=5.5+0.73(KLOC)1.16Boehm的简单模型 E=3.2(KLOC)1.05,(2)面向FP的经验估算模型:Albrecnt
20、-Gaffney模型 E=13.39+0.0545 FPKemerer模型 E=60.627.728108(FP)3Maston-Barnett模型 E=585.7+5.12 FP 不同的模型来源于不同的样本数据集,结果对于相同的ev值会算出不同的结果。因此,估算模型必须按照当前项目特点进行调整。,14.3.4 COCOMO模型 构造性成本模型(COCOMO,Constructive Cost Model)是由Barry Boehm提出的一种被广为应用的估算模型,它共有三个层次。(1)基本的COCOMO模型:将软件开发工作量(及成本)作为程序规模函数进行计算,程序规模以估算的代码行数来表示。该
21、模型是一个静态单变量经验模型。(2)中级COCOMO模型:将软件开发工作量(及成本)作为程序规模及一组“成本驱动因子”的函数(共15项)来进行计算。其中,“成本驱动因子”包括对产品、硬件、人员及项目属性的主观评估。,(3)高级COCOMO模型:包含了中级模型的所有特征,并结合了成本驱动因子对软件工程过程中每一个步骤(分析、设计、编码等)的影响的评估。在COCOMO模型中,使用的基本量包括:源指令行数:DSI或KDSI,度量单位为行或千行,1KDSI=1024 DSI(不包括注释行)。开发工作量:MM,度量单位为“人月”,1MM=19人日=152 人时=1/12 人年。开发进度:TDEV,度量单
22、位为月,它由工作量确定。在使用COCOMO模型进行度量时,应当考虑到具体项目的特点和具体的开发环境。,软件项目的类型一般可以分为三类。(1)组织型:相对较小较简单的软件项目(KDSI50)。需求不很苛刻,开发人员对软件产品开发目标理解充分,软件工作经验丰富,对软件使用环境熟悉,受硬件约束小。多数应用软件均属此类。(2)嵌入型:要求在紧密联系的硬件、软件和操作的限制条件下运行。通常与某些硬设备紧密结合,因此对算法、数据结构、接口要求较高的软件规模任意。例如大型OS软件、大型指挥系统软件等都属此类。,(3)半独立型:要求介于以上两种之间的软件。规模、复杂性规模都在中等以上。KDSI可能在300以上
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件计划 软件 计划 课件
链接地址:https://www.31ppt.com/p-5064806.html