文 档 编 号 | 产品版本 | 密级 | |
产品名称: | 共 页 |
软件总体设计说明书
(仅供内部使用)
拟制: | 日期: | yyyy-mm-dd | ||
审核: | 日期: | yyyy-mm-dd | ||
核准: | 日期: | yyyy-mm-dd | ||
签发: | 日期: | yyyy-mm-dd | ||
文档版本: |
文件修改记录
修改日期 | 版本 | 修改页码、章节、条款 | 修改描述 | 作者 |
yyyy-mm-dd | ||||
关键词:
摘 要:
缩略语说明:
缩略语 | 英文全名 | 中文解释 |
列出本文档的所有参考文献(包括:正式/非正式出版物、公司/部门文档等),格式如下:
作者+书名(或杂志、文献、文档)+出版社(或期号、卷号、公司文档编号)+出版日期
模板使用说明:
[1]注明可选的部分,可以根据实际情况选择是否填写;如果不必说明,请务必保留相关的章节标题,同时在该可选章节的内容中填入“无”;未注名可选的,则必须描述;如果有些设计此模版中没有合适的地方填写,则补充在最后的其他栏目中
[2]模版中斜体字相当于撰写指南,最后文稿请将本模板中所有的斜体字部分全部删除。
[3]模板里并不说明设计技术和方法,而只是说明应包含哪些内容,以及如何描述、组织这些内容。
[4]对于移植的代码,描述可以相对简单一些,但以下这些章节不能省略:指标描述、本系统上下文说明、初始化/配置说明、开发视图、接口说明、移植一些说明和考虑可以放在其它一节中
1 引言
1.1 目的
说明本设计是为了满足软件需求规格说明书中的哪些需求而做的,指明读者对象
1.2 范围
说明文档所包括的内容
2 总体概述
2.1 指标描述
说明本系统或模块所实现的详细指标
2.2 本系统上下文说明
2.2.1软件结构
简要说明本系统与外部软件系统的上下文关系,表示方法可以采用结构图、数据流图、UML等。目的是为了描述本系统与外部系统的交互关系。
比如,PPP模块的总体设计,这里就需要说明PPP与链路层框架的关系,PPP与网络层的关系,PPP与AAA的关系等,当然,如果对OS有特别需求的话,在这里也可以进行描述。这里的描述不是说写出一个函数接口的说明,而是对相互关联关系的说明, 一般包括数据的流向路径,管理路径等。
如果用图不能描述清楚,则请用自然语言补充说明,这里要求考虑到每个路径。
2.2.2硬件结构(可选)
此处着重说明本系统依附的硬件架构,对于非驱动类软件模块,本节可以省略。
这里的描述格式不做更细的约定,由设计人员自行把握。
2.3 设计约束
2.3.1遵循标准(可选)
描述本系统所遵循的标准、规范。
2.3.2硬件约束(可选)
描述本软件系统实现的硬件约束,比如,对内存的等。这是对硬件结构的补充,前面可以说明硬件的总体框架,功能框图。这儿着重讲解硬件对软件的,比如不提供某种信号导致软件设计中需要注意的地方或者说。
2.3.3其他约束(可选)
描述本软件系统设计时需要遵循的其它约束。
2.4 其他(可选)
描述其他有关的设计考虑。
3 软件总体结构
3.1 分解视图
3.1.1 分解说明
提供本系统(模块)的内部结构图并加以描述。这里其实是提供了本系统的一个分解视图,一个系统一般就是由一个个实体(可以是子模块、数据等)构成。这里,就是请大家将这个分解视图描述清楚,可以使用层次分解图加自然语言的形式加以描述(但不限于此描述方法)。分解的结果就是能够清晰地看出本系统由哪些实体组成,以及这些实体间的关联关系。
3.1.2 各实体说明
简要说明上述分解视图中各个实体的功能
3.1.3 初始化/配置说明
说明本系统的初始化依赖关系,也就是说,本系统需要在哪些系统的初始化之后,才能进行初始化。
简要说明本系统提供了哪些配置项,可以对系统进行相应的配置,以满足不同的产品需求。
3.2 运行视图
运行说明描述了实体间的关系。运行视图定义本系统各个实体间交互的关系,并且为理解系统动作是如何运行、、以及在哪里运行,提供了必要的信息。它也说明了实体间关系的类型,如共享信息、预定的执行次序、或者是已定义的参数接口。
要描述本系统由哪些线程组成(绘图),线程之间的关系如何,线程分别运行在哪个态:核心、应用或中断态。
软件工程学中定义的一些表示方法,如数据流图、UML、流程图等,都可以用来描述运行视图。
3.3 开发视图
描述代码的组织方式。这里只需要说明本系统的目录结构,以及代码的目录(包括公共目录,头文件目录等)分布。这里不需要写出代码具体有多少文件,以及文件名称等,只要归类就可以了。
4 接口说明
4.1 用户接口
说明将向用户提供的命令和它们的语法结构,以及响应信息。
4.2 外部接口
【1】描述本模块对外提供可以使用的接口说明。接口类型不一定就是函数,可以是API,回调,函数指针,也可以是事件、消息、报文数据、共享内存等。描述形式如:
(1)接口1: 某个API
必须说明以下内容:
声明:
输入参数描述:
返回值描述:
主要功能描述:描述提供该接口实现的目的;
函数的运行要求:允许在哪个态运行,是否可以重入,以及其他运行要注意的条件。
(2)接口2:某个消息
消息类型:
消息参数:
消息目的:描述该消息的含义和作用
实现方法:描述该消息如何提供,或者说外部如何得到该消息。
. . . . . .
[说明:对于一些涉及到临界区操作的接口,一定要注意加以说明。]
【2】需要外部提供的接口描述
5 各功能实体与处理流程说明
如果本设计文档包括好几个相对大的功能模块,则本章可以细分为几章进行描述,这个时候本章的标题可以是“模块1各功能实体与处理流程说明”,下一章的标题依此类推。
5.1 全局数据结构定义与说明
描述本系统定义的全局的以及主要的数据结构。
5.2 主要数据结构之间的关系
如果有多个数据结构,请说明它们之间的组织关系。
建议使用图表的形式说明。
如果结构比较简单,那么文字说明要简洁易懂。
5.3 各功能实体以及处理流程说明
5.3.1 功能实体1
功能1的处理流程说明,可以使用流程图、UML等方法进行描述。
说明如何实现这些功能,每个步骤是怎样实现的。
可根据功能再进行细分子实体进行描述。
这里有一点需要说明的是:如果本功能实体不再进行进一步分解的总体设计,那么这里必须描述本功能实体对外提供的接口,格式同4.2节
5.3.2 功能实体2
6 出错处理设计
6.1 出错信息
用一览表的方式说朗每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。
6.2 出错处理设计
说明系统出错时处理方法,如:数据自动备份、副本的建立和启动、数据恢复和重启技术等
6.3 系统维护设计
说明为了系统维护的方便而在程序内部设计中作出的安排,包括在程序中专门安排用于系统的检查与维护的检测点和专用模块。
7开发环境说明
说明本系统的开发环境和开发工具等,有何特别的说明和建议。
8其他
其它需要说明的。