Page tree
Skip to end of metadata
Go to start of metadata

在此页:

目标用户:

CAST AI 管理员

简介

CAST OMG——符合的自动功能点技术是一种功能点自动计数方法。OMG在以下规范中定义了这种自动功能点计数方法:自动化功能点(AFP) —— 对象管理组

CAST通过自动使用CAST源代码分析器检索到的结构信息(基于架构的方法)来自动计数。以下由CAST生成的图像演示了检索到的这种结构信息的示例。CAST OMG——符合的自动功能点技术基于检索能力:

  • 数据库结构和关系(SQL和大型机)
  • 从GUI或批处理入口点到数据的事务结构     

用于计算强化功能点的测量      

CAST AIP使用两种不同的方法来计算强化功能点——当使用CAST管理器生成快照时,可以选择这两种方法:

OMG自动强化点(AEP)   

请注意默认情况下,这个测量值使用是从CAST AIP 8.2.x开始。

CAST集成了OMG自动强化点(AEP)的评估。与EFP一样,该特性有助于评估由生产应用团队实现演化的规模。它计算和显示修改、添加或删除的数据功能和事务功能,以及不属于任何事务应用的技术组件上的信息。计算出未调整的功能点,根据对象的复杂度,用复杂度因子进行加权。

有关AEP的详细信息,请参见CAST自动强化点估计 —— AEP

AEP测量同时考虑了应用强化的功能和技术方面。因此自动强化点的计算分为两个部分:自动强化功能点(AEFP)和自动强化技术点(AETP)。总AEP将是这两个的相加:AEP = AEFP + AETP

AEFP 计算

通过在应用中添加所有事务功能和数据功能的AEFP值,计算自动强化功能点的总价值。每个事务功能/数据功能的AEFP是通过将其FP值乘以其复杂性因子(AEFP = FP x CF)来计算的。某个事务功能/数据功能的复杂性因子是一个调整因子(由OMG规范定义),根据其状态(添加/修改/删除)和事务功能/数据功能中对象的复杂性进行计算。

注意:报告的AEFP值只包含添加、修改和删除的功能。将所有未更改的功能自动排除在该值之外(复杂性因子为0,因此其AEFP值也为0)。.

AETP 计算

自动强化技术点计算考虑应用中的所有技术对象,即那些不属于自动强化功能点范围的计算元素。

OMG强化功能点(EFP)

除了AEP外,CAST还集成了强化功能点(EFP)的估计,也称为项目功能点,因此CAST提供了基线化,即使用自动化功能点和强化功能点对整个应用进行分级。使用强化功能点特性,CAST AIP能够显示关于应用的两个版本之间以及同一应用的两个快照之间更改的详细信息。

这个特性有助于评估团队开发应用的效率。它在外包环境中特别有用,因为在确定可交付成果的大小时,许多外包合同都是基于FP的。此功能计算和显示已修改、添加或删除的数据功能和事务功能。对于每个应用,CAST AIP将提供3条不同的信息:

  1. 添加 FPs: 从Vn+1中创建的功能中识别的FPs(即由强化项目添加的FPs)     
  2. 修改 FPs: FPs被计算,因为在强化项目中已经存在的功能被改变
  3. 删除 FPs: 在强化项目中被删除的功能点

有关EFP的详细信息,请参考CAST强化功能点估计 —— EFP。   

两种测量方法之间的差异

旧版强化功能点(EFP)模式和自动强化功能点(AEP)模式(在CAST AIP 8.2中引入)之间的主要区别如下:

  • EFP没有考虑应用发展的技术方面;AEP做到了(计算自动强化技术点,AETP)。
  • EFP使用事务简化的调用图(从入口点到端点/数据实体);而AEP考虑事务完整调用图(它还包括未到达端点/数据实体的路径)。这意味着AEP事务调用图中的对象数量更高。
  • 用于计算强化功能点(EFP)的调整因子称为“影响因子”,它是基于固定的用户定义公式;与此相反,计算自动强化功能点的调整因子称为“复杂度因子”,它是基于动态OMG定义的公式。

下表总结了这些差异:

 模式事务调用图调整因素演化
EFP简化影响因素(固定用户定义公式)仅功能
AEP完整复杂度因子(动态OMG定义公式)功能和技术

在使用有关完整或简化调用图测量时记录消息    

在计算应用的功能点值时,CAST管理器的日志文件(即快照生成日志)和CAST事务配置中心的日志文件将包含关于计算的调用图是“简化”还是“完整”的信息。信息为:

  • 具有完整调用图的应用数量:值   

  • 具有简化调用图的应用数量:值

注意:

  • CAST事务配置中心中为配置目的(即使用Compute操作)计算应用程序的功能点值时,将被计算的调用图将始终被简化
  • CAST管理器中计算应用快照时,将计算简化图或完整调用图,因为其中一个是测量强化所必需的。所使用图的类型取决于应用编辑器中的Function Points选项卡中所选择的测量模式:如果将增强测量设置为AEP,那么将计算完整的调用图,否则将计算简化的调用图

未调整的数据功能

数据功能的估计过程   

应用未调整的数据功能度量的计算方法如下:    

  1. 数据实体的标识(形成实体的组表) ,  
  2. 为每个实体(~表的数量,~非冗余列的数量)计算记录元素类型(RET)和数据元素类型(DET),

  3. 计算每个实体的功能点,
  4. 计算未调整的数据功能(所有实体功能点的和)。

下面的主要开发案例是SQL数据库和Mainfraime IMS数据库。   

标识数据实体

估计引擎识别数据实体(OMG——符合自动化功能点ILF和EIF)分组基于Master——Detail外键关系和命名约定(Master——Detail是一个数据实体——OMG——符合自动化功能点ILF,最终使用配置数据(参见下面配置——数据库表前缀)。

对于给定的表A,引擎搜索附加的表,即使用表A(称为Master)搜索(1,1)——(x,x)。如果所附的表与表A(称为Master)共享命名约定,则所附的表被设置为Master表的Details表。

如果Master表名称的前4个字符匹配明细表名称的任何部分,则主表与其明细表共享命名约定。

如下所述,可以为数据库模式配置表前缀。表前缀是在表名(如“T_”或“SYS_”或“APP_”)开头系统的添加一组字符。每当为模式定义前缀时,都会在检查命名约定之前从表名中删除前缀。

例如,对于名为“T_SALES”和“T_SALESDETAILS”的表以及由配置设置为“T_”的前缀,将对“SALES”和“SALESDETAILS”执行命名约定检查。

对于数据库模式,结果是一个数据实体列表,每个数据实体由一个master表和0个或多个Detail表组成。

计算每个实体的RET和DET

RET = 记录元素类型
=属于数据实体表的数量   
= 1+detail表的数量。
或 = IMS段数
或 = GSAM/VSAM数据文件为1


DET = 数据元素类型
= 数据实体所有表的非冗余列数(冗余列是具有相同名称的列)。   
或 = IMS段的字段

计算每个实体的功能点

未调整的数据功能=(数据实体FP)的和。有两种模式用于计算数据实体的功能点:

基本模式假设所有实体都是ILF(内部逻辑文件)。当所使用的源分析器不能识别Insert、Update、Select、Delete语句时使用。

高级模式标识ILF(内部逻辑文件)和EIF(外部接口文件)。为此CAST使用源分析器中的信息来描述对表或数据文件所做的操作:插入、更新、选择、删除语句或读/写。ILF是在应用边界内通过基本过程维护的一组数据。维护意味着在应用中创建、删除和更新数据。高级模式工作原理如下:

数据功能:

目标是利用I,U,S,D链接信息来区分ILF和EIF。任何具有以下特征之一的数据实体都将被标识为ILF

  • 至少插入、删除或更新一个表,
  • 至少写入一个文件。

其它数据实体将标识为EIF。

ILF OMG——符合的自动功能点计算如下:


1 to 19 DET

20 to 50 DET

51 or more DET

0 or 1 RET

Low = 7 FP

Low = 7 FP

Average = 10 FP

2 —— 5 RET

Low = 7 FP

Average = 10 FP

High = 15 FP

6 or more RET

Average = 10 FP

High = 15 FP

High = 15 FP

符合EIF OMG——符合的自动化功能点计算如下:    


1 to 19 DET

20 to 50 DET

51 or more DET

0 or 1 RET

Low = 5 FP

Low = 5 FP

Average = 7 FP

2 —— 5 RET

Low = 5 FP

Average = 7 FP

High = 10 FP

6 or more RET

Average = 7 FP

High = 10 FP

High = 10 FP

计算未调整的数据功能(所有实体功能点的和)     

未调整数据功能=和(所有数据实体的功能点)     

示例

例如这个从CAST Enlighten中捕获的图显示了一个数据实体。数据实体中的表是通过检索与名为SALES(master表)的表具有主键——外键关系的所有表来标识的。

然后在这组表中,引擎将SALESDETAIL标识为数据实体的一部分,因为它与SALESDETAIL表共享一个命名约定。

示例——销售数据功能(ILF):   

在下面的例子中,计数的结果将是7 FP:  

  • RET = 2 和 DET = 6
  • 权重较低
  • 结果 = 7 给功能点!

RET = 2,因为有2个表DET = 6,因为有8列减去2个冗余列STOR_ID & ORD_NUM:     

假设

在目前的功能点估计方法中,数据功能的计算基于以下假设:     

  • 该估计方法将所有数据功能视为内部逻辑文件(ILF)。因此它以与内部逻辑文件相同的方式对外部逻辑文件(EIF)进行加权。
  • 这个近似是基于ISBSG统计(国际软件基准测试标准组http://www.isbsg.org/)。
  • ISBSG统计数据显示,在给定的应用中,外部逻辑文件(EIF =只读)占应用功能点大小的5%,而内部逻辑文件(ILF =读写)占22%。由于权重与ILF/EIF的比例相差很小,这个近似是可以接受的。
  • 还假设表的所有列都是用户可识别的(所有DET)。     

使用事务配置中心进行校准

可以使用CAST事务配置中心校准功能点计数,并考虑特定的技术实现和命名约定。CAST事务配置中心可以帮助过滤技术或临时表、技术或临时文件,并适应技术命名约定,从而校准功能点算法。

排除技术项目

CAST事务配置中心允许您在执行功能点估算之前或之后排除技术元素。用户通常排除基于命名约定或继承临时、模板和审计跟踪数据。下面是这些典型的排除命名约定的示例

  • TEMP, SESSION, ERROR, SEARCH, LOGIN, LOGON, FILTER (临时数据),
  • TEMPLATE, TEMPLATE (临时数据), HISTORY,
  • _OLD, AUDIT (审计数据).

用户配置——数据库表前缀

为了提高算法的准确性,在将多个SQL表分组到数据实体中时,可以考虑技术命名约定、表前缀。表前缀是在表名(如“T_”或“SYS_”或“APP_”)开头系统添加的一组字符。使用CAST事务配置中心,可以为给定的数据库/模式配置多个表前缀,这样数据功能算法在尝试将多个SQL表组合成一个数据实体之前,可以从表名中删除前缀:

用户配置——数据实体

为了提高算法的准确性,可以考虑技术命名约定和基类继承来识别RDBMS默认值以外的数据实体。因此通过配置,用户可以提供一个规则来自动选择给定应用的数据实体(因此数据实体的列表可以提供给评估引擎)。通过配置,模块数据实体的选择使用以下规则类型:

  • 通过命名(对象类型的选择+命名约定)
  • 通过继承(对象的名称,然后是直接或间接从该对象继承的所有对象)
  • 按类型(对象类型的选择)
  • 自由定义(通过创建集合来为检测要包括在功能点校准过程中的对象定义更复杂的标准)

注意CAST在“内置参数节点”中提供了一组预定义的数据实体。

未经调整的事务功能

事务估计过程

应用未调整的事务功能度量通过CAST AIP估计方法计算,方法如下:

  1. 识别事务入口点(用户GUI元素或批处理入口点),
  2. 确定每个入口点直接或间接使用的表,
  3. 计算每个入口点的FTR和DET,
  4. 计算每个入口点的功能点,
  5. 计算未调整的事务功能(所有事务功能点的和)。    

标识事务入口点

对于以下技术,入口点列表是根据内置在编程语言中的用户表单概念自动创建的:

  • .NET
  • ABAP
  • ASP
  • ASP .NET
  • CICS
  • Forms
  • JCL
  • JSP
  • PowerBuilder
  • Visual Basic

对于其它语言,如纯Java、C/ C++、Cobol,入口点列表是使用事务配置中心用户设置创建的(参见下面使用事务配置中心进行校准)。

确定每个入口点直接或间接使用的表(FTR)

对于每个入口点,FP估计引擎使用影响分析和搜索算法识别入口点直接或间接使用的所有表。它探索了从入口点到数据功能的所有依赖关系。当入口点是一个复合对象、容器(如类)时,FP评估引擎将探索所有依赖项,包括在子对象(如方法)中实现的依赖项。

例如,如果事务入口点是类,引擎将研究所有依赖项,包括类的方法和字段中实现的依赖项。

仅对于COBOL程序,FP估计引擎还标识入口点访问的文件和IMS数据库。

计算每个入口点的FTR和DET

对于每个入口点,计算如下数字:

FTR = 引用的文件类型
= 入口点直接或间接使用的表的数量+入口点直接访问的GSAM/VSAM文件的数量+ IMS数据库的数量。     

DET = 数据元素类型
= 入口点直接或间接使用所有表的非冗余列数(冗余列是具有相同名称的列)+(3 *访问COBOL文件的数量)。

计算每个入口点的功能点

对于所有的用户入口点,功能点度量的计算方法如下。事务实体有三种类型:     

  • EI —— 外部输入,
  • EO —— 外部产出,
  • EQ ——外部查询。

强化后的模式可以区分EI和EO/EQ(现阶段还无法区分EO和EQ)。如果事务包含一个表的至少一个Insert、Update Delete链接或所使用的文件/IMS数据库上的至少一个Write链接,则该事务被标识为EI。所有其它交易将被确认为EO/EQ。

功能点的EI个数计算如下:


1 to 4 DET

5 to 15 DET

> 15 DET

0 or 1 FTR

Low = 3 FP

Low = 3 FP

Average = 4 FP

2 FTR

Low = 3 FP

Average = 4 FP

High = 6 FP

> 2 FTR

Average = 4 FP

High = 6 FP

High = 6 FP

EO/EQ交易类型计算如下:


1 to 5 DET

6 to 19 DET

> 19 DET

0 or 1 FTR

Low = 4 FP

Low = 4 FP

Average = 5 FP

2——3 FTR

Low = 4 FP

Average = 5 FP

High = 7 FP

> 3 FTR

Average = 5 FP

High = 7 FP

High = 7 FP

当插入/更新/删除/选择信息不可用时,默认值设置为EI和EQ使用的值。

计算未调整的事务功能(所有形式功能点的和)   

未调整的事务功能=所有用户表单的功能点之和    

示例

例如,从CAST Enlighten中捕获的这幅图像显示了一个事务功能,以说明CAST估计算法如何为它计算功能点。PowerBuilder窗口“w_gui_newsale”作为语言内置用户表单列出,CAST估计算法自动执行搜索,以识别所使用的表、数据文件等。在这个例子中,引擎找到2个文件类型引用(FTR):

  • SALES
  • TITLES

Salesdetail表已被发现是SALES FTR的一部分。   

示例 —— "w_gui_newsale" (EI)

在下面的例子中,计数的结果将是7 FP

  • FTR = 2 和 DET = 16
  • 权重较高
  • 结果 = 6 功能点!

假设

符合OMG的自动功能点标准需要计数器来限定基本流程的“主要意图”(请参阅符合OMG的自动功能点计数手动计数事务功能一章)。这一主要目的有助于将屏幕功能区分为输入、输出或查询(EI、EO、EQ)。算法不能区分事务的“主要意图”。这就是CAST功能点估计引擎通常为事务功能点使用默认值的原因。默认值设置为EI和EQ使用的值。事务功能计数假设文件字段的已访问表的所有列都在用户表单中使用,并且用户是可识别的。

使用事务配置中心进行校准

要计算事务性功能,必须确定用户界面元素(windows、web页面或这些窗口和web页面上使用的按钮)或批量入口点。虽然用户界面元素的概念在许多4GL语言中都是内置的,但在C/ C++、Java和COBOL等语言中不是内置的,这取决于所使用的库或框架。

因此如果应用使用特定的库或框架,用户需要配置估计算法,以便设置一条规则,自动选择要测量的应用的事务入口点。事务入口点的自动选择是使用以下类型的规则完成的:

  • 命名约定规则,通过选择对象类型和命名约定,   
  • 继承规则(对象的名称,然后选择直接或间接从该对象继承的所有对象作为入口点)。

  • 一个简单的对象。

可以为给定的应用设置几个配置规则。这些配置是使用入口点节点中的CAST事务配置中心完成的。CAST提供了一个预定义的入口点列表,如下所示:

内置对EAI服务和Web服务的支持    

CAST提供了对EAI服务和Web服务的内置支持。实际上企业正在使用web服务部署越来越多的IT应用,而不直接访问关系数据库。为了方便应用程序的计数,CAST FP估计算法提供了定义一组功能/程序的能力,这些功能/程序可以作为:

  • 数据功能并因此与平均功能点数相关联,  
  • 或者将其用作事务端点(没有功能点计数)。 

示例:应用不使用数据库,只是向另一个数据库发送消息。然后通过配置CAST可以自动识别数据实体。这是通过使用继承、命名约定或特定对象类型进行配置来完成的,以标识将作为数据实体和作为事务端点计算的服务,而不使用FP权重。

事务标识:路径删除

如上所述,CAST FP估计引擎使用影响和搜索算法来探索从入口点到数据功能的所有依赖关系。然而CAST领域的研究表明,一些特定的应用具有数千个高度耦合的对象集群。当有一个中央组件以某种方式或其它方式处理所有事务时,就会出现这些集群。集成这些高度耦合的集群通常会导致事务过重,并使所有事务都使用所有数据功能。这就是为什么CAST FP估计引擎会从结果中删除高度耦合的对象集群和这些调用路径。

  • No labels