概念建模中的高级特性与架构设计
1. 多重泛化与主导泛化
在概念建模里,一个类可能存在多个超类,这就会引发一系列潜在问题。比如,当引入一个顶级类 ArchaeologicalEntity ,它带有 Id 属性,用于为记录的任何考古实体分配唯一标识符。 Place 和 MaterialEntity 都会继承这个 Id 属性,而 Feature 又会从 Place 和 MaterialEntity 继承所有属性,这就导致 Feature 似乎会两次继承 Id 属性,一次通过 Place ,一次通过 MaterialEntity ,这显然不合理,因为我们不希望实体有两个标识符,而且一个类不能有多个同名属性,这种情况在概念建模文献中被称为“钻石问题”。
ConML解决“钻石问题”的方法是,让建模者决定在冲突情况下 Feature 的哪个泛化应该占主导。我们需要思考 Feature 主要是一个带有物质实体特征的地点,还是主要是一个带有地点特征的物质实体。根据模型的目的和对相关类别的概念化,我们要做出选择。例如,我们可以选择让 MaterialEntity 而非 Place 在 Feature 上占主导。一旦确
超级会员免费看
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



