软件结构设计规范
精选编制:
审核:
批准:
目录
1.简介 (6)
1.1.系统简介 (6)
1.2.文档目的 (6)
1.3.范围 (6)
1.4.与其它开发任务/文档的关系 (6)
1.5.术语和缩写词 (6)
2.参考文档 (8)
3.系统概述 (9)
3.1.功能概述 (9)
3.2.运行环境 (9)
4.总体设计 (10)
4.1.设计原则/策略 (10)
4.2.结构设计 (10)
4.3.处理流程 (10)
4.4.功能分配与软件模块识别 (11)
5.COTS及既有软件的使用 (12)
5.1.COTS软件的识别 (12)
5.2.COTS软件的功能 (12)
5.3.COTS软件的安全性 (12)
5.4.既有软件的识别 (12)
5.5.既有软件的功能 (13)
5.6.既有软件的安全性 (13)
6.可追溯性分析 (14)
7.接口设计 (15)
7.1.外部接口 (15)
7.2.内部接口 (15)
8.软件设计技术 (16)
8.1.软件模块 (16)
8.2.数据结构 (16)
8.3.数据结构与模块的关系 (16)
9.软件故障自检 (17)
1.简介
1.1.系统简介
提示:对系统进行简要介绍,包括系统的安全目标等。
1.2.文档目的
提示:
软件结构设计的目的是在软件需求基础上,设计出软件的总体结构框架,实现软件模块划分、各模块之间的接口设计、用户界面设计、数据库设计等等,为软件的详细设计提供基础。
软件结构设计文件应能回答下列问题:
软件框架如何实现软件需求;
软件框架如何实现软件安全完整度需求;
软件框架如何实现系统结构设计;
软件框架如何处理与系统安全相关的对软/硬件交互。
1.3.范围
1.4.与其它开发任务/文档的关系
提示:如软件需求和界面设计文档的关系
1.5.术语和缩写词
提示:列出项目文档的专用术语和缩写词。
以便阅读时,使读者明确,从
而不产生歧义。
2.参考文档
提示:列出本文档引用的所有标准、文档及其版本号。
至少应包括以下项目文件:
系统需求规范
系统安全需求规范
系统结构设计文档
软件质量保障计划
软件开发计划
软件界面定义文档
软件结构设计文档
软件应用数据文档
软件配置文档
相关硬件设计文档等
3.系统概述
3.1.功能概述
提示:
对软件功能的大致描述。
3.2.运行环境
提示:
说明软件的运行环境(包括硬件环境和支持环境)。
4.总体设计
4.1.设计原则/策略
提示:列出所有安全策略及其它非安全性(如性能/可用性/维护性)策略。
对于安全策略,例如对软件需求规范中涉及到安全的功能需求的设计,应将实现的这类需求的应用尽量限制在最小的范围内,并尽量将实现涉及安全功能的软件模块与实现不涉及安全功能的软件模块分开实现。
又或者容错/冗余/多样性设计等。
如使用COTS组件时,必要时考虑使用COTS的安全策略如wrapping/limited interfaces etc。
对于非安全策略,如隔离高性能组件或更新影响限制考虑等。
必要时,应考虑安全与非安全(如性能/可用性/维护性)方面的折冲考虑。
例如提高安全性会降低性能/可用性。
4.2.结构设计
提示:
用模块框图的形式说明本软件的结构划分,扼要说明每个模块的标识符和功能,给出各模块之间的关系、软件与硬件的关系等。
4.3.处理流程
提示:
说明本软件的基本设计概念和整体处理流程。
4.4.功能分配与软件模块识别
提示:
表明各项功能与模块的关系,即功能需求与模块的关系。
5.COTS及既有软件的使用
5.1.COTS软件的识别
提示:
应对软件设计中使用到的所有COTS软件进行识别,并依次对每个软件进行说明,说明应包括:软件的名称、来源、版本、用途、在项目中如何使用等内容。
5.2.COTS软件的功能
提示:描述COTS软件的功能,并指出哪些功能被系统所使用,哪些功能不被使用。
5.3.COTS软件的安全性
提示:
在软件安全完整度等级非0时,需要在软件结构设计阶段,对软件的安全性进行考虑和设计,在软件详细设计阶段对COTS软件对系统的安全性进行分析,并对COTS软件逐一进行确认。
如果COTS软件有未使用的功能或特征或接口,须确保那些功能不会对系统安全有影响。
5.4.既有软件的识别
提示:
应对软件设计中使用到的所有已有软件进行识别,如成熟软件模块、插件等、已经被别的项目评估过的软件,并依次对每个软件进行说明,说明应包括:软件的名称、来源、版本、用途、在项目中如何使用等内容。
5.5.既有软件的功能
提示:描述既有软件的功能,并指出哪些功能被系统所使用,哪些功能不被使用。
5.6.既有软件的安全性
提示:
在软件安全完整度等级非0时,需要在软件结构设计阶段,对软件的安全性进行考虑和设计,在软件详细设计阶段对已有软件对系统的安全性进行分析,并对已有软件逐一进行验证。
如果既有软件有未使用的功能或特征或接口,须确保那些功能不会对系统安全有影响。
6.可追溯性分析
提示:此节应对软件结构对软件需求的可追溯进行分析,对软件模块设计对软件结构设计的可追溯性进行分析。
7.接口设计
7.1.外部接口
提示:包括用户界面、与外部软件接口和硬件接口设计。
功能接口、物理接口分别描述。
7.2.内部接口
提示:模块之间的接口设计。
功能接口和物理接口分别描述。
8.软件设计技术
提示:
应对软件设计技术内容进行描述,参考EN50128。
8.1.软件模块
提示:
应对软件模块的功能、接口(与环境的外部接口、与其他模块的内部接口)、模块之间的相互影响进行详细设计。
应从软件整体角度,对软件模块的相互关系进行设计与描述。
8.2.数据结构
提示:
列出本软件各模块使用的主要的数据结构,包括名称、标识符、数据项、作用等。
8.3.数据结构与模块的关系
提示:
说明各个数据结构与访问这些数据结构的各个模块之间的对应关系。
9.软件故障自检
提示:
说明每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。