谈软件架构就不得不说说五视图方法论。

一、多阶段还是多视图

软件架构设计是多视图的,也是多阶段的,首先是多阶段的。

先左后做——这叫阶段,齐头并进——这叫视图。

二、软件架构设计的5视图

根据关注角度的不同,软件架构又分为逻辑架构、开发架构、运行架构、数据架构和物理架构。

逻辑架构:着重考虑功能需求,系统应当向用户提供什么样的服务,关注点主要是行为或职责的划分。逻辑架构关注的功能,不仅包括用户可见的功能,还应当包括为实现用户功能而必须提供的辅助功能。逻辑架构更偏向我们所说的“分层”,像经典的“三层架构”。逻辑架构的静态方面是抽象职责的划分,动态方面是承担不同职责的逻辑单元之间的交互与协作关系。

开发架构:着重考虑开发期间的质量属性,关注点是在软件开发环境中软件模块(包)的实际组织方式,具体涉及源程序文件、配置文件、源程序包、编译打包后的目标文件,还包括应用程序依赖的SDK、三方库、中间件以及开发的系统将运行于其上的系统软件和逻辑架构有紧密的关联。

运行架构:着重考虑软件运行期间的质量属性,关注点是系统的并发、同步、通信等问题,这势必涉及到进程、线程、对象等运行时概念。运行架构的静态方面关注软件系统运行时的单元结构,动态方面关注运行时单元之间的交互机制。例如比较常见的“线程同步”问题、死锁问题、对象的生命周期问题等。

物理架构:重考虑安装和部署需求,主要关注软件运行的系统、网络、服务器等基础设施以及如何通过服务器部署和配置网络环境,来实现应用程序的可伸缩性、高可用性等。

数据架构:着重考虑数据需求,关注点是持久化数据的存储方案,不仅包括实体及实体关系数据存储格式,还可能包括数据传递、数据复制、数据同步等策略问题。如何选择关系型数据库、NOSQL,如何保障数据存储层面的性能、高可用性、灾备。

前三种视图,可以归纳为软件架构,而后两种架构,则归为系统架构。

三、五视图成果物

架构视图

重点考虑

关注点

成果物

逻辑架构

功能需求

行为和职责的划分

  1. 分层设计
  2. 包和接口设计
  3. 数据流设计
  4. 协作设计
  5. 用例设计
  6. 业务流程设计

开发架构

扩展性、可重用性、可移植性、易测试性

模块组织形式:

  1. 代码模板化
  2. 模块重用
  3. 高内聚
  4. 开发规范
  5. 模块可扩展
  6. 模块可维护
  7. 团队协作开发
  8. 模块通用性
  1. 包图、类图
  2. 组件图

运行架构

性能、伸缩性、高可用、安全性

并发和同步

  1. 序列图
  2. 协作图

物理架构

安装和部署的需求

硬件的可伸缩性、高可用性

  1. 部署图

数据架构

数据存储的需求

性能、高可用性、灾备

  1. E-R图
卜算子•美人谷
风露凉松竹,
云叶生寒树。
崖边飞泉不忍闻,
愁阵层山处。
何处最知秋,
风停江山暮。
遥望飞鸿无人来,
欲把愁分付。

架构师之路(七)之五视图方法论相关推荐

  1. java架构师什么学校好_Java架构师之路:年薪八十万的架构师课程

    原标题:Java架构师之路:年薪八十万的架构师课程 不管是开发.测试.运维,每个技术人员心里都有一个成为技术大牛的梦,毕竟"梦想总是要有的,万一实现了呢"!正是对技术梦的追求,促使 ...

  2. 架构师之路 扩充字段_扩大您作为设计师的业务影响力的四个基础

    架构师之路 扩充字段 While catching up with my designer friends during these days of quarantine, a common topi ...

  3. 架构师之路:从码农到架构师你差了哪些

    转载自   架构师之路:从码农到架构师你差了哪些 Web应用,最常见的研发语言是Java和PHP. 后端服务,最常见的研发语言是Java和C/C++. 大数据,最常见的研发语言是Java和Python ...

  4. 架构师之路17年精选80篇

    [架构必备] <互联网架构如何实现"高并发">4W+ <TCP接入层的负载均衡.高可用.扩展性架构设计>2.2W+ <配置中心架构设计演进>1. ...

  5. 架构师之路---面向过程和面向对象 王泽宾

    1.引言    机算机科学是一门应用科学,它的知识体系是典型的倒三角结构,所用的基础知识并不多,只是随着应用领域和方向的不同,产生了很多的分支,所以说编程并不是一件很困难的事情,一个高中生经过特定的训 ...

  6. MySql数据库-58沈剑 架构师之路

    最近在看 "58沈剑 架构师之路"的公众号,写的非常简练,干货很多.但里面也充斥了很多广告和管理类的文章,本文主要是对里面的数据库文章做一个汇总: InnoDB,5项最佳实践,知其 ...

  7. Java高级架构师之路核心知识整理

    小编整理出一篇Java高级架构师之路的核心知识,同时也是面试时面试官必问的知识点,篇章也是包括了很多知识点,其中包括了有基础知识.Java集合.JVM.多线程并发.spring原理.微服务.Netty ...

  8. 1对多业务,数据库水平切分架构一次搞定 | 架构师之路

    1对多业务,数据库水平切分架构一次搞定 | 架构师之路 原创 2017-07-10 58沈剑 架构师之路 架构师之路 架构师之路 微信号 road5858 功能介绍 架构师之路,坚持撰写接地气的架构文 ...

  9. 架构师之路,2020半年精选!!!

    不知不觉,2020年已经过了一半了.今天,架构师之路,简单做个总结,如果错过一些好文,这是一个补票的好机会.点击标题,直接阅读. 架构实践: <究竟如何保证,session一致性?> &l ...

最新文章

  1. Bio-protocol与Cell Research达成合作:共同提升科研的可重复性
  2. AI目前的根本问题——缺乏 自由意志,无法分辨真正的善恶
  3. python修改文件内容最后一行_关于python:如何修改文件的最后一行?
  4. 【有三说深度学习】深度学习前夕
  5. SpringBoot实战 之 异常处理篇
  6. linux 文件 加密传输,服务端和客户端之文件加密传输
  7. MaxScale中间件部署数据库读写分离
  8. JavaScript函数的arguments(2)
  9. 英康手机订单系统APP使用说明
  10. 如何用密码保护 macOS 文件夹?
  11. 我是如何战胜懒惰的?
  12. 南阳oj-----一种排序(优先队列法)
  13. Matplotlib - 中文字体
  14. 边缘检测之LoG算子(高斯-拉普拉斯算子)
  15. 下载Win10系统和在VM虚拟机中配置完成
  16. 格式塔心理学5项法则的学习与思考
  17. python中如何引入π_python如何计算π
  18. 黑客也看《人民的名义》:把手机卡扔马桶有 bug
  19. 人生百味-7:一个人干活,一群人催进度,谁之过?
  20. 学校计算机学院教学管理ER图,教学管理系统数据库ER图及SQL语句.doc

热门文章

  1. 【通信】盖氏圆盘方法(GDE)计算均匀直线阵(ULA)中信号源个数附matlab代码
  2. 【101】NLP 自然语言处理14种分类算法】
  3. 个人资料管理经验总结
  4. 招银网络 Java后端面经
  5. 快速复现利用Log4j漏洞启动windows计算器
  6. Redis主从复制架构初步探索 http://www.sxt.cn/info-1750-u-324.html#SXT_h2_11
  7. Leet Code OJ 刷题顺序参考
  8. 云服务器htdocs文件夹在,htdocs文件夹
  9. 我的世界热力膨胀JAVA_我的世界1.12-1.6.4热力膨胀 Thermal Expansion Mod下载
  10. 案例分享:Qt+Arm+Fpga医疗肾镜(又名内窥镜)(实时影像、冻结、拍照、白平衡、九宫格、录像、背光调整、硬件光源调整、光源手动自动调整、物理按键)