正确的UML语义和语法

正确的UML语义和语法,uml,Uml,我有两个UML类,分别命名为owner和vehicle 我想知道是否可以声明车辆“概括”了车主,因为我希望对象车辆继承分配给车主的属性。这似乎不正确,因为我不认为车辆是一个子类或所有者的子类型,但看到我是UML的新手,我不是专家。 < P>你说,“车辆”概括了“所有者”,但接着说,“我希望对象车辆继承分配给所有者的属性。”这两种说法是矛盾的,因为一个超类是泛化的,而一个子类是专门化的。因为您希望车辆从所有者继承属性,所以我假设您正在询问是否可以声明所有者概括了车辆(以及车辆所有者) 在现实世界中

我有两个UML类,分别命名为owner和vehicle

我想知道是否可以声明车辆“概括”了车主,因为我希望对象车辆继承分配给车主的属性。这似乎不正确,因为我不认为车辆是一个子类或所有者的子类型,但看到我是UML的新手,我不是专家。

< P>你说,“车辆”概括了“所有者”,但接着说,“我希望对象车辆继承分配给所有者的属性。”这两种说法是矛盾的,因为一个超类是泛化的,而一个子类是专门化的。因为您希望车辆从所有者继承属性,所以我假设您正在询问是否可以声明所有者概括了车辆(以及车辆所有者)

在现实世界中,并不是说每辆车都是车主。你的车拥有什么?你的意思是它“拥有”自己的引擎、轮子和门吗?这与“拥有”你的汽车或房子是同一个概念吗


类是用来表示可重用属性和方法的,这些属性和方法似乎可以节省一些编码时间,尽管许多程序员都这样对待它们。它们被称为类,因为它们代表问题域(即“真实世界”)中的事物类。这就是许多程序员误入歧途的地方——他们专注于解决方案领域中变化更快的事情,并且失去了面向对象的所有好处。OOA/OOP的一个关键原则是,问题域很少发生变化,因此它为构建软件提供了相对稳定的基础。如果你声称一些奇怪的事情,比如“车辆永远是车主”,你会在不稳定的沙地上建造,当你发现索赔不再那么方便时,你可能会花很多时间与潮流抗争车辆在哪些方面始终是车主?许多面向业务的主题专家会同意您的观点吗?

您可以使用公共抽象类来重新组合公共属性。假设您希望所有者和车辆共享一个公共名称属性。您可以使用以下模型


谢谢你的回答。原谅我的过错。我理解,如果我说车主概括了车辆,而车辆专门化了车主,那么说车辆是一种车主是不正确的,因为我试图表达车辆的所有权,例如Bob拥有一辆福特。然而,我不确定我如何才能表现出我试图实现的目标。我想我应该塑造一个扮演
AssetOwner
角色的
,以及扮演
资产
角色的
车辆
。然后你就可以把它们联系起来。(从英语语句开始,比如“一个
资产
由一个
AssetOwner
/一个
AssetOwner
拥有任意数量的
资产
)在这个小小的注释框里很难展示给你看。我建议你从Leon Starr的优秀文章开始,它有很多很好的例子。谢谢Xaeli。虽然我不知道UML的经验和知识是不是正确的,但是我不确定。我还需要考虑什么来验证和验证MO。del?有没有一种方法可以验证模型?验证模型是没有魔力的。最大的问题是“模型能告诉你想说什么吗?”?“但第一步是使用真正的建模工具,而不是绘图工具。老实说,我不知道,因为我越是尝试了解它,就越会发现我对模型的看法是有偏见的,而且很难接受“局外人”的观点。”。我正在使用一个合适的建模工具。嗯,有没有一种方法可以让一个专家来帮助我,他可以指导我,纠正我的错误,质疑我的设计,等等?