优秀的程序员都是画图高手,用这17张架构图就能写好技术方案!横看成岭侧成峰,远近高低各不同。为了更好地理解软件系统,我

以下我们将重点分析借助哪些图表工具可以分析应用软件系统(Saas层)。这些图表的阅读者应该是开发者,产品经理,业务架构师,系统架构师,技术管理者等。

用例图是最清晰,最容易理解的图表,用例图从用户角度出发

用例图首先需要分析系统有哪些使用人员,可以借助以下问题分析

用例图因为其简单直白,容易被系统设计者忽略,实际上对于一个完全未接触系统的人,用例图是最友好,最直白的,可以让小白快速的了解我们的系统给哪些人提供了哪些功能。功能之间的联系是什么

用例规约是对用例的详细描述,一般包括简要说明、主事件流、备选事件流、前置条件、后置条件和优先级等。

后置条件应覆盖所有可能的用例结束后的状态。即后置条件不仅仅是用例成功结束后的状态,还应该包含用例因发生错误而结束后的状态。

用例图和系统页面如果有更详细的使用手册,则可以更快速的全面理解系统的功能。例如展示一下我们的系统页面。更加直观和清晰。

只有更好的了解系统提供了哪些功能,有哪几种角色,才能理解系统为什么这么设计某些人之所以会觉得用例图多此一举,是因为其对系统本身足够了解。但是他们忽略其他人对系统还是完全一片陌生。需要借助用例图,最直白的了解系统

程序=数据结构+算法,软件程序就是对输入数据进行处理,按照一定的算法,输出特定的数据。数据是程序的核心,也是容易变化的部分,例如最常见的变化:需要增减字段。

此时需要对数据进行建模,梳理模型之间的关联关系,为的是把关系最紧密的数据放到一个模型里,独立扩展。数据模型图描述了模型之间的关联关系,每个模型有哪些字段。三要素●模型●属性●模型间关联关系

数据模型图包括E-R图,数据库实体图。等。

个人认为设计文档里可以忽略E-R图,直接上数据库实体图。但是这就要求数据库实体图有充分的文字说明,例如属性注释,关联关系说明等。

数据库ER图,实体图或者领域模型图的设计非常考验设计经验。需要领域专家根据用例图,用例流程图,反复的需求沟通。不断地推敲以下问题

数据库ER图的分析过程可以使用DDD等设计方法。

以营销系统为例,分为管理流程和用户流程

一般使用方框表示组件,连线表示调用方法,动作或者数据。

按照组件思维设计流程图。要求把系统的组件先抽象出来,每个组件处理哪个步骤。淡化了输入输出,是简化版的调用时序图。(时序图描述方法调用层次,更加细化和清晰。)

以下示例是dubboProvider端暴露一个服务的组件调用的控制流变化图

高可靠高可用性能瓶颈,流程图中可以介绍核心读写流程的高可用,高可靠设计;即数据可靠性如何保证,系统可用性如何保证。性能瓶颈在流程中哪个节点。如何优化等

以下仅供参考

可以看到时序图精确到某个类调用了某个类的某个方法,把方法的调用嵌套的深度和层次都能展现出来。配合重要的关键节点注释,可以让读者即使不读代码也可以看到整体的方法调用体系。通过时序图我们可以得到

类图描述了类和类之间的依赖关系(组合,继承,接口)

类图的箭头关系描述了两个类之间是否依赖,集成/组合/接口实现。

例如一个接口只有一个实现类,没有复杂继承关系基本上不用写类图。

类似于Spring等极为复杂的框架,为了实现最大程度的复用和可扩展性。使用了大量的继承、接口实现类提高高扩展性和可复用性。这个时候如果没有类图,根本无法全面的了解一个接口,一个类的继承体系。不清楚某个类在继承体系中的位置。

一般情况下只有流程图和时序图里面能具体精确到某个类。当读者在流程图、时序图里经常看到某个几个类,就会疑问,这几个类有什么关联关系呢?

此时可以择机是否需要梳理一个类图展示依赖关系。

系统架构图为了描述应用内部的组件,模块等。一般情况下分为全系统架构图,单应用架构图

例如CouponJob服务负责发券,上层会有各种形式的发券活动关联该服务。兑换码,领券页面领券等等都依赖CouponJob发券服务能力。

应用间依赖关系最理想的情况是单方向依赖,如果上下游的两个服务存在明显的循环依赖,此时需要考虑,两个系统是否耦合严重,两个系统是否实现了类似的功能呢是否需要合并为一个服务呢

是否可以把关联性很强的业务模块放到一个服务里比较合适呢

应用架构重在描述应用之间的依赖关系,以及应用所处在系统的位置。是上层应用还是底层应用设计应用架构图时不建议把应用内的模块划分也囊括在应用架构图中,这样会导致架构图过于庞大,不利于理解

一个架构图只需要描述清楚一个视图即可。(职责尽量单一)

可以从表中看到

部署架构图重在描述应用在线上部署的情况

以下部署架构描述了应用在容器上部署,用户请求经过SLB负载均衡。静态资源访问,数据库服务部署在RDS。

以下场景需要梳理全链路上下游依赖图

梳理后可能发现需要对接口进行鉴权,防止任意调用方可以调用我们的服务。至少可以让我们感知到接口被调用,防止大流量,不合理的业务场景进行调用。也方便我们日后升级。

以上我们分析了设计文档应该包括哪些具体的图表,此外

设计文档的编写应该遵循以下基本原则

由于技术中间件功能诉求较为一致,使用者无需过多定制化,技术中间件开源项目以上的痛点不明显,然而电商交易等业务系统虽然通用性较多,但各行业各产品的业务差异化极大,所以导致以上痛点比较明显

所以我在思考,有没有一个开源系统,能提供电商交易的基础能力,能让开发者搭积木的方式,快速搭建一个完全契合自己业务的新系统呢?

开发者们,可以择需选择需要的能力组件,组件中差异化的部分有插件扩展点能轻松扩展。或者能支持开发者快速的重新写一个完全适合自己的新组件然后编排注册到系统中?

memberclub就是基于这样的想法而设计的。它的定位是电商类交易系统工具箱,以SDK方式对外提供通用的交易能力,能让开发者像搭积木方式,从0到1,快速构建一个新的电商交易系统!

具体介绍可参见

在这个项目中你可以学习到SpringBoot集成以下框架或组件。

THE END
1.一图看懂MDA软件建模方法基于MDA(Model Driven Architecture 模型驱动架构)软件范型,利用UML对一个原生的软件项目进行可视化设计,从业务模型(BM)、计算无关模型(CIM)、平台无关模型(PIM)、平台相关模型(PSM)分析建模。 模型驱动架构 模型构建流程 业务功能模型用基本的用例图表示,系统用例图源于业务活动图,鲁棒图来源于用例图和规约; https://www.jianshu.com/p/cf5082bcd7f7
2.汽车OBD接口针脚技术解密,几张图就能学会今天想用通俗的语言来说说汽车OBD接口的作用与那些针角的定义,几张图就能看懂汽车,理解修车就那么简单。 汽车维修其实没那么难,一台电脑或仪器就能随时检查汽车出现的问题,那么问题是连接汽车的接口呢? OBD接口-其实OBD就是一个名字,翻译过来叫车载自动诊断系统,没有那么高深,只要看懂了,自己都会修车,说简单点就是https://k.sina.cn/article_2546156290_97c34302001007p73.html
3.大嘉购手机收款app代理推广怎么赚钱,一张图看懂全部说明盛迪嘉支付大嘉购手机收款app通过邀请码注册即为商户,推广即为店主,除了可以省下一笔刷卡手续费以为,推广还可以赚钱。当然赚多赚少关键得看推广能力,其次代理级别也是非常重要的,在这里给有想法的用户、聪明的用户提供一张清晰的操作说明图,能看懂的用户说明你离成功赚钱不远了。 https://www.xrwf66.com/h-nd-801.html
4.幼儿园课件教案10篇5、师:(同时出示“秋天”和“冬天”的字卡)我这里还有两个字宝宝,谁会是秋天,谁又会是冬天呢?(请一幼儿指认) 6、师:(放大图四)请你们看看,我这又是什么季节呢?你会讲一讲这幅图吗?(请一幼儿讲述后再请小组幼儿讲一讲。) 7、师:(放大图五)我知道,你们肯定也会讲这幅图上的故事了,对吗?让我们一https://www.liuxue86.com/a/4999865.html
5.拉曼光谱图怎么看懂拉曼光谱是一种无损的分析技术,它是基于光和材料内化学键的相互作用而产生的,可以提供样品化学结构、相和形态、结晶度以及分子相互作用的详细信息。 二. 拉曼光谱能提供什么信息 一张拉曼谱图通常由一定数量的拉曼峰构成,每个拉曼峰代表了相应的拉曼散射光的波长位置和强度。每个谱峰对应于一种特定的分子键振动,其中https://m.sousepad.com/h-nd-3511.html
6.一张图简单看懂载波聚合与双连接的区别创事记新浪科技一张图简单看懂载波聚合与双连接的区别 来源:网优雇佣军 1)DC ,Dual-connectivity,双连接,就是UE同时与两个基站或者两种无线制式保持连接。CA,carrier aggregation,载波聚合,仅限于同一种无线制式下,大多数时候是同一个基站下的多个载波聚合。 2)DC在3GPP R12版本中引入,CA在3GPP R10版本中引入。http://finance.sina.com.cn/tech/csj/2021-01-12/doc-ikftssan5212201.shtml
7.一张图看懂全球主流卫浴品牌一张图看懂全球主流卫浴品牌 进口顶级品牌:当代(德)、劳芬(瑞士)、雅生(德)进口一线品牌:汉斯格雅(德)、德国麦德琪MDQ(德)、德力菲(德)、唯宝(德)、高仪(德)、科鲁迪(德)、卡德维(德)、吉博力(瑞士)、GESSI(意)、Roca(西班牙)、威达(土耳其)、科勒(美)、TOTO(日)、缇诺(奥)国产一线品牌:恒洁、箭牌、九https://m.dianping.com/ugcdetail/244539696?bizType=29
8.自己制作图片的软件有哪些APP推荐自己制作图片的软件有哪些下载豌豆荚自己制作图片的软件有哪些榜单为您提供最新自己制作图片的软件有哪些大全,这里不仅有自己制作图片的软件有哪些安卓版本APP、历史版本应用下载资源,还有类似自己制作图片的软件有哪些的应用推荐,欢迎大家前来豌豆荚下载。https://www.wandoujia.com/bangdan/398522/
9.VivadoVistiHLS(高亚军)高亚军fpga通常情况下,一个设计中的pin的个数明显高于cell的个数(关于cell和pin的概念可以看这里“一张图看懂cell, pin, net, port”)。这一点很好理解,毕竟一个Module/Entity至少包含一个输入/输出管脚。因此,在DCP文件中搜索pin比搜索cell要耗时。一个好的解决方案是利用cell和pin的附属关系来搜索pin,简言之,先找到cellhttps://blog.csdn.net/wxkhturfun/article/details/122722481
10.培智学校义务教育课程标准(2016年版)3. 经历从实际物体中抽象出简单几何体(球)和平面图形的过程,了解简单几何体(球)和常见的平面图形;初步形成识图能力。 4. 能根据给定的一个标准,对事物做初步的分类。 (二)数学思考 1. 了解生活中常见的量,感受常见的量在生活中的作用。 2. 运用10以内的数描述现实生活中的简单现象,初步形成数感;通过从物体https://yun.nxeduyun.com/index.php?r=space/school/theme/content/view&id=794545