FPA笔记四 处理功能EI、EO、EQ

功能点分析法(FPA)定义的处理功能(Transactional Function)是指提供给用户,用于数据的处理的功能。(笔者注:这定义等于没说。呵呵。)处理功能分为外部输入EI、外部输出EO、外部查询EQ。显然,完全在系统内部的处理功能不在FPA的考虑范围内。
1.        处理功能的识别过程
处理功能的识别,包括五个步骤:将功能分解为处理元;判断处理元是EIEO还就EQ;检查是否存在重复的EI/EO/EQ;确定EI/EO/EQ的复杂度;计算EI/EO/EQ的功能点数。本文介绍前三个步骤。

 

       

图表 1 处理功能识别过程

 

2.        处理元的定义

要进行FPA分析,必须把处理功能分解为处理元(Elementary Process)。自然,FPA中的处理元与计算机技术中的事务、处理等不是一回事。处理元有两个识别标准:
l  它是对用户有意义的最小活动单元。

l  它就自包含的,并使系统保持一致的行为和状态。

如果经过一段处理,系统的状态或行为不一致了,就说明这段处理不能构成处理元。同样,如果在整个处理过程中,系统在行为和状态发生多次改变,且在多个点达到新的一致性行为和状态,则这段处理很可能包含多个处理元。
笔者以为,实际情况下,正确的识别处理元非常困难。实际上也用不着在这上面钻牛角尖。FPA的目的是计算出功能点数。如果处理元粒度较大,处理元的总数就少,单个处理元的功能点数就多。反之如果处理元粒度较小,处理元的总数就多少,单个处理元的功能点数就少。对计算整个系统的功能点数并无大碍。

 

3.        处理逻辑

处理元必然包含一种或多种的处理逻辑。处理逻辑(Processing Logic)是用户为完成后一个处理元而定义的特定需求。IFPUG CPM定义了13种处理逻辑。EIEO可以包含所有13种的处理逻辑,而且有一些种类必须包含。EQ则有4种处理逻辑不能包含。具体见下表。

 

表格 1 系统的13种处理逻辑
处理逻辑

EI

EO

EQ

1) 需要执行的校验

 

 

 

2) 需要执行了数学公式和运算

 

M*

N

3) 等值转换的算法,如货币转换,单位转换

 

 

 

4) 筛选数据的条件

 

 

 

5) 用于判断是否适用的条件,也就是入口条件。

 

 

 

6) 一个或多个ILF的修改逻辑

M*

M*

N

7) 一个或多个被引用的ILFEIF

 

 

M

8) 从系统内获取了数据或控制信息

 

 

M

9) 从已有数据衍生的额外数据

 

M*

N

10) 改变了系统的行为或状态

M*

M*

N

11) 向边界外准备或展现了信息

 

M

M

12) 从边界外接收数据或控制信息的能力

M

 

 

13) 数据重排。注意:重排数据不能作为处理功能唯一性的识别依据

 

 

 

表中符号说明:
l  空白:处理功能(EI,EO,EQ)可以包含对应的处理逻辑。
l  M:处理功能必须包含对应的处理逻辑。
l  M*:所有标M*的处理逻辑,对应的处理功能必须包含至少一种。
l  N:处理功能不得包含对应的处理逻辑。

4.        识别重复的处理功能

用户提出的需求,往往是零乱的,存在很多重复的需求。在识别处理元时,要注意归并重复的处理元。当多个处理元同时满足如下三个条件时,应当把它们记为一个处理元。
l  它们的处理逻辑相同,数据排序规则除外。
l  它们包含的数据元素集合相同。
l  它们引用的逻辑文件(ILF/EIF)集合相同。
IFPUG CPM把这段规则说得非常费解。它是在EI/EO/EQ的具体识别规则中分别说明的。大意是:一个EI/EO/EQ至少应满足下列三个条件中的一个:
l  EI/EO/EQ的处理逻辑不同于系统中任何其它EI/EO/EQ的处理逻辑。
l  EI/EO/EQ包含的数据元素集不同于系统中任何其它EI/EO/EQ的数据元素集。
l  EI/EO/EQ引用的逻辑文件集(ILF/EIF)不同于系统中任何其它EI/EO/EQ引用的逻辑文件集。

 

在判断处理逻辑是否相同时,第13种处理逻辑数据重排是个例外。比如对于员工的工作情况的查询,人事经理要求按工时排序,财务经理要求按工资排序。这两个需求应当放在同一个处理元中。
判断数据元素集合,就是判断是否包含相同的字段(又叫域),而不是数据本身的值是否相同。

5.        EIEOEQ的定义

IFPUG CPMEIEOEQ分别定义如下。
An external input (EI) is an elementary process that processes data or control information that comes from outside the application boundary. The primary intent of an EI is to maintain one or more ILFs and/or to alter the behavior of the system.
An external output (EO) is an elementary process that sends data or control information outside the application boundary. The primary intent of an external output is to present information to a user through processing logic other than, or in addition to, the retrieval of data or control information. The processing logic must contain at least one mathematical formula or calculation, create derived data, maintain one or more ILFs or alter the behavior of the system.
An external inquiry (EQ) is an elementary process that sends data or control information outside the application boundary. The primary intent of an external inquiry is to present information to a user through the retrieval of data or control information from an ILF of EIF. The processing logic contains no mathematical formulas or calculations, and creates no derived data. No ILF is maintained during the processing, nor is the behavior of the system altered.

 

6.        如何区别EIEO/EQ

EIEO/EQ之间的区别非常简单和直观。从它们的基本目的就可以看出。
l  EI的基本目的有两个:维护ILF,或改变系统的行为和状态。
l  EO/EQ的基本目的是:向系统外展现或输出数据,包括控制信息。

 

换而言之,只有同时符合如下两条规则的处理才是EI:
l  该处理从系统外接收了数据或控制信息。
l  该处理不是更新了ILF(至少一个),就是改变了系统的行为或状态。

 

7.        如何区别EOEQ

EOEQ的基本目地相同,它们的区别在于是否包含四种关键的处理逻辑。这四种处理逻辑,EO至少要包含一种,EQ一种也不能包含。
l  输出了衍生数据。
l  就否包含数学运算。等值转换不算。
l  是否包含对至少一个ILF的维护。
l  是否改变了系统的行为或状态。
此外,EQ还必须包含一种处理逻辑:从系统内获取了数据或控制信息,也就是说至少引用了一个ILFEIF

 

8.        典型处理功能例析

功能例子

分析

从屏幕录入的数据

EI

批处理输入                                                 

EI

从磁带等设备输入                                            

EI

扫描输入。                                                

EI

增,删,改等事务处理。

EI

导航菜单           

EO?

登陆界面

EQ

ILF读取列表的列表框或下拉框

EQ

筛选条件。         

不是完整的处理元

快捷键,命令键。

不是处理元?

导出报表

EO

在线报表

EQ

详细报表中的统计字段

EQ?

由具体报表汇总得出的总结报表

EO

查看帮助

EQ

重复的帮助

重复的处理元

联机文档

不是EQ?

输出文件

EO

处理的出错或确认信息。

不是完整的处理元?

 

l  注意,增、删、改应当作为单独的EI
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章