首页> 中国专利> 一种基于嵌入式控制软件需求模型的量纲分析方法

一种基于嵌入式控制软件需求模型的量纲分析方法

摘要

本发明公开了一种基于嵌入式控制软件需求模型的量纲分析方法,包括如下步骤:步骤一、建立形式化需求文档,对文档需求进行分析,抽取关键信息构建抽象语法树;步骤二、基于步骤一中构建获得的抽象语法树生成需求模型;步骤三、建立与需求模型相匹配的量纲系统;步骤四、针对步骤二中生成的需求模型利用步骤三建立的量纲系统进行量纲分析。本发明所述的量纲分析方法能够消除因自然语言的模糊性和二义性等问题产生的歧义问题,并在其基础上进行需求模型的量纲分析来提高需求工程师所关心的功能计算问题,从而使得需求工程师更准确更快速的进行需求的分析验证。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-22

    公开

    发明专利申请公布

说明书

技术领域

本发明属于需求建模技术领域,涉及一种基于嵌入式控制软件需求模型的量纲分析方法。

背景技术

量纲检查是一种保障系统需求正确性的有效方法。在工业界中,嵌入式控制软件其功能是否正确、安全直接关系到人们的生命与财产安全。系统需求作为软件工程生命周期的起始点,其正确与否直接影响了最终软件的正确性。因此,从源头上保障开发流程的正确性是至关重要的。量纲分析作为需求确认中的一个重要手段,其可以检查出因量纲定义错误而产生的潜在缺陷,减少因量纲使用不当所造成的错误。

嵌入式控制软件广泛应用于现代轨道交通、航空和航天系统等安全攸关系统。以轨道交通的自动驾驶系统为例,其控制行为的安全性和可靠性等都依赖于自身的嵌入式控制软件。正是因为如此,如何确保嵌入式控制软件的正确性就显得尤为重要。对于控制软件而言,使用自然语言书写的需求文档难以进行量纲检查,因为在系统需求的实际撰写往往都是分模块化的多人一起完成的,在撰写需求时为了保障需求的一致性,往往采用自然语言进行系统需求的撰写,以方便不同需求工程师之间的沟通及需求文档的版本迭代。然而每个人对于系统中各个变量的物理含义的理解不尽相同,这就造成了在系统需求中人为的添加了一些量纲错误。因此,为了对系统需求进行量纲检查,使用领域专用的需求描述语言精确化地描述系统需求是不可缺少的一步。

因此,在工业界合作过程中,量纲问题的难点在于:1)控制系统中调用了大量的具有实际物理含义的计算公式,牵扯到了很多不同的量纲;2)控制系统中变量之间的互相调用非常的普遍,并且交互关系错综复杂,使得人工检查量纲的工作量陡增;3)需求工程师撰写需求之时难以保证其理解的量纲与实际存在的量纲的一致性。

发明内容

为了解决现有技术存在的不足,本发明以嵌入式控制领域入手,提出了一种嵌入式控制软件系统需求的量纲检查方法,具体内容包括:1)以形式化需求撰写语言为基础,建立系统需求模型;2)构建了领域适用的量纲系统,用于描述需求中所对应的物理系统;3)提出了一种领域专用的量纲分析方法,辅助需求工程师进行需求撰写与审查;4)将量纲分析方法结合上需求模型应用在嵌入式控制软件的需求中。

本发明提出了一种基于嵌入式控制软件需求模型的量纲分析方法,在嵌入式控制软件的开发过程中往往涉及大量的计算问题,计算过程中变量之间的单位是否正确转换,这些看似是小问题但在真实的系统运行中十分重要。而量纲检查是一种保障嵌入式控制系统需求正确性的有效方法,虽然量纲的正确性并不能保障系统需求是正确的,但是经过实践发现通过量纲检查可以发现系统中本身所存在的很多缺陷。

本发明提出了一种基于嵌入式控制软件需求模型的量纲分析方法,包括如下步骤:

步骤一、建立形式化需求文档,对文档需求进行分析,抽取关键信息构建抽象语法树;

步骤二、基于步骤一中构建获得的抽象语法树生成需求模型;

步骤三、建立与需求模型相匹配的量纲系统;

步骤四、针对步骤二中生成的需求模型利用步骤三建立的量纲系统进行量纲分析。

步骤一中,本发明调用开源语法分析器Antlr来读取已定义好的语法规范,根据语法和词法规则自动生成语法分析器Parser和词法分析器Lexer。之后使用这两个分析器分析形式化需求主体部分,需求主体部分是指将形式化需求中的没有严格按照需求模板描述的自然语言这部分(需求模板见图3)非形式化内容全部过滤去除,得到由纯形式化语言描述的需求。然后按照定义的语法结构抽取所述需求文档的信息,构建出抽象语法树。在读取需求文档时,若某条需求违背了定义好的语法规范,便不能构建出抽象语法树,并将存在的语法错误给予标注,以便工程师对需求进行修改,修改完成后重新构建抽象语法树。

在建立形式化需求文档时,需要将需求文档输入到形式化模块中,所述需求文档包括需求编号、自然语言描述及形式化描述;所述形式化模块进一步包括数据字典模块、逻辑控制模块;

所述数字字典模块包含了整个需求文档中被定义的变量,存储了变量名、变量注释、变量类型、量纲等信息;所述数字字典模块通过存储变量相关数据信息,便于为后续量纲分析提供变量信息。

所述逻辑控制模块包含了整个需求文档中被定义的计算逻辑,存储了前置条件、计算逻辑以及后置条件;所述逻辑控制模块通过存储变量计算逻辑相关信息,便于为后续量纲分析提供计算过程。所述前置条件是用于约束执行该条需求的基本要求,所述计算逻辑表示该条需求所应该执行的计算过程,所述后置条件表示该需求执行完毕之后所需要满足的必要条件。

步骤二中,对抽象语法树构建需求模型的过程是按逐级递归的方式对抽象语法树进行遍历;若遍历结束,则采用由顶至下,由低至上生成的方式实现需求模型的构建。

以本发明图4抽象语法树为例,构建步骤如下:(1)判断该抽象语法树的根节点,该根节点为if,生成对应的ChoiceStmt模型,其中ChoiceStmt模型包括Condition,TrueBlock,FalseBlock三个属性。

(2)if节点下面有三个子树,分别用左一子树、左二子树、左三子树表示。

将左一子树作为输入参数调用构建算法,得到的模型作为将返回给Condition属性。同理可知,TrueBlock为左二子树调用构建算法返回的模型,FalseBlock需要一次特殊处理,左三子树的根节点为Else,若节点为Else类型则直接将去掉Else节点的左三子树作为输入参数调用构建算法算法,并将得到的模型返回于FalseBlock。

(3)根节点类型为>’,‘=’类型的子树对应生成SimpleStmt模型,其中只包含一个表达式,根节点为‘>'的子树生成PolymericExpr模型,操作符Operator的值为‘>',操作数Operands的值为B和C。同理,中间的根节点为‘=’的子树生成PolymericExpr模型,Operands的值为A和B。右侧的根节点为‘=’的子树则同样生成PolymericExpr模型,Operands的值为A和C。

(4)运算至子树根节点为叶子节点时,算法结束,之后由底至上返回构建结果。

物理学中,将一个物理导出量用若干个基本单位的乘方之积表示出来的表达式,称为该物理量的量纲。

针对上述秒速过程中分布内容做补充说明:

ChoiceStmt(分支语句):属于解析后需求模型中分支语句,等价于其他通用编程语言的if语句。

Condition(条件):属于解析后需求模型中分支语句的判定部分,其判定的结果决定后续模型的走向。

TrueBlock(真分支语句块):属于解析后需求模型中分支语句的控制块部分,当分支语句判定结果为真时执行此控制块。

FalseBlock(假分支语句块):属于解析后需求模型中分支语句的控制块部分,当分支语句判定结果为假时执行此控制块。

SimpleStmt(简单语句):属于解析后需求模型中简单语句,等价于其他通用编程语言的赋值语句(a=10)。

PolymericExpr(复合表达式):属于解析后需求模型中复合表达式,表现为多个表达式之间基于运算符计算的整块内容(a+b)。

步骤三中,量纲系统中的几个最重要的元素为:基本单位,量纲,基本量纲,单位系数,和无量纲系数。

其中,基本单位为整个量纲系统的基本组成单元,如表示时间的基本单位毫秒(ms)、长度的基本单位毫米(mm)、用于描述周期的计量单位(cycle)等;

量纲均由基本单位的幂次方的乘积组成,例如:mm^p*ms^q*cycle^r(其中p、q、r为整数);

基本量纲则为量纲系统中变量赋值使用的单位,如mm*ms^-1、mm*ms^-2、cycle等;

单位系数为不同单位之间的转换之时所使用的常量,如1s=1000ms中,单位系数为1000;

无量纲系数指的是量纲运算其只参与数值的计算但并不参与量纲的计算的系数,如5mm*3.24中的3.24即为无量纲系数。

步骤四中,会基于形式化需求中描述的计算逻辑,根据操作语义中的分支逻辑、顺序逻辑以及赋值逻辑逐步进行基于量纲系统的量纲分析。其中所指代的操作语义中的分支逻辑会根据分支逻辑分别对两边逐步做基于顺序逻辑的量纲检查,操作语义中的顺序逻辑会基于赋值逻辑持续的进行量纲检查。而赋值逻辑会对等式右边的表达式进行量纲计算,并于赋值逻辑中的等式左侧进行量纲比较。

本发明的有益效果包括:本发明提出的一种基于嵌入式控制软件需求模型的量纲分析方法主要针对嵌入式控制领域的需求,提出了一种针对嵌入式控制领域的需求进行建模并进行量纲分析的方法。并针对现在自然语言的模糊性和二义性等问题,提出了相应需求建模方法,并设计了基于需求模板的需求撰写方法来解决其本身所存在的歧义问题。并在其基础上进行需求模型的量纲分析来提高需求工程师所关心的功能计算逻辑问题,从而使得需求工程师更准确更快速的进行需求的分析验证。

附图说明

图1为本发明需求模型各变量对应的数据字典及处理逻辑形式化需求描述。

图2为本发明对应的变量与单位一一对应数据字典。

图3为本发明提及的需求模板。

图4为本发明样例讲解的抽象语法树。

具体实施方式

结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。

本发明提出了一种基于嵌入式控制软件需求模型的量纲分析方法,包括如下步骤:

步骤一、建立形式化需求文档,对文档需求进行分析,抽取关键信息构建抽象语法树;

步骤二、基于步骤一中构建获得的抽象语法树生成需求模型;

步骤三、建立与需求模型相匹配的量纲系统;

步骤四、针对步骤二中生成的需求模型利用步骤三建立的量纲系统进行量纲分析。

具体地,包括以下内容:

a)设计了便于进行量纲分析的需求模型:

在撰写完形式化需求文档后,本发明使用第三方开源语法分析器Antlr读取已定义的语法规范,根据语法和词法规则生成语法分析器Parser和词法分析器Lexer对需求进行分析。基于设计的对应的文法抽取出需求文档中的关键信息,并将这些信息构建为抽象语法树。最后,基于此抽象语法树生成需求模型并进行后续的量纲分析。

步骤一中,在建立形式化需求文档时,需要将需求文档输入到形式化模块中,所述形式化模块包括数据字典模块和逻辑控制模块;

所述数据字典模块是在构建形式化需求文档之时构建完成的,包含了整个需求文档中被定义的变量,存储了变量名,变量别名,类型,量纲等信息,为后续量纲分析提供变量信息。

所述逻辑控制模块包含了整个需求文档中被定义的计算逻辑,存储了前置条件、计算逻辑以及后置条件;其中前置条件主要是用于约束执行该条需求的基本要求,计算逻辑表示该条需求所应该执行的计算过程,后置条件表示该需求执行完毕之后所需要满足的必要条件。

b)构建了领域适用的量纲系统:

物理学中,将一个物理导出量用若干个基本单位的乘方之积表示出来的表达式,称为该物理量的量纲。量纲系统中的几个最重要的元素为:基本单位(Base unit),量纲(Dimension),基本量纲(Base dimension),单位系数(Unit Factor),和无量纲系数(Dimensionlessnumber)。其中,所述基本单位为整个量纲系统的基本组成单元;量纲均由基本单位的幂次方的乘积组成,如mm*s^-2(毫米每秒的平方)。基本量纲则为量纲系统中变量赋值使用的单位,如mm/s。单位系数为不同单位之间的转换之时所使用的常量,如1s=1000ms中,单位系数为1000。无量纲系数指的是量纲运算中只参与数值的计算但并不参与量纲的计算的系数,如5mm*3.24中的3.24即为无量纲系数。针对其中的特点将其定义为下表1所示:

表1量纲系统基本定义

其中各个内容定义如下:

1)Dimension System:表示量纲系统。

2)Base unit:基本单位,作为量纲系统的基本组成单元。例如,表示周期的基本单位cycle、表示速度的基本单位mm*ms^-1、表示加速度的基本单位mm*ms^-2等。

3)Dimension:量纲,由基本单位Base unit的幂次方的乘积构成。

4)Base dimension:基本量纲,在变量赋值时使用的单位。

5)Unit Factor:单位系数,用于不同单位之间的转换,它是一个常量。例如在2s=2000ms中,单位系数为2000。

6)Dimensionlessnumber:表示无量纲系数,在进行量纲计算的过程中,它只参与数值的计算,并不参与量纲的计算,例如3mm*1.56中的3和1.56。

c)针对需求模型设计了量纲分析方法

在与工业界合作的过程中,量纲问题是一个亟待解决又很难解决的问题。为了解决其问题,本发明基于嵌入式控制系统设计了相应的需求模型,并针对其控制系统所对应的需求模型设计了相应的量纲分析算法。算法大致如下所示:

该算法中第一行的FR指代所有的需求条目,ERR表示错误信息的集合,之后由for循环遍历所有的需求条目,针对每个需求条目得到经过解析需求条目后获取的抽象语法树,之后检查该需求语法树所对应的需求模型是否存在量纲分析问题,如果没有问题则继续下一个,否则将错误信息添加到对应的错误信息集合ERR中。

在这个算法中的CHECK主要满足以下3条操作语义:

分支逻辑:当执行到分支逻辑时会分别执行分支两边做基于顺序逻辑的量纲检查。

顺序逻辑:顺序逻辑会基于赋值逻辑的特性逐步地进行量纲检查。

赋值逻辑:赋值逻辑会对等式右边的表达式进行量纲计算,并于赋值逻辑中的等式左侧进行量纲比较。

针对每个赋值逻辑的量纲比较标准符合以下6条基本规则:

1)在进行“+”、“-”、“=”、“>”、“<”、“>=”、“<=”、“==”、“!=”运算时,操作符两边的变量的量纲相等时,方可进行运算。

2)变量在进行“*”、“/”运算时,会产生新的量纲。

3)若变量的量纲为“cycle”,在进行“+”、“-”运算时要满足规则1,且“cycle”可与无量纲单位进行计算。

4)在涉及到数学函数的运算时,例如对数函数、三角函数等,函数的因变量必须是无量纲系数。

5)遇到“return”语句时,需把其替换为赋值语句。

6)当量纲不一致或无法进行运算时,终止量纲分析并保存相关错误。

本发明的一种基于嵌入式控制软件需求模型的量纲分析方法主要针对嵌入式控制领域的需求,提出了一种针对嵌入式控制领域的需求进行建模并进行量纲分析的方法。并针对现在自然语言的模糊性和二义性等问题,提出了相应需求建模方法,并设计了一套转化方法来消除其本身所存在的歧义问题。并在其基础上设计了量纲系统以及量纲分析算法,并将这些内容应用在嵌入式控制系统生成的需求模型来提高需求工程师所关心的功能计算问题,从而使得需求工程师更准确更快速的进行需求的分析验证。

本发明的保护内容不局限于以上实施例。在不背离本发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号