CN106776291B - 一种系统结构复杂度计算方法 - Google Patents
一种系统结构复杂度计算方法 Download PDFInfo
- Publication number
- CN106776291B CN106776291B CN201611073862.2A CN201611073862A CN106776291B CN 106776291 B CN106776291 B CN 106776291B CN 201611073862 A CN201611073862 A CN 201611073862A CN 106776291 B CN106776291 B CN 106776291B
- Authority
- CN
- China
- Prior art keywords
- composition table
- matrix
- hierarchy
- system structure
- subsystems
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013461 design Methods 0.000 claims abstract description 32
- 239000011159 matrix material Substances 0.000 claims description 125
- 230000003993 interaction Effects 0.000 claims description 34
- 238000004458 analytical method Methods 0.000 claims description 14
- 238000011156 evaluation Methods 0.000 abstract description 4
- 238000004364 calculation method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 5
- 238000005259 measurement Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software analysis for verifying properties of programs using software metrics
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种系统结构复杂度计算方法包括:读取并解析系统的设计数据文件,根据设计数据文件按照指定格式构建系统结构组成表和系统内部信息组成表;根据系统结构组成表判断顶层系统是否唯一、确定顶层系统、以及计算系统的层次数,并确定各层级的子系统,生成完善的系统结构组成表;根据完善的系统结构组成表与系统内部信息组成表,获得各层次子系统的数目与各层次子系统之间的信息交换数,并计算系统的结构复杂度。本发明通过计算系统的层次数确定各层级的子系统并生成完善的系统结构组成表的技术手段,能够正确度量规模较大、构成复杂的信息系统的结构复杂度,进而正确的评价系统的复杂性。
Description
技术领域
本发明涉及信息系统工程领域,特别地,涉及一种系统结构复杂度计算方法。
背景技术
随着信息技术的发展以及信息系统应用的日益广泛,信息系统的功能与结构也日益复杂,如何评价信息系统的复杂性并加以有效的控制与管理,对系统的设计、分析与运行控制均具有十分重要的意义。由于系统的复杂性直接影响到系统的可理解性、独立性、可靠性、可测试性和可维护性程度,系统的复杂性越低,就越容易理解、修改和维护,因此降低系统的复杂性是系统设计追求的目标。信息系统结构的复杂性作为对系统逻辑结构以及数据交换关系复杂程度的总体评价,是分析评价系统复杂性的关键。结构复杂性的变化将会对系统各方面的特性都产生影响,因此可以将信息系统的结构复杂度作为衡量系统复杂性的一个重要指标。
目前,对于系统结构复杂性的研究,大多集中在软件工程领域。软件系统结构复杂性的度量,通常是采用复杂系统的理论将软件系统抽象成网络(软件系统中的类、对象、方法为网络中的节点;类、对象、方法之间的关系为网络中的边),并通过对抽象出来的软件网络的特性进行分析。但对于复杂信息系统来说,由于其系统的分布性、信息交互的复杂性、节点多样性等特点,软件系统结构复杂性的度量指标并不完全适用于信息系统的结构复杂度度量。
而在信息系统领域,对于信息系统结构复杂性的度量,所采用的方法主要是基于网络图的方法和基于信息熵的复杂度度量方法。其中,基于网络图法要先将系统的结构转换为网络图(如Petri网图),再从网络要素的复杂度和网络关联的复杂度两方面来分析信息系统结构的复杂性。这种方法中网络图的构建本身就是一项复杂的工作,尤其对于规模较大、结构复杂的信息系统来说,转换的工作量就会成倍增加,而且也无法有效保证转换结果的正确性。另外,基于信息熵的复杂度度量方法是通过分析每个基本评价要素平均信息量对总体复杂性的平均信息量贡献,并据此综合得出总体的复杂性信息量。
针对现有技术中度量信息系统结构复杂度的方法对于规模较大、结构复杂的信息系统不能正常工作的问题,目前尚未有有效的解决方案。
发明内容
有鉴于此,本发明的目的在于提出一种系统结构复杂度计算方法,能够正确度量规模较大、构成复杂的信息系统的结构复杂度,进而正确评价系统的复杂性。
基于上述目的,本发明提供的技术方案如下:
根据本发明的一个方面,提供了一种系统结构复杂度计算方法。
根据本发明提供的一种系统结构复杂度计算方法包括:
读取并解析系统的设计数据文件,根据设计数据文件按照指定格式构建系统结构组成表和系统内部信息组成表;
根据系统结构组成表判断顶层系统是否唯一、确定顶层系统、以及计算系统的层次数,并确定各层级的子系统,生成完善的系统结构组成表;
根据完善的系统结构组成表与系统内部信息组成表,获得各层次子系统的数目与各层次子系统之间的信息交换数,并计算系统的结构复杂度。
其中,根据系统结构组成表进行顶层系统的唯一性分析、确定顶层系统、以及计算系统的层次数,并确定各层级的子系统,生成完善的系统结构组成表包括:
根据系统结构组成表构建系统结构关系矩阵;
根据系统结构关系矩阵判断顶层系统是否唯一、确定顶层系统、以及计算系统的层次数;
根据系统结构关系矩阵确定各层级的子系统,生成完善的系统结构组成表。
并且,根据系统结构组成表构建系统结构关系矩阵,为根据系统结构组成表构建系统结构关系矩阵D,系统结构关系矩阵D的维度为系统结构组成表中的记录数N,矩阵D中各元素dij的为其中,SIDi→SIDj表示在系统结构组成表中系统标识为SIDi的系统是系统标识为SIDj的系统的父系统。
并且,根据系统结构关系矩阵判断顶层系统是否唯一、确定顶层系统,为根据系统结构关系矩阵D中的每列数据,判断是否存在j,1≤j≤N满足对都有dij=0:若存在且仅存在一个符合条件的j,则认定系统结构满足顶层系统唯一性要求,且认定矩阵D中j列在系统结构组成表中所对应的系统为顶层系统;若不存在,则重新进行系统设计。
同时,根据系统结构关系矩阵计算系统的层次数包括:
计算系统结构关系矩阵D逻辑乘运算的结果D(1),D(2),…,D(N),其中,D(r1)=D(r1-1)∧D,(r1=2,3,…,N),D(r1)中每个元素为表示矩阵D(r1-1)和矩阵D相乘(即D(r1-1)×D)后对应位置元素的取值;
根据系统结构关系矩阵D逻辑乘运算的结果确定最小的T使得D(T)=0,其中,对于使D(k)=0时都有k≥T,此时系统的层次数为M=T-1。
并且,根据系统结构关系矩阵确定各层级的子系统,生成完善的系统结构组成表包括:
建立变量r并将r的取值从1遍历到M,对每个系统结构关系矩阵D的逻辑乘运算结果D(r)构建对应的集合其中j为顶层系统在矩阵D中所对应列的编号;
依次遍历集合SLE(r)中的各个元素并获得该元素对应的列i的值在D(r)中代表的系统、认定该系统的层级为r,并修改系统结构组成表中对应的系统记录,将该系统所处层次字段的值改为r;
完成变量r的遍历并获得完善的系统结构组成表。
并且,根据完善的系统结构组成表与系统内部信息组成表,获得各层次子系统的数目与各层次子系统之间的信息交换数,并计算系统的结构复杂度包括:
根据系统结构关系矩阵逻辑乘的运算结果,获得各层次子系统的数目;
根据完善的系统结构组成表与系统内部信息组成表,获得各层次子系统之间的信息交换数;
根据各层次子系统的数目与各层次子系统之间的信息交换数计算系统的结构复杂度。
并且,根据系统结构关系矩阵逻辑乘的运算结果,获得各层次子系统的数目包括:
将变量r的取值从1遍历到M,根据每个系统结构关系矩阵D的逻辑乘运算结果D(r)中相关元素的取值,计算层次r中对应的子系统的数目其中j为顶层系统在矩阵D中所对应的列的编号;
完成变量r的遍历并获得各层次子系统的数目。
并且,根据完善的系统结构组成表与系统内部信息组成表,获得各层次子系统之间的信息交换数包括:
根据完善的系统结构组成表与系统内部信息组成表构建系统内部信息交互矩阵P,系统内部信息交互矩阵P的维度等于系统结构组成表的记录数S,矩阵P中各元素其中,表示在系统内部信息组成表中存在对应的内部信息,该信息源系统的标识为SIDi、目的系统的标识为SIDj。
依次遍历矩阵P中的每个元素pij,判断其值是否为1:若为1且该元素所在系统内部信息组成表对应记录的源系统、目的系统所在的层次都为r(1≤r≤M),则将第r级子系统之间的信息交互数目INF(r)累加1;否则,则继续遍历下一个元素。
完成对矩阵P中元素的遍历并获得各层次子系统之间的信息交互数INF(r)。
并且,根据各层次子系统的数目与各层次子系统之间的信息交换数计算系统的结构复杂度,为根据各层次子系统的数目L(r)以及子系统之间的信息交互数目INF(r)(1≤r≤M)计算系统结构复杂度
从上面所述可以看出,本发明提供的技术方案通过计算系统的层次数确定各层级的子系统并生成完善的系统结构组成表的技术手段,能够正确度量规模较大、结构复杂的信息系统的结构复杂度,进而正确的评价系统的复杂性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例的一种系统结构复杂度计算方法的流程图;
图2为根据本发明实施例的一种系统结构复杂度计算方法中,根据系统结构组成表进行顶层系统的唯一性分析、确定顶层系统、以及计算系统的层次数,并确定各层级的子系统,生成完善的系统结构组成表的方法的流程图;
图3为根据本发明实施例的一种系统结构复杂度计算方法中,根据完善的系统结构组成表与系统内部信息组成表,获得各层次子系统的数目与各层次子系统之间的信息交换数,并计算系统的结构复杂度的方法的流程图;
图4为根据本发明一个实施例中的系统结构组成图;
图5为根据本发明一个实施例中的系统内部的子系统之间内部信息交互关系图;
图6为根据本发明另一个实施例中的系统内部的子系统之间内部信息交互关系图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进一步进行清楚、完整、详细地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的一个实施例,提供了一种系统结构复杂度计算方法。
如图1所示,根据本发明实施例提供的系统结构复杂度计算方法包括:
步骤S101,读取并解析系统的设计数据文件,根据设计数据文件按照指定格式构建系统结构组成表和系统内部信息组成表;
步骤S102,根据系统结构组成表判断顶层系统是否唯一、确定顶层系统、以及计算系统的层次数,并确定各层级的子系统,生成完善的系统结构组成表;
步骤S103,根据完善的系统结构组成表与系统内部信息组成表,获得各层次子系统的数目与各层次子系统之间的信息交换数,并计算系统的结构复杂度。
在步骤S101中,以系统设计数据文件为本发明的输入,读取并解析系统设计数据文件,按照固定格式构建系统结构组成表和系统内部信息组成表。
系统结构组成表主要表现组成该系统的所有子系统。该表中有四个描述要素,分别是系统标识(SID)、系统名称、父系统标识(父系统SID)以及系统所处层次。其中,系统所处层次一项,表明该子系统在整个系统中的层次,最顶层系统为0级,顶层系统的直接下级为1级,以此类推。但在这一步中并不具体计算系统所处的层次,默认都是顶层系统,即表中每条记录系统所处层次项的取值都是0。
系统内部信息组成表主要表现系统在运行过程中各子系统之间交换的信息。该表中有四个描述要素,分别是信息标识(IID)、信息名称以及产生信息的源系统标识和接收信息的目的系统标识。
如图2所示,根据系统结构组成表进行顶层系统的唯一性分析、确定顶层系统、以及计算系统的层次数,并确定各层级的子系统,生成完善的系统结构组成表包括:
步骤S201,根据系统结构组成表构建系统结构关系矩阵;
步骤S202,根据系统结构关系矩阵判断顶层系统是否唯一、确定顶层系统、以及计算系统的层次数;
步骤S203,根据系统结构关系矩阵确定各层级的子系统,生成完善的系统结构组成表。
并且,根据系统结构组成表构建系统结构关系矩阵,为根据系统结构组成表构建系统结构关系矩阵D,系统结构关系矩阵D的维度为系统结构组成表中的记录数N,矩阵D中各元素dij的为其中,SIDi→SIDj表示在系统结构组成表中系统标识为SIDi的系统是系统标识为SIDj的系统的父系统。
并且,根据系统结构关系矩阵判断顶层系统是否唯一、确定顶层系统,为根据系统结构关系矩阵D中的每列数据,判断是否存在j,1≤j≤N满足对都有dij=0:若存在且仅存在一个符合条件的j,则认定系统结构满足顶层系统唯一性要求,且认定矩阵D中j列在系统结构组成表中所对应的系统为顶层系统;若不存在,则重新进行系统设计。
同时,根据系统结构关系矩阵计算系统的层次数包括:
计算系统结构关系矩阵D逻辑乘运算的结果D(1),D(2),…,D(N),其中,D(r1)=D(r1-1)∧D,(r=2,3,…,N),D(r1)中每个元素为表示矩阵D(r1-1)和矩阵D相乘(即D(r1-1)×D)后对应位置元素的取值;
根据系统结构关系矩阵D逻辑乘运算的结果确定最小的T使得D(T)=0,其中,对于使D(k)=0时都有k≥T,此时系统的层次数为M=T-1。
并且,根据系统结构关系矩阵确定各层级的子系统,生成完善的系统结构组成表包括:
建立变量r并将r的取值从1遍历到M,对每个系统结构关系矩阵D的逻辑乘运算结果D(r)构建对应的集合其中j为顶层系统在矩阵D中所对应列的编号;
依次遍历集合SLE(r)中的各个元素并获得该元素对应的列i的值在D(r)中代表的系统、认定该系统的层级为r,并修改系统结构组成表中对应的系统记录,将该系统所处层次字段的值改为r;
完成变量r的遍历并获得完善的系统结构组成表。
在步骤S102中,根据系统结构组成表,构建系统结构关系矩阵,进行顶层系统的唯一性分析,明确顶层系统以及系统的层次数。
系统结构关系矩阵D体现了系统结构组成表中各系统之间的父子关系,依据系统结构组成表可以构建出系统结构关系矩阵D。设系统结构组成表中的记录数为N,则系统结构关系矩阵D的维度也为N,即矩阵D中的每行(列)分别对应于系统结构组成表中的一条记录(即系统标识),且矩阵D中各元素dij的含义为:
其中,SIDi→SIDj表示在系统结构组成表中系统标识为SIDi的系统是系统标识为SIDj的系统的父系统。
再依据系统结构关系矩阵D,进行顶层系统的唯一性分析,明确系统结构中的顶层系统。依次分析矩阵D中的每列数据,判断是否只有唯一一列数据,且该列数据的值都为0。即是否存在j,1≤j≤N,满足对都有dij=0。
若存在这样的j,且j的个数为1,则系统结构满足顶层系统唯一性要求,且矩阵D中j列在系统结构组成表中记录所对应的系统即为顶层系统;否则,若满足条件的j的个数为0,则说明在系统结构设计中可能存在循环嵌套的父子系统引用关系;若满足条件的j的个数大于1,则说明在系统结构设计中可能存在多个顶层系统;这都需要重新进行系统设计。
再分别计算D(1),D(2),…,D(N),其中D(r1)=D(r1-1)∧D,(r1=2,3,…,N),“∧”运算表示矩阵的逻辑乘运算,具体的,D(r1)中每个元素为
其中,表示矩阵D(r1-1)和矩阵D相乘(即D(r1-1)×D)后对应位置元素的取值。
再依据系统结构关系矩阵D逻辑乘运算的结果,确定最小的T,使D(T)=0,即对于使D(k)=0,都有k≥T。于是M=T-1就是系统的层数(由于系统的最顶层系统为0级,下一层为1级,以此类推,因此系统的层次数比系统间的联通数要少1)。
步骤S202在步骤S201的基础上,依据系统结构关系矩阵D逻辑乘运算的结果,就可获得各层次的子系统。具体的,由上一步运算可知,系统的层次数为M,结构关系矩阵为D,矩阵D中第j列对应的系统为顶层系统,D(r)(1≤r≤M)为矩阵D各阶层逻辑乘运算的结果,则各层次中对应的子系统可按如下的方式确定:
分析D(r)中第j行的所有数据,其中数值不为0的元素,相应的列在系统结构组成表中记录所对应的系统就是属于层次r的子系统。即对于每个D(r),构建集合SLE(r)(该集合的初始值为空集):
对于集合SLE(r)中的任一元素,找出该元素对应的列(即第i列)在D(r)中代表的系统,该系统的层次就是r,同时还要修改该系统在系统结构组成表中的数据。即在系统结构组成表要找出对应的系统记录,并将该系统所处层次字段的值修改为r。
按照上述方法,从1到M对r的取值进行遍历,就可以得到各层次的子系统以及完善后的系统结构组成表。
如图3所示,根据完善的系统结构组成表与系统内部信息组成表,获得各层次子系统的数目与各层次子系统之间的信息交换数,并计算系统的结构复杂度包括:
步骤S301,根据系统结构关系矩阵逻辑乘的运算结果,获得各层次子系统的数目;
步骤S302,根据完善的系统结构组成表与系统内部信息组成表,获得各层次子系统之间的信息交换数;
步骤S303,根据各层次子系统的数目与各层次子系统之间的信息交换数计算系统的结构复杂度。
并且,根据系统结构关系矩阵逻辑乘的运算结果,获得各层次子系统的数目包括:
将变量r的取值从1遍历到M,根据每个系统结构关系矩阵D的逻辑乘运算结果D(r)中相关元素的取值,计算层次r中对应的子系统的数目其中j为顶层系统在矩阵D中所对应的列的编号;
完成变量r的遍历并获得各层次子系统的数目。
并且,根据完善的系统结构组成表与系统内部信息组成表,获得各层次子系统之间的信息交换数包括:
根据完善的系统结构组成表与系统内部信息组成表构建系统内部信息交互矩阵P,系统内部信息交互矩阵P系统的维度等于系统结构组成表的记录数S,矩阵P中各元素其中,表示在系统内部信息组成表中存在对应的内部信息,该信息源系统的标识为SIDi、目的系统的标识为SIDj。
依次遍历矩阵P中的每个元素pij,判断其值是否为1:若为1且该元素所在系统内部信息组成表中对应记录的源系统、目的系统所在的层次都为r(1≤r≤M),则将第r级子系统之间的信息交互数目INF(r)累加1;否则,则继续遍历下一个元素。
完成对矩阵P中元素的遍历并获得各层次子系统之间的信息交互数INF(r)。
并且,根据各层次子系统的数目与各层次子系统之间的信息交换数计算系统的结构复杂度,为根据各层次子系统的数目L(r)以及子系统之间的信息交互数目INF(r)(1≤r≤M)计算系统结构复杂度
在步骤S301中,可知系统的层次数为M,系统结构关系矩阵为D,矩阵D中第j列在系统结构组成表中记录所对应的系统为顶层系统,D(r)(1≤r≤M)为矩阵D各阶层逻辑乘运算结果,则各层次r中对应子系统的数目L(r)(1≤r≤M)可按如下的方式确定:
即各层次中子系统的数目L(r)为矩阵D(r)中第j行所有数值不为0的元素的个数的总和。
在步骤S302中,先依据系统内部信息组成表,构建系统内部信息交互矩阵P,若系统结构组成表的记录数为S,则矩阵P的维度也为S,矩阵P中每行(列)对应系统结构组成表中的一条记录(即系统标识),且矩阵P中各元素的pij取值为:
其中,表示在系统内部信息组成表中存在这样的内部信息,该信息源系统的标识为SIDi且目的系统的标识为SIDj。
再依据系统内部信息交互矩阵P和完善后的系统结构组成表T,计算各层次中子系统之间的信息交互数目INF(r)(1≤r≤M)。具体的计算程序如下:
依据上述程序,计算输出的INF(r)(1≤r≤M)就是各层次子系统之间的信息交互数目。
在步骤S303中,在各层次中子系统的数目L(r)以及子系统之间的信息交互数目INF(r)的基础上(1≤r≤M),可按照如下的公式计算系统的结构复杂度SC:
下面根据具体实施例进一步阐述本发明的技术方案。
在本发明一个实施例的系统设计中,系统S的结构组成以及系统的内部信息交互关系分别如图4和图5所示。
步骤S101:解析系统设计数据,构建相关数据表。
该设计结果以xml文件格式输入,对该设计文件解析,生成系统结构组成表1和系统内部信息组成表2。
表1:系统结构组成表
表2:系统内部信息组成表
信息标识 | 信息名称 | 源系统标识 | 目的系统标识 |
I0001 | 内部信息1 | S0002 | S0003 |
I0002 | 内部信息2 | S0003 | S0004 |
I0003 | 内部信息3 | S0004 | S0005 |
I0004 | 内部信息4 | S0006 | S0007 |
I0005 | 内部信息5 | S0006 | S0008 |
I0006 | 内部信息6 | S0009 | S0010 |
I0007 | 内部信息7 | S0010 | S0011 |
I0008 | 内部信息8 | S0011 | S0009 |
I0009 | 内部信息9 | S0012 | S0013 |
I0010 | 内部信息10 | S0013 | S0014 |
I0011 | 内部信息11 | S0013 | S0015 |
I0012 | 内部信息12 | S0015 | S0012 |
步骤S102:根据系统结构组成表,明确顶层系统以及系统的层次数,并在此基础上,确定各层次的子系统,生成完善后的系统结构组成表。
步骤S201,根据系统结构组成表,构建系统结构关系矩阵,进行顶层系统验证,明确顶层系统,并在此基础上确定系统的层数。
根据表1,构建系统结构关系矩阵D。由于表1中有15条记录,因此系统结构关系矩阵D的维度也为15,并依据表1中各系统之间的父子关系构建矩阵D:
由表1可知,系统S是系统S1、系统S2、系统S3和系统S4的父系统,于是有d1,2=d1,3=d1,4=d1,5=1;系统S2是系统S21、系统S22和系统S23的父系统,于是有d3,6=d3,7=d3,8=1;系统S3是系统S31、系统S32和系统S33的父系统,于是有d4,9=d4,10=d4,11=1;系统S23是系统S231、系统S232、系统S233和系统S234的父系统,于是有d8,12=d8,13=d8,14=d8,15=1;而矩阵D中的其余元素都为0。
再分析矩阵D,可知该矩阵只有第一列的数据都为0(其余列的数据都不全为0),由此可知,该系统的设计结构满足顶层系统的唯一性要求,且该矩阵第一列对应的系统就是顶层系统。
再对系统结构关系矩阵进行逻辑乘运算,可得:
由上可知,D(4)为零矩阵,因此系统的层数M为4-1=3层。
步骤S202,根据系统结构关系矩阵,明确各子系统所属层次,并完善系统结构组成表。
运用上述步骤中系统结构关系矩阵D各次逻辑乘运算的结果,就可知道各层次的子系统。对于D(1)来说,对应于第一行不为零的元素是d1,2、d1,3、d1,4和d1,5,于是集合SLE(1)={2,3,4,5},这表明第2、3、4和5列对应的系统,即系统S1、系统S2、系统S3和系统S4为第一层系统。
按照上述方法,分析D(2),可知SLE(2)={6,7,8,9,10,11},这表明第6、7、8、9、10和11列对应的系统,即系统S21、系统S22、系统S23、系统S31、系统S32和系统S33为第二层系统;再分析D(3),可知SLE(3)={12,13,14,15},这表明第12、13、14和15列对应的系统,即系统S231、系统S232、系统S233和系统S234为第三层系统;至此,本系统三个层次含有的子系统都已分析完毕。
再依据这个分析结果,对系统结构组成表进行完善,得到如表3所示的完善的系统结构组成表。
表3:完善的系统结构组成表
步骤S103:在完善后的系统结构组成表以及系统内部信息组成表的基础上,判定各层次子系统的数目以及子系统之间信息的交换数,并据此计算系统的结构复杂度。
步骤S301,根据系统结构关系矩阵以及矩阵逻辑乘的运算结果,确定各层次中子系统的数目。
依据上述步骤中系统结构关系矩阵D的各次逻辑乘运算的结果,就可知道各层次中子系统的数目。根据D(1),可知第一层中子系统的数目L(1)的计算方法如下:
于是可知,第一层中有4个子系统。
同理,依据D(2),可知第二层中子系统的数目即第二层中有6个子系统;依据D(3),可知第三层中子系统的数目即第三层中有4个子系统。
步骤S302,根据完善后的系统结构组成表以及系统内部信息组成表,确定各层次中子系统之间的信息交互数目。
依据完善后的系统结构组成表和系统内部信息组成表,可以构建如下的系统内部信息交互矩阵P:
再计算各层次中信息交换的数目,采用步骤302中的处理程序,可知p2,3、p3,4和p3,5对应的信息交换是第一层子系统之间的信息交换,因此第一层子系统信息交换的数目INF(1)=3;p6,7、p6,8、p9,10、p9,11和p11,9对应的信息交换是第二层子系统之间的信息交换,因此第二层子系统信息交换的数目为INF(2)=5;p12,13、p13,14、p13,15和p15,12对应的信息交换是第三层子系统之间的信息交换,因此第三层子系统信息交换的数目为INF(3)=4。
步骤S303,根据各层次中子系统的数目以及子系统之间的信息交互数目,计算信息系统的结构复杂度。
在上述步骤计算得出的各层次中子系统的数目L(r)以及子系统之间的信息交互数目INF(r)的基础上(1≤r≤M),计算系统的结构复杂度SC为:
在本发明的另一个实施例中,其子系统之间内部信息交互关系图如图6所示,即从图5中删除内部信息12,增加内部信息13,按照上述计算方法,可得:
L(1)=4,L(2)=6,L(3)=4,INF(1)=3,INF(2)=6,INF(3)=3
SC=((2/5+1/8)+2×(3/7+1/10)+3×(2/5+1/8))/6≈0.526
比较图5与图6可知,系统的子系统数目,系统的分解层次、各层次的子系统以及系统总体的内部信息交换数都没有发生变化,只是有一个内部信息交换所处的层次发生了变化(图5中第2层有5个内部信息交换,第3层中有4个内部信息交换;而图6中第2层有6个内部信息交换,第3层有3个内部信息交换),即原本属于较深层次的内部信息交换转移到了较浅层次的内部信息交换,即降低了信息交换关系的复杂性,最终结果表明基于图6计算的系统结构复杂度也小于基于图5计算的系统结构复杂度,这也验证了本发明的系统结构复杂度计算方法的有效性,为评价复杂信息系统的结构复杂度提供了一个可行的手段。
综上所述,借助于本发明的上述技术方案,通过利用系统的结构设计和信息交互数据,提供了一种计算复杂信息系统结构复杂度的技术手段,利用保存在数据库中的系统设计数据,特别是系统的结构组成以及系统的内部信息交互关系等数据,分析提炼各层次子系统的数目以及子系统间信息交互的数目,并据此计算系统的结构复杂度。本发明的输入为格式化系统结构设计文件,对所使用的系统设计方法与建模平台并没有明确要求,因此本发明具有良好的兼容性和开发性,可以支持多种系统设计理念和建模方法,对于新建模方法产生的设计数据,只需进行简单的解析便可使用,具有较好的扩展性;本发明直接利用系统设计数据,依据系统的结构组成以及系统的内部信息交互关系,建立分系统的结构关系矩阵以及系统的内部信息交互矩阵,自动化分析提取矩阵中的元素值,并据此进行系统结构复杂度的计算,该分析过程不需要人工参与,与设计人员、分析人员的知识水平和经验无关,计算过程具有科学性和客观性;本发明将复杂信息系统的内聚度计算转化为简单的集合运算、逻辑判断运算以及矩阵运算,完全可以通过自动化的手段实现,只要提供系统结构设计的数据文件,即可通过简单的程序设计实现相关数据的分析,并不需要其它复杂的模型,使计算过程更加简明有效;本发明是依据复杂信息系统复杂性评判的要求,通过借鉴软件工程领域结构复杂度的计算方法,创新提出了一种复杂信息系统的结构复杂度衡量手段,为有效评价复杂信息系统的结构复杂性及设计质量提供了一种可行方法。
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种系统结构复杂度计算方法,其特征在于,包括:
读取并解析系统的设计数据文件,根据所述设计数据文件按照指定格式构建系统结构组成表和系统内部信息组成表;
根据所述系统结构组成表判断顶层系统是否唯一、确定顶层系统、以及计算系统的层次数,并确定各层次子系统,生成完善的系统结构组成表;
根据所述完善的系统结构组成表与所述系统内部信息组成表,获得所述各层次子系统的数目与所述各层次子系统之间的信息交换数,并计算系统的结构复杂度;
根据所述系统结构组成表进行顶层系统的唯一性分析、确定顶层系统、以及计算系统的层次数,并确定各层次子系统,生成完善的系统结构组成表包括:
根据所述系统结构组成表构建系统结构关系矩阵;
根据所述系统结构关系矩阵判断顶层系统是否唯一、确定顶层系统、以及计算系统的层次数;
根据所述系统结构关系矩阵确定各层次子系统,生成所述完善的系统结构组成表。
2.根据权利要求1所述的方法,其特征在于,根据所述系统结构组成表构建系统结构关系矩阵,为根据所述系统结构组成表构建系统结构关系矩阵D,所述系统结构关系矩阵D的维度为所述系统结构组成表中的记录数N,所述矩阵D中各元素dij的为其中,SIDi→SIDj表示在所述系统结构组成表中系统标识为SIDi的系统是系统标识为SIDj的系统的父系统。
3.根据权利要求2所述的方法,其特征在于,根据所述系统结构关系矩阵判断顶层系统是否唯一、确定顶层系统,为根据所述系统结构关系矩阵D中的每列数据,判断是否存在j,1≤j≤N满足对都有dij=0:若存在且仅存在一个符合条件的j,则认定系统结构满足顶层系统唯一性要求,且认定所述矩阵D中j列在所述系统结构组成表中所对应的系统为顶层系统;若不存在,则重新进行系统设计。
4.根据权利要求2所述的方法,其特征在于,根据所述系统结构关系矩阵计算系统的层次数包括:
计算所述系统结构关系矩阵D逻辑乘运算的结果D(1),D(2),…,D(N),其中,D(r1)=D(r1-1)∧D,r1=2,3,…,N,D(r1)中每个元素为 表示矩阵D(r1-1)和矩阵D相乘后对应位置元素的取值,其中,矩阵D(r1-1)和矩阵D相乘为D(r1-1)×D;
根据所述系统结构关系矩阵D逻辑乘运算的结果确定最小的T使得D(T)=0,其中,对于使D(k)=0时都有k≥T,此时系统的层次数为M=T-1。
5.根据权利要求4所述的方法,其特征在于,根据所述系统结构关系矩阵确定各层次子系统,生成所述完善的系统结构组成表包括:
建立变量r并将r的取值从1遍历到M,对每个所述系统结构关系矩阵D的所述逻辑乘运算结果D(r)构建对应的集合其中j为顶层系统在矩阵D中所对应列的编号;
依次遍历所述集合SLE(r)中的各个元素并获得该元素对应的列i的值在D(r)中代表的系统、认定该系统的层级为r,并修改所述系统结构组成表中对应的系统记录,将该系统所处层次字段的值改为r;
完成变量r的遍历并获得所述完善的系统结构组成表。
6.根据权利要求5所述的方法,其特征在于,根据所述完善的系统结构组成表与所述系统内部信息组成表,获得所述各层次子系统的数目与所述各层次子系统之间的信息交换数,并计算系统的结构复杂度包括:
根据所述系统结构关系矩阵逻辑乘的运算结果,获得所述各层次子系统的数目;
根据所述完善的系统结构组成表与所述系统内部信息组成表,获得所述各层次子系统之间的信息交换数;
根据所述各层次子系统的数目与所述各层次子系统之间的信息交换数计算系统的结构复杂度。
7.根据权利要求6所述的方法,其特征在于,根据所述系统结构关系矩阵逻辑乘的运算结果,获得所述各层次子系统的数目包括:
将变量r的取值从1遍历到M,根据每个所述系统结构关系矩阵D的所述逻辑乘运算结果D(r)中相关元素的取值,计算层次r中对应的子系统的数目其中j为顶层系统在矩阵D中所对应的列的编号;
完成变量r的遍历并获得所述各层次子系统的数目。
8.根据权利要求7所述的方法,其特征在于,根据所述完善的系统结构组成表与所述系统内部信息组成表,获得所述各层次子系统之间的信息交换数包括:
根据所述完善的系统结构组成表与所述系统内部信息组成表构建系统内部信息交互矩阵P,所述系统内部信息交互矩阵P的维度等于所述系统结构组成表的记录数S,所述矩阵P中各元素其中,表示在系统内部信息组成表中存在对应的内部信息,该信息源系统的标识为SIDi、目的系统的标识为SIDj;
依次遍历所述矩阵P中的每个元素pij,判断其值是否为1:若为1且该元素在系统内部信息组成表对应记录的源系统、目的系统所在的层次都为r, 1≤r≤M,则将第r级子系统之间的信息交互数目INF(r)累加1;否则,则继续遍历下一个元素,完成对所述矩阵P中元素的遍历并获得各层次子系统之间的信息交互数INF(r)。
9.根据权利要求8所述的方法,其特征在于,根据所述各层次子系统的数目与所述各层次子系统之间的信息交换数计算系统的结构复杂度,为根据各层次子系统的数目L(r)以及子系统之间的信息交互数目INF(r),1≤r≤M计算系统结构复杂度
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611073862.2A CN106776291B (zh) | 2016-11-29 | 2016-11-29 | 一种系统结构复杂度计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611073862.2A CN106776291B (zh) | 2016-11-29 | 2016-11-29 | 一种系统结构复杂度计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106776291A CN106776291A (zh) | 2017-05-31 |
CN106776291B true CN106776291B (zh) | 2019-12-03 |
Family
ID=58898569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611073862.2A Active CN106776291B (zh) | 2016-11-29 | 2016-11-29 | 一种系统结构复杂度计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776291B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113687812B (zh) * | 2021-08-25 | 2022-09-09 | 中国人民解放军国防科技大学 | 信息系统体系结构构建方法、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7003766B1 (en) * | 2001-06-19 | 2006-02-21 | At&T Corp. | Suite of metrics for software quality assurance and product development |
CN102708224A (zh) * | 2012-04-10 | 2012-10-03 | 中国人民解放军国防科学技术大学 | 一种基于功能设计的系统结构自动分析方法 |
CN104794010A (zh) * | 2015-04-29 | 2015-07-22 | 中国人民解放军国防科学技术大学 | 一种系统内信息交互优化方法 |
-
2016
- 2016-11-29 CN CN201611073862.2A patent/CN106776291B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7003766B1 (en) * | 2001-06-19 | 2006-02-21 | At&T Corp. | Suite of metrics for software quality assurance and product development |
CN102708224A (zh) * | 2012-04-10 | 2012-10-03 | 中国人民解放军国防科学技术大学 | 一种基于功能设计的系统结构自动分析方法 |
CN104794010A (zh) * | 2015-04-29 | 2015-07-22 | 中国人民解放军国防科学技术大学 | 一种系统内信息交互优化方法 |
Non-Patent Citations (2)
Title |
---|
"SOFTWARE COMPLEXITY MEASUREMENT";Joseph P.Kearney等;《Communications of the ACM》;19861130;第29卷(第11期);正文第1044-1050页 * |
"一种改进的仿真系统沛系结构复杂性计算方法";齐新战等;《信息系统工程》;20130905(第7期);正文第148-149页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106776291A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10445657B2 (en) | General framework for cross-validation of machine learning algorithms using SQL on distributed systems | |
Kang et al. | Further development of matrix-based system reliability method and applications to structural systems | |
US8954910B1 (en) | Device mismatch contribution computation with nonlinear effects | |
CN110955685A (zh) | 一种大数据基数估计方法、系统、服务器和存储介质 | |
Hong et al. | Pathwise estimation of probability sensitivities through terminating or steady-state simulations | |
CN112907026A (zh) | 一种基于可编辑网状指标体系的综合评估方法 | |
Jiang et al. | Offline-enhanced reduced basis method through adaptive construction of the surrogate training set | |
Hesse et al. | Senska–towards an enterprise streaming benchmark | |
CN114881343A (zh) | 基于特征选择的电力系统短期负荷预测方法及装置 | |
JP6658507B2 (ja) | 負荷推定システム、情報処理装置、負荷推定方法、及び、コンピュータ・プログラム | |
Xiang et al. | Fault classification for high‐dimensional data streams: A directional diagnostic framework based on multiple hypothesis testing | |
CN106776291B (zh) | 一种系统结构复杂度计算方法 | |
Ye et al. | Parameters tuning of multi-model database based on deep reinforcement learning | |
CN107038111A (zh) | 一种软件可信性量化评估与设计方法 | |
CN104794010B (zh) | 一种系统内信息交互优化方法 | |
Kern et al. | The data richness estimation framework for federated data warehouse integration | |
CN109711555B (zh) | 一种预测深度学习模型单轮迭代时间的方法和系统 | |
CN114996228A (zh) | 一种面向服务器无感知的数据传输成本优化方法 | |
Zhu et al. | A likelihood for correlated extreme series | |
CN106201455B (zh) | 一种系统内聚度计算方法 | |
Mialaret et al. | Automated phase-type distribution fitting via expectation maximization | |
Kaur et al. | Comparative analysis of the software effort estimation models | |
Dingle et al. | Service level agreement specification, compliance prediction and monitoring with performance trees | |
CN110569155A (zh) | 数据处理方法及其系统、电子设备和介质 | |
Mittas et al. | Bootstrap prediction intervals for a semi-parametric software cost estimation model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |