0

xtxUml で顧客がレストランで食事を注文できるようにするためのマシン モデル. 下の画像のようなモデルを表示したいのですが、以下のコードを修正するにはどうすればよいですか?関連付けなしで結果が得られます。あなたのアドバイスと助けに感謝します。

class RestuarantClasses extends ClassDiagram {
    @Spacing(0.5)
    @TopMost(People.class)
    @Row({Customer.class, Worker.class})
    @Column({People.class, Worker.class,Waiter.class})
    @Row({Cooker.class, Waiter.class, Cashier.class})
}
class RestuarantLayout extends Layout {}
}



class CustomerStates extends StateMachineDiagram<Customer> {
    @TopMost({Customer.OpenDoor.class})
    @Row({Customer.Waiting.class, Customer.StartSelection.class})
    @Row({Customer.SaladOrNoodle.class, Customer.OrderSteak.class})
    @Row({Customer.OrderNoodle.class, Customer.OrderSalad.class})

class L extends Layout {
}

ここに画像の説明を入力

4

2 に答える 2

0

サンプルコードにタイプミスがあると思います。Layoutクラスは、次のようなダイアグラムの内部クラスである必要があります。

    class RestuarantClasses extends ClassDiagram {
        @Spacing(0.5)
        @TopMost(People.class)
        @Row({Customer.class, Worker.class})
        @Column({People.class, Worker.class,Waiter.class})
        @Row({Cooker.class, Waiter.class, Cashier.class})
        class RestuarantLayout extends Layout {}
    }

StateMachine の説明では、ボックス間の垂直方向の関係も指定する必要があります。アルゴリズムは、行の垂直方向の配置を解決できません。

そうでなければ、ダイアグラムの説明に問題はないと思います。

注 1:AboveBelowLeftおよびを使用するとRight、ボックスの直接の隣接を表現できます。Rowandを使用するとColumn、同じ関係を表す便利な形式になります。

注 2:Payment状態はどこにも書いていません。図の説明に含まれていないボックスは、デフォルトでは図に表示されません。ボックスについて何も言いたくないが、それを見たい場合は、Show注釈を使用します。
ダイアグラム記述言語の詳細を読む


何の連想も得られないのは非常に奇妙です。ダイアグラムに表示されるボックス間のリンクは、自動的に配置され、視覚化されます。

モデルを再作成しようとしましたが、正常に動作するはずです:

    package restaurant.model;

    class People;
    class Worker extends People;
    class Cooker extends Worker;
    class Cashier extends Worker;
    class Waiter extends Worker;

    class Customer extends People{
        initial OpenDoor;
        state Waiting;
        state StartSelection;
        state SaladOrNoodle;
        state OrderSteak;
        state OrderNoodle;
        state OrderSalad;
        state Payment;

        transition tr1{
            from OpenDoor;
            to Waiting;
        }

        transition startSelectionTr{
            from Waiting;
            to StartSelection;
            trigger StartSelectionSignal;
        }

        transition orderSteakTr{
            from StartSelection;
            to OrderSteak;
            trigger OrderSteakSignal;
        }

        transition orderSaladOrNoodleTr{
            from StartSelection;
            to SaladOrNoodle;
            trigger OrderSaladOrNoodleSignal;
        }

        transition orderSaladTr{
            from SaladOrNoodle;
            to OrderSalad;
            trigger OrderSaladSignal;
        }

        transition orderNoodleTr{
            from SaladOrNoodle;
            to OrderNoodle;
            trigger OrderNoodleSignal;
        }

        transition payTr1{
            from OrderNoodle;
            to Payment;
            trigger PaySignal;
        }

        transition payTr2{
            from OrderSteak;
            to Payment;
            trigger PaySignal;
        }

        transition payTr3{
            from SaladOrNoodle;
            to Payment;
            trigger PaySignal;
        }
    }

    signal StartSelectionSignal;
    signal OrderSteakSignal;
    signal OrderSaladOrNoodleSignal;
    signal OrderSaladSignal;
    signal OrderNoodleSignal;
    signal PaySignal;
于 2016-10-26T17:40:03.140 に答える