如何在UML组件图中表示Web应用服务器的多实例与多态性?
Web应用服务器的UML组件图建模方案
1. 表达任意数量的Web应用实例
在UML组件图中,直接在Web应用实例的组件节点右下角标注重复度标记0..*即可:
0对应服务器启动初期无实例的状态,*表示后续可创建任意数量的实例- 如果用带下划线的实例化组件节点,也可以在节点旁标注
[0..*],明确表示这是一组可变数量的实例
2. 连接服务器与多实例的http transaction接口
分两步处理接口映射和多实例连接:
- 给服务器和Web应用分别定义端口(Port):服务器对外提供
<<provided>> http transaction端口(供客户端发起请求),每个Web应用实例提供<<provided>> http transaction端口(处理具体请求) - 用**委托连接器(Delegation Connector)**将服务器的内部逻辑端口,与Web应用实例组的
http transaction端口连接,同时在Web应用端标注重复度0..*,表示服务器可以动态路由请求到任意数量的实例上 - 简化版可直接用组装连接器,在服务器和Web应用组件之间画连线,连线的Web应用端标注
*,并标注接口名称http transaction
3. 限定实例为五种预定义类型
结合泛化和约束来实现:
- 先创建一个抽象组件
AbstractWebApp,让你已建模的五种Web应用组件通过泛化关系继承这个抽象组件 - 在服务器与
AbstractWebApp的实例关联上,标注重复度0..*,同时添加UML约束{instance of (WebAppType1 or WebAppType2 or WebAppType3 or WebAppType4 or WebAppType5)},明确限定所有实例只能是这五种类型之一 - 也可以直接在服务器和五个具体Web应用组件之间画依赖关系,每个依赖旁标注
*,并添加约束说明服务器仅实例化这五类组件
内容的提问来源于stack exchange,提问作者Mike Nakis
相关产品推荐
相关产品推荐

