第4讲软件度量_第1页
第4讲软件度量_第2页
第4讲软件度量_第3页
第4讲软件度量_第4页
第4讲软件度量_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第4讲讲 软件估算与度量软件估算与度量 2022-3-7第4讲软件度量 软件工程教研室讲授内容讲授内容n项目案例项目案例n什么是软件度量?什么是软件度量?n为什么需要软件度量?为什么需要软件度量?n软件度量的内容软件度量的内容n软件度量的方法软件度量的方法n软件度量案例软件度量案例n小结小结2022-3-7第4讲软件度量 软件工程教研室教学目的与要求教学目的与要求n理解理解q什么是软件度量?什么是软件度量?q为什么需要软件度量?为什么需要软件度量?q软件度量的方式和对象软件度量的方式和对象n掌握掌握q软件度量的方法软件度量的方法n运用运用q运用软件度量支持和促进软件开发运用软件度量支持和促进

2、软件开发2022-3-7第4讲软件度量 软件工程教研室项目案例项目案例n案例角色和人物案例角色和人物小张:软件项目负责人小张:软件项目负责人老张:公司技术老总老张:公司技术老总2022-3-7第4讲软件度量 软件工程教研室n在项目策划阶段的碰头会上在项目策划阶段的碰头会上q公司技术总监询问小张项目开发估计需要多少时间,公司技术总监询问小张项目开发估计需要多少时间,需要多少成本?需要多少成本?q小张回答说小张回答说“时间估计不会太长,成本也在一个可时间估计不会太长,成本也在一个可接受的范围之内接受的范围之内”,老张显然对这种回答不满意,老张显然对这种回答不满意,他希望能够得到一个较为准确定量性的

3、描述他希望能够得到一个较为准确定量性的描述q经过一番考虑后,小张确认回答说经过一番考虑后,小张确认回答说“时间时间78个月,个月,成本需成本需4045万万”,老张显然对这种回答也不满意,老张显然对这种回答也不满意,况且用户要求在况且用户要求在6个月内完成项目。于是他进一步个月内完成项目。于是他进一步问道问道“你是如何得到这组数据你是如何得到这组数据”,小张显然没有准,小张显然没有准备,也没有充分的依据,于是他哑口无言备,也没有充分的依据,于是他哑口无言2022-3-7第4讲软件度量 软件工程教研室n在制定软件项目计划时在制定软件项目计划时q小张不知如何预测项目可能所需的工作量?小张不知如何预测

4、项目可能所需的工作量?q小张不知如何预测项目可能所需的成本?小张不知如何预测项目可能所需的成本?q小张不知所制定的计划是否可行和科学?小张不知所制定的计划是否可行和科学?q因此,小张尽管制定了软件开发计划,但对于该计因此,小张尽管制定了软件开发计划,但对于该计划能否得到有效的实施、实施能否遵循计划执行没划能否得到有效的实施、实施能否遵循计划执行没有足够的信心。有足够的信心。2022-3-7第4讲软件度量 软件工程教研室n项目已进展了项目已进展了2个月,各个方面进展尚可,在某个月,各个方面进展尚可,在某周的碰头会上,老张继续向小张发问周的碰头会上,老张继续向小张发问q“目前软件质量如何?目前软件

5、质量如何?”,小张回答道,小张回答道“不错不错”q老张对这种回答不满意,他希望能够得到一个较为老张对这种回答不满意,他希望能够得到一个较为准确定量性的描述,但是小张又没有办法给他一个准确定量性的描述,但是小张又没有办法给他一个更加确切的答复,实际上连他自己也没有办法说清更加确切的答复,实际上连他自己也没有办法说清楚目前软件产品的质量情况,因为他只有直观的、楚目前软件产品的质量情况,因为他只有直观的、定性了解。定性了解。2022-3-7第4讲软件度量 软件工程教研室软件项目管理问题软件项目管理问题n在软件项目实施过程中,需要哪些方面的定量描在软件项目实施过程中,需要哪些方面的定量描述以促进软件项

6、目的有效开发和管理?述以促进软件项目的有效开发和管理?n如何获取这些方面的科学定量描述?如何获取这些方面的科学定量描述?n如何在软件项目开发过程中集成度量?如何在软件项目开发过程中集成度量?n如何将这些定量描述用于指导软件项目的管理?如何将这些定量描述用于指导软件项目的管理?2022-3-7第4讲软件度量 软件工程教研室1、什么是软件度量?、什么是软件度量?n软件度量是对软件开发项目资源、过程及其产品的简单属软件度量是对软件开发项目资源、过程及其产品的简单属性进行数据定义、收集以及分析的持续性定量化过程,目性进行数据定义、收集以及分析的持续性定量化过程,目的在于对此加以理解、预测、评估、控制和

7、改善。的在于对此加以理解、预测、评估、控制和改善。q产品:软件开发过程中所生成的各种文档和程序产品:软件开发过程中所生成的各种文档和程序q过程:与软件开发有关的各种活动,如软件设计等过程:与软件开发有关的各种活动,如软件设计等q资源:软件开发过程中所需支持,如人员、费用等资源:软件开发过程中所需支持,如人员、费用等n注意点注意点q定量描述定量描述,而不是定性描述而不是定性描述q简单属性简单属性,无需参照其它属性便可直接获得定量描述无需参照其它属性便可直接获得定量描述2022-3-7第4讲软件度量 软件工程教研室n软件测量软件测量(Measure)是对软件产品、软件开发过是对软件产品、软件开发过

8、程和资源程和资源复杂属性复杂属性的定量描述,它是简单属性度的定量描述,它是简单属性度量值的函数,软件测量用于事后或实时状态量值的函数,软件测量用于事后或实时状态, 如如软件可靠性软件可靠性n注意点注意点q定量描述定量描述,而不是定性描述而不是定性描述q复杂属性复杂属性-不可直接获得、需参照其它属性的度量不可直接获得、需参照其它属性的度量值值q实时或者事后状态实时或者事后状态,用于对历史进行评估用于对历史进行评估2022-3-7第4讲软件度量 软件工程教研室n估算估算(Estimation)对软件产品、软件开发过程和资源对软件产品、软件开发过程和资源复杂复杂属性属性的定量描述,它是简单属性度量值

9、的函数,软件估算的定量描述,它是简单属性度量值的函数,软件估算用于事前用于事前, 如软件开发成本如软件开发成本n注意点注意点q定量描述定量描述,而不是定性描述而不是定性描述q复杂属性复杂属性-不可直接获得、需参照其它属性的度量值不可直接获得、需参照其它属性的度量值q事前状态事前状态q可采用经验公式,也可参考历史资料和数据。估算的可采用经验公式,也可参考历史资料和数据。估算的 结果结果一般用于签订合同、立项、制定工作计划等一般用于签订合同、立项、制定工作计划等2022-3-7第4讲软件度量 软件工程教研室2、为什么需要软件度量、为什么需要软件度量n任何工程化的工作都需要度量,软件工程也不例外任何

10、工程化的工作都需要度量,软件工程也不例外q准确了解工程的实施情况准确了解工程的实施情况n项目实施之前项目实施之前q辅助制定软件项目的计划辅助制定软件项目的计划q估算成本和工作量,以便制定计划估算成本和工作量,以便制定计划n项目实施过程中项目实施过程中q提供软件开发的可视性提供软件开发的可视性q跟踪和控制软件项目的开发跟踪和控制软件项目的开发q评估软件开发质量,进行质量控制评估软件开发质量,进行质量控制q加强风险管理加强风险管理n项目实施之后项目实施之后q对项目的实施情况进行评估对项目的实施情况进行评估q为后续项目的积累经验数据为后续项目的积累经验数据2022-3-7第4讲软件度量 软件工程教研

11、室3、软件度量的内容、软件度量的内容n三个方面三个方面q产品:各种文档和程序产品:各种文档和程序q过程:各种软件开发活动过程:各种软件开发活动q资源:各种资源如人员、费用等资源:各种资源如人员、费用等n二个层次二个层次q内部属性内部属性n软件产品,过程和资源本身所具有属性,如软件产品的复杂度、软件产品,过程和资源本身所具有属性,如软件产品的复杂度、程序长度等程序长度等n易于度量易于度量q外部属性外部属性n软件产品,过程和资源与外部环境软件产品,过程和资源与外部环境(用户、管理人员等用户、管理人员等)间的关间的关系如成本、效益、可靠性、可维护性等系如成本、效益、可靠性、可维护性等n难以度量,但由

12、内部属性所决定难以度量,但由内部属性所决定2022-3-7第4讲软件度量 软件工程教研室2022-3-7第4讲软件度量 软件工程教研室软件度量主要指标软件度量主要指标: :类别第一级第二级单位1进度进度1.1各阶段计划进度各阶段计划进度小时小时 1.2各阶段实际进度各阶段实际进度小时小时1.3进度偏差进度偏差%1.4各阶段进度百分比各阶段进度百分比%1.5修复缺陷时间修复缺陷时间小时小时1.6生产率生产率1.6.1开发率开发率千行代码千行代码/小时小时 1.6.2复查率复查率千行代码千行代码/小时小时2成本成本2.1各阶段计划成本各阶段计划成本元元2.2各阶段实际成本各阶段实际成本元元2.3成

13、本偏差成本偏差%2.4各阶段成本百分比各阶段成本百分比%2.5修复缺陷所需的成本修复缺陷所需的成本元元2.6预防成本预防成本元元2.7鉴定成本鉴定成本元元2.8内部损失成本内部损失成本元元2.9外部损失成本外部损失成本元元2022-3-7第4讲软件度量 软件工程教研室类别第一级第二级单位2.10损失成本损失成本元元2.11质量成本质量成本元元2成本成本2.12损失率损失率2.12.1内部损失率内部损失率%2.12.2外部损失率外部损失率%3规模规模3.1各阶段文档规模各阶段文档规模页页3.2总文档规模总文档规模页页3.3测试用例个数测试用例个数个个3.4功能点数功能点数个个4质量质量4.1代码

14、缺陷密度代码缺陷密度4.1.1千行代码总缺陷密度千行代码总缺陷密度个个/千行千行4.1.2交付后千行代码缺陷密度交付后千行代码缺陷密度个个/千行千行4.1.3测试发现缺陷密度测试发现缺陷密度个个/千行千行4.1.4代码评审发现缺陷密度代码评审发现缺陷密度个个/千行千行4.1.5文档评审发现缺陷密度文档评审发现缺陷密度个个/页页4.1.6基于功能点的缺陷密度基于功能点的缺陷密度个个/点点4.2按阶段统计缺陷数按阶段统计缺陷数个个4.3按缺陷类型统计缺陷数按缺陷类型统计缺陷数个个2022-3-7第4讲软件度量 软件工程教研室类别第一级第二级单位4质量质量4.4按严重级别统计缺陷数按严重级别统计缺陷

15、数个个4.5阶段缺陷率阶段缺陷率%4.6交付前完成的缺陷率交付前完成的缺陷率%4.7测试用例通过个数测试用例通过个数个个4.8测试用例未通过个数测试用例未通过个数个个4.9没有执行的测试用例个数没有执行的测试用例个数个个4.10测试用例通过率测试用例通过率%4.11测试用例功能需求覆盖数测试用例功能需求覆盖数个个4.12测试用例功能需求覆盖率测试用例功能需求覆盖率%5风险风险5.1按阶段统计风险发生数按阶段统计风险发生数 个个5.2按风险类型统计风险数按风险类型统计风险数 个个6顾客满意顾客满意6.1顾客提出问题在各个环节停留时间顾客提出问题在各个环节停留时间小时小时6.2顾客提出问题解决时间

16、顾客提出问题解决时间小时小时6.3顾客提出问题平均解决时间顾客提出问题平均解决时间小时小时2022-3-7第4讲软件度量 软件工程教研室4、软件度量的方法、软件度量的方法l软件度量流程软件度量流程l面向规模的度量面向规模的度量l面成功能的度量面成功能的度量l项目成本和工作量估算项目成本和工作量估算l软件度量模型软件度量模型2022-3-7第4讲软件度量 软件工程教研室4.1软件度量流程软件度量流程数据表及指示图2022-3-7第4讲软件度量 软件工程教研室4.2面向规模的度量面向规模的度量n用软件代码行数目来表示软件项目规模用软件代码行数目来表示软件项目规模q生产率生产率: PM = L /

17、E, L表示代码总量表示代码总量(单位:单位:KLOC),E表示软件工作量表示软件工作量(单位:人月单位:人月) q每千行代码的平均成本:每千行代码的平均成本:CKL = S / L,S为软件项为软件项目总开销目总开销 q文档与代码比文档与代码比: Dl = Pd / L,Pd表示文档页数表示文档页数q代码出错率代码出错率: EQRl = Ne / L,Ne表示代码出错的数表示代码出错的数目目2022-3-7第4讲软件度量 软件工程教研室项目项目(KLOC) 人月人月成本成本($)文档页数文档页数 错误错误 人员人员a12.124241680001680003653651341343 3b27

18、.227.26262440000440000122412243213215 5c20.220.24343314000314000105010502562566 62022-3-7第4讲软件度量 软件工程教研室n优点优点q简单易行,自然直观简单易行,自然直观n缺点缺点q依赖于程序设计语言的表达能力和功能依赖于程序设计语言的表达能力和功能q软件开发初期很难估算出最终软件的代码行数软件开发初期很难估算出最终软件的代码行数q对精巧的软件项目不合适对精巧的软件项目不合适q只适合于过程式程序设计语言只适合于过程式程序设计语言2022-3-7第4讲软件度量 软件工程教研室4.3面向功能的度量面向功能的度量n

19、用软件的功能表示软件的规模用软件的功能表示软件的规模q“功能功能”不能直接度量,需要依靠其他度量结果导不能直接度量,需要依靠其他度量结果导出出q功能点度量涉及多种因素功能点度量涉及多种因素q项目开发初期就可估算出项目开发初期就可估算出 q功能点计算目前主要基于经验公式功能点计算目前主要基于经验公式2022-3-7第4讲软件度量 软件工程教研室n功能点计算方法功能点计算方法qFP = (0.65 + 0.01 Fi)CTqCT : 5个信息量的个信息量的“加权和加权和”qFi: 14个因素的个因素的“复杂性调节值复杂性调节值” (i =1.14)q0.65, 0.01都是经验常数都是经验常数20

20、22-3-7第4讲软件度量 软件工程教研室复杂度加权因子表复杂度加权因子表复杂度复杂度功能要素功能要素低低平均平均高高用户输入数用户输入数EIEI3 34 46 6用户输出数用户输出数EOEO4 45 57 7用户查询表用户查询表EQEQ3 34 46 6内部逻辑文件数内部逻辑文件数ILFILF7 710101515外部接口文件数外部接口文件数EIFEIF5 57 710102022-3-7第4讲软件度量 软件工程教研室nCT的计算方法的计算方法q输入功能数输入功能数加权因子加权因子(简单简单=3,平均平均=4,复杂复杂=5)q输出功能数数输出功能数数加权因子加权因子(简单简单=4,平均平均=

21、5,复杂复杂=7)q查询功能数数查询功能数数加权因子加权因子(简单简单=3,平均平均=4,复杂复杂=6)q文件数文件数加权因子加权因子(简单简单=7,平均平均=10,复杂复杂=15)q外部界面数外部界面数加权因子加权因子(简单简单=5,平均平均=7,复杂复杂=10)nCT 上述计算值的总和上述计算值的总和2022-3-7第4讲软件度量 软件工程教研室例如,有一个由例如,有一个由2525个数据的登记表、个数据的登记表、5 5个接口文件,个接口文件,1515个报告、个报告、1010个外部查询和个外部查询和2020个逻辑内部表单组成的系统,其复杂度都个逻辑内部表单组成的系统,其复杂度都是平均的,则考

22、虑复杂度加权的功能点为:是平均的,则考虑复杂度加权的功能点为:CTCT(25x425x4)+ +(5x75x7)+ +(15x515x5)+ +(10 x410 x4)+ +(20 x1020 x10)450450个功能点。个功能点。 2022-3-7第4讲软件度量 软件工程教研室n以下以下14个因素个因素Fi的取值的取值(0,1,2,3,4,5):0-没有影响,没有影响,1-偶有影响,偶有影响,2-轻微影响,轻微影响,3-平均影响,平均影响,4-较大影较大影响,响,5-严重影响严重影响2022-3-7第4讲软件度量 软件工程教研室n优点优点q与程序设计语言无关与程序设计语言无关, 在开发前就

23、可以估算出软件在开发前就可以估算出软件项目的规模项目的规模(事前事前)n不足不足q没有直接涉及算法的复杂度,不适合算法比较复杂没有直接涉及算法的复杂度,不适合算法比较复杂的软件系统;的软件系统;q功能点计算主要靠经验公式,主观因素比较多功能点计算主要靠经验公式,主观因素比较多q数据不好采集数据不好采集2022-3-7第4讲软件度量 软件工程教研室代码行度量和功能点度量间的关系代码行度量和功能点度量间的关系上表即呈現一些较較普遍的程式語言之代码行数转换关系。上表即呈現一些较較普遍的程式語言之代码行数转换关系。2022-3-7第4讲软件度量 软件工程教研室4.4成本和工作量估算成本和工作量估算n软

24、件项目成本和工作量估算常用方法软件项目成本和工作量估算常用方法q参照和依据已完成项目的历史数据参照和依据已完成项目的历史数据q将大项目分解为小项目将大项目分解为小项目q将项目按照软件生命周期分解将项目按照软件生命周期分解q根据经验估算公式根据经验估算公式n上述方法可以同时、单独或者组合使用上述方法可以同时、单独或者组合使用2022-3-7第4讲软件度量 软件工程教研室4.4.1代码行、功能和工作量估算代码行、功能和工作量估算n软件项目规模计算软件项目成本和工作量软件项目规模计算软件项目成本和工作量q估算出估算出FP或者或者LOC期望值期望值e = (a + 4m + b)/6q依据历史数据估算

25、出工作量和成本依据历史数据估算出工作量和成本n根据根据PM = FP(LOC)/ E计算出工作量计算出工作量n根据根据C = S/FP(LOC) 计算出成本计算出成本生产率生产率 PM; E工作量;工作量; S总成本;总成本; C单位成本单位成本功能点数功能点数FP ;代码行数;代码行数LOC2022-3-7第4讲软件度量 软件工程教研室4.4.2 案例案例: 代码行和功能点估算代码行和功能点估算n软件描述软件描述(CAD软件软件)qCAD图形软件可接受来自用户的二维和三维几何数图形软件可接受来自用户的二维和三维几何数据,用户通过界面与据,用户通过界面与CAD软件进行交互,并控制它,软件进行交

26、互,并控制它,该软件具有良好的人机界面设计的特征。所有的几该软件具有良好的人机界面设计的特征。所有的几何数据及其支持信息存放在数据库中。开发设计分何数据及其支持信息存放在数据库中。开发设计分析模块,以产生所需的输出,这些输出将显示在各析模块,以产生所需的输出,这些输出将显示在各种不同的图形化设备上。软件在设计中要考虑与外种不同的图形化设备上。软件在设计中要考虑与外设进行交互并控制它们,包括鼠标、数字化仪、打设进行交互并控制它们,包括鼠标、数字化仪、打印机等等。印机等等。2022-3-7第4讲软件度量 软件工程教研室n软件子系统划分软件子系统划分q图形用户界面及其控制机制图形用户界面及其控制机制

27、q二维几何分析二维几何分析q三维几何分析三维几何分析q数据库管理数据库管理q图形显示图形显示q外设控制外设控制(与打印机、数字化仪、扫描仪的接口与打印机、数字化仪、扫描仪的接口)q设计分析子系统设计分析子系统2022-3-7第4讲软件度量 软件工程教研室n估算出各个子系统的代码行,例如三维几何分析功能估算出各个子系统的代码行,例如三维几何分析功能的代码行估算范围为:的代码行估算范围为:q乐观值:乐观值:4 600q可能值:可能值:6 900q悲观值:悲观值:8 600q估算值:估算值: e = (a + 4m + b)/6 = 6 800子子 系系 统统 代代 码码 行行 图 形 用 户 界

28、面 及 其 控 制 机 制 2 3 0 0 二 维 几 何 分 析 5 3 0 0 三 维 几 何 分 析 6 8 0 0 数 据 库 管 理 3 3 5 0 图 形 显 示 4 9 5 0 外 设 控 制 ( 与 打 印 机 、 扫 描 仪 等 的 接 口 ) 2 1 0 0 设 计 分 析 子 系 统 8 4 0 0 总 代 码 行 估 算 值 3 3 2 0 0 2022-3-7第4讲软件度量 软件工程教研室n历史数据历史数据q平均生产率平均生产率PM: 620 LOC/PM(620行代码行代码/人月人月)q每个人月的成本每个人月的成本 C = 8000¥n估算项目成本和工作量估算项目成

29、本和工作量q估算工作量估算工作量 = 总代码行总代码行/PM= 33200/620=54人月人月q估算成本估算成本 = 估算工作量估算工作量 每个人月的成本每个人月的成本 = 54人人月月 8000 = 432000¥2022-3-7第4讲软件度量 软件工程教研室n基于功能点估算基于功能点估算信信 息息 域域 乐乐观观值值 可可能能值值 悲悲观观值值 估估 算算计计 数数 加加 权权因因 子子 F FP P计计数数 输输 入入 数数 20 24 30 24 4 96 输输 出出 数数 12 15 22 16 5 80 查查 询询 数数 16 22 28 22 4 88 文文 件件 数数 4 4

30、 5 4 10 40 接接 口口 数数 2 2 3 2 7 14 总总 计计 318 2022-3-7第4讲软件度量 软件工程教研室nStep2: 计算复杂度调整因子计算复杂度调整因子:(0.65 + 0.01 Fi)i=1.17因因子子 值值 备备份份和和复复原原 4 数数据据通通信信 2 分分布布式式处处理理 0 关关键键性性能能 4 操操作作环环境境 3 联联机机数数据据登登陆陆 4 多多屏屏幕幕输输入入切切换换 5 主主文文件件联联机机更更新新 3 因因子子 值值 信信息息域域值值复复杂杂性性 5 内内部部处处理理复复杂杂性性 5 软软件件重重用用 4 转转换换和和安安装装 3 多多次

31、次安安装装 5 方方便便修修改改 5 复复杂杂度度调调节节因因子子 1.17 2022-3-7第4讲软件度量 软件工程教研室nStep3:计算出计算出FP的估算值的估算值qFP = (0.65 + 0.01 Fi)CT = 372nStep4:历史数据历史数据q平均生产率平均生产率 6.5 FP/PMq每个人月的成本每个人月的成本 C = 8000¥(平均月薪平均月薪)nStep5:估算成本和工作量估算成本和工作量q工作量工作量 58人月人月q成本成本 457000¥2022-3-7第4讲软件度量 软件工程教研室4.5 软件度量模型软件度量模型nCoCoMo模型模型n什么是什么是CoCoMo模

32、型?模型?qCOCoMo是指是指Constructive Cost Model,构造性,构造性成本模型,成本模型,Boehm于于1981年提出,用于对软件开年提出,用于对软件开发项目的规模、成本、进度等方面进行估算发项目的规模、成本、进度等方面进行估算qCoCoMo模型是一个综合经验模型,模型中的参数模型是一个综合经验模型,模型中的参数取值来至于经验值,并且综合了诸多的因素、比较取值来至于经验值,并且综合了诸多的因素、比较全面的估算模型全面的估算模型q比较实用、可操作,在欧盟国家应用较为广泛比较实用、可操作,在欧盟国家应用较为广泛2022-3-7第4讲软件度量 软件工程教研室nCoCoMo模型

33、的层次模型的层次 支持不同的阶段支持不同的阶段q基本基本COCoMo模型模型n系统开发的初期,估算整个系统的工作量系统开发的初期,估算整个系统的工作量(包括维护包括维护)和软件开发和维护所需的时间和软件开发和维护所需的时间q中间中间COCoMo模型模型n估算各个子系统的工作量和开发时间估算各个子系统的工作量和开发时间q详细详细COCoMo模型模型n估算独立的软构件,如各个子系统的各个模块的工估算独立的软构件,如各个子系统的各个模块的工作量和开发时间作量和开发时间2022-3-7第4讲软件度量 软件工程教研室n基本基本CoCoMo模型模型qE = a (kLOC)b ;E是工作量是工作量(人月人

34、月) ,a和和b是经验常数是经验常数qD = c Ed ;D是开发时间是开发时间(月月) ,c和和d是经验常数是经验常数q其中,其中,a,b,c,d为经验常数,其取值见下表为经验常数,其取值见下表 软软件件类类型型 a b c d 适适用用范范围围 组组织织型型 2.4 1.05 2.5 0.38 各各类类应应用用程程序序 半半独独立立型型 3.0 1.12 2.5 0.35 各各类类编编译译程程序序等等 嵌嵌入入型型 3.6 1.20 2.5 0.32 实实时时软软件件、OS等等 2022-3-7第4讲软件度量 软件工程教研室n中间中间CoCoMo模型模型qE = a (kLOC)b EAF

35、 q其中,其中,E表示工作量表示工作量(人月人月),EAF表示工作量调节因表示工作量调节因子,子,a,b为经验常数,其取值见下表为经验常数,其取值见下表 软软 件件 类类 型型 a b 组组 织织 型型 3 .2 1 .0 5 半半 独独 立立 型型 3 .0 1 .1 2 嵌嵌 入入 型型 2 .8 1 .2 0 2022-3-7第4讲软件度量 软件工程教研室n工作量调节因子工作量调节因子EAF与软件产品属性、计算机属性、人与软件产品属性、计算机属性、人员属性和项目属性的共员属性和项目属性的共15个要素个要素Fi(i=1,2,15)有关。有关。151iFiEAF2022-3-7第4讲软件度量

36、 软件工程教研室n详细详细COCOMOCOCOMO模型模型q用于估算独立的软部件,它包含中间模型的所有特用于估算独立的软部件,它包含中间模型的所有特性,并详细对工作量调节因子在软件过程中每个步性,并详细对工作量调节因子在软件过程中每个步骤的影响做出评估。首先把系统分为系统、子系统骤的影响做出评估。首先把系统分为系统、子系统和模块多个层次,然后先在模块层应用估算方法得和模块多个层次,然后先在模块层应用估算方法得到它们的工作量再估算子系统层,最后算出系统到它们的工作量再估算子系统层,最后算出系统层。详细的层。详细的COCOMO对于生存期的各个阶段使用对于生存期的各个阶段使用不同的工作量系数不同的工

37、作量系数2022-3-7第4讲软件度量 软件工程教研室案例分析:案例分析:n用基本用基本CoCoMo模型估算项目的工作量、开发时模型估算项目的工作量、开发时间和参加项目开发的人数间和参加项目开发的人数qCAD软件:目标代码行软件:目标代码行33.2kLOC,属于中等规模,属于中等规模,半独立型,因而半独立型,因而a = 3.0, b = 1.12, c = 2.5, d = 0.35qE = 3.0*(33.2)1.12 =152 PMqD = 2.5*(152)0.35 = 14.5 (月月)q参加项目人数参加项目人数N = E/D = 152/14.5 = 11(人人)2022-3-7第4

38、讲软件度量 软件工程教研室小结小结n软件项目的实施需要定量描述软件项目的实施需要定量描述(前、中、后前、中、后)n软件度量:定量描述软件度量:定量描述q针对软件产品、过程和资源针对软件产品、过程和资源q内部属性和外部属性内部属性和外部属性q测量和估算测量和估算n工作量和成本度量:规模和功能工作量和成本度量:规模和功能n度量模型度量模型2022-3-7第4讲软件度量 软件工程教研室应用案例应用案例1:需求:实现一个订单的录入,更新,删除和查询功能。订需求:实现一个订单的录入,更新,删除和查询功能。订单信息是指一个用户订购的公司产品的情况其中订单头单信息是指一个用户订购的公司产品的情况其中订单头包

39、含了具体的类型,订购时间,发运地址,客户名称等信包含了具体的类型,订购时间,发运地址,客户名称等信息,订单明细包含了订购的具体产品的数量的情况。息,订单明细包含了订购的具体产品的数量的情况。1 1)确定计算范围:确定计算范围: 使用功能点技术按信息域特征对软件项目进行分解成与使用功能点技术按信息域特征对软件项目进行分解成与本订单相关的数据保存、删除、输出和查询操作。本订单相关的数据保存、删除、输出和查询操作。2022-3-7第4讲软件度量 软件工程教研室功能界面情况:功能界面情况: 2022-3-7第4讲软件度量 软件工程教研室2 2)功能点分析功能点分析 分析分析DET数:根据功能界面情况分

40、析,对于组合框数:根据功能界面情况分析,对于组合框DET算算2, 其余界面控件其余界面控件DET都算都算1; 分析分析FTR数:这里需要操作订单数据文件、客户数据文件数:这里需要操作订单数据文件、客户数据文件和产品数据文件,和产品数据文件,FTR数应该算数应该算3. 分析分析RET数:订单文件有数:订单文件有7个个DET,后台数据表会涉及到,后台数据表会涉及到两个数据表。由于订单头和订单明细有关联关系,所以这里两个数据表。由于订单头和订单明细有关联关系,所以这里RET取取2。 客户文件和产品文件虽然不是外部系统文件,但本次开发客户文件和产品文件虽然不是外部系统文件,但本次开发的功能并不需要再去

41、设计该数据文件和数据表,所以这里把的功能并不需要再去设计该数据文件和数据表,所以这里把其作为其作为EIF来处理,所以来处理,所以EIF 为为2。2022-3-7第4讲软件度量 软件工程教研室EI,EOEI,EO和和EQEQ事务功能分析:事务功能分析:如:订单保存事务包含了如:订单保存事务包含了3个组合框(个组合框(6个个DET)、)、3个编辑个编辑框、框、1个按钮和个按钮和5个表格单元共个表格单元共15个个DET。3个文件。个文件。如:订单文件包含了具体的订单号、类型、订单名称、订购如:订单文件包含了具体的订单号、类型、订单名称、订购时间、发运地址、客户名称等时间、发运地址、客户名称等7个个D

42、ET。ILFILF和和EIFEIF事务功能分析:事务功能分析:2022-3-7第4讲软件度量 软件工程教研室3)3)未调整的功能点计算(未调整的功能点计算(UFCUFC)事务项低平均高小计小计用户输入数EI2*318*40*678用户输出数EO11*40*50*744用户查询表EQ4*315*40*672内部逻辑文件数ILF25*70*100*15175外部接口文件数EIF7*50*70*1085合计2721320404 根据复杂度加权因子,将每个计数与一个复杂度值(加权因子)相乘,最后根据复杂度加权因子,将每个计数与一个复杂度值(加权因子)相乘,最后进行合计,算出一个加权功能点数进行合计,算

43、出一个加权功能点数UFC=404。2022-3-7第4讲软件度量 软件工程教研室4 4)确定技术复杂度因子确定技术复杂度因子DIDI:调节参数调节参数(Ei)取值取值调节参数调节参数(Ei)取值取值数据通讯数据通讯 0复杂运算复杂运算 1软件性能软件性能 3代码复用性代码复用性 2可配置性可配置性 2安装简易性安装简易性 4事务效率事务效率 3操作方便性操作方便性 4实时数据输入实时数据输入 0跨平台要求跨平台要求 0用户界面复杂度用户界面复杂度 2可扩展性可扩展性 3在线升级在线升级 3分布式数据处理分布式数据处理 0程序程序复杂度总计复杂度总计:DI = Ei = 27Ei = 27202

44、2-3-7第4讲软件度量 软件工程教研室5 5)功能点调节:计算出经调节后的功能点数:)功能点调节:计算出经调节后的功能点数:调整项目复杂度调整项目复杂度(TCFTCF):0.65 + (0.01* 27) = 0.92已已调整调整功能功能点数点数(FP):UFCUFC * TCFTCF = 404 * 0.92 = 3726 6) 转换成建立系统所需的代码行转换成建立系统所需的代码行 系统以系统以VB 程序语言來开发,它將代表性地需要编写约程序语言來开发,它將代表性地需要编写约11160(即即372*30)行代码。行代码。2022-3-7第4讲软件度量 软件工程教研室应用案例应用案例2:教学

45、管理系统:教学管理系统 教学管理系统要求实现以下四大功能:教学管理系统要求实现以下四大功能:(1)系统管理)系统管理 由于系统有不同的使用者由于系统有不同的使用者(学生、教师、教务管理人员等学生、教师、教务管理人员等),要根据,要根据不同的使用者进行使用范围的划分,因此包括用户划分和密码设置的功不同的使用者进行使用范围的划分,因此包括用户划分和密码设置的功能。能。(2)学籍管理)学籍管理 登录学生基本信息、注册信息;对学习成绩信息等进行处理(查询、登录学生基本信息、注册信息;对学习成绩信息等进行处理(查询、打印);对新生分配学号;对学生异动打印);对新生分配学号;对学生异动(休、复、退、转学、

46、开除学籍等休、复、退、转学、开除学籍等)进行处理。进行处理。(3)课程管理)课程管理 包括课程设置、教师信息、开课计划、教学计划、课程评估等的录包括课程设置、教师信息、开课计划、教学计划、课程评估等的录入、修改、查询、显示和打印等功能;入、修改、查询、显示和打印等功能;(4)成绩管理)成绩管理 进行各种学习成绩的录入、修改和删除;成绩的各种查询、统计、进行各种学习成绩的录入、修改和删除;成绩的各种查询、统计、备份等。备份等。2022-3-7第4讲软件度量 软件工程教研室系统数据流图系统数据流图 2022-3-7第4讲软件度量 软件工程教研室功能界面需求情况功能界面需求情况2022-3-7第4讲

47、软件度量 软件工程教研室1)确定计算范围:)确定计算范围: 使用功能点技术估算软件规模时,不是基于软件功能而是按信息域特使用功能点技术估算软件规模时,不是基于软件功能而是按信息域特征对软件项目进行分解成最小的用户应用,以下以学籍管理为例进行讨论。征对软件项目进行分解成最小的用户应用,以下以学籍管理为例进行讨论。学籍管理主要可分解为对学籍信息进行保存(更新学籍管理主要可分解为对学籍信息进行保存(更新/删除)、输出(报表统删除)、输出(报表统计)和查询操作。计)和查询操作。2)功能点分析)功能点分析 分析分析DET数:主要根据输入界面情况分析,对于组合框数:主要根据输入界面情况分析,对于组合框DET算算2, 其余其余界面控件界面控件DET都算都算1,在还没有设计界面时按每个数据输入项,在还没有设计界面时按每个数据输入项DET为为1进行进行估算。估算。 分析分析FTR数:这里需要操作学籍档案、成绩档案和班级档案,数:这里需要操作学籍档案、成绩档案和班级档案,FTR数数应该算应该算3。 分析分析RET数:学籍档案有数:学籍

温馨提示

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

评论

0/150

提交评论