でいっぱいの古いプログラムのUMLアクティビティ図を作成しようとしていgoto
ます。モデル化するプログラムは、例のように構成されています。最初に何かを作成し、次にエラーフラグをチェックします。また、エラーフラグが設定されている場合は、エラーコードがログに書き込まれ、プログラム内の別の場所に移動する可能性があります。
// When error, the program generate a Trap and then go to 1000
err = Foo(A,B,C)
if (err != 0)
{
CTrap(2000,err,A,B,C)
goto(1000)
}
// When error, the program generate a trap and continue
err = Foo2(A,B,C)
if (err != 0)
{
CTrap(2000,err,A,B,C)
}
CTrap
エラーコードをログに書き込みます。アクティビティ図に、各アクティビティがいつ生成できるエラーコードを表示する必要があります。
今、私はこれを無数の決定とマージでモデル化してみて、ログに書き込まれるエラーコードごとにアクションを追加しました。しかし、そのときはプログラムに従うことはほとんど不可能です。エラーコードのアクションを削除することはできますが、重要な情報が失われます。そして、それはまだ無数の決定と合併です。どういうわけかそれを単純化するために使用できる表記法があるのだろうか。そのため、チャートに決定やマージをあふれさせることなく、いつ生成できるエラーコードが表示されます。エラーフラグのポストコンションを何らかの方法で使用できる場合、または条件がオンのキャンペーンから複数の出力を取得できる場合はどうなりますか?
編集
コメントにエラーコード(トラップ)に関する情報を入れて少し実験しました。私がやったように書くことが可能かどうかわかりませんか?そして、私がいくつかの場所で行った活動から異なるアウトプットを得ることができますか?それでは、「変数の書き込み」を正しく使用しているのだろうか?これは1つの実験であり、完全な図ではありません。
BFXの接頭辞が付いている関数はシステム関数であり、BX2の接頭辞が付いている関数はこのプログラムに関連付けられている関数です。すべてのマージはGOTOの宛先です。たとえば、8100と呼ばれるマージは、次のようなエラー状況を処理するプログラムの一部です。GOTO 8100