软件度量综述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
constructive cost model)
构造性成本模型(COCOMO)是一种精确、 易于使用的基于模型的成本估算方法, 最早由勃姆(Boehm)于1981年提出。 COCOMO模型具有估算精确、易于使用的 特点。 该模型按其详细程度分为3级:
基本COCOMO模型 中级COCOMO模型 高级COCOMO模型
14
面向FP的估算模型
Albrecht 和Gaffney
E=-13.39+0.0545FP
Kemerer
E=60.62*7.728*10^(-8)*FP^3
Maston、Barnett和 Mellichamp
E=585.7+5.12FP
15
德尔菲法(Delphi technique)
德尔菲法的步骤是:
顾客满意度要素 技术解决方案 支持与维护 市场营销 管理 交付 企业形象
27
顾客满意度要素的内容 质量、可靠性、有效性、易用性、价格、 安装、新技术 灵活性、易达性、产品知识 解决方案、接触点、信息 购买流程、请求手续、保证期限、注意事 项 准时、准确、交付后过程成单位,项目的顾 项目的顾 客满意度会受到项目要素的影响 ,可以细分为如表 客满意度 所示的度量要素: 要素: 要素
25
顾客满意度度量
顾客满意度指标(CSI:customer satisfaction index)以顾客满意研究为基础, 对顾客满意度加以界定和描述。 项目的顾客满意度度量
确定各类信息、数据、资料来源的准确性、客 观性、合理性、有效性,并以此建立产品、服 务质量的衡量指标和标准。
企业的顾客满意度度量
20
COCOMO模型中使用的基本量有以下几个:
(1)DSI(源指令条数),定义为代码行数, 包括除注释行以外的全部代码。若一行有 两个语句,则算做一条指令。 (2)MM(度量单位为人月)表示开发工作量。 (3)TDEV(度量单位为月)表示开发进度, 由工作量决定。 (4)COCOMO模型重点考虑15种影响软件工 作量的因素,并通过定义乘法因子,从而 准确、合理地估算软件的工作量。
软件度量综述
1
软件度量(software measurement)
软件度量(software measurement):对软件开 发项目、过程及其产品进行定量化的过程,目的 在于对其加以理解、预测、评估、控制和改善。 度量取向:软件开发的诸多事项,涉及项目、产 品和过程多方面,包括规模、成本、进度、可靠 性、功能性、易用性、缺陷、生产率、生命周期 等等。
23
细分估算法:
细分估算法是将整个项目系统分解成若 干个小系统,逐个估算成本,然后合计 起来作为整个项目的估算成本。细分估 算法通过逐渐细化的方式对每个小系统 进行详细的估算,可能获得贴近实际的 估算成本。其难点在于,难以把握各小 系统整合为大系统的整合成本。
24
周期估算法:
周期估算法是按软件开发周期进行划分, 估算各个阶段的成本,然后进行汇总合 计。周期估算法基于软件工程理论对软 件开发的各个阶段进行估算,很适合瀑 布型软件开发方法,但是需要估算者对 软件工程各个阶段的作业量和相互间的 比例具有相当的了解。
19
基本COCOMO模型
是一个静态单变量模型,它用一个已估算出 来的源代码行数(LOC)为自变量的函数来计算 软件开发工作量。
中级COCOMO模型
在用LOC为自变量的函数计算软件开发工作量 的基础上,再用涉及产品、硬件、人员、项 目等方面属性的影响因素来调整工作量的估 算
高级COCOMO模型
包括中级COCOMO模型的所有特性,但用上述 各种影响因素调整工作量估算时,还要考虑 对软件工程过程中分析、设计等各步骤的影 响。
3
软件度量的发展历程
4
软件度量流程
5
软件度量三维度 (考试)
6
项目度量
项目度量是针对软件开发项目的特定度 量,目的在于度量项目规模、项目成本、 项目进度、顾客满意度等。 项目度量目的:辅助项目管理、进行项 目控制。
7
规模度量
规模度量(size measurement)是估算软件项目工作量、 编制成本预算、策划合理项目进度的基础。 软件规模的估算方法: 代码行(LOC:lines of code) 功能点分析(FPA:function points analysis) 德尔菲法(Delphi technique) COCOMO模型 特征点(feature point) 对象点(object point) 3-D功能点(3-D function points) Bang度量(DeMarco‘s bang metric) 模糊逻辑(fuzzy logic) 标准构件法(standard component)等,
顾客满意度项目 软件产品 开发文档 项目进度以及交期 技术水平 沟通能力 运用维护
28
顾客满意度度量要素 功能性、可靠性、易用性、效率性、可维护性、 可移植性 文档的构成、质量、外观、图表以及索引、用语 交期的根据、进度迟延情况下的应对、进展报告 项目组的技术水平、项目组的提案能力、项目组 的问题解决能力 事件记录、式样确认、Q&A 支持、问题发生时的应对速度、问题解决能力
8
代码行(LOC:lines of code)
代码行(LOC):所有可执行源代码行数,包括可交付的工作控制语言 (JCL:job control language)语句、数据定义、数据类型声明、等 价声明、输入/输出格式声明等。 一代码行(1LOC)的价值和人月均代码行数可以体现一个软件组织的生 产能力。 可以根据对历史项目的审计来核算单行代码价值。 代码行LOC常用于源代码的规模估算,常使用的单位有:
SLOC (single line of code) KLOC (thousand lines of code) LLOC (logical line of code) PLOC (physical line of code) NCLOC (non-commented line of code) DSI (delivered source instruction)。
11
成为国际标准的功能点估算方法:
加拿大人艾伦·艾布恩(Alain Abran)等人提出的全 面功能点法(full function points); 英国软件度量协会(UKSMA:United Kingdom Software Metrics Association)提出的IFPUG 功能 点法(IFPUG function points); 英国软件度量协会提出的Mark II FPA功能点法 (Mark II function points); 荷兰功能点用户协会(NEFPUG:Netherlands Function Point Users Group)提出的NESMA 功能点 法; 软件度量共同协会(COSMIC:the COmmon Software Metrics Consortium)提出的COSMIC-FFP方法; …
产品度量
软件产品质量的生命周期及其度量 软件产品度量用于对软件产品进行评价, 并在此基础之上推进产品设计、产品制 造和产品服务优化。 软件产品的度量实质上是软件质量的度 量,而软件的质量度量与其质量的周期 密切相关,如图所示:
29
30
软件产品质量度量模型
软件产品的度量主要针对作为软件开发成果的软 件产品的质量而言,独立于其过程。 软件的质量由一系列质量要素组成,每一个质量 要素又由一些衡量标准组成,每个衡量标准又由 一些量度标准加以定量刻划。 质量度量贯穿于软件工程的全过程以及软件交付 之后。
9
面向LOC的估算模型
Walston-Felix模型
E=5.2*(KLOC)^0.91
Bailey-Basili模型
E=5.5+0.73*(KLOC)^1.16
Boehm模型
E=3.2*(KLOC)^1.05
Doty模型
E=5.288*(KLOC)^1.047
10
功能点分析法(FPA:function point analysis)
(1)协调人向各专家提供项目规格和估算表格; (2)协调人召集小组会和各专家讨论与规模相关的 因素; (3)各专家匿名填写迭代表格; (4)协调人整理出一个估算总结,以迭代表的形式 返回给专家; (5)协调人召集小组会,讨论较大的估算差异; (6)专家复查估算总结并在迭代表上提交另一个匿 名估算; (7)重复4~6,直到最低估算和最高估算一致。
17
Expert judgment专家评估(判断)
Analogy类推 Proportion Proportion预测(x悲观+4y乐观+z可能)/6 x Delphi technique Delphi 技术 Wolverton model Wolverton 模型
18
构造性成本模型(COCOMO:
21
成本度量
软件开发成本度量主要指软件开发项目 所需的财务性成本的估算。主要方法如 下:
类比估算法 细分估算法 周期估算法
22
类比估算法:
类比估算法是通过比较已完成的类似项 目系统来估算成本,适合评估一些与历 史项目在应用领域、环境和复杂度方面 相似的项目。其约束条件在于必须存在 类似的具有可比性的软件开发系统,估 算结果的精确度依赖于历史项目数据的 完整性、准确度以及现行项目与历史项 目的近似程度。
16
德尔菲法(Delphi)是最流行的专家评估 技术,在没有历史数据的情况下,这种 方式适用于评定过去与将来、新技术与 特定程序之间的差别,但专家“专”的 程度及对项目的理解程度是工作中的难 点,尽管德尔菲技术可以减轻这种偏差, 在评定一个新软件实际成本时通常用得 不多,但是,这种方式对决定其他模型 的输入时特别有用。
功能点分析法(FPA)是在需求分析阶段 基于系统功能的一种规模估算方法,是 基于应用软件的外部、内部特性以及软 件性能的一种间接的规模测量。 FPA法由IBM的工程师艾伦·艾尔布策 (Allan Albrech)于20世纪70年代提出, 随后被国际功能点用户协会(IFPUG: The International Function Point Users ’Group)提出的IFPUG方法继承。
12
功能点分析的主要步骤
13
功能点分析法的基本计数
外部输入数(EI:external input):计算每个用户输入, 它们向软件提供面向应用的数据。输入应该与查询区分开 来,分别计算。 外部输出数(EO:external output):计算每个用户输出, 它们向软件提供面向应用的信息。这里,输出是指报表、 屏幕、出错信息,等等。一个报表中的单个数据项不单独 计算。 外部查询数(EQ:external query):一个查询被定义为一 次联机输入,它导致软件以联机输出的方式产生实时的响 应。每一个不同的查询都要计算。 内部逻辑文件(ILF:internal logical file):计算每个 逻辑的主文件,如数据的一个逻辑组合,它可能是某个大 型数据库的一部分或是一个独立的文件。 外部接口文件(EIF:external interface file):计算所 有机器可读的接口,如磁带或磁盘上的数据文件,利用这 些接口可以将信息从一个系统传送到另一个系统。
度量取向的依据是:事实、数据、原理、法则; 度量取向的方法是:测试、审核、调查; 度量取向的工具是:统计、图表、数字、模型; 度量取向的标准是:量化的指标。
2
度量与量度
software measurement 和 software metrics分别译成软件度量和软件量度, 目前学界还没有明确这两个术语的区别, 从文献上看,这两个术语是同义词。大 多数人采用软件度量(software measurement)。
标准会因为各企业的经营理念、经营战略、经 营重点、价值取向、顾客满意度调查结果等因 素而有所不同。
26
美国专家斯蒂芬(Stephen H.Kan)在《软件质量工程的 度量与模型》(Metrics and Models in Software Quality Engineering)中给出的企业的顾客满意度要素: 企业的顾客满意度要素: 企业的顾客满意度要素
构造性成本模型(COCOMO)是一种精确、 易于使用的基于模型的成本估算方法, 最早由勃姆(Boehm)于1981年提出。 COCOMO模型具有估算精确、易于使用的 特点。 该模型按其详细程度分为3级:
基本COCOMO模型 中级COCOMO模型 高级COCOMO模型
14
面向FP的估算模型
Albrecht 和Gaffney
E=-13.39+0.0545FP
Kemerer
E=60.62*7.728*10^(-8)*FP^3
Maston、Barnett和 Mellichamp
E=585.7+5.12FP
15
德尔菲法(Delphi technique)
德尔菲法的步骤是:
顾客满意度要素 技术解决方案 支持与维护 市场营销 管理 交付 企业形象
27
顾客满意度要素的内容 质量、可靠性、有效性、易用性、价格、 安装、新技术 灵活性、易达性、产品知识 解决方案、接触点、信息 购买流程、请求手续、保证期限、注意事 项 准时、准确、交付后过程成单位,项目的顾 项目的顾 客满意度会受到项目要素的影响 ,可以细分为如表 客满意度 所示的度量要素: 要素: 要素
25
顾客满意度度量
顾客满意度指标(CSI:customer satisfaction index)以顾客满意研究为基础, 对顾客满意度加以界定和描述。 项目的顾客满意度度量
确定各类信息、数据、资料来源的准确性、客 观性、合理性、有效性,并以此建立产品、服 务质量的衡量指标和标准。
企业的顾客满意度度量
20
COCOMO模型中使用的基本量有以下几个:
(1)DSI(源指令条数),定义为代码行数, 包括除注释行以外的全部代码。若一行有 两个语句,则算做一条指令。 (2)MM(度量单位为人月)表示开发工作量。 (3)TDEV(度量单位为月)表示开发进度, 由工作量决定。 (4)COCOMO模型重点考虑15种影响软件工 作量的因素,并通过定义乘法因子,从而 准确、合理地估算软件的工作量。
软件度量综述
1
软件度量(software measurement)
软件度量(software measurement):对软件开 发项目、过程及其产品进行定量化的过程,目的 在于对其加以理解、预测、评估、控制和改善。 度量取向:软件开发的诸多事项,涉及项目、产 品和过程多方面,包括规模、成本、进度、可靠 性、功能性、易用性、缺陷、生产率、生命周期 等等。
23
细分估算法:
细分估算法是将整个项目系统分解成若 干个小系统,逐个估算成本,然后合计 起来作为整个项目的估算成本。细分估 算法通过逐渐细化的方式对每个小系统 进行详细的估算,可能获得贴近实际的 估算成本。其难点在于,难以把握各小 系统整合为大系统的整合成本。
24
周期估算法:
周期估算法是按软件开发周期进行划分, 估算各个阶段的成本,然后进行汇总合 计。周期估算法基于软件工程理论对软 件开发的各个阶段进行估算,很适合瀑 布型软件开发方法,但是需要估算者对 软件工程各个阶段的作业量和相互间的 比例具有相当的了解。
19
基本COCOMO模型
是一个静态单变量模型,它用一个已估算出 来的源代码行数(LOC)为自变量的函数来计算 软件开发工作量。
中级COCOMO模型
在用LOC为自变量的函数计算软件开发工作量 的基础上,再用涉及产品、硬件、人员、项 目等方面属性的影响因素来调整工作量的估 算
高级COCOMO模型
包括中级COCOMO模型的所有特性,但用上述 各种影响因素调整工作量估算时,还要考虑 对软件工程过程中分析、设计等各步骤的影 响。
3
软件度量的发展历程
4
软件度量流程
5
软件度量三维度 (考试)
6
项目度量
项目度量是针对软件开发项目的特定度 量,目的在于度量项目规模、项目成本、 项目进度、顾客满意度等。 项目度量目的:辅助项目管理、进行项 目控制。
7
规模度量
规模度量(size measurement)是估算软件项目工作量、 编制成本预算、策划合理项目进度的基础。 软件规模的估算方法: 代码行(LOC:lines of code) 功能点分析(FPA:function points analysis) 德尔菲法(Delphi technique) COCOMO模型 特征点(feature point) 对象点(object point) 3-D功能点(3-D function points) Bang度量(DeMarco‘s bang metric) 模糊逻辑(fuzzy logic) 标准构件法(standard component)等,
顾客满意度项目 软件产品 开发文档 项目进度以及交期 技术水平 沟通能力 运用维护
28
顾客满意度度量要素 功能性、可靠性、易用性、效率性、可维护性、 可移植性 文档的构成、质量、外观、图表以及索引、用语 交期的根据、进度迟延情况下的应对、进展报告 项目组的技术水平、项目组的提案能力、项目组 的问题解决能力 事件记录、式样确认、Q&A 支持、问题发生时的应对速度、问题解决能力
8
代码行(LOC:lines of code)
代码行(LOC):所有可执行源代码行数,包括可交付的工作控制语言 (JCL:job control language)语句、数据定义、数据类型声明、等 价声明、输入/输出格式声明等。 一代码行(1LOC)的价值和人月均代码行数可以体现一个软件组织的生 产能力。 可以根据对历史项目的审计来核算单行代码价值。 代码行LOC常用于源代码的规模估算,常使用的单位有:
SLOC (single line of code) KLOC (thousand lines of code) LLOC (logical line of code) PLOC (physical line of code) NCLOC (non-commented line of code) DSI (delivered source instruction)。
11
成为国际标准的功能点估算方法:
加拿大人艾伦·艾布恩(Alain Abran)等人提出的全 面功能点法(full function points); 英国软件度量协会(UKSMA:United Kingdom Software Metrics Association)提出的IFPUG 功能 点法(IFPUG function points); 英国软件度量协会提出的Mark II FPA功能点法 (Mark II function points); 荷兰功能点用户协会(NEFPUG:Netherlands Function Point Users Group)提出的NESMA 功能点 法; 软件度量共同协会(COSMIC:the COmmon Software Metrics Consortium)提出的COSMIC-FFP方法; …
产品度量
软件产品质量的生命周期及其度量 软件产品度量用于对软件产品进行评价, 并在此基础之上推进产品设计、产品制 造和产品服务优化。 软件产品的度量实质上是软件质量的度 量,而软件的质量度量与其质量的周期 密切相关,如图所示:
29
30
软件产品质量度量模型
软件产品的度量主要针对作为软件开发成果的软 件产品的质量而言,独立于其过程。 软件的质量由一系列质量要素组成,每一个质量 要素又由一些衡量标准组成,每个衡量标准又由 一些量度标准加以定量刻划。 质量度量贯穿于软件工程的全过程以及软件交付 之后。
9
面向LOC的估算模型
Walston-Felix模型
E=5.2*(KLOC)^0.91
Bailey-Basili模型
E=5.5+0.73*(KLOC)^1.16
Boehm模型
E=3.2*(KLOC)^1.05
Doty模型
E=5.288*(KLOC)^1.047
10
功能点分析法(FPA:function point analysis)
(1)协调人向各专家提供项目规格和估算表格; (2)协调人召集小组会和各专家讨论与规模相关的 因素; (3)各专家匿名填写迭代表格; (4)协调人整理出一个估算总结,以迭代表的形式 返回给专家; (5)协调人召集小组会,讨论较大的估算差异; (6)专家复查估算总结并在迭代表上提交另一个匿 名估算; (7)重复4~6,直到最低估算和最高估算一致。
17
Expert judgment专家评估(判断)
Analogy类推 Proportion Proportion预测(x悲观+4y乐观+z可能)/6 x Delphi technique Delphi 技术 Wolverton model Wolverton 模型
18
构造性成本模型(COCOMO:
21
成本度量
软件开发成本度量主要指软件开发项目 所需的财务性成本的估算。主要方法如 下:
类比估算法 细分估算法 周期估算法
22
类比估算法:
类比估算法是通过比较已完成的类似项 目系统来估算成本,适合评估一些与历 史项目在应用领域、环境和复杂度方面 相似的项目。其约束条件在于必须存在 类似的具有可比性的软件开发系统,估 算结果的精确度依赖于历史项目数据的 完整性、准确度以及现行项目与历史项 目的近似程度。
16
德尔菲法(Delphi)是最流行的专家评估 技术,在没有历史数据的情况下,这种 方式适用于评定过去与将来、新技术与 特定程序之间的差别,但专家“专”的 程度及对项目的理解程度是工作中的难 点,尽管德尔菲技术可以减轻这种偏差, 在评定一个新软件实际成本时通常用得 不多,但是,这种方式对决定其他模型 的输入时特别有用。
功能点分析法(FPA)是在需求分析阶段 基于系统功能的一种规模估算方法,是 基于应用软件的外部、内部特性以及软 件性能的一种间接的规模测量。 FPA法由IBM的工程师艾伦·艾尔布策 (Allan Albrech)于20世纪70年代提出, 随后被国际功能点用户协会(IFPUG: The International Function Point Users ’Group)提出的IFPUG方法继承。
12
功能点分析的主要步骤
13
功能点分析法的基本计数
外部输入数(EI:external input):计算每个用户输入, 它们向软件提供面向应用的数据。输入应该与查询区分开 来,分别计算。 外部输出数(EO:external output):计算每个用户输出, 它们向软件提供面向应用的信息。这里,输出是指报表、 屏幕、出错信息,等等。一个报表中的单个数据项不单独 计算。 外部查询数(EQ:external query):一个查询被定义为一 次联机输入,它导致软件以联机输出的方式产生实时的响 应。每一个不同的查询都要计算。 内部逻辑文件(ILF:internal logical file):计算每个 逻辑的主文件,如数据的一个逻辑组合,它可能是某个大 型数据库的一部分或是一个独立的文件。 外部接口文件(EIF:external interface file):计算所 有机器可读的接口,如磁带或磁盘上的数据文件,利用这 些接口可以将信息从一个系统传送到另一个系统。
度量取向的依据是:事实、数据、原理、法则; 度量取向的方法是:测试、审核、调查; 度量取向的工具是:统计、图表、数字、模型; 度量取向的标准是:量化的指标。
2
度量与量度
software measurement 和 software metrics分别译成软件度量和软件量度, 目前学界还没有明确这两个术语的区别, 从文献上看,这两个术语是同义词。大 多数人采用软件度量(software measurement)。
标准会因为各企业的经营理念、经营战略、经 营重点、价值取向、顾客满意度调查结果等因 素而有所不同。
26
美国专家斯蒂芬(Stephen H.Kan)在《软件质量工程的 度量与模型》(Metrics and Models in Software Quality Engineering)中给出的企业的顾客满意度要素: 企业的顾客满意度要素: 企业的顾客满意度要素