diff --git a/courseA/IM_DTRAM.html b/courseA/IM_DTRAM.html index 3f4700d..045cf3b 100644 --- a/courseA/IM_DTRAM.html +++ b/courseA/IM_DTRAM.html @@ -18,16 +18,15 @@ 【InventoryManagement(DTRAM)の課題】
- ここでは,DTRAMを用いて記述したInventoryManagementの課題について説明します.
- 以下にInventoryManagementのモデルを示します.こちらを適宜参照しながらモデルの理解を行ってください.
+ ここでは,InventoryManagementのDTRAMによる仕様記述に関する課題に取り組んでいただきます.
+ 以下にDTRAMで記述されたInventoryManagementのモデルを示します.こちらを適宜参照しながらモデルの理解を行ってください.
- 以下のモデルでは始めに,新規に取り扱う商品を入荷する時に使用されるイベントチャンネル,ItemRegistraction
を宣言しています.
- 次にある,ReceivingOrShipping(itemId:
は itemId
を用いて
- 登録されている商品に対して出荷か入荷を行う時に使用されるイベントチャンネルになります.
+ 以下のモデルでは始めに,新規商品登録用のイベントチャンネル,ItemRegistraction
を宣言しています.
+ 次の ReceivingOrShipping(itemId:
は,itemId
で登録されている商品に対して入荷か出荷を行う用のイベントチャンネルとして宣言しています.
- 先ほどのInventoryManagementを,DTRAMの可視化ツールを使用して,モデルを可視化した図が以下の通りになります.
+ 先ほどのInventoryManagementのモデルのリソースとチャンネルを,DTRAMのモデリングツールを使用して可視化したものを以下の図に示します.
- まず,始めに商品全体を管理する倉庫を表している inventory
というリソースがあります.
- 次に,その下の階層に inventory
リソースを親にしている,inventory.{itemId}
という子リソースがあります.
- この子リソースは,商品を識別するためのIDを表す itemId
という
- パスパラメータがあるので,一意なリソース(商品)を特定することができます.
- そして,最後に inventory.{itemId}
リソースを親にしている,inventory.{itemId}.count
という子リソースがあり,特定の商品の在庫数量を表しています.
+ この図がモデルの実行に依らない,リソースを表していることに注意して下さい.
+ 始めに,図の中央にある inventory
リソースは商品全体を保管する倉庫を表しており,
+
を流れるメッセージ( registerItem
)を受け取ります.
+ 次に,inventory
リソースの子リソースとして,inventory.{itemId}
リソースが表示されています.
+ このリソースは,商品IDを表す itemId
というパスパラメータを持っているため,一意なリソース(商品)の特定を可能にしています.
+ 最後に,inventory.{itemId}
リソースの子リソースとして,itemId
で示された商品の在庫数を表す inventory.{itemId}.count
リソースが表示されており,
+
を流れるメッセージ( receiveOrShip
)を受け取ります.
- ここでは,InventoryManagementの仮想実行について説明します.InventoryManagementの仮想実行で用いるテストケースは次の通りです.
+ ここでは,InventoryManagementモデルの仮想実行について説明します.この仮想実行で用いるテストケースは次の通りです.
- 先ほどの仮想実行を可視化したものを以下に示していきます.
+ 仮想実行を,シミュレーションツールを使用して可視化したものを以下に示していきます.
まず,システムの初期状態を可視化したものが以下の図です.
- 初期状態のため,inventory
リソースには何の商品も登録されていないという状態になっています.
- 次に,テストケースの1を実行していくので,inventory
リソースをダブルクリックします.
+ 初期状態のため,inventory
リソースには何の商品も登録されていない状態になっています.
+ 次に,新商品(Asahi)を登録するので,inventory
リソースをダブルクリックします.
- ダブルクリックすると,registerItem
というメッセージが選択できるので,こちらを選択します.
+ inventory
リソースに対して,registerItem
という商品を登録するためのメッセージが選択できるので,こちらを選択します.
- 次に,inventory
リソースに対して,商品のIDを表す itemId
と
- 商品名を表す itemName
,入荷数量を表す quantity
を入力できる画面が表示されます.
+ 商品IDを表す itemId
と商品名を表す itemName
,初期数量を表す quantity
を入力できる画面が表示されます.
- ここでは,inventory
リソースに対してregisterItem(@123, "Asahi", 100)
というメッセージを入力し,実行します.
+ ここでは,registerItem("@123", "Asahi", 100)
を入力します.
- 実行した結果,次の状態に遷移することができたので,固有のID(@123)の状態を持ったinventory.@123
と
- 在庫数量が100の状態を持ったinventory.@123.count
,商品名がAsahiの状態を持った inventory.@123.name
という
- 3つのリソースが表示されました.
- 次に,テストケースの2を実行していきますので,inventory.@123.count
リソースをダブルクリックします.
+ 次の状態に遷移したので,商品IDが@123という状態の inventory.@123
と
+ 在庫数量が100という状態の inventory.@123.count
,商品名がAsahiという状態の inventory.@123.name
の3つのリソースが表示されました.
+ 次に,登録した商品(Asahi)を50個出荷したいので,inventory.@123.count
リソースをダブルクリックします.
- ダブルクリックすると,メッセージを選択する画面が先ほどと同様に表示されますので,出荷と入荷の両方を行うことができる receiveOrShip
を選択します.
+ メッセージを選択する画面が同様に表示されますので,入荷か出荷を行う receiveOrShip
というメッセージを選択します.
- 次に,出荷数量,または入荷数量を入力可能な画面が表示されますので,receiveOrShip(-50)
と入力して実行します.
+ 入荷数量,または出荷数量の入力が可能な画面が表示されますので,ここでは receiveOrShip(-50)
と入力して実行します.
+ ここで quantity が正の値のときは入荷,負の値のときは出荷が行われます.
- 次の状態に遷移したため,inventory.@123.name
リソースの状態が50に遷移したことが確認できました.
+ 次の状態に遷移したため,inventory.@123.count
リソースの状態が50に遷移したことが確認できました.
- 本課題ではまず,上記にて説明を行ったInventoryManagementに,とある機能を追加した時のモデルと可視化の図を
- 実験参加者の皆様に見て頂きます.
- 次に,その2つを見てどの様な機能が追加されたのか,またどの様なシナリオになっているのかを
- 考えて頂き,以下のアンケートにお答えください.
+ 本課題ではまず,上記にて説明を行ったInventoryManagementの仕様に,ある機能を追加した仕様を考えます.
+ その仕様のモデルと,仮想実行の流れを可視化した以下の図を見ていただいた上で,2つの設問にお答えいただきます.
+ 設問にお答えいただく際は,必ず設問1,設問2の順番でご解答下さい.以下の図と同じものが設問のページにも記載されているのでこのまま設問のページに飛んでいただいてもかまいません.
@@ -162,8 +161,13 @@