我认为在UML中,“extends”是基于扩展点的,这意味着在用例中必须有一个命名点来应用扩展。关于此,语义并不是非常精确。对于用例的继承,意味着改变某些行为,而不是准确地指定位置。 另一个重要的问题涉及继承和Liskov替换原则。你应该能够在任何可以使用另一个 use case 的地方使用继承自另一 use case 的一个 use case。但这并不适用于“extends”的理解方式。当一个用例被另一个用例扩展时,这意味着一个用例可能会被另一个修改,但它仍然包含主场景路径,而扩展用例可能会分叉和合并主场景路径。我认为这就是结构继承和行为继承之间的区别。继承是为了实现同样的目标,满足相同的利益-相同的责任和行为约束,而扩展是指场景路径结构的修改,可能会被附加利益-如错误检查-触发。 实际上,继承不是用于用例的很好机制,与演员继承相结合更具意义,它可能导致不需要的悖论。根据Alistair Cockburn(编写有效用例)的建议,继承只应用于表示特定用例的技术细节或数据格式的变化。