技术开发 频道

聊天室UML模型一致性问题

【IT168 技术文章】

    1 简介

    软件系统的开发过程通常会被划分成一些步骤,每个步骤会用到不同的UML图。由于建模系统变得越来越复杂,一致性问题就越发突出起来。而在其中,有两种类型或问题更为显著。第一,内部一致性问题,涉及给定模型内部制品之间的一致性。第二,系统之间一致性问题,涉及软件开发过程中不同演化模型之间的一致性。我们主要关注于内部一致性问题。

    不同的文献提出了不同的形式化方法,用来自动检查一致性,发现设计当中存在的问题。在下面几节里,我们分步研究了一个聊天室的开发过程。本文的灵感来源于Agder大学Geir Melby完成的一次项目报告,这个模型提出了一些潜在的一致性问题。对于它们当中的部分内容,也给出了自动化的一致性检查方法。

    在这份案例研究中,我们从需求开始开发了一个聊天室模型。第二节给出了客户、管理器对象以及聊天室之间的通信协议,作为初始需求。第三节研究了一个可能的类的设计,它定义了符合协议的接口。第四节中给出的时序图进一步定义和描述了组件之间的通信,并保持与类设计之间的一致性。第五节使用状态图更进一步地确定应用程序的行为。这份规程可以在我们的SVM(状态图虚拟机)环境中实时地进行仿真或执行。在第六节中,讨论了协议规程与仿真迹的一致性。第七节进行总结。

    2 通信协议

    我们将要创建的聊天室程序是按照客户机/服务器范型来架构的。客户会随机连接聊天室。如果某个聊天室接收了客户,客户就会发送消息给这个聊天室。然后聊天室广播每条消息,除了发送者以外,每个与聊天室建立连接的客户都会收到一份拷贝。

    下面将要描述一个特定的简化了的用例:

    系统包括五个客户和两个聊天室。客户端最初没有连接。每隔一到三秒(非均匀分布),它们都会随机连接一个聊天室。被请求的聊天室同时收到请求(假定没有网络延时,并且通信可靠)。

    一个聊天室至多接收三个客户。当且仅当容量没有超标时聊天室才会接收连接。

    发出请求的客户会立刻收到接收或拒绝通知。

    在客户可以发送聊天信息之前必须被一个聊天室接收。

    连接建立之后,客户会每隔一到五秒(非均匀分布)给它所连接的聊天室发送随机消息。聊天室会立即接收消息,它将耗时一秒钟来处理接收到的消息,并把它广播给除发送者之外的所有连接客户。

    客户会同时收到广播。为了简化起见,我们不讨论没有连接的情况。

0
相关文章