ストラタジーナム メニュー

2006年6月20日火曜日

UML中級講座 第53回 CreateObjectAction

先日、たまたま仕事上で、このブログを時々覗きに来ているとおっしゃる方とお会いした折、「制約条件に反した状況が発生した場合は、UMLはどういう風に振る舞うのか?」というご質問を頂きました。
皆様の参考にもなるかと思いますのでので、ここにその点をコメント致します。
UMLの仕様上、一般的に、制約条件に違反した場合の振舞いは規定されておりません。
例えば、本日取り上げるCreateObjectActionは、指定された分類子(クラス)からオブジェクトを生成するアクションですが、当然の事ながら、指定された分類子(クラス)は具象分類子(具象クラス)で有る必要があります。
仮に、その制約を破って、抽象分類子が指定された場合、処理方法は規定されておらず、結果は予想不能の状態になります。
文法と言う観点からいえば、明らかに文法違反であるため、わざわざ規定する必要がないので無規定としているわけです。

5−4−1 CreateObjectAction

CreateObjectActionは、指定された分類子に適合するオブジェクトを生成し、それを出力ピンに置くアクションです(オブジェクトそのものが戻り値になります)。
このアクションは、単にオブジェクトを生成するだけであり、初期値やリンクを設定したり、ステートマシンの遷移を引き起こしたりと言った副作用を全く伴いません。

【制約】

• i 分類子は抽象クラスではあってはならない。
• ii 分類子は関連クラスであってはならない。
• iii 出力ピンの多重度は1。



図11−06