问题描述:
我在类中有两个带布尔类型的属性:Light
于:布尔
关:布尔
使用UML2中的操作作为活动图在行为中实现四个操作:
在set_on属性" on"类型布尔应该有' True'或者“假”' 我想我应该使用" AddStructuralFeatureValueAction"但我不完全确定
11.3.5:AddStructuralFeatureValueAction(来自IntermediateActions)是一种写结构特征动作,用于向结构添加值 特征
但问题是我不知道如何在活动图中使用(建模)
<_>在get_on()中它返回属性的当前值,但我不知道这种情况下适用的UML操作是什么以及如何在活动图中使用(建模)答案 0 :(得分:3)
您的问题不在您的UML理解中,而是在您设置的结构中。它不适合任务。在生活中,光不能打开并同时关闭。在你的模型中它可以。你自然迷路了。
Light类将拥有成员:
fields:private boolean state, 可能的公共函数集:void turnOn(),void turnOff(),boolean switchState(),boolean getState(),setState(boolean state)。
我希望,这些功能的行动是显而易见的。
(如果您正在为类函数建模,也可以在活动图之前制作类图。)
答案 1 :(得分:2)
扩展Gangnus的答案(我发现完全正确,有upvote),我强烈建议你将sime时间用于学习OO,一般来说,类图和类建模。在实践中,类diagam通常为您的模型设置整体底层结构,设置逻辑,规则......所有其他图表都依赖于acuretly建模的域对象(或数据对象,如果您愿意)。
在你的例子中(再次 - 正如Gangus所说),你对你的课程进行了非常错误的建模。只需一个布尔变量即可确定灯是打开还是关闭。
关于AddStructuralFeatureValueAction,我暂时忘了它。所有这些行为及其详细的理解对于元建模来说比在现实世界中进行建模更为需要。项目
活动图是一个很棒的工具,但是对你来说最完美的抽象是它最终操纵一些数据以实现某些目标的一些任务。集中精力正确识别那些&#34;任务&#34;而不是将它们映射到正式的UML元模型(动作类型)上。只需使用通用行为即可。
打开灯可以这样建模(基于Gangnus提出的类):
如果您想显示课程方法的调用,请考虑序列图。