《软件体系结构》——笔记(2)

4+1视图

  • 模型:对无法直观测的对象的可视化描述或近似

    • 模型是对现实的简化
    • 模型提供了系统的蓝图
    • 模型可以是结构化的,着重描述系统的组织架构
    • 模型可以是行为化的,着重描述系统的动态行为
  • 为什么要建模?

    • 建模可以让我们更好的理解我们构建的系统
    • 通过建模,可以实现以下四个目标
      • 对系统进行可视化
      • 规约系统的结构或行为
      • 用于指导构建系统的模板
      • 将设计决策形成文档
  • 架构视图:从特定的视角对系统的简化描述(抽象),覆盖特定的关注点可,忽略那些与该视角无关的实体对象

    架构视图带来的问题:

    • 架构视图过度强调开发方面,没有解决所有利益相关者关注的问题

    • 软件系统的利益相关者: 用户、开发者、系统工程师、项目经理

    • 软件工程师极力添加更多的信息到架构图中,导致架构图复杂

    解决方案:

    • 采用多个并发视图,每个视图用不同的符号展示不同的关注点
    • 用“4+1”视图为大的、复杂的架构建模
  • 4+1视图模型

  • 逻辑视图:系统的功能抽象。将系统分解为多个功能组件,描述其功能关系
  • 开发视图:系统的详细设计与实现的抽象

更多的用的是类图、时序图、流程图

  • 过程视图:描述系统的非功能性和系统的运行特征

  • 物理视图:描述系统的硬件拓扑结构

  • 场景视图:描述系统重要的业务用例

一般有用例图描述,具体的场景用时序图或流程图描述

建模工具和语言

UML语言

  • UML语言使用于对软件密集型系统的物件进行可视化规范化构建文档化

  • UML语言的组成:

    • 建模元素:

      • 结构化元素:类、接口、协作、用例、组件、节点
      • 行为元素:交互、状态机
      • 分组元素:包、子系统
      • 其他元素:注释

  • 关系:

    • 依赖:一个对象依赖于另一个关系
    • 关联
      • 聚合关系:表示一个对象是另一个对象的一部分,但他们的生命周期可以不一样
      • 组合关系:表示一个对象是另一个对象的一部分,他们的生命周期必须一样
    • 泛化:继承关系
    • 实现:类对接口的实现
  • 扩展机制:可以用扩展机制来表述符号体系内没有规定的元素

    • 构造型
    • 标记值
    • 约束
  • 图:类图、对象图、组件图、部署图、活动图、状态图、通信图、时序图、用例图

模型(Models)、视图(Views)、图(Diagrams)

模型

  • 模型是从某个特定的视角对于一个系统的完整描述

  • 图是模型的一个视角

    • 从某个特定的利益相关者的视角展示系统
    • 提供系统的局部描述
    • 与其他图语义一致
  • UML中,有13种标准图

    • 静态视图:用例图、类图、对象图、组件图、部署图、包图、组合结构图
    • 动态视图:通信图、时序图、状态机图、活动图、定时图、交互概览图

用例图

  • 描述系统的功能需求
  • 长方形代表系统边界
  • 椭圆形:表示一个用例,代表了系统的功能
  • 火柴人:代表系统的参与者,可以是系统外部的人也可以 是设备
  • 线:代表用力之间或者参与者与用力之间的交互
  • 业务用例图
    • 从用户的视角描述系统的功能需求
    • 开发早起阶段使用
    • 目的
      • 确定系统上下文
      • 捕捉系统需求
      • 验证系统架构
      • 驱动系统实现和测试用例生成
    • 由领域专家和系统分析师完成

类图

  • 捕获系统的词汇表

  • 目的:

    • 对系统中的概念进行命名和建模
    • 确定协作关系
    • 确定逻辑数据库结构
  • 由分析师、设计师和开发人员完成

对象图

  • 描述对象实例和对象实例之间的关系

  • 在分析和设计阶段绘制

  • 目的:

    • 描述数据/对象结构
    • 某个时间点系统的快照
  • 由分析师、设计师、开发人员共同绘制

组件图

  • 描述系统实现的物理结构

  • 是架构设计的一部分

  • 目的

    • 组织源代码
    • 构建可执行的release版本
    • 表达物理数据库
  • 由架构师和程序员共同绘制

部署图

  • 描述系统硬件的拓扑结构

  • 作为架构设计的一部分

  • 目的

    • 描述组件的硬件部署
    • 识别性能瓶颈
  • 由架构师、网络工程师、系统工程师共同绘制

时序图

  • 描述面向时间的动态行为

  • 目的

    • 对控制流进行建模
    • 描述用例场景

通信图

  • 描述面向信息的动态行为

  • 目的

    • 对控制流进行建模
    • 描述对象结构和控制的协调

状态图

  • 描述面向事件的动态行为

  • 目的

    • 为对象生命周期进行建模
    • 为响应对象建模(用户界面、设备等)

活动图

  • 描述面向行为的动态行为

  • 目的

    • 为业务工作流建模
    • 为操作建模
打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!

请我喝杯咖啡吧~

支付宝
微信