オブジェクト指向設計(2019年度)

コンテンツ

第1章

  1. 可視性
  2. 汎化、特化(継承)
  3. 実現
  4. 関連
  5. 依存
  6. 関連(集約有り)

第2章 オブジェクト指向開発

  1. オブジェクト指向開発
  2. オブジェクト指向分析
  3. 機能外要求
  4. User インタフェース
  5. Student クラスとTeacher クラス
  6. Student クラスのソースコード
  7. Teacher クラスのソースコード
  8. 演習2-1
  9. UserLocator クラスのソースコード
  10. 演習2-2
  11. 演習2-2 の解答

第3章 設計の問題

  1. 演習3-1
  2. 演習3-1 の解答1(返却値を利用した方法)
  3. 演習3-1 の解答2(条件分岐による方法)
  4. 演習3-1 の解答3(メソッド追加の方法)
  5. ソフトウェア設計の問題点
  6. 返却値を利用した方法の問題点
  7. Staff クラス
  8. クラス間の関係
  9. 条件分岐による方法の修正点
  10. メソッド追加の方法の追加点
  11. 条件分岐による方法のクラス図
  12. メソッド追加の方法のクラス図

第4章 オブジェクト指向設計の原則

  1. オブジェクト指向設計の原則
  2. Iterator
  3. 引数としてのIterator
  4. 演習4-1
  5. 演習4-1 の解答案
  6. User インタフェースへのメソッド追加
  7. print メソッドのみでの解決
  8. 新しいインタフェースの追加
  9. 演習4-1 の解答案の問題点
  10. インタフェースの継承(Employee の追加)
  11. 演習4-1 の解答
  12. 演習4-2

第5章 単一責任の原則

  1. 演習4-2 の解答
  2. Employee インタフェースへのメソッドの追加
  3. print メソッド
  4. ソースコード腐敗の兆候
  5. 抽象クラスの導入
  6. AbstractEmployee 抽象クラス
  7. Teacher クラス
  8. Staff クラス
  9. 抽象クラスの役割と「単一責任の原則」
  10. 再利用と実クラス

第5章 追加(Template Method パターン)

  1. 抽象クラスの導入
  2. AbstractDice クラス
  3. Dice クラス
  4. オーバーロード
  5. オーバーロードの使用例
  6. 技術用語

第6章 Visitor パターン

  1. クラス階層によるインタフェースの分離
  2. PrintVisitor クラス
  3. 演習6-1
  4. User インタフェースへのメソッドの追加
  5. ダブルディスパッチ
  6. ライブラリのクラス図
  7. 実クラスのクラス図
  8. UserLocator クラスの拡張
  9. UserLocator の問題点
  10. UserLocator の分離

第7章 LSP、DIP、ISP

  1. リスコフの置換原則
  2. 依存関係逆転の原則
  3. インタフェース分離の原則
  4. 要素の間に","を入れて出力する

第8章 パターン技術

  1. パターン技術
  2. パターン言語
  3. パターン言語例
  4. Composite パターン
  5. Composite パターンのサンプルコード
  6. Composite パターンを適応したWallet クラス

第9章 ユースケース

  1. 要求におけるUML
  2. ユースケース図
  3. ユースケース(図)の役割
  4. ユースケースの実用例(初期)
  5. ユースケースの実用例(最終段階)
  6. アクティビティ図
  7. アクティビティ図の実用例