9.5 建立动态模型

更新于 2026年10月10日 版权声明
9.5 建立动态模型

在面向对象方法中,主要用状态图来描述系统的动态模型(也叫行为模型)。对象模型建立后,就需考察对象和关系动态变化序列。面向对象分析设定对象和关系都具有其生存周期。

生存周期由许多阶段组成,每个阶段都有一系列的运行规律和规则,用来调节和管理对象的行为。我们通常用动态模型描述对象和关系的生存周期,即它们的状态、状态转换的触发事件、对象的服务(行为)。

状态:对象在其生存周期中的某个特定阶段所具有的行为模式。状态是对影响对象行为和属性的一种抽象,规定了对象对输入事件的响应方式。对象对输入事件的响应,即可以做一个或一系列的动作,也可以仅仅改变对象本身的状态。

事件:事件是某个特定时刻所发生的事情,是引起对象从一种状态转换到另一种状态的抽象,它没有持续时间,是瞬间完成的。时间是引起对象状态转换的控制信息。

服务(行为):对象的某种状态下所发生的一系列处理操作。行为是需要消耗时间的。

动态模型的建立首先编写脚本,从脚本中提取事件,画出事件跟踪图,再画状态转换图。

(1)编写脚本。在建立动态模型过程中,脚本是系统执行某个功能的一系列事件。脚本通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件,它可以包括发生在此期间的所有系统内部事件。编写脚本的目的是保证部遗漏重要的交互步骤,有助于确保整个交互过程的正确性和清晰性。

(2)设计用户界面。大多数交互行为都可以分为应用逻辑和用户界面两部分。动态模型着重表示应用系统的控制逻辑。通常,系统分析员首先集中精力考虑的是系统的信息流和控制流,而不是用户界面。但是,用户界面的美观、方便、易学及效率是用户使用系统时首先感受到的,界面的好坏往往对用户是否喜欢、是否接受一个系统起很重要的作用。所以在分析阶段不能忽略用户界面的设计,应该快速建立用户界面原型,供用户试用与评价。

(3)画顺序图。顺序图中,一条竖线代表应用领域中的一个类,每个事件用一条水平的带箭头的线表示,箭头方向从事件的发送对象指向接收对象,时间从上向下递增。

(4)画状态转换图

状态定义:当对象的属性值不同时,对象的行为规则有所不同,称对象处于不同的状态。由于对象在不同状态下呈现不同的行为方式,所以应分析对象的状态,才可正确地认识对象的行为并定义它的服务。

例9.2 分别画出旅馆管理系统中旅客和床位的状态转换图。

旅馆管理系统中要为旅客安排床位,床位有“空”和“住人”两种状态。只有当床位处于“空”状态时,才可安排旅客住宿,随后床位的状态变为“住人”。旅客离开后,他所住的床位又变为“空”状态。因而要分析旅客和床位的状态,以及引起状态转换的事件(操作)。

旅客在该系统中有三种状态,分别为旅客登记、住宿和注销。从“旅客登记”到“住宿”,是由事件“登记旅客情况”和“分配床位”的发生引起的。从“住宿”状态到“注销”状态,是由事件“结账”和“退房”引起的。旅客的状态转换图如图9.9所示。

图示

图9.9 旅客的状态转换图

床位从状态“住人”变为“空”。床位的状态转换图如图9.10所示。

图示

图9.10 床位的系统状态转换图(https://www.daowen.com)

在开发交互式系统时,动态模型起着很重要的作用。

在UML中动态模型的描述工具有顺序图、活动图和状态图。

顺序图用例图中的事件流是由文本表示的,事件流描述的是用例实现的过程,也称为场景(scenarios),可以用顺序图表示场景。

顺序图按照时间顺序显示对象之间的交互关系。它描述场景中的对象和类以及在完成场景中定义的功能时对象间要交换的信息。

例9.3 结合9.4节案例,完成动态模型的创建。

(1)下面给出两个关系很紧密的状态图,如图9.11所示。

图示

图9.11 状态图

(2)用时序图和合作图描述病人病情异常时系统的情况,其他情况从略。

时序图如图9.12所示。

图示

图9.12 时序图

合作图如图9.13所示。

图示

图9.13 合作图

(3)用活动图描述系统在监护病人时的状态变化,如图9.14所示。

图示

图9.14 状态变化图

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)