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

モデリング

モデリングカフェ 第5回:すごろくをモデリングする(読者解答モデル)

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

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

目次

読者解答1:吉本信弘 様

  • コンセプト
    • マスは「ふりだし」から「あがり」までの間で枝分かれすることはない
    • 特定のマスにはお休み、移動、指定移動のルールがある
    • ルールを適用することにより、コマの現在位置が更新される
    • ゲームの進行自体はモデリングの対象外とする
  • モデル
    • クラス図
      図 1.1 吉本信弘 様の解答モデル(クラス図)
      図 1.1 吉本信弘 様の解答モデル(クラス図)
    • オブジェクト図
      図 1.2 吉本信弘 様の解答モデル(オブジェクト図)
      図 1.2 吉本信弘 様の解答モデル(オブジェクト図)
  • 感想
    • 難しかったところ
      • 「ふりだし」「あがり」をマスのサブクラスとするか否か
    • 自己評価
        OCLの表記は正しいか? 今後の課題としたい

読者解答2:おさる 様

  • コンセプト

    とくになし

  • モデル
    • クラス図
      図 2.1 おさる 様の解答モデル(クラス図)
      図 2.1 おさる 様の解答モデル(クラス図)
  • 感想
    • 難しかったところ

      全部です・・・

    • 自己評価

      使ったことのない「制約」を使ってみました。(正しいのか?)

      適当っぽい。50点。

読者解答3:松田政博 様

  • コンセプト
    • 各プレイヤーはコマを一つ持っている。
    • コマはある時点において、いずれかのマスの上に置かれている。
    • サイコロは、コマが進む数を現在の利用者(プレイヤー)に教える責務を持つ。
      • サイコロの数すなわち、1個使うか2個使うとかは意識しない。とにかくサイコロの目の数(総和)をプレイヤーに教える。
    • サイコロは、複数のプレイヤーに利用される。サイコロはある時点で1人のプレイヤーに利用されている。
    • マスどうしは一列につながっている。
    • プレーヤーは、サイコロから得た数だけコマをマスからマスへ移動させる。
    • コマは所定回数移動後、そのマスに指示があればその指示に従う。
    • 盤には、マスが置かれている。
      • 盤からみて、「ふりだし」の役割をもつマスがある。
      • 盤からみて、「あがり」の役割をもつマスがある。
      • 盤からみて、、「ふりだし」のマスから、「あがり」つマスに行くために経由するマスが複数ある。
    • 「ふりだし」から「あがり」まで分岐はないものとした。
  • モデル
    • クラス図
      図 3.1 松田政博 様の解答モデル(クラス図)
      図 3.1 松田政博 様の解答モデル(クラス図)
    • オブジェクト図
      図 3.2 松田政博 様の解答モデル(オブジェクト図)
      図 3.2 松田政博 様の解答モデル(オブジェクト図)
  • 感想
    • 難しかったところ

      「ふりだし」や「あがり」をどのように表現するか悩みました。

    • 自己評価

      コンセプトで意図したモデルになっていると思います。

      辞令のお題で教えていただいた{subsets}を使ってみました。こんな使い方でよいでしょうか?

読者解答4:Ken-M 様

  • コンセプト
    • 追加した条件
      • 一人のプレイヤーが使う「駒」は1つだけ。
      • 1つのマスで起こるイベント(指示)は1つとは限らない。
      • 途中で「ルート」が分岐・合流することもある。
      • 1つのマスに複数の駒が存在できる。
      • マスに止まったときに発生するイベント(指示)の影響を受けるのはそのマスにとまったプレイヤーだけとする。
      • #「他プレイヤーの駒1つを○マス戻す」等は考えない。
      • さいころは手番のプレイヤーが移動量を決定するためにしか使わない。
    • コンセプト
      • マスとマスにはつながり(順番)がある。
      • プレイヤーにも手番が回ってくる順番がある。
      • すごろくは、「ふりだし」と「あがり」とその間をつなぐマスからなる。
      • プレイヤーの駒はどこか1つのマスにとまっている。
      • 手番のプレイヤーが「さいころ」を持つ。
      • マスによっては「指示」がある。
  • モデル
    • クラス図
      図 4.1 Ken-M 様の解答モデル(クラス図)
      図 4.1 Ken-M 様の解答モデル(クラス図)
    • オブジェクト図
      図 4.2 Ken-M 様の解答モデル(オブジェクト図)
      図 4.2 Ken-M 様の解答モデル(オブジェクト図)
  • 感想
    • 難しかったところ

      どうしても、不必要に複雑になりそうな方向に思考が向かってしまうところ。

    • 自己評価

      オブジェクト図のリンクが少し複雑になってしまいましたが、大体まとまったものができたのではないかと思います。

読者解答5:岩沢正樹 様

  • コンセプト
    • マスの指示は、コマの移動(「○○進む」「○○戻る」など)と、コマの状態(「○○お休み」)の2種類のみとする。
    • コマの移動に関する指示は、マス間の関連で捕らえる。
    • コマの状態に関する指示は、コマの状態で捕らえる。
  • モデル
    • クラス図
      図 5.1 岩沢正樹 様の解答モデル(クラス図)
      図 5.1 岩沢正樹 様の解答モデル(クラス図)
  • 感想
    • 難しかったところ

      コマの状態に関する指示について、どのようにしてクラス図へ反映させるかについて。

    • 自己評価

      今回は、短時間で、ざっくりと直感的にモデリングをしてみました。10点満点で、6~7点程度は出せると思います。

読者解答6:あるる 様

  • コンセプト
    • すごろくには1人以上の参加者が存在する
    • 参加者は"コマ"を持つ
    • "コマ"はすごろく上の任意のマス上に存在する
    • 参加者はサイコロを振る順番が決まっている。ただし、休みの場合はサイコロを振れず次の人に順番が移る。
    • 参加者は自分の順番になるとサイコロを振る
    • さいころは一つ
    • サイコロの出た目の数だけマスを進める
    • とまったマスに書いてあるルールに従う
    • ルールはコマを移動させるものと、休み回数を指定しているものがある
    • マスは分岐せず、スタートからゴールまでの一直線となる
  • モデル
    • クラス図
      図 6.1 あるる 様の解答モデル(クラス図)
      図 6.1 あるる 様の解答モデル(クラス図)
    • オブジェクト図
      図 6.2 あるる 様の解答モデル(オブジェクト図)
      図 6.2 あるる 様の解答モデル(オブジェクト図)
  • 感想
    • 難しかったところ

      マスの表現が難しかったです。特に、スタートとゴールの表現。結局、すごろくボードクラスとマスの関連で表したが、マスクラスの子クラスとして用意したほうが良かったかもしれないと思っています。

      参加者についてはコマと同一とみなしたが、概念モデルなので参加者を表したほうが良かったかもしれないです。

    • 自己評価

      すごろく、というものを素直に表現することはできたと思います(上記のようにマスの部分に不安がのこりますが。。)

読者解答7:GO5号 様

  • コンセプト
    • すごろくのボードにはマスの集まりからなるコースがある。
    • サイコロの出目やマスのイベントは指示としてプレイヤーが受ける。
    • 駒はプレイヤーによって動かされる。
    • 駒はコースの上をマスに沿って動く。
    • 振り出しに戻るは振り出しまでのマス数戻るのと同意と考える。
  • モデル
    • クラス図
      図 7.1 GO5号 様の解答モデル(クラス図)
      図 7.1 GO5号 様の解答モデル(クラス図)
    • オブジェクト図
      図 7.2 GO5号 様の解答モデル(オブジェクト図)
      図 7.2 GO5号 様の解答モデル(オブジェクト図)
  • 感想
    • 難しかったところ

      サイコロとマスのイベント、それぞれの指示系統をどう表現するか。

    • 自己評価

      関連が多すぎて少し複雑。50点

読者解答8:884 様

  • コンセプト
    • プレーヤは、サイコロを振り、マスを順序にコマを進め、止まったマスの指示に従い行動する。
    • コマの移動はプレーヤが行う。そのため、マスの指示はプレーヤへの指示のみとなる。
    • サイコロは、ランダムな数値を取得するための手段である。コマを進める数を決めるだけに限定しない。マスの指示には、サイコロを使用するものがあっても良い。
  • モデル
    • クラス図
      図 8.1 884 様の解答モデル(クラス図)
      図 8.1 884 様の解答モデル(クラス図)
    • オブジェクト図
      図 8.2 884 様の解答モデル(オブジェクト図)
      図 8.2 884 様の解答モデル(オブジェクト図)
  • 感想
    • 難しかったところ

      最初、マスを汎化して、ふりだし、あがり、指示のあるマス、指示のないマスに分けていたが、プレーヤとの関連を表現しようとしたら、複雑になってしまった。指示とマスを分離することによって、シンプルにすることができたが、そこに至るまでに時間がかかった。

      指示は、コマへの指示、プレーヤへの指示としていたが、整理していったら、プレーヤへの指示だけでも表現することができた。

    • 自己評価

      すごろくが再現できた割には、シンプルなモデルにできたかと思います。


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