オブジェクト指向でなぜつくるのか -知っておきたいプログラミング、UML、設計の基礎知識- (後半まとめ)
第7章〜最後までのまとめ。
UML(Unified Modeling Language)
「汎用の整理術」と「プログラミング技術」の共通成果物
モデリング
現実世界をそのままとらえる視点からコンピュータの都合に合わせる視点へ
(現実世界とソフトウェアのギャップを埋める)
オブジェクト指向設計
- 設計作業の流れ
- 実行環境の定義
- ハードウェア、ソフトウェアの選定
- ソフトウェア全体の構造定義
- 複数のサブシステムへ分割
- パッケージ図
- 個々のソフトウェア部品の設計
- クラス、メソッドの仕様決定
- インタフェースの決定
- 実行環境の定義
- 保守性や再利用性を重視した設計
- 重複を排除 ->ポリモーフィズム、継承
- 独立性を高める
- 凝集度(cohesion) ->メソッドや変数の意味的まとまりを強く
- 結合度(coupling) ->クラス間の結び付きを弱く
- 依存関係を循環させない
開発プロセス
- ウォータフォール型開発プロセス
- 仕様変更に柔軟に対応できない
- RUP(反復型開発プロセス)
- 方向づけフェーズ(Inception)
- 推敲フェーズ(Elaboration)
- 構築フェーズ(Construction)
- 移行フェーズ(Transition)
- 各フェーズで、設計、プログラミング、テストをイテレーションする
- XP(反復型開発プロセス)
- XPの4つの価値
- XPの12プラクティス
- アジャイルソフトウェア開発宣言(Manifesto for Agile Software Development)
- プロセスやツールよりも、個人、そして協力を
- 完全なドキュメントよりも、動くソフトウェアを
- 顧客との契約交渉よりも、顧客との協調を
- 計画に従うよりも、変化への対応を