2、确定功能大小(规范性)
2.1将应用模型元素输入功能分级
2.1.1 KDM中应用模型的表示
应用模型元素应实例化为现有的KDM(Knowledge Discovery Meta-model)元素,其关系如表7.1,然后将这些KDM元素转换为自动功能点过程中使用的SMM(Structured Metrics Meta-model)元素,这一国际标准主要集中在关系数据库上,因为这是最普遍的商业用途的数据库结构形式支持其他表示,尽管目前对其尺寸的需求有限。本国际标准可扩展到今后需要的其他表述修订。
应用程序功能大小应为每个数据和事务功能的功能大小之和。这个每个数据和事务功能的功能大小应通过评估其单独的复杂性,然后使用这个复杂度结果为每个函数分配一个大小。尺寸确定过程应在SMM中表示。以KDM元素表示的应用模型元素的计数应转换为
单位:SMM中的尺寸测量,以启动尺寸调整过程。
2.1.2将KDM应用模型元素转换为SMM输入
函数点大小算法的SMM表示中的单位:维数度量是数据元素类型(DETs)、记录元素类型(RETs)和参考文件类型(FTRs),如第4条所定义。这些单位:维度度量基于用KDM元素表示的应用程序模型元素的计数。如表7.2所示。将被计算为DET、RET和FTR的元素将按以下方式确定。他们是根据中定义的内部逻辑文件、外部接口文件、外部输入和外部输出进行开发如同第4条定义。
ILF = data:RelationalTable or data:DataSegment or data:RecordFile,
where (data:RelationalTable or data:DataSegment or data:RecordFile) ∩ inventoryModel:SourceFile =
inventoryModel:SourceFile.
EIF = data:RelationalTable or data:DataSegment or data:RecordFile,
where (data:RelationalTable or data:DataSegment or data:RecordFile) ∩ inventoryModel:SourceFile = ∅ .
DET = data:ItemUnit ∈ ILF or EIF.
RET = data:ContentGroup ∈ (data:RelationalTable or data:DataSegment or data:RecordFile),
where (data:RelationalTable or data:DataSegment or data:RecordFile) ∈ ILF or EIF
EI = code:MethodUnit or code:CallableUnit or code:ControlElement,
where (action:Addresses, action:Writes, action:Creates, or data:WritesColumnSet) data:ItemUnit ∈ ILF or EIF
EO = code:MethodUnit or code:CallableUnit or code:ControlElement,
where (action:Addresses, action:Reads or data:ReadsColumnSet) data:ItemUnit ∈ ILF or EIF
FTR = (data:RelationalTable or data:DataSegment or data:RecordFile) ∈ ILF or EIF
where ILF or EIF ∈ EI or EO
2.2 SMM(Structured Metrics Metamodel)测量类型
此类表示度量值的类别。一个类别有度量值和其他类别作为其元素。类别表示与“元素”直接关联的度量值和每个子类别的度量值。同样与“元素”相关。度量值可能出现在多个类别中。类别可以是其他类别的子类别,仅指示它的度量也是这些其他类别的度量。此类可用于表示适用于不同范围(如代码行)的一系列类似度量。
在文件中,方法中的代码行和程序中的代码行。它也可能代表一类度量与给定的域或工程任务关联。例如,我们经常提到质量保证指标和软件可维护性度量。度量的类别可以表示度量的用途用于:
•环境指标(如屏幕数量、程序、代码行等)
•数据定义度量(例如,数据组的数量、重叠的数据组、未使用的数据元素等)
•项目过程度量(例如,Halstead、McCabe等)
•架构度量(例如,平均嵌套级别、最深嵌套级别等)
•功能指标(例如系统中定义的功能、业务数据占所有数据的百分比、功能当前系统映射到目标体系结构中的功能等。)
•质量指标(例如每天故障、故障到故障、维修时间等)
•性能指标(例如,平均批处理窗口时钟时间、平均在线响应时间等)
•软件保障指标
度量分类也有其他用途。例如,度量可以按工具支持进行分类。
度量是指为实体分配可比较数值或符号值的评估过程,以便描述所选实体的品质或特征。计算软件应用程序中的程序代码行数是一个这样的评价。可能有许多测量方法可以用不同的尺寸、分辨率、准确度等来表征特征。此外,性状或特征可以是广义的或专门的。例如,行长度是长度的专门化。这是规模的专业化。
每个度量都有一个范围,一组适用的实体,以及度量具有特征。例如,前面提到的行计数有软件应用程序作为其与行的作用域。长度是其可测量的特征之一。明确表示范围和可测量特性允许考虑对同一组实体具有相同属性的不同度量。每个可测量的性状可能有多种不同的测量方法。
2.3确定数据函数大小
数据函数的大小应基于数据元素类型(DETs)和记录元素类型的数量(RETs)与每个单独的数据函数(ILF或EIF)关联。一旦确定了每个独特的数据函数,应使用以下公式来确定数据函数的大小。首先,确定使用以下规则的数据函数复杂性。
If 1 ≤ DET ≤ 19, Then DET_LF = 1
If 20 ≤ DET ≤ 50, Then DET_LF = 2
If DET > 50, Then DET_LF = 3
If RET = 1, Then RET_LF = 1
If 2 ≤ RET ≤ 5, Then RET_LF = 2
If RET > 5, Then RET_LF = 3
If DET_LF + RET_LF 3, Then DFC = 1
If DET_LF + RET_LF = 4, Then DFC = 2
If DET_LF + RET_LF > 4, Then DFC = 3
Where DET = Data Element Type
DET_LF = Rescaled DET value
RET = Record Element Type
RET_LF = Rescaled RET value
DFC = Data Function Complexity
For Data Function Complexity, 1 = low complexity, 2 = medium complexity, and 3 = high complexity. The calculation of
Data Function Complexity is presented in tabular form in Table 7.2.
一旦确定了每个数据函数(ILF或EIF)的数据函数复杂性,就可以使用它来分配根据以下规则为数据函数提供适当的加权大小分数。数据函数大小的计算以表7.3的表格形式给出。
For Internal Logical File Weights,
If DFC = 1, then wILF = 7
If DFC = 2, then wILF = 10
If DFC = 3, then wILF = 15
For External Interface File Weights,
If DFC = 1, then wEIF = 5
If DFC = 2, then wEIF = 7
If DFC = 3, then wEIF = 10
Where DFC = Data Function Complexity
wILF = Internal Logical File Weights
wELF = External Interface File Weights
2.4确定事务函数大小
事务函数的大小应根据上下文中使用的数据函数和数据元素的数量来定义。每个已识别的事务函数。如果数据函数的任何表或表字段使用。每个数据功能(ILF或EIF)应标识为参考文件类型(FTR),每个表字段应已标识数据元素类型(DET)。
对于输入事务,引用的文件类型(ftr)应指引用的数据函数(ILF或EIF)。读取、创建或更新。输入交易的盘点应遵循以下规则:
•为每个维护的ILF计算一个FTR。
•在处理外部输入期间,对每个ILF或EIF读取计数一个FTR。
•对于外部输入维护和读取的每个ILF,只计算一个FTR。
DET的数量应等于根据以下规则确定的字段总数:
•对于完成外部输入所需的每个唯一字段,只计算一个DET。对于输出事务,引用的文件类型(FTR)应指引用、读取或更新的文件数量。
•在基本过程的处理过程中,为每个ILF或EIF读取计数一个FTR。
•计算基本过程处理期间维护的每个ILF的FTR。
•对于基本过程维护和读取的ILF,只计算一个FTR。
DET的数量应等于根据以下规则确定的字段总数:
•对于完成输出事务所需的每个唯一字段,只计算一个DET。
•如果一个DET同时进入和退出边界,则对基本过程只计算一次该DET。
一旦为每个独特的交易功能确定了DET和FTR,则应采用以下公式:
用于根据加权的外部输入大小和加权的外部输出大小。首先,使用遵守规则。对于外部输入复杂性,1=低复杂性,2=中等复杂性,3=高复杂性。
表7.4和表7.5以表格形式给出了加权外部输入尺寸的计算。
If 1 DET 4, Then DET_EI = 1
If 5 DET 15, Then DET_EI = 2
If DET > 15, Then DET_EI = 3
If FTR < 2, Then FTR _EI = 1
If FTR = 2, Then FTR _EI = 2
If FTR > 2, Then FTR _EI = 3
For External Input Complexity:
IF DET_EI + FTR _EI 3, Then EIC = 1
IF DET_EI + FTR _EI = 4, Then EIC = 2
IF DET_EI + FTR _EI > 4, Then EIC = 3
For External Input Weights
If EIC = 1, then wEI = 3
If EIC = 2, then wEI = 4
If EIC = 3, then wEI = 6
Where DET = Data Element Type
DET_EI = Rescaled DET value
FTR = File Type Referenced
FTR _EI = Rescaled FTR value
EIC = External Input Complexity
wEI = External Input Weights
其次,使用以下规则确定外部输出复杂性和加权外部输出大小。这个表7.6和表7.7以表格形式给出了加权外部输出尺寸的计算。
For External Output Files:
If 1 DET 5, Then DET_EO = 1
If 6 DET 19, Then DET_EO = 2
If DET > 19, Then DET_EO = 3
If FTR < 2, Then FTR _EO = 1
If 2 FTR 3, Then FTR _EO = 2
If FTR > 3, Then FTR _EO = 3
For External Output Complexity:
IF DET_EO + FTR _EO 3, Then EOC = 1
IF DET_EO + FTR _EO = 4, Then EOC = 2
IF DET_EO + FTR _EO > 4, Then EOC = 3
For External Output Weights,
If EOC = 1, then wEO = 4
If EOC = 2, then wEO = 5
If EOC = 3, then wEO = 7
Where, DET = Data Element Type
DET_EO = Rescaled DET value
FTR = File Type Referenced
FTR _EO = Rescaled FTR value
EOC = External Output Complexity
wEO = External Output Weights
2.5确定功能点大小
自动功能点尺寸确定过程的最后一步是计算应用程序。应使用表7.3、表7.5中的权重计算应用程序的功能点大小。如表7.8所示,各单元格的内容见表7.7。这些加权总额应为求和,根据以下公式确定最终函数点的应用大小。
Automated Function Point Size (AFPs) = (ILFs + EIFs + EIs + Eos)
Where
ILFs = 7 Σ ILF DFC=1 + 10 Σ ILF DFC=2 + 15 Σ ILF DFC=3
EIFs = 5 Σ EIF DFC=1 + 7 Σ EIF DFC=2 + 10 Σ EIF DFC=3
EIs = 3 Σ EI EIC=1 + 4 Σ EI EIC=2 + 6 Σ EI EIC=3
Eos = 4 Σ EO EOC=1 + 5 Σ EO EOC=2 + 7 Σ EO EOC=3
And,
ILF DFC=x = Internal Logical Files whose Data Function Complexity (DFC) = X, where 1 ≤ X ≤ 3.
EIF DFC=x = External Interface Files whose Data Function Complexity (DFC) = X, where 1 ≤ X ≤ 3.
EI EIC=x = External Inputs whose External Input Complexity (EIC) = X, where 1 ≤ X ≤ 3.
EO EOC=x = External Outputs whose External Output Complexity (EOC) = X, where 1 ≤ X ≤ 3.
ILF:Internal Logical File
EIF: External Interface File
EI:External Input
EO:External Output
2.6产生输出
自动化处理过程的最后一步应产生输出。输出应该是一个研发人员可读的报告,包含足够的详细信息以回答以下问题:
•应用程序的功能大小是多少?
•应用程序的复杂性在哪里?
•流程中使用的假设是什么?
生成的输出文件格式应为通用文本文件格式(例如.txt或.csv),以允许导入到其他工具。
例如Excel或商业软件评估包。数据函数的类型和特征以及应使用KDM术语描述事务函数的基础源代码。
输出应包括以下工件:
•整体功能点尺寸。
•数据功能列表(IFL、EIF(External Interface File)),包括DETs(Data Element Type)、RETs(Record Element Type)和权重。
•事务功能清单EI(External Input)、EO(External Output)(可以是逻辑EO或EQ),包括DET、FTR和权重。
•数据函数和事务函数之间的映射。
•输入中指定的模式匹配但被忽略的所有实例的列表以及实例被忽略的原因忽略。例如,一个被忽略的数据结构列表和与每个结构匹配的输入模式,即*状态(状态实体)。
•每个功能的尺寸。
•源代码中每个数据函数和事务函数基础元素的位置。
•应用程序使用的外部API列表。
•用于生成输出的完整输入列表。
符合本国际标准的自动化功能点尺寸确定实施应产生列出并详细说明数据和事务函数及其相关方式的详细报告(之间的映射事务功能和FTR。这些报告的简要示例见表7.9和表7.10。
(完)