ソフトウエアの再利用

第四回 ソフトウエアの再利用
オブジェクト指向プログラミング(3)
静的分析(1)
分析
分析は、大きく静的モデリングと動的モデリング
分かれる。
<静的モデリング>
システムがどのようなクラスで構成されてい
るのかを分析する。
<動的モデリング>
そのクラスから生成されたインスタンス(実
体)がどのように振る舞うかを分析する。
分析とは
分析とは
そのプログラムが何をしなければならないのか、
システムに何がもとめられているのか、ということ
を整理することです。
分析段階での成果物は、環境に対して依存性が
ないものになる。
クラスの抽出
クラスをさがしだす作業というのは、システ
ムの仕様から名詞をさがす作業
分析段階では、問題領域のクラスのみを
考える
問題領域
問題領域とは
私たちがシステムを開発する際に、そのシステム
がこれから解決しようとしている現状の問題のこ
とである。
たとえば、
文書を作成するという行為。
宿泊予約システムであれば、宿泊先の空き室が
あったら予約するという一連の作業の流れ。
コンピュータ領域
コンピュータ領域とは
コンピュータを使って実現する手段に登場するも
のことである。
たとえば、
GUIにグラフィックボタンを使用する。
ある予約システムにモデムを使用する。
分析時の視点からのクラス
名前
あまり考えずにずれた名前をつけてしまう
と、あとでそれに影響されてそのクラスの
分析が誤った方向に進んでしまう。
そのクラスの本質を表した名前をつける。
分析時の視点からのクラス
属性
そのクラスの成り立ちを示すデータ
属性はプログラム的にはデータメンバに該
当する。
分析時の視点からのクラス
操作
クラスに用意された、クラスの対する命令
の受付窓口
操作は、プログラム的には、メンバ関数に
相当する。
クラス図の作成
クラス図
クラス図はオブジェクト指向システム分析
設計でかかすことのできない極めて重要な
図である。
クラス図に書かれていることが最終的にシ
ステムの構成を決定します。
クラス図の作成
クラス図の例
クラス名
生徒
氏名
住所
学級
学年
平均点算出
偏差値取得
属性
操作
クラス図の作成
クラス図の作成順序
・クラスの仕様の決定
・「操作」の洗い出し(属性よりも先)
・そのために必要な「属性」を考える
クラス仕様の範囲
「この仕様はどのクラスの仕様であるか」と
いう認識は、オブジェクト指向では非常に
重要な視点である。
「何をするか」だけを考えてはだめ。
「それを誰がするか」ということだ重要
操作の抽出
操作名は、たいてい動詞になる。
多くの操作名は「~する」の「する」を省略
した形になることが多い。
「操作する側が主語」というのが原則
属性の抽出
属性は、操作に比べると、その重要性はそ
れほど高くない。なぜなら、属性というのは
外部に対して影響力がない。
クラスのモデリングには正解は複数あると
いうより、正解はない、と言ったほうが正し
いかもしれない。