U/C矩阵分析法是在对实际系统的业务流程、管理功能等都做了详细的了解和形式化的描述以后,就可在此基础上进行系统化的分析,即先进行各子系统的划分,并确定各子系统之间的信息流与接口,最后在总体方案基础上,再进行各个子系统的系统分析,以便整体地考虑新系统的功能及子系统的划分和数据资源的合理性。进行这种分析的有力工具之一就是功能/数据分析,即U/C矩阵分析,其中U表示使用(use),C表示产生(create)。
一、U/C矩阵及其建立
U/C矩阵是对要分析的内容创建一个二维表格。通常将表的纵坐标定义为数据类变量(Xi),横坐标定义为业务过程类变量(Yi),将数据与业务过程之间的关系用使用(U,use)和产生(C,create)来表示。
从理论上来看,建立U/C矩阵时,首先要进行系统化、自顶向下地划分;然后逐个地确定其具体的功能(功能类)和数据(数据类);将由系统调查得来的数据汇总填入表内就完成了U/C矩阵的建立过程。表5-3是U/C矩阵的一个示例。
表5-3 U/C矩阵示例
二、U/C矩阵的正确性检验
建立U/C矩阵后一定要根据“数据守恒”原则进行正确性检验,以确保系统功能数据项划分和所建U/C矩阵表的正确性。
利用U/C矩阵来检查系统分析的正确性,一般有三个步骤:
1.完备性检验
具体的数据项(类)必须有一个产生者(“C”)和至少一个使用者(“U”);功能(类)则必须有产生(C)或使用(U)的发生。
通过该检验能够及时发现U/C矩阵中的功能或数据项的划分是否合理,以及U,C元素有无错填、漏填等。若出现上述情况,则U/C矩阵的建立是不完备的。
2.一致性检验
对具体的数据项/类必须有且仅有一个产生者。如果有多个产生者(C元素),则产生了不一致的现象,其结果将会给后续开发工作带来混乱。
其原因可能是:
(1)没有产生者——漏填了C元素或是功能、数据的划分不当;
(2)多个产生者——错填了C元素或是功能、数据的划分不独立、不一致。
3.无冗余性(non-verbosity)检验
指U/C矩阵中不允许有空行和空列。如果出现空行、空列,则原因可能是:
(1)漏填了C元素或U元素。
(2)功能项或数据项划分是冗余的——即没有必要。
4.U/C矩阵的求解
U/C矩阵的求解过程就是对系统功能结构划分的优化过程。它是基于子系统划分应相互相对独立,而且内部凝聚性高这一原则之上的一种聚类操作。
U/C矩阵求解的具体操作方法是:调整表中的行变量或列变量,使得表中的“C”元素尽可能地朝U/C矩阵表对角线靠近,然后再以“C”元素为标准,划分子系统或功能模块。这样划分的子系统或功能模块独立性和凝聚性都是较好的,因为它可以不受干扰地独立运行。
U/C矩阵求解算法分为三个步骤:
(1)设有不干涉系数数列,其规律为:
A1=任意正整数(www.xing528.com)
A2=任意正整数且大于A1
A3=A1+A2+1
Ai=2×A(i-1)(i>3)
例:若取A1=1,A2=3,
A3=A1+A2+1=5
A4=10,A5=20,A6=40,......
(2)对U/C矩阵内的C元素按列作相关的不干涉系数求和运算。
S=∑CijAj
其中:Aj表示第j个不干涉系数,求和结果如表5-4所示。
表5-4 矩阵按行求和运算图
图中Cij表示矩阵中第i行第j列个C元素,然后,再按所求值由小到大调整列排序,如表5-5所示。
表5-5 U/C矩阵调整列排序后的结果
(3)对上图重复上述过程,按行作相关的不干涉系数之和运算。
S=∑CijAj
最后,按所求值由小到大调整行排序,求解后的结果如表5-6所示。
表5-6 求解后的结果
三、数据与功能的联系方法
1.系统逻辑功能的划分
在U/C矩阵中沿着对角线划分小方块。要注意的是:划分时既不能重叠,又不能漏掉任何一个数据和功能;小方块的划分是任意的,但必须将所有的“C” 元素都包含在小方块中,如表5-6所示。
每一个小方块即是一个子系统,它是今后新系统划分的基础。它的划分不是唯一的。没有划入小方块的“C”元素,是各子系统之间数据联系,是共享的数据,并用箭头从横纵两个方向与各子系统联系起来。
2.数据资源分布
在对系统进行划分并确定了子系统以后,所有数据的使用关系都被小方块分隔成了两类:在小方块以内所产生和使用的数据,今后主要考虑放在本子系统的计算机设备上处理;而在小方块以外的数据联系(即表中小方块以外的“U”),则表示了各子系统之间的数据联系,这些数据资源今后应考虑放在网络服务器上供各子系统共享或通过网络来相互传递数据。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。