目录
1、概念
2、时间
3、位置
4、常用建模技术
4.1、对定时约束建模
4.2、对对象的分布建模
分布式系统是这样一个系统,它的构件可以物理地分布在各个结点上。
为了表达对实时系统和分布式系统建模的需要,UML 提供了定时标记、时间表达式、定时约束和位置的图形化表示。
1、概念
- 定时标记 (timing mark)是表示事件发生时刻的符号。在图形上,定时标记由位于顺序图边缘的一根小小的水平线表示。
- 时间表达式 (time expression)是用来计算绝对或相对时间值的表达式。时间表达式也可以由消息名和对其处理阶段的表示来形成,如request.sendTime或者request.receiveTime。
- 定时约束 (timingconstraint)是关于绝对或相对时间值的语义陈述。从图形上看,时间约束的表示同所有约束一样,即由用一对括号括起来的串来表示,并一般通过一个依赖关系连接到一个元素
- 位置 (location)是指构件在结点上的放置。位置是对象的一个属性。
2、时间
对一个事件的响应必须在可预料的绝对时间或者相对于事件本身可预料的时间发生。
发送时间(sendTime)、接收时间(receiveTime)和传送时间(transmissionTime)。
对于同步调用,也可以引用执行时间(executionTime)来表示往返消息的时间。
可以把这些时间表达式放进一个定时约束中,来说明系统的定时行为。至于约束,可以把它们放在合适的消息的附近,或者用依赖关系显式地连接到消息上来进行表示。
用命名的常量来书写表达式要比显式地写时间好。这样,就可以在模型的一个地方定义这些常量,然后在多个地方引用它们。
3、位置
分布式系统的本质是包含物理上分散于系统各结点上的构件。
在UML中,用部署图来对一个系统的部署视图建模。部署图代表系统在其上执行的处理器和设备的拓扑结构。
制品(例如可执行程序、库、表等)存在于这些结点上。一个结点的每个实例将拥有某些制品的实例,而一个制品的每个实例肯定属于一个结点的一个实例(尽管同一种制品的实例可能散布到不同的结点上)。
可以把构件和类表现为制品。
上图类LoadAgent由类型为Router的结点上的制品initializer.exe来表现。
在UML中可以用两种方式对一个制品的位置建模:
- 第一种方法如Router所示,将元素(文本或图形)物理地嵌套在包含它的那个结点的附加栏中
- 第二种方法用带关键词«deploy»的依赖关系将制品和包含它的结点相连。
4、常用建模技术
4.1、对定时约束建模
上图最左边的约束说明了调用事件“刷新”refresh的重复的开始时间。类似地,右边的定时约束说明调用getImage的最大时间段。通常为消息选择简短的名称,使之不与操作的名称相混淆。
4.2、对对象的分布建模
1、考虑相关对象集合之间的交互模式
2、考虑系统职责的分布
3、考虑安全、易变性和服务质量问题
4、把对象分配到制品,使得紧密耦合的对象分布在同一个制品上。
5、把制品分配到结点上
上图提供了一个对象图,它对一个零售系统中的一些对象的分布进行建模。这张图的价值在于,它让你可视化某些关键对象的物理分布。
如图所示,两个对象(Order 和 Sales)位于 Workstation 上,两个对象(ObserverAgent 和 Product)位于 Server 上,一个对象(ProductTable)位于DataWarehouse上。