当前位置: 首页 > news >正文

如何写架构设计⽂档

在软件设计的不同阶段应该设计不同的UML模型,将不同阶段输出的UML模型图放在⼀个⽂
档中,对每张模型图配以适当的⽂字说明,就构成⼀篇设计⽂档。
对于规模不太⼤的软件系统,我们可以将概要设计⽂档和详细设计⽂档合并成⼀个设计⽂档。
这⾥,我会展现⼀个设计⽂档示例模板,你可以参考这个模板编写你的设计⽂档。
⽂档开头是设计概述,简单描述业务场景要解决的核⼼问题领域是什么。⾄于业务场景,应该
在专⻔的需求⽂档中描述,但是在设计⽂档中,必须要再简单描述⼀下,以保证设计⽂档的完
整性,这样,即使脱离需求⽂档,阅读者也能理解主要的设计。
此外,在设计概述中,还需要描述设计的⾮功能约束,⽐如关于性能、可⽤性、维护性、安全
性,甚⾄开发和部署成本⽅⾯的设计⽬标。
然后就是具体的设计了,第⼀张设计图应该是部署图,通过部署图描述系统整个物理模型蓝
图,包括未来系统⻓什么样。
如果系统中包含⼏个⼦系统,那么还需要描述⼦系统间的关系,可以通过⼦系统序列图,⼦系
统活动图进⾏描述。
⼦系统内部的最顶层设计就是组件图,描述⼦系统由哪些组件组成,不同场景中,组件之间的
调⽤序列图是什么样的。
每个组件内部,需要⽤类图进⾏建模描述,对于不同场景,⽤时序图描述类之间的动态调⽤关
系,对于有复杂状态的类,⽤状态图描述其状态转换。
具体示例模板如下:
1 设计概述
……系统是⼀个……的系统,是公司……战略的核⼼系统,承担着公司……的⽬标任务。
1.1 功能概述
系统主要功能包括……,使⽤者包括……。
1.2 ⾮功能约束
……系统未来预计⼀年⽤户量达到……,⽇订单量达到……,⽇PV达到……,图⽚数量达到
……。
1. 查询性能⽬标:平均响应时间<300ms,95%响应时间<500ms,单机TPS>100; 2. 下单性能⽬标:平均响应时间<800ms,95%响应时间<1000ms,单机TPS>30;
3. ……性能⽬标:平均响应时间<800ms,95%响应时间<1000ms,单机TPS>30;
4. 系统核⼼功能可⽤性⽬标:>99.97%;
5. 系统安全性⽬标:系统可拦截…… 、……、……攻击,密码数据散列加密,客户端数据
HTTPS加密,外部系统间通信对称加密;
6. 数据持久化⽬标:>99.99999%。
2 系统部署图与整体设计
系统上线时预计部署……台物理机,……个⼦系统,和公司……系统交互,和外部第三⽅……
个系统交互。
2.1 系统部署图
⼦系统1的功能职责为……,部署……台服务器,依赖……和……⼦系统,实现 ……功能。
⼦系统2参照⼦系统1来写
2.2 下单场景⼦系统序列图
1. 下单时,⼦系统先发送……消息到⼦系统3,⼦系统3需要执⾏……完成……处理,然后发
送……消息到财务系统,消息中包含……数据。
2. 收到……的处理结果……后,⼦系统1发送……消息到……⼦系统2……。
2.3 退款场景⼦系统序列图
1. 退款⼦系统先发送……消息到⼦系统3,⼦系统3需要执⾏……完成……处理,然后发
送……消息到财务系统,消息中包含……数据。
2. 收到……的处理结果……后,⼦系统1发送……消息到……⼦系统2……。
退款场景⼦系统活动图
如图所示:
1. 退款开始时,⼦系统1处理XXX,然后判断m的状态,如果m为真,请求⼦系统3处理
ZZZ,如果m为假,⼦系统继续处理ZZZ并结束。
2. ⼦系统3处理ZZZ后,⼀⽅⾯继续处理XYZ,⼀⽅⾯将……消息发送给财务通进⾏AAA处
理。
3. ⼦系统在处理完XYZ后,返回⼦系统继续梳理YYY,然后退款处理结束

推荐阅读

  • 实战领域驱动设计指导架构设计与建模
  • 银行IT治理——安全架构定义-CSDN博客
  • 如何使用 Ollama 在本地设置和运行 DeepSeek R1-CSDN博客
  • DevOps落地的关键要素

http://www.mrgr.cn/news/91580.html

相关文章:

  • Flutter - 初体验
  • Django 连接(sqlserver)数据库方法
  • C# 背景 透明 抗锯齿 (效果完美)
  • 基于Flask的第七次人口普查数据分析系统的设计与实现
  • 整理一些安装环境的常用命令
  • python的类与对象。为什么有些东西要用到类和对象。普通的编程方式不行吗?
  • 电容的温度系数分析
  • CSDN文章质量分查询系统【赠python爬虫、提分攻略】
  • javaSE学习笔记23-线程(thread)-总结
  • JavaScript中判断元素是否在可视区域内
  • 机器学习实战(7):聚类算法——发现数据中的隐藏模式
  • deepseek-r1系列模型部署分别需要的最低硬件配置
  • frameworks 之 Activity添加View
  • 【愚公系列】《Python网络爬虫从入门到精通》022-Splash的爬虫应用
  • C++17 中的 std::uncaught_exceptions:异常处理的新利器
  • 数学推理中在推理规模化下检查假阳性解
  • Windows 图形显示驱动开发-IoMmu 模型
  • 关于 BK3633 上电时受串口 UART2 影响而无法启动的问题说明
  • 2025年人工智能与教育系统国际学术会议(ICAIES 2025)
  • 远程计算机无conda情况下配置python虚拟环境