基于动态数据流图的航天器软件构件需求分析及建模方法与流程

文档序号:32487833发布日期:2022-12-10 01:43阅读:75来源:国知局
基于动态数据流图的航天器软件构件需求分析及建模方法与流程

1.本发明涉及航天器综合电子技术领域,具体涉及基于动态数据流图的航天器软件构件需求分析及建模方法。


背景技术:

2.传统航天器在进行航天器软件设计时,一般是采用静态的数据流分析方法进行需求分析,然后依据需求分析结果进行概要设计和详细设计。上述方法有如下不足:
3.1)新型航天器应用大量国际先进标准如空间数据系统咨询委员会(ccsds)标准时,系统较为复杂,数据流路径较多,传统静态的数据流图难以描述清楚软件构件内部或者软件构件之间的关系。
4.2)难以支持构件内部处理过程以及构件之间信息流的仿真。
5.目前尚未有技术方案能够解决以上问题。


技术实现要素:

6.有鉴于此,本发明提供了基于动态数据流图的航天器软件构件需求分析及建模方法,解决了传统数据流图难以表达复杂航天器系统构件内部模块以及构件之间的数据传递关系问题。
7.为达到上述目的,本发明提供的基于动态数据流图的航天器软件构件需求分析及建模方法,包括如下步骤:
8.针对航天器软件中的数据,构建动态的数据流图。
9.对动态的数据流图进行构件需求分析,获得数据流图中的构件。
10.针对数据流图中的构件进行构件概要设计。
11.依据构件概要设计,对构件建立构件模型,构件模型用于在后续有工具支持后,进行可视化组装过程中的构件验证。
12.进一步地,针对航天器软件中的数据,构建动态的数据流图,包括如下内容:
13.step(1)针对航天器软件中的数据,依据常规数据流图的构建方法,结合数据的数据处理过程、数据存储、数据流向、数据表示方法构建初始数据流图;
14.step(2)在初始数据流图中增加用带步骤序号1,2,3

的执行步骤箭头。
15.step(3)在增加了执行步骤箭头的初始数据流图中,增加步骤执行的地址标识,s表示步骤在源端执行,d表示步骤在目的端执行。
16.step(4)在对初始数据流图的文字描述中,对于每个原语,依据步骤分别描述其前台处理过程,并按步骤描述软件后台执行过程;
17.step(5)对于初始数据流图中的每个处理过程,按照输入、处理、输出分别进行描述,获得动态的数据流图。
18.进一步地,针对数据流图中的构件进行构件概要设计,具体包括如下步骤:
19.将动态的数据流图中对应的处理过程转化为软件模块。
20.将动态的数据流图中的数据存储转化为构件内部的数据结构。
21.将动态的数据流图中的构件对外提供的原语以及需要其它构件提供的原语,转化为构件对外提供的接口以及所需接口。
22.进一步地,依据构件概要设计,对构件建立构件模型,所建立的构件模型至少包含三个侧面:构件接口侧面、路径侧面以及性能侧面。
23.进一步地,构件接口侧面,用于描述构件的对外接口以及可配置的参数;构件的接口侧面包含三类接口,分别为构件配置及初始化接口、构件对外提供接口以及构件需要的外部接口;
24.路径侧面,每一层的构件一般对上层提供接口,同时需要下层的接口进行数据的投递,为每个构件建立路径侧面后,构件模型以数据为驱动,根据输入数据进行路径选择,通过不同的接口传输数据;系统通过构件模型搭建后,通过系统的任意一个接口输入数据并仿真运行,得到该数据在系统各设备间,以及设备内部各构件间的数据流。
25.性能侧面,用于验证系统采用构件组装后,由于数据在多个构件甚至多个设备中进行传递,数据在系统中的整体处理时间等性能是否满足要求。
26.有益效果:
27.1)本发明提供的基于动态数据流图的航天器软件构件需求分析及建模方法,支持对软件构件进行动态数据流分析,便于开发人员直观的了解软件构件在不同输入条件下的信息流路径,以及复杂系统不同构件之间的接口和信息流关系。基于此种数据流图,可以在需求阶段通过测试用例的设计对数据流图的正确性进行验证。不仅可以表示常规数据流图中描述的静态处理关系,还可表示在源端和目的端软件的动态执行和交互过程。
28.2)本发明提供的基于动态数据流图的航天器软件构件需求分析及建模方法,通过构件模型侧面的建立,后续基于软件可视化组装与仿真验证工具,可以在从构件库中选择构件后,对构件的正确性以及适应性进行验证,解决前面所提的构件验证问题,使基于软件构件的可视化组装成为可能。
29.3)本发明提供了基于动态数据流图的航天器软件构件需求分析及建模方法,支持软件的构件化设计,提高软件的重用性。
附图说明
30.图1是传输层的构件动态数据流示意图;
31.图2是软件构件接口设计图。
具体实施方式
32.下面结合附图并举实施例,对本发明进行详细描述。
33.本发明提供了一种基于动态数据流分析的航天器软件构件设计方法,该方法用于设计航天器软件构件。以星载空间包协议构件设计为例,包括如下步骤:
34.步骤1、构件需求分析
35.通过动态的数据流图(通用方法)进行构件需求分析,该数据流图的主要规则为:
36.(1)数据处理过程、数据存储、数据流向、数据表示方法与常规数据流图一致;
37.(2)在图中增加用带步骤序号1,2,3

的粗线箭头,表示执行步骤;
38.(3)在图中增加步骤执行的地址标识,s表示步骤在源端执行,d表示步骤在目的端执行;
39.(4)在对数据流图的文字描述中,对于每个原语,依据步骤分别描述其前台处理过程,并在必要时按步骤描述软件后台执行过程;
40.(5)对于数据流图中的每个处理过程,按照输入、处理、输出分别进行描述。
41.以软件体系架构中的传输层空间包协议构件为例,其数据流图如图1所示。
42.图中(1s)、(2s)、(3s)为用户通过空间包的packet.request原语发送一个空间包到底层的步骤,其描述如下(出于篇幅考虑,此处略去了一些算法、参数以及处理过程的细节):
43.源端前台执行过程:
44.(1s)空间包发送接口接受上层用户调用,传入空间包路由输出处理。
45.(2s)空间包路由输出处理查询路由表得到路由信息,并将空间包连同路由信息传递到包输出,若包输出失败且次数不超过最大次数则将数据放入输出包队列。
46.(3s)包输出调用低层的子网包业务原语发送数据。
47.源端后台执行过程:
48.(4s)空间包路由后台任务周期性从输出包队列中取出选中的数据单元,提交给空间包路由输出。
49.packet.indication为目的端的处理过程,也可采用类似的方法进行描述。
50.目的端前台执行过程:
51.(5d)空间包接收接口从子网包业务数据投递接口获取空间包。
52.(6d)空间包接收接口将空间包投递到空间包路由输出。
53.(7d)空间包路由输出接口处理与(2s)相同。
54.(8d)包输出通过packet.indication将数据投递到上层。
55.通过对每个原语或接口进行上述动态数据流图分析并进行迭代后,可形成整个构件的完整数据流图。然后再根据文字描述中对于每个数据的处理过程,构建测试用例,并按照数据流图的执行步骤进行测试用例推演,验证各处理之间的接口是否匹配以及有无遗漏。
56.上述过程既为后续概要设计提供了输入,也使得基于构件的系统数据流仿真以及构件验证成为可能。
57.步骤2、构件概要设计
58.基于构件需求分析的结果,在构件概要设计过程中的主要步骤包括:
59.(1)将构件动态数据流图中对应的处理过程转化为软件模块;
60.(2)将构件动态数据流图中的数据存储转化为构件内部的数据结构;
61.(3)将构件动态数据流中构件对外提供的原语以及需要其它构件提供的原语转化为构件对外提供的接口以及所需接口。
62.上述步骤完成后,构件的概要设计也基本完成。但前面提到构件的正确性以及在系统中的适应性问题需要解决。为此,可对构件建立模型,便于在后续有工具支持后,进行可视化组装过程中的构件验证。构件模型至少包含三个侧面;
63.(1)构件接口侧面
64.用于描述构件的对外接口以及可配置的参数。构件的接口侧面主要包含三类接口,分别为构件配置及初始化接口、构件对外提供接口以及构件需要的外部接口,如图2所示:
65.构件开发采用了许多面向对象的思想,如类、对象、封装与信息隐藏等,但由于航天器软件目前大多采用非面向对象的c语言开发,因此需要针对c语言进行构件接口的特殊设计。此处采用的方法是用结构体将数据以及接口进行封装,每个业务或协议的构件都具有一个主结构体,类似于面向对象语言c++的类,在实际使用时创建该类型的一个或多个变量进行实例化。接口采用函数指针的形式放入结构体中,并在构件初始化时将其与具体的函数进行挂接。
66.(2)路径侧面
67.每一层的构件一般对上层提供接口,同时需要下层的接口进行数据的投递,为每个构件建立路径侧面后,构件模型可以数据为驱动,根据输入数据进行路径选择,通过不同的接口传输数据。系统通过构件模型搭建后,可以通过系统的任意一个接口输入数据并仿真运行,得到该数据在系统各设备间,以及设备内部各构件间的数据流。
68.构件路径侧面的模型可采用多种形式进行表示,一种简化的形式是根据构件的输入参数,按照一定的算法进行选择。例如某个输入参数x为链路标识,用伪代码表示的选择算法如下。
69.switch(x)
70.case 1:
71.通过输出接口1输出
72.case 2:
73.通过输出接口2输出
74.default:
75.通过输入接口3输出
76.(3)性能侧面
77.该侧面主要是为了验证系统采用构件组装后,由于数据在多个构件甚至多个设备中进行传递,数据在系统中的整体处理时间等性能是否满足要求。
78.该侧面的具体模型可以基于前面的路径模型,采用对每一条路径设计延时参数的方式,该延时参数既可以采用默认的常量表示,也可采用一定的算法表示。采用算法表示时可以根据输入条件的不同进行更为精确的表示。当系统仿真运行时,数据经过的所有路径延时之和即为数据的处理及转发延时。通过性能侧面的设计,可以通过多种测试用例,测试系统在各种不同输入条件下以及不同构件组装结构下的时间性能。
79.步骤3、构件详细设计
80.在构件详细设计阶段,主要针对构件概要设计过程中形成的模块进行算法和流程设计。采用伪代码方式进行设计,此为通用做法,不再赘述。
81.综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1