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 @@


