嵌入式软件系统程序的开发方法.pdf

上传人:62****3 文档编号:632258 上传时间:2018-02-28 格式:PDF 页数:16 大小:1.21MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410284639.7

申请日:

2014.06.23

公开号:

CN104216703A

公开日:

2014.12.17

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 9/44申请日:20140623|||公开

IPC分类号:

G06F9/44

主分类号:

G06F9/44

申请人:

武汉大学深圳研究院

发明人:

毋国庆; 黄勃

地址:

518057 广东省深圳市南山高新区南区粤兴二道6号武汉大学深圳产学研大楼A302

优先权:

专利代理机构:

广东知恒律师事务所 44342

代理人:

柴吉峰

PDF下载: PDF下载
内容摘要

本发明涉及一种嵌入式软件系统程序的开发方法,包括根据嵌入式软件系统程序的需求分析建立待开发嵌入式系统程序的需求模型;对需求模型进行分析和检测,同时生成目标软件系统程序所需要的源代码,进而生成目标软件系统程序;对目标软件系统程序进行程序分析得出程序模型,将程序模型和需求模型进行比较分析以发现差异性,如发现差异性则对生成的目标软件系统程序或需求模型进行修复步骤。本发明针对嵌入式软件系统程序的特点,提供适合于嵌入式软件系统程序的需求建模技术方案,将用户使用自然语言表达的需求转化为场景及行为表达式,为自动检测软件系统的需求是否正确和完整奠定了良好的基础。

权利要求书

1.  一种嵌入式软件系统程序的开发方法,其特征在于包括以下步骤:
S1根据嵌入式软件系统程序的需求分析建立待开发嵌入式系统程序的需求模型;
S2对步骤S1所述需求模型进行分析和检测,同时生成目标软件系统程序所需要的源代码,进而生成目标软件系统程序;
S3对目标软件系统程序进行程序分析得出程序模型,将程序模型和需求模型进行比较分析以发现差异性,如发现差异性则对生成的目标软件系统程序或需求模型进行修复;
其中步骤S1所述需求模型的建立包括如下步骤:
S11划分子问题域、标识视点,根据自然语言描述的需求,建立相应的场景信息;
S12根据场景信息抽取与行为相关的信息,并利用行为描述语言描述行为相关的信息,建立行为表达式;
S13建立行为描述语言模型,作为检验需求模型的各种特性的基础;
S14利用模型检验方法检测需求模型的一致性及需求模型所对应的系统需要检测的可信特性,如发现差异对需求模型进行修复。

2.
  根据权利要求1所述嵌入式软件系统程序的开发方法,其特征在于步骤S14所述对需求模型的分析和检测包括如下步骤:
S141视点建模,生成视点行为模型;
S142检查视点行为模型内的行为表达合法性、输入/输出行为的一致性和行为连续性;
S143修改视点行为模型,直到每个视点都满足行为表达合法性、输入/输出行为的一致性和行为连续性要求;
S144根据视点的相关关系检测视点行为模型间的一致性;
S145修改视点行为模型,直到所有相关视点行为模型间一致;
S146合并视点行为模型,得到系统行为模型;
S147检测系统行为模型的行为有效性;
S148检测系统行为模型的系统安全特性。

3.
  根据权利要求1或2任一所述嵌入式软件系统程序的开发方法,其特征在于步骤S2所述生成目标软件系统程序所需要的源代码包括如下步骤;
S21确定场景之间的关系;
S22依据场景内的输入/输出行为,得出功能模块;
S23对视点内的参数池的参数进行定义;
S24编码、调试和生成所需要的源代码。

4.
  根据权利要求1所述嵌入式软件系统程序的开发方法,其特征在于步骤S3包括如下步骤:
S31编译行为描述语言文本和目标软件系统程序,建立行为描述语言文本和目标软件系统程序的元素表,为元素对应做准备;
S32对行为描述语言文本元素表中的行为和操作数据与目标软件系统程序元素表中的符号,包括函数、常量和变量进行人工对应;
S33参照建立的对应关系从目标软件系统程序对应的中间语言中提取程序模型,而行为描述语言模型由行为描述语言直接生成;
S34将行为描述语言模型和程序模型输入到模型比较检测工具中进行检测,得到检测结果;
S35对检测结果进行分析并查找可能存在的问题及其原因;
S36如果存在问题,则对行为描述语言或目标软件系统程序进行修改以修复问题;
S37重复步骤S31至S36。

说明书

嵌入式软件系统程序的开发方法
技术领域
本本发明属于软件开发技术和工具领域,特别是涉及一种嵌入式软件系统程序的开发方法。 
背景技术
传统的嵌入式软件系统程序开发工作存在许多不足之处,主要表现在如下几个方面: 
(1)高层次的系统需求分析阶段易与软件实现阶段之间脱节。通常,根据用户需求建立的需求规格说明和需求模型是软件实现的依据和规范,但在实际的软件实现过程中由于用户需求的易变性和频繁的程序改动,使得最终的源程序与最初的需求规格说明和需求模型会产生不一致或矛盾,如果不及时修改最初的的需求规格说明和需求模型,这将导致系统文档间的不一致,使得花费了许多精力和成本建立的需求规格说明和需求模型不能发挥应有的作用。 
(2)由于上述的脱节,也导致在系统需求分析阶段对需求模型的检测与软件实现阶段对源程序的测试工作脱节,导致需花费很多精力和成本来重复设计测试用例。 
(3)缺乏完善的指导面向嵌入式软件系统开发的框架和有效的支持从需求到源程序的嵌入式软件开发的方法和技术。 
发明内容
本发明的目的在于为克服现有技术的缺陷,而提供一种嵌入式软件系统程序的开发方法。 
为实现上述目的,本发明采用以下技术方案:一种嵌入式软件系统程序的开发方法,包括以下步骤: 
S1根据嵌入式软件系统程序的需求分析建立待开发嵌入式系统程序的需求模型; 
S2对步骤S1所述需求模型进行分析和检测,同时生成目标软件系统程序所需要的源代码,进而生成目标软件系统程序; 
S3对目标软件系统程序进行程序分析得出程序模型,将程序模型和需求模型进行比较分析以发现差异性,如发现差异性则对生成的目标软件系统程序或需求模型进行 修复; 
其中步骤S1所述需求模型的建立包括如下步骤: 
S11划分子问题域、标识视点,根据自然语言描述的需求,建立相应的场景信息; 
S12根据场景信息抽取与行为相关的信息,并利用行为描述语言描述行为相关的信息,建立行为表达式; 
S13建立行为描述语言模型,作为检验需求模型的各种特性的基础; 
S14利用模型检验方法检测需求模型的一致性及需求模型所对应的系统需要检测的可信特性,如发现差异对需求模型进行修复。 
进一步,步骤S14所述对需求模型的分析和检测包括如下步骤: 
S141视点建模,生成视点行为模型; 
S142检查视点行为模型内的行为表达合法性、输入/输出行为的一致性和行为连续性; 
S143修改视点行为模型,直到每个视点都满足行为表达合法性、输入/输出行为的一致性和行为连续性要求; 
S144根据视点的相关关系检测视点行为模型间的一致性; 
S145修改视点行为模型,直到所有相关视点行为模型间一致; 
S146合并视点行为模型,得到系统行为模型; 
S147检测系统行为模型的行为有效性; 
S148检测系统行为模型的系统安全特性。 
进一步,步骤S2所述生成目标软件系统程序所需要的源代码包括如下步骤; 
S21确定场景之间的关系; 
S22依据场景内的输入/输出行为,得出功能模块; 
S23对视点内的参数池的参数进行定义; 
S24编码、调试和生成所需要的源代码。 
进一步,步骤S3包括如下步骤: 
S31编译行为描述语言文本和目标软件系统程序,建立行为描述语言文本和目标软件系统程序的元素表,为元素对应做准备; 
S32对行为描述语言文本元素表中的行为和操作数据与目标软件系统程序元素表中的符号,包括函数、常量和变量进行人工对应; 
S33参照建立的对应关系从目标软件系统程序对应的中间语言中提取程序模型,而行为描述语言模型由行为描述语言直接生成。 
S34将行为描述语言模型和程序模型输入到模型比较检测工具中进行检测,得到检测结果; 
S35对检测结果进行分析并查找可能存在的问题及其原因; 
S36如果存在问题,则对行为描述语言或目标软件系统程序进行修改以修复问题; 
S37重复步骤S31至S36。 
本发明与现有技术相比的有益效果是:1)针对嵌入式软件系统程序的特点,本方法使用场景和视点技术,提供适合于嵌入式软件系统程序的需求建模技术方案,并且通过划分子问题域,进一步降低嵌入式系统需求建模难度。将用户使用自然语言表达的需求转化为场景及行为表达式,从而能实现从自然语言到半形式化,最终到形式化的需求描述,为自动检测软件系统的需求是否正确和完整奠定了良好的基础。 
2)通过形式化的模型验证,从语法正确性证明开始对整个需求模型进行验证,同时软件系统的特性如可信特性也是通过软件行为来验证的。 
3)需求模型到源代码的转换可以自动化的完成,极大的提高了效率,并通过对生成的目标软件系统和需求模型进行比较分析所发现的差异性进行修复步骤最终得到目标程序代码。 
4)本方法所提供的面向代码的逆向分析过程从源代码自动出发,跟需求模型进行比较,最终得到目标源代码是否和需求模型一致的结论,来判断目标软件系统程序的正确性。 
5)本方法有利于从形式化的角度建立和检测软件需求模型,进而转换得到目标软件系统程序的源代码,提高软件的生产效率和正确性。 
下面结合附图和具体实施例对本发明作进一步描述。 
附图说明
图1为本发明的流程图; 
图2为本发明的需求建模和对其分析检测的流程图; 
图3为本发明验证行为有效性的原理图; 
图4为本发明需求模型当中参数池定义的转换对应图; 
图5为本发明源代码的编码、调试和源码生成步骤图; 
图6为本发明程序模型和需求模型比较检测的流程图; 
图7为本发明无线传感器仿真工作流程图。 
具体实施方式
为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明。 
如图1所示,为本发明的流程图,一种嵌入式软件系统的开发方法,具体实施时可以采用计算机实现以下流程的自动运行: 
步骤S1根据嵌入式软件系统程序的需求分析建立待开发嵌入式系统程序的需求模型; 
步骤S2对步骤S1所述需求模型进行分析和检测,同时生成目标软件系统程序所需要的源代码,进而生成目标软件系统程序; 
步骤S3将目标软件系统程序进行程序分析得出程序模型,将程序模型和需求模型进行比较分析以发现差异性,如发现差异性则对生成的目标软件系统程序或需求模型进行修复; 
步骤S1中需求模型的建立包括如下步骤: 
步骤S11划分子问题域、标识视点,根据自然语言描述的需求,建立相应的场景信息; 
步骤S12根据场景信息抽取与行为相关的信息,并利用行为描述语言描述行为相关的信息,建立行为表达式; 
步骤S13建立行为描述语言模型,作为检验需求模型的各种特性的基础; 
步骤S14利用模型检验方法检验需求模型的一致性及需求模型所对应的系统需要检测的可信特性,如发现差异对需求模型进行修复。 
上述过程可以将系统的需求与该系统的行为有机地结合起来,从而可通过行为来 描述和检验待开发的嵌入式软件系统程序的需求和行为各种可信特性,具体说明如下: 
①划分子问题域 
对于嵌入式软件系统,由于其对应的问题域繁多,所以在需求分析的开始就需要将其分解为多个子问题域,然后根据每个子问题域施行需求分析。值得注意的是,问题域的划分方法应根据问题域的逻辑特性和问题域内部各成分间的逻辑关系进行。 
②标识视点 
根据相应的子问题域,从中找出所有的视点源及其关注点,并将它们标识为视点,然后建立视点模板以及在该模板中填写部分视点信息。 
③描述需求 
从每个视点源获取相关的需求信息,经过分析整理,以自然语言的形式填入视点模板的“需求描述”视点项中。 
④建立场景 
一个场景(也称作脚本)是可以被行为者感受到的系统的一个完整的功能。场景的描述主要用自然语言,而且根据已获取的所有的有效行为并按它们的执行顺序构成有序的行为系列,从而构建出每一个场景。 
⑤使用行为描述语言建立行为表达式 
根据场景信息抽取与行为相关的信息,并利用行为描述语言描述行为相关的信息,建立行为表达式。使用行为描述语言(BDL)来描述每个场景信息,并用行为表达式来表示场景中的内容,在描述过程中可以采用逐步细化的方式来描述一个场景的行为模型,与所有场景对应的多个行为表达式就构成系统的行为模型或需求模型,需求建模的流程图如图2所示。 
本发明还提供了在此步骤形成的行为描述语言的需求模型实施例以供参考: 
该步骤中不采用自然语言,主要利用行为描述语言(BDL,Behaviors Description Language)表达行为模型。本发明采用行为描述语言这种形式化语言作为描述手段之一,其主要用于严格地描述待开发软件系统的行为模型,可以为以后自动检验待开发软件系统的各种特性奠定良好的基础。行为描述语言对行为、场景到视点的描述表达都给出了严格的表现形式,即设某个场景中包含n个有效行为,描述所得n个原子行为表达为 
原子行为标识1:原子行为定义1; 
原子行为标识2:原子行为定义2; 
…… 
原子行为标识n:原子行为定义n; 
场景行为表达式=场景中所有的n个原子行为及其原子行为间的关系; 
视点行为表达式=视点中所有场景行为表达式及其场景间的关系。 
具体实施时,按照这种确定的行为描述语言语法,计算机可以自动完成从自然语言描述的需求到建立初始系统需求模型的全过程,然后通过修改和检测最终形成正确的系统需求模型。 
为了便于管理,本发明进一步提供了模型表达方式:系统行为模型可以表示为M=(V,R0,R1,R2),其中V表示与待开发软件系统相关的视点的集合,且V中每个视点对应一个视点行为模型,R0、R1、R2分别表示V中视点间的重叠、顺序和无关关系;视点行为模型表示为M1=(B,+,If,||,;),其中B表示视点内所有场景行为表达式的集合。+,If,||,;分别表示B中场景间的非确定、确定选择、并行和顺序关系。这种形式化表示,可以保证视点行为模型和系统行为模型在表达方面的正确性,以及防止视点间需求信息可能会发生重叠从而导致行为模型间出现行为冲突和不一致。 
本发明还提供了实施例在此步骤形成的行为描述语言文本以供参考: 
令ABehID为原子行为标识,BehID为行为标识。 
(1)原子行为: 
1)原子行为表达式 
ABehID:f(sub,obj) 
[When前置条件] 
[INFrom(ID)(u1,…..,un)] 
[OUTTo(ID)(v1,…..,vm)]. 
其中:f为主体sub施用于客体obj的服务、操作或动作。When,INFrom和OUTTo分别为行为执行的前置条件,行为的输入和输出。 
2)空动作:ABehID:Idel. 
3)复合行为结束动作:ABehID:Return(ABehID)或Return(). 
其中:Return()表示正常退出系统。 
(2)简单行为:|—ABehID;(原子行为构成简单行为) 
(3)复合行为: 
1)顺序行为:(a)
(b)
2)未确定选择行为:
3)确定选择行为:
4)并行行为:
(4)系统行为模型的结构如下: 
系统名: 
视点ID1的行为模型; 
........ 
视点IDn的行为模型。 
(5)视点行为模型的结构如下: 
视点ID: 


(6)场景行为模型的结构如下: 

步骤S14需求模型的检测包括如下步骤: 
S141视点建模,生成视点行为模型; 
S142检查视点行为模型内的行为表达合法性、输入/输出行为的一致性和行为连续性; 
S143修改视点行为模型,直到每个视点都满足行为表达合法性、输入/输出行为的一致性和行为连续性要求; 
S144根据视点的相关关系检测视点行为模型间的一致性; 
S145修改视点行为模型,直到所有相关视点行为模型间一致; 
S146合并视点行为模型,得到系统行为模型; 
S147检测系统行为模型的行为有效性; 
S148检测系统行为模型的系统安全特性。 
需求模型的检测是保证需求模型可信性的必要阶段,在这一阶段要对需求模型本身的一致性即视点间的一致性,以及所需要检测的系统可信特性进行检测。在需求建模过程中,各视点虽然是相对独立的,但不同视点间的需求信息可能会发生重叠。因此,由不同视点产生的需求模型间会产生重叠和差异,从而可能会导致需求模型间出现需求冲突和不一致。此外,有些视点可能使用不同的需求建模方法和技术构建需求模型,更增加了视点间容易发生需求冲突和不一致的可能性。因此,在形成最终需求规约之前,必须检测和处理视点间存在的需求冲突和不一致问题,以保需求的正确性和一致性。视点检测主要包括三部分,即语法检查、语义检查和系统特性检测。其中,而前两项检查需要分别在视点内及视点间进行,系统特性检测主要利用行为时序逻辑系统检查系统的特性。 
如前所述,需要检测的内容分为三个方面的内容,其中:语法方面的检测内容为:行为表达合法性、含输入/出行为的一致性和行为连续性;语义方面的检测内容为:视点间行为一致性;系统特性方面的检测内容为:行为有效性和行为信息安全性等,其它系统特性视具体系统而定。 
①行为表达合法性 
行为表达合法性是指一个行为表达式能满足行为描述语言的语法。给定一个视点的行为模型(或行为表达式集合),称其表达是合法的,如果该行为模型(或行为表达式集合)中所有的行为表达式能满足行为描述语言的语法。 
②含输入/出行为的一致性 
含输入/出行为的一致性分为视点内的与视点间的含输入/出行为的一致性,包括:视点内含输入/出行为的一致性;视点间含输入/出行为的一致性;行为连续性(或称行为完整性)。 
③行为有效性 
行为有效性表示一个行为模型总能够按照预期的方式运行,这里指的预期的方式就是一组行为踪迹的集合,也可以用时序逻辑公式表示。 
如果行为模型M能够满足所有预期的运行踪迹,时序逻辑公式成立,则称一个行为模型M是有效的,行为有效性检测的流程如图3所示。 
步骤S2在从需求模型到源代码生成的过程中,首先需确定某一特定的过程语言如C语言来作为目标语言,然后根据需求模型建立软件的体系结构和各个软件功能模块,并依据划分的各软件功能模块,通过提供的开发平台编写各软件功能模块的源代码,最后生成对应需求模型的程序代码,具体实现过程如下: 
步骤S21确定场景之间的关系 
场景间的关系可能存在:扩展、调用、层次、并行、顺序。通过分析场景之间的关系可以初步确定嵌入式软件系统的大致体系结构和部分模块间的关系,以及在未来对功能模块的复用起到重要的作用。 
步骤S22依据景内的输入/输出行为,得出功能模块 
在确定了场景之间的关系以后,需要根据实际的场景内部的输入/输出行为来判断场景内部的功能模块,一个场景行为模型的结构如前所述,其中,根据场景内的输入/输出行为,分析场景内部的可能存在的公用功能模块,如在一个全自动的智能洗衣机嵌入式环境当中,只要是对衣服进行清洗的进程,无论衣物本身是何种面料,是轻柔洗涤或是强力洗涤,设定的行为流程当中必然都存在漂洗这个过程。 
通过研究场景内的输入/输出行为,可以得到需要的最小的功能模块。这个最小的功能模块可以方便在其他的功能模块当中进行调用。 
步骤S23对视点内的参数池的参数进行定义 
面向嵌入式的软件系统的开发,在某种程度上面,就是对功能函数的实现,变量的声明非常重要。在嵌入式的软件系统中,不同的变量出现在每个函数当中,全局变量、局部变量、宏定义常量,同时对于变量的类型定义也是比较困难的。 
在需求建模的过程当中,建模方法提供了一个参数池的概念。一个原子行为实际上就是主体对客体实施的一个操作,这个操作可以传递一些输入/出参数。提取参数池当中所有的参数,区分参数在程序当中实际对应的全局变量或者是局部变量,在对参数的对应过程当中,同时对以参数命名的变量的数据类型进行定义。 
本发明提出的开发方法提供一种机制,在当模块编码的时候如果出现未在参数池 出现的局部变量的时候,允许用户随时对这样的局部变量进行定义,需求模型当中参数池定义的转换对应如图4所示。 
步骤S24编码、调试和源码生成 
用户在完成了场景对应的体系结构设计以后,可以根据确定的功能模块进行编码工作,然后在提供的调试器中调试生成的代码,检查代码的正确性后可进入测试阶段。形成最终嵌入式软件系统,源代码的编码、调试和源码生成步骤如图5所示。 
步骤S3程序模型和需求模型分析比较包括如下步骤: 
步骤S31编译行为描述语言文本和目标软件系统程序,建立行为描述语言文本和目标软件系统程序的元素表,为元素对应做准备; 
步骤S32对行为描述语言文本元素表中的行为和操作数据与目标软件系统程序元素表中的符号,包括函数、常量和变量进行人工对应; 
步骤S33参照建立的对应关系从目标软件系统程序对应的中间语言中提取程序模型,而行为描述语言模型由行为描述语言直接生成; 
步骤S34将行为描述语言模型和程序模型输入到模型比较检测工具中进行检测,得到检测结果; 
步骤S35对检测结果进行分析并查找可能存在的问题及其原因; 
步骤S36如果存在问题,则对行为描述语言或目标软件系统程序进行修改以修复问题; 
步骤S37重复步骤S31至S36,直至所有的问题都获得解决。如图6所示,步骤S31、S35是需要人工参与的两个步骤,在这两个步骤中人工工作将会对方法的应用效果产生影响。 
本发明应用广泛,为了便于本领域技术人员更清晰地理解本发明技术方案,在此选择一个具体实施例进行详细说明需求模型到目标源代码的转换。 
本具体实施例以工厂生产线上的机器人为例,从整个系统的抽象层面上来实现基于无线传感器网络在实际生产和生活当中的应用。图7当中存在两类无线传感器,这两类无线传感器主要是作用上存在不同:sensorA被设置在零件传输带上,根据传输带上的当前物体的大小来判断当前零件传输带上零件的类型,并将结果传递给生产线 上的装配机器人;sensorB被设置在成品传输带上,判断当前的成品传输带上有没有空位,当机器人装配完成以后,允许机器人将成品放在成品传输带上的空位上。图7是对该过程的仿真(需求模型的可视化),仿真可以帮助用户进一步去确定需求是否正确表达了他们的需要。sensorA和sensorB将信号传递给机器人,装配机器人根据传递的参数值判断如何去驱动运行。文本A是机器人装配场景的BDL模型,描述了机器人根据无线传感器的信号,抓取零件A和零件B的过程。文本B是参考BDL得到的一个C语言程序的源代码片段。 

以上所述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。 

嵌入式软件系统程序的开发方法.pdf_第1页
第1页 / 共16页
嵌入式软件系统程序的开发方法.pdf_第2页
第2页 / 共16页
嵌入式软件系统程序的开发方法.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《嵌入式软件系统程序的开发方法.pdf》由会员分享,可在线阅读,更多相关《嵌入式软件系统程序的开发方法.pdf(16页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104216703A43申请公布日20141217CN104216703A21申请号201410284639722申请日20140623G06F9/4420060171申请人武汉大学深圳研究院地址518057广东省深圳市南山高新区南区粤兴二道6号武汉大学深圳产学研大楼A30272发明人毋国庆黄勃74专利代理机构广东知恒律师事务所44342代理人柴吉峰54发明名称嵌入式软件系统程序的开发方法57摘要本发明涉及一种嵌入式软件系统程序的开发方法,包括根据嵌入式软件系统程序的需求分析建立待开发嵌入式系统程序的需求模型;对需求模型进行分析和检测,同时生成目标软件系统程序所需要的源代码,。

2、进而生成目标软件系统程序;对目标软件系统程序进行程序分析得出程序模型,将程序模型和需求模型进行比较分析以发现差异性,如发现差异性则对生成的目标软件系统程序或需求模型进行修复步骤。本发明针对嵌入式软件系统程序的特点,提供适合于嵌入式软件系统程序的需求建模技术方案,将用户使用自然语言表达的需求转化为场景及行为表达式,为自动检测软件系统的需求是否正确和完整奠定了良好的基础。51INTCL权利要求书2页说明书9页附图4页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书9页附图4页10申请公布号CN104216703ACN104216703A1/2页21一种嵌入式软件系统程序的开发方。

3、法,其特征在于包括以下步骤S1根据嵌入式软件系统程序的需求分析建立待开发嵌入式系统程序的需求模型;S2对步骤S1所述需求模型进行分析和检测,同时生成目标软件系统程序所需要的源代码,进而生成目标软件系统程序;S3对目标软件系统程序进行程序分析得出程序模型,将程序模型和需求模型进行比较分析以发现差异性,如发现差异性则对生成的目标软件系统程序或需求模型进行修复;其中步骤S1所述需求模型的建立包括如下步骤S11划分子问题域、标识视点,根据自然语言描述的需求,建立相应的场景信息;S12根据场景信息抽取与行为相关的信息,并利用行为描述语言描述行为相关的信息,建立行为表达式;S13建立行为描述语言模型,作为。

4、检验需求模型的各种特性的基础;S14利用模型检验方法检测需求模型的一致性及需求模型所对应的系统需要检测的可信特性,如发现差异对需求模型进行修复。2根据权利要求1所述嵌入式软件系统程序的开发方法,其特征在于步骤S14所述对需求模型的分析和检测包括如下步骤S141视点建模,生成视点行为模型;S142检查视点行为模型内的行为表达合法性、输入/输出行为的一致性和行为连续性;S143修改视点行为模型,直到每个视点都满足行为表达合法性、输入/输出行为的一致性和行为连续性要求;S144根据视点的相关关系检测视点行为模型间的一致性;S145修改视点行为模型,直到所有相关视点行为模型间一致;S146合并视点行为。

5、模型,得到系统行为模型;S147检测系统行为模型的行为有效性;S148检测系统行为模型的系统安全特性。3根据权利要求1或2任一所述嵌入式软件系统程序的开发方法,其特征在于步骤S2所述生成目标软件系统程序所需要的源代码包括如下步骤;S21确定场景之间的关系;S22依据场景内的输入/输出行为,得出功能模块;S23对视点内的参数池的参数进行定义;S24编码、调试和生成所需要的源代码。4根据权利要求1所述嵌入式软件系统程序的开发方法,其特征在于步骤S3包括如下步骤S31编译行为描述语言文本和目标软件系统程序,建立行为描述语言文本和目标软件系统程序的元素表,为元素对应做准备;S32对行为描述语言文本元素。

6、表中的行为和操作数据与目标软件系统程序元素表中的符号,包括函数、常量和变量进行人工对应;S33参照建立的对应关系从目标软件系统程序对应的中间语言中提取程序模型,而行为描述语言模型由行为描述语言直接生成;权利要求书CN104216703A2/2页3S34将行为描述语言模型和程序模型输入到模型比较检测工具中进行检测,得到检测结果;S35对检测结果进行分析并查找可能存在的问题及其原因;S36如果存在问题,则对行为描述语言或目标软件系统程序进行修改以修复问题;S37重复步骤S31至S36。权利要求书CN104216703A1/9页4嵌入式软件系统程序的开发方法技术领域0001本本发明属于软件开发技术和。

7、工具领域,特别是涉及一种嵌入式软件系统程序的开发方法。背景技术0002传统的嵌入式软件系统程序开发工作存在许多不足之处,主要表现在如下几个方面00031高层次的系统需求分析阶段易与软件实现阶段之间脱节。通常,根据用户需求建立的需求规格说明和需求模型是软件实现的依据和规范,但在实际的软件实现过程中由于用户需求的易变性和频繁的程序改动,使得最终的源程序与最初的需求规格说明和需求模型会产生不一致或矛盾,如果不及时修改最初的的需求规格说明和需求模型,这将导致系统文档间的不一致,使得花费了许多精力和成本建立的需求规格说明和需求模型不能发挥应有的作用。00042由于上述的脱节,也导致在系统需求分析阶段对需。

8、求模型的检测与软件实现阶段对源程序的测试工作脱节,导致需花费很多精力和成本来重复设计测试用例。00053缺乏完善的指导面向嵌入式软件系统开发的框架和有效的支持从需求到源程序的嵌入式软件开发的方法和技术。发明内容0006本发明的目的在于为克服现有技术的缺陷,而提供一种嵌入式软件系统程序的开发方法。0007为实现上述目的,本发明采用以下技术方案一种嵌入式软件系统程序的开发方法,包括以下步骤0008S1根据嵌入式软件系统程序的需求分析建立待开发嵌入式系统程序的需求模型;0009S2对步骤S1所述需求模型进行分析和检测,同时生成目标软件系统程序所需要的源代码,进而生成目标软件系统程序;0010S3对目。

9、标软件系统程序进行程序分析得出程序模型,将程序模型和需求模型进行比较分析以发现差异性,如发现差异性则对生成的目标软件系统程序或需求模型进行修复;0011其中步骤S1所述需求模型的建立包括如下步骤0012S11划分子问题域、标识视点,根据自然语言描述的需求,建立相应的场景信息;0013S12根据场景信息抽取与行为相关的信息,并利用行为描述语言描述行为相关的信息,建立行为表达式;0014S13建立行为描述语言模型,作为检验需求模型的各种特性的基础;0015S14利用模型检验方法检测需求模型的一致性及需求模型所对应的系统需要检测说明书CN104216703A2/9页5的可信特性,如发现差异对需求模型。

10、进行修复。0016进一步,步骤S14所述对需求模型的分析和检测包括如下步骤0017S141视点建模,生成视点行为模型;0018S142检查视点行为模型内的行为表达合法性、输入/输出行为的一致性和行为连续性;0019S143修改视点行为模型,直到每个视点都满足行为表达合法性、输入/输出行为的一致性和行为连续性要求;0020S144根据视点的相关关系检测视点行为模型间的一致性;0021S145修改视点行为模型,直到所有相关视点行为模型间一致;0022S146合并视点行为模型,得到系统行为模型;0023S147检测系统行为模型的行为有效性;0024S148检测系统行为模型的系统安全特性。0025进一。

11、步,步骤S2所述生成目标软件系统程序所需要的源代码包括如下步骤;0026S21确定场景之间的关系;0027S22依据场景内的输入/输出行为,得出功能模块;0028S23对视点内的参数池的参数进行定义;0029S24编码、调试和生成所需要的源代码。0030进一步,步骤S3包括如下步骤0031S31编译行为描述语言文本和目标软件系统程序,建立行为描述语言文本和目标软件系统程序的元素表,为元素对应做准备;0032S32对行为描述语言文本元素表中的行为和操作数据与目标软件系统程序元素表中的符号,包括函数、常量和变量进行人工对应;0033S33参照建立的对应关系从目标软件系统程序对应的中间语言中提取程序。

12、模型,而行为描述语言模型由行为描述语言直接生成。0034S34将行为描述语言模型和程序模型输入到模型比较检测工具中进行检测,得到检测结果;0035S35对检测结果进行分析并查找可能存在的问题及其原因;0036S36如果存在问题,则对行为描述语言或目标软件系统程序进行修改以修复问题;0037S37重复步骤S31至S36。0038本发明与现有技术相比的有益效果是1针对嵌入式软件系统程序的特点,本方法使用场景和视点技术,提供适合于嵌入式软件系统程序的需求建模技术方案,并且通过划分子问题域,进一步降低嵌入式系统需求建模难度。将用户使用自然语言表达的需求转化为场景及行为表达式,从而能实现从自然语言到半形。

13、式化,最终到形式化的需求描述,为自动检测软件系统的需求是否正确和完整奠定了良好的基础。00392通过形式化的模型验证,从语法正确性证明开始对整个需求模型进行验证,同时软件系统的特性如可信特性也是通过软件行为来验证的。00403需求模型到源代码的转换可以自动化的完成,极大的提高了效率,并通过对生成的目标软件系统和需求模型进行比较分析所发现的差异性进行修复步骤最终得到目标说明书CN104216703A3/9页6程序代码。00414本方法所提供的面向代码的逆向分析过程从源代码自动出发,跟需求模型进行比较,最终得到目标源代码是否和需求模型一致的结论,来判断目标软件系统程序的正确性。00425本方法有利。

14、于从形式化的角度建立和检测软件需求模型,进而转换得到目标软件系统程序的源代码,提高软件的生产效率和正确性。0043下面结合附图和具体实施例对本发明作进一步描述。附图说明0044图1为本发明的流程图;0045图2为本发明的需求建模和对其分析检测的流程图;0046图3为本发明验证行为有效性的原理图;0047图4为本发明需求模型当中参数池定义的转换对应图;0048图5为本发明源代码的编码、调试和源码生成步骤图;0049图6为本发明程序模型和需求模型比较检测的流程图;图7为本发明无线传感器仿真工作流程图。具体实施方式0050为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍。

15、和说明。0051如图1所示,为本发明的流程图,一种嵌入式软件系统的开发方法,具体实施时可以采用计算机实现以下流程的自动运行0052步骤S1根据嵌入式软件系统程序的需求分析建立待开发嵌入式系统程序的需求模型;0053步骤S2对步骤S1所述需求模型进行分析和检测,同时生成目标软件系统程序所需要的源代码,进而生成目标软件系统程序;0054步骤S3将目标软件系统程序进行程序分析得出程序模型,将程序模型和需求模型进行比较分析以发现差异性,如发现差异性则对生成的目标软件系统程序或需求模型进行修复;0055步骤S1中需求模型的建立包括如下步骤0056步骤S11划分子问题域、标识视点,根据自然语言描述的需求,。

16、建立相应的场景信息;0057步骤S12根据场景信息抽取与行为相关的信息,并利用行为描述语言描述行为相关的信息,建立行为表达式;0058步骤S13建立行为描述语言模型,作为检验需求模型的各种特性的基础;0059步骤S14利用模型检验方法检验需求模型的一致性及需求模型所对应的系统需要检测的可信特性,如发现差异对需求模型进行修复。0060上述过程可以将系统的需求与该系统的行为有机地结合起来,从而可通过行为来描述和检验待开发的嵌入式软件系统程序的需求和行为各种可信特性,具体说明如下0061划分子问题域说明书CN104216703A4/9页70062对于嵌入式软件系统,由于其对应的问题域繁多,所以在需求。

17、分析的开始就需要将其分解为多个子问题域,然后根据每个子问题域施行需求分析。值得注意的是,问题域的划分方法应根据问题域的逻辑特性和问题域内部各成分间的逻辑关系进行。0063标识视点0064根据相应的子问题域,从中找出所有的视点源及其关注点,并将它们标识为视点,然后建立视点模板以及在该模板中填写部分视点信息。0065描述需求0066从每个视点源获取相关的需求信息,经过分析整理,以自然语言的形式填入视点模板的“需求描述”视点项中。0067建立场景0068一个场景也称作脚本是可以被行为者感受到的系统的一个完整的功能。场景的描述主要用自然语言,而且根据已获取的所有的有效行为并按它们的执行顺序构成有序的行。

18、为系列,从而构建出每一个场景。0069使用行为描述语言建立行为表达式0070根据场景信息抽取与行为相关的信息,并利用行为描述语言描述行为相关的信息,建立行为表达式。使用行为描述语言BDL来描述每个场景信息,并用行为表达式来表示场景中的内容,在描述过程中可以采用逐步细化的方式来描述一个场景的行为模型,与所有场景对应的多个行为表达式就构成系统的行为模型或需求模型,需求建模的流程图如图2所示。0071本发明还提供了在此步骤形成的行为描述语言的需求模型实施例以供参考0072该步骤中不采用自然语言,主要利用行为描述语言BDL,BEHAVIORSDESCRIPTIONLANGUAGE表达行为模型。本发明采。

19、用行为描述语言这种形式化语言作为描述手段之一,其主要用于严格地描述待开发软件系统的行为模型,可以为以后自动检验待开发软件系统的各种特性奠定良好的基础。行为描述语言对行为、场景到视点的描述表达都给出了严格的表现形式,即设某个场景中包含N个有效行为,描述所得N个原子行为表达为0073原子行为标识1原子行为定义1;0074原子行为标识2原子行为定义2;00750076原子行为标识N原子行为定义N;0077场景行为表达式场景中所有的N个原子行为及其原子行为间的关系;0078视点行为表达式视点中所有场景行为表达式及其场景间的关系。0079具体实施时,按照这种确定的行为描述语言语法,计算机可以自动完成从自。

20、然语言描述的需求到建立初始系统需求模型的全过程,然后通过修改和检测最终形成正确的系统需求模型。0080为了便于管理,本发明进一步提供了模型表达方式系统行为模型可以表示为MV,R0,R1,R2,其中V表示与待开发软件系统相关的视点的集合,且V中每个视点对应一个视点行为模型,R0、R1、R2分别表示V中视点间的重叠、顺序和无关关系;视点行为模型表示为M1B,IF,|,;,其中B表示视点内所有场景行为表达式的集合。,IF,|,;分别表示B中场景间的非确定、确定选择、并行和顺序关系。这种形式化表示,可以保证视说明书CN104216703A5/9页8点行为模型和系统行为模型在表达方面的正确性,以及防止视。

21、点间需求信息可能会发生重叠从而导致行为模型间出现行为冲突和不一致。0081本发明还提供了实施例在此步骤形成的行为描述语言文本以供参考0082令ABEHID为原子行为标识,BEHID为行为标识。00831原子行为00841原子行为表达式0085ABEHIDFSUB,OBJ0086WHEN前置条件0087INFROMIDU1,UN0088OUTTOIDV1,VM0089其中F为主体SUB施用于客体OBJ的服务、操作或动作。WHEN,INFROM和OUTTO分别为行为执行的前置条件,行为的输入和输出。00902空动作ABEHIDIDEL00913复合行为结束动作ABEHIDRETURNABEHID或。

22、RETURN0092其中RETURN表示正常退出系统。00932简单行为|ABEHID;原子行为构成简单行为00943复合行为00951顺序行为A0096B00972未确定选择行为00983确定选择行为00994并行行为01004系统行为模型的结构如下0101系统名0102视点ID1的行为模型;01030104视点IDN的行为模型。01055视点行为模型的结构如下0106视点ID0107说明书CN104216703A6/9页9010801096场景行为模型的结构如下01100111步骤S14需求模型的检测包括如下步骤0112S141视点建模,生成视点行为模型;0113S142检查视点行为模型内。

23、的行为表达合法性、输入/输出行为的一致性和行为连续性;说明书CN104216703A7/9页100114S143修改视点行为模型,直到每个视点都满足行为表达合法性、输入/输出行为的一致性和行为连续性要求;0115S144根据视点的相关关系检测视点行为模型间的一致性;0116S145修改视点行为模型,直到所有相关视点行为模型间一致;0117S146合并视点行为模型,得到系统行为模型;0118S147检测系统行为模型的行为有效性;0119S148检测系统行为模型的系统安全特性。0120需求模型的检测是保证需求模型可信性的必要阶段,在这一阶段要对需求模型本身的一致性即视点间的一致性,以及所需要检测的。

24、系统可信特性进行检测。在需求建模过程中,各视点虽然是相对独立的,但不同视点间的需求信息可能会发生重叠。因此,由不同视点产生的需求模型间会产生重叠和差异,从而可能会导致需求模型间出现需求冲突和不一致。此外,有些视点可能使用不同的需求建模方法和技术构建需求模型,更增加了视点间容易发生需求冲突和不一致的可能性。因此,在形成最终需求规约之前,必须检测和处理视点间存在的需求冲突和不一致问题,以保需求的正确性和一致性。视点检测主要包括三部分,即语法检查、语义检查和系统特性检测。其中,而前两项检查需要分别在视点内及视点间进行,系统特性检测主要利用行为时序逻辑系统检查系统的特性。0121如前所述,需要检测的内。

25、容分为三个方面的内容,其中语法方面的检测内容为行为表达合法性、含输入/出行为的一致性和行为连续性;语义方面的检测内容为视点间行为一致性;系统特性方面的检测内容为行为有效性和行为信息安全性等,其它系统特性视具体系统而定。0122行为表达合法性0123行为表达合法性是指一个行为表达式能满足行为描述语言的语法。给定一个视点的行为模型或行为表达式集合,称其表达是合法的,如果该行为模型或行为表达式集合中所有的行为表达式能满足行为描述语言的语法。0124含输入/出行为的一致性0125含输入/出行为的一致性分为视点内的与视点间的含输入/出行为的一致性,包括视点内含输入/出行为的一致性;视点间含输入/出行为的。

26、一致性;行为连续性或称行为完整性。0126行为有效性0127行为有效性表示一个行为模型总能够按照预期的方式运行,这里指的预期的方式就是一组行为踪迹的集合,也可以用时序逻辑公式表示。0128如果行为模型M能够满足所有预期的运行踪迹,时序逻辑公式成立,则称一个行为模型M是有效的,行为有效性检测的流程如图3所示。0129步骤S2在从需求模型到源代码生成的过程中,首先需确定某一特定的过程语言如C语言来作为目标语言,然后根据需求模型建立软件的体系结构和各个软件功能模块,并依据划分的各软件功能模块,通过提供的开发平台编写各软件功能模块的源代码,最后生成对应需求模型的程序代码,具体实现过程如下0130步骤S。

27、21确定场景之间的关系0131场景间的关系可能存在扩展、调用、层次、并行、顺序。通过分析场景之间的关系说明书CN104216703A108/9页11可以初步确定嵌入式软件系统的大致体系结构和部分模块间的关系,以及在未来对功能模块的复用起到重要的作用。0132步骤S22依据景内的输入/输出行为,得出功能模块0133在确定了场景之间的关系以后,需要根据实际的场景内部的输入/输出行为来判断场景内部的功能模块,一个场景行为模型的结构如前所述,其中,根据场景内的输入/输出行为,分析场景内部的可能存在的公用功能模块,如在一个全自动的智能洗衣机嵌入式环境当中,只要是对衣服进行清洗的进程,无论衣物本身是何种面。

28、料,是轻柔洗涤或是强力洗涤,设定的行为流程当中必然都存在漂洗这个过程。0134通过研究场景内的输入/输出行为,可以得到需要的最小的功能模块。这个最小的功能模块可以方便在其他的功能模块当中进行调用。0135步骤S23对视点内的参数池的参数进行定义0136面向嵌入式的软件系统的开发,在某种程度上面,就是对功能函数的实现,变量的声明非常重要。在嵌入式的软件系统中,不同的变量出现在每个函数当中,全局变量、局部变量、宏定义常量,同时对于变量的类型定义也是比较困难的。0137在需求建模的过程当中,建模方法提供了一个参数池的概念。一个原子行为实际上就是主体对客体实施的一个操作,这个操作可以传递一些输入/出参。

29、数。提取参数池当中所有的参数,区分参数在程序当中实际对应的全局变量或者是局部变量,在对参数的对应过程当中,同时对以参数命名的变量的数据类型进行定义。0138本发明提出的开发方法提供一种机制,在当模块编码的时候如果出现未在参数池出现的局部变量的时候,允许用户随时对这样的局部变量进行定义,需求模型当中参数池定义的转换对应如图4所示。0139步骤S24编码、调试和源码生成0140用户在完成了场景对应的体系结构设计以后,可以根据确定的功能模块进行编码工作,然后在提供的调试器中调试生成的代码,检查代码的正确性后可进入测试阶段。形成最终嵌入式软件系统,源代码的编码、调试和源码生成步骤如图5所示。0141步。

30、骤S3程序模型和需求模型分析比较包括如下步骤0142步骤S31编译行为描述语言文本和目标软件系统程序,建立行为描述语言文本和目标软件系统程序的元素表,为元素对应做准备;0143步骤S32对行为描述语言文本元素表中的行为和操作数据与目标软件系统程序元素表中的符号,包括函数、常量和变量进行人工对应;0144步骤S33参照建立的对应关系从目标软件系统程序对应的中间语言中提取程序模型,而行为描述语言模型由行为描述语言直接生成;0145步骤S34将行为描述语言模型和程序模型输入到模型比较检测工具中进行检测,得到检测结果;0146步骤S35对检测结果进行分析并查找可能存在的问题及其原因;0147步骤S36。

31、如果存在问题,则对行为描述语言或目标软件系统程序进行修改以修复问题;0148步骤S37重复步骤S31至S36,直至所有的问题都获得解决。如图6所示,步骤S31、S35是需要人工参与的两个步骤,在这两个步骤中人工工作将会对方法的应用效果产说明书CN104216703A119/9页12生影响。0149本发明应用广泛,为了便于本领域技术人员更清晰地理解本发明技术方案,在此选择一个具体实施例进行详细说明需求模型到目标源代码的转换。0150本具体实施例以工厂生产线上的机器人为例,从整个系统的抽象层面上来实现基于无线传感器网络在实际生产和生活当中的应用。图7当中存在两类无线传感器,这两类无线传感器主要是作。

32、用上存在不同SENSORA被设置在零件传输带上,根据传输带上的当前物体的大小来判断当前零件传输带上零件的类型,并将结果传递给生产线上的装配机器人;SENSORB被设置在成品传输带上,判断当前的成品传输带上有没有空位,当机器人装配完成以后,允许机器人将成品放在成品传输带上的空位上。图7是对该过程的仿真需求模型的可视化,仿真可以帮助用户进一步去确定需求是否正确表达了他们的需要。SENSORA和SENSORB将信号传递给机器人,装配机器人根据传递的参数值判断如何去驱动运行。文本A是机器人装配场景的BDL模型,描述了机器人根据无线传感器的信号,抓取零件A和零件B的过程。文本B是参考BDL得到的一个C语言程序的源代码片段。01510152以上所述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。说明书CN104216703A121/4页13图1图2说明书附图CN104216703A132/4页14图3图4图5说明书附图CN104216703A143/4页15图6说明书附图CN104216703A154/4页16图7说明书附图CN104216703A16。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1