SCADE Display(OpenGL)软件设计文档生成工具的设计考虑
2018年6月
本文档描述在SCADE Display软件设计文档生成工具(以下简称为SDYSDDGEN)的设计过程中考虑到的一些问题及其解决方案。
SDYSDDGEN的目标设定为:
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对应,但不被称为图件。 |
SCADE Display软件模型用以下文件表达:
SDYReporter每次生成的文档只能对应一个SGFX文件或一个OGFX文件。
实际工程中一个子系统(如座舱显示系统中的PFD)对应一个SCADE Display项目(project),该项目一般由一个SGFX文件和多个OGFX文件组成。工程的项目开发计划一般要求编制一份软件设计文档。
SDYSDD允许针对一个SCADE Display项目生成一份软件设计文档,即包括SGFX文件和所有相关的OGFX文件。
SGFX文件的层次结构如图1所示。
图1
OGFX文件的层次结构如图2所示。
图2
与SGFX文件相比,OGFX文件没有图层。但SDYReporter生成的文档仍有一个图层。
SDYSDD不包含这个虚拟的图层。
SDYReporter生成的层次结构图示不包含primitive。如果一个图层中只有primitive,文档中出现以下语句:
No hierarchy object defined.
SDYSDD的层次结构图示也不包含图元,否则图示太大。
GJB438B规定:“应赋予每个软件设计单元一个项目唯一的标识符”。一些实际工程中也在软件设计标准制定了相关的准则。
对于同一个图组件,SDYReporter使用了三种标识符,例如:
上例中用户定义的是第一种标识符,SDYReporter派生了后两种标识符,这样不能满足项目唯一的要求。
SDYSDD有以下两种选项:
SDYSDD对用户定义的标识符增加表达层次编号的前缀。例如,前例中的ADI_masked_parts改为1-1-1-ADI_masked_parts。
SDYReporter生成的文档中有题为“Layer Variable Dictionary”的章节描述图层的变量字典。其中包含以下5个小节:
根据DO-178B和GJB438B对接口设计的规定,SDYSDD设置了题为“接口设计”的章节,其层次结构如下:
SDYSDD处理Constants、Locals、Local constants的方法待定。
SDYReporter生成的变量特性表中的一项特性称为“Value”。SDYSDD 把它改为“Init value”。
SDYReporter用表格描述图构件的设计说明。例如:
上例在SDYSDD中的描述如下:
与SDYReporter相比,SDYSDD的特色是:
SDYReporter生成的图构件的图像是孤立的,未体现它在图层中的方位。例如:
SDYSDD中的对应图像是:
SDYReporter生成的属性值有时与SFGX/OGFX文件不一致。例如:
而在SFGX文件中的值是:
在未搞清差别原因之前,SDYDDGEN采用SFGX文件中的值。
SDYReporter把图构件分为不同类型(type)。我们从实例中看到有以下类型:
每一个类型的属性个数在SDYReporter生成的表格中似乎是固定的。但是,在SFGX文件中某些属性不是固定出现的。例如,类型为shape的表格中最后一项是Tessellate concave primitive,中间还有一项是Halo color。而在SDY示例PrimaryFlightDisplay.sgfx中没有这两项。如果通过SDY界面把Tessellate改为True:
那么在PrimaryFlightDisplay.sgfx中就出现了这两项:
而且在其他类型(如rectangle)中也出现了这两项。
如果是新建的SDY R16工程,SGFX文件中的shape、rectangle等必定有这两项。由此可见:
由于SDY的手册中既没有列出所有类型,也没有列出每种类型的所有属性,SDYSDDGEN只能依据特定的SFGX文件生成属性规格表。
SDYReporter生成的表格第三列是Plugs expression,对于某些属性该列的值是n/a。这实际是SDY的使用规则规定的,即SDY规定某些属性不能有Plugs expression。
由于这不是用户设计可选的内容,SDYSDDGEN不对Plugs expression生成n/a。
SDYSDDGEN象SDYReporter一样列出图件的子辈列表。目前把它作为注释。例如:
待定问题:(1)是否要把图件的子辈列表作为需求?(2)如果作为需求,是否要移到架构设计章节?
SDYReporter生成的文档中有以下5张表描述环境参数:
实际工程中,这些参数一般在系统设计时确定环境参数。例如,座舱显示系统中的所有分系统使用系统选定的环境参数表。因此,SDYSDD中不包含这5张表。也可由用户选择是否包含。