0

でいっぱいの古いプログラムの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

私の実験

4

1 に答える 1

1

これは、複数のアクティビティ図を使用して実行できます。コードから、トップレベルの図に発生する可能性のあるエラーを表示したくありませんが、表示される図に、CTrap発生する可能性のあるエラーコードとその機能を表示できます。

すべての情報を1つの図に表示したい場合、できることは何もありません。図はかなり乱雑になります。

編集(図の追加後):リンク内のガードを連結できるため、ジャンクションから4つのリンクを送信する代わりに、1つを取得できます。他にできることはないと思います。

于 2012-10-14T20:50:37.447 に答える