UML期末复习笔记

前言:本学期期末还剩下两门考试科目,其中就有一门UML,于是根据老师课上讲解的课件,总结了这份笔记,一边整理一边进行记忆,也便于以后学习进行参考

一、面向对象与UML
二、用例图
三、类图
四、对象图
五、包图
六、顺序(序列)图
七、协作图
八、状态图
九、活动图
十、构件图
十一、部署图


一、面向对象与UML

1、面向对象方法
一种运用面向对象的软件构造概念和原则(类、对象、抽象、封装、继承、多态、消息)来构造软件系统的开发方法

2、面向对象特征
抽象、封装、继承、多态

3、UML定义
一种标准的图形化建模语言,是面向对象分析与设计的一种标准表示

4、UML组成
基本构造块(建模元素、关系、图)、UML规则、通用(公共)机制

5、UML构造块
(1)4个事物:结构、行为、分组、注释
(2)4个关系:依赖、关联、泛化、实现
(3)9种图:静态图(用例图、类图、对象图、组件图、部署图);动态图(序列图、协作图、状态图、活动图)

6、UML规则
包括命名、范围、可见性、完整性、执行

7、UML公共机制
包括规格说明、修饰、通用划分、扩展机制(构造型、标记值、约束)
(1)构造型:预定义的<< include >>、<< extend >>;用户自定义以大写字母开头
(2)标记值:形式为”名称=值”
(3)约束:形式为{约束的内容}

8、UML视图(4+1)
(1)逻辑视图(Logical View):表示系统的概念设计与子集系统等
(2)实现视图(Implementation View):说明代码的结构
(3)进程视图(Process View):说明系统中并发执行和同步情况
(4)部署视图(Logical View):定义硬件结点的物理结构
(5)用例视图(Use Case View):从外部用户角度表示系统功能性需求

9、UML进行面向对象系统分析步骤
(1)识别系统用例和角色
(2)进行系统分析并抽象出类
(3)设计系统并设计其中的类及其行为,包括结构设计和详细设计


二、用例图

1、用例图定义
表示一个系统中用例与参与者关系之间的图,描述系统中相关用户和系统对不同用户提供的功能和服务(从用户视角描述,分析系统功能与行为)

2、用例图构成
(1)参与者(Actor)
(2)系统边界(System scope)
(3)用例(Use case)
(4)关联(Association)

3、参与者定义
处于用例的外部,可以是人或其他外界系统,图例为
在这里插入图片描述

4、参与者确定方法

  • 使用系统主要功能的人(主要角色)
  • 借助系统完成日常工作的人
  • 维护、管理系统的人(次要角色)
  • 硬件设备、其他系统交互、对系统结果感兴趣的人或事

5、参与者间关系
主要是泛化关系,即将某些参与者共同行为提取出来表示通用行为(空心三角箭头实线,箭头指向超类)

6、一个示例
在这里插入图片描述
说明:经理继承雇员的行为,因而可以参与所有用例

7、用例
(1)概念:站在用户角度上描述系统的功能

(2)识别方法(查找事件):主语(参与者)+动词(使用系统)+宾语(达到目标)

(3)要点分析

  • 用例是系统产生的结果值(实现的目标)
  • 用例必须由目标系统实现
  • 用例的提出和定义都从参与者角度考虑

(4)关系
参与者与参与者:泛化
用例和参与者:关联(一对一通信,一条实线,箭头可有可无)
用例和用例:包含、泛化、扩展

8、用例间关系
(1)包含:一个用例中重用另一个用例的步骤,特征为一条虚线,箭头从基础用例指向被包含用例,示例:
在这里插入图片描述
使用时机:用例功能过多,分解成小用例;用例共同行为单独抽象为一个用例,让其他用例来包含这一用例

(2)泛化:一个用例继承另一个用例,一般与特殊关系,示例:
在这里插入图片描述
使用时机:同一业务目的不同技术实现

(3)扩展:对已有用例增加步骤创建新的用例,特征是一条虚线,箭头从扩展用例指向基础用例,示例:
在这里插入图片描述

9、用例粒度
用例组织信息的方式和细化程度

10、用例规约
用来描述用例,内容包括简要说明、事件流(基本流、备选流)、用例场景、特殊需求、前置条件、后置条件,示例:
在这里插入图片描述


三、类图

1、类图定义
若干类关联在一起,反映系统或者子系统组成结构的静态图

2、类图作用
描述软件系统中各个类的结构和类之间的关系

3、类图组成元素
一个矩形,内含类名(Name)、属性(Attribute)、操作(Operation)。
(1)类名:首字母大写;由多个字母组成时需要合并,第二个单词首字母大写
(2)属性:语法为[可见性] 属性名称 [:属性类型] [=初始值] [{特征}],其中可见性包括公有类型(+)(public)、受保护类型(#)(protected)、私有类型(-)(private),单字属性名小写;多个单词,除第一个单词外其余单词首字母要大写
(3)操作:语法为[可见性] 操作名称 [(参数表)] [:返回类型] [{特征}]

4、类的种类
(1)实体类(Enity):用于对必须存储的信息和相关行为建模的类。最终可能映射成数据库中的表以及字段,图例为
在这里插入图片描述

(2)控制类(Control):负责协调其他类的工作,本身并不完成任何功能,图例为
在这里插入图片描述

(3)边界类(Boundary):位于系统最上层,包含所有窗体、报表等硬件接口以及其他系统的接口,图例为
在这里插入图片描述

5、类图间关系
(1)泛化(is a kind of):一般描述的类被称为父类,具体描述的类被称为子类。子类除继承父类的属性和操作外,也增加自己的属性和操作,图例为
在这里插入图片描述

(2)实现(realization):接口(interface)描述一系列方法,被建模为实现关系。实现关系使用一条带封闭空箭头的虚线表示;接口用圆圈表示,通过一条实现附在表示类的矩形上来表示实现关系,图例为
在这里插入图片描述

(3)依赖(Dependency):指明一个类使用另一个类的方法或一个类使用其它类所定义的属性和方法,强调类发生改变引起其他类相应变化,使用虚线箭头表示,图例为
在这里插入图片描述

(4)关联(Assocation):表示一个对象拥有另一个对象,用实心三角形箭头表示,特性包含关联名称、角色、多重性、导航性、约束、特殊关联,图例为
在这里插入图片描述

(5)组合:表示整体与部分关系,部分与整体具有相同生命周期,用实心菱形头实现表示,头部指向整体,图例为
在这里插入图片描述

(6)聚合(aggregation):一个类由几个部分类组成,部分可以独立于整体而存在,用空菱形线段表示,头部指向整体,图例为
在这里插入图片描述

(7)关系案例
在这里插入图片描述

6、类的识别
(1)名词识别法:识别问题域中用到的名词或名词短语来描述的实体。标识出名词、代词、名词短语,标记为初始类,然后去掉冗余类、不相干类、模糊类、性质独立性不强的类、描述暂时的对象,以此确认类,案例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)实体识别法:关心构成系统的实体。包括信息实体、设备、与系统交互的外部设备、系统相关人员、系统的组织实体,案例
在这里插入图片描述
在这里插入图片描述

(3)用例识别法:分别对每一个用例进行识别

7、类图绘制步骤
(1)创建类图
(2)研究分析问题领域确定系统需求
(3)根据同例图或需求确定类及其关联,明确类的含义和职责,确定属性和操作
(4)添加类以及类的属性和操作
(5)添加类与类之间的关系


四、对象图

1、对象图定义
描述参与交互的各个对象在交互过程中某一时刻的状态

2、对象图表示
由对象(Object)和链(Link)组成。
(1)对象:使用带有下划线的实例名将它作为个体区分开来。语法为:对象名:类名
(2):一个或多个相连的线或圆弧,图例为
在这里插入图片描述

五、包图

1、包图定义
描述模型中的包和所包含元素的组织方式的图。包含元素以及包之间的关系,图例
在这里插入图片描述

2、包图作用
用来组织用例图和类图

3、划分原则
低耦合、高内聚

4、关系
依赖、泛化

5、问题
循环依赖,解决办法是重新分包,引入第三个包,重新建立依赖关系

六、顺序(序列)图

1、动态分析
(1)任务:对对象群体行为建模,表达对象间动作协作关系,描述用例行为实现,显示用例实现/类操作涉及的对象和对象间的消息传递情况
(2)概述:动态分析模型描述系统的动态行为,主要建立系统的交互图(序列图、协作图)和行为图(状态图、活动图)

2、顺序图定义
描述以时间顺序组织的对象之间的交互活动

3、顺序图组成元素
(1)对象:参与交互的基本单位,可在交互中创建或删除,图例为
在这里插入图片描述

(2)生命线:表示一个对象在一段时间内存在,图例为
在这里插入图片描述

(3)激活:表示一个对象执行一个动作所经历的时间段,对象接收到消息活动就开始,图例(空心矩形条)为
在这里插入图片描述

(4)消息:一条消息是一次对象间的通信,图例为
在这里插入图片描述

4、消息类型
(1)调用(同步)消息:发送者请求接收者对象执行其某种操作,意味着阻塞和等待,图例为
在这里插入图片描述

(2)异步消息:消息发送后,发送者继续操作,不等待,用于并发,意味着非阻塞,图例为
在这里插入图片描述

(3)返回消息:消息的返回,图例为
在这里插入图片描述

(4)消息总结
在这里插入图片描述

5、顺序图绘图步骤
(1)设置交互的语境
(2)设置交互的场景
(3)为对象设置生命线
(4)按时间顺序排列消息
(5)设置激活期
(6)附加时间和空间约束

6、何时选择顺序图
主要针对特定交互期间的消息流


七、协作图

1、协作图定义
强调收发消息的对象的组织结构

2、协作图组成元素
(1)对象:形式为对象名:类名
(2)消息:由发送者、接收者、活动组成
(3):两个或多个对象之间的独立连接,形式为一个或多个相连的线或弧,图例为
在这里插入图片描述

3、协作图作用
表现一个类操作的实现,显示对象及其交互关系的空间组织结构,用于表示方案

4、何时选择协作图
当集中处理交互所涉及的不同参与者与对象之间的链接时


八、状态图

1、状态图定义
描述一个特定对象的全部能够存在的状态,还可以描述引起状态转移的事件

2、状态图组成元素
(1)初始状态
(2)终止状态
(3)状态:由一个带圆角的矩形表示,包含名称、入口和出口动作、内部转换,图例为
在这里插入图片描述

(4)转换:两个不同状态之间的一种关系,包含源状态、触发事件、监护事件、动作和目标状态,图例为
在这里插入图片描述

(5)判定:包含一个转入和两个转出,图例为
在这里插入图片描述

(6)同步:说明并发工作流的分支与汇合,用一条线段表示,图例为
在这里插入图片描述

(7)并发分支:把一个单独的工作流分成两个或多个工作流,几个分支的工作流并行进行

(8)并发汇合:两个或多个并发的工作流在此得到同步

3、状态图绘图步骤
(1)找出适合用模型描述其行为的类
(2)确定对象可能存在的状态
(3)确定引起状态转换的条件
(4)确定转换进行时对象执行的相应动作
(5)对建模的结果进行相应的精化和细化


九、活动图

1、活动图定义
描述活动的顺序,展现一个活动到另一个活动的控制流

2、活动图组成元素
(1)动作
(2)活动
(3)动作流
(4)分支与合并
(5)分叉与汇合
(6)泳道
(7)对象流
图例为
在这里插入图片描述
在这里插入图片描述

3、活动图绘图步骤
(1)定义活动图要对什么建模
(2)添加起始和结束点
(3)添加活动
(4)添加活动间的转换
(5)添加决策点
(6)找出可并行活动之处


十、构件图

1、构件图定义
表示系统中构件与构件之间,以及定义的类或接口与构件之间的关系的图

2、构件图组成元素
(1)构件
(2)接口
(3)依赖关系
图例为
在这里插入图片描述


十一、部署图

1、部署图定义
用来显示系统中软件和硬件的物理架构

2、部署图案例
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44858224/article/details/112176460