オブジェクトの広場はオージス総研グループのエンジニアによる技術発表サイトです

モデリング

モデリングカフェ 第7回:カレーの作り方をモデリングする(読者解答モデル)

モデリングカフェ「Square」~UMLでモデリングを愉しもう~
オージス総研 組み込みソリューション部
田中恒  赤坂英彦
2006年10月5日

読者の皆様から、たくさんの解答モデルを頂きました。ありがとうございました。こちらのページでは、残念ながら本文で紹介することができなかった解答モデルを記載します。オブジェクトの広場 メーリングリスト等で意見交換していただければ幸いです。

目次

読者解答1:吉本信弘 様

  • コンセプト
    • 食材、分量、単位についてのモデリングをメインとし、 作り方については単純な構造とした。
      • 作り方も「もの」「こと」で分解していくことが可能だと思われるが、 お題の内容だけでもかなりの量になってしまいそう。
    • 食材は、1つの分量のみを保持し、表記方法として異なる単位での 表示が行えるようなモデルとした。
      • 分量を2つ保持する場合、どちらが正しい値であるか問題とならないか?
  • モデル
    • クラス図
    • 図 1 吉本信弘 様の解答モデル - クラス図
      図 1 吉本信弘 様の解答モデル - クラス図
    • オブジェクト図
    • 図 1 吉本信弘 様の解答モデル - オブジェクト図
      図 1 吉本信弘 様の解答モデル - オブジェクト図
  • 感想
    • 難しかったところ
      • 食材と単位、換算率の関係
      • カップの容量は固定で、食材による換算率の違いは発生しないが、 玉ねぎとじゃがいものように、同一表記の単位でありながら、 食材の違いによって換算率が異なる。 これらの両立が難しかった。

      • 換算率の多重度
      • 上記の内容を満たすためには、換算率は食材、換算元単位、換算先単位で 一意となる必要があるが、UML上での表記方法は?

    • モデルについて自己評価
      • OCLを使用することで、あいまいさは少なくなったように思える。
      • 換算に関しては少し詳細すぎるか。

読者解答2:喫茶「模型作り」 様

  • コンセプト
    1. 材料は全て使う。
    2. 材料はまとめて使う(小分けにして使わない)。
    3. 分量には一つだけ別名を持つ。
    4. 野菜などの大きさ、材料の種別(野菜、調味料など)は属性として持つ。
    5. 作業の順序を明確にする。
    6. 皿数が変わればレシピが変わる。
  • モデル
    • クラス図
    • 図 2 喫茶「模型作り」 様の解答モデル - クラス図
      図 2 喫茶「模型作り」 様の解答モデル - クラス図
    • オブジェクト図
      • 表ルート
      • 図 2 884 様の解答モデル - オブジェクト図(表ルート)
        図 2 喫茶「模型作り」 様の解答モデル - オブジェクト図(表ルート)
  • 感想
    • 難しかったところ
      1. 分量の別名の扱い。
      2. 皿数の扱い。
    • 自己評価
      • 結果は納得できるが、プロセスはいまいち。70点。

読者解答3:岩沢正樹 様

  • コンセプト
    • 「カレーの作り方」は、「手順」が順番に連なったもの。
    • 「手順」は、材料と道具と調理方法との関係と捕らえる。(細部は、考えない。)
    • 「手順」は、作成物、順番など前段階の結果を踏まえた結果と捕らえる。
    • 「材料」を使う「手順」は1ヶ所だけ。
    • 「手順」「材料」をまとめたものが「レシピ」となる。
  • モデル
  • 図 3.1 岩沢正樹 様の解答モデル
    図 3.1 岩沢正樹 様の解答モデル
  • 感想
    • 難しかったところ
      • 「カレーの作り方」と「レシピ」の、粒度の捕らえる基準の決め方が難しかったです。

    • 自己評価
    • 「手順」と「道具」が、多対多になっていて、本来は別々の 領域の概念になると思いますが、整理しきれていません。 無難なところで、今回は、5~6点です。

読者解答4:Go5号 様

  • コンセプト
    • 食材には未調理のものと調理済みのものがある。
    • 作成するカレーも調理済みの食材の1つである。
    • 手順に従い調理をおこなう。
    • 手順にはある調理をどれくらいの時間実施するか定義されている。
  • モデル
    • クラス図
    • 図 4.1 Go5号 様の解答モデル - クラス図
      図 4.1 Go5号 様の解答モデル - クラス図
    • オブジェクト図
    • 図 4.2 Go5号 様の解答モデル - オブジェクト図(表ルート)
      図 4.2 Go5号 様の解答モデル - オブジェクト図(表ルート)
  • 感想
    • 難しかったところ
    • 材料が調理されていく状況をクラス図で表現するところ。

    • 自己評価
    • オブジェクト図を見てみると、一応カレーが作れた。60点

      

読者解答5:884 様

  • コンセプト
    • カレーは料理の一種である。
    • 作り方は、材料一覧と手順(1手順以上)で構成される。
    • 材料一覧は、材料ごとの仕様に関する情報をもつ。ここでは量のみとしている。
      • こだわる場合は、産地、状態などがあっても良いだろう。→モデルの対象外
    • 実際に作るときは、調達した食材と調理器具を用意して、手順の調理仕様に従って調理する。
      • 調理仕様には、材料の切り方やサイズ、火力といった、使用する器具、その手順の調理対象となる食材がなんであるかが明記されている。
              →詳細はモデルの対象外。
    • 食材は調理が進むと、調理状態が変化する。
      • すべての材料が手順どおりに調理され、材料が特定の調理状態になると料理は完成する。
              (生野菜、生肉、水、ルーを鍋に入れただけではカレーにならない。→モデルの対象外。)
  • モデル
    • クラス図
    • 図 5 884 様の解答モデル - クラス図
      図 5 884 様の解答モデル - クラス図
    • クラス図
    • 図 5 884 様の解答モデル - オブジェクト図
      図 5 884 様の解答モデル - オブジェクト図
  • 感想
    • 難しかったところ
      • ”作り方”をいかに表現するか。
        • ステートチャートを書こうかと思ったが、クラス図で表現することが指定されていて迷った。
          最初はカレーの出来上がる過程をモデリングしていた。

    • 自己評価
      • もっとシンプルにしたい。オブジェクト図が複雑。
      • 前回同様、70点。

改定履歴:見た目のレイアウトを更新しました。(2021.7)