中学校のモデリング その6

答え合わせ

模範解答が掲載されているので、作成したモデルと比べて振り返ってみます。

いくつかありますが、まずは偏見で最初のモデルと比べてみます。抽出している概念は今回具体的なスコープを定義されていないので明らかにスコープの違いによる相違はあるのですが、中学校や学級、生徒、先生などの主要な概念はほぼ同じように抽出していました。
ただ、これらの取り扱うが若干違う点があるので考えてみます。
まずは、模範解答では子供と中学校を関連をつけている点、学級と学校は関連づけていない点が異なります。前者は僕が作成したモデルでも導出できるので理解できるのですが、後者はなぜなんだろう?単なる表記上の省略だけかとも思ったのですが、モデルの定義としても無いようです。
次の違いは、模範解答では勤務するを明示的に関連クラスにし役職属性をつけています。僕も中学校と先生の関連は勤務するとしているので、役職がこの中学校・先生のタプル上の属性か、それとも先生単独に付与されるものなのかという観点で比べることになります。模範解答は前者、僕は後者を選んだことになりますが、これは実際にはユーザにインタビューすれば判断できる内容なのでいいでしょう。
あと、模範解答では、教科と教諭の関係を「資格をもつ」の関連クラスを導入しています。僕が作成したモデルは教員免許を導入して教科と教諭の関係として担当可能教科を導出しています。模範解答は免許の取得は第1級の概念とはせずに、あくまでも教科が担当できる資格の有無すなわち教諭と教科の関連の有無のみスコープにする意図が感じられます。保持している教員免許から担当可能教科をどのように導出されるか規定されていないのであれば、模範解答の方がミニマルカバーで良いかもしれません。ただ、教員免許から担当可能教科を導出する方が教科のラインナップが変更された場合もルールの変更だけでするメリットもあります。


そういえば、僕が作成したモデルは関連クラスがないな。これは関連のもとになるイベントを使ってそのまま関連クラスとして代用しているためなのですが、関連クラスを明示する方がいいのかな。以前、予約はイベント?関連?のようなことを考えていたんだなと思い出してしまいました。