首页 软件设计文档编写指南

软件设计文档编写指南

举报
开通vip

软件设计文档编写指南2002-08-01实施 软件设计文档编写指南 A Compiling Guide for Software Design Document 中 33 目    次 前    言    III 1 范围    1 2 规范性引用文件    1 3 术语和定义    1 4 软件设计文档的目的    1 5 软件设计文档的要求    1 5.1 软件体系结构    1 5.2 软件设计实体的属性    1 5.2.1 标识属性    1 5.2.2 类型属性    1 5.2.3 目的属性    1 5.2.4 功能...

软件设计文档编写指南
2002-08-01实施 软件设计文档编写指南 A Compiling Guide for Software Design Document 中 33 目    次 前    言    III 1 范围    1 2 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 性引用文件    1 3 术语和定义    1 4 软件设计文档的目的    1 5 软件设计文档的要求    1 5.1 软件体系结构    1 5.2 软件设计实体的属性    1 5.2.1 标识属性    1 5.2.2 类型属性    1 5.2.3 目的属性    1 5.2.4 功能属性    1 5.2.5 从属属性    1 5.2.6 依赖属性    1 5.2.7 接口属性    1 5.2.8 资源属性    1 5.2.9 处理属性    1 5.2.10 数据属性    1 6 软件设计文档的内容    1 6.1 范围(GJB438A-97软件设计文档第1章)    1 6.1.1 标识(GJB438A-97软件设计文档第1.1条)    1 6.1.2 系统概述(GJB438A-97软件设计文档第1.2条)    1 6.1.3 文档概述(GJB438A-97软件设计文档第1.3条)    1 6.2 引用文档(GJB438A-97软件设计文档第2章)    1 6.3 概要设计(GJB438A-97软件设计文档第3章)    1 6.3.1 CSCI概述(GJB438A-97软件设计文档第3.1条)    1 6.3.1.1 CSCI结构(GJB438A-97软件设计文档第3.1.1条)    1 6.3.1.2 系统状态和模式(GJB438A-97软件设计文档第3.1.2条)    1 6.3.1.3 内存和进程时间分配(GJB438A-97软件设计文档第3.1.3条)    1 6.3.2 CSCI设计说明(GJB438A-97软件设计文档第3.2条)    1 6.3.2.1 CSC的名称和项目唯一标识号(GJB438A-97软件设计文档第3.2.X条)    1 6.4 详细设计(GJB438A-97软件设计文档第4章)    1 6.4.1 CSC的名称和项目唯一标识号(GJB438A-97软件设计文档第4.X条)    1 6.4.1.1 CSU的名称和项目唯一标识号(GJB438A-97软件设计文档第4.X.Y条)    1 6.5 CSCI数据(GJB438A-97软件设计文档第5章)    1 6.6 CSCI数据文件(GJB438A-97软件设计文档第6章)    1 6.6.1 数据文件与CSC/CSU的交叉索引(GJB438A-97软件设计文档第6.1条)    1 6.6.2 数据文件名和项目唯一标识号(GJB438A-97软件设计文档第6.2条)    1 6.7 需求可追踪性(GJB438A-97软件设计文档第7章)    1 6.8 注解信息    1 附 录 A    1 A.1 概述    1 A.2 Ada-PDL    1 A.2.1 保留字    1 A.2.2 运算符    1 A.2.3 块结构    1 A.2.4 控制结构    1 A.2.4.1 条件结构    1 A.2.4.2 情况结构    1 A.2.4.3 循环结构    1 A.2.5 数据结构    1 A.2.5.1 数组类型    1 A.2.5.2 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 类型    1 A.2.6 其它约定    1 A.3 C-PDL    1 A.3.1 保留字    1 A.3.2 运算符    1 A.3.3 块结构    1 A.3.4 控制结构    1 A.3.4.1 条件结构    1 A.3.4.2 开关结构    1 A.3.4.3 循环结构    1 A.3.5 数据结构    1 A.3.5.1 数组类型    1 A.3.5.2 结构类型    1 A.3.6 其它约定    1 1前    言 本标准参照了DOD-STD-2167A DID SDD和IEEE Std 1016-1998 IEEE Recommended Practice for Software Design Descriptions(IEEE软件设计描述推荐惯例)。 软件设计文档编写指南 11 范围 本标准规定了软件设计文档编写的要求和方法。 本标准适用于航空产品项目,非航空产品项目可参照执行。 12 规范性引用文件 下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。 GJB 2786-96    武器系统软件开发 GJB 438A-97    武器系统软件开发文档 HB/Z295-96    机载系统和设备合格审查中的软件考虑 13 术语和定义 下列术语和定义适用于本标准。 软件设计实体 Software Design Entity 软件设计中具有不同的结构、功能和标识的软件要素。本标准中有时简称为实体。 软件体系结构 Software Architecture 软件设计实体之间的结构和关系。也可包括软件体系结构与其运行环境之间的界面。 计算机软件配置项 Computer Software Configuration Item (CSCI) 为独立的配置管理(技术状态管理)而设计的并且能满足最终用户功能的一组软件。 计算机软件部件 Computer Software Component(CSC) CSCI中性质不同的部分。CSC可以进一步分解成下一级的CSC或计算机软件单元。 计算机软件单元 Computer Software Unit(CSU) CSC设计中确定的能单独测试的部分。 14 软件设计文档的目的 软件设计文档是软件设计过程的结果,它把软件需求转化为对软件结构、软件部件、接口和数据的描述。软件设计文档为软件实现提供了详细的蓝图。 15 软件设计文档的要求 软件体系结构 软件设计文档要定义待开发软件的软件体系结构,即描述通过分解产生的一系列软件设计实体及其相互关系。 软件设计实体可以有多种存在形式。为符合GJB 2786-96和GJB 438A-97的要求,本标准限定使用以下三种形式的软件设计实体: 1—— 计算机软件配置项(CSCI) 2—— 计算机软件部件(CSC) 1—— 计算机软件单元(CSU) 软件设计实体的属性 虽然软件设计实体的本质是不同的,但它们具有共同的属性。软件设计实体的属性是软件设计实体的一个有名称的特征或特性,它刻画了软件设计实体的某一方面的情况。 软件设计实体的属性可看成是对软件设计实体提出的问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。问题的答案就是属性的值。答案的内容与实体的性质有关。所有答案的总合是对软件设计实体的完整的描述。 软件设计文档要对每一个实体规定其所有的属性,由此形成一个完整的设计描述。属性描述要包括索引和必要的设计考虑,如折衷和假设。在某些情况下,允许属性的值为空,也允许增加新的属性。 标识属性 标识属性是实体的名称。GJB 438A-97规定每个CSC和CSU要有名称和项目唯一标识号。 两个实体不能有相同的名称。名称要体现实体的特征,这将有助于引用和跟踪。 类型属性 类型属性是实体的种类描述。类型属性要刻画实体的性质。常用的类型有子程序、模块、任务、进程、过程、函数、数据块等。可把实体组合成一个较大的类,以便在处理某类信息时查找某个实体。在一个软件设计文档中,类型的使用要前后一致。 目的属性 目的属性是实体为何存在的描述。目的属性要规定创建该实体的理由,因此要描述该实体实现的软件需求规格说明中的某些功能和性能要求,还要描述在需求规格说明中没有包括的但必须实现的派生的功能和性能要求。 功能属性 功能属性是实体做什么的描述。功能属性要描述实体如何从输入产生预期的输出。对于数据实体要描述存储的或传输的信息的类型。 从属属性 从属属性是实体由哪些从属的实体构成的描述。从属属性要描述实体的组成关系。这些信息用于需求到设计的追踪和软件系统分解中的父/子结构关系的识别。 依赖属性 依赖属性是实体与其它实体的关系的描述。依赖属性要指明该实体使用的或需要的关系。通常用结构图、数据流图和迁移图来描述这些关系。依赖属性还要描述每一种交互作用的性质,如交互作用的时间特性和条件。交互作用可能涉及实体的初始化、运行次序、数据共享、创建、复制、使用、存储或取消。 接口属性 接口属性是实体与其它实体如何交互作用的描述。接口属性要描述交互作用的方法和管理交互作用的规则。交互作用的方法包括激活或中断实体的机制,通过参数、公共数据区或消息通信的机制,以及直接访问内部数据的机制。管理交互作用的规则包括通信规约、数据格式、可接受的值和每个数据值的含义。 接口属性还要描述输入域、输入和输出的含义、每个输入和输出的类型和格式和输出错误代码。对于信息处理系统,还要包括屏幕格式和关于交互式语言的完整描述。 资源属性 资源属性是实体用到的实体外元素的描述。资源属性要识别和描述实体执行其功能所需的实体外的所有资源,并规定使用这些资源的交互规则和方法。 该属性提供了诸如物理设备(打印机、磁盘分区、内存条)、软件服务程序(数学库、操作系统服务)和处理机(CPU周期、存储分配、缓冲区)等资源的信息。 资源属性要描述使用特性,如获得资源的处理时间、缓冲区的物理尺寸等。它还应包括对潜在的资源竞争和死锁条件的识别以及资源管理设施。 处理属性 处理属性是实体为实现其功能所用到的规则的描述。处理属性要描述实体执行一个特定任务所使用的算法,并且要包括对例外情况的处理。处理属性是对功能属性的细化。 处理属性的描述要包括定时、时间或进程的时序、进程启动的先决条件、进程或事件的优先级、处理的级别、处理的步骤、路径条件和循环返回或终止的准则。例外处理要描述诸如溢出处理、故障处理等。 数据属性 数据属性是实体内部数据元素的描述。数据属性要描述内部数据的表示方法、初值、用途、含义、格式和值域。 数据的描述可采用数据词典的形式,它包括所有数据元素的内容、结构和用途。 数据的信息要包括与使用该数据有关的所有方面,如格式、元素的个数、初值等。还要包括数据的结构,如文件、数组、堆栈、队列和存储分区。 要规定数据的含义和用途,如静态或动态、是否共享、是控制参数还是数值、是循环计数还是指针。 11  软件设计文档的内容 本章按GJB438A-97和HB/Z295-96的要求描述软件设计文档的内容。 本章各条标题中的括号内是GJB438A-97软件设计文档的章条号。 范围(GJB438A-97软件设计文档第1章) 标识(GJB438A-97软件设计文档第1.1条) 本条应列出本文档所适用的系统及计算机软件配置项(CSCI)的标识号、名称、可能有的缩写名等。 本条还应指明设计该CSCI所依据的上一级软件需求文档。 1示例 1: 1.1 标识 本文档适用的系统是X型飞机显示控制处理机(DCP),其CSCI的标识号是XXX-0001-001,名称是“X型飞机DCP系统软件”。 本文档依据的软件需求文档是“X型飞机DCP系统软件需求规格说明”(标识号:15S2.315.066SC)。 2示例 2: 1.1 Identification This Software Design Document (SDD) specifies the design of the Computer Software Configuration Item (CSCI) identified as the Avionics eXecutive Environment (AXE) version 2.1. The design expressed in this SDD is based on the requirements specified in the document identified as Software Requirements Specification for AXE. This SDD describes the design for any software that has changed since the AXE Version 2.0. 系统概述(GJB438A-97软件设计文档第1.2条) 本条应简要描述本文档所适用的系统的用途。 本条的描述应与上一级软件需求文档中的相关描述一致。 3示例 1: 1.2 系统概述 卫星通信系统的用途是通过航空移动卫星系统提供机载站与地面站之间的分组交换通信服务。卫星通信系统还支持ARINC-429通信协议,使机载航空电子设备可与地面通信。这些机载航空电子设备包括中央维护计算机(CMC),它利用卫星通信系统下载故障诊断 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 。卫星通信系统还提供其它服务,如通过MCDC实现的显示和控制,BITE测试和报告,驾驶舱和客舱的话音功能和天线操纵等。 I/O处理器是卫星通信系统的机载站的组成部分,它通过控制系统处理器与许多外部设备的接口来支持卫星通信系统实现其用途。 4示例 2: 1.2 System Overiew The purpose of the ACES is to help assess quality factors of Ada implementations. (An Ada implementation consists of a host computer, a target computer, operating systems for the two computers, and an Ada compilation system.) The ACES can provide compile-time performance data, run-time performance data, and system usability data. The ACES analysis programs can be used to compare the performance of two or more Ada implementations, or they can be used to indicate ways to get the best performance out of a particular implementation. 文档概述(GJB438A-97软件设计文档第1.3条) 本条应简要描述本文档的内容和用途。 5示例 1: 1.3 文档概述 本文档描述DCP系统软件的概要设计和详细设计,其内容格式遵循GJB438A-97的要求。 本文档可作为: 2—— 设计评审的基础; 3—— 编码的依据; 4—— 测试的基准。 6示例 2: 1.3 Document Overview This SDD describes a partial design of the Support Software (CSCI 1) of the ACES. The design presented in this document describes the Support Software CSCI as composed of Computer Software Components (CSCs) and Computer Software Units (CSUs). This SDD provides a discussion of the Preliminary Design, Detailed Design, the CSCI Data and Data Files. This SDD is organized according to the DI-MCCR-80012A Data Item Description, with some tailoring. The tailoring is discussed in the appropriate sections. 引用文档(GJB438A-97软件设计文档第2章) 本章应列出本文档引用的其它文档。要指明引用文档的编号、标题、发布日期、版本号等。 7示例 1: 2 引用文档 [1] GJB 438A-97 《武器系统软件开发文档》 [2] HL1A-00CZC-09 《X型飞机飞行员操作程序》,2000年8月8日,1.0版 [3] HL1-00ICD-021 《X型飞机接口控制文件DCP分册》,2000年8月8日,1.0版 [4] 15S2.315.066SC《X型飞机DCP系统软件需求规格说明》,2000年8月8日,1.0版 概要设计(GJB438A-97软件设计文档第3章) 本章应分条描述CSCI的概要设计。 CSCI概述(GJB438A-97软件设计文档第3.1条) 本条应简要描述CSCI在系统中的作用,指出CSCI的每个外部接口的用途。可用系统结构图指出该CSCI和系统中其它的CSCI的相互关系。 8示例 1: 3.1 CSCI概述 DCP系统软件主要完成的以下功能: a. 雷达状态确定、转换与控制 5—— 雷达工作状态监测 6—— 雷达工作状态控制与转换 7—— GJB289A-97总线通信管理 8—— ARINC429总线数据传输 b. 画面数据处理 9—— 处理并输出PMFD画面数据 10—— 处理并输出OMFD画面数据 c. 人机接口处理 11—— 接收并处理来自雷达控制盒(HRCP、FRCP)的数据 12—— 接收并处理来自MFD周边键数据 d. 自检 13—— 加电自检 14—— 周期自检 15—— 启动自检 DCP与其它设备的接口关系见图1。 DCP PDR ADC INS 图1 DCP外部接口 9示例 2: 3.1 CSCI概述 I/O处理器软件的主要功能是控制系统处理器与许多外部设备之间的数据发送和接收。它根据系统处理器提供的数据构造ARINC429字,并控制数据传输的定时和位速率。图1描述了I/O处理器与其它设备的接口关系。 I/O处理器从RFU、CFDS、IRS等外部设备接收状态字,把它们存入缓冲区后给系统处理器使用。系统处理器响应状态字中的状态信息,然后把对外部设备的命令数据发给I/O处理器。I/O处理器把命令数据转换为ARINC429字格式,然后通过合适的输出通道把ARINC429字传给目标外部设备。目标外部设备根据命令数据调整自己的状态。 I/O处理器从ACARS和MCDU接收数据文件,把它们存入缓冲区后给系统处理器使用。系统处理器可能要求把数据文件从I/O处理器传给ACARS或MCDU。(以下略) ACARS I/O处理器 (内部结构略) MCDU 系统处理器 RFU (以下略) 图1 I/O处理器外部接口 CSCI结构(GJB438A-97软件设计文档第3.1.1条) 本条应指明CSCI的内部结构。要描述CSCI包含的所有CSC及其下一级的CSC,还要描述被并入CSCI的非本次开发的CSC(如重用的CSC)。 本条还应要指明各CSC之间的相互关系,即描述CSC与CSC之间的接口的用途,并概述通过接口传送的数据。 1示例 1: 3.1.1 CSCI结构 为实现系统软件的功能,并使所开发的软件具有高度的可靠性和可维护性,采用模块化设计方法和结构设计方法构造IOP系统软件的结构。 DCP系统软件划分为自检软件和应用软件两个CSC,每个CSC又可分为若个更小的CSC。 自检软件实现IOP的自检测,它分为加电自检、启动自检和周期自检三个CSC。加电自检是系统接通电源时自动进行的自检。启动自检是通过MFD上的菜单人工启动的自检。周期自检是在飞行中按照固定的时间间隔检查系统的部分功能。 应用软件直接为实现系统的使命任务服务。系统执行使命任务的工作方式可分为三种,即空/空、空/地和空/海。在每种工作方式中,应用软件要进行相应的数据输入、处理和输出。 DCP系统软件结构见图2。 注: 实用子程序(CSC-2.10)来源于以前项目。 图2 DCP系统软件结构 加电自检 (CSC-1.1) 自检软件 (CSC-1) 启动自检 (CSC-1.2) 周期自检 (CSC-1.3) DCP系统软件 (CSCI) 飞行员命令处理 (CSC-2.1) 应用软件 (CSC-2) GJB289A-97总线通信管理(CSC-2.2) 空/空画面数据生成 (CSC-2.3) (中间略) 实用子程序 (CSC-2.10) 2示例 2: 表1 DCP系统软件CSC接口 3示例 3: 3.1.1 CSCI Architecture Figure 3.1.1-1 illustrates the top-level architecture of the ACES Support Software CSCI. This section provides a brief overview of the purpose of each top-level CSC and provides a discussion of the interface between the top-level CSCs. Figure 3.1.1-1 Support Software Top Level CSCI Architecture The Pretest CSC coordinates the process of tailoring the ACES software for the implementation(s) being assessed. The Utilities CSC encapsulates the support software that is shared between CSCs and provides tests that verify some of the assessment techniques. The Harness CSC provides the capability of selecting and organizing assessment tests. The Analysis CSC provides for the conversion of test output logs which were formed by running the scripts made in the Harness into test result data files and some statistical processes that assess the implementation(s). The Quick-Look CSC is responsible for quickly organizing and running a subset of the ACES. The Pretest CSC interfaces with the Utilities CSC in the following ways. The Utilities CSC provides the global declarations that the Pretest CSC shares with the other CSCs. The Pretest CSC coordinates the compiling of the Ada library units that make up the utilities. The Pretest CSC also coordinates the building and running of the tests that verify the assessment techniques. The Pretest CSC interfaces with the Harness CSC in the following way. The Pretest CSC coordinates the compiling, building, and testing of the Harness executable. The Pretest CSC interfaces with the Analysis CSC in the following way. The Pretest CSC coordinates the compiling of the Ada library units and building of the executables that make up the Analysis CSC. The Pretest CSC also coordinates the testing of the Analysis executables. The Utilities CSC interfaces with the Analysis CSC in the following way. The Utilities CSC provides the global declarations that the Analysis CSC shares with the other CSCs. The Utilities CSC interfaces with the Quick-Look CSC in the following way. The Utilities CSC provides some declarations used by the Quick-Look CSC. 4示例 4: 3.1.1 CSCI结构 如图2所示,I/O处理器CSCI由以下6个CSC组成: a. 主控程序CSC:控制其它CSC的运行; b. 自检测CSC:加电自检或操作员启动自检; c. I/O控制CSC:控制I/O处理器与外部设备和系统处理器的数据接收和发送; d. A429广播CSC:控制ARINC429字的定时和格式约束; e. A429协议CSC:实现系统处理器与ACARS/CMU或MCDU之间的文件传送协议; f. 实用子程序CSC:上述CSC的通用子程序。 A429协议CSC和实用子程序CSC来源于以前项目。 I/O处理器CSCI I/O控制CSC A429广播CSC 自检测CSC 主控程序CSC 实用子程序CSC A429协议CSC 图2 I/O处理器CSCI结构 系统状态和模式(GJB438A-97软件设计文档第3.1.2条) 本条应指明CSCI的每一个系统状态和模式,以及在每一个系统状态和模式下执行的CSC。本条还应描述在不同状态和模式下各CSC之间的控制流和数据流。 描述方式可采用表格和图。 5示例 1: 表2 各系统状态下执行的CSC 6示例 2: 图3描述了DCP系统软件的部分CSC数据流。 空/空画面号 空/空画面数据生成(CSC-2.3) 空/空画面数据块 GJB289A-97总线通信管理(CSC-2.2) 飞行员命令处理 (CSC-2.1) 空/面画面数据生成(CSC-2.4) 空/面画面号 空/面画面数据块 图3 内存和进程时间分配(GJB438A-97软件设计文档第3.1.3条) 本条应描述分配给每一个CSC的内存和进程时间,可用表格说明。 7示例 1: 3.1.3 内存和进程时间分配 CSCI设计说明(GJB438A-97软件设计文档第3.2条) 本条应分小条描述CSCI中每一个CSC的设计信息。条号从3.2.1开始,条的标题是CSC的名称和它在本项目中的唯一标识号。 CSC的名称和项目唯一标识号(GJB438A-97软件设计文档第3.2.X条) 设计信息应包括以下内容: a) 根据适用的需求规格说明指明分配给该CSC的软件需求。如果CSC由下一级的一些CSC组成,这部分内容可全部或部分地由下一级的CSC提供; b) 描述CSC的概要设计内容,即CSC的内部结构以及与其它CSC的接口。如果CSC由下一级的一些CSC组成,应指明由该CSC及其下一级CSC处理的软件需求规格说明中规定的CSCI内部接口。下一级CSC的描述可引用这些内容而不必复述; c) 指明对该CSC衍生的设计要求和设计约束,以及由该CSC提出的设计约束。如果CSC由下一级的一些CSC组成,这部分内容可全部或部分地由下一级的CSC提供。 8示例 1: 3.2.5 空/空画面数据生成(CSC-2.3) 3.2.5.1 软件需求 分配给空/空画面数据生成的软件需求是: 1—— 3.2.2.4.1.C(SRS51) 2—— 3.2.2.4.1.D(SRS52) 3—— 3.2.2.4.1.E(SRS53) 4—— 3.2.2.4.1.F(SRS54) 5—— (以下略) 3.2.5.2 结构 空/空画面数据生成包含的CSU如图5所示: 图5 3.2.5.3 设计要求和设计约束 对空/空画面数据生成没有衍生的设计要求。 由于VS画面是最常用的,因此在设计执行流程时要先判断当前命令是否要显示VS画面。 空/空画面数据生成(CSC-2.3) RWS_Page_Data_Process (CSU-2.3.2) TWS_Page_Data_Process (CSU-2.3.3) VS_Page_Data_Process (CSU-2.3.1) 9示例 2: 3.2.1 Pretest (CSC 1.1) The Pretest is a logical abstraction for the process of preparing to run the ACES. This process was originally designed to be done manually through the use of editors and only after a great deal of background reading. The Pretest activity is automated and provides the users with the ability to get the ACES up and running on their system faster and easier. Default selections are to be provided for first time users to further facilitate the useability of the ACES. The Pretest activity consists of setup software and command scripts. The setup software prompts the users with questions concerning the operating system and compilation system for which they plan to operate the ACES. The responses to these questions are used to generate a series of command scripts that are used later in testing and running the Operation Software and the Analysis software. Sample scripts will be provided for a number of compiler versions and operating systems to further reduce the user's preparation time. Table 3.2.1-1 identifies the requirements allocated to the Pretest CSC. Table 3.2.1-1 Requirements Allocated to the Pretest CSC 如果CSC包含下一级的CSC,则应再分小条描述每一个下一级CSC的设计信息。条号从3.2.1.1开始,条的标题是CSC的名称和它在本项目中的唯一标识号。设计信息也应包括上述内容。 详细设计(GJB438A-97软件设计文档第4章) 本条应分小条描述每个CSC的详细设计信息。条号从4.1开始,条的标题是CSC的名称和它在本项目中的唯一标识号。 CSC的名称和项目唯一标识号(GJB438A-97软件设计文档第4.X条) 本条应首先通过描述该CSC内部各个CSU之间的控制流和数据流来指明CSU之间的关系,并指明与该CSC接口的所有外部接口。 然后分小条描述该CSC中每个CSU的详细设计信息。条号从4.X.1开始,条的标题是CSU的名称和它在本项目中的唯一标识号。如果某个CSU被多个CSC使用,那么只要在一处详细描述。 10示例 1: 4.5 空/空画面数据生成(CSC-2.3) 空/空画面数据生成的执行控制流程是: IF 当前周边键 = U2 THEN 调用VS_Page_Data_Process; ELSIF 当前周边键 = U3 THEN 调用RWS_Page_Data_Process; ELSIF 当前周边键 = U4 THEN 调用TWS_Page_Data_Process; END IF; 空/空画面数据生成的外部接口是: 6—— 周边键命令 7—— 空/空画面数据块 CSU的名称和项目唯一标识号(GJB438A-97软件设计文档第4.X.Y条) 本条分为以下两小条。 CSU的设计要求及约束(GJB438A-97软件设计文档第4.X.Y.1条) 本条应指明要由该CSU来全部或部分满足的分配给CSC的软件需求,并指明对该CSU的设计约束。如果涉及人机接口的需求,也要在此指明。 CSU的设计(GJB438A-97软件设计文档第4.X.Y.2条) 本条应根据下列适合该CSU的项目来描述详细设计信息: a) 输入/输出数据元素。标识该CSU的每一个输入和输出数据元素,并说明其用途。在第5章中提供这些数据元素的设计信息; b) 局部数据元素。标识该CSU内部产生的且不被其它CSU使用的每一个数据元素,并说明其用途。要描述每一个数据元素的名称、简要说明、数据类型、数据表示、大小、量纲、限值/值域、精度、分辨率以及任何其它属性。可以通过CSC局部数据表来描述这些信息; c) 中断和信号。标识该CSU处理的中断和信号,并说明其来源、目的、优先级、期望响应和响应时间、最大值、最小值、发生的概率。 d) 算法。标识算法,并描述其目的和细节。算法的描述要包括对输入和内部数据元素的处理以及输出数据元素的生成; e) 错误处理。标识和描述CSU的错误诊断和恢复的功能,包括对错误的输入数据和影响CSU执行的其它条件的处理; f) 数据转换。标识和描述为实现CSU的接口要实现的数据转换操作; g) 其它元素的使用。描述CSU使用的其它元素,它包括但不限于:(1)其它CSU(如库函数调用、访问数据库、海量存储设备和实时I/O通道的I/O服务调用);(2)全局内存中的共享数据(如数据库或数据文件、表、公用数据块);(3)输入输出缓冲区,包括消息缓冲区; h) 逻辑流程。根据a到g项内容描述CSU的逻辑流程。要描述启动CSU执行的条件、被激活的通信接口功能(如果有)、把控制传给其它CSU的条件等。如果在CSCI的操作期间,执行顺序是动态控制的,则应描述顺序控制的方法以及该方法的逻辑和输入条件,如定时变更、优先级分配、诸如内部存储器的数据移入移出那样的内部操作、离散输入信号的判读以及CSCI的各种操作之间的定时关系; i) 数据结构。描述CSU实现的局部数据结构以及CSU使用的所有共享数据结构; j) 局部数据文件或数据库。如果数据文件或数据库是CSU的局部数据的一部分,则应说明其用途,并用记录、字段等描述其结构,还要说明其访问机制(如顺序的、随机的); k) 局限性。描述限制CSU性能的任何局限性或独特功能。 描述方式可遵照附录A所示的PDL或其它方法和工具。 如果该CSU不使用对CSCI指定的编程语言,则应指明所用的编程语言并说明理由。 如果该CSU是一个库单元,则在此指明库的名称及其在项目中的唯一标识号,以及含有库描述的设计文档。 1示例 1: 4.5.4 HUD_TACAN_Disp (CSU-2.2.4) 4.5.4.1 HUD_TACAN_Disp的设计要求及约束 HUD_TACAN_Disp生成HUD上的TACAN画面数据,它实现以下软件需求: 1—— 3.2.4.1.3.a 2—— 3.2.4.1.3.b 3—— (以下略) 4.5.4.2 HUD_TACAN_Disp的设计 a) 输入/输出数据 dev_id icp_delete_control A_IND1_03_01 A_ADD1_01_00 b) 局部数据 Vol_X: 速度矢量符号X Vol_Y: 速度矢量符号Y c) 逻辑流程 BEGIN IF 防拥选择 /= 3 THEN 显示高度刻度带和速度刻度带 END IF IF防拥选择 = 1 THEN 显示飞机攻角、飞机过载、本次飞行最大过载、待飞航路点和待飞距离、 待飞时间、可用燃油、俯仰梯 END IF 显示航向刻度带、马赫数、系统工作方式(NAV TCN)、无线电高度、 飞机纵轴和航炮轴线、速度矢量符号、塔康磁航向箭头 END 2示例 2: 4.1 Pretest (CSC 1.1) Figure 4.1-1 illustrates the Pretest architecture. 4.1.2 Scripts (CSC 1.1.2) One script has been added since ACES Version 2.0. That script is for Pretest Step 0. It has been added to make the system more automated. 4.1.2.1 Scripts (CSU 1.1.2.1) Purpose: The script that was added copies all of the necessary files from the distribution subdirectories automatically into the working directory, with the correct suffixes. Requirements: See Section 3.2.1. Design Constraints: The script is applicable to a specific Ada implementation (a specific operating system and a specific Ada compiler vendor). Generation of the script is driven by a non-specific template and by compiler and operating system data supplied by the user or by default data files. Rationale for Other Language: Requires command level interface to the operating system. IO Data Elements: None. Algorithm: Copy Pretest files from the distribution to the working subdirectories. If file extension is different from system file extension then Change to system file extension end if Error Handling: None. Other Units: None. Invoked By: User. Calls: None. Data Structures: None. Data Files: A new template file shall be designed to perform the copying of the files. CSCI数据(GJB438A-97软件设计文档第5章) 本章应描述CSCI内的全局数据元素。为增强可读性和可维护性,可用一个或几个表来提供下列信息。对每一个数据元素都要按以下适用的项目来描述。 CSCI内部数据元素的描述项目是: a) 名称; b) 简要说明; c) 量纲,如秒、米等; d) 限值/值域; e) 精确度(允许的误差范围); f) 精度/分辨率(用有效数字表示); g) 对于实时系统,计算或刷新的频率,如10KHz、50ms等; h) 合法性检查; i) 类型,如整数、ASCII、定点、实数、枚举等; j) 数据表示/格式; k) 对该数据元素进行设值或计算的CSU的项目唯一标识号; l) 使用该数据元素的CSU的项目唯一标识号; m) 数据来源,如数据库或数据文件、全局公共块、局部公共块、参数等。如有可能,用项目唯一标识号来标识数据来源。 CSCI外部接口的数据元素的描述项目是: a) 数据元素的标识; b) 接口的名称和项目唯一标识号; c) 描述外部接口的接口设计文档的索引。 如果存在独立的外部接口控制文件。并且该文件包含了上述描述项目,则不必在此重复。 3示例 1: 5.1 CSCI内部数据元素 CSCI内部数据元素见表5。 表5 CSCI内部数据元素 5.2 CSCI外部接口的数据元素 5.2.1 ARINC429总线数据 详见本系统关于ARINC429总线数据的接口控制文件[5]。 5.2.2 GJB289A-97总线数据 详见本系统关于GJB289A-97总线数据的接口控制文件[6]。 5.2.3 共享数据区数据 详见本系统关于共享数据区的接口控制文件[7]。 CSCI数据文件(GJB438A-97软件设计文档第6章) 本章应分条描述CSCI的每个共享数据文件。条号从6.2开始,条的标题是数据文件的名称和它在本项目中的唯一标识号。 数据文件与CSC/CSU的交叉索引(GJB438A-97软件设计文档第6.1条) 本条应列出从6.2条开始描述的每个数据文件到CSC/CSU的映射。 数据文件名和项目唯一标识号(GJB438A-97软件设计文档第6.2条) 本条应描述: a) 数据文件的用途、最大尺寸、访问机制(如随机的或顺序的); b) 文件中记录的结构和尺寸; c) 文件中数据的类型、表示、尺寸、量纲、限值/值域、精确度、精度/分辨率以及其它属性。 4示例 : 6.1.2 Comparative Analysis There is a new output report file for Comparative Analysis. Purpose: This data file is a report from Comparative Analysis which outputs a table of the execution time ratios for each group for each system. It will then output the number of tests of each group successfully completed by each system. It will take this information from the present System Factors for all groups for all systems and the Summary of Successes for each group reports. 需求可追踪性(GJB438A-97软件设计文档第7章) 本章应描述每个CSC中一直到CSU这一级与软件需求规格说明和接口需求规格说明相互之间的可追踪性。 5示例 : 表7 需求可追踪性表 注解信息 根据需要,可增加章条来描述设计的注解信息,如缩略语表、术语表、背景信息、公式推导等。 附 录 A (规范性附录) PDL A.1 概述 PDL是一种用正文形式(不是图形)描述软件设计的标记方法。 PDL的特点是用某种编程语言(如Ada、C)的语法描述软件的控制结构或数据机构,用某种自然语言(如汉语、英语)的词汇描述软件的处理细节。 如果编程语言选用C,可使用C风格的PDL(以下简称为C-PDL)。如果使用其它编程语言,则可使用Ada风格的PDL。 A.2 Ada-PDL 保留字 a) 使用Ada的大写格式的保留字,主要有:ABS、AND、ARRAY、BEGIN、CASE、CONSTANT、DO、ELSE、ELSIF、END、EXIT、FOR、FUNCTION、GOTO、IF、IS、LOOP、MOD、NOT、OF、OR、OTHERS、PROCEDURE、RANGE、RECORD、REM、RETURN、REVERSE、THEN、TYPE、UNTIL、WHEN、WHILE、XOR; b) 如果不采用Ada为编程语言,则不要使用Ada特有的保留字。 运算符 可使用表 1中的运算符。 表 1 运算符 运算符 功能 ABS 绝对值 AND 逻辑“与” MOD 取模 NOT 逻辑“否” OR 逻辑“或” REM 取余 XOR 逻辑“异或” = 等于 /= 不等于 < 小于 <= 小于等于 > 大于 >= 大于等于 + 加 - 减 * 乘 / 除 ** 乘幂 & 字符串联结 块结构 块是一组视为一个单元的相关描述,以“BEGIN”并以“END”结束。 控制结构 条件结构 格式: IF 条件1 THEN   处理描述 ELSIF 条件2 THEN   处理描述   … ELSIF 条件N THEN   处理描述 [ELSE   处理描述] END IF 6示例 : IF 主方式 = 空空 THEN     调用Process_AA_Keys处理按键 ELSIF 主方式 = 空面 THEN     调用Process_Airsurface_Keys处理按键 ELSE     调用Process_Nav_Keys处理导航方式的按键 END IF 情况结构 格式: CASE 表达式 IS     WHEN 选择表1 =>         处理描述     WHEN 选择表2 =>         处理描述         …     WHEN 选择表N =>         处理描述     WHEN OTHERS =>         处理描述 END CASE 1示例 : CASE 键值 IS     WHEN U2 =>         雷达状态切换成VS状态     WHEN U3 =>         雷达状态切换成RWS状态     WHEN U4 =>         雷达状态切换成TWS状态     WHEN U5 =>         雷达状态切换成STBY状态     WHEN R5 | D1 =>         雷达状态切换成进入转换画面之前的状态 END CASE 循环结构 格式: [WHILE 条件 | FOR 循环参数 ] LOOP   处理描述   [EXIT] END LOOP 2示例 1: LOOP     调用50毫秒周期处理任务     等待至下一个50毫秒周期开始 END LOOP 3示例 2: WHILE 消息队列未空     读出一个消息     处理读出的消息     消息队列读指针下移 END LOOP 4示例 3: FOR I IN 1 ..10 LOOP     处理局部缓冲区中的第I个数据 END LOOP 数据结构 数组类型 格式: TYPE 数组类型名 IS ARRAY(下标类型定义{,下标类型定义})OF 数组分量类型名 5示例 : TYPE Fault_Data_Block_Type IS ARRAY (1 .. 4) OF Fault_Type 记录类型 格式: TYPE 记录类型名 IS   RECORD     记录分量     {记录分量}   END RECORD 6示例 : TYPE Fault_Type IS   RECORD     Fault_Flag : Unsigned_1_Bit;  -- 故障当前故障标志(1=故障存在,0=故障消失)     Fault_Degree : Unsigned_3_Bits;     -- 故障等级(0=不用,1=1级,2=2级,3=3级,4=4级, 5=5级,6=6级,7=不用)     Spare      : Unsigned_4_Bits;      Fault_Count : Unsigned8;            -- 故障次数(1~255)     Fault_Code  : Unsigned16;            -- 故障代码(BCD码)     Fault_First_Time : Unsigned32;      -- 故障首发时间     Fault_First_Duratioon : Unsigned32;  -- 故障首发持续时间   END RECORD; 其它约定 a) 换行时可以加“;”; b) 可以用注释来解释设计描述,注释的前导符是“—”; c) 缩进格式要前后一致。 A.1 C-PDL 保留字 使用C语言中的保留字,主要有:auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while。 运算符 可使用表 2中的运算符。 表 2 运算符 运算符 功能 && 逻辑“与” ! 逻辑“否” || 逻辑“或” == 等于 != 不等于 < 小于 <= 小于等于 > 大于 >= 大于等于 + 加 - 减 * 乘 / 除 % 取模 -- 减值 ++ 增值 & 位“与” | 位“或” ^ 位“异或” ~ 位“求补” >> 位“右移” << 位“左移” 块结构 块是一组视为一个单元的相关描述,以“{”并以“}”结束。 控制结构 条件结构 格式: if (条件)   处理描述; [else   处理描述;] 7示例 : if (主方式 == 空空)     调用Process_AA_Keys处理按键 else {     if (主方式 == 空面)         调用Process_Airsurface_Keys处理按键     else         调用Process_Nav_Keys处理导航方式的按键     } 开关结构 格式: switch (表达式) {     case 常数1:         处理描述;         break;     case 常数2:         处理描述;         break;         …     case 常数N:         处理描述;         break;     default:         处理描述;     } 8示例 : switch (键值) {     case U2:         雷达状态切换成VS状态;         break;     case U3:         雷达状态切换成RWS状态;         break;     case U4:         雷达状态切换成TWS状态;         break;     case U5:         雷达状态切换成STBY状态         break;     case R5:     case D1:         雷达状态切换成进入转换画面之前的状态;         break;     default:         break;     } 循环结构 格式1: for (初值;条件;增量)   处理描述; 格式2: while(条件)   处理描述; 格式3: do {   处理描述; }while(条件); 9示例 1: for ( I=0; I<局部缓冲区数据总数; I++) {     处理局部缓冲区中的第I个数据 } 10示例 2: while (消息队列未空) {     读出一个消息;     处理读出的消息;     消息队列读指针下移; } 11示例 3: do {     读入一个字符; }while(读入的字符不是文件结束符); 数据结构 数组类型 格式: typedef 数组分量类型 数组类型名[数组大小]; 12示例 : typedef int Fault_Data_Block_Type[4]; 结构类型 格式: typedef struct 结构名 {     结构分量1;     结构分量2;     …     结构分量N; }结构类型名; 13示例 : typedef unsigned short UNSIGNED16; typedef unsigned int UNSIGNED32; typedef struct fault {     UNSIGNED16 Fault_Flag  : 1;  /*故障当前故障标志(1=故障存在,0=故障消失)*/     UNSIGNED16 Fault_Degree: 3;     /* 故障等级(0=不用,1=1级,2=2级,3=3级,4=4级, 5=5级,6=6级,7=不用) */     UNSIGNED16 Spare      : 4;      UNSIGNED16 Fault_Count : 8;            /* 故障次数(1~255) */     UNSIGNED16 Fault_Code  : 16;            /* 故障代码(BCD码)*/     UNSIGNED32 Fault_First_Time          : 32;  /* 故障首发时间    */     UNSIGNED32 long Fault_First_Duratioon : 32;  /* 故障首发持续时间*/   END RECORD; 其它约定 a) 换行时可加“;”; b) 可以用注释来解释设计描述,注释的限定符是“/*”和“*/”; c) 缩进格式要前后一致。
本文档为【软件设计文档编写指南】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_882336
暂无简介~
格式:doc
大小:145KB
软件:Word
页数:27
分类:生活休闲
上传时间:2017-09-19
浏览量:22