面向对象原理与技术(3)

2018-12-27 20:07

识别目标语言的规则。 限定UML的特定用法,例如多继承,Java/Smalltalk不支持类的多继承 用标记值{language=Java}说明目标语言。 使用工具。

逆向工程Reverse Engineering 代码到模型的过程,从编程语言到UML的过程。大量细节多余,不完整。 识别编程语言到UML映射规则。 可用辅助工具完成。 建议例子:

? 商品销售管理系统 ? 电子商务:网上书店 ? 图书馆管理系统 ? 大学教务管理系统

4 基本行为建模:交互和交互图

激励stimuli是什么?

一个实例对另一个实例传递某些信息,如发出某信号或调用某操作。 接受到一个信号通常认为发生了一个事件。

一个激励涉及两方对象:发送者sender和接收者receiver。

什么是信号signal?

实例间进行通信的一种异步的激励的规范。

信号可带有参量。异常exception是一种常见的信号。

什么是消息message?

一个实例发送给另一个实例的信息的规范,期望某种活动相继发生。

什么是动作action?

一个可执行语句的规范,形成一个计算过程的抽象。

典型地,一个动作会导致系统状态改变,可通过给某对象发送消息、或修改某个链、或某个属性值来实现。

主要有哪些动作?

创建动作create action

撤销动作destroy action 调用动作call action 返回动作return action 发送动作send action

终止动作terminate action 一个实例自己停止生存而消亡。

赋值动作assignment action 把一个实例赋予一个属性或一个链。

动作在瞬间发生,无时间延续性,有原子性,不能被中断。

什么是活动activity?

一系列动作的规范,有时间延续,无原子性,可被中断。

4.1 交互

原理:对象不是单独存在,相互之间需要传递消息以达到特定目的。

什么是交互interaction?

在特定语境中,一组对象为完成特定任务,而相互发送消息的规范。

一个消息可以是发出一个信号或调用某个操作。

4.2 交互图

什么是交互图interaction diagram?

表示实例间交互的模式。有两种形式:序列图和协作图,可表示相同内容。 内容:对象、链、消息、循环迭代与条件选择、注解和约束 对控制流建模。

什么是序列图sequence diagram?

按时间次序表示交互。水平和垂直方向;生命线和控制焦点。

如何理解协作collaboration?

行为的实现是一组对象为完成特定任务而交换激励。

一种协作定义了与特定目的相关的一组参与者(participant)及关系。 这些参与者定义了交互时对象所扮演的角色。

一种协作是一个操作或类元classifer(如一个用例)是如何由一组类元及其间关联来实现的规范;在一个协作中所涉及的各类元以特定方式扮演特定角色。一种协作涉及多个类且一个类可参与多种协作。协作定义了由实例和链所扮演的一组角色,以及一组交互,定义了当实例扮演其角色时相互间的通信。

什么是协作图collaboration diagram?

按对象结构组织表示交互。平面组织;链路径和消息顺序号。

两种抽象级别的协作图:

? 规范级:表示类元角色,关联角色和消息;在协作中的各种角色及结构。 ? 实例级:表示对象,链和激励;在协作中与角色相符合的实例。

如何对交互建模?

1、按时间顺序对控制流建模

? 确定交互语境:系统、子系统、操作、类、用例。 ? 识别对象扮演的角色,设置交互场景。 ? 设置对象生命线。

? 从引发交互开始、自上而下展开消息。 ? 控制焦点作为修饰,消息嵌套,计算过程。 ? 定时标记作为约束。

? 前置和后置条件。 2、按对象组织对控制流建模

? 确定交互语境:系统、子系统、操作、类、用例。 ? 识别对象扮演的角色,设置交互场景。

? 设置对象初始特征。<>、<>等 ? 描述对象间可能有消息的链。

? 首先安排关联的链,表示结构连接。

? 然后安排其它链,增加修饰。<><><> ? 从引发交互开始,按序号展开嵌套消息。 ? 定时标记作为约束。 ? 前置和后置条件。

提示

什么是结构良好的交互图?

? 仅关注于动态特征的某个方面。

? 只包含对于理解此方面必不可少的元素。 ? 提供与抽象层次相一致的细节和修饰。 ? 避免过于简化或抽象,以免误解。

绘制交互图策略:

? 给出一个表示交互目的的名称 ? 选择序列图还是协作图。 ? 减少线交叉

? 注解和颜色突出表示。

? 尽可能少用条件选择,协作图表示复杂条件。

5 高级行为建模:状态图和活动图

5.1 状态图

什么是状态state?

一个对象生命期中的某个条件或状况,对象满足某些条件、或正执行某些活动或正等待某些事件。

什么是事件event?

1. 一类可观察的所发生事情的规范,发生在瞬间,无时间延续性。

2. 在特定时间和地点所发生的重要事情的规范。在状态图中,一个事件能触发状态转换。事件可带参数。

有哪些常见的事件?

? 调用事件CallEvent,表示接纳一个请求以同步调用一个特定操作。调用事件实例

区别于调用动作,调用动作会导致一个调用事件。两种特例是对象创建事件和对象消亡事件。

? 信号事件SignalEvent,表示接收到某一特定异步信号。区别于发出信号的动作。 ? 时间事件TimeEvent, 表示从进入当前状态后逝去的时间。

? 改变事件ChangeEvent。当一个显式布尔表达式的值变为true时,该事件发生,这

是一个或多个属性或关联值的改变所导致的结果。改变事件是隐式引发的,且不是一些显式改变事件动作的结果。

什么是状态机state machine?

一种行为,描述一种对象或一种交互在其生命期中,响应各种事件而经历的状态变化序列,以及对象的响应和动作。

什么是状态图statechart diagram?

描述状态机的一种图。除了类,还可描述其它模型实体的行为,如用例、作用者、子系统、操作和方法。

入口动作entry action

在状态机中进入某个状态所执行的动作,不涉及到达该状态的转换。

出口动作exit action

在状态机中退出某个状态所执行的动作,不涉及退出该状态的转换。

终态final state

一种特殊状态,表示封闭的复合状态结束,若是顶层状态,则整个状态机结束。终态不会有外出的转换。

激发fire

执行某个状态转换。

转换transition

某对象的两个状态之间的一种关系,当对象处于第一个状态,当某个确定事件发生且满足确定条件时,对象在执行特定动作后进入第二个状态。对于这样一个状态改变,转换被称作“激发”fire。在一个源状态顶点和一个目标状态顶点之间的一种直接的关系。一个转换可以是某个混合(compound) 转换的一部分,该混合转换将状态机从一个状态配置转到另一个,以表示该状态机对某个事件实例的完整响应。

顶点vertex

在状态机中某个转换的源或目标。一个顶点可以是一个状态或伪状态。元模型中有如下子类:State状态,Pseododstate伪状态,Synchstate同步状态和Stubstate桩状态。

内部转换internal transition

一种特殊转换,表示处于某状态的对象对某事件做出反应而未改变其状态。

守护条件guard condition

为激发某个相关的状态转换而必须满足的条件。

守护guard

连接在一个转换上的一个布尔表达式,以细粒度控制转换。在事件发生以后,守护条件开始计算是否为真,若为真则转换,否则不转换。该表达式不应有副作用。

5.2 活动图

什么是活动图activity diagram (graph)?

一种特殊的状态机,其中状态表示动作或子活动的执行,且状态转换是由动作或子活动的结束来触发的。

活动图与状态图有何区别?

活动图表示一个过程自身的状态机;关注由内部处理过程所驱动的控制流,而不是外部事件驱动。

若所有或大多事件表示内部产生动作(即过程控制流)完成,应使用活动图(本质上是从活动到活动的控制流,即流程图)。

若表示异步事件如何发生的情形,则应使用状态图。 活动图定义一个计算过程,从组成动作间的控制流和对象流的角度来定义。涉及一个或多个类元的活动或过程process的状态。与状态图一样,若一个流出转换没有显式被某事件触发,则由所包含的动作执行完毕来触发的。

子活动subactivity状态表示一个嵌套的、具有延续性的活动,内部包括一组动作或更多子活动。

汇合junction,分叉fork,结合join和同步synch用于描述判断和并发活动。

分区partition根据不同标准组织状态,如现实世界中的各自履行其相应职责的组织机构。

活动图可用于机构建模,业务处理流程建模,即工作流建模。在此语境中事件可从系统内部产生,如完成某件任务,也可从系统外部产生,如客户的请求。

6 体系结构建模:构件图和部署图

实现图implementation diagram: 表示一个系统如何实现,包括源代码结构和运行期run-time实现结构,两种形式:构件图和部署图。

6.1 构件图

构件图是什么?

构件图component diagram:描述代码自身的结构;表示软构件之间的依赖关系,包括源代码、二进制代码和可执行代码。可存在于编译期、连接期和运行期。 构件是什么?

一个系统中物理的、可替换的部分,不能单独存在,可复用;遵循一组接口并提供实现。 《document》、《file》、《library》、《executable》、《table》

构件和类之间有何关系? 共同点:有名称;可实现接口;可有依赖、泛化和关联关系;可嵌套;可有实例;可参与交互。


面向对象原理与技术(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:贵州大学新任处级领导干部

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: