uml - 如何在 UML 对象图中对不同类之间的属性依赖关系进行建模?
问题描述
在可视化系统的不同部分的范围内,我想准确地显示不同属性之间的依赖关系。
在我的情况下,用例将在用户界面中,用户必须选择国家,并且根据他对产品的选择值,必须在相应的下拉列表中更新,例如。
类的值Country
:
Country1
Country2
Country2
类的值Product
:
Product1
(仅适用于Country1
)Product2
(可用于Country1
ANDCountry2
)Product3
(仅适用于Country2
)Product4
(仅适用于Country3
)
我已经阅读了派生属性和约束,因为这可能是我的情况。还有一些链接可能与同一问题有关: https ://softwareengineering.stackexchange.com/questions/386816/how-to-model-attribute-dependency-inside-one-class-in-uml-class-diagram
但现在我没有一个可行的解决方案。
出于一般目的,我试图用抽象类图来表示这些关系,但我很难用对象图中这些类的确切值来做到这一点
解决方案
只需使用Association
介于Product
和之间Country
。如果您想捕获每个产品-国家/地区对的属性,例如@Thomas 提到的价格,那么 anAssociationClass
是自然的选择。
在对象图中,关联(链接)的实例可以显示为线条。您将在 Country1 和 Product1 以及 Country2 和 Product2 和 Product3 之间有线......这可以用来说明您的系统的结构以及它如何随着时间的推移而演变。要真正定义它,其他图表更适合。
我不明白,对协会的限制有什么帮助。文本约束可能在一些额外的 Class 上Selection
。约束的开始可能是:context Selection: product = product1 implies country in (country1)
. 这将不允许以后添加新产品。国家和产品之间的链接定义的约束更具可读性。
推荐阅读
- excel - MS Access 导入 Excel 无法连接
- docker - Docker swarm 模式下 docker-compose.yml 中的 {{node.hostname}} 用法
- azure - 在 Azure 逻辑应用中使用 HTTP 操作时如何在 JSON 正文中使用“@odata.id”?
- python - 使用 setuptools 和 swig 构建模块
- powershell - Powershell 在 AzureVM 上创建文件夹
- java - 具有已知未知主机的多个 Maven 存储库
- flutter - Flutter中如何减少AppBar的标题空间
- azure-container-service - Azure 托管 Kubernetes 服务 (AKS) 中的安全性
- xamarin - Xamarin.Forms 任务与目标不匹配
- c++ - 关于全局变量