Comments
Description
Transcript
OOTの優位性 - JAIST 北陸先端科学技術大学院大学
内容と予定(1) • 目標と範囲 • 基礎概念の獲得 – オブジェクト指向の基礎概念:世界の表現 – オブジェクト指向の基礎概念:再利用 – オブジェクト指向プラグラムの構造 – オブジェクト指向技術の優位性 • モデリング手法の獲得 – 静的モデル:クラスと関連 – 動的モデル:状態機械 – 動的モデル:相互作用図 – 並行性の記述:アクティブオブジェクトとマルチスレッ ドプログラミング – UML2.0の概要 北陸先端大 落水浩一郎 オブジェクト指向アプローチ の利点(歴史と展望) 落水 浩一郎 北陸先端大 情報科学研究科 北陸先端大 落水浩一郎 ソフトウェア工学研究の枠組み • • • • • • 生産の場におけるさまざまな問題現象のうち、「自身の関心」を一口で言い切る 。 例:プログラムのデータ構造を変更すると、その影響がプログラム中のあちこ ちに波及し変更が容易でない 「問題」とその「効果」を抽象する。 例:データ構造とそれに付随する操作を、プ ログラムコード中にまとめて書くと、データ構造の変更の波及が局所化される 「問題の抽象」と「効果の抽象」に対して名前を与える。 例:情報隠蔽またはデ ータ抽象、変更波及の局所化 上記ステップを経て、実世界の問題を理論の世界に移すことができ、式、アルゴ リズム、言語、ツール等による問題解決に思考を集中できる。 例:情報隠蔽の実 現法、新しい言語 抽象化された世界における解を実世界にフィードバックし、その効果を評価する 。 例:データ構造の変更は容易になったが、類似の記述がプログラム 中に数回あらわれ無駄が多い ここでワンサイクル完成。新しく得られた問題をさらに追及することで、過去の成 果を踏まえた新しい成果が得られる。 北陸先端大 落水浩一郎 オブジェクト指向技術以前 (構造化プログラミング) • 限られた能力をもつ人間が巨大なプログラムをシステマ ティックに作成し、正しさを確認するのは容易でない • 問題を解決する理想的な仮想機械を想定し、その仮想機 械命令および仮想機械データ型を段階的に詳細化して いく。仮想機械プログラムは一入力/一出力の制御構造 を利用してプログラミングする。アサーションにより作業の 分割と正しさの確認が局所化される • パールとネックレス、構造化プログラミング • 方法論、言語、正当性確認のための理論 • 仮想機械命令の詳細化については所期の目的を達成し たが、仮想機械のデータ型を詳細化するとその波及が関 係する命令すべてに及ぶ問題が発生した 北陸先端大 落水浩一郎 オブジェクト指向技術の発展 (情報隠蔽またはデータ抽象) • データ構造変更の波及はプログラムコード 中に散在する • データ構造とそれに付随する操作をカプセ ル化することにより、波及を限定させる • 情報隠蔽、変更波及の局所化 • パーナスモジュール • データ構造の変更は局所化された。類似 の記述が出現し記述が冗長である 北陸先端大 落水浩一郎 オブジェクト指向技術の発展 (抽象データ型またはクラス) • インスタンス毎にデータ抽象を定義すると 類似の定義が出現し記述が冗長になる • パーナスモジュールを型定義することによ り、ソースコードの変更は一度で済む • 抽象データ型 • 新しい言語(CLU) • 類似した抽象データ型の定義が存在する 北陸先端大 落水浩一郎 オブジェクト指向技術の発展 (実装の継承) • 類似したクラス定義は煩雑である • クラス間の共通性と差異を木構造として整 理すると差分定義が可能になる • 実装の継承 • クラスライブラリの整備 • スーパクラス・センシティビティ。アプリケー ション分野に依存する領域ではクラスライ ブラリの保守が困難である。 北陸先端大 落水浩一郎 オブジェクト指向技術の発展 (インタフェースの継承) • スーパクラス・センシティビティ • 種々の実装を具象クラスとし、その呼び出し法を 抽象クラスによって統一すれば、変更に対して閉 じ、拡張に対してオープンな構造が実現できる • インタフェースの継承 • 抽象クラスの用途の新展開 • インタフェース定義は長期にわたり安定している とはいえない 北陸先端大 落水浩一郎 オブジェクト指向技術の発展 (オブジェクト合成) • 継承だけではハンドリングできない再利用 形態がある • プリミティブな機能をもつコンポーネントを 用意しそれを組合わせて使えばよい • オブジェクト合成による再利用 • コンポーネントインタフェース仕様技術 • 部品の信頼性が問題、ベンダーごとに利 用インタフェースが異なる 北陸先端大 落水浩一郎 オブジェクト指向技術の発展 (デザインパターン) • クラスレベルの再利用は粒度が小さすぎる。 プロのオブジェクトの組合わせ方には一定 のパターンがある。 • データ構造以外の変更の局所化、マイクロ アーキテクチャとしての再利用 • デザインパターン • PLOPによる組織的な収集 • 適切なパターンの選択とカスタマイズ 北陸先端大 落水浩一郎 達成点 • オブジェクト指向プログラミングの技術的優 位性 – 変更の局所化(データ抽象、情報隠蔽) – 型定義による冗長記述の除去(抽象データ型) – 実装の継承による再利用 – インタフェースの継承による拡張容易性 北陸先端大 落水浩一郎 粗粒度レベルの再利用 独立(ド メインの 用語を利 用しな い) システム開発 フレーム ワーク 領 域 依 存 度 軸 詳細(ド メインの 用語を利 用する) キット 新フ レーム ワーク 開発 キット 開発 デ ザ イ ン パ タ | ン ドメイン モデル 問題領域 の分類 アプリ ケー ション 具体的(機械可読) アーキテク チャ・スタイル 実装軸 抽象的(自然語または図式で表現) 北陸先端大 落水浩一郎 W.M.Tepfenhart and J.J. Cusick,”A Unified Object Topology”, IEEE Software Jan/Feb. pp.31-35,1997.