架构师之路(七)之五视图方法论

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

一、多阶段还是多视图

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

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

二、软件架构设计的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图

 

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

 

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值