软件的架构设计说明书主要包括功能和技术两个部分,其中功能是说明解决的某一类痛点问题;技术是为功能架构服务,通过技术架构来完成功能架构的落地和实现。

功能架构和技术架构两者是相辅相成的,相互独立而又无法分开,下面我对整体架构设计应该包含包含的元素做一个简单的介绍。

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、总结

架构设计既要高瞻远瞩,又要脚踏实地,让人看完后知道如何落地。一个深思熟虑的设计可以节省大量的编码、测试、后期扩展、维护及降低故障排除成本。

推荐

说说常见数据库及中间件的主从设计

故障排除的思路及见解


原创不易,随手关注或者”在看“,诚挚感谢!

架构设计说明书究竟应该包含什么相关推荐

  1. 架构设计之如何写架构设计说明书

    架构设计是需求分析到软件实现的桥梁,也是决定软件质量的关键.编制架构设计说明书是开发人员向架构师转变必定会经历的过程.在架构师整个的成长过程中,必定会经历编制架构设计说明书.评审架构设计说明书以及根据 ...

  2. 自动驾驶代客泊车架构设计说明书

    目    录 0       修订历史... 2 1.    概要... 5 1.1. 目的... 5 1.2. 适用范围... 5 1.3. 参考文档... 5 2.    缩写或定义... 5 3 ...

  3. 【系统设计】架构设计说明书

    文章目录 1. 引言 1.1. 编写目的 1.2. 读者对象 1.3. 名词术语定义 1.4. 参考资料 2. 系统概述 3. 架构设计目标和约束 3.1. 架构设计目标 3.2. 约束需求 3.3. ...

  4. 【软件工程】架构设计说明书

    文章目录 1. 引言 1.1. 编写目的 1.2. 读者对象 1.3. 名词术语定义 1.4. 参考资料 2. 系统概述 3. 架构设计目标和约束 3.1. 架构设计目标 3.2. 约束需求 3.3. ...

  5. 嵌入式软件架构设计----中控机NIOS软件系统架构设计说明书

    下面文档系本人开发的流媒体数字会议系统中控机的软件架构,有写的不好的地方,欢迎拍砖 1 .引言 1.1编写目的和使用范围 1.1.1 编写目的 本文档用来确定Nios的软件架构,以便帮助软件工程师更好 ...

  6. 多AZ双活容灾部署的云端系统架构设计说明书框架

    1.简介 1.1 范围 1.2 背景 1.3 参考文献 1.4 缩略语 2.需求分析 2.1 需求描述 2.2 需求范围 3. 设计描述 3.1 顶层设计 3.1.1 系统上下文 3.1.2 逻辑视图 ...

  7. 架构设计 例子和实践

    系统设计说明书(架构.概要.详细)目录结构 虽然这些文档一般来说公司都是有模板的,但我写这些文档以来基本上是每写一次就把目录结构给改一次,应该说这是因为自己对这些文档的理解开始加深,慢慢的越来越明白这 ...

  8. 如何做好软件系统的架构设计?

    软件系统架构(Software Architecture)是关于软件系统的结构.行为.属性.组成要素及其之间交互关系的高级抽象.任何软件开发项目,都会经历需求获取.系统分析.系统设计.编码研发.系统运 ...

  9. 如何进行软件系统架构设计?

    基于体系架构的软件设计模型把软件过程划分为体系架构需求.设计.文档化.复审.实现和演化6个子过程,现逐一简要概述如下. 1.体系架构需求.即将用户对软件系统功能.性能.界面.设计约束等方面的期望(即& ...

最新文章

  1. 【SSH网上商城项目实战19】订单信息的级联入库以及页面的缓存问题
  2. jQuery 教程02-jQuery 语法
  3. 两款高大尚广告GO跳转页PHP源码
  4. c 判断文件是否存在_C++基础:判断文件是否存在的方法
  5. 灰鸽子门徒自曝抓肉鸡内幕
  6. KVO(NSKeyValueObserving)、KVC(NSKeyValueCoding)作用浅谈
  7. vss导入git vss导入svn
  8. 015-JVM-使用javap查看class文件内容
  9. layui icon服务器上显示不出来,关于layui的动态图标不显示的解决方法
  10. PDF文件实现在线盖章
  11. 我的Android进阶之旅------报 error: Apostrophe not preceded by \ 的错误解决办法
  12. 【Coding】Latex添加表格注释footnote
  13. 4.1EF Core
  14. 判断数组中是否存在某个元素
  15. 【整理】Makefile编写规则
  16. html 完整性验证,验证消息完整性的方法是() - 问答库
  17. 破解TP-Link路由-嗅探PPPoE拨号密码
  18. 中文处理工具fastHan 2.0:支持中文分词、词性标注、命名实体识别、依存语法分析、中文AMR的强有力工具
  19. python怎么处理文档_7.python文件的处理方式
  20. AlphaFold蛋白质结构预测协助发现首个CDK20的小分子抑制剂

热门文章

  1. 使用rtklib进行实时PPP定位
  2. 值得学习的C语言开源项目
  3. Renamer给文件名倒序
  4. 对于云计算,大数据和人工智能与物联网的认识及理解
  5. SRM 624 Building Heights DivI 解读
  6. 在线编辑文档—字体字号颜色设置
  7. 高版本自动接听电话方法
  8. 脉冲编码调制基本知识概念
  9. 无线端自定义模块html编辑,关于阿里巴巴无线端旺铺自定义模块如何设置图片全屏自动适应的问题...
  10. Python数据分析学习四 NumPy基础:数组和矢量计算