当前位置: 首页 > article >正文

SCADE Display(OpenGL)软件设计文档生成工具的设计考虑

SCADE Display(OpenGL)软件设计文档生成工具的设计考虑

2018年6月

引言

本文档描述在SCADE Display软件设计文档生成工具(以下简称为SDYSDDGEN)的设计过程中考虑到的一些问题及其解决方案。

2 目标

SDYSDDGEN的目标设定为:

  1. 生成SCADE Display软件模型的软件设计文档(以下简称为SDYSDD)
  2. SDYSDD要符合DO-178B/C或GJB438B对软件设计文档的要求
  3. SDYSDD要符合用户单位的软件设计文档模板的要求
  4. SDYSDD使用中文或英文
  5. SDYSDD的文件格式是MS OFFICE的word或excel
  6. 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. 1个SGFX文件
  2. 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使用了三种标识符,例如:

  1. ADI_masked_parts
  2. 1.1.1.ADI_masked_parts
  3. symbology_layer/PFD/ADI/ADI_masked_parts

上例中用户定义的是第一种标识符,SDYReporter派生了后两种标识符,这样不能满足项目唯一的要求。

SDYSDD有以下两种选项:

  1. SDYSDD直接使用用户在建模时定义的标识符,不加任何前缀。

SDYSDD对用户定义的标识符增加表达层次编号的前缀。例如,前例中的ADI_masked_parts改为1-1-1-ADI_masked_parts。

7 接口设计

SDYReporter生成的文档中有题为“Layer Variable Dictionary”的章节描述图层的变量字典。其中包含以下5个小节:

  1. Constants
  2. Inputs
  3. Outputs
  4. Locals
  5. Local constants

根据DO-178B和GJB438B对接口设计的规定,SDYSDD设置了题为“接口设计”的章节,其层次结构如下:

  1. SGFX接口(或称为外部接口)
    1. 图层XXX的接口
      1. 输入变量
      2. 输出变量
    2. ……
  1. OGFX接口(或称为内部接口)
    1. OGFX-XXX的接口
      1. 输入变量
      2. 输出变量
    2. ……

SDYSDD处理Constants、Locals、Local constants的方法待定。

SDYReporter生成的变量特性表中的一项特性称为“Value”。SDYSDD 把它改为“Init value”。

8 详细设计

8.1 图构件的设计说明

SDYReporter用表格描述图构件的设计说明。例如:

上例在SDYSDD中的描述如下:

与SDYReporter相比,SDYSDD的特色是:

  1. 每个图构件的设计说明是一个单独的章节;
  2. 用需求标识符(格式可由用户指定,例如:[SDD-1])指明需求描述;
  3. 使用关键词“应”(英文版用shall)指明表格是图构件的需求规格;
  4. Property的名称与SFGX/OGFX文件一致(例如,用Rotate angle而不是Angle);
  5. 增加SDYReporter未列出的属性(例如Static properties和Static init);
  6. 指明图构件的图像是参考而不是需求。

8.2 图像

SDYReporter生成的图构件的图像是孤立的,未体现它在图层中的方位。例如:

 SDYSDD中的对应图像是:

 

8.3 图构件的属性值

 SDYReporter生成的属性值有时与SFGX/OGFX文件不一致。例如:

而在SFGX文件中的值是:

 在未搞清差别原因之前,SDYDDGEN采用SFGX文件中的值。

8.4 SFGX文件中图构件属性的不确定性

SDYReporter把图构件分为不同类型(type)。我们从实例中看到有以下类型:

  1. Line、text、arc等图元
  2. 各种container

每一个类型的属性个数在SDYReporter生成的表格中似乎是固定的。但是,在SFGX文件中某些属性不是固定出现的。例如,类型为shape的表格中最后一项是Tessellate concave primitive,中间还有一项是Halo color。而在SDY示例PrimaryFlightDisplay.sgfx中没有这两项。如果通过SDY界面把Tessellate改为True:

 那么在PrimaryFlightDisplay.sgfx中就出现了这两项:

而且在其他类型(如rectangle)中也出现了这两项。

如果是新建的SDY R16工程,SGFX文件中的shape、rectangle等必定有这两项。由此可见:

  1. PrimaryFlightDisplay.sgfx来源于老版本
  2. 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张表描述环境参数:

  1. Color table
  2. Texture table
  3. Line width table
  4. Line stipple table
  5. Font table

实际工程中,这些参数一般在系统设计时确定环境参数。例如,座舱显示系统中的所有分系统使用系统选定的环境参数表。因此,SDYSDD中不包含这5张表。也可由用户选择是否包含。


http://www.kler.cn/a/11802.html

相关文章:

  • 大数据新视界 -- 大数据大厂之 Impala 性能优化:优化数据加载的实战技巧(下)(16/30)
  • 吴恩达机器学习笔记(3)
  • Vue 3 中,computed 和 watch的区别
  • vue3+vite搭建脚手架项目本地运行electron桌面应用
  • git命令及原理
  • React 守卫路由
  • Cad二次开发 Database类的方法和属性
  • 【数据结构】第九站:树和二叉树
  • STM-32:I2C外设总线—硬件I2C读写MPU6050
  • 在Mac上安装Appium Desktop的具体步骤
  • Linux系统中curl命令用法
  • Redis高可用
  • Android之AppWidget 开发浅析
  • 配电网电压调节及通信联系研究(Matlab代码实现)
  • 物理世界的互动之旅:Matter.js入门指南
  • 初识掌控板2.0、官方拓展板和配套编程软件mpython
  • 【设计模式】如何在业务开发中使用适配器模式?
  • Flutter成不了“顶流明星”的7大理由
  • WPF_Application
  • python输入矩阵的方法
  • 融云出海赋能会干货回顾 | 用户增长、场景玩法、安全合规实用指南
  • 资深PM赞不绝口的【9种项目管理图】
  • 跳槽进阿里了,其实也没那么难...
  • ( “树” 之 DFS) 671. 二叉树中第二小的节点 ——【Leetcode每日一题】
  • mulesoft MCIA 破釜沉舟备考 2023.04.17.12
  • Spring Cloud Nacos使用总结