架构设计说明书究竟应该包含什么
软件的架构设计说明书主要包括功能和技术两个部分,其中功能是说明解决的某一类痛点问题;技术是为功能架构服务,通过技术架构来完成功能架构的落地和实现。
功能架构和技术架构两者是相辅相成的,相互独立而又无法分开,下面我对整体架构设计应该包含包含的元素做一个简单的介绍。
1、引言
这部分应该说明架构设计的背景、目的、文档术语、及参考资料介绍清楚。
比如...系统是一个...的系统,系统的主要功能...,用户...能够完成...目标和任务;
术语和定义、文档最好通过图表的形式进行展示,这样让人看起来一目了然。
2、整体功能设计
这里应该对系统的整体功能、子系统之间的交互、运行方式...做一个简单介绍
系统跟 xxx 第三方系统进行交互,系统上线时机房部署位置为 xxx....
2.1、系统部署图
介绍图中每个系统或者中间件的作用,介绍时要遵循一个原则,站在别人或者小白的角度是否能够理解这个介绍。如果系统 X1、系统 X2、系统 X3 都是本次新开发系统,下文要依次介绍
如果没有使用云原生环境部署,这里还需要介绍下部署环境依赖情况及部署原则。
2.2、逻辑架构图
逻辑架构主要用于说明各个服务之间的数据流向或者调用关系,比如下图,然后分别小标题介绍每个系统的作用。
2.3、技术架构图
技术架构图是用来指导技术开发的,通常要包含该架构使用了什么技术,并根据需要介绍为什么选择这个技术,如何使用....
3、系统 X1 设计
介绍子系统 X1 的主要职责,完成 xx 的功能,主要包含的组件有哪些,并进行一一介绍
可以包括日志打印约定、配置约束、依赖约束、异常约束等必要的规范。
3.1、系统 X1 核心功能及流程
这部分最好通过图文并茂的方式说明核心功能,可以使用流程图或者时序图,对于复杂的部分加以文字解释。
3.2、系统 X1 接口
目前很多公司都有自己的接口文档服务器,例如 yapi、或者代码生成的文档,这里可以给出链接,但是文档必须标明输入、输出、错误码。
3.3、系统 X1 非功能性设计
系统核心功能可用性指标大于 P99.95
系统核心接口 qps、延迟、资源占用情况
系统出错设计
系统安全性指标
3.4、类设计
类图主要阐述了类与类之间的关系(这里的类是一个通用概念,包含接口),在进行需求分析时用于分析业务概念的利器,以提高需求和设计的效率。
3.5、数据库设计
数据一旦形成,修改成本比较高,所以数据库设计一定要规范化,比如日期的数据类型应该如何定义、非空约束、唯一约束、主键应该如何使用和定义要有自己的规范。
如果存在其它子系统,则依次循环介绍....
4、总结
架构设计既要高瞻远瞩,又要脚踏实地,让人看完后知道如何落地。一个深思熟虑的设计可以节省大量的编码、测试、后期扩展、维护及降低故障排除成本。
推荐
说说常见数据库及中间件的主从设计
故障排除的思路及见解
原创不易,随手关注或者”在看“,诚挚感谢!
架构设计说明书究竟应该包含什么相关推荐
- 架构设计之如何写架构设计说明书
架构设计是需求分析到软件实现的桥梁,也是决定软件质量的关键.编制架构设计说明书是开发人员向架构师转变必定会经历的过程.在架构师整个的成长过程中,必定会经历编制架构设计说明书.评审架构设计说明书以及根据 ...
- 自动驾驶代客泊车架构设计说明书
目 录 0 修订历史... 2 1. 概要... 5 1.1. 目的... 5 1.2. 适用范围... 5 1.3. 参考文档... 5 2. 缩写或定义... 5 3 ...
- 【系统设计】架构设计说明书
文章目录 1. 引言 1.1. 编写目的 1.2. 读者对象 1.3. 名词术语定义 1.4. 参考资料 2. 系统概述 3. 架构设计目标和约束 3.1. 架构设计目标 3.2. 约束需求 3.3. ...
- 【软件工程】架构设计说明书
文章目录 1. 引言 1.1. 编写目的 1.2. 读者对象 1.3. 名词术语定义 1.4. 参考资料 2. 系统概述 3. 架构设计目标和约束 3.1. 架构设计目标 3.2. 约束需求 3.3. ...
- 嵌入式软件架构设计----中控机NIOS软件系统架构设计说明书
下面文档系本人开发的流媒体数字会议系统中控机的软件架构,有写的不好的地方,欢迎拍砖 1 .引言 1.1编写目的和使用范围 1.1.1 编写目的 本文档用来确定Nios的软件架构,以便帮助软件工程师更好 ...
- 多AZ双活容灾部署的云端系统架构设计说明书框架
1.简介 1.1 范围 1.2 背景 1.3 参考文献 1.4 缩略语 2.需求分析 2.1 需求描述 2.2 需求范围 3. 设计描述 3.1 顶层设计 3.1.1 系统上下文 3.1.2 逻辑视图 ...
- 架构设计 例子和实践
系统设计说明书(架构.概要.详细)目录结构 虽然这些文档一般来说公司都是有模板的,但我写这些文档以来基本上是每写一次就把目录结构给改一次,应该说这是因为自己对这些文档的理解开始加深,慢慢的越来越明白这 ...
- 如何做好软件系统的架构设计?
软件系统架构(Software Architecture)是关于软件系统的结构.行为.属性.组成要素及其之间交互关系的高级抽象.任何软件开发项目,都会经历需求获取.系统分析.系统设计.编码研发.系统运 ...
- 如何进行软件系统架构设计?
基于体系架构的软件设计模型把软件过程划分为体系架构需求.设计.文档化.复审.实现和演化6个子过程,现逐一简要概述如下. 1.体系架构需求.即将用户对软件系统功能.性能.界面.设计约束等方面的期望(即& ...
最新文章
- 【SSH网上商城项目实战19】订单信息的级联入库以及页面的缓存问题
- jQuery 教程02-jQuery 语法
- 两款高大尚广告GO跳转页PHP源码
- c 判断文件是否存在_C++基础:判断文件是否存在的方法
- 灰鸽子门徒自曝抓肉鸡内幕
- KVO(NSKeyValueObserving)、KVC(NSKeyValueCoding)作用浅谈
- vss导入git vss导入svn
- 015-JVM-使用javap查看class文件内容
- layui icon服务器上显示不出来,关于layui的动态图标不显示的解决方法
- PDF文件实现在线盖章
- 我的Android进阶之旅------报 error: Apostrophe not preceded by \ 的错误解决办法
- 【Coding】Latex添加表格注释footnote
- 4.1EF Core
- 判断数组中是否存在某个元素
- 【整理】Makefile编写规则
- html 完整性验证,验证消息完整性的方法是() - 问答库
- 破解TP-Link路由-嗅探PPPoE拨号密码
- 中文处理工具fastHan 2.0:支持中文分词、词性标注、命名实体识别、依存语法分析、中文AMR的强有力工具
- python怎么处理文档_7.python文件的处理方式
- AlphaFold蛋白质结构预测协助发现首个CDK20的小分子抑制剂