架构设计说明书究竟应该包含什么
软件的架构设计说明书主要包括功能和技术两个部分,其中功能是说明解决的某一类痛点问题;技术是为功能架构服务,通过技术架构来完成功能架构的落地和实现。
功能架构和技术架构两者是相辅相成的,相互独立而又无法分开,下面我对整体架构设计应该包含包含的元素做一个简单的介绍。
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、总结
架构设计既要高瞻远瞩,又要脚踏实地,让人看完后知道如何落地。一个深思熟虑的设计可以节省大量的编码、测试、后期扩展、维护及降低故障排除成本。
相关文章
- 分布式 | dble 启动的时候做了什么之配置检测
- 面试官:MyBatis 插件有什么用途?说说底层原理?我竟然不会。。
- 测开要做的开发工作到底是做什么
- Web3.0学习笔记:什么是Web3.0?
- 提升进程权限有什么用_system权限结束进程
- 面试题-页面导入样式时,使用link和@import有什么区别,请详述讲解
- add attribute什么意思_addition的用法及短语
- 什么是混合云?与公有云、私有云有啥区别?
- EasyCVR调用接口获取RTSP/RTMP播放地址,出现RTSP流地址重复是什么原因?
- WERCS是什么认证,美国WERCSmart注册最新法规,WERCS订阅模式概述
- 打造数据驱动型组织,成长型企业最需要什么?
- 一文揭晓:手机号码归属地api的作用是什么?
- 易点易动低代码平台能给企业固定资产管理带来什么价值?
- 什么是迭代器,Python迭代器及其用法
- 什么是ODBC和JDBC详解程序员
- 夹可能包含什么Linux A文件夹中精彩内容探究(linux下a文件)
- 指针是什么(详解版)
- 七夕送女朋友什么礼物好?送当贝投影F3合适么?
- 医院MSSQL:一种数据库解决方案(医院mssql是什么)
- 理解Linux文件系统:inode是什么?(inodelinux)
- 警惕红色厄运了解Redis劫持的危险(什么是redis劫持)