首页 百科知识 建立动态模型

建立动态模型

时间:2022-10-09 百科知识 版权反馈
【摘要】:在建立动态模型的过程中,脚本是指系统在某一执行期间内出现的一系列事件。动态模型着重表示应用系统的控制逻辑。为了有助于建立动态模型,通常在画状态图之前先画出事件跟踪图。由事件引起的状态改变称为“转换”。如果一个事件并不引起当前状态发生转换,则可忽略这个事件。在完成了每个具有重要交互行为的类的状态图之后,应该检查系统级的完整性和一致性。

8.3.3 建立动态模型

建立动态模型的步骤:

第一步:编写典型交互行为的脚本。

第二步:从脚本中提取出事件,确定触发每个事件的动作对象以及接受事件的目标对象。

第三步:排列事件发生的次序,确定每个对象可能有的状态及状态间的转换关系并用状态图描绘它们。

最后:比较各个对象的状态图,检查它们之间的一致性,确保事件之间的匹配。

一、编写脚本

在建立动态模型的过程中,脚本是指系统在某一执行期间内出现的一系列事件。脚本描述用户(或其他外部设备)与目标系统之间的一个或多个典型的交互过程,以便对目标系统的行为有更具体的认识。编写脚本的目的,是保证不遗漏重要的交互步骤,它有助于确保整个交互过程的正确性和清晰性。

二、设想用户界面

大多数交互行为都可以分为应用逻辑和用户界面两部分。通常,系统分析员首先集中精力考虑系统的信息流和控制流,而不是首先考虑用户界面。事实上,采用不同界面(例如,命令行或图形用户界面),可以实现同样的程序逻辑。应用逻辑是内在的、本质的内容,用户界面是外在的表现形式。动态模型着重表示应用系统的控制逻辑。

不经过实际使用很难评价一个用户界面的优劣,因此,软件开发人员往往快速地建立起用户界面的原型,供用户试用与评价。

三、画事件跟踪图

为了有助于建立动态模型,通常在画状态图之前先画出事件跟踪图。为此首先需要进一步明确事件及事件与对象的关系。

(1)确定事件。应该仔细分析每个脚本,以便从中提取出所有外部事件。事件包括系统与用户(或外部设备)交互的所有信号、输入、输出、中断、动作等等。从脚本中容易找出正常事件,不要遗漏了异常事件和出错条件。

(2)画出事件跟踪图。从脚本中提取出各类事件并确定了每类事件的发送对象和接受对象之后,就可以用事件跟踪图把事件序列以及事件与对象的关系,形象、清晰地表示出来。事件跟踪图实质上是扩充的脚本,可以认为事件跟踪图是简化的UML顺序图。

四、画状态图

状态图描绘事件与对象状态的关系。当对象接受了一个事件以后,它的下个状态取决于当前状态及所接受的事件。由事件引起的状态改变称为“转换”。如果一个事件并不引起当前状态发生转换,则可忽略这个事件。

通常,用一张状态图描绘一类对象的行为,它确定了由事件序列引出的状态序列。系统分析员应该集中精力仅考虑具有重要交互行为的那些类。

从一张事件跟踪图出发画状态图时,应该集中精力仅考虑影响一类对象的事件,也就是说,仅考虑事件跟踪图中指向某条竖线的那些箭头线。

根据一张事件跟踪图画出状态图之后,再把其他脚本的事件跟踪图合并到已画出的状态图中。为此需在事件跟踪图中找出以前考虑过的脚本的分支点(例如,“验证账户”就是一个分支点,因为验证的结果可能是“账户有效”,也可能是“账户无效”),然后把其他脚本中的事件序列并入已有的状态图中,作为一条可选的路径。

考虑完正常事件之后再考虑边界情况和特殊情况,其中包括在不适当时候发生的事件(例如,系统正在处理某个事务时,用户要求取消该事务)。

当状态图覆盖了所有脚本,包含了影响某类对象状态的全部事件时,该类的状态图就构造出来了。利用这张状态图可能会发现一些遗漏的情况。测试完整性和出错处理能力的最好方法,是设想各种可能出现的情况,多问几个“如果……,则……”的问题。

五、审查动态模型

各个类的状态图通过共享事件合并起来,构成了系统的动态模型。在完成了每个具有重要交互行为的类的状态图之后,应该检查系统级的完整性和一致性。

对于没有前驱或没有后继的状态应该着重审查,如果这个状态既不是交互序列的起点也不是终点,则发现了一个错误。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈