SCADE Display(OpenGL)软件设计文档生成工具的设计考虑
2018年6月
1 引言
本文档描述在SCADE Display软件设计文档生成工具(以下简称为SDYSDDGEN)的设计过程中考虑到的一些问题及其解决方案。
2 目标
SDYSDDGEN的目标设定为:
- 生成SCADE Display软件模型的软件设计文档(以下简称为SDYSDD)
- SDYSDD要符合DO-178B/C或GJB438B对软件设计文档的要求
- SDYSDD要符合用户单位的软件设计文档模板的要求
- SDYSDD使用中文或英文
- SDYSDD的文件格式是MS OFFICE的word或excel
- SDYSDD易于导入到DOORS
3 术语
SCADE Display的官方工具SDYReporter生成的文档使用表1中的术语。
表1
术语 | 定义 |
SGFX file | A file that corresponds to a display specification. |
OGFX file | A file describing a part of a display specification and that can be used as a reference object. |
layer | A layer is composed of a set of objects and has a transparent background. Superimposing layers allows to display complex images. |
object | |
primitive | A basic figure component (a point, a line segment, a polygon, an arc, etc.) defined by vertices. |
SDYSDD的英文版也使用表1术语,但primitive不再被称为object,即从object中分出primitive。
SDYSDD的中文版使用表2术语。
表2
术语 | 定义 |
SGFX文件 | 与表1相同。 |
OGFX文件 | 与表1相同。 |
图层 | 与layer相同。 |
图件 | 图组件,与表1的object对应。 |
图元 | 基础图组件,与表1的primitive对应,但不被称为图件。 |
4 文件结构
SCADE Display软件模型用以下文件表达:
- 1个SGFX文件
- 0到N个OGFX文件
SDYReporter每次生成的文档只能对应一个SGFX文件或一个OGFX文件。
实际工程中一个子系统(如座舱显示系统中的PFD)对应一个SCADE Display项目(project),该项目一般由一个SGFX文件和多个OGFX文件组成。工程的项目开发计划一般要求编制一份软件设计文档。
SDYSDD允许针对一个SCADE Display项目生成一份软件设计文档,即包括SGFX文件和所有相关的OGFX文件。
5 层次结构
SGFX文件的层次结构如图1所示。
图1
OGFX文件的层次结构如图2所示。
图2
与SGFX文件相比,OGFX文件没有图层。但SDYReporter生成的文档仍有一个图层。
SDYSDD不包含这个虚拟的图层。
SDYReporter生成的层次结构图示不包含primitive。如果一个图层中只有primitive,文档中出现以下语句:
No hierarchy object defined.
SDYSDD的层次结构图示也不包含图元,否则图示太大。
6 标识符
GJB438B规定:“应赋予每个软件设计单元一个项目唯一的标识符”。一些实际工程中也在软件设计标准制定了相关的准则。
对于同一个图组件,SDYReporter使用了三种标识符,例如:
- ADI_masked_parts
- 1.1.1.ADI_masked_parts
- symbology_layer/PFD/ADI/ADI_masked_parts
上例中用户定义的是第一种标识符,SDYReporter派生了后两种标识符,这样不能满足项目唯一的要求。
SDYSDD有以下两种选项:
- SDYSDD直接使用用户在建模时定义的标识符,不加任何前缀。
SDYSDD对用户定义的标识符增加表达层次编号的前缀。例如,前例中的ADI_masked_parts改为1-1-1-ADI_masked_parts。
7 接口设计
SDYReporter生成的文档中有题为“Layer Variable Dictionary”的章节描述图层的变量字典。其中包含以下5个小节:
- Constants
- Inputs
- Outputs
- Locals
- Local constants
根据DO-178B和GJB438B对接口设计的规定,SDYSDD设置了题为“接口设计”的章节,其层次结构如下:
- SGFX接口(或称为外部接口)
- 图层XXX的接口
- 输入变量
- 输出变量
- ……
- 图层XXX的接口
- OGFX接口(或称为内部接口)
- OGFX-XXX的接口
- 输入变量
- 输出变量
- ……
- OGFX-XXX的接口
SDYSDD处理Constants、Locals、Local constants的方法待定。
SDYReporter生成的变量特性表中的一项特性称为“Value”。SDYSDD 把它改为“Init value”。
8 详细设计
8.1 图构件的设计说明
SDYReporter用表格描述图构件的设计说明。例如:
上例在SDYSDD中的描述如下:
与SDYReporter相比,SDYSDD的特色是:
- 每个图构件的设计说明是一个单独的章节;
- 用需求标识符(格式可由用户指定,例如:[SDD-1])指明需求描述;
- 使用关键词“应”(英文版用shall)指明表格是图构件的需求规格;
- Property的名称与SFGX/OGFX文件一致(例如,用Rotate angle而不是Angle);
- 增加SDYReporter未列出的属性(例如Static properties和Static init);
- 指明图构件的图像是参考而不是需求。
8.2 图像
SDYReporter生成的图构件的图像是孤立的,未体现它在图层中的方位。例如:
SDYSDD中的对应图像是:
8.3 图构件的属性值
SDYReporter生成的属性值有时与SFGX/OGFX文件不一致。例如:
而在SFGX文件中的值是:
在未搞清差别原因之前,SDYDDGEN采用SFGX文件中的值。
8.4 SFGX文件中图构件属性的不确定性
SDYReporter把图构件分为不同类型(type)。我们从实例中看到有以下类型:
- Line、text、arc等图元
- 各种container
每一个类型的属性个数在SDYReporter生成的表格中似乎是固定的。但是,在SFGX文件中某些属性不是固定出现的。例如,类型为shape的表格中最后一项是Tessellate concave primitive,中间还有一项是Halo color。而在SDY示例PrimaryFlightDisplay.sgfx中没有这两项。如果通过SDY界面把Tessellate改为True:
那么在PrimaryFlightDisplay.sgfx中就出现了这两项:
而且在其他类型(如rectangle)中也出现了这两项。
如果是新建的SDY R16工程,SGFX文件中的shape、rectangle等必定有这两项。由此可见:
- PrimaryFlightDisplay.sgfx来源于老版本
- SDY R16允许shape、rectangle等图构件包含或不包含haloColor和tessellate这两项属性
由于SDY的手册中既没有列出所有类型,也没有列出每种类型的所有属性,SDYSDDGEN只能依据特定的SFGX文件生成属性规格表。
8.5 Plugs expression的n/a
SDYReporter生成的表格第三列是Plugs expression,对于某些属性该列的值是n/a。这实际是SDY的使用规则规定的,即SDY规定某些属性不能有Plugs expression。
由于这不是用户设计可选的内容,SDYSDDGEN不对Plugs expression生成n/a。
8.6 图件的子辈列表
SDYSDDGEN象SDYReporter一样列出图件的子辈列表。目前把它作为注释。例如:
待定问题:(1)是否要把图件的子辈列表作为需求?(2)如果作为需求,是否要移到架构设计章节?
9 环境参数表
SDYReporter生成的文档中有以下5张表描述环境参数:
- Color table
- Texture table
- Line width table
- Line stipple table
- Font table
实际工程中,这些参数一般在系统设计时确定环境参数。例如,座舱显示系统中的所有分系统使用系统选定的环境参数表。因此,SDYSDD中不包含这5张表。也可由用户选择是否包含。