我对 UML 有一个要求:关联的多样性可以根据时间而变化。我对此有一些看法,例如,使用一个列表来存储多重性历史,一旦多重性发生变化就创建一个新的关联。但似乎都不是好的选择。那么有人可以给我一些建议吗?非常感谢。
问问题
48 次
2 回答
2
有两种情况需要考虑:多样性的变化可能会作为软件系统(不可预见和不可预见的)演变的一部分发生,或者如果它可能是已知的(如周五的 2..5 和 1..3剩余时间)并成为要设计和构建的系统要求的一部分。
如果多样性的变化是软件系统(不可预见的)演进的一部分,那么您就无法为它制定设计,因此,您只能在它发生时将其容纳在您的系统模型中。软件系统的演进本质上是由于其需求的演进。但是,当您对系统建模时,您只有当前需求作为创建具有类、关联和多重性的信息模型的基础。需求的演变意味着信息模型的相应演变,包括关联多重性。因此,随着时间的推移,您将获得描述/定义系统的模型的历史序列。
如果在设计时已知多重性的时间变化,那么您可以在模型中捕捉到这一点的唯一方法是使用允许变化的最不慷慨的多重性约束(例如,1..5)并描述变化(简单英文)在附加到相关关联端的约束框中。
于 2019-08-16T12:09:19.320 回答
0
嗯,这很简单:只需为关联分配一个多重性。如果未指定下限和上限,则为0..*
. 如果您的最小值为 1,则为1..*
. 上限也是如此(将 替换为*
应有的值)。
你如何实现它完全取决于编码器。您只需在 UML 中指定约束。例如,如果您有多个0..*
编码器,则可能会选择可变长度数组/集合。如果是这样1..2
,它可能以name1
,name2
作为单个变量结束。
于 2019-08-16T08:09:57.937 回答