架构设计-五视图

文章目录

  • 1.什么是架构设计
  • 2.架构设计为了解决什么问题
  • 3.架构的分类

1.什么是架构设计

我们要成为架构设计师我们需要了解什么是架构设计。简单一点,架构设计就是一个系统的草图,描述了构成系统的抽象组件,以及各个组件之间的是如何进行通讯的,这些组件在实现过程中可以被细化为实际的组件比如类或者对象。在面向对象领域中,组件之间的联通通常面向于接口实现的。

2.架构设计为了解决什么问题

开发之初逻辑设计阶段要确定系统如何开发,整个系统融合为一个系统开发还是从业务角度将系统拆分为几个独立的子系统。

在即将进入开发的时候关注了数据是如何持久化的,以及数据库选型、以及非数据库文件的存储格式,等这些存储方案的确定。

在开发过程中我们要关注如何保证开发质量,如何分层,代码可扩展性,使用的设计模式,依赖了那些框架,开发语言这些方向的确定。

开发完成之后进入运行阶段,如何在架构设计的时候保证运行期间的质量属性、性能、可伸展性等,主要是系统运行进程的划分,以及进程之间通过线程来通信。

同时如果系统并非是单机运行,还需考虑系统的物理部署,系统部署在那个服务器上,这些服务器配置性能怎样能否胜任系统的运行,操作系统选型,以及系统部署的网络拓扑图,还有就是保证数据安全的数据备份怎样设计的。

3.架构的分类

对于“架构”来讲,理论上划分了5种架构视图,分别是:逻辑架构、开发架构、运行架构、物理架构、数据架构。
架构设计-五视图_第1张图片

架构视图 着重考虑 关注点 描述方式
逻辑架构 1.功能需求——系统应答向用户提供什么样的服务。2.不仅包括用户可见的功能,还包括为实现用户功能而必须提供的“辅助功能模块” 行为和职责的划分。 分层架构,功能模块或者类图。UML:静态——包图,类图,对象图;动态——序列图,协作图,状态图,活动图。
开发架构 1.着重考虑开发环境中模块的实际组织方式 2.包括源程序文件、配置文件、源程序包、编译后的目标文件和第三方库文件等。 软件开发环境中软件模块实际组织方式——具体涉及源程序文件,配置文件,源程序包,编译后的目标文件和第三方库文件。 UML:包图,类图,组件图
运行架构 运行期质量属性——性能,可伸缩性,持续可用性,安全性 系统的并发和同步,涉及进程和线程技术。 UML:包图类图对象图来说明运行时的关键的概念;序列图,协作图等来描述交互机制。
物理架构 安装和部署的需求——包括计算机,网络,硬件设施情况,以及如何部署 软件单元如何映射到硬件,以及硬件相关的可靠性,可伸缩性,性能和安全性等。 UML:部署图,组件图
数据架构 数据需求 持久化数据的组织,数据传递,数据复制和数据同步策略。 E-R图

参考:
https://blog.csdn.net/degwei/article/details/51489444(软件架构设计-五视图方法论)

你可能感兴趣的:(UML)