专栏首页别明天就今天吧面向对象架构设计流程

面向对象架构设计流程

架构设计分为几个环环相扣的步骤:业务架构->领域架构->软件架构

业务架构:只关注整体的业务流程,不关注具体的业务需求细节。

领域架构:从业务架构中提取出来。

软件架构:与"设计模式"类似,基于"领域架构",应用架构设计原则和方法,精雕细琢,逐步迭代,得出最终的软件架构。

业务架构:

1.全新的业务系统

怎么知道用户业务系统呢,最简单的方法是问客户,如:

沃尔玛:仓库管理、物流、店面、支付等几个部分

铁路售票:订票、查票、支付等几个部分

简单的说,最初的架构就是对客户业务系统的模拟!

2.已有架构优化

在原有架构上增强即可。

3.业务架构实例

假设我们要创建一个商城,商城的业务架构可以简化如下:

业务功能要求

商城在电视上投放商品广告;

客户看电视获取商品信息;

客户打电话找商城客服下单;

客服下出货单;

仓库管理员出货,交给物流人员;

物流人员送货,客户支付;

物流人员将出货单和款项交给结算中心;

结算中心确认后,订单完成;

业务架构和用例模型一样,其实都是文字描述,比较抽象,不需要关注各种异常或分支处理流程,只需要描述出业务的整体结构即可。

业务约束和限制

性能 :每秒处理10w订单;

成本 :整套方案不超过1000w;

可靠性:全年中断5分钟;

技术性:使用JAVA

兼容性:与集团其他系统兼容;

领域架构:

在业务机构的基本要求中,提炼领域架构。提炼业务模块:广告、商品、订单、仓库、物流、支付、结算,并找出模块之间的关系;

软件架构:

第一步:照猫画虎

直接将各个模块映射为子系统。

可行的架构:功能需求和质量需求同时满足。

第二步:按图索骥

满足质量需求,业务的质量属性有很多,如性能、可靠性、成本等。为满足每秒10万订单,可以增加订单子系统的机器,也可以拆分订单子系统为接单子系统、下单子系统、商品查询子系统。

第三步:深思熟虑

深思:全面评估各个备选方法的优劣点;

熟虑:挑选最优方案;

哪个方案优点多,就选择哪个方案,当优点个数一样的时候,就需要找到更加靠谱的方法,就是按优先级选择:优先选择我们最关注的质量属性表现占优的方案,以此类推。

质量需求是架构设计的推动力。

本文分享自微信公众号 - 别明天就今天吧(gh_916f9a413d1e),作者:今天不晚

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 面向对象架构设计基础

    架构就是系统的结构和组织,架构是系统的顶层结构。"顶层"意味着"架构"的粒度到当前系统的子系统或者子模块位置。

    别明天就今天吧
  • 面试题-Synchronized实现两个线程交替打印

    线程之间的通信有很多种方式,使用Synchronized实现两个线程的交替打印,主要是利用Object对象的wait、notify方法,下面来看下代码:...

    别明天就今天吧
  • 面试题-JAVA设计模式之单例模式的5种实现方式

    如果说Spring框架是乾坤大挪移,那么设计模式就是九阳神功,学会了九阳神功在学其他的武功就会非常容易,设计模式是解决复用性功能的一套经验方法,我们写代码的时候...

    别明天就今天吧
  • 软件架构入门

    合适的架构是软件成功的最重要因素之一。大型软件公司通常有专门的架构师职位(architect),只有资深程序员才可以担任。

    lyb-geek
  • 阿里p7专家:年薪50w+ 只因做到了这几点......

    1. 学校不错,一般都是985,211,如果学校一般,那么你下面的2和3满足的话,问题也不大。

    java思维导图
  • 工作多年,我对架构的一些理解

    每一个程序员都听过架构这个词,每一个程序员都有自己对此的理解和看法,本文分享我对架构的理解。

    Frank909
  • 架构随聊

      “架构”是我们这行业种一个很常见的词,表明其必然也是经历了很长的岁月打磨所形成的一个词。架构的这个词出现的意义是什么?为了解决什么问题?只有把这2个问题想明...

    Zachary_ZF
  • 对软件架构的一些思维脑图整理

    Java高级架构
  • 架构漫谈(一):什么是架构?

    架构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,专栏将会以Kevin的架构经验为基础,逐步讨论什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问...

    Java高级架构
  • 聊聊架构设计做些什么来谈如何成为架构师

      也因为碎片化的时间多了,所以开始刷某乎了,关注了架构相关的板块,也顺手回答了一些问题。发现有很多同道中人正在经历着我前两年经历的阶段,对于做架构没有相对具象...

    Zachary_ZF

扫码关注云+社区

领取腾讯云代金券