软件工程—5.系统建模

从不同视角对系统建模

  1. 外部视角,上下文模型,对系统上下文或环境建模
  2. 交互视角,交互模型(功能模型),对系统与参与者或系统内构件之间的交互建模
  3. 结构视角,结构模型(静态模型),对系统的组成或系统处理的数据结构建模
  4. 行为视图,行为模型(动态模型),对系统的动态行为以及系统如何响应事件进行建模

UML同一建模语言

交互模型(重点)

  1. 用例建模,系统与外部主体(人或其他系统)之间的交互,抽象层次高
  2. 顺序图,系统构件之间的交互,也可以包括外部主体,抽象层次低

用例建模

用例图

标识参与者与用例之间的关系

  1. 启动,参与者启动了该用例
  2. 参与,参与者参与了该用例

用例与用例之间的关系(牢记)

  1. 扩展,一个用例被定义为 基础用例的扩展
  2. 包含,包含其他用例的行 为,减少用例之间的冗余
  3. 继承,一个用例被泛化成 多个用例

顺序图

  • 顺序图主要用于对参与者与系统对象之间、系统对象自身之间的交互进行建模
  • 顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互
  • 顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件

示例

注意长方形里,每写一个要加冒

  1. 示例或类元角色
  2. 消息流
  3. 对象生命线
  4. 注释

结构模型

结构模型描述系统构件以及它们之间的关系

类图

  1. 类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模手段
  2. 类图中的“类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事物的抽象

类之间的四种关系(重点)

  • 关联、依赖、继承、实现
  • 而其中关联又有两种特例:聚合和组合

关联关系

聚合

关联和依赖的区别

  1. 从类之间关系的强弱程度来分,关联表示类之间的很强的关系;依赖表示类之间的较弱的关系
  2. 依赖是类与类之间的连接,依赖总是单向的。依赖关系代表一个类依赖于另一个类的定义。依赖在代码中一般表示为方法的参数。
  3. 关联是一种结构关系,说明一个事物的对象与另一个事物的对象相联系。给定一个连接两各类关联,可以从一个类的对象导航到另一个类的对象。关联可以有方向,即导航。一般不作说明的时候
  4. 导航是双向的,不需要在线上标出箭头。大部分情况下导航是单向的,可以加一个箭头表示。关联在代码中一般表示为属性(成员变量)。
  5. 设计类之间的关系是遵循的原则:首先判断类之间是否是一种“关联”关系,若不是再判断是否是“依赖关系”,一般情况下若不是关联,就是依赖关系。

聚合与组合

  1. 聚合关系也称“has-a”关系,组合关系也称“contains-a”关系。
  2. 聚合关系表示事物的整体/部分关系的较弱情况,部分的生命周期可以超越整体
  3. 组合关系表示事物的整体/部分关系的较强的情况,部分的生命周期不能超越整体,或者说不能脱离整体而存在。组合关系的“部分”,是不能在整体之间进行共享的。
  4. 聚合关系中,代表部分事物的可以属于多个聚合对象,可以为多个聚合对象共享,而且可以随时改变它。所从属的聚合对象.代表部分事物的对象与代表聚合事物对象的生存期无关,一旦删除了它的一个聚合对象不一定也就随即删除代表部分事物的对象。
  5. 在组合关系中,代表整体事物的对象负责创建和删除代表部分事物的对象,代表部分事物只属于一个组合对象.一旦删除了组合对象,也就随即删除了相应的代表部分事物的对象

关联关系的强度:关联

泛化关系

在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间

总的来说,后四种关系所表现的强弱程度依次为:组合>聚合>关联>依赖

行为模型

数据驱动的建模

行为驱动的建模

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年11月9日
下一篇 2019年11月9日

相关推荐