概要设计文档

概要设计文档指南

修订记录

序号需求修订人修订内容时间
1题库xxx题库系统设计2023-12-06

术语说明

背景

技术背景

业务背景

目标

非目标

是一些可以作为目标而被刻意选择不作为目标的项目

整体架构

描述该方案支持的架构特征,以及模块、模块间的依赖关系、模块间的数据依赖关系。
一些可选择的架构特征如下:
可维护性、可配置、高可用、高性能、安全性、可靠性、数据一致性。
架构特征的支撑最终由我们的架构设计来提现,包含在结构、模块内的服务走向和核心流程设计里面。
其中可维护性几乎是所有架构设计都要支撑的特征。

整体架构设计

模块间的依赖关系

模块间的数据依赖

模块内服务依赖(可选)

详细设计(必选)

在这一节中,除了介绍设计方案的细节,还应该包括在产生最终方案过程中,主要的设计思想及考虑过的权衡(trade-off)。这一节的结构和内容因设计对象(系统,API,流程等)的不同可以自由决定,可以划分一些小节来更好地组织内容,尽可能以简洁明了的结构阐明整个设计。
有一些设计思考点应该贯穿于设计的始终,在以下每个小节中体现。包括但不限于:
l未来如何扩展(特别是水平扩展)?如果不支持,瓶颈是什么,解决方案是什么?
l是否需要自动弹性扩缩容?需要的话如何实现?
l是否需要支持多租户?需要的话,是否需要做隔离,方案是什么?
通常可以包含以下内容(注意,小节的命名可以更改为更清晰体现内容的标题):

核心流程设计(必选)

核心流程设计是对业务场景,制定控制规则,是针对服务的功能和交互的具体约束说明,这一部分的编写应该关注核心抽象,以保持交互的稳定性。通常建议使用UML时序图或者UML交互图来表达。

API设计(可选)

数据存储设计(可选)

数据库设计(可选)

NoSQL存储设计(可选)

数据上报(可选)

这里描述需要上报哪些数据,上报哪些字段,如何上报,如何存储,以及如何使用。
以及相关预估数据:单条记录大小预估、每天新增记录条数和空间占用等。

配置字段设计(必选)

需考虑配置的键设计的整个生命周期,避免冗余、过期字段的出现。
最小配置

编码安全涉及(必选)

需考虑如何防止 xss 、csrf、ssrf、SQL注入攻击等漏洞攻击

其他设计考虑(可选)

相关非功能性需求描述,围绕安全性,可用性,可靠性,性能,可支持性主题,项目对涉及到的主题进行描述,例子如下:

部署规划(可选)

工作量预估(必选)

参考资料(必选)

概要设计模板参考 1.引言1.1编写目的  [说明编写这份概要设计说明书的目的,指出预期的读者。]1.2背景  a.[待开发软件系统的名称;]  b.[列出本项目的任务提出者、开发者、用户。]1.3定义  [列出本文件中用到的专门术语的定义和外文首字母组词的原词组。]1.4参考资料  [列出有关的参考资料。]2.总体设计2.1需求规定  [说明对本系统的主要的输入输出项目、处理的功能性能要求。包括]  2.1.1系统功能  2.1.2系统性能    2.1.2.1精度    2.1.2.2时间特性要求    2.1.2.4可靠性    2.1.2.5灵活性  2.1.3输入输出要求  2.1.4数据管理能力要求  2.1.5故障处理要求  2.1.6其他专门要求2.2运行环境  [简要地说明对本系统的运行环境的规定。]  2.2.1设备  [列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能。]  2.2.2支持软件  [列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。]1  2.2.3接口  [说明该系统同其他系统之间的接口、数据通信协议等]  2.2.4控制  [说明控制该系统的运行的方法和控制信号,并说明这些控制信号的来源。]2.3基本设计概念和处理流程  [说明本系统的基本设计概念和处理流程,尽量使用图表的形式。]2.4结构  [给出系统结构总体框图(包括软件、硬件结构框图),说明本系统的各模块的划分,扼要说明每个系统模块的标识符和功能,分层次地给出各模块之间的控制与被控制关系。]2.5功能需求与系统模块的关系  [本条用一张矩阵图说明各项功能需求的实现同各模块的分配关系。]    [系统模块1] [系统模块2] [……] [系统模块m][功能需求1]  √             [功能需求2]      √         [┇]                [功能需求n]      √       √ 2.6人工处理过程  [说明在本系统的工作过程中不得不包含的人工处理过程。]2.7尚未解决的问题  [说明在概要设计过程中尚未解决而设计者认为在系统完成之前必须解决的各个问题。]3.接口设计3.1用户接口  [说明将向用户提供的命令和它们的语法结构,以及相应的回答信息。]  [说明提供给用户操作的硬件控制面板的定义。]3.2外部接口  [说明本系统同外界的所有接口的安排包括软件与硬件之间的接口、本系统与各支持系统之间的接口关系。]3.3内部接口  [说明本系统之内的各个系统元素之间的接口的安排。]4.运行设计4.1运行模块组合  [说明对系统施加不同的外界运行控制时所引起的各种不同的运行模块组合,说明每种运行所历经的内部模块的支持软件。]4.2运行控制  [说明每一种外界的运行控制的方式方法和操作步骤。]4.3运行时间  [说明每种运行模块组合将占用各种资源的时间。]5.系统数据结构设计  [不涉及软件设计可不包含]5.1逻辑结构设计要点  [给出本系统内软件所使用的每个数据结构的名称、标识符以及它们之中每个数据项、记录、文卷和系的标识、定义、长度及它们之间的层次的或表格的相互关系。]5.2物理结构设计要点  [给出本系统内软件所使用的每个数据结构中的每个数据项的存储要求,访问方法、存取单位、存取的物理关系、设计考虑和保密条件。]5.3数据结构与程序的关系  [说明各个数据结构与访问这些数据结构的各个程序之间的对应关系。]    [程序1] [程序2] [……] [程序m][数据结构1]  √             [数据结构2]      √         [┇]                [数据结构n]      √       √ 6.系统出错处理设计6.1出错信息  [用一览表的方式说明每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。]6.2补救措施  [说明故障出现后可能采取的变通措施。包括:]  a.后备技术 [说明准备采用的后备技术,当原始系统数据万一丢失时启用的副本的建立和启动的技术,例如周期性地把磁盘信息记录到磁带上去就是对于磁盘媒体的一种后备技术。]  b.降效技术 [说明准备采用的后备技术,使用另一个效率稍低的系统或方法来求得所需结果的某些部分,例如一个自动系统的降效技术可以是手工操作和数据的人工记录。]  c.恢复及再启动技术 [说明将使用的恢复再启动技术,使软件从故障点恢复执行或使软件从头开始重新运行的方法。]6.3系统维护设计  [说明为了系统维护的方便而在程序内部设计中作出的安排,包括在程序中专门安排用于系统的检查与维护的检测点和专用模块。]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值