7

尽我所知,

该操作位于类图中的类的第二个隔间中。

以下Behavior definition来自 UML 规范(2011 年 8 月,第 445 页)

13.3.2 行为(来自 BasicBehaviors)

行为是其上下文分类器如何随时间改变状态的规范。该规范可以是可能的行为执行或紧急行为的定义,或者是可能执行的有趣子集的选择性说明。后一种形式通常用于捕获示例,例如特定执行的跟踪。分类器行为始终是行为的定义,而不是说明。它描述了分类器实例在其生命周期中可能经历的状态变化序列。它的精确语义取决于分类器的种类。例如,协作的分类器行为表示所有部分的紧急行为,而类的分类器行为只是类实例的行为与其任何部分的行为分开。当行为与行为特征的方法相关联时,它定义了该特征的实现(即,生成行为特征效果的计算)。

1)您能解释一下上述定义中的行为是什么意思吗?

2)统一建模语言(UML)中的行为和操作有什么区别?

4

3 回答 3

3

操作是一个仅规范的元素 - 将其想象为 OO 编程语言中的方法签名。它有一个名称和一个参数列表。

行为是(除其他外)操作(或其他行为特征,如接收)在调用时所做的事情 - 将其想象为方法的主体。

UML 实际上将定义操作做什么的行为称为“方法”。此外,从行为(无论是活动还是状态机)来看,操作被视为“规范”。

还要注意,在 UML 中操作可以有多个方法。它意味着什么以及在调用操作时应该执行什么行为取决于相关工具。

最后,行为可以是状态机或活动——活动很容易理解,因为它们相当于程序代码。状态机是完全不同的野兽,我承认我不明白如何将状态机用作操作的行为。

于 2013-06-28T05:02:21.360 回答
2

准确地说:

在 UML 类图中,一般类有 3 个公共隔间:可以更多,因为用户定义的隔间可以添加到类框形状中。

在实践中,隔间的顺序:

  1. 班级名称
  2. 属性
  3. 运营

所以第三个比较用于“操作”。

行为: ?你说的行为是什么意思??

在 OO 术语中,对象具有属性(属性)[汽车有颜色]和 行为(操作)[汽车加速、停止等]。

在 UML 术语 中,操作的实现称为方法

我们使用交互(序列或协作)图来研究我们将构建或研究的系统的动态行为。

于 2013-06-09T16:16:19.860 回答
1

Behavior 的专业化: OpaqueBehavior、Activity、StateMachine、Interaction 例如,“i = i+ 1;”的 OpaqueBehavior

BehavioralFeature 的规范: 操作,接收例如,“void foo()”的操作

组合:行为可以直接调用,通过它作为方法实现的 BehavioralFeature 或作为 BehavioredClassifier 的分类器行为。

例如,

void foo()
{
    i = i + 1;
}

UML 为开发人员提供了“分配”具有不同“行为”以调用的操作的灵活性。例如,如果有另一个行为“MyStateMachine”,您可以简单地分配操作“foo”来调用它。

void foo()
{
    (new MyStateMachine(this)).run();  //Create an instance of it, pass the current classifier as context of the behavior
}
于 2013-06-13T03:06:30.723 回答