378 lines
12 KiB
Markdown
378 lines
12 KiB
Markdown
**项目名称**
|
||
|
||
**概要设计说明书**
|
||
|
||
<table>
|
||
<colgroup>
|
||
<col style="width: 31%" />
|
||
<col style="width: 24%" />
|
||
<col style="width: 43%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td rowspan="4"><p>文件状态:</p>
|
||
<p>【 】草稿</p>
|
||
<p>【 】修改稿</p>
|
||
<p>【√】正式发布</p></td>
|
||
<td style="text-align: right;">文档密级:</td>
|
||
<td>公开</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="text-align: right;">当前版本:</td>
|
||
<td>V1.2</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="text-align: right;">作者:</td>
|
||
<td></td>
|
||
</tr>
|
||
<tr>
|
||
<td style="text-align: right;">完成日期:</td>
|
||
<td></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
**版本历史**
|
||
|
||
| | | | |
|
||
|--------------|------------|----------|----------|
|
||
| **日期** | **版本号** | **作者** | **备注** |
|
||
| | V1.0 | | 起草 |
|
||
| **修改内容** | | | |
|
||
| **增加内容** | | | |
|
||
| **删除内容** | | | |
|
||
| **日期** | **版本号** | **作者** | **备注** |
|
||
| | | | |
|
||
| **修改内容** | | | |
|
||
| **增加内容** | | | |
|
||
| **删除内容** | | | |
|
||
|
||
目录
|
||
|
||
[1 前言 [3](#前言)](#前言)
|
||
|
||
[1.1 编写目的 [3](#编写目的)](#编写目的)
|
||
|
||
[1.2 背景 [3](#背景)](#背景)
|
||
|
||
[1.3 术语与缩略语 [3](#术语与缩略语)](#术语与缩略语)
|
||
|
||
[1.4 参考资料 [3](#参考资料)](#参考资料)
|
||
|
||
[2 系统总体设计 [4](#系统总体设计)](#系统总体设计)
|
||
|
||
[2.1 任务概述 [4](#任务概述)](#任务概述)
|
||
|
||
[2.2 设计概述 [4](#设计概述)](#设计概述)
|
||
|
||
[2.2.1 总体约束 [4](#总体约束)](#总体约束)
|
||
|
||
[2.2.2 系统外部接口 [4](#系统外部接口)](#系统外部接口)
|
||
|
||
[2.2.3 设计方案概述 [4](#设计方案概述)](#设计方案概述)
|
||
|
||
[2.3 系统架构设计 [5](#系统架构设计)](#系统架构设计)
|
||
|
||
[2.3.1 系统的逻辑架构设计 [5](#系统的逻辑架构设计)](#系统的逻辑架构设计)
|
||
|
||
[2.3.2 系统的物理架构设计 [5](#系统的物理架构设计)](#系统的物理架构设计)
|
||
|
||
[2.4 子系统定义(按需,若无可删除)
|
||
[5](#子系统定义按需若无可删除)](#子系统定义按需若无可删除)
|
||
|
||
[2.4.1 子系统列表 [5](#子系统列表)](#子系统列表)
|
||
|
||
[2.4.2 子系统间关系 [5](#子系统间关系)](#子系统间关系)
|
||
|
||
[3 子系统1设计(若无则删除)
|
||
[6](#子系统1设计若无则删除)](#子系统1设计若无则删除)
|
||
|
||
[3.1 任务概述 [6](#任务概述-1)](#任务概述-1)
|
||
|
||
[3.2 设计概述 [6](#设计概述-1)](#设计概述-1)
|
||
|
||
[3.2.1 总体约束 [6](#总体约束-1)](#总体约束-1)
|
||
|
||
[3.2.2 子系统外部接口 [6](#子系统外部接口)](#子系统外部接口)
|
||
|
||
[3.2.3 设计方案概述 [7](#设计方案概述-1)](#设计方案概述-1)
|
||
|
||
[3.3 子系统架构设计 [7](#子系统架构设计)](#子系统架构设计)
|
||
|
||
[3.4 模块定义 [7](#模块定义)](#模块定义)
|
||
|
||
[3.4.1 模块列表 [7](#模块列表)](#模块列表)
|
||
|
||
[3.4.2 模块间关系 [7](#模块间关系)](#模块间关系)
|
||
|
||
[3.4.3 模块描述 [8](#模块描述)](#模块描述)
|
||
|
||
[4 非功能性需求的实现方案
|
||
[9](#非功能性需求的实现方案)](#非功能性需求的实现方案)
|
||
|
||
[4.1 性能的考虑 [9](#性能的考虑)](#性能的考虑)
|
||
|
||
[4.2 兼容性的考虑 [9](#兼容性的考虑)](#兼容性的考虑)
|
||
|
||
[4.3 安全的考虑 [9](#安全的考虑)](#安全的考虑)
|
||
|
||
[4.4 可移植性的考虑 [9](#可移植性的考虑)](#可移植性的考虑)
|
||
|
||
[4.5 集成与测试的考虑 [9](#集成与测试的考虑)](#集成与测试的考虑)
|
||
|
||
[4.6 可扩展性的考虑 [9](#可扩展性的考虑)](#可扩展性的考虑)
|
||
|
||
[4.7 可靠性的考虑 [10](#可靠性的考虑)](#可靠性的考虑)
|
||
|
||
[4.8 可维护性的考虑 [10](#可维护性的考虑)](#可维护性的考虑)
|
||
|
||
[5 难点及解决方案 [11](#难点及解决方案)](#难点及解决方案)
|
||
|
||
# 前言
|
||
|
||
文档编写原则:
|
||
|
||
**1、所有修改调整都必须如实记录;**
|
||
|
||
**2、对系统功能的修改,都必须对修改进行说明;**
|
||
|
||
整个文档编写说明:
|
||
|
||
1、文档编写完成后,请删除文档中出现的全部“填写说明”;
|
||
|
||
2、提交前,请刷新“目录”、“图表目录”, 更新页眉页脚;
|
||
|
||
3、本说明书对整个软件系统按如下结构方式进行划分:“系统”、“子系统”、“模块”;
|
||
|
||
4、如果系统相对简单,不需要做“系统”、“子系统”的划分,则可直接按照“系统”、“模块”的层次划分即可---把“子系统”修改为“模块”,删掉3.4的“模块定义”部分。
|
||
|
||
## 编写目的
|
||
|
||
## 背景
|
||
|
||
## 术语与缩略语
|
||
|
||
填写说明:在本文当中出现的专业性、缩略、专有和难懂性的词组或短语
|
||
|
||
| | |
|
||
|:--------------:|:--------:|
|
||
| **术语、缩写** | **解释** |
|
||
| | |
|
||
| | |
|
||
|
||
## 参考资料
|
||
|
||
# 系统总体设计
|
||
|
||
## 任务概述
|
||
|
||
填写说明:概述需求的要求,参考《需求规格说明书》。
|
||
|
||
## 设计概述
|
||
|
||
填写说明:
|
||
|
||
1、设计系统整体框架:系统最高层次的逻辑结构、物理结构。
|
||
|
||
2、子系统的划分与依赖关系定义、子系统之间的接口定义、子系统功能定义。
|
||
|
||
### 总体约束
|
||
|
||
填写说明:
|
||
|
||
1、技术条件
|
||
|
||
2、资金状况
|
||
|
||
3、开发环境(语言、版本、工具、平台)
|
||
|
||
4、时间限制
|
||
|
||
5、等等
|
||
|
||
### 系统外部接口
|
||
|
||
| | | | | | |
|
||
|----------|------------------|----------|----------|----------|----------|
|
||
| 接口编号 | 接口名称(标识) | 功能描述 | 接口协议 | 输入参数 | 输出结果 |
|
||
| | | | | | |
|
||
|
||
### 设计方案概述
|
||
|
||
填写说明:概述设计方案,有必要的需要使用图表说明。
|
||
|
||
## 系统架构设计
|
||
|
||
### 系统的逻辑架构设计
|
||
|
||
填写说明:需要有架构图和文字说明,若有必要需要分清层级。
|
||
|
||
### 系统的物理架构设计
|
||
|
||
填写说明:从物理部署方面说明系统架构,有必要的话需要标明IP,端口,协议,容器,负载均衡设计,防火墙设计等。
|
||
|
||
## 子系统定义(按需,若无可删除)
|
||
|
||
### 子系统列表
|
||
|
||
| | | | |
|
||
|------------|--------------------|----------|-------------------------|
|
||
| 子系统编号 | 子系统名称(标识) | 功能描述 | 开发方式 |
|
||
| | | | 采购/外包/自行开发/复用 |
|
||
|
||
### 子系统间关系
|
||
|
||
填写说明:明确子系统之间的调用关系、子系统间的接口(消息、数据结构)以及相关子系统之间的协同工作,可以使用结构图、(交互)事务图、消息序列图、ER
|
||
图描述。
|
||
|
||
# 子系统1设计(若无则删除)
|
||
|
||
填写说明:
|
||
|
||
1、标题上加入子系统的编号及名称(标识)
|
||
|
||
2、设计子系统整体框架:子系统的逻辑结构。
|
||
|
||
3、模块的划分与依赖关系定义、模块之间的接口定义、模块功能定义。
|
||
|
||
## 任务概述
|
||
|
||
填写说明:说明设计意图目标(总目标、分期目标)、作用范围等。
|
||
|
||
## 设计概述
|
||
|
||
### 总体约束
|
||
|
||
填写说明:
|
||
|
||
1、编码约定:规定代码体系、模块之间的接口和命名规则。
|
||
|
||
2、文件约定:规定子系统的所有配置、日志等文件命名方式与格式。
|
||
|
||
3、目录约定:规定子系统的目录结构,包括运行目录、源文件目录、配置目录、日志目录、数据目录等。
|
||
|
||
4、其他约定:列出对软件设计有重要影响的系统内外部约束和限制,可选的约束包括用户环境内存或其它资源限制、数据存储和分发需求、安全和可靠性需求、性能需求、测试和可维护性需求。
|
||
|
||
### 子系统外部接口
|
||
|
||
填写说明:描述该软件子系统与外部实体的接口,包括用户界面、软件接口、硬件接口和通信接口。
|
||
|
||
| | | | | | |
|
||
|----------|------------------|------------|----------|----------|----------|
|
||
| 接口编号 | 接口名称(标识) | 功22能描述 | 接口协议 | 输入参数 | 输出结果 |
|
||
| | | | | | |
|
||
|
||
### 设计方案概述
|
||
|
||
填写说明:
|
||
|
||
如果在“设计概述”中已描述过的部分,可略。
|
||
|
||
描述内容包括:
|
||
|
||
1、整个设计所采用的方法:面向对象设计还是结构化设计。
|
||
|
||
2、采用的系统架构:例如MVC 架构、N 层架构。
|
||
|
||
3、使用的相应技术和工具:例如OMT、Rose、Visio。
|
||
|
||
4、采用的框架技术的形式。
|
||
|
||
5、使用的设计模式:层模式、微内核模式、代理模式等。
|
||
|
||
6、描述资源/内存分配,Flash 资源/文件分配。
|
||
|
||
7、描述哪些模块采用软件复用。
|
||
|
||
## 子系统架构设计
|
||
|
||
填写说明:定义子系统的总体逻辑结构,定义模块划分以及模块之间的依赖关系。可以采用分层结构描述如何将子系统分解为模块。结构描述可以使用结构图、层次分解图、数据流图,并用文字说明相互间的关系。
|
||
|
||
## 模块定义
|
||
|
||
### 模块列表
|
||
|
||
| | | | |
|
||
|----------|------------------|----------|-------------------------|
|
||
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|
||
| | | | 采购/外包/自行开发/复用 |
|
||
|
||
### 模块间关系
|
||
|
||
填写说明:明确模块之间的调用关系、模块间的接口(消息、数据结构)以及相关模块之间的协同工作,如模块间时序图,协作图,以及系统之间状态切换流程图。
|
||
|
||
### 模块描述
|
||
|
||
#### 模块1
|
||
|
||
填写说明:标题上加入模块的编号及名称(标识)。
|
||
|
||
#### 功能描述
|
||
|
||
填写说明:说明该模块具备什么样的基本功能,以及每个功能之间的相互关系。
|
||
|
||
#### 性能描述
|
||
|
||
填写说明:说明对模块的性能要求,包括精度、时间特性和处理速度。
|
||
|
||
#### 接口描述
|
||
|
||
填写说明:说明与其它模块的接口,与其它系统或硬件的接口。
|
||
|
||
#### 配置描述
|
||
|
||
填写说明:说明该模块所处的逻辑位置、物理位置,如指明模块放在哪个应用服务器或客户端的哪个目录、哪个文件(库),或是在数据库内部建立的对象。
|
||
|
||
# 非功能性需求的实现方案
|
||
|
||
## 性能的考虑
|
||
|
||
填写说明:为满足延时、吞吐量等性能,在既定硬件环境约束下所采取的设计方案。
|
||
|
||
## 兼容性的考虑
|
||
|
||
填写说明:对以前版本的兼容,以及平滑升级的考虑。
|
||
|
||
## 安全的考虑
|
||
|
||
填写说明:作为应用软件,在安全方面更多的是考虑访问控制,包括使用什么样的权限管理、分配、验证方案。
|
||
|
||
## 可移植性的考虑
|
||
|
||
填写说明:系统如果有跨平台的需求,要考虑操作系统、中间件、应用服务器特性、数据库及第三方服务移植。描述如何在不同的平台移植,是否为可配置的。
|
||
|
||
## 集成与测试的考虑
|
||
|
||
填写说明:各个子系统以及模块以什么先后次序进行开发、集成(组装)和测试,即是采用自底向上法还是自顶向下法。
|
||
|
||
## 可扩展性的考虑
|
||
|
||
填写说明:不仅有对系统功能扩展的设计考虑,还要考虑系统的性能扩展,即可伸缩性。
|
||
|
||
1、如何最低成本地添加新的功能。
|
||
|
||
2、如何最低成本的复制一个新系统,并且新旧系统可以做成统一体。
|
||
|
||
## 可靠性的考虑
|
||
|
||
填写说明:对故障检测、故障隔离、故障恢复、容错、冗余、备份的设计考虑。
|
||
|
||
## 可维护性的考虑
|
||
|
||
填写说明:
|
||
|
||
1、系统模块是否可以装配,功能模块是否可以配置,整个系统是否已经参数化。
|
||
|
||
2、提供什么样的维护方式、接口及介面。
|
||
|
||
3、有哪些日常维护需求,并且如何处理。
|
||
|
||
# 难点及解决方案
|
||
|
||
填写说明:列出可能的疑难问题,并尽可能能给出基本解决思路(包括关键算法、时序、数据结构等)。可采用表格方式。
|
||
|
||
| | |
|
||
|----------|------------------|
|
||
| 难点描述 | 可采取的解决方案 |
|
||
| | |
|