CN110188432A - 系统架构的验证方法、电子设备及计算机可读存储介质 - Google Patents
系统架构的验证方法、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110188432A CN110188432A CN201910420023.0A CN201910420023A CN110188432A CN 110188432 A CN110188432 A CN 110188432A CN 201910420023 A CN201910420023 A CN 201910420023A CN 110188432 A CN110188432 A CN 110188432A
- Authority
- CN
- China
- Prior art keywords
- rule
- framework
- attribute
- query result
- triple
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种系统架构的验证方法、电子设备及计算机可读存储介质,通过将系统架构图转换为对应的元数据模型,并基于预定格式数据解析预定的架构规范文本以获取第一规则集合和第二规则集合,根据所述第一规则集合获取所述元数据模型对应的验证模型,并根据所述第二规则集合对所述验证模型进行验证,由此,实现了对系统架构图的自动验证,提高了系统架构验证的准确性,并降低了验证成本。
Description
技术领域
本发明涉及计算机技术领域,更具体地,涉及一种系统架构的验证方法、电子设备和计算机可读存储介质。
背景技术
对于同一个系统架构,系统架构设计人员绘制出的架构图呈现方式可以是多样的。若不同项目组采用不同的绘制风格,会给项目组相互之间的交流和评审带来障碍,也不易于形成可复用的架构资产。并且,不准确的系统架构图的绘制也很可能在系统架构设计阶段就引入一些错误。因此,在确定了统一的系统架构设计描述语言之后,还需要制定架构图绘制的规范,使得各个项目组的设计流程标准化,有统一的架构图绘制风格,既方便架构设计也方便方案评审,更可以在设计阶段就规避掉一些原则性的错误,提高架构设计的可靠性和正确性。但是,目前通常需要人工比对系统架构图是否符合绘制规范进行验证,成本较高,且工艺出现遗漏和疏忽。
发明内容
有鉴于此,本发明实施例提供一种系统架构的验证方法、电子设备和计算机可读存储介质,以实现对系统架构图的自动验证,提高系统架构验证的准确性,并降低验证成本。
第一方面,本发明实施例提供一种系统架构的验证方法,所述方法包括:
基于预定格式数据解析预定的架构规范文本以获取架构规则集合,所述架构规则集合包括第一规则集合和第二规则集合,所述第一规则集合包括至少一个第一架构规则,所述第二规则集合包括至少一个第二架构规则,所述第一架构规则为包含定义的架构规则,所述第二架构规则为不包含定义的架构规则;
将系统架构图转换为对应的元数据模型,所述元数据模型包括描述所述系统架构图中各节点以及各节点之间的相互关系的数据;
根据所述第一规则集合获取所述元数据模型对应的验证模型;
根据所述第二规则集合对所述验证模型进行验证。
进一步地,获取所述系统架构对应的元数据模型包括:
获取所述系统架构图中各个节点的属性三元组,所述属性三元组包括所述节点的标识、属性名称和属性值;
根据第一预定规则获取所述属性三元组对应的第一属性描述;
集成所有的第一属性描述以获取所述元数据模型。
进一步地,根据所述第一规则集合获取所述元数据模型对应的验证模型包括:
获取所述第一规则集合对应的第一查询结果集合;
根据所述第一查询结果集合获取各所述第一架构规则对应的属性三元组,其中,所述第一架构规则对应的属性三元组根据对应的第一查询结果进行赋值;
根据第一预定规则获取第二属性描述集合,所述第二属性描述集合包括各所述第一架构规则对应的属性三元组的属性描述;
在所述元数据模型中加入所述第二属性描述集合,以获取验证模型。
进一步地,根据所述第二规则集合对所述验证模型进行验证包括:
获取所述第二规则集合对应的第二查询结果集合;
根据所述第二查询结果集合获取各所述第二架构规则对应的属性三元组,其中,所述第二架构规则对应的属性三元组根据对应的第二查询结果进行赋值;
根据所述第一预定规则获取第三属性描述集合,所述第三属性描述集合包括各所述第二架构规则对应的属性三元组的属性描述;
对所述第二查询结果集合以及所述第三属性描述集合进行验证。
进一步地,所述方法还包括:
响应于所述第三属性描述集合满足第一预定条件,且所述第二查询结果集合满足第二预定条件,所述系统架构图通过验证;
其中,所述第一预定条件具体为所述第三属性描述集合中的第三属性描述在所述验证模型中的包含状态与该第三属性描述对应的第二架构规则匹配,所述第二预定条件具体为所述第二查询结果集合中的每条记录对应的布尔值为真。
进一步地,获取所述第一规则集合对应的第一查询结果集合包括:
获取所述第一规则集合中的第一架构规则对应的属性三元组;
根据第二预定规则对所述第一架构规则对应的属性三元组进行转换以获取对应的标准三元组;
根据所述标准三元组获取第一字符串;
根据所述第一架构规则中的所有属性为变量的标准三元组获取第二字符串;
根据所述第一字符串和所述第二字符串获取所述第一架构规则对应的查询语句;
在所述元数据模型上执行各所述第一架构规则对应的查询语句以获取所述第一查询结果集合。
进一步地,所述方法还包括:
响应于所述第一架构规则中不包含变量属性,发送异常信息并停止验证。
进一步地,在所述元数据模型上执行各所述第一架构规则对应的查询语句以获取所述第一查询结果集合包括:
在所述元数据模型上执行各所述第一架构规则对应的查询语句获取第一预查询结果集合;
响应于所述第一架构规则包含条件模块,从所述第一预查询结果集合中删除布尔值为假的查询结果,以获取第一查询结果集合;
其中,根据条件模块包含的调用函数计算第一预查询结果集合中的查询结果的布尔值。
第二方面,本发明实施例提供一种电子设备,包括存储器和处理器,其中,所述存储器用于存储一条或多条计算机指令,所述一条或多条计算机指令被所述处理器执行以实现如上所述的方法。
第三方面,本发明实施例提供一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如上所述的方法。
本发明实施例的技术方案通过将系统架构图转换为对应的元数据模型,并基于预定格式数据解析预定的架构规范文本以获取第一规则集合和第二规则集合,根据所述第一规则集合获取所述元数据模型对应的验证模型,并根据所述第二规则集合对所述验证模型进行验证,由此,实现了对系统架构图的自动验证,提高了系统架构验证的准确性,并降低了验证成本。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是本发明实施例的系统架构的验证方法的流程图;
图2是本发明实施例的获取元数据模型的方法流程图;
图3是本发明实施例的获取验证模型的方法流程图;
图4是本发明实施例的获取查询结果的方法流程图;
图5是本发明实施例的验证模型的验证方法流程图;
图6-图9是本发明实施例的系统架构图的示意图;
图10是本发明实施例的系统架构的验证装置的示意图;
图11是本发明实施例的电子设备的示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
图1是本发明实施例的系统架构的验证方法的流程图。如图1所示,本实施例的系统架构的验证方法包括以下步骤:
步骤S100,基于预定格式数据解析预定的架构规范文本以获取架构规则集合。
在一种可选的实现方式中,预定格式数据为EBNF范式(Extended Backus-NaurForm,扩展巴科斯-瑙尔范式)。EBNF范式的符号和用途说明如表1所示。
表1
在一种可选的实现方式中,系统架构图的架构规范文本根据如下EBNF范式进行定义:
其中,对于给定信息,若该给定信息为上述rule_set规则产生的,则该给定信息为一组架构规范。若该给定信息为上述variable规则产生的,则该给定信息为一个变量。若该给定信息为上述const规则产生的,则该给定信息为一个常量。若该给定信息为上述triple规则产生的,则该给定信息为一个三元组。
由此,采用上述EBNF范式对预定的架构规范文本R进行解析,可以获得架构规范文本R中所定义的架构规则集合S。可选的,采用antlr读取EBNF范式,可以自动生成能够解析按照EBNF范式书写的语言解析器。antlr是指可以根据输入自动生成语法树并可视化的显示出来的开源语法分析器。
在本实施例中,架构规则集合S包括第一规则集合S1和第二规则集合S2,第一规则集合S1包括至少一个第一架构规则s1,第二规则集合包括至少一个第二架构规则s2。第一架构规则s1为包含定义的架构规则。例如,DEFINE a:higherThan b,也即,在系统架构图中,定义节点a高于节点b。第二架构规则s2为不包含定义的架构规则。
步骤S200,将系统架构图转换为对应的元数据模型。其中,元数据模型包括描述系统架构图中各节点以及各节点之间的相互关系的数据。
在一种可选的实现方式中,将系统架构图中包含的架构图内容转换为RDF(Resource Description Framework,资源描述框架)格式的数据以获取元数据模型。RDF是一种用于描述Web资源的标记语言。RDF是一个处理元数据的XML(标准通用标记语言的子集)应用。元数据就是“描述数据的数据”或者“描述信息的信息”。在本实施中,元数据是用于描述系统架构图信息的数据,也即描述系统架构图中各节点的信息以及各节点之间的相互关系的数据。
在本实施例中,系统架构图中的每个节点具有一个标识(ID)。可选的,节点ID包含字母和数字,以使得节点ID能与一个给定字符串拼接构成符合URI(Uniform ResourceIdentifier,统一资源标识符)格式的字符串。
图2是本发明实施例的获取元数据模型的方法流程图。在一种可选的实现方式中,如图2所示,将系统架构图转换为对应的元数据模型具体包括以下步骤:
步骤S210,获取系统架构图中各个节点的属性三元组。其中,属性三元组包括节点的标识、属性名称和属性值。节点的属性包括节点名称、节点类型、节点的横纵坐标、与其他节点的相互关系等。也就是说,节点对应的属性三元组为<节点标识,属性名称,属性值>。
例如,对于系统架构图中的节点0,假设节点0的标识为I、名称为N,对应的属性三元组为<I,’name’,N>。节点0的类型为X,对应的属性三元组为<I,’type’,X>。节点0的横纵坐标分别为x、y,对应的属性三元组分别为<I,’xAxis’,x>、<I,’yAxis’,y>。若节点0与节点1具有关联关系,节点1的标识为J,节点0与节点1的关联关系的名称为E,则对应的属性三元组为<I,E,J>。
步骤S220,根据第一预定规则获取属性三元组对应的第一属性描述。在一种可选的实现方式中,给定一个字符串U,使得字符串U与任意节点的标识拼接成的字符串符合URI格式。在本实施例中,定义字符串连接操作concat。假设字符串p、q为任意的字符串,concat(p,q)的值为字符串p、q按照在括号内的顺序进行连接得到的字符串。例如,假设p表示字符串'http://www.example.org/ns#',q表示字符串'abcd1234',则concat(p,q)表示字符串'http://www.example.org/ns#abcd1234'。也就是说,在本实施例中,假设节点0的标识为I,则concat(U,I)为对应的元数据模型中指向节点0的URI。例如,设置字符串U为“http://archimate/ns#”,节点0的标识I为node1,则节点0在元数据模型中对应的URI为“http://archimate/ns#node1”。
元数据模型中的一条属性描述用于标识对一个节点的一个属性的描述。具体地,对于属性三元组<A,B,C>,其中,A为主体(也即节点标识),B为谓词(也即属性名称),C为客体。其中,C可以为与节点标识A对应的节点有关联关系的节点的标识,也可以为属性值的数值。则属性三元组<A,B,C>的属性描述分别为:
1、主体A的属性描述,也即主体的URI:concat(U,A)。
2、谓词B的属性描述,也即谓词的URI:concat(U,B)。
3、客体C的属性描述,在客体C为一个节点标识时,客体C的属性描述为客体C的URI:concat(U,C)。在客体C为属性值的数值时,客体C的属性描述与该属性数值相同,例如,节点标识A对应的节点的纵坐标为20,则客体C的属性描述为20。
假设客体C为一个节点标识,属性三元组<A,B,C>对应的属性描述为<concat(U,A),concat(U,B),concat(U,C)>
步骤S230,集成所有的第一属性描述以获取元数据模型。具体地,初始化系统架构图对应的元数据模型,并将获取的属性描述加入初始化后的元数据模型中,以获取该系统架构图对应的元数据模型。由此,可以将系统架构图转换为RDF格式的元数据模型,并根据步骤S110获得的架构规则集合对该元数据模型进行验证,以获取验证结果,从而更准确的验证系统架构图是否符合预置的架构规范,降低了验证成本。
步骤S300,根据第一规则集合获取元数据模型对应的验证模型。其中,第一规则集合包括至少一个第一架构规则。第一架构规则为包含定义的架构规则。例如,DEFINE a:higherThan b,也即,在系统架构图中,定义节点a高于节点b。也就是说,提取架构规则集合中的包含“DEFINE”的架构规则,组成第一规则集合。
图3是本发明实施例的获取验证模型的方法流程图。在一种可选的实现方式中,如图3所示,根据第一规则集合获取元数据模型对应的验证模型具体包括以下步骤:
步骤S310,获取第一规则集合对应的第一查询结果集合。在一种可选的实现方式中,如图4所示,获取第一规则集合对应的第一查询结果集合具体包括以下步骤:
步骤S311,获取第一规则集合中的第一架构规则对应的属性三元组。其中,获取第一架构规则中的参数对应的属性三元组与上述获取系统架构图中的各节点对应的三元组类似。例如,一个第一架构规则s1如下所示:
其中,第一架构规则s1的含义为:对于两个节点a和b,节点a所属组为g1,节点b的所属组为g2,节点a的类型为“Application”,y轴坐标为ya,节点b的类型为“Technology”,y轴坐标为yb。其中,节点b的y轴坐标yb小于节点a的y轴坐标ya,定义节点a高于节点b。
其中,第一架构规则s1对应的属性三元组分别为:
<a,:type,“Application”>、<a,:group,g>、<a,:yAxis,ya>、
<b,:type,“Technology”>、<b,:group,g>、<b,:yAxis,yb>。
步骤S312,根据第二预定规则对第一架构规则对应的属性三元组进行转换以获取对应的标准三元组。在一种可选的实现方式中,将第一架构规则对应的属性三元组中的变量符号转换为concat(‘?’,变量当前值),将第一架构规则对应的属性三元组中的变量符号转换为concat(‘ns’,常量当前值),第一架构规则对应的属性三元组中的由EBNF范式中string或number规则产生的字符串,不执行任何变换。以上述第一架构规则s1为例,对应的标准三元组分别为:
<?a,ns:type,“Application”>、<?a,ns:group,?g>、<?a,ns:yAxis,?ya>、
<?b,ns:type,“Technology”>、<?b,ns:group,?g>、<?b,ns:yAxis,?yb>
步骤S313,根据标准三元组获取第一字符串。在一种可选的实现方式中,首先初始化第一字符串,然后采用concat连接操作连接第一架构规则对应的所有标准三元组以获取第一字符串。假设标准三元组为<sub,pre,obj>,则第一字符串condition为concat(condition当前值,sub,”,pre,”,obj,’·’,nl),其中nl为换行符。
以上述第一架构规则s1为例,第一字符串condition为:
?a ns:type“Application”·
?a ns:group?g·
?a ns:yAxis?ya·
?b ns:type“Technology”·
?b ns:group?g·
?b ns:yAxis?yb·
步骤S314,根据第一架构规则中的所有属性为变量的标准三元组获取第二字符串。在一种可选的实现方式中,若标准三元组中的变量符号为0个,则停止当前第一架构规则的操作并执行下一个第一架构规则的操作,或者发送异常信息并停止所有的验证操作。若标准三元组中的变量符号有1个,则第二字符串为该变量符号。若标准三元组中的变量符号的数量大于1个,则采用concat连接操作连接标准三元组中的变量符号以获取第二字符串。其中,用concat连接操作中的变量符号不重复。
以上述第一架构规则s1为例,第二字符串varlist为“?a?g?ya?b?yb”。
步骤S315,根据第一字符串和第二字符串获取第一架构规则对应的查询语句。在一种可选的实现方式中,构造查询语句query为concat(‘PREFIX ns:<’,U‘>’,nl‘SELECT‘varlist,nl‘WHERE{‘,nl,condition,‘}’)。其中,字符串U为上述获取元数据模型时的给定的符合URI格式的字符串。
以上述第一架构规则s1为例,对应的查询语句为:
步骤S316,在元数据模型上执行各第一架构规则对应的查询语句以获取第一查询结果集合。在一种可选的实现方式中,调用SPARQL执行引擎,在元数据模型上执行各第一架构规则对应的查询语句query(通过步骤S311-S315获取各第一架构规则对应的查询语句query),并返回第一预查询结果集合。其中,SPARQL(Simple Protocol and RDF QueryLanguage)是为RDF开发的一种查询语言和数据获取协议。
例如,第一规则集合对应的第一预查询结果集合如表2所示。
表2
在表2的第一条查询结果中,节点a的标识为node2、所属组的名称为“group1”、y轴坐标为34,节点b的标识为node1、所属组的名称为“group1”、y轴坐标为26。在表2的第2条查询结果中,节点a的标识为node3、所属组的名称为“group1”、y轴坐标为45,节点b的标识为node1、所属组的名称为“group1”、y轴坐标为26。容易理解,第一预查询结果集合中的查询结果的数量与第一架构规则的数量一致,表2中仅给出第一预查询结果集合中的部分查询结果。
进一步地,在本实施例中,响应于第一架构规则不包含条件模块,第一预查询结果集合即为第一查询结果集合。响应于第一架构规则包含条件模块,从第一预查询结果集合中删除布尔值为假的查询结果,以获取第一查询结果集合。其中,根据条件模块包含的调用函数计算第一预查询结果集合中的查询结果的布尔值。
例如,上述第一架构规则s1中的“WHERE lessThan(yb,ya)”为第一架构规则s1中的条件模块。
具体地,假设第一架构规则中包含n条函数调用语句,分别记为F1、F2、…、Fn,n大于或等于1。其中,由上述EBNF范式中func规则产生的数据为函数调用语句。对于第一预查询集合中的每一条查询结果j,计算布尔表达式G=eval(F1,j)∧eval(F2,j)∧…∧eval(Fn,j)的值,若计算获得的布尔值G为假,从第一预查询结果中删除对应的查询结果j,以获取第一查询结果集合。
在一个可选的实现方式中,计算eval(Fi,j)(i大于等于1小于等于n)的方法为:
1、计算函数调用语句Fi中的参数值。若参数为变量符号,则该变量符号对应的赋值为参数值,如表2中的节点a(节点标识node2)的y轴坐标ya的赋值为34,则该参数对应的参数值为34。若参数为函数调用语句,假设为函数调用语句为f,则对应的参数值为eval(f,j)。若为其他情况,则参数对应的参数值为该参数本身对应的字符串。
2、根据函数调用语句Fi的函数名调用对应的执行函数,并根据获取的参数值执行该执行函数,返回eval(Fi,j)的值。由此,可以计算第一预查询结果中的每条查询结果对应的布尔值。
步骤S320,根据第一查询结果集合获取各第一架构规则对应的属性三元组,其中,第一架构规则对应的属性三元组根据对应的第一查询结果进行赋值。以上述第一架构规则s1和表2中的第一查询结果集合(假设表2中的查询结果为2条,根据上述计算可得这2条查询结果均为真)为例,第一架构规则s1对应的属性三元组为:
<node2,type,“Application”>、<node2,group,group1>、
<node2,yAxis,34>、<node3,type,“Application”>、
<node3,group,group1>、<node3,yAxis,45>、
<node1,type,“Technology”>、<node1,group,group1>、
<node1,yAxis,26>
步骤S330,根据第一预定规则获取第二属性描述集合。其中,第二属性描述集合包括各第一架构规则对应的属性三元组的属性描述。以步骤S320中的第一架构规则s1对应的属性三元组、给定字符串U为“http://archimate/ns#”为例,第二属性描述集合包括:
<http://archimate/ns#node2,http://archimate/ns#type,”Application”>
<http://archimate/ns#node2,http://archimate/ns#group,group1>
<http://archimate/ns#node2,http://archimate/ns#yAxis,34>
<http://archimate/ns#node3,http://archimate/ns#type,”Application”>
<http://archimate/ns#node3,http://archimate/ns#group,group1>
<http://archimate/ns#node3,http://archimate/ns#yAxis,45>
<http://archimate/ns#node1,http://archimate/ns#type,“Technology”>
<http://archimate/ns#node1,http://archimate/ns#group,group1>
<http://archimate/ns#node1,http://archimate/ns#yAxis,26>
在本实施例中,第二属性描述集合中的属性描述不重复。
步骤S340,在元数据模型中加入第二属性描述集合,以获取验证模型。也就是说,将第一规则集合中的所有第一架构对着对应的第二属性描述集合加入元数据模型中,以获取验证模型。可选的,在本实施例中,对于元数据模型中已经存在的属性描述,不需要再重复加入。
步骤S400,根据第二规则集合对验证模型进行验证。其中,第二规则集合包括至少一个第二架构规则。第二架构规则为不包含定义的架构规则。也就是说,提取架构规则集合中的不包含“DEFINE”的架构规则,组成第二规则集合。
图5是本发明实施例的对验证模型进行验证的方法流程图。在一种可选的实现方式中,如图5所示,根据第二规则集合对验证模型进行验证包括以下步骤:
步骤S410,获取所述第二规则集合对应的第二查询结果集合。获取第二查询结果集合的步骤与获取第一查询结果集合的步骤(步骤S311-步骤S316)类似,在此不再赘述。
在本实施例中,以获取第二架构规则s2对应的第二查询结果集合进行举例描述。其中,第二架构规则s2如下所示:
其中,第二架构规则s2的含义为:对于两个节点a和b,假设节点a和节点b属于同一组(也即节点a和节点b的“group”属性的属性值相同),并且节点a和节点b所属组的名称(也即“group”属性的属性值)的前4个字母不为“meta”,节点a的类型为“Application”,y轴坐标为ya,节点b的类型为“Technology”,y轴坐标为yb。其中,节点a的y轴坐标ya不能小于节点b的y轴坐标yb,且对应的系统架构图中不能出现以加点a为源节点、节点b为目标节点的“supportBy”的关联关系。
其中,第二架构规则s2对应的属性三元组分别为:
<a,:type,“Application”>、<a,:group,g>、<a,:yAxis,ya>、
<b,:type,“Technology”>、<b,:group,g>、<b,:yAxis,yb>。
第二架构规则s2对应的标准三元组分别为:
<?a,ns:type,“Application”>、<?a,ns:group,?g>、<?a,ns:yAxis,?ya>、
<?b,ns:type,“Technology”>、<?b,ns:group,?g>、<?b,ns:yAxis,?yb>
第二架构规则s2对应的第一字符串condition为:
?a ns:type“Application”·
?a ns:group?g·
?a ns:yAxis?ya·
?b ns:type“Technology”·
?b ns:group?g·
?b ns:yAxis?yb·
第二架构规则s2对应的第二字符串varlist为“?a?g?ya?b?yb”。
第二架构规则s2对应的查询语句为:
在步骤S300中获取验证模型上执行各第二架构规则对应的查询语句以获取第二查询结果集合。可选的,在本实施例中,通过计算各查询结果对应的布尔值对第二预查询结果集合进行过滤以获取第二查询结果集合。
例如,第二规则集合对应的第二查询结果集合如表3所示。
表3
在表3的第一条查询结果中,节点a的标识为node4、所属组的名称为“group1”、y轴坐标为30,节点b的标识为node3、所属组的名称为“group1”、y轴坐标为20。在表3的第2条查询结果中,节点a的标识为node5、所属组的名称为“group1”、y轴坐标为40,节点b的标识为node3、所属组的名称为“group1”、y轴坐标为20。
步骤S420,根据第二查询结果集合获取各第二架构规则对应的属性三元组。其中,第二架构规则对应的属性三元组根据对应的第二查询结果进行赋值。以上述第二架构规则s2和表3中的第一查询结果集合为例,第二架构规则s2对应的属性三元组为:
<node4,type,“Application”>、<node4,group,group1>、
<node4,yAxis,30>、<node5,type,“Application”>、
<node5,group,group1>、<node5,yAxis,40>、
<node3,type,“Technology”>、<node3,group,group1>、
<node3,yAxis,20>
步骤S430,根据第一预定规则获取第三属性描述集合。其中,第三属性描述集合包括各第二架构规则对应的属性三元组的属性描述。以步骤S420中的第二架构规则s2对应的属性三元组、给定字符串U为“http://archimate/ns#”为例,第三属性描述集合包括:
<http://archimate/ns#node4,http://archimate/ns#type,”Application”>
<http://archimate/ns#node4,http://archimate/ns#group,group1>
<http://archimate/ns#node4,http://archimate/ns#yAxis,30>
<http://archimate/ns#node5,http://archimate/ns#type,”Application”>
<http://archimate/ns#node5,http://archimate/ns#group,group1>
<http://archimate/ns#node5,http://archimate/ns#yAxis,40>
<http://archimate/ns#node3,http://archimate/ns#type,“Technology”>
<http://archimate/ns#node3,http://archimate/ns#group,group1>
<http://archimate/ns#node3,http://archimate/ns#yAxis,20>
在本实施例中,第三属性描述集合中的属性描述不重复。
步骤S440,对第二查询结果集合以及第三属性描述集合进行验证。在一种可选的实现方式中,响应于第三属性描述集合满足第一预定条件,且第二查询结果集合满足第二预定条件,系统架构图通过验证。其中,第一预定条件具体为第三属性描述集合中的第三属性描述在验证模型中的包含状态与该第三属性描述对应的第二架构规则匹配。第二预定条件具体为所述第二查询结果集合中的每条记录对应的布尔值为真。
也就是说,对于第一预定条件,查看对应的验证模型中是否包括第二架构规则对应的第三属性描述集合。若第二架构规则中的关键词为“EXIST”,但是对应的验证模型中不包括该第二架构规则对应的第三属性描述集合,或者若第二架构规则中的关键词为“NOTEXIST”,但是对应的验证模型中包括该第二架构规则对应的第三属性描述集合,则认为该系统架构图不符合该第二架构规则。反之,若第二架构规则中的关键词为“EXIST”,对应的验证模型中也包括该第二架构规则对应的第三属性描述集合,或者若第二架构规则中的关键词为“NOT EXIST”,对应的验证模型中也不包括该第二架构规则对应的第三属性描述集合,则认为该系统架构图符合该第二架构规则。以架构规则中包括上述第二架构规则s2为例,第二架构规则s2中的关键词为“NOT EXIST”,因此,若对应的验证模型中包括第二架构规则s2对应的第三属性描述集合,则该验证模型对应的系统架构图不符合第二架构规则s2,若对应的验证模型中不包括第二架构规则s2对应的第三属性描述集合,则该验证模型对应的系统架构图符合第二架构规则s2。
由此,本实施例通过将系统架构图转换为对应的元数据模型,并基于预定格式数据解析预定的架构规范文本以获取第一规则集合和第二规则集合,根据所述第一规则集合获取所述元数据模型对应的验证模型,并根据所述第二规则集合对所述验证模型进行验证,由此,可以提高系统架构验证的准确性,并降低了验证成本。
图6-图9是本发明实施例的系统架构图的示意图。假设给出的一个架构规范集合如下所示:
也就是说,该架构规范规定系统架构图中的所有类别为“Technology”的节点不能高于任一类别为“Application”的节点。如图6所示,系统架构图6中的应用服务61、软件和接口62、后台管理63以及外围系统64中的所有节点的类别为“Application”,基础设施服务65和基础设备66中的所有节点的类别为“Technology”。则显然系统架构图6是符合上述规范的。
在一种可选的实现方式中,如图7所示,在系统架构图的设计页面,呼出菜单选项,选择“check Model”项对系统架构图进行验证。其中,“check Model”项为上述的系统架构的验证方法对应的插件。
在验证通过后,系统架构图符合架构规范文本的页面显示如图8所示,显示“验证通过”等信息。系统架构图不符合系统架构文本的压面显示如图9所示,将不符合架构规范的节点特殊显示以便于开发人员进行修改,如对外围系统64中的部分节点RMB、FX2009及CIM等。由此,可以系统架构图的快速自动化验证、提高了验证的准确性,并降低了验证成本。
图10是本发明实施例的系统架构的验证装置的示意图。如图10所示,本实施例的系统架构的验证装置10包括解析单元101、转换单元102、验证模型获取单元103以及验证单元104。
解析单元101被配置为基于预定格式数据解析预定的架构规范文本以获取架构规则集合。其中,架构规则集合包括第一规则集合和第二规则集合。第一规则集合包括至少一个第一架构规则,第二规则集合包括至少一个第二架构规则。第一架构规则为包含定义的架构规则,第二架构规则为不包含定义的架构规则。转换单元102被配置为将系统架构图转换为对应的元数据模型。其中,元数据模型包括描述所述系统架构图中各节点以及各节点之间的相互关系的数据。验证模型获取单元103被配置为根据所述第一规则集合获取所述元数据模型对应的验证模型。验证单元104被配置为根据第二规则集合对所述验证模型进行验证。
可选的,转换单元102包括第一属性三元组获取子单元1021、第一属性描述获取子单元1022、转换子单元1023。第一属性三元组获取子单元1021被配置为获取所述系统架构图中各个节点的属性三元组。其中。属性三元组包括节点的标识、属性名称和属性值。第一属性描述获取子单元1022被配置为根据第一预定规则获取属性三元组对应的第一属性描述。转换子单元1023被配置为集成所有的第一属性描述以获取所述元数据模型。
可选的,验证模型获取单元103包括第一查询结果获取子单元1031、第二属性三元组获取子单元1032、第二属性描述获取子单元1033以及验证模型获取子单元1034。其中,第一查询结果获取子单元1031被配置为获取所述第一规则集合对应的第一查询结果集合。第二属性三元组获取子单元1032被配置为根据第一查询结果集合获取各所述第一架构规则对应的属性三元组。其中,第一架构规则对应的属性三元组根据对应的第一查询结果进行赋值。第二属性描述获取子单元1033被配置为根据第一预定规则获取第二属性描述集合。其中,第二属性描述集合包括各所述第一架构规则对应的属性三元组的属性描述。验证模型获取子单元1034被配置为在元数据模型中加入所述第二属性描述集合,以获取验证模型。
可选的,第一查询结果获取子单元1031进一步被配置为:获取所述第一规则集合中的第一架构规则对应的属性三元组;根据第二预定规则对所述第一架构规则对应的属性三元组进行转换以获取对应的标准三元组;根据所述标准三元组获取第一字符串;根据所述第一架构规则中的所有属性为变量的标准三元组获取第二字符串;根据所述第一字符串和所述第二字符串获取所述第一架构规则对应的查询语句;在所述元数据模型上执行各所述第一架构规则对应的查询语句以获取所述第一查询结果集合。
可选的,第一查询结果获取子单元1031进一步被配置为:在所述元数据模型上执行各所述第一架构规则对应的查询语句获取第一预查询结果集合;响应于所述第一架构规则包含条件模块,从所述第一预查询结果集合中删除布尔值为假的查询结果,以获取第一查询结果集合。其中,根据条件模块包含的调用函数计算第一预查询结果集合中的查询结果的布尔值。
可选的,验证单元104包括第二查询结果获取子单元1041、第三属性三元组获取子单元1042、第三属性描述获取子单元1043以及验证子单元1034。第二查询结果获取子单元1041被配置为获取第二规则集合对应的第二查询结果集合。第三属性三元组获取子单元1042被配置为根据第二查询结果集合获取各所述第二架构规则对应的属性三元组。其中,第二架构规则对应的属性三元组根据对应的第二查询结果进行赋值。第三属性描述获取子单元1043被配置为根据第一预定规则获取第三属性描述集合。其中,第三属性描述集合包括各所述第二架构规则对应的属性三元组的属性描述。验证子单元1034被配置为对第二查询结果集合以及所述第三属性描述集合进行验证。在本实施例中,若第三属性描述集合满足第一预定条件,且第二查询结果集合满足第二预定条件,系统架构图通过验证。其中,第一预定条件具体为第三属性描述集合中的第三属性描述在验证模型中的包含状态与该第三属性描述对应的第二架构规则匹配,第二预定条件具体为所述第二查询结果集合中的每条记录对应的布尔值为真。
本实施例通过将系统架构图转换为对应的元数据模型,并基于预定格式数据解析预定的架构规范文本以获取第一规则集合和第二规则集合,根据所述第一规则集合获取所述元数据模型对应的验证模型,并根据所述第二规则集合对所述验证模型进行验证,由此,可以提高系统架构验证的准确性,并降低了验证成本。
图11是本发明实施例的电子设备的示意图。图11所示的电子设备为通用数据处理装置,其包括通用的计算机硬件结构,其至少包括处理器111和存储器112。处理器111和存储器112通过总线113连接。存储器112适于存储处理器111可执行的指令或程序。处理器111可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器111通过执行存储器112所存储的指令,从而执行如s上所述的本申请实施例的方法流程实现对于数据的处理和对于其它装置的控制。总线113将上述多个组件连接在一起,同时将上述组件连接到显示控制器114和显示装置以及输入/输出(I/O)装置115。输入/输出(I/O)装置115可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置115通过输入/输出(I/O)控制器116与系统相连。
本领域的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品。
本申请是参照根据本申请实施例的方法、和计算机程序产品的流程图来描述的。应理解可由计算机程序指令实现流程图中的每一流程。
这些计算机程序指令可以存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现流程图一个流程或多个流程中指定的功能。
本发明实施例还涉及一种非易失性存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlB MemorB)、随机存取存储器(RAM,Random Access MemorB)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种系统架构的验证方法,其特征在于,所述方法包括:
基于预定格式数据解析预定的架构规范文本以获取架构规则集合,所述架构规则集合包括第一规则集合和第二规则集合,所述第一规则集合包括至少一个第一架构规则,所述第二规则集合包括至少一个第二架构规则,所述第一架构规则为包含定义的架构规则,所述第二架构规则为不包含定义的架构规则;
将系统架构图转换为对应的元数据模型,所述元数据模型包括描述所述系统架构图中各节点以及各节点之间的相互关系的数据;
根据所述第一规则集合获取所述元数据模型对应的验证模型;
根据所述第二规则集合对所述验证模型进行验证。
2.根据权利要求1所述的方法,其特征在于,获取所述系统架构对应的元数据模型包括:
获取所述系统架构图中各个节点的属性三元组,所述属性三元组包括所述节点的标识、属性名称和属性值;
根据第一预定规则获取所述属性三元组对应的第一属性描述;
集成所有的第一属性描述以获取所述元数据模型。
3.根据权利要求1所述的方法,其特征在于,根据所述第一规则集合获取所述元数据模型对应的验证模型包括:
获取所述第一规则集合对应的第一查询结果集合;
根据所述第一查询结果集合获取各所述第一架构规则对应的属性三元组,其中,所述第一架构规则对应的属性三元组根据对应的第一查询结果进行赋值;
根据第一预定规则获取第二属性描述集合,所述第二属性描述集合包括各所述第一架构规则对应的属性三元组的属性描述;
在所述元数据模型中加入所述第二属性描述集合,以获取验证模型。
4.根据权利要求3所述的方法,其特征在于,根据所述第二规则集合对所述验证模型进行验证包括:
获取所述第二规则集合对应的第二查询结果集合;
根据所述第二查询结果集合获取各所述第二架构规则对应的属性三元组,其中,所述第二架构规则对应的属性三元组根据对应的第二查询结果进行赋值;
根据所述第一预定规则获取第三属性描述集合,所述第三属性描述集合包括各所述第二架构规则对应的属性三元组的属性描述;
对所述第二查询结果集合以及所述第三属性描述集合进行验证。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于所述第三属性描述集合满足第一预定条件,且所述第二查询结果集合满足第二预定条件,所述系统架构图通过验证;
其中,所述第一预定条件具体为所述第三属性描述集合中的第三属性描述在所述验证模型中的包含状态与该第三属性描述对应的第二架构规则匹配,所述第二预定条件具体为所述第二查询结果集合中的每条记录对应的布尔值为真。
6.根据权利要求4所述的方法,其特征在于,获取所述第一规则集合对应的第一查询结果集合包括:
获取所述第一规则集合中的第一架构规则对应的属性三元组;
根据第二预定规则对所述第一架构规则对应的属性三元组进行转换以获取对应的标准三元组;
根据所述标准三元组获取第一字符串;
根据所述第一架构规则中的所有属性为变量的标准三元组获取第二字符串;
根据所述第一字符串和所述第二字符串获取所述第一架构规则对应的查询语句;
在所述元数据模型上执行各所述第一架构规则对应的查询语句以获取所述第一查询结果集合。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
响应于所述第一架构规则中不包含变量属性,发送异常信息并停止验证。
8.根据权利要求6所述的方法,其特征在于,在所述元数据模型上执行各所述第一架构规则对应的查询语句以获取所述第一查询结果集合包括:
在所述元数据模型上执行各所述第一架构规则对应的查询语句获取第一预查询结果集合;
响应于所述第一架构规则包含条件模块,从所述第一预查询结果集合中删除布尔值为假的查询结果,以获取第一查询结果集合;
其中,根据条件模块包含的调用函数计算第一预查询结果集合中的查询结果的布尔值。
9.一种电子设备,其特征在于,包括存储器和处理器,其中,所述存储器用于存储一条或多条计算机指令,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-8中任一项所述的方法。
10.一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910420023.0A CN110188432B (zh) | 2019-05-20 | 2019-05-20 | 系统架构的验证方法、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910420023.0A CN110188432B (zh) | 2019-05-20 | 2019-05-20 | 系统架构的验证方法、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110188432A true CN110188432A (zh) | 2019-08-30 |
CN110188432B CN110188432B (zh) | 2023-01-31 |
Family
ID=67716885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910420023.0A Active CN110188432B (zh) | 2019-05-20 | 2019-05-20 | 系统架构的验证方法、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110188432B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704635A (zh) * | 2019-09-16 | 2020-01-17 | 金色熊猫有限公司 | 一种知识图谱中三元组数据的转换方法及装置 |
CN113568600A (zh) * | 2021-07-21 | 2021-10-29 | 上海淇玥信息技术有限公司 | 一种应用架构属性信息管理方法、装置和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090138498A1 (en) * | 2007-11-26 | 2009-05-28 | Microsoft Corporation | Rdf store database design for faster triplet access |
CN103729523A (zh) * | 2014-01-22 | 2014-04-16 | 中国人民解放军国防科学技术大学 | 一种面向参数化系统的自动验证方法 |
-
2019
- 2019-05-20 CN CN201910420023.0A patent/CN110188432B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090138498A1 (en) * | 2007-11-26 | 2009-05-28 | Microsoft Corporation | Rdf store database design for faster triplet access |
CN103729523A (zh) * | 2014-01-22 | 2014-04-16 | 中国人民解放军国防科学技术大学 | 一种面向参数化系统的自动验证方法 |
Non-Patent Citations (1)
Title |
---|
赵玉强等: "基于CPN模型的REST服务架构标准特征验证方法研究", 《计算机工程与科学》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704635A (zh) * | 2019-09-16 | 2020-01-17 | 金色熊猫有限公司 | 一种知识图谱中三元组数据的转换方法及装置 |
CN110704635B (zh) * | 2019-09-16 | 2023-12-12 | 金色熊猫有限公司 | 一种知识图谱中三元组数据的转换方法及装置 |
CN113568600A (zh) * | 2021-07-21 | 2021-10-29 | 上海淇玥信息技术有限公司 | 一种应用架构属性信息管理方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110188432B (zh) | 2023-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105550241B (zh) | 多维数据库查询方法及装置 | |
US6216132B1 (en) | Method and system for matching consumers to events | |
CN109240901B (zh) | 性能分析方法、性能分析装置、存储介质和电子设备 | |
US8892599B2 (en) | Apparatus and method for securing preliminary information about database fragments for utilization in mapreduce processing | |
US6738759B1 (en) | System and method for performing similarity searching using pointer optimization | |
US6618727B1 (en) | System and method for performing similarity searching | |
KR101835345B1 (ko) | 지식베이스 기반의 개념그래프 확장 시스템 | |
CN107688618B (zh) | 数据对比方法、装置、计算机设备和存储介质 | |
KR102330547B1 (ko) | 보고 생성 방법 | |
KR101662561B1 (ko) | Rdf 데이터베이스 질의를 위한 rdf 데이터베이스를 생성하기 위한 방법 및 디바이스, 및 rdf 데이터베이스 질의를 위한 검색 방법 및 검색 디바이스 | |
JP2010501096A (ja) | ラッパー生成およびテンプレート検出の協同最適化 | |
JP5535062B2 (ja) | ウェブログの時系列分析のためのデータ格納および照会方法及びその方法を実行するシステム | |
CN110019384B (zh) | 一种血缘数据的获取方法、提供血缘数据的方法及装置 | |
JP2013531289A (ja) | 検索におけるモデル情報群の使用 | |
JPWO2008093569A1 (ja) | 情報抽出規則作成支援システム、情報抽出規則作成支援方法及び情報抽出規則作成支援プログラム | |
CN103262076A (zh) | 分析数据处理 | |
CN104750496A (zh) | 一种模型变更影响度自动检查方法 | |
CN110188432A (zh) | 系统架构的验证方法、电子设备及计算机可读存储介质 | |
Oluwagbemi et al. | Automatic generation of test cases from activity diagrams for UML based testing (UBT) | |
JP5639417B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
KR100575581B1 (ko) | 우선순위 그래프를 이용한 제품 계열의 기능 분석 및테스팅 경로 분석 장치 및 그 방법 | |
KR100899616B1 (ko) | 관계형 데이터베이스를 이용한 메타데이터 관리 방법 및시스템 | |
CN107368500A (zh) | 数据抽取方法及系统 | |
CN116450908B (zh) | 基于数据湖的自助式数据分析方法、装置和电子设备 | |
JP3914081B2 (ja) | アクセス権限設定方法および構造化文書管理システム |
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 |