図解入門よくわかる最新オブジェクト指向の基本と仕組み


図解入門よくわかる最新オブジェクト指向の基本と仕組み (How‐nual Visual Guide Book)


秀和システム


著者:近藤博次


はじめに

第1章 オブジェクト指向とは
1-1 オブジェクト指向とはどのようなものか
オブジェクトオ旨向では「データ」と「手続き」を分離せずにそのまま記述できるうえ、その情報を隠蔽できる/なぜオブジェクト指向を用いたくなるのか
1-2 OOA、OOD、そしてOOPとは
三種の特器/しっかりした分析と設計あってこそのOOP
1-3 部品化と再利用、デザインパターン
一番大切なのは設計の技能
1-4 オブジェクト指向に向くもの、向かないもの
大規模プロジェクトでこそォブジェクト指向のメリットが出る
1-5 オブジェクト指向技術をとりまく環境の推移
オブジェクト指向は金喰い虫?/時代がオブジェクト指向に追い付いた
1-6 オブジェクト指向プログラミング言語と特徴
Java/PHP/Smalltalk/その他

第2章 「オブジェクト」とは?
2-1 言語仕様としての「オブジェクト指向」の成立と定義
オブジェクト指向の定義
2-2 オブジェクトを定義するということ
局所化/クラスとインスタンス/インスタンスとオブジェクト
2-3 属性と操作
属性/操作/属性と操作の定義(OMT法による記法)
2-4 情報隠蔽とカプセル化
プログラムの分割/オブジェクトの公開領域と私的領域/アクセス制限の(言語ごとに異なる)実現方式/カプセル化
2-5 メッセージ
動作メカニズムの基本的な単位「メッセージ」/メソッド/シグネチャ
2-6 継承(インヘリタンス)
継承の定義/「継承」で直接得られるもの/継承の真のメリット/継承の実装
2-7 メソッドサーチ受動性と自立性
受動性と自立性/メソッドサーチ/継承に伴うメソッドの再定義/継承にともなう「自分探し」(thisまたはselfの概念)/上位クラスの同名メソッドの呼び出し(superの概念)
2-8 基本データ型とクラス型
オブジェクトとデータ/オブジェクトと非オブジェクト/配列と集合

第3章 要求定義
3-1 責任者の設定
顧客の要求を引き出すことが何より重要/対話の重要性を理解(する・させる)/先方の最終決定権保持者を確定(する・させる)
3-2 社内調整の重要性
部門間の権力争いの発生/仕様は確定しなくても納朗は延びない
3-3 ヒアリング(インタビュー)
最初は聞き役に徹する/議事録の重要性/議事録を公開する
3-4 議事録とメーリングリスト
メーリングリスト作成/メーリングリストのアドレスは最低2つ/過去ログのHTML参照
3-5 作業見積り
インタビューからミーティングヘ/要求に優先順位をつけて概算を見積る/見積りの補正/適正な工数/チームの効用

第4章 オブジェクト指向分析
4-1 分析でなすべきこと
要求定義と分析/OOSEによるアプローチ
4-2 ユースケース図とシナリオ
ユースケース図/シナリオ/顧客の視点で書く
4-3 モデル化
モデルと表層の分離/分離のフレームワーク
4-4 MVCフレームワークの実際
MVCフレームワークの「ビュー」と「コントローラー」/1つのモデルに複数のビュー/コ ントローラーの役割/MVCの 各要素の関連/一方通行の重要性
4-5 オブジェクト候補の切り出し
名詞抽出法/そしてモデル化ヘ
4-6 オブジェクトの抽出
モデルの抽出/除外項目の検討/オブジェクトと属性
4-7 オブジェクト間の関連
関連とはオブジェクト同士の関わり/関連の付けかた/多重度/関連のオブジェクト化とライフサイクル/集約
4-8 オブジェクトの「操作」とライフサイクル
操作の定義/ライフサイクルの管理/通常のライフサイクルに沿わないオブジェクト
4-9 分析から設計へ
分析を進めたクラス図/さらなる分析のために/分析を打ち切るタイミング

第5章 オブジェクト指向設計
5-1 設計でなすべきこと
オブジェクト指向設計での成果物/設計担当者に要求されること
5-2 クラス図の見直し
関連の見直し/直接参照と聞妾参照/関連のオブジェクト化/シグネチャの確定
5-3 インターフェイスを考慮する
機能の想定/オブジェクト検索/リスト表示部分のデザインパターン(1):ページ操作部品/リスト表示部分のデザインパターン(2):リスト表示部品/インターフェイスを考慮した結果のクラス図
5-4 動的モデル図
シーケンス図/状態遷移図/動的モデル図の描きすぎに注意
5-5 オブジェクトの同一性
同一性と同値性/オブジェクトの識別/オブジェクトの複製
5-6 オブジェクトの永続性とデータベース
死のポインタからの解放/ガベージコレクション/システムオブジェクトの置き場所/RDBとの結合/複数テーブルにデータ構造を持つ複合オブジェクト/オブジェクトのファイル化/トランザクション管理/オブジェクト指向データベース(OODB)
5-7 デザインパターン
デザインパターンとは?/シングルトン(Singleton)/ラッパー(Wrapper)/オブザーバ/デザインパターンと再利用
5-8 付録 よりよい文書化のために
文書同士の関連性/文書管理に伴う問題/仕様書はHTMLベースで管理しよう!/仕様書自体もHTMLファイルで記述/文書はCVSで管理せよ/各種文書作成支援ツールを使用せよ

第6章 オブジェクト指向プログラミング
6-1 実装の基本
書籍のクラス設計/書籍のクラス定義/属性の設定/Getter/Setterの設定/コンストラクタの修正/まとめ
6-2 状態管理の実装
カートのクラス設計/カートのクラス定義/書籍の管理/状態の管理/まとめ
6-3 倉庫の実装(シングルトンの実装)
倉庫のクラス設計/倉庫のクラス定義/インスタンスヘのアクセス/アクセスの排他制御/まとめ
6-4 ラッパーの実装
写真のクラス設計(設計修正)/表紙写真のクラス定義/表紙写真の委譲(delegation)の実装/まとめ
6-5 レポートリスナーの実装(オブザーバの実装)
レポートリスナーのクラス設計/レポーターのクラス定義/レポートリスナーのクラス定義/レポートリスナーのシーケンス図/相互関連への注意/まとめ
6-6 複製の実装
浅い複製/深い複製を自分で再定義する/深い複製の実装/複数の属性を持つオブジェクトのpostClone()/postClone()の責任範囲/まとめ
6-7 データベース回りの実装
クラスの役割/検索の実装/複合検索の実装/登録の実装/削除の実装/修正の実装/まとめ
6-8 インテグレーション
設計の吟味と見直し/クラス分割/ポリモルフィズム/共通化と構造の発見/抽象クラス/まとめ
6-9 よりよいオブジェクト指向開発のために
テスト/テストケース/テストデータ作成/単体テスト/結合テスト/システムテスト/検収とアフターケア/本書のまとめ

索引

書籍目次

Posted by shi-n