**项目名称** **详细设计说明书** | 文件状态: | 文档密级: | 公开 | |---------------|------------|------------------------------| | 【 】草稿 | | | | 【 】修改稿 | | | | 【√】正式发布 | | | | | 当前版本: | V1.1 | | | 作者: | | | | 完成日期: | | ## 版本历史 | 日期 | 版本号 | 作者 | 备注 | | --- | --- | --- | --- | | | V1.0 | 黄伟 | 起草 | | **修改内容** | | | | | **增加内容** | | | | | **删除内容** | | | | | | V1.1 | 曾力 | | | **修改内容** | 系统设计章节调整简化,模块设计和中间件设计简化设计说明,详细设计内容在详细设计文档中编制。 | | | | **增加内容** | | | | | **删除内容** | | | | # 目录 - [1 前言](#前言) - [1.1 编写目的](#编写目的) - [1.2 背景与任务](#背景与任务) - [1.3 术语与缩略语](#术语与缩略语) - [1.4 参考资料](#参考资料) - [2 系统总体设计](#系统总体设计) - [2.1 逻辑架构](#逻辑架构) - [2.2 物理架构](#物理架构) - [2.3 对外接口](#对外接口) - [2.4 子系统列表](#子系统列表) - [2.5 子系统相互关系与接口](#子系统相互关系与接口) - [3 子系统1设计](#子系统1设计) - [3.1 功能与界面](#功能与界面) - [3.2 工程目录](#工程目录) - [3.3 模块列表](#模块列表) - [3.4 模块间关系](#模块间关系) - [3.4.1 功能关系群1](#功能关系群1) - [3.4.2 功能关系群2](#功能关系群2) - [3.5 模块设计](#模块设计) - [3.5.1 模块1](#模块1) - [3.5.2 模块2](#模块2) - [3.6 中间件和其他设计](#中间件和其他设计) - [3.6.1 缓存](#缓存) - [3.6.2 消息队列](#消息队列) - [3.6.3 定时任务](#定时任务) - [3.7 对外接口](#对外接口-1) - [4 非功能性需求的设计](#非功能性需求的设计) - [4.1 性能的考虑](#性能的考虑) - [4.2 兼容性的考虑](#兼容性的考虑) - [4.3 安全的考虑](#安全的考虑) - [4.4 可移植性的考虑](#可移植性的考虑) - [4.5 集成与测试的考虑](#集成与测试的考虑) - [4.6 可扩展性的考虑](#可扩展性的考虑) - [4.7 可靠性的考虑](#可靠性的考虑) - [4.8 可维护性的考虑](#可维护性的考虑) # 前言 文档编写原则: **1、所有修改调整都必须如实记录;** **2、对系统功能的修改,都必须对修改进行说明;** 整个文档编写说明: 1、文档编写完成后,请删除文档中出现的全部"填写说明"; 2、提交前,请刷新"目录"、"图表目录", 更新页眉页脚; 3、本说明书对整个软件系统按如下结构方式进行划分:"系统"、"子系统"、"模块"; 4、如果系统相对简单,不需要做"系统"、"子系统"的划分,则可直接按照"系统"、"模块"的层次划分即可\-\--把"子系统"修改为"模块"。 ## 编写目的 ## 背景与任务 ## 术语与缩略语 填写说明:在本文当中出现的专业性、缩略、专有和难懂性的词组或短语 | **术语、缩写** | **解释** | |---|---| | | | | | | ## 参考资料 # 系统总体设计 ## 逻辑架构 填写说明:需要有架构图和文字说明,若有必要需要分清层级。 ## 物理架构 填写说明:从物理部署方面说明系统架构,有必要的话需要标明IP,端口,协议,容器,负载均衡设计,防火墙设计等。 ## 对外接口 | 接口编号 | 接口名称(标识) | 功能描述 | 接口协议 | 输入参数 | 输出结果 | |---|---|---|---|---|---| | | | | | | | ## 子系统列表 | 子系统编号 | 子系统名称(标识) | 功能描述 | 开发方式 | |---|---|---|---| | | | | 采购/外包/自行开发/复用 | ## 子系统相互关系与接口 填写说明:明确子系统之间的调用关系、子系统间的接口(消息、数据结构)以及相关子系统之间的协同工作,可以使用结构图、(交互)事务图、消息序列图、ER 图描述。 # 子系统1设计 填写说明: 1、标题上加入子系统的编号及名称(标识) 2、设计子系统整体框架:子系统的逻辑结构。 3、模块的划分与依赖关系定义、模块之间的接口定义、模块功能定义。 ## 功能与界面 填写说明:说明子系统功能、作用范围等,展示子系统界面。 ## 工程目录 填写说明:展示并介绍系统的工程目录结构以及主要模块的作用。 ## 模块列表 | 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 | |---|---|---|---| | | | | 采购/外包/自行开发/复用 | ## 模块间关系 ### 功能关系群1 填写说明:用UML图描述各个模块间的关系,并介绍对应关系群的功能。 ### 功能关系群2 填写说明:用UML图描述各个模块间的关系,并介绍对应关系群的功能。 ## 模块设计 ### 模块1 填写说明:标题上加入模块的编号及名称(标识)。 #### 功能 填写说明:说明该模块具备什么样的基本功能,粘贴对应界面。 ##### 功能1 ###### 功能描述 说明功能用途,以及功能是否有约束,及约束描述等 ###### 其他说明 ##### 功能2 ###### 功能描述 说明功能用途,以及功能是否有约束,及约束描述等 ###### 其他说明 #### 接口 填写说明:列出与其它模块的接口,与其它系统或硬件的接口。 ##### 接口1 a、**接口名称** | ⽤户注册接口 | |---| b、**接口描述** | 1. ⽤户信息注册
2. ⽤户可以通过 ⼿机号/邮箱 进⾏注册
3. 同⼀个 ⼿机号/邮箱只能注册⼀个账号 | |---| ##### 接口2 a、**接口名称** | ⽤户注册接口 | |---| b、**接口描述** | 1. ⽤户信息注册
2. ⽤户可以通过 ⼿机号/邮箱 进⾏注册
3. 同⼀个 ⼿机号/邮箱只能注册⼀个账号 | |---| ### 模块2 填写说明:标题上加入模块的编号及名称(标识)。 #### 功能 填写说明:说明该模块具备什么样的基本功能,粘贴对应界面。 ##### 功能1 ###### 设计图 界面或原型图 ###### 功能描述 说明功能用途,以及功能是否有约束,及约束描述等 ###### 其他说明 ##### 功能2 #### 接口 填写说明:列出与其它模块的接口,与其它系统或硬件的接口。 ##### 接口1 a、**接口名称** | ⽤户注册接口 | |---| b、**接口描述** | 1. ⽤户信息注册
2. ⽤户可以通过 ⼿机号/邮箱 进⾏注册
3. 同⼀个 ⼿机号/邮箱只能注册⼀个账号 | |---| ##### 接口2 a、**接口名称** | ⽤户注册接口 | |---| b、**接口描述** | 1. ⽤户信息注册
2. ⽤户可以通过 ⼿机号/邮箱 进⾏注册
3. 同⼀个 ⼿机号/邮箱只能注册⼀个账号 | |---| ## 中间件和其他设计 ### 缓存 说明缓存设计技术、架构和用途、规则等; ### 消息队列 说明消息队列设计技术、架构和用途、规则等; ### 定时任务 | 使用工具 | 功能描述 | 调用规则 | |---|---|---| | | | 周期等 | ## 对外接口 填写说明:描述该软件子系统与外部实体的接口,包括页面、软件接口、硬件接口和通信接口。有提供接口文档的,填写见《接口文档》,附上源文件链接。 | 接口类型 | 接口名称(标识) | 功能描述 | 接口协议 | 备注 | |---|---|---|---|---| | | | | | | # 非功能性需求的设计 ## 性能的考虑 填写说明:为满足延时、吞吐量等性能,在既定硬件环境约束下所采取的设计方案。 ## 兼容性的考虑 填写说明:对以前版本的兼容,以及平滑升级的考虑。 ## 安全的考虑 填写说明:作为应用软件,在安全方面更多的是考虑访问控制,包括使用什么样的权限管理、分配、验证方案。 ## 可移植性的考虑 填写说明:系统如果有跨平台的需求,要考虑操作系统、中间件、应用服务器特性、数据库及第三方服务移植。描述如何在不同的平台移植,是否为可配置的。 ## 集成与测试的考虑 填写说明:各个子系统以及模块以什么先后次序进行开发、集成(组装)和测试,即是采用自底向上法还是自顶向下法。 ## 可扩展性的考虑 填写说明:不仅有对系统功能扩展的设计考虑,还要考虑系统的性能扩展,即可伸缩性。 1、如何最低成本地添加新的功能。 2、如何最低成本的复制一个新系统,并且新旧系统可以做成统一体。 ## 可靠性的考虑 填写说明:对故障检测、故障隔离、故障恢复、容错、冗余、备份的设计考虑。 ## 可维护性的考虑 填写说明: 1、系统模块是否可以装配,功能模块是否可以配置,整个系统是否已经参数化。 2、提供什么样的维护方式、接口及界面。 3、有哪些日常维护需求,并且如何处理。