zoukankan      html  css  js  c++  java
  • 软件架构的5视图法

    5视图法可以帮助软件架构师以不同的视角对软件的各个方面的属性:功能需求,约束,运行期质量属性,开发期质量属性。

    1、  逻辑架构:逻辑架构关注功能,不仅包括用户可见的功能,还包括为实现用户功能而必须提供的“辅助功能模块”——。

    2、  开发架构:开发架构关注程序包,不仅包括要编写的源程序,还包括可以直接使用的第三方SDK 和现场框架、类库,以及开发的系统将运行于其上的系统软件或中间件。关注编译时刻的静态依赖关系。

    3、  运行架构:运行架构关注进程、线程、对象等运行时概念,以及相关的并发,同步,通信等问题。运行架构关注运行期间各个单元的交互。

    4、  物理架构:物理架构关注“目标程序及其依赖的运行库和系统软件”最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性,可伸缩性等要求。

    5、  数据架构:数据架构关注持久化数据的存储方案,不仅包括实体及实体关系的存储格式、还包括数据传递,数据复制,数据同步等策略。

     

    开发的策略。

     

    1、逻辑架构的设计着重考虑功能需求——系统应该向用户提供什么样的服务。

    架构视图

    着重考虑

    关注点

    工具

    逻辑架构

    功能需求——系统应答向用户提供什么样的服务

    行为和职责的划分

    UML :静态——包图,类图,对象图;动态——序列图,协作图,状态图,活动图。

    开发架构

    开发期的质量属性——可扩展性,可重用性,可移植性,易理解性,易测试性

    软件开发环境中软件模块实际组织方式——具体涉及源程序文件,配置文件,源程序包,编译后的目标文件和第三方库文件

    UML:包图,类图,组件图

    运行架构

    运行期质量属性——性能,可伸缩性,持续可用性,安全性

    系统的并发和同步,涉及进程和线程技术

    UML:包图类图对象图来说明运行时的关键的概念;序列图,协作图等来描述交互机制。

    物理架构

    安装和部署的需求——包括计算机,网络,硬件设施情况,以及如何部署

    软件单元如何映射到硬件,以及硬件相关的可靠性,可伸缩性,性能和安全性等

    UML:部署图,组件图

    数据架构

    数据需求

    持久化数据的组织,数据传递,数据复制和数据同步策略

    E-R图

    每种架构视图都包含动态方面和静态方面

    对于架构视图的选择和架构视图的数目,可以根据实际的需要决定,并不是所有的架构设计要使用全部的架构视图,也不是所有的架构视图只有5 个——根据具体的需要可以增加,这里只是作者概况的最常见的 5 种视图。

    之所以采用架构设计的视图法,这和软件需求的复杂性有关。 软件架构师必须明确区分功能需求,约束,运行期质量属性和开发期质量属性等不同种类的需求,这些需求对架构设计的影响是截然不同。基于五视图的架构设计在一定程度上将各类需求分别对待,通过不同的架构设计视图分别满足它们,从而确保重要的需求一一被满足。


  • 相关阅读:
    PAT A1147 Heaps (30 分)——完全二叉树,层序遍历,后序遍历
    # 数字签名&数字证书
    # Doing homework again(贪心)
    # Tallest Cows(差分)
    # ACM奇淫技巧
    # 二维前缀和+差分
    # 费解的开关(二进制+递推+思维)
    # log对数Hash映射优化
    # 起床困难综合症(二进制枚举+按位求贡献)
    # 最短Hamilton路径(二进制状态压缩)
  • 原文地址:https://www.cnblogs.com/daocaowu/p/3369253.html
Copyright © 2011-2022 走看看