一种基于需求建模的类型检查方法技术

技术编号:34255133 阅读:24 留言:0更新日期:2022-07-24 12:29
本发明专利技术公开了一种基于需求建模的类型检查方法,包括如下步骤:步骤一、将自然语言描述的原始需求文档基于预设的需求模板由需求工程师改写成符合需求模板要求的需求文档;步骤二、将步骤一中获得的符合需求模板要求的需求文档转化为形式化需求模型;步骤三、对步骤二中获得的形式化需求模型进行类型检查操作。本发明专利技术通过自动化分析的方法来替代传统人工审查的方法,可以快速发现定位其中潜在的问题,进一步提升需求准确性和可靠性。进一步提升需求准确性和可靠性。进一步提升需求准确性和可靠性。

A type checking method based on Requirement Modeling

【技术实现步骤摘要】
一种基于需求建模的类型检查方法


[0001]本专利技术属于嵌入式控制领域,涉及一种基于需求建模的类型检查方法。

技术介绍

[0002]类型检查是一种提高系统需求正确性的有效方法。尤其是在工业界中,嵌入式控制软件其功能是否正确、安全直接关系到人们的生命与财产安全。而需求作为整个软件开发过程的第一步,其正确性将直接影响了最终软件的正确性。因此,为了提高需求的正确性,先提出了一套需求模板来消除自然语言的二义性,并在此基础上进行需求建模与类型检查,通过发现需求撰写中的类型问题来找到需求的潜在缺陷,达到提高需求可靠性的目的。
[0003]需求作为经典

字模型的第一步,也是最关键的一步,直接影响V字模型中后续的设计、开发以及编码阶段。如何通过高质量的需求来为整个系统的安全性和可靠性也备受关注。美国曾在1995年做过一个调研,对全国合计8000个软件调查的追踪结果表明,所有失败的项目中因为需求引发的占到了45%。在另一项研究中也发现如果,能在软件开发过程中的需求阶段发现问题相比于在编码后发现问题再进行修改的代价仅为编码后的十分之一。因此,针对汽车控制系统通过采用完备性的建模描述语言,对其需求文档使用数理逻辑为基础形式化分析方法是有必要的。
[0004]然而软件的需求通常采用的是“通俗易懂”的自然语言,这些自然语言可能是某些约定俗成的符号,图标甚至是伪代码。由于自然语言其局限性,对于某个撰写者而言,他认为已经清晰无误的表达了个人想法,但也可能被其他人理解成另外的某种意思。这将导致即使对应同一份需求,不同的开发者也会对需求产生不同的理解。
[0005]在撰写需求时为了保障需求的一致性,都会进行需求确认。需求确认有多种方法,比如需求审查、需求测试以及需求动画等。这些都属于比较经典的需求确认方法,虽然这种方法易推广,易实施,但是其缺点也十分明显,但是这些方法都存在效率低以及对需求工程师的理论经验要求高等问题。此外,仅仅是人工检查一些难以发现的错误没有被检查出来也是有可能的。因此,使用需求审查这种方法来保证需求文档的有效性、正确性和完备性是不够的。

技术实现思路

[0006]为了解决现有技术存在的不足,本专利技术的目的是提供了一种基于需求建模的类型检查方法,将自然语言书写的需求文档先通过模板化的方法,辅助需求工程师快速撰写无歧义的需求用于后续的分析。之后通过Antlr静态词法语法分析器,将需求转化到预先设计的需求模型中,并对此需求模型进行类型检查分析,通过分析类型检查中的问题来找出需求中潜在的问题。本专利技术的方法无需开发人员了解过多形式化相关知识背景,只需要根据给定的需求模板的进行撰写,在对需求撰写完成之后,即可对需求工程师所撰写的需求进行类型检查,并且会记录类型检查的问题反馈给需求工程师。
[0007]本专利技术提供了一种基于需求建模的类型检查方法,包括如下步骤:
[0008]步骤一、将自然语言描述的原始需求文档基于预设的需求模板由需求工程师改写成符合需求模板要求的半形式化需求文档;
[0009]步骤二、将步骤一中获得的符合需求模板要求的半形式化需求文档转化为形式化需求模型;
[0010]步骤三、对步骤二中获得的形式化需求模型进行类型检查操作。
[0011]步骤一进一步包括如下步骤:
[0012]步骤1.1、提出预设的包含需求编号、输入输出、工作流程的需求模板;
[0013]步骤1.2、由需求工程师根据需求模板要求进一步修改原始需求文档形成半形式化需求文档。
[0014]需求编号:每一个需求编号表示的是一个不同的需求条目的ID,编号是不能重复的,代表了这个特定需求,用一系列字符的组合加方括号来表示;
[0015]输入输出:输入输出用于辅助确认每一个需求条目所需执行逻辑计算,可以通过是否每个输入都被使用过,每一个输出都被赋值过,来进一步提升需求的可靠性;
[0016]工作流程:工作流程主要由两部分组成:以自然语言为主体的需求描述部分和形式化的规范语言描述部分。在规范语言描述部分可以进一步细化成前置条件、强迁移、状态流下的计算逻辑以及最后的弱迁移;此外,在规范语言描述中需要额外注意表达式的书写规范。
[0017]工作流程中:前置条件指的是在做此需求计算逻辑必须要满足的前置条件;强迁移指的是进行计算逻辑前的迁移过程,主要是用于处理特殊情况,能够更快处理异常情况;计算逻辑指的是该需求所需要进行的计算过程;弱迁移指的是计算逻辑后的迁移过程,主要是需求之间的计算逻辑切换。
[0018]步骤二中,基于预先设计好的建模语言所对应的文法,使用Antlr词法语法解析器将符合需求模板要求的形式化需求文档内容转化成相应的需求模型;
[0019]进一步包括如下步骤:
[0020]步骤2.1、将符合需求模板要求的半形式化需求文档经过预处理获得形式化需求文档;所述预处理包括需求模板描述内容的提取,模板编号与需求模型的映射,模板注释内容的处理。
[0021]所述模板描述内容的提取是指对需求中严格符合需求模板描述内容的提取;所述模板编号与需求模型的映射是指将需求模型的编号与最终转化的形式化需求模型做映射;所述模板注释内容的处理是指对#后额外描述内容进行存储(主要是用于针对source可做需求追溯)。
[0022]步骤2.2、将形式化需求文档使用根据基于antlr撰写的语法和词法规则自动生成的语法分析器Parser和词法分析器Lexer来对形式化需求文档进行解析,然后按照定义的语法结构抽取关键信息判断是否有语法错误;若有语法错误,则提示语法错误信息,返回步骤2.1中的形式化需求文档进行修改;若无语法错误,则构建生成抽象语法树(AST);
[0023]步骤2.3、对抽象语法树按逐级递归的方式进行遍历;若遍历结束,则采用由顶至下,由低至上生成的方式实现形式化需求模型的构建;若遍历未结束,则重复步骤2.3,直到遍历完全。
[0024]步骤三中,类型检查操作是指对形式化需求模型进行静态分析,主要是根据控制逻辑逐个将有关联的变量进行类型检查,判断所需要解决的目标再进行操作符运算时,操作符两边的操作数的类型是否一致。
[0025]所述控制逻辑内容包括赋值逻辑,顺序逻辑以及分支逻辑;所述赋值逻辑是指普通等式的赋值逻辑;所述顺序逻辑是指处于同一控制块内的等式顺序执行逻辑;所述分支逻辑是指if和switch引发多条执行路径的处理逻辑。每一个执行路径为一个控制块。
[0026]在类型检查操作时,根据实践针对类型检查逻辑设计的类型系统包含以下八种类型数据:int、float、bool、string、option、option_val、error、unknown;在这些数据类型中:int、float、bool、string表示常用的基本数据类型;option用于表示有多个枚举值类型的数据类型;option_val表示对应的option的具体每个值的类型;error表示经过类型检查后存在问题的变量类型;unknown表示无法推导本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于需求建模的类型检查方法,其特征在于,包括如下步骤:步骤一、将自然语言描述的原始需求文档基于预设的需求模板由需求工程师改写成符合需求模板要求的半形式化需求文档;步骤二、将步骤一中获得的符合需求模板要求的半形式化需求文档转化为形式化需求模型;步骤三、对步骤二中获得的形式化需求模型进行类型检查操作。2.如权利要求1所述的类型检查方法,其特征在于,步骤一进一步包括如下步骤:步骤1.1、提出预设的包含需求编号、输入输出、工作流程的需求模板;步骤1.2、由需求工程师根据需求模板要求进一步修改原始需求文档形成半形式化需求文档。3.如权利要求2所述的类型检查方法,其特征在于,所述需求编号表示不同的需求条目的ID,编号不能重复,代表特定需求,用一系列字符的组合加方括号来表示;所述输入输出用于辅助确认每一个需求条目所需要执行的逻辑计算;所述工作流程包括以下两部分:以自然语言为主体的需求描述部分和形式化的规范语言描述部分;所述规范语言描述部分包括前置条件、强迁移、状态流下的计算逻辑以及最后的弱迁移。4.如权利要求1所述的类型检查方法,其特征在于,步骤二中,基于预先设计好的建模语言所对应的文法,使用Antlr词法语法解析器将符合需求模板要求的形式化需求文档内容转化成相应的需求模型。5.如权利要求1所述的类型检查方法,其特征在于,步骤二进一步包括如下步骤:步骤2.1、将符合需求模板要求的半形式化需求文档经过预处理获得形式化需求文档;步骤2.2、将形式化需求文档使用基于antlr撰写的语法和词法规则自动生成的语法分析器Parser和词法分析器Lexer来对形式化需求文档进行解析,然后按照定义的语法结构抽取关键信息判断是否有语法错误;若有语法错误,则提示语法错误信息,返回步骤2.1中的形式化需求文档进行修改;若无语法错误,则构建生成抽象语法树AST;步骤2.3、对抽象语法树按逐级递归的方式进行遍历;若遍历结束,则采用由顶至下,由低至上生成的方式实现形式化需求模型的构建;若遍历未结束,则重复步骤2.3,直到遍历完全。6.如权利要求5所述的类型检查方法,其特征在于,步骤2.1中,所述预处理包括需求模板描述内容的提取,模板编号与需求模型的映射,模板注释内容的处理;所述模板描述内容的提取是指对需求中严格...

【专利技术属性】
技术研发人员:蒲戈光缪炜恺冯劲草蔡雄郑寒月
申请(专利权)人:华东师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1