软件工程概述-面向对象基础UML(下)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对象
消息
生命线
激活
2. 顺序图样式和组成 ① 对象的命名
:类名
对象名:类名
匿名对象
:对象名
2. 顺序图样式和组成 ② 生命线
表示对象存在的时间,对象下面一条虚线表示。
对象生命线
×
表示对象 的撤销
2. 顺序图样式和组成 ③ 控制焦点 / 激活期
小矩形,表示这个时间对象将执行操作。
. .
激活期
2. 顺序图样式和组成 ④ 消息 带箭头的连线,表示对象之间传输的信息。
关系的名字是 “属于”
class 类 -关 联
订单 *
属于 1
客户
实例
单向关联
多重性 (用数字和*表示) 1…*:1个或多个 1个类图有1个或多个类 1个类属于1个或多个类图
类图—关联
多重性
在UML中,常用的关联的多重性表示格式如下:
0..1
0或1
1
1
0..*(0..n)
0或多个
*
0或多个
1..* (1..n)
提示: 相关的活动:填写注册单、注册、获取帮助、参加开 学典礼 、课程注册、交第一学期学费
大学新生报到过程活动图 :新生首先要填一张新生 注册表单。如果填写不正 确,则在别人的帮助下重 新填写,直至填写正确, 然后进行注册。注册成功 之后,要进行开学典礼, 同时在新生选课系统中注 册,然后交齐第一个学期 的学费。
活动图-分叉汇合
act 活动图
在现实生活中,到了某个阶 段,可能会同时在做两件事 儿的情况。如何使用活动图 来表达呢?
分叉(fork)和汇合(join )
锻炼身体
洗澡
播放音乐
睡觉
示例:描述打 电话活动中的并 发事件
练习
大学新生报到过程活动图:新生首先要填一张新生注册 表单。如果填写不正确,则在别人的帮助下重新填写, 直至填写正确,然后进行注册。注册成功之后,要进行 开学典礼,同时在新生选课系统中注册,然后交齐第一 个学期的学费。
消息
3. 消息类型 ① 调用消息( Procedure Call )
调用消息(也称为同步消息)的发送者把控制传递给接收 者,然后停止活动,直到消息接收者放弃或返回控制。
调用消息
3. 消息 ②异步消息( Asynchronous ) 异步消息的发送者通过消息把信号传递给接收者,然 后继续自己活动,不等待接收者返回消息或控制。
- balance : double = 1
类名 斜体为抽象类
可见性 -代表private +代表public #代表protected
+ Deposit(amount : double) : int + ComputeInterest() : double
缺省值 返回值类型
参数列表
操作名称 斜体为抽象操作
完成;Repair标签指示产品已经检修过;
泛化
练习
请用类图描述公司的组织架构,该公司有一个行政人事部、一 个研发部、一个服务部、一个销售部、一个财务部。
这个图似乎公司有多少个部门,多画一个包含就搞定了,这样 画似乎一点都显示不出类图的优势。
抽象部门用斜体,表明这个类是抽象类,抽象类表示这个类是 提炼出来的一种概念,是不具体存在的。
类图
销售调查
监督员
class 售票系统
客户 - 姓名: string
1 * 订单 - 数量: int - 预订日期: date
售票机
+ 插卡() + 购票(): void + 退卡()
信用卡中 心
+ 付款()
售票中心
+ 购票() + 显示余票() + 选择座位(): void
团体订单
个人订单
机票
座位
3
7.3 状态图
4
7.4活动图
5
7.5 构件图/部署图
构件图(Component Diagram)
※ 构件图为系统的构件建模 型—构件即构造应用的软件 单元—还包括各构件之间的 依赖关系,以便通过这些依 赖关系来估计对系统构件的 修改给系统可能带来的影响
类之间的一种整体与部分的关系
University
1
UML符号:
UML表示法
Department
1..n
组合-Composition
是一种特殊形式的聚合(强聚合),聚合中的每个部分只 能属于一个整体;
表示类之间整体和部分的关系。 整体与部分具有相同的生存期。
Window
1
1
1..n
Menu
这个组织架构图已经一定程度地揭示了公司组织架构的本质, 一个公司无非就是由一个个部门组成的,只是每个具体的部门 可能不一样而已。这样的表达效果,用普通的组织架构图是表 达不出来的,而类图就可以发挥抽象和提炼的优势。
这个图将更进一步揭示公司组织构架的本质
公司有一个个部门构成,这些部门分为3类 市场类部门:负责公司市场推广、产品营销方面的部门 生产类部门:直接生产公司产品的部门 支持类部门:不直接生产公司产品,但支撑公司运作
类图
※从上到下分为三部分,分别是类名(必须)、属性和操作。
※类如果有属性,则每一个属性都必须有一个名字,另外还可 以有其它的描述信息,如可见性、数据类型、缺省值等
※类如果有操作,则每一个操作也都有一个名字,其它可选的 信息包括可见性、参数的名字、参数类型、参数缺省值和操 作的返回值的类型
属性名称
Account
1或多个
8
8
5,7..10
5或7~10
1对1
1对多,可以没 有学生
1对0或1
1对多,至少一 个
自返关联
包含关系
一辆汽车有4个轮子,我们可以这样表示
关联关系太过简略。汽车应该包含4个轮子,或者说轮子本来 就属于汽车的一部分,那怎样画能更加贴切表示这样的关系 呢?
聚合-Aggregation
类的关系
泛化关系
➢一般与特殊的关系,也叫做继承关系
class 泛化
客户
个体
团体
泛化-Generalization
表示两个类元间“一般”与“特殊”的关系。 对应面向对象编程语言中类与类之间的继承关系。 “is a kind of”关系,XX是一种XX
练习
请解释本图各个类的关系
练习
请绘制存货清单系统类图 包含
※顺序图重点反应消息的时间顺序
目录
1
7.3 类图
2
7.4 交互图
3
7.3 状态图
4
7.4活动图
5
7.5 部署图
活动图(Activity Diagram)
※ 活动图用来描述执行 算法的工作流程中涉 及的活动
※ 活动图描述了一组顺 序的或并发的活动
活动图
表示活动的开始和结束,分别称为起 始状态(start state)和终止状态 (end state)。
如果面试通过,就由人力资源出发出offer 请完成活动图:
相关活动:
打电话预约见面、准备会议室、准备便携,对应 试者面试、发出offer
带泳道的面试过程的活动图
act 面试2
人力资源
行政部
打电话预约见 面
[在公司见面]
[在外面见面]
准备会议 室
发 出 offer
[通过面试] [未通过面试]
业务部
准备便携
对应试者 面试
读者
活动 开始
借书申请
活动
读者无效
图书无效
流通组工作人员
读者信息
检查读者 有效性
读者无借书超 效/ 期
借书记录
检查图书 有效性
图书无效
图书信息
消息 检查预订
有预 订
修改图书 信息
预订记录 清除预订
记录 图书信息
创建借书 记录
借书记录
活动结 束
对象
目录
1
7.3 类图
2
7.4 交互图
类图
(1)抽象类 当某些类有一些共性的方法或属性时,可以定义一个
抽象类来抽取这些共性,然后将包含这些共性方法和 属性的具体类作为该抽象类的继承; 抽象类可以实现多态;
名字用斜体表示
类图
(2)接口类
接口是一种类似于抽象类的机制,是一个没有 具体实现的类。
接口可以实现多态;
《Interface》
1..n
Button
关于聚合与组合
部门 部门
员工
0..n
员工
0..n
“弱”包含表示如果部门没有了,员工也可以继续存在; “强”包含表示如果部门没有了,员工也不再存在。
在做软件需求时,往往会将所有的包含关系画成“弱”包含, 后面发现某些关系可以表示为“强”包含是,才转为实心菱形
包含关系
请画出一下类之间的关系 球队,队员,队长
活动图-分支
如果遇到A情况要转入活动1,如果否则转入活动2,怎么表达 ?
分支(Branch):分支用于描述基于某个条件的可选择路径。 分支在图形表示上 用菱形表示
活动图
图书馆管理系统中 需要提供对用户信 息的修改功能,其 用活动图描述该用 例如下
练习
请绘制活动图表达如下的过程 : 起床后,如果觉得饿就去 吃早餐,如果不觉得饿, 就再睡一会儿。
本例为一个按活动职责(带泳道)组织的处理订单用例的活 动图(模型中的活动按职责组织)。活动被按职责分配到用线 分开的不同区域(泳道):
某公司面试过程: 人力资源处打电话联系面试者,预约面试 实际面试是由业务部完成的。如果是预约在外面面试,就 由业务部准备便携,然后完成面试;如果是预约在公司里 面见面,就由行政部准备会议室,在会议室里完成面试。
- 列: int - 排: int
目录
1
7.3 类图
2
7.4 交互图
3
7.3 状态图
4
7.4活动图
5
7.5 部署图
交互图的概念
1. 交互图的概念 交互图(interaction): 用来描述对象之间、对象
与参与者之间的动态协作关系,以及协作过程中行为次 序的图形。 2.交互图的类型 顺序图( Sequence diagram ) 协作图( Collaboration diagram ) 3. 交互图的作用
售票机
售票中心
信用卡中心
购票者 购票请求()
显示余票 和座位()
购票请求()
显示余票 (空闲座位)
选择座位() 请求付款()
插入信用卡()
机票() 退卡()
付款() 打印机票()
付款() 授权()
协作图(Collaboration Diagram)
※协作图描述对象间的协作关系,协作图跟顺序图 相似, 显示对象间的动态合作关系。除显示信息交换外,协 作图还显示对象以及它们之间的关系.
通常用来描述一个用例的行为,实现一个用例,完 成对系统行为的建模。
交互图
交互图有两种类型 顺序图:按照时间顺序反映相互 关系
协作图(合作图): 反映对象之间的通讯关系
1. 顺序图(sequence diagram): 是用来描述为了完成某
确定事务,对象之间按照时间顺序进行消息交互的图。
2. 顺序图样式和组成
找出该案例中的活动:
填写注册表单 获取帮助 注册 开学典礼 课程注册 交第一学期学费
练习
注册
填写注册表 单
[ 正确 ] [ 错误 ]
获取帮助
开学典礼
课程注册
交第一学期 学费
如何展现处理过程中的各个过程分别是谁来 负责?
泳道(swimlane)技术来描述每个活动是由 哪个对象负责完成
将部门分为市场类、生产类和支持类,只是其中一种抽象方法 ,每个人可能会有不同的标准,遇到不同情况会不同的抽象方 法,这仅仅是一个例子,不是一个固定的标准。
类和用例图
uc 售票系统
售票机
航空售票系统
买票
«include» «include»
Hale Waihona Puke 预售付款购票者
信用卡服务 商
先有用例图,根据用 例图甄别出系统可能 的类,并且将这些类 的关系关联起来形成
异步消息
3. 消息 ③返回消息( Return )
返回消息表示从消息接受对象返回信息。
返回消息
练习—画出编译系统的顺序图
顺序图、类图和用例图
使用顺序图展开用例
uc 售票系统2 售票机
航空售票系统
买票
«include» «include»
预售
付款
销售调查
购票者
信用卡服务 商
监督员
sd 售票
• 存货由两个部分组成(零件和产品)。
先找出类 确定类之间的关系
• 产品由两个或者更多零件组成,系统可以拥有无限多个零件和
产品。 包含 • 存货中的部分零件包括调速轮、轮齿和履带。 泛化
• 一名仓库保管员维护货存。一名装配工组装产品,一名维修员
维修产品。
关联
• 完成的产品包括1-2个标签:Manufacturer标签指示产品已经
类图—关联关系
关联(association)
关联是模型元素间的一种语义联系,当类之间在概念上有连 接关系时,类之间的连接叫做关联。
队员和球队之间的关联,可以用短语“队员为篮球队效力” 来刻画,图形表示为:
Player
plays on
Team
类图—关联关系
关联关系
※ 可以是单向或者双向的。
面向对象基础(下)
目录
1
7.3 类图
2
7.4 交互图
3
7.3 状态图
4
7.4活动图
5
7.5 部署图
类图
类图(Class Diagram)
※ 类图描述系统中类的静态结构。 不仅定义系统中的类,表示类 之间的联系如关联、依赖、聚 合等,也包括类的内部结构(类 的属性和操作)
※ 类图是以类为中心来组织的, 类图中的其他元素或属于某个 类或与类相关联