3ソフトウェア方式設計
- 3.1モジュール分割の原則
モジュール分割の質を測る2つの尺度である凝集度(モジュール内の要素の関連の強さ・高いほど良い)と結合度(モジュール間の依存の強さ・低いほど良い)の順序と種類、そして「1箇所の変更が広範囲に波及する」という設計上の問題の原因をこの2軸で診断し改善する判断を学びます。
- 3.2オブジェクト指向設計とUML
オブジェクト指向設計の3要素(カプセル化/継承/多態)と、変更に強い設計原則であるSOLID原則(単一責任・開放閉鎖・リスコフの置換・インタフェース分離・依存性逆転)、そしてUML(クラス図・シーケンス図・状態遷移図)をどの設計判断の可視化に使い分けるかを、実際の要求変更への対応という判断とともに学びます。
- 3.3デザインパターン
GoFデザインパターンの3分類(生成に関するパターン/構造に関するパターン/振る舞いに関するパターン)の代表例(Singleton/Factory Method/Adapter/Facade/Observer/Strategy)の意図を正確に理解し、目の前の設計課題にどのパターンを適用すべきかを判断する力を学びます。
- 3.4再利用とフレームワーク
ライブラリ/コンポーネント/フレームワークの呼び出し関係の違い(自コードが相手を呼ぶ vs 相手が自コードを呼ぶ制御の反転(IoC))、そしてREST API設計の原則(リソース指向・ステートレス・HTTPメソッドの意味論)とバージョニング戦略を、既存資産の再利用方式をどう選び、外部公開APIの互換性をどう維持するかという判断とともに学びます。

