第6章 面向对象的系统分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

A
UML
Queue类
B ElevatorControl类
- 50 -
C Elevator类
D Button类
6.5 对象行为:状态、状态转换和状态图
1 概念:说明对象在它的生命期中响应事件所经 历的状态序列,以及它们对那些事件的响应。
2状态图中的事物及解释
状态 上格放置名称,下格说明处于该状态时,系统 或对象要做的工作(见可选活动表) 转移上标出触发转移的事件表达式。如果转移 上未标明事件,则表示在源状态的内部活动执 行完毕后自动触发转移 初始状态(一个) 终态(可以多个)
状态间的转移
unlock 初始状态Available状态 票被预订(lock):AvailableLocked 预定后付款(buy):LockedSold 预定解除(unlock):LockedAvailable 预定过期(time out):LockedAvailable 直接购买(assigned to):AvailableSold 换其它票(exchang) ,该票重有效:SoldAvailable 转换 exchange 触发器事件
协作图中的事物及解释
事物名称 参与者 对象 解释 发出主动操作的对象,负责发送初始消息 ,启动一个操作。 对象是类的实例,负责发送和接收消息, 与顺序图中的符号相同,冒号前为对象名 ,冒号后为类名。 箭头指示消息的流向,从消息的发出者指 向接收者。标签对消息作说明,其中,顺 序号指出消息的发生顺序,并且指明了消 息的嵌套关系;冒号后面是消息的名字。 图
内部转换
引起一个动作的执行但不引起状态的改变或不 引起入口动作或出口动作的执行
e(a:T)[exp]/action
6.状态图
6.5 例子 (1) 对象的状态图 图中包含以下状态
初始状态 Available状态 Locked状态 Sold状态
初始状态 assigned subscription time out Available lock 状态 Locked buy Sold to
(5)测试(Test)工作流 (6)部署(Deployment)工作流 (7)配置和变更管理(Configuration and Change Management)工作流 (8)项目管理(Project Management)工作流 (9)环境(Environment)工作流
6.3 系统行为:面向对象的用例图
6.2.1 RUP的二维开发模型
图6.3 RUP的二维开发模型
图6.4 RUP的迭代模型
6.2.2 RUP的核心工作流
(1)商业建模(Business Modeling)工作流 (2)需求分析(Requirements)工作流 (3)分析与设计(Analysis and Design)工作流 (4)实现(Implementation)工作流
消息(属性)[条件]/动作
转移 开始 结束
状态的可选活动表
转换种类 描述 语法 entry/action 入口动作 进入某一状态时执行的动作
出口动作 离开某一状态时执行的动作
引起状态转换或自身转换,同时执行一个具体 外部转换 的动作,包括引起入口动作和出口动作被执行 的转换
exit/action
e(a:T)[exp]/action
图6.20 管理员处理借书的协作图
图6.21 管理员处理还书的协作图
图6.22 读者续借图书的协作图
图6.23 读者预约图书的协作图
协作图
2. 请对比本章中的协作图与其相应的顺序图,做练习题。
:button Push( ) 1 : GetElevator(floorid) :Elevator Control :Queue :Elevator :Order{new} : Actor
6.2 Rational统一过程—Rational Unified Process
通常,软件项目失败的原因包括以 下几个方面: (1)需求管理混乱; (2)开发者之间以及开发者和用户之间 的交流不够清晰; (3)系统架构不够坚固;
(4)没有及时发现需求、设计和实现中 的不一致; (5)缺乏有效的测试; (6)对项目状态进行主观估计; (7)没有正确地处理项目开发过程中的 风险; (8)没有对项目变更进行有效控制。
重试,清除无效的SΒιβλιοθήκη BaiduN,PIN
UML
- 54 -
6.状态图
练习
分析下面的状态图,回答问题
在第一层 上升 上升状态
到达第一层 向第一层下降 下降状态
到达
上升
到达
空闲状态
下降 超时
(1) 以下那些图形元素是对状态的描述? (a) 超时 (b) 到达 (c) 在第一层 (2) 空闲状态 超时后转移到____状态 (a) 向第一层下降 (b) 上升状态 (c) 终态
图6.2 5种视图的关系
6.1.3 UML的常用图
(1)用例图(Use Case Diagram) (2)类图 (3)对象图(Object Diagram) (4)状态图(State Diagram) (5)顺序图(Sequence Diagram)
(6)协作图(Collaboration Diagram) (7)活动图(Activity Diagram) (8)组件图(Component Diagram) (9)配置图(Deployment Diagram)
Actor
firstbuton:button
消息流 (由箭头和 标签组成)
标签
协作图与顺序图差别
协作图和顺序图都表示出了对象间的交互作用,但是它 们侧重点不同。 顺序图清楚地表示了交互作用中的时间顺序(强调时间) ,但没有明确表示对象间的关系。 协作图清楚地表示了对象间的关系(强调空间),但时间 顺序必须从顺序号获得。 协作图和顺序图可以相互转化。 (进行协作图和顺序图的比较,请参考练习题2)

更新用户信息 查询图书信息 添加图书信息 删除图书信息 更新图书信息

查询书目信息 添加书目信息 删除书目信息 更新书目信息

图6.15 系统管理员进行系统维护的用例
6.4 对象交互:顺序图与协作图 6.4.1 顺序图的基本构成 6.4.2 如何开发顺序图
概要

顺序图中的事物及解释
事物 名称
参与 者 对象 生命 线 消息 符号

解释 与系统、子系统或类发生交互作用的外部 用户(参见用例图定义)。 顺序图的横轴上是与序列有关的对象。对 象的表示方法是:矩形框中写有对象或类 名,且名字下面有下划线。 坐标轴纵向的虚线表示对象在序列中的执 行情况(即发送和接收的消息,对象的活动) 这条虚线称为对象的“生命线”。 消息用从一个对象的生命线到另一个对象 生命线的箭头表示。箭头以时间顺序在图 中从上到下排列。
Initial state
Getting SSN
键入tab键,或移动鼠标到PIN 提交 键入非shift-tab键,显示 “ * ”
Getting PIN
键入shift-tab键,或移动鼠标到SSN 提交 验证提交信息有效,状态转移
Validating
验证提交信息无效,显示错误信息 退出
Rejecting
6.3.3 图书馆管理系统的用例图
(1)确定系统总体信息 (2)确定系统参与者 (3)确定系统用例
1.读者请求服务的用例
登录系统 查询个人借阅信息 更新个人信息 查询图书信息

借出图书 归还图书 预约图书 续借图书 逾期交纳罚金

图6.13 读者请求服务的用例图
2.图书管理员处理服务的用例
消息格式:
消息格式: operation (parameter list) 向哪个对象发消息实际上就是调用它的类中的操作,就是调用箭头指 向的对象所在类的 一个operation。 例:
6.4.3 图书馆管理系统中的顺序图
图6.17 图书管理员处理借书的顺序图
图6.18 图书管理员处理还书的顺序图
顺序图用来表示用例中的行为顺序。当执行一个用例行 为时,顺序图中的每条消息对应了一个类操作或状态机 中引起转换的事件。 顺序图展示对象之间的交互,这些交互是指在场景或用 例的事件流中发生的。 顺序图属于动态建模。 顺序图的重点在消息序列上,也就是说,描述消息是如 何在对象间发送和接收的。表示了对象之间传送消息的 时间顺序。 浏览顺序图的方法是:从上到下查看对象间交换的消息
UML
- 53 -
6.状态图
(2)网上银行登陆系统
状态转移 的过程
出发状态 动作 移动鼠标到 SSN 键入非tab键,显示键入内容 到达状态 Getting SSN Getting SSN Getting PIN Validating Getting PIN Getting SSN Validating Final state Rejecting Final state Getting SSN 有 两 个 不 同 的 终 态
组 件 图
配 置 图
结 构 事 物
动 作 事 物
分 组 事 物
注 释 事 物

接 口
协 作
用 例
活 动 类
组 件
节 点
交 互
状 态 机

注 释
图6.1 UML的组成结构
6.1.2 UML视图
UML中的视图大致分为以下5种。
(1)用例视图 (2)逻辑视图 (3)组件视图 (4)并发视图 (5)配置视图
登陆要求提交个人社会保险号(SSN) 和密码(PIN)经验证有效后登陆成功 。 登陆过程包括以下状态:
※初态(Initial state) ※获取社会保险号状态(Getting SSN) ※获取密码状态(Getting PIN) ※验证状态(Validating) ※拒绝状态(Rejecting) ※终态 (Final state)
UML
视图
通用机制
模型元素
用 例 视 图
逻 辑 视 图
并 发 视 图
组 件 视 图
配 置 视 图
关 系
事 物
修 饰
注 释
规 格 说 明
通 用 划 分
扩 展 机 制
关 联 关 系
依 赖 关 系
泛 化 关 系
实 现 关 系
聚 合 关 系
用 例 图
类 图
对 象 图
顺 序 图
协 作 图
状 态 图
活 动 图
6.4.4 协作图的基本构成 6.4.5 图书馆管理系统中的协作图
协作图概念
协作图是一种交互图,强调的是发送和接 收消息的对象之间的组织结构,使用协 作图来说明系统的动态情况。 协作图主要描述协作对象间的交互和链接 ,显示对象、对象间的链接以及对象间 如何发送消息。 协作图可以表示类操作的实现。
图6.19 读者续借图书顺序图
4. 顺序图
4.5 练习题
① ② ③ ④


1 指出左图中的参与者? A① B② C③ D④ 2 哪些是对象? A① B②③④ C ④ ⑥⑦⑧⑨⑩
D⑤


3 Server类调用了 CreditService类中的什么操作 A⑦ B⑧ C ⑦⑧ D⑧⑨
⑩ ⑨
UML
- 41 -
处理读者借出图书 处理读者归还图书 处理读者续借图书

处理图书逾期罚款 处理图书丢失赔偿 验证读者账号 删除图书预约信息

图6.14 图书管理员处理服务的用例图
3.系统管理员进行系统维护的用例
查询用户(读者、图书管理员、系统管 理员)信息 添加用户信息 删除用户信息
6.3.1 用例、参与者以及场景 6.3.2 用例和参与者以及用例之 间的关系
图6.5 用例和参与者的关联关系
图6.6 用例间的关联关系
图6.7 用例间的包含关系
图6.8 用例间的包含关系示例
图6.9 用例间的扩展关系
图6.10 用例间的扩展关系示例
图6.11 用例间的泛化关系
图6.12 用例间的泛化关系示例
1.1 *[all queues] : len:=Length()
1.2: Create( )
1.3: Invoke(job)
2: nextjob:=Get.job( )
①请在下图中指出,循环计算各个电梯的工作队列长度的消息的顺序号。 A 1.1 B1.2 C1.3 D2
②请说明消息1.3所进行的操作Invoke(job),应属于哪个类所具有的方法 。
第6章 面向对象的系统分析
6.1
UML概览
6.2
Rational统一过程—Rational Unified Process
6.3
系统行为:面向对象的用例图
6.4
对象交互:顺序图与协作图
6.5
对象行为:状态、状态转换和状态图
6.1 UML概览
6.1.1 UML的基本构成
总体来说,UML由以下几个部分构 成,如图6.1所示。
相关文档
最新文档