モデリングカフェの問題をやってみる:第5回〜第8回

誰にも頼まれてないのに新卒研修みたいなことをやっていくシリーズの第2弾です。

第5回:すごろく

問題

すごろくをモデリングしてください。

不足する情報は適宜補っていただいて結構です。補った情報は、コンセプトに記述してください。

f:id:muijp:20200104114439p:plain

自分の回答

コンセプト

  • すごろくは「ふりだし」「あがり」を含めて2つ以上のコマからなる
  • コマの内容は以下
    • ふりだし/あがり
    • Nコマ進む/戻る
    • ふりだしに戻る
    • M回休み
  • すごろくのプレイヤーは一度に1つのすごろくまでしか遊べないものとする
  • プレイヤーは次にサイコロを降るプレイヤーを持つ。ゲームの途中でプレイヤーが抜けたり入ったりした時はこの関係を付け替える

クラス図

f:id:muijp:20200104143137p:plain

回答例・解説を読んだ感想

  • すごろくに分岐がないということをコンセプトに明記するべきだった(すごろくのドメイン知識がなさすぎる)
  • 全体的に1つのクラスに役割を負わせすぎる傾向がある気がしてきたので、もうちょっと役割ごとにクラスを分ける方針のほうが良さそう
    • コマと指示を分けたほうがよかった?
    • プレイヤーとプレイヤーのコマを分けたほうがよかった?
  • コマをサブクラスで分類したのはよかった

第6回:登山ルート

問題

登山ルートをモデリングしてください。

奥岳山系の登山ルートは次のようになっています。

f:id:muijp:20200104142755p:plain

自分の回答

コンセプト

  • 登山ルートは一つの山に対して複数定義される
    • ここで言う山は、例にある「柳ヶ原山」「屏風岳」といった単位ではなくそれらをまとめたもの(一回の登山でいける範囲)をさす
  • 登山地点間を結ぶ道には注意事項をつけることができる

クラス図

f:id:muijp:20200104143119p:plain

回答例・解説を読んだ感想

  • 全体的によくできた気がする
  • 山という概念がわかりにくかったかも。山系とかにしたらコンセプトでごちゃごちゃ言う必要がなかった
  • 注意事項を地点関経路にひもづけたけど、往路・復路で注意事項は同じだと思うので冗長だった。マスターの回答のように区間と順路を分けて定義した方がきれい

第7回:カレーの作り方

問題

カレーの作り方をモデリングしてください。

不足する情報は適宜補っていただいて結構です。補った情報は、コンセプトに記述してください。

f:id:muijp:20200104143348p:plain

自分の回答

クラス図

f:id:muijp:20200104145652p:plain

回答例・解説を読んだ感想

  • 根本的に勘違いしていて、手順は一連の文章で良いかと思ったらそこをちゃんとモデリングしろという話だった。まあこういうこともあるでしょう
  • 回答が高度すぎる

第8回:サンドイッチ

問題

サンドイッチをモデリングしてください。

不足する情報は適宜補っていただいて結構です。補った情報は、コンセプトに記述してください。

f:id:muijp:20200104145905p:plain

自分の回答

コンセプト

  • サンドイッチは形・パン・中身の材料から決まる
  • 材料は素材とその量、挟む順番で決まる

クラス図

f:id:muijp:20200104150904p:plain

回答例・解説を読んだ感想

  • 中間にパンが挟まれるサンドイッチのことを考慮漏れしていた...
  • サンドイッチクラスにパンと材料をまとめさせるよりも、みんなの回答みたいにパンと材料の関係だけでサンドイッチを表現させる方が良いのかな?でもその場合サンドイッチの名前とか形を表すのが難しくなると思う
  • 分量をわざわざクラスにする必要はなかったのかも