法律状态公告日
法律状态信息
法律状态
2014-01-08
授权
授权
2012-05-23
实质审查的生效 IPC(主分类):G06F9/44 申请日:20110811
实质审查的生效
2012-04-11
公开
公开
技术领域
本发明涉及汽车电子软件开发技术,尤其是一种基于有向图结构的单个电控单元的系统信息提取方法。
背景技术
AUTOSAR(AUTomotive Open System ARchitecture)是汽车电子开放系统架构,针对单个电控单元(Electronic Control Unit, 简称ECU)的系统信息抽取是AUTOSAR方法论中定义的重要环节(简称“ECU抽取”),在完成针对电控单元配置工具的系统转换过程中发挥了重要作用。
ECU抽取工具的主要任务是从系统中抽取与特定EUC相关的信息。抽取的结果将被作为后续配置工具的基础。为了保证后续配置的专注性和可管理性不受整个系统复杂性的影响,ECU抽取应当只包含系统信息中的子集,即和目标ECU相关的部分。在竞争激烈的汽车电子领域,抽取结果中的多余信息会带来额外的开发成本甚至商业风险。AUTOSAR给出了超过100条递归定义的ECU抽取对象选择规则,用来帮助判断一个对象是否应当被包含进ECU抽取结果。例如, ECU抽取应当包含所有被已经包含的DataMapping元素引用的AbstractSignal元素。ECU抽取工具应当遵从所有的AUTOSAR抽取规则。
然而AUTOSAR并未对抽取实施过程做出规定和建议。由于抽取规则的递归定义,一般方法中对这些抽取规则进行逐一实现和优化将不可避免的多次遍历搜索整个系统,在很多抽取规则需要对模型进行深入分析和搜索的情况下,这种实现将带来巨大的时间-空间浪费。不仅如此,这种实现方法也将为工具开发人员带来巨大的负担,耗时易错,更可能因为AUTOSAR不同版本之间的差异带来错误。而由于AUTOSAR标准得到了业界的有力支持,各种软件产品的数量和规模都处在快速增长的阶段,工业界亟需一种精确易用的高性能ECU抽取框架。
综上,面对使用AUTOSAR方法开发汽车电子产品的特殊需求,针对以AUTOSAR和汽车电子领域的特点,需要一种正确高效地完成ECU抽取过程的方法。
发明内容
为了克服AUTOSAR标准中系统信息提取规则复杂繁多,传统方法效率低下的缺点,本发明提供了一种基于有向图结构的单个电控单元的系统信息提取方法。
本发明解决其技术问题采用的技术方案: 这种基于有向图结构的单个电控单元的系统信息提取方法,包括以下步骤:
1)将一个AUTOSAR系统建模为有向图结构;
(1.1)提取AUTOSAR系统配置描述的标准XML文件,解析并生成以包含关系为有向边的树状结构,树结点为依据AUTOSAR UML profile规定所创建的内存对象,树结构与XML文件本身结构一致。
(1.2)解析XML文件中包含的各种引用关系,在已经创建的树结点之间创建新的有向边以代表引用关系。加入引用关系后,原树结构转化为有向图结构。
(1.3)分析引用关系,创建单独的内存映射结构来保存反向引用关系。
2)将AUTOSAR标准中的抽取规则归约为包含、引用和相关三种情况,并使用声明式的键-值对来分类定义。将归约后的抽取规则载入内存,从目标ECU开始依据抽取规则对整个系统的有向图结构进行深度优先遍历,标记出应当包含在ECU抽取结果中的对象。
3)遍历整个系统的有向图结构,将标记出的对象序列化为XML文件,作为最终的ECU抽取结果。
进一步,步骤1)中所新建的有向图结构中存在两种不同的边,分别对应于AUTOSAR对象中的包含和引用关系。图节点为不同类型的AUTOSAR对象,图节点和表示包含关系的边构成以AUTOSAR对象为根节点的树结构。
进一步,步骤(1.3)中创建单独的内存映射结构来保存反向引用关系的步骤包括:
(1.3.1)建立内存中AUTOSAR对象的空映射关系表,其中键和值均为AUTOSAR对象。该映射关系表可以用于快速获得引用当前对象的对象列表。
(1.3.2)从根节点开始遍历步骤(1.2)中建立的有向图结构中的的引用关系。对于每一个引用关系,将被引用对象作为键,将引用对象作为值,将该键值对存入步骤(1.3.1)中创建的映射关系表。
进一步,步骤2)中将AUTOSAR抽取规则归约为包含、引用和相关三种情况,并使用声明式的键-值对来分类定义,是指借助有向图数据结构,将AUTOSAR抽取规则转化为依靠模型对象间关系进行抽取判断的规范形式。归约后的抽取规则分为包含、引用、相关三种,分别用于对已确定抽取对象所包含、引用的AUTOSAR对象和引用已确定抽取对象的AUTOSAR对象进行抽取判断。
进一步,步骤2)从目标ECU开始依据抽取规则对整个系统的有向图结构进行深度优先遍历,标记出应当包含在ECU抽取结果中的对象,是指从目标ECU开始,将ECU抽取以一系列在相邻对象中进行“检查、包含”的方式进行。每一个包含步骤都从一个已经包含的对象开始,这个对象的相邻对象都被检查来判断是否将它们包含进抽取结果。其中相邻对象是指当前对象所包含、引用的对象和引用当前对象的所有对象。符合抽取规则的对象将被标记为抽取对象,检查过程迭代进行直到不再有其他对象可以被标记并加入抽取结果。
AUTOSAR元模型定义了所有可用于描述AUTOSAR系统的实体信息。AUTOSAR元模型中的各种元素之间的关系可以被划分为(a)包含,描述了元素的包含关系。(b)引用,描述了元素之间的引用关系。AUTOSAR元模型使用UML profile描述。一个AUTOSAR XML文件有且只有一个AUTOSAR对象做为根节点,所有其他对象依据元模型定义在AUTOSAR根节点对象的不同子节点中。
本发明的技术构思是:提出一种高效的内存数据结构,在此结构的基础上,支持将抽取规则定义在有向无环图上。这一框架利用AUTOSAR元素之间的分类关系作为一种清晰精确的AUTOSAR抽取规则整合方式。由于有向无环图的支持,相邻的元素可以被即时获得从而进行包含判断。并且每次ECU抽取过程都将以深度优先的遍历方式来进行,这可以避免对元素的多次访问带来。
本发明具有如下优点:
1.通过ECU抽取规则归约,使得ECU抽取过程可以通过一次深度遍历过程完成,并为ECU抽取规则提供了统一的描述方式。与传统方法相比,大幅提高了工具性能,并降低了开发复杂程度。
2.方便的运行时可配置ECU抽取规则枚举,加速自定义和工具升级过程。便于AUTOSAR不同版本的快速切换。
3.对于对象结构的完整保留,从而有效支持迭代开发。
附图说明
图1本发明分析AUTOSAR标准的XML文件并建立有向图结构示意图。
图2本发明根据归约后的ECU抽取规则进行ECU抽取示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明:
本发明所述的这种基于有向图结构的针对汽车电子领域单个电控单元的系统信息提取方法,包括以下步骤:
1、将一个AUTOSAR系统建模为有向图结构;
1.1提取AUTOSAR系统配置描述的标准XML文件,解析并生成以包含关系为有向边的树状结构,树结点为依据AUTOSAR UML profile规定所创建的内存对象。树结构与XML文件本身结构一致。
1.2解析XML文件中包含的各种引用关系,在已经创建的树结点之间创建新的有向边以代表引用关系。加入引用关系后,原树结构转化为有向图结构。
1.3分析引用关系,创建单独的内存映射结构来保存反向引用关系。
2、将AUTOSAR标准中的抽取规则归约为包含、引用和相关三种情况,并使用声明式的键-值对来分类定义。将归约后的抽取规则载入内存,从目标ECU开始依据抽取规则对整个系统的有向图结构进行深度优先遍历,标记出应当包含在ECU抽取结果中的对象。
3、遍历整个系统的有向图结构,将标记出的对象序列化为XML文件,作为最终的ECU抽取结果。
步骤1中所新建的有向图结构中存在两种不同的边,分别对应于AUTOSAR对象中的包含和引用关系。图节点为不同类型的AUTOSAR对象,图节点和表示包含关系的边构成以AUTOSAR对象为根节点的树结构。
步骤1.3中创建单独的内存映射结构来保存反向引用关系的步骤包括:
1.3.1 建立内存中AUTOSAR对象的空映射关系表,其中键和值均为AUTOSAR对象。该映射关系表可以用于快速获得引用当前对象的对象列表。
1.3.2 从根节点开始遍历步骤1.2中建立的有向图结构中的的引用关系。对于每一个引用关系,将被引用对象作为键,将引用对象作为值,将该键值对存入步骤1.3.1中创建的映射关系表。
步骤2中将AUTOSAR抽取规则归约为包含、引用和相关三种情况,并使用声明式的键-值对来分类定义,是指借助有向图数据结构,将AUTOSAR抽取规则转化为依靠模型对象间关系进行抽取判断的规范形式。归约后的抽取规则分为包含、引用、相关三种,分别用于对已确定抽取对象所包含、引用的AUTOSAR对象和引用已确定抽取对象的AUTOSAR对象进行抽取判断。
三种抽取规则使用三张表来维护,分别名为Aggregate, Reference和Relative,这三张表有相似的结构,每张表都是一个AUTOSAR类C到AUTOSAR类集合P的映射,其中C是键,而P是值。三张表从配置文件中读取并以HashMap<ARClass, HashSet<ARClass>>存储。
步骤2从目标ECU开始依据抽取规则对整个系统的有向图结构进行深度优先遍历,标记出应当包含在ECU抽取结果中的对象,是指从目标ECU开始,将ECU抽取以一系列在相邻对象中进行“检查、包含”的方式进行。每一个包含步骤都从一个已经包含的对象开始,这个对象的相邻对象都被检查来判断是否将它们包含进抽取结果。其中相邻对象是指当前对象所包含、引用的对象和引用当前对象的所有对象。符合抽取规则的对象将被标记为抽取对象,检查过程迭代进行直到不再有其他对象可以被标记并加入抽取结果。
值得注意的问题是当包含过程结束后,很多包含的元素可能因为其父节点没有被包含而成为孤儿节点。为了保证AUTOSAR元素的结构,在步骤3的具体实施过程中,我们需要追踪这些孤儿到其根节点并包含经过的节点。
AUTOSAR元模型定义了所有可用于描述AUTOSAR系统的实体信息。AUTOSAR元模型中的各种元素之间的关系可以被划分为(a)包含,描述了元素的包含关系。(b)引用,描述了元素之间的引用关系。AUTOSAR元模型使用UML profile描述。一个AUTOSAR XML文件有且只有一个AUTOSAR对象做为根节点,所有其他对象依据元模型定义在AUTOSAR根节点对象的不同子节点中。
本发明的技术构思是:提出一种高效的内存数据结构,在此结构的基础上,支持将抽取规则定义在有向无环图上。这一框架利用AUTOSAR元素之间的分类关系作为一种清晰精确的AUTOSAR抽取规则整合方式。由于有向无环图的支持,相邻的元素可以被即时获得从而进行包含判断。并且每次ECU抽取过程都将以深度优先的遍历方式来进行,这可以避免对元素的多次访问带来。
本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。
机译: 一种计算机化形成系统信息介质访问控制协议消息的方法,一种从系统信息介质访问控制协议消息辅助确定系统信息的方法,介质访问控制单元,蜂窝通信设备和计算机程序元素
机译: 用于生产单个基于患者数据的模块化结构鞋底并确定单个基于患者数据的鞋垫的材料和结构的方法
机译: 一种使用关系数据库实现非循环有向图结构的方法