「計算機で学ぶオブジェクト指向」までで、実現するシステムの概念が実装とは切り離された状態で明確になったことになります。
システム設計が終わった状態でしょうか。。。
ここからは、実装言語Javaを意識した実装レベルの設計を行うことになります。
従来の詳細設計に相当すると思って良いでしょう。
システムに実装されるクラスには明確な責務があります。これが、あいまいになると、わかりにくいシステムになり、保守性が低下するだけではなく、再利用しにくいシステムになります。
実装レベルのクラス構造を決定するに先立って、実装する「クラスの責務」を明確にし、備えるべき「属性」や、「振舞」を決定します。
それでは概念クラス一つ一つについて、クラスの責務と、備えるべき属性をみていきたいと思います。
また、どこから手を付ければよいのか悩むところではあると思いますが、私の過去の経験から、最下位層からボトムアップ的に進めてゆくのがよいと思います。
ここでは、クラス図を書きながら作業を進めていきます。