一种面向车联网的软件开发故障诊断方法与流程

文档序号:11917813阅读:202来源:国知局
一种面向车联网的软件开发故障诊断方法与流程

本发明涉及一种车联网软件故障诊断方法,具体涉及一种面向车联网的软件开发故障诊断方法。



背景技术:

与传统交通信息化环境相比,车联网是一个动态多变,单个区域内可能资源贫乏的环境。车联网主张让微小系统形成的自组织网络围绕着交通参与者运转,即人、车和道路设施在智能交通空间中可以自然地、自发地“交互”,而这一目标则要求车联网软件具备对车体内外交通情境的感知能力,并对变化的信息做出有效的基于参与者需求的行为。因此,情境感知是车联网软件区别于一般交通运输软件的特性。

在车联网环境下,软件被要求对复杂、动态的交通情境信息做出及时、有效地响应,环境的不确定性、请求服务的随机性会引起不可预知的软件行为,提高软件的故障率,为传统软件开发方法带来了较大的挑战。因此,为确保车联网软件能够提供可信赖的优质信息服务,在软件开发之前需要对软件行为进行严格分析,并在设计中引入对有效行为的构造与验证,有助于在车联网软件开发过程中有效地降低软件故障率。

传统的软件行为模型大多采用系统调用序列、参数与上下文值来表征软件正常行为特征。软件行为建模所依赖的信息也从最初的简单的系统调用时序信息,发展到系统调用参数信息、附加的实时信息(如调用堆栈的值、程序计数器的值)以及后来的上下文信息、环境变量和数据流信息等。考虑的因素越来越多,导致模型的复杂性越来越高,从而直接提高了实时检测的难度和开销,以至于这些方法的可行性都不高。



技术实现要素:

本发明的目的在于预测软件设计阶段存在的失效现象,提供一种面向车联网的软件开发故障诊断方法,通过构造车联网软件行为模式来自动发现开发故障,降低软件故障率。

为实现上述目的,本发明采用如下的技术方案:

一种面向车联网的软件开发故障诊断方法,将故障诊断看作是在车联网软件行为模式上发现不可能路径的过程;根据车联网软件的情境感知特征,挖掘建立不同代理的行为调用序列与使用情境,以及构造港口实现不同代理之间的协同,建模车联网软件行为模式;通过提取行为的自然属性和行为条件,对行为输入、输出、操作、执行要求进行条件满足性检查,进而发现将引发故障的潜在行为集合,形成不可能路径。

本发明进一步的改进在于,具体过程如下:

步骤一:确定车联网软件的事务及其活动序列;

针对软件框架中的用户任务,确定服务集合;其中,每个服务对应一个事务,服务之间的执行顺序对应于事务的活动序列;由于事务体现了多代理的行为特性与属性,因此使用行为表达式对事务及其活动序列进行描述;

步骤二:确定代理提供的功能,以及代理的行为序列;

在车联网环境下,软件的情境感知特性使得代理在自身目标和规则的驱使下,主动作用于周围交通环境,并根据环境反馈改变自己;通过将事务中mbusiness字段映射为需三类单一代理所实施的预期功能,将事务中AgentNet字段映射为三类单一代理之间的连接关系,形成行为序列;

步骤三:构造单一代理与群体代理;

采用基于类型表达式的行为描述语言来构造三类单一代理;

群体代理是实现协同机制和业务功能的群体组织,是由多个单一代理组成的一个更高层次的代理;群体代理由三个模块组成:引擎、业务以及行为信息基;

步骤四:构造运行轨迹与功能轨迹,整合软件行为模式;

根据步骤二得到的行为序列,提取步骤三构造的每个单一代理的行为树,生成软件运行轨迹;根据运行轨迹,提取运行轨迹上每个单一代理的行为信息基,生成软件功能轨迹;通过对功能轨迹上每个单一代理的港口进行互补判断,剔除不互补的代理;最后整合互补代理所在的运行轨迹与功能轨迹,生成软件行为模式;

步骤五:发现不可能路径;

对步骤四生成的车联网软件行为模式,分别发现面向事物和面向代理出现不可能路径的行为表现,进行故障诊断;其中,不可能路径的含义为行为模式中一些运行路径在真实正常行为中不会被执行;软件行为模式是对调用关系进行时序描述,在真实运行环境下,由于不可预计的情境信息加入,使得执行会出现与设计行为偏离的现象,表现为软件故障。

本发明进一步的改进在于,三类单一代理与一类群体代理分别为:

感知代理S_Agent:感知代理的任务是数据采集与处理;它的工作过程为监测特定物理量、转换成特定格式,以事件形式向计算代理输出;感知代理作为个体存在,它与环境进行交互;

计算代理D_Agent:计算代理的工作过程为确定目标类型,设置备选方案,选择方案;计算代理作为个体存在,它仅完成事务级操作;

执行代理A_Agent:根据计算代理确定的方案,执行代理的工作过程为执行方案确定的相应操作,更新物理量;不同执行代理个体之间存在协同操作,共同构成群体组织。

群体代理M_A_Agent:实现协同机制和业务功能的群体组织,是由多个单一代理组成的一个更高层次的代理。

本发明进一步的改进在于,引擎由代理状态和代理协同组成;代理协同由代理角色、协同港口组成;业务部分是代理提供的功能,使用一个对外进行操作的接口;行为信息基是代理实施功能所需的数据。

本发明进一步的改进在于,协同港口包括报文港口AssPort和信息交换港口AgentExPort;报文港口AssPort用于感知代理、群体代理与计算代理之间的交互;感知代理与计算代理之间为显式交互;感知代理与群体代理之间为隐式交互;信息交换港口AgentExPort用于描述群组代理中的多个计算代理之间的协同关系;信息交换港口AgentExPort类型为隐式,且允许非实时回复的通信协议。

本发明进一步的改进在于,发现面向事务的不可能路径的故障诊断方法如下:

根据故障诊断定义,对Diagnosis(ai…aj,context_satisfiability(X)|D_Agent)进行判定;该命题所表达的语义是计算代理的行为输入条件符合情境状态;感知代理S_Agent将结果以报文港口向计算代理D_Agent输出,因此,通过建立感知代理S_Agent与计算代理D_Agent之间报文港口的有限时序机,进行港口互补判断,发现故障行为;对所有故障行为进行拼接,得到不可能路径。

本发明进一步的改进在于,发现面向代理的不可能路径的故障诊断方法如下:

根据故障诊断定义,对Diagnosis(ai…aj,environment_consistency(X)|M_A_Agent)进行判定;该命题所表达的语义是群体代理M_A_Agent的行为输出条件与情境状态一致;因此,通过匹配群体代理的行为输出条件与当前情境状态,能够发现不可能路径;根据群体代理的行为信息基,其输出行为a满足environment_consistency条件称之为该行为的输出断言,用谓词EnC(X)表示,这里X表示输出行为ai的行为信息基;如果存在一个行为ai,使得EnC(X)为FALSE,则称ai是关于群体代理的故障行为;因此,通过在软件功能轨迹搜集并判定所有EnC(X),当某个行为的EnC(X)为FALSE,其相关的行为为故障行为;对所有故障行为进行拼接,得到不可能路径。

本发明进一步的改进在于,软件运行轨迹是对车联网软件行为的语法描述,使用行为树中的一个相对完整的有序选择子集合构造运行轨迹;软件功能轨迹是对车联网软件行为的语义描述,表征为在软件运行轨迹中各个选择子相关的行为信息基序列;软件行为模式是软件的运行轨迹和功能轨迹的综合。

与现有技术相比,本发明的有益效果是:由于应用层允许以软件功能的角度定义软件的动作,这样,受综合目标驱动的功能调用序列能够在一定程度上反映车联网软件的情境感知行为特征。因此,本发明从应用层给出了情境感知模式约束下的软件行为描述,建立了软件的失效模式,得到了软件开发故障的诊断方法。本发明针对车联网软件的情境感知特性,综合考虑软件行为模式,寻找行为的不可能执行路径,定位开发故障。本发明首次引入软件行为学理论对车联网软件的自适应表现形态和情境驱动的状态演变过程进行分析,提出面向车联网的软件行为建模方法。本发明将故障诊断方法集成至对车联网软件行为模式的设计框架中,实现了基于模型的构造与故障诊断过程一体化。本发明能够预先发现软件执行阶段可能出现的故障,降低执行测试成本。本发明所采用的理论确实可行,技术具有可操作性。

进一步的,本发明紧紧围绕车联网软件的情境感知特性,通过在设计阶段首次运用软件行为学理论,特别是行为树、行为信息基与港口,来描述三类单一代理与群体代理的内部行为,以及所有代理之间的外部交互,构造车联网软件的行为模式,进而发现不可能路径来实施故障诊断。

附图说明

图1为本发明所述的软件行为模式图。

图2为本发明所述三类代理的关系图。

图3为本发明所述三类代理的协同港口关系图。

具体实施方式

下面结合附图对本发明进行详细说明。

将故障诊断看作是在车联网软件行为模式上发现不可能路径的过程。根据车联网软件的情境感知特征,挖掘建立不同代理的行为调用序列与使用情境,以及构造港口实现不同代理之间的协同,建模车联网软件行为模式。通过提取行为的自然属性和行为条件,对行为输入、输出、操作、执行要求进行条件满足性检查,进而发现将引发故障的潜在行为集合,形成不可能路径。

在软件行为模式中,主要有四个术语。

1.事务是由实现某个任务的代理调用序列构成。

2.代理完成一个原子事务。每一个代理具有一棵行为树、行为信息基与一组港口。在情境感知特征约束下,软件一次执行过程可看作是三类代理(Agent)的内部操作与它们之间以及与环境的协同。针对不同的运行过程,本发明给出了三类代理定义。图1展示了三类代理与一类群体代理的行为过程,以及通过代理交互操作形成的,具有情境感知特征的车联网软件行为模式。

(1)感知代理(S_Agent):感知代理的主要任务是数据采集与处理。它的工作过程为监测特定物理量、转换成特定格式,以“事件”形式向计算代理输出。感知代理作为个体存在,它需要与环境进行交互。

(2)计算代理(D_Agent):计算代理的工作过程为确定目标类型,设置备选方案,选择方案。计算代理作为个体存在,它仅完成事务级操作。

(3)执行代理(A_Agent):根据计算代理确定的方案,执行代理的工作过程为执行方案确定的相应操作,更新物理量。不同执行代理个体之间存在协同操作,共同构成群体组织。

(4)群体代理M_A_Agent:实现协同机制和业务功能的群体组织,是由多个单一代理组成的一个更高层次的代理。

3.行为是面向一类代理。它是软件行为模式的基本组成单元。

4.港口用来描述代理之间的交互关系。三类代理互为上下级关系,使用报文港口。群体组织中执行代理之间具有协同属性,使用信息交换港口。

本发明以软件框架为基础(专利申请号:2014100253221),以软件行为学(屈延文.《软件行为学》.电子工业出版社,2004.)为理论指导。发明方法具体包括以下步骤:

步骤一:确定车联网软件的事务及其活动序列;

针对软件框架中的用户任务,确定服务集合。其中,每个服务(软件框架中“Service”字段)对应一个事务,服务之间的执行顺序(软件框架中“logic”字段)对应于事务的活动序列。由于事务体现了多代理的行为特性与属性,因此本发明使用行为表达式对事务及其活动序列进行描述。

步骤二:确定代理提供的功能,以及代理的行为序列;

在车联网环境下,软件的情境感知特性使得代理可在自身目标和规则的驱使下,主动作用于周围交通环境,并根据环境反馈改变自己。通过将事务中“mbusiness”字段映射为需要三类代理所实施的预期功能,将事务中“AgentNet”字段映射为三类代理之间的连接关系,形成行为序列,所述三类代理的关系参见图2。

步骤三:构造单一代理与群体代理;

本发明采用基于类型表达式的行为描述语言来构造单一代理,分别为感知代理S_Agent、计算代理D_Agent以及执行代理A_Agent,详见图2;

三类代理分别描述如下:

群体代理是实现协同机制和业务功能的群体组织,是由多个单一代理组成的一个更高层次的代理,如图2中的M_A_Agent。群体代理由三个模块组成:引擎(Engine)、业务(Business)、行为信息基(AIB)。

(1)引擎由代理状态和代理协同组成。代理协同由代理角色、协同港口等功能组成,三类代理的协同港口关系见图3。

(2)业务部分是代理提供的功能,使用一个对外进行操作的接口。

(3)行为信息基是代理实施功能所需的数据。

本发明采用行为描述语言给出群体代理的描述。

M_A_Agent=Engine

×Business

×AIB

Engine=Agent_State

×Association

Association=Association_State

×Message_Notification

Message_Notification=AssPort

×Message

×Notification

Business=Business_State

×AppPort

×Function_Application

AIB;

协同港口包括报文港口以及信息交换港口;

报文港口(AssPort)用于感知代理,群体代理与计算代理之间的交互。感知代理与计算代理之间为显式交互。感知代理与群体代理之间为隐式交互。AssPort港口的类型表达式定义为:

AssPort=INST Port(explicit,TCP(s))

×INST Port(implicit,UDP(s))

信息交换港口(AgentExPort)用于描述群组代理中的多个计算代理之间的协同关系。该港口类型为隐式,且允许非实时回复的通信协议。AgentExPort港口的类型表达式定义为:

AgentExPort=INST Port(implicit,UDP(s))

步骤四:构造运行轨迹与功能轨迹,整合软件行为模式;

(1)软件运行轨迹是对车联网软件行为的语法描述。本发明使用行为树中的一个相对完整的有序选择子集合构造运行轨迹。

(2)软件功能轨迹是对车联网软件行为的语义描述,可表征为在软件运行轨迹中各个选择子相关的行为信息基序列。

(3)软件行为模式:软件的运行轨迹和功能轨迹的综合。

根据步骤二得到的行为序列,提取步骤三构造的每个单一代理的行为树,生成软件运行轨迹。根据运行轨迹,提取运行轨迹上每个单一代理的行为信息基,生成软件功能轨迹。通过对功能轨迹上每个单一代理的港口进行互补判断,剔除不互补的代理。最后整合互补代理所在的运行轨迹与功能轨迹,生成软件行为模式。

步骤五:发现不可能路径;

本发明重点对步骤四生成的车联网软件行为模式,分别发现面向事物和面向代理出现不可能路径的行为表现,进行故障诊断。不可能路径的含义为行为模式中一些运行路径在真实正常行为中不会被执行。软件行为模式是对调用关系进行时序描述,在真实运行环境下,由于不可预计的情境信息加入,使得执行会出现“与设计行为偏离”的现象,表现为软件故障。本发明重点对此类故障进行诊断。

针对软件行为的描述,Action={a=S:f(o)|S:Subjects,f:Functions,O:Objects}中的行为S:f(O),其故障诊断的意义为行为S:f(O)满足条件约束Q(X)做“好的记分”,否则做“坏的记分”。

如图1所述,本发明分别给出从事务层与代理层发现不可能路径的故障诊断方法。

(1)发现面向代理的不可能路径

根据故障诊断定义,对“Diagnosis(ai…aj,environment_consistency(X)|M_A_Agent)”进行判定。该命题所表达的语义是“群体代理的行为输出条件与情境状态一致”。因此,通过匹配群体代理的行为输出条件与当前情境状态,可发现不可能路径。根据群体代理的行为信息基,其输出行为a应该满足“environment_consistency”条件称之为该行为的输出断言,用谓词EnC(X)表示,这里X表示输出行为ai的行为信息基。如果存在一个行为ai,使得EnC(X)为FALSE,则称ai是关于群体代理的故障行为。因此,通过在软件功能轨迹搜集并判定所有EnC(X),当某个行为的EnC(X)为FALSE,其相关的行为为故障行为。对所有故障行为进行拼接,便可得到不可能路径。

(2)面向事务的不可能路径发现

根据故障诊断定义,对“Diagnosis(ai…aj,context_satisfiability(X)|D_Agent)”进行判定。该命题所表达的语义是“计算代理的行为输入条件符合情境状态”。感知代理会将结果以报文港口向计算代理输出,因此,通过建立感知代理与计算代理之间报文港口的有限时序机,进行港口互补判断,发现故障行为。对所有故障行为进行拼接,便可得到不可能路径。

本发明提供一种面向车联网的软件开发故障诊断方法,紧紧围绕车联网软件的情境感知特性,通过在设计阶段首次运用软件行为学理论,特别是行为树、行为信息基与港口,来描述三类单一代理与群体代理的内部行为,以及所有代理之间的外部交互,构造车联网软件的行为模式,进而发现不可能路径来实施故障诊断。本发明能够预先发现软件执行阶段可能出现的故障,降低执行测试成本。本发明所采用的理论确实可行,技术具有可操作性。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1