目次

   はじめに (3)
   本書について (6)
 

第 1 部 オブジェクト指向とUML

 
 

第 1 章 オブジェクト指向とは

3

   1.1 手続き指向からオブジェクト指向へ 3
   1.2 モデル化とは 5
   1.3 クラスとオブジェクト 6
   1.4 オブジェクトの実装 7
   1.5 事例:見積作成プログラム1 11
    1.5.1 手続き指向の見積作成プログラム 11
    1.5.2 オブジェクト指向の見積作成プログラム 15
    1.5.3 手続き指向とオブジェクト指向の比較 27
 
 

第 2 章 カプセル化

29

  2.1 オブジェクトの独立性29
  2.2 可視性30
  2.3 カプセル化のメリット33
   2.3.1 見積作成プログラムのクラス図の変更33
   2.3.2 見積作成プログラムの新しい実装37
 
 

第 3 章 汎化

43

  3.1 概念を体系化する43
  3.2 事例:見積作成プログラム244
  3.3 スーパークラスとサブクラス45
  3.4 汎化関係の実装47
  3.5 汎化のメリット54
 
 

第 4 章 ポリモーフィズム

55

  4.1 異なるクラスのオブジェクトを一元的に扱う55
  4.2 ポリモーフィズムの実装56
   4.2.1 クラスの関係56
   4.2.2 カスタマイズパソコンクラスの実装57
   4.2.3 見積作成ウィザードクラスの実装60
  4.3 ポリモーフィズムのメリット62
  4.4 インターフェイス63
 

第1部のまとめ

68

 

第 2 部 モデリング

 
 

第 5 章 モデリングとは

71

  5.1 システムの設計図71
  5.2 UMLとは73
   5.2.1 オブジェクト指向の表記法73
   5.2.2 方法論ではない74
  5.3 UMLを利用したモデリング75
   5.3.1 9種類のダイアグラム75
   5.3.2 4つのフェーズ76
 
 

第 6 章 クラスの発見

79

  6.1 クラスを見つけるには79
   6.1.1 エンティティクラス80
   6.1.2 バウンダリクラス80
   6.1.3 コントロールクラス81
  6.2 クラスの表記法83
  6.3 ステレオタイプ84
  6.4 事例:在席状況管理プログラム84
  6.5 在席状況管理プログラムに必要なクラス87
 
 

第 7 章 オブジェクトの相互作用

89

  7.1 オブジェクトの相互作用をモデリングする89
  7.2 オブジェクトの表記法90
  7.3 シーケンス図91
   7.3.1 シーケンス図の基本要素91
   7.3.2 オブジェクトの生成と消滅93
   7.3.3 同期メッセージと非同期メッセージ94
   7.3.4 メッセージの分岐と繰り返し95
  7.4 コラボレーション図97
   7.4.1 コラボレーション図の基本要素97
   7.4.2 メッセージの入れ子関係98
  7.5 在席状況管理プログラムのオブジェクトの相互作用99
   7.5.1 シナリオを考える99
   7.5.2 在席状況の変更99
   7.5.3 メンバーの追加102
   7.5.4 メンバーの削除105
 
 

第 8 章 クラス間の関係

109

  8.1 関連109
   8.1.1 オブジェクト図109
   8.1.2 関連とリンク110
   8.1.3 関連名とロール名111
  8.2 集約112
  8.3 多重度113
  8.4 関連クラス115
  8.5 依存116
  8.6 在席状況管理プログラムのクラス図117
 
 

第 9 章 クラスの設計

121

  9.1 システムの実現方法を考える121
  9.2 属性を定義する122
  9.3 操作を定義する123
  9.4 プロパティ126
  9.5 クラス間の関係を設計する127
   9.5.1 誘導可能性の決定127
   9.5.2 可視性の決定129
  9.6 クラスの実装130
   9.6.1 設計が終わったクラス130
   9.6.2 関連の実装131
   9.6.3 汎化関係と依存関係の実装134
  9.7 在席状況管理プログラムのクラスの設計135
   9.7.1 エンティティクラスの属性の定義136
   9.7.2 バウンダリクラスの操作の定義137
   9.7.3 シーケンス図の作成141
   9.7.4 エンティティクラスの完成146
   9.7.5 バウンダリクラスの完成147
   9.7.6 全体のクラス図の完成148
   9.7.7 クラスの実装149
 
 

第 10 章 オブジェクトの状態の変化

157

  10.1 オブジェクトの状態の変化をモデリングする157
  10.2 ステートチャート図158
   10.2.1 状態とイベント158
   10.2.2 ガード条件とアクション159
   10.2.3 アクティビティ160
   10.2.4 入状時アクションと退状時アクション161
   10.2.5 コンポジット状態162
   10.2.6 並行サブ状態163
  10.3 ノート164
  10.4 在席状況管理プログラムのメンバークラス165
 
 

第 11 章 モデルの見直し

169

  11.1 柔軟性と保守性を向上させる169
  11.2 デザインパターン170
   11.2.1 GoFのデザインパターン170
   11.2.2 Stateパターン171
   11.2.3 抽象クラスと具象クラス172
  11.3 在席状況管理プログラムのモデルを見直す173
 
 

第 12 章 実装環境のモデリング

181

  12.1 コンポーネント図181
   12.1.1 コンポーネントと依存関係181
   12.1.2 インターフェイスとコンポーネント図183
  12.2 在席状況管理プログラムの実装環境185
 

第2部のまとめ

187

 

第 3 部 複雑なシステムのモデリング

 
 

第 13 章 要求分析

191

  13.1 システムが果たすべき機能を明らかにする191
  13.2 ユースケース図193
   13.2.1 ユースケース図の要素193
   13.2.2 アクターを見つける194
   13.2.3 ユースケースを見つける195
  13.3 イベントフロー196
  13.4 アクティビティ図199
  13.5 シナリオ201
  13.6 事例:セミナー予約システム203
  13.7 セミナー予約システムのユースケース204
   13.7.1 アクターの検討204
   13.7.2 ユースケースの検討205
   13.7.3 ユースケース記述の作成206
 
 

第 14 章 アーキテクチャ設計

211

  14.1 アーキテクチャを決定する211
  14.2 パッケージ212
  14.3 制約215
  14.4 コラボレーション216
  14.5 サブシステム219
  14.6 配置図220
  14.7 セミナー予約システムのアーキテクチャ223
   14.7.1 オブジェクトの永続化223
   14.7.2 データベース関連の処理を分離する224
   14.7.3 Webアプリケーションの構築227
 
 

第 15 章 開発プロセスとUML

229

  15.1 開発プロセスと表記法229
  15.2 オブジェクト指向に適した開発プロセス231
   15.2.1 反復型の開発プロセス231
   15.2.2 Unified Process(統一プロセス)232
   15.2.3 XP(Extreme Programming)233
 

第3部のまとめ

235

 
 

付録 A UML 1.4 クイックリファレンス

237

  A.1 UMLとは237
  A.2 主な構成要素237
  A.3 主な関係240
  A.4 ダイアグラム242
  A.5 拡張メカニズム249
 
 

付録 B VisioによるUMLモデリング

251

  B.1 Visioとは251
  B.2 UMLモデリング機能の使い方251
  B.3 Visioを使用する際の注意256
 
 

付録 C 参考資料

257

 
  索引258
  著者紹介