软件体系结构-UML概述与结构建模

软件体系结构建模概述

UML 是统一建模语言,是一种分析设计语言,也是一种建模语言,是由图形符号表达的建模语言,是一种用于描绘软件蓝图的标准语言,偶尔也要注释。

UML 的结构包括模型结构和通用机制:

  • 模型元素包括事物以及事物之间的联系,无论在哪个图中,同一个模型元素都保持同样的意义和符号。

  • 通用机制包括规格说明、修饰、公共分类、扩展机制这四种,允许用户对 UML 进行扩展。

UML的特点:

  • 工程化,规范化,可视化,系统化,文档化,智能化

基于软件体系结构的开发

软件体系结构模型:

结构模型、框架模型、动态模型、过程模型、功能模型

Kruchten ‘4+1’ 视图模型:

逻辑视图、开发视图、过程视图、物理视图 + 场景视图

UML中的结构建模

类图

类图使用需要出现在系统内的不同的类来描述系统的静态结构,类图包含类和它们之间的关系,它描述系统内所声明的类,但它没有描述系统运行时类的行为。

类图中的对象

  1. 可见性:

    1
    2
    3
    4
    5
    //可见性一般有四种
    // +:表示public
    // -:表示private
    // #:表示protected
    // ~:表示default(不写也表示default)
  2. 抽象类

    抽象类的类名和抽象方法使用斜体字表示(用笔画时可以适当添加注释防止斜体看不清)

  3. 静态属性/方法

    在属性/方法下加下划线表示static

  4. 接口

类图中的关系

  1. 关联关系

    关联关系语义较弱(相比于聚合、组合)。关联关系使一个对象知道另一个对象的属性和方法,表现为一个对象持有另一个对象的引用

    1
    2
    3
    4
    //数字表示关联的数量
    // 0...* :0个到多个
    // 0...1 :0个到一个
    // 1...* :1个到多个

    单向关联(一个员工有多个地址):

    双向关联(不带箭头)(一个老师有多个学生,一个学生可以有多个老师):

  2. 聚合关系

    “has a”的关系,体现整体与部分的拥有关系,部分和整体可以独立存在,有独立的生命周期。(整体对象不控制部分对象的生命周期)

    使用尾部带空心棱形的箭头,箭头指向部分。

  3. 组合关系

    “contains a”的关系,整体与部分是不可分的,同生共死的。

    整体可以控制部分的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。

    使用尾部带实心棱形的箭头,箭头指向部分

  4. 依赖关系

    如果对象A用到对象B,但是和B的关系不是太明显的时候,就可以把这种关系看作是依赖关系,如绑定,友元等

  5. 泛化关系(继承)

  6. 实现关系(实现接口)

对象图(类图的实例)

包图

  • 用于描述包与包之间的关系
  • 一种把元素组织到一起的通用机制
  • 图标是一个带标签的文件夹

两种组包方式:

  • 根据系统分层架构组包(推荐)
  • 根据系统业务功能模块组包(用于二次组包)

包图的关系:

  1. 引入关系:

    一个包中的类可以被另一个指定包(以及嵌套于其中的那些包)中的类引用。

    在线上加上<<import>>

  2. 泛化关系:

    表示一个包继承了另一个包的内容,同时又补充自己增加的内容。

  3. **嵌套关系:**一个包可以包含若干个子包

组件图

又叫构件图,通常包括组件、接口以及各种关系。组件图显示组件以及它们之间的依赖关系,组件一般来说就是一个实际文件,可以分为三种类型:

  • 源代码组件
  • 二进制组件
  • 可执行组件

组件图组成元素:

  1. 组件:系统中可以替换的部分,一般对应一个实际文件,如exe、jar、dll等文件,它遵循并提供了一组接口的实现。

  2. 接口:一组操作的集合,它指明了由类或组件所请求或者所提供的服务。

  3. 部件:组件的局部实现

  4. 端口:被封装的组件与外界的交互点,遵循指定接口的组件通过它来收发消息

  5. **连接件:**在特定语境下组件中两个部件之间或者两个端口之间的通信关系。

部署图

组件图是说明组件之间的逻辑关系的,而部署图则是在此基础上更进一步,描述系统硬件的物理拓扑结构及在此结构上执行的软件。部署图可以显示计算节点的拓扑结构和通信路径、节点上运行的软件组件。

部署图通常被认为是一个网络图或者物理架构图。部署图用于表示何者部署于何处。

一般用于嵌入式系统建模、C/S系统建模、分布式系统建模

部署图的组成元素:

  1. 节点和连接
  2. 组件