本发明涉及图形化建模领域,尤其涉及一种基于一体化模型持久化存储的多人并发建模方法、系统及存储介质。
背景技术:
::随着计算机信息技术的飞速发展,由于系统设计的微小错误而造成巨大损失的例子随处可见。由此,为保证嵌入式软件的可靠性安全性,图形建模已广泛应用于嵌入式软件领域。但是,嵌入式软件的复杂性导致模型过于庞大,单人建模成为建模工作的短肋,建模速度低,导致工作效率低下。技术实现要素:本发明的主要目的在于提供一种基于一体化模型持久化存储的多人并发建模方法、系统及存储介质,以增强程序代码的重用性,加快建模的速度,提高工作效率。为实现上述目的,本发明提供的一种基于一体化模型持久化存储的多人并发建模方法,其特征在于,包括以下步骤:建立一体化模型,将所述一体化模型拆分并保存到预先在系统服务器中搭建的数据库,同时保存系统资源;为建模人员分配权限,并由所述建模人员从所述数据库中更新整个模型;由建模人员开始建模,拆分一体化模型,提交拆分后的子模块模型;遍历提交的子模块模型,判断当前建模人员是否具有修改权限,如果是,则保存到内存中的数据模型,如果否,继续遍历;在遍历结束后,将内存中的数据模型转成存储模型,提交到数据库中,同时将系统资源保存到数据库中。其中,在所述建立一体化模型的步骤之前,还包括:在系统服务器中搭建数据库;创建一体化模型建模工程。其中,所述在系统服务器中搭建数据库的步骤中,搭建的数据库包含建模人员用户表、用户权限表、模型对象表以及与系统资源存储相关的表;所述创建一体化模型建模工程的步骤包括:模型工程的创建、数据库的配置、用户的登录。其中,所述建立的一体化模型包括:数据流图、程序流程图、程序结构图、故障树、因果图、状态图、活动图、时序图、判定表。其中,所述由建模人员从所述数据库中更新整个模型的步骤中包括:从数据库中读取模型数据进行封装,存放在数据模型中。其中,所述由建模人员开始建模,拆分一体化模型,提交拆分后的子模块模型的步骤中包括:根据建模工具建立的一体化模型的图形嵌套关系,按照模型拆分准则进行拆分,把每一个嵌套图形作为一个子模块同步解析并存储到内存的数据模型中。其中,所述模型拆分准则如下:(1)根据一体化模型的图形嵌套规则,将一体化模型拆分分为不同图形的子图;(2)提取每一个子图的软件行为及软件结构信息;(3)每一个子图分别以二进制流的形式保存到数据库;(4)保存记录包含当前建模人员、图形编号、父模型编号和图形的二进制流。其中,所述一体化模型不保存图形信息,只用于数据库存储模型的图形展示;所述内存中的数据模型使用对象模型,存储模型使用二进制流。此外,本发明还提出一种基于一体化模型持久化存储的多人并发建模系统,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的方法的步骤。此外,本发明还提出一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。与现有技术相比,本发明的有益效果是:(1)使用数据持久化的方法,程序代码重用性强,即使更换数据库,只需要更改配置文件,不必重写程序代码,此外模型数据在建模工程中的使用更加高效,不必每次都从数据库中读取;(2)使复杂的建模工程分成若干模块,让建模人员按照权限分工合作,比起传统建模方式大大加快图形建模速度,提高了工作效率;(3)能够明确建模人员的建模任务,方便管理人员统一管理;(4)一体化模型能够及时响应嵌入式软件的需求变化,更好地进行维护附图说明图1是本发明基于一体化模型的多人并行建模方法的流程示意图;图2是本发明基于一体化模型的多人并行建模方法的细化流程示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。由于现有技术中,嵌入式软件的复杂性导致模型过于庞大,单人建模成为建模工作的短肋,建模速度低,导致工作效率低下。本发明提供一种基于一体化模型的多人并行建模方法,该方法基于数据持久化实现,属于图形化建模领域。本发明的方法包括以下步骤:在系统服务器中搭建数据库并初始化;创建一体化模型工程;管理员维护图形建模人员;管理员建立一体化模型工程,将模型拆分并保存到数据库,同时将系统资源保存到数据库;管理员为建模人员分配权限;建模人员从数据库中更新整个模型;建模人员开始建模,拆分一体化模型,提交拆分后的子模块模型;遍历提交子模块模型,判断当前建模人员是否具有修改权限,如果是,保存到内存中的数据模型,如果否,继续遍历,遍历结束后,将内存中的数据模型转成存储模型,提交到数据库中,同时将系统资源保存到数据库中。本发明使用数据持久化存储的方法,增强了程序代码的重用性,此外本发明将复杂的建模工程分成若干个模块,让建模人员按照权限分工合作,加快了建模的速度,提高了工作效率。其中,一体化模型指的是一套mddt建模图形体系,能够对航天通用嵌入式软件进行多角度、多层次、多阶段的描述。多人建模指的是需要多人协作的、角色分离的、甚至实时的异地同步建模。数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。其中数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、xml、二进制流等具体地,如图1所示,本发明提出一种基于一体化模型持久化存储的多人并发建模方法,包括:步骤s101,建立一体化模型,将所述一体化模型拆分并保存到预先在系统服务器中搭建的数据库,同时保存系统资源;步骤s102,为建模人员分配权限,并由所述建模人员从所述数据库中更新整个模型;步骤s103,由建模人员开始建模,拆分一体化模型,提交拆分后的子模块模型;步骤s104,遍历提交的子模块模型,判断当前建模人员是否具有修改权限,如果是,则保存到内存中的数据模型,如果否,继续遍历;在遍历结束后,将内存中的数据模型转成存储模型,提交到数据库中,同时将系统资源保存到数据库中。进一步地,在所述建立一体化模型的步骤之前,还包括:在系统服务器中搭建数据库;创建一体化模型建模工程。进一步地,所述在系统服务器中搭建数据库的步骤中,搭建的数据库包含建模人员用户表、用户权限表、模型对象表以及与系统资源存储相关的表;所述创建一体化模型建模工程的步骤包括:模型工程的创建、数据库的配置、用户的登录。进一步地,所述建立的一体化模型包括:数据流图、程序流程图、程序结构图、故障树、因果图、状态图、活动图、时序图、判定表。进一步地,所述由建模人员从所述数据库中更新整个模型的步骤中包括:从数据库中读取模型数据进行封装,存放在数据模型中。进一步地,所述由建模人员开始建模,拆分一体化模型,提交拆分后的子模块模型的步骤中包括:根据建模工具建立的一体化模型的图形嵌套关系,按照模型拆分准则进行拆分,把每一个嵌套图形作为一个子模块同步解析并存储到内存的数据模型中。进一步地,所述模型拆分准则如下:(1)根据一体化模型的图形嵌套规则,将一体化模型拆分分为不同图形的子图;(2)提取每一个子图的软件行为及软件结构信息;(3)每一个子图分别以二进制流的形式保存到数据库;(4)保存记录包含当前建模人员、图形编号、父模型编号和图形的二进制流。进一步地,所述一体化模型不保存图形信息,只用于数据库存储模型的图形展示;所述内存中的数据模型使用对象模型,存储模型使用二进制流。与现有技术相比,本发明的有益效果是:(1)使用数据持久化的方法,程序代码重用性强,即使更换数据库,只需要更改配置文件,不必重写程序代码,此外模型数据在建模工程中的使用更加高效,不必每次都从数据库中读取;(2)使复杂的建模工程分成若干模块,让建模人员按照权限分工合作,比起传统建模方式大大加快图形建模速度;(3)能够明确建模人员的建模任务,方便管理人员统一管理;(4)一体化模型能够及时响应嵌入式软件的需求变化,更好地进行维护。以下对本发明方案进行详细阐述:如图2、表1、表2、表3所示,图2是本发明基于一体化模型的多人并行建模方法的细化流程示意图,表1、表2、表3为本发明方法实现权限控制的数据表结构。如图2所示,本发明的基于一体化模型持久化存储的多人并发建模方法包括以下步骤:s1:在系统服务器中搭建数据库,初始化;s2:创建一体化模型建模工程;s3:管理员维护建模人员;s4:管理员建立一体化模型,将模型拆分并保存到数据库,同时将系统资源保存到系统服务器中的数据库中;s5:管理员为建模人员分配权限;s6:建模人员从数据库中更新整个模型;s7:建模人员开始建模,拆分一体化模型,提交拆分后的子模块模型。s8:遍历提交子模块模型,判断当前建模人员是否具有修改权限,如果是,保存到内存中的数据模型,如果否,继续遍历,遍历结束后,将内存中的数据模型转成存储模型,提交到数据库中,同时将系统资源保存到数据库中;本发明采用的形式化方法针对嵌入式软件进行形式化描述,多人共同对一个一体化模型进行建模,具体实现方法为:(1)采用形式化方法对嵌入式软件进行形式化描述,构建由数据流图、故障树、因果图、状态图、时序图、判定表等组成的一体化模型,然后对模型进行解析,用模型拆分准则对模型进行拆分保存;(2)采用数据库表,实现模型系统资源的同步修改保存;(3)采用数据库表,实现模型资源的权限控制及同步。(4)采用对象模型和二进制流,实现模型资源的数据持久化。其中,在步骤s2中,创建一体化模型工程,包含的操作如下:(1)本地建模工程的创建;(2)配置数据库连接;(3)用户登录;其中,在步骤s5中,管理员为建模人员分配权限,权限分配的准则如下:(1)管理员拥有整个工程的修改与删除权利;(2)管理员可以给所有建模人员针对子图分配权限。(3)建模人员对分配的子图拥有读写权限,对其他建模人员分配的子图拥有只读权限;在步骤s7中,根据建模工具建立的一体化模型的图形嵌套关系,按照模型拆分准则进行拆分,把每一个嵌套图形作为一个子模块同步解析并以二进制流的形式保存至数据库的模型对象表中。所述模型拆分准则如下:(1)根据一体化模型的图形嵌套规则,将一体化模型拆分分为不同图形的子图;(2)提取每一个子图的软件行为及软件结构信息;(3)每一个子图分别以二进制流的形式保存到数据库;(4)保存记录包含当前建模人员、图形编号、父模块模型编号和子图模型的二进制流等。其中,所述一体化模型不保存图形信息,只用于数据库存储模型的图形展示,方便直观的进行测试和调试等。一体化模型根据图形嵌套规则拆分出不同子模块的过程是:先根据一体化模型获得所有嵌套子模型,再按规则对每个图形的编号、父模块图形编号、嵌套结构和图形信息进行保存。其中,图形嵌套子模型是指整体模型中的每一个图形模型,图形的编号会动态赋予。具体的算法描述如算法1所示。算法名称:算法1输入:完整一体化模型输出:子模块的二进制流过程:1)获取完整的一体化模型;2)从顶层数据流图开始进行图形解析;3)根据图形嵌套规则遍历所有子模块模型;4)获取子模块模型信息、自动生成图形编号并获取其父模块图形编号;5)把子模块信息转化成二进制流保存到物理存储层。本例的数据库建立在所有建模人员组建的局域网内,所有的建模人员都与之建立连接。建模人员通过操作数据库相关表来实现系统资源的维护,此外所有建模人员使用的系统资源均实时从数据库读取,从而保证系统资源的一致性,实现系统资源的同步。其他建模人员最初通过新建建模工程将工程同步到本地,只需将新建的工程命名为管理员所建立的建模工程名字即可读取建模工程,打开图形建模文件时通过工程名读取数据库中的模型,实现多人建模。本例搭建的数据库中与权限相关的表如下所示:(1)user_info为用户表,用来存放图形建模人员的账户,如表1所示。(2)object_table模型对象表,用来存放模型顶层模块及其子模块,如表2所示。(3)object_grant用户权限表,用来存放建模人员能编辑的模块,如表3所示。列名数据类型备注useridint用户id、主键usernamevarchar(64)用户名passwordvarchar(64)密码usertypechar(1)用户类型(管理员、普通用户)modify_datedatetime修改日期表1user_info用户表表2object_table模型对象表列名数据类型备注useridint用户idobjectidvarchar(64)图形对象编号project_namevarchar(max)项目名称modify_datedatetime修改日期表3object_grant用户权限表此外,本发明还提出一种基于一体化模型持久化存储的多人并发建模系统,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的方法的步骤。本实施例的具体原理,请参照上述实施例,在此不再赘述。此外,本发明还提出一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。本实施例的具体原理,请参照上述实施例,在此不再赘述。以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的
技术领域:
:,均同理包括在本发明的专利保护范围内。当前第1页12当前第1页12