静态建模

  • 描述了被建模系统的静态结构,不随时间变化而变化。
  • 问题域静态建模:分析阶段对系统的主要概念进行建模。

目录

  1. 类间关系
  2. 约束
  3. UML表示
  4. 系统上下文的静态建模
  5. 外部类静态建模
  6. 实体类的静态建模

1 类间关系

1.1 关联关系

  • 定义了两个类之间静态的、结构化的关系。

  • 关联称为链接。类之间有链接关系的对象之间才会有链接。关联的方向取决于动作的方向。

  • 自反关联(一元关联):一个类的一个对象和这个类的另一个对象之间的关联。

  • 三元关联:三个类间的关联(两个类之间的关联关系也转化为一个类)

  • 关联类:对两个或多个类之间的关系进行建模的类。

  • 关联的多重性:一对一关联、一对多关联、规定数值的关联、可选关联(0…1表示可能存在)、多对多关联。

1.2 整体和部分的关系(组合聚合关系)

  • 关系强弱:组合>聚合>关联
  • 组合涉及整体和部分之间的物理关系。
  • 聚合概念上的整体和部分关系,可以分开可以合并。

1.3 泛化特化关系

  • 相同属性抽象为泛化类
  • 不同属性表示了特化的性质

2 约束

对关联、对象属性进行约束。

3 问题域静态建模——上下文类

  • 通过分析用例模型来对问题域建模。
  • 分析建模:重点在于标识 问题域对象中的 对象 以及 对象之间传递的信息。主要用到静态建模方法、对象的组织、动态交互建模、动态状态机建模等建模方法。
  • 设计建模:将概念模型、逻辑模型映射到一个具体的并发设计模型。各个部分都要确定下来(决策)。
  • 上下文类即内部系统和外部环境之间负责交互的类。对应的三种类分别为:外部类、内部类、上下文类(交互类、接口类)。

4 外部类

  • 外部环境被描述为外部类。外部环境包括:人类、外部系统、计时器、输入输出设备。(这也是参与者的四种类型)

5 对象和类的组织

5.1 对象和类的分类

  • 边界类:连接到外部环境并与之通信的软件类。
  • 实体类:信息密集的持久化类
  • 控制类:对对象的集合提供全局协调的类。
  • 应用逻辑类:包含应用逻辑细节的软件类。

5.2 实体类和对象

  • 是概念性的和数据密集型的类。存储持久化数据,并提供对数据的访问。
  • 类似于数据库的逻辑模型,强调类的属性和类之间的关系。

5.3 边界类和对象

  • 外部类与软件边界类对应。边界类是内部类,通过接口连接到外部类并与之通信。
  • 每一个外部类都与系统中的一个边界类进行通信。参与者-外部类-边界类(内部类)分别对应。其中参与者是在需求建模阶段通过用例建模方法获得的。外部类是在分析阶段建模过程中,对问题域静态建模的方法中得到的外部类建模。内部类是在对象和类的组织一节课中得到。
1
2
3
4
5
6
7
8
9
graph LR
人类参与者-->外部用户类
外部用户类-->用户交互类
外部系统参与者-->外部系统类
外部系统类-->代理类
输入输出设备参与者-->外部设别类
外部设别类-->设备IO边界类
计时器参与者-->外部计时器类
外部计时器类-->软件计时器类
  • 对四中边界类对象进行解释:
    • 用户交互类:依赖用户接口技术,包括图形界面和命令行窗口
    • 代理类:外部系统的本地代表
    • 设备IO边界类:接受输入提供输出。

5.4 控制类和对象

  • 用来对实现用例的对象进行协调。(一个用例有一个控制类,控制相关的实现对象。)
  • 控制对象可能是状态相关的。
  • 分为协调者对象、状态相关的对象、计时器对象。
  • 状态相关的控制对象产生的事件,不仅仅与输入有关,也与对象当前的状态有关。

5.5 应用逻辑类和对象

  • 业务逻辑对象
  • 算法对象
  • 服务对象
  • 目的:将相互独立变化的业务规则分离封装到不同的应用逻辑类种。