基于内存数据架构的模块间实时同步方法

文档序号:6603232阅读:199来源:国知局
专利名称:基于内存数据架构的模块间实时同步方法
技术领域
本发明涉及模型驱动集成开发环境技术,尤其是一种高效地实现工具间模型信息 动态一致的方法。
背景技术
随着汽车工业的发展,汽车电子控制系统在功能领域的复杂度正经历着高速的增 长。尽管许多软件供应商都提出了自己的解决方案,但是如何让各个工具更好地协同工作, 从而实现真正的技术突破,仍旧是一个学术界和工业界有待研究的重要课题。AUTOSAR(AUTomotive Open System ARchitecture)是一个开放的汽车电子软件 架构,由宝马、大陆等著名汽车公司联合推出。从技术角度来讲,AUTOSAR组织致力于提升 开发商在标准上的合作,进而提高电控系统的性能和安全性,由此最终控制电控软件日益 增长的复杂度。AUTOSAR标准规定,在软件开发阶段,针对虚拟功能总线(VFB)进行软件组件设 计,从而不必关心底层的硬件特征。最后部署软件组件时,由运行时环境(RTE)和基础软件 组件实现虚拟功能总线。软件组件(component)是封装应用程序的单位,包含用于通信的 各种端口和接口(port interface) 0在AUTOSAR中,可以嵌套其它软件组件的组件称为组 合组件(composition),不可再分的组件称为原子组件(atomic component)。SmartSAR IDE是浙江大学嵌入式系统工程中心针对AUTOSAR标准研发的汽 车电子领域基于模型驱动的集成开发环境。根据AUTOSAR方法论,SmartSAR IDE分为 三个工具用来进行系统组件设计的SmartSAR Designer,进行系统配置的SmartSAR ConfigurationGenerator 和进行文档、代码自动生成的 SmartSAR Generator.AUTOSAR组件的嵌套关系十分复杂,在开发组件设计工具时,如何使各种模型保持 一致是很难解决的一个问题。不仅如此,在实际的开发过程中,需要多次迭代使用组件设计 工具和系统配置工具。现有的通过XML文件进行通信的方式需要不断的人工操作,阻碍了 开发效率的提升。

发明内容
为克服现有技术的组件设计工具和系统配置工具不能保持一致,开发效率低的缺 点,本发明提供了一种能使组件设计工具和系统配置工具保持一致,开发效率高的基于内 存数据架构的模块间实时同步方法。基于内存数据架构的模块间实时同步方法,包括以下步骤1)、读取符合AUTOSAR标准的软件组件模型,生成表征所有组件模型及其聚合关 系的有向无环图,有向无环图的节点与组件模型类型一一对应,有向无环图的有向边表示 组件模型间的聚合关系;2)、建立与所述的有向无环图对应、能快速查找到任一组件模型的散列表,散列表 的每一条记录的关键字(key)为对应组件的全名,值(value)为对应组件的地址及其全部直接前驱;3)、定义修改组件模型的规则,修改规则与修改类型一一对应,修改类型包括删除 组件模型,删除组件模型的某一实例,删除组件模型中的某一端口,插入组件模型,向已有 组件模型中插入新实例,向已有组件模型中插入新端口,修改组件模型;所述的实例和端口 均属于组件模型信息,存储于有向无环图的节点中;4)、获取模型修改信息,模型修改信息包括修改的目标组件的全名和修改类型,将 模型修改信息存入操作队列中;5)、判断操作队列是否为空若操作队列不为空,读取操作队列中的配置信息,识 别修改类型、将其与修改规则对应,根据修改规则修改有向无环图和散列表;若操作队列为 空,则进行等待,直到有新的模型修改信息存入操作队列中。进一步,步骤3)中,定义修改规则包括以下步骤(3. 1)删除组件模型类型(type)包括以下步骤搜索有向无环图中与当前组件模 型相对应的节点,删除该节点及其有向边;搜索散列表中与当前组件模型相对应的记录,获 取当前组件模型的所有直接前驱,修改这些直接前驱的指针;(3. 2)删除组件模型类型(type)的某一实例(prototype)包括以下步骤搜索有 向无环图中与当前组件模型相对应的节点,判断待删除的实例是否当前组件模型的唯一实 例,若不是唯一实例,则删除该实例;若是唯一实例,则删除该节点及其有向边;搜索散列 表中与当前组件模型相对应的记录,获取当前组件模型的所有直接前驱,修改这些直接前 驱的指针;(3. 3)删除组件模型类型(type)中的某一端口(port-interface)包括以下步骤 搜索有向无环图中与当前组件模型相对应的节点,删除该端口 ;(3. 4)插入组件模型类型(type)包括以下步骤构建一个有向无环图的节点,将 当前组件模型信息存入该节点中,将该节点插入所述的有向无环图中;新建一条散列表记 录,以当前组件模型的全名作为关键字(key),以当前组件模型的地址及其所有直接前驱作 为值(value);(3. 5)向已有组件模型类型(type)中插入新实例(prototype)包括以下步骤搜 索有向无环图中与当前组件模型相对应的节点,将新实例插入该节点,添加组件模型与该 新实例的聚合关系;(3.6)向已有组件模型类型(type)中插入新端口(port-interface)包括以下步 骤搜索有向无环图中与当前组件模型相对应的节点,将新端口入该节点;(3. 7)修改组件模型类型(type),搜索有向无环图中与当前组件模型相对应的节 点,修改节点信息;搜索散列表中与当前组件模型相对应的记录,获取当前组件模型的所有 直接前驱,修改这些直接前驱的指针。本发明的技术构思是本发明通过在内存中建立并维持一个与AUT0SAR标准中的 组件模型一一对应的有向无环图和散列表的数据结构,并预定义一系列修改模型的修改规 则,模型信息发生改变时,将该模型修改信息与修改规则匹配,然后根据修改规则修改有向 无环图和散列表信息,从而保证系统配置工具与组件设计工具的同步。本发明具有如下优点1.基于本发明中的数据结构和模型修改规则,高效地解决了组件设计工具与系统配置工具信息不一致的问题。2.同时解决了 AUT0SAR组件设计工具的组件模型一致问题。


图1为本发明实时同步总体架构2为本发明的有向无环图和散列表结合的示意3为本发明散列表结构4为本发明操作处理流程5为本发明的删除组件模型的处理流程图
具体实施例方式参照附图,进一步说明本发明基于内存数据架构的模块间实时同步方法,包括以下步骤1)、读取符合AUT0SAR标准的软件组件模型,生成表征所有组件模型及其聚合关 系的有向无环图,有向无环图的节点与组件模型类型一一对应,有向无环图的有向边表示 组件模型间的聚合关系;2)、建立与所述的有向无环图对应、能快速查找到任一组件模型的散列表,散列表 的每一条记录的关键字(key)为对应组件的全名,值(value)为对应组件的地址及其全部 直接前驱;3)、定义修改组件模型的规则,修改规则与修改类型一一对应,修改类型包括删除 组件模型,删除组件模型的某一实例,删除组件模型中的某一端口,插入组件模型,向已有 组件模型中插入新实例,向已有组件模型中插入新端口,修改组件模型;所述的实例和端口 均属于组件模型信息,存储于有向无环图的节点中;4)、获取模型修改信息,模型修改信息包括修改的目标组件的全名和修改类型,将 模型修改信息存入操作队列中;5)、判断操作队列是否为空若操作队列不为空,读取操作队列中的配置信息,识 别修改类型、将其与修改规则对应,根据修改规则修改有向无环图和散列表;若操作队列为 空,则进行等待,直到有新的模型修改信息存入操作队列中。进一步,步骤3)中,定义修改规则包括以下步骤(3. 1)删除组件模型类型(type)包括以下步骤搜索有向无环图中与当前组件模 型相对应的节点,删除该节点及其有向边;搜索散列表中与当前组件模型相对应的记录,获 取当前组件模型的所有直接前驱,修改这些直接前驱的指针;(3. 2)删除组件模型类型(type)的某一实例(prototype)包括以下步骤搜索有 向无环图中与当前组件模型相对应的节点,判断待删除的实例是否当前组件模型的唯一实 例,若不是唯一实例,则删除该实例;若是唯一实例,则删除该节点及其有向边;搜索散列 表中与当前组件模型相对应的记录,获取当前组件模型的所有直接前驱,修改这些直接前 驱的指针;(3. 3)删除组件模型类型(type)中的某一端口(port-interface)包括以下步骤 搜索有向无环图中与当前组件模型相对应的节点,删除该端口 ;
(3. 4)插入组件模型类型(type)包括以下步骤构建一个有向无环图的节点,将 当前组件模型信息存入该节点中,将该节点插入所述的有向无环图中;新建一条散列表记 录,以当前组件模型的全名作为关键字(key),以当前组件模型的地址及其所有直接前驱作 为值(value);(3. 5)向已有组件模型类型(type)中插入新实例(prototype)包括以下步骤搜 索有向无环图中与当前组件模型相对应的节点,将新实例插入该节点,添加组件模型与该 新实例的聚合关系;(3.6)向已有组件模型类型(type)中插入新端口(port-interface)包括以下步 骤搜索有向无环图中与当前组件模型相对应的节点,将新端口入该节点;(3. 7)修改组件模型类型(type),搜索有向无环图中与当前组件模型相对应的节 点,修改节点信息;搜索散列表中与当前组件模型相对应的记录,获取当前组件模型的所有 直接前驱,修改这些直接前驱的指针。本发明的技术构思是本发明通过在内存中建立并维持一个与AUT0SAR标准中的 组件模型一一对应的有向无环图和散列表的数据结构,并预定义一系列修改模型的修改规 则,模型信息发生改变时,将该模型修改信息与修改规则匹配,然后根据修改规则修改有向 无环图和散列表信息,从而保证系统配置工具与组件设计工具的同步。本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护 范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术 人员根据本发明构思所能够想到的等同技术手段。
权利要求
基于内存数据架构的模块间实时同步方法,包括以下步骤1)、读取符合AUTOSAR标准的软件组件模型,生成表征所有组件模型及其聚合关系的有向无环图,有向无环图的节点与组件模型类型一一对应,有向无环图的有向边表示组件模型间的聚合关系;2)、建立与所述的有向无环图对应、能快速查找到任一组件模型的散列表,散列表的每一条记录的关键字(key)为对应组件的全名,值(value)为对应组件的地址及其全部直接前驱;3)、定义修改组件模型的规则,修改规则与修改类型一一对应,修改类型包括删除组件模型,删除组件模型的某一实例,删除组件模型中的某一端口,插入组件模型,向已有组件模型中插入新实例,向已有组件模型中插入新端口,修改组件模型;所述的实例和端口均属于组件模型信息,存储于有向无环图的节点中;4)、获取模型修改信息,模型修改信息包括修改的目标组件的全名和修改类型,将模型修改信息存入操作队列中;5)、判断操作队列是否为空若操作队列不为空,读取操作队列中的配置信息,识别修改类型、将其与修改规则对应,根据修改规则修改有向无环图和散列表;若操作队列为空,则进行等待,直到有新的模型修改信息存入操作队列中。
2.如权利要求1所述的基于内存数据架构的模块间实时同步方法,其特征在于步骤 3)中,定义修改规则包括以下步骤(3. 1)删除组件模型类型(type)包括以下步骤搜索有向无环图中与当前组件模型相 对应的节点,删除该节点及其有向边;搜索散列表中与当前组件模型相对应的记录,获取当 前组件模型的所有直接前驱,修改这些直接前驱的指针;(3. 2)删除组件模型类型(type)的某一实例(prototype)包括以下步骤搜索有向无 环图中与当前组件模型相对应的节点,判断待删除的实例是否当前组件模型的唯一实例, 若不是唯一实例,则删除该实例;若是唯一实例,则删除该节点及其有向边;搜索散列表中 与当前组件模型相对应的记录,获取当前组件模型的所有直接前驱,修改这些直接前驱的 指针;(3.3)删除组件模型类型(type)中的某一端口(port-interface)包括以下步骤搜 索有向无环图中与当前组件模型相对应的节点,删除该端口 ;(3. 4)插入组件模型类型(type)包括以下步骤构建一个有向无环图的节点,将当前 组件模型信息存入该节点中,将该节点插入所述的有向无环图中;新建一条散列表记录,以 当前组件模型的全名作为关键字(key),以当前组件模型的地址及其所有直接前驱作为值 (value);(3. 5)向已有组件模型类型(type)中插入新实例(prototype)包括以下步骤搜索有 向无环图中与当前组件模型相对应的节点,将新实例插入该节点,添加组件模型与该新实 例的聚合关系;(3.6)向已有组件模型类型(type)中插入新端口(port-interface)包括以下步骤 搜索有向无环图中与当前组件模型相对应的节点,将新端口入该节点;(3. 7)修改组件模型类型(type),搜索有向无环图中与当前组件模型相对应的节点, 修改节点信息;搜索散列表中与当前组件模型相对应的记录,获取当前组件模型的所有直接前驱,修改这些直接前驱的指针.
全文摘要
基于内存数据架构的模块间实时同步方法,包括以下步骤读取AUTOSAR标准中的软件组件模型,生成有向无环图;建立散列表;定义修改组件模型的规则,修改规则与修改类型一一对应;获取模型修改信息,将模型修改信息存入操作队列中,识别修改类型、将其与修改规则对应,根据修改规则修改有向无环图和散列表。本发明具有能使组件设计工具和系统配置工具保持一致,开发效率高的优点。
文档编号G06F9/44GK101882078SQ20101018614
公开日2010年11月10日 申请日期2010年5月28日 优先权日2010年5月28日
发明者伍如意, 杨国青, 杨玉皓, 汪金波, 王冬冬, 胡博, 赵民德 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1