ソフトウェアアーキテクチャ:設計から実装まで
開講年度・学期2026年度 前期
進行中区分専門基礎(必)
対象ロールエンジニア
実施形式輪読会
全体の概要
Unityでのゲーム制作の基礎を習得した初学者を対象に、プログラミングの「書き方」から一歩進んだ「組み立て方(設計)」を学びます。場当たり的な実装によるコードの複雑化を防ぎ、拡張性と保守性の高いゲームを構築するための思想・原則・パターンを網羅します。
到達目標
- オブジェクト指向の4大要素および主要な開発原則(KISS, YAGNI, DRY)を理解し、その意義を説明できる。
- SOLID原則の各項目を理解し、設計における「良し悪し」を判断する基準を習得する。
- ゲーム開発で頻出するデザインパターンを理解し、適切な場面で選択・活用できるようになる。
- MVPアーキテクチャやリアクティブプログラミング(UniRx)の概念を理解し、複雑なゲームロジックとUIの分離ができるようになる。
スケジュール
- 次回
第1回 オブジェクト指向の精神と開発原則の導入
2026年5月16日(土) 17:05–19:05目的:オブジェクト指向というパラダイムの本質を知り、コードの「徳」を高める。
- オブジェクト指向の4大要素: 抽象化、カプセル化、継承、ポリモーフィズムの定義と概念。
- なぜ設計が必要か: 構造化プログラミングの限界とグローバル変数の弊害。
- 三大開発原則の導入:
- KISS (Keep It Simple, Stupid): 簡潔性の重要性。
- YAGNI (You Ain't Gonna Need It): 先回りの実装をしない。
- DRY (Don't Repeat Yourself): 重複の排除。
- 設計へのマインドセット: 「動く」の先にある「変更できる」という価値。
第2回 SOLID原則:設計の5大憲法
2026年5月23日(土) 17:05–19:05目的:オブジェクト指向を具体的に運用するための5つの基準を習得する。
- SRP (単一責任の原則): クラスが担うべき「責任」の境界線。
- OCP (開放閉鎖の原則): 既存のコードを壊さずに新機能を追加する構造。
- LSP (リスコフの置換原則): 継承の正しさを保証する契約。
- ISP (インターフェース分離の原則): 肥大化したインターフェースが招く依存の汚染。
- DIP (依存性逆転の原則): 具体的な実装ではなく、抽象(インターフェース)に依存する。
第3回 デザインパターン I:構造と振る舞いの定石
2026年5月30日(土) 17:05–19:05目的:ゲーム開発の「あるある」に対する先人の知恵を学ぶ。
- Singleton: ゲーム全体で唯一の存在を保証する。
- Factory: インスタンス生成の責任をカプセル化する。
- Strategy: アルゴリズムや振る舞いを動的に差し替える。
- Command: 操作をオブジェクトとして扱い、リプレイやUndo/Redoを可能にする。
参考文献
- Unity Technologies, デザインパターンとSOLIDでコードをレベルアップする
第4回 デザインパターン II:リアクティブな設計とUI
2026年6月6日(土) 17:05–19:05目的:複雑に絡み合うイベントとUIの関係を整理する。
- State: 複雑な状態遷移(待機・移動・攻撃等)をクラスとして独立させる。
- Observer: オブジェクト間の依存を断ち切り、イベント駆動で情報を伝える。
- MVP (Model-View-Presenter): ロジックと表示を分離し、テスタビリティを高める。
- UniRx入門: 時間軸を扱う処理のストリーム化と、リアクティブプログラミングによるイベント処理の簡略化。
参考文献
- Unity Technologies, デザインパターンとSOLIDでコードをレベルアップする