Okapi Project   Web technological site for the beginner... Top

1. 実装レベルへの落とし込み

「計算機で学ぶオブジェクト指向」までで、実現するシステムの概念が実装とは切り離された状態で明確になったことになります。

システム設計が終わった状態でしょうか。。。


ここからは、実装言語Javaを意識した実装レベルの設計を行うことになります。

従来の詳細設計に相当すると思って良いでしょう。

1.1. クラスの責務と実装

システムに実装されるクラスには明確な責務があります。これが、あいまいになると、わかりにくいシステムになり、保守性が低下するだけではなく、再利用しにくいシステムになります。

実装レベルのクラス構造を決定するに先立って、実装する「クラスの責務」を明確にし、備えるべき「属性」や、「振舞」を決定します。


それでは概念クラス一つ一つについて、クラスの責務と、備えるべき属性をみていきたいと思います。

また、どこから手を付ければよいのか悩むところではあると思いますが、私の過去の経験から、最下位層からボトムアップ的に進めてゆくのがよいと思います。

ここでは、クラス図を書きながら作業を進めていきます。

〜クラス責務に着目したクラス抽出〜

「計算機で学ぶオブジェクト指向」ではクラス候補の抽出をシステム要件書等から名詞を抽出する方法を取りましたが、クラス候補の抽出の方法には、責務に着目したクラス抽出の方法もあります。
この方法では、システムが実現すべき責務を考慮した上で、それを遂行するためにはどのような責務を持ったクラスが必要か? といった観点でクラスの抽出を行います。