オブジェクト指向分析設計
[Wikipedia|▼Menu]

オブジェクト指向分析設計 (オブジェクトしこうぶんせきせっけい、OOAD、: object-oriented analysis and design ) は、ソフトウェア工学において、ソフトウェア (システム) を相互作用するオブジェクトの集まりとしてモデル化 (オブジェクト指向モデリング) する、オブジェクト指向に基づくソフトウェア開発の方法である。オブジェクト指向の理論的枠組みに基づくソフトウェア開発、すなわちオブジェクト指向開発を行う際の、ソフトウェア開発工程において、分析工程であるオブジェクト指向分析 (OOA; object-oriented analysis) と、設計工程であるオブジェクト指向設計 (OOD; object-oriented design) の、総称である。なおプログラミング工程は、オブジェクト指向プログラミング (OOP; object-oriented programming) という。オブジェクト指向プログラミングの詳細については同項目を参照のこと。オブジェクト指向開発の具体的な方法論を、オブジェクト指向開発方法論 (object-oriented methodology) という。この項目では、オブジェクト指向開発におけるオブジェクト指向分析とオブジェクト指向設計、およびオブジェクト指向開発方法論を、主に説明する。
概要

オブジェクト指向のモデリング (オブジェクト指向モデリング) では、おのおののオブジェクトは、モデル化を行うシステムにおいて関心の対象となっている実体の表現であり、それぞれがそのクラスによってオブジェクトの状態 (データ要素) と振る舞いが特徴づけられる。

オブジェクト指向分析設計においては、次に示すようなシステムのさまざまな側面をモデル化することができる。

システムの静的な構造

システムの動的な振る舞い

システムにおいて協調して動作するオブジェクト群の実行時の配備

オブジェクト指向分析設計の過程で作られるモデル図の記法 (notation) は、これまで非常に多くの異なる記法が考案されてきた。2008年現在では、オブジェクト指向分析設計におけるモデル図の記法は、統一モデリング言語 (UML) が使われる事例がほとんどである。

オブジェクト指向分析 (OOA) では、オブジェクト指向によるモデル化の技法を、システムに対する機能的な要件を分析するために、適用する。

オブジェクト指向設計 (OOD) では、オブジェクト指向分析によって得られた分析モデルを実装 (プログラミング) するための仕様を作るために、モデルを詳細に記述する。

オブジェクト指向分析とオブジェクト指向設計を含めた、オブジェクト指向開発の具体的な方法論を、オブジェクト指向開発方法論 (object-oriented methodology) という。これまで非常に多くのオブジェクト指向開発方法論が考案されている。
オブジェクト指向システム

オブジェクト指向システムは、オブジェクトの集まりから構成される。オブジェクト指向システムの振る舞いは、こうしたオブジェクト群が協調して動作することによって遂行される。オブジェクト群の協調動作は、互いにメッセージを送信しあうことによって行われてゆく。メッセージを送信するということは、メソッド( クラスやオブジェクトに属す関数 )を呼ぶ事である。オブジェクトが別のオブジェクトからメッセージを受信すると、メッセージを受信したオブジェクト自身が、そのメッセージ受信によって実行するべきことを決める。同一のメッセージが、複数の異なるメソッドによって実装されていることがある。その場合、どのメソッドが実行の主体になるかについては、そのオブジェクトの状態に依存する。「メッセージ送信」の実装は、モデル化の対象となるシステムのアーキテクチャによりさまざまである。また「メッセージ送信」の実装は、協調動作するオブジェクト群が同一コンピュータ内に配置されているかそれとも複数のコンピュータに分散して配置されているかによっても、異なる。
オブジェクト指向分析

オブジェクト指向分析 (OOA; object-oriented analysis) は、システム化の対象となる領域 (問題領域; problem domain) を対象とし、分析の対象となる問題領域に存在するさまざまな情報の概念モデル (conceptual model) を作ることを目標とする工程である。オブジェクト指向分析で作る分析モデルでは、実装の水準において生じる可能性があるさまざまな種類の制約 (constraint) は、まったく考慮しない。ここで述べた実装の水準における制約には、並行性分散化永続化などが、含まれる。すなわち分析モデルでは、システムがどのように構築されるかということは、まったく考慮しない。実装の水準における制約は、オブジェクト指向分析の次の工程であるオブジェクト指向設計 (OOD) で、とり扱う。

オブジェクト指向分析の作業のもととなるのは、記述された形式の要求仕様、将来に向けての企業戦略を記した書類、利害関係者 (ステイクホルダー) やその他の関係者へのインタビューなどである。システムは複数の領域に分割されることがある。システムが分割される際に、分割の基準となるのは、システムが複数のビジネスに関係する場合、その他複数の関心の領域がある場合などである。分割されたシステムは、それぞれ個別に分析される。

オブジェクト指向分析の成果物は、開発するシステムが機能的に「何を」することが必要であるかということを、概念モデルの形で記述したモデル図や文書である。オブジェクト指向分析の成果物は、ユースケース、および統一モデリング言語 (UML) の複数のクラス図や多数の相互作用図のセットであることが多い。ユースケースは、ユースケース図を使って描くことができる。成果物は、システムのユーザインタフェースを模擬して記述した資料を含むことがある。なお、アジャイルソフトウェア開発の開発方法論を採用する場合は、オブジェクト指向分析の成果物は、必要十分な最小限の成果物を作成するのみであることが多い。
オブジェクト指向設計

オブジェクト指向設計 (OOD; object-oriented design) は、オブジェクト指向分析で得られた分析モデルを、さまざまな種類の制約 (constraint) を考慮したモデルに変換する工程である。ここで述べたさまざまな種類の制約には、選択したアーキテクチャに因る制約、非機能的制約 (技術的制約と環境面の制約を含む) を含む。具体的には、トランザクションスループット、レスポンスタイム、実行時のプラットフォーム、開発環境、プログラミング言語などが含まれる。

オブジェクト指向設計では、分析モデルで明確化された多くの概念を、クラスインタフェースに対応づける。オブジェクト指向設計の成果物は、問題領域についてシステムが「どのように」構築されるかを詳細に記したモデル図と文書である。ただしアジャイルソフトウェア開発の開発方法論を採用する場合は、オブジェクト指向設計の成果物は、必要十分な最小限の成果物を必要十分な最小限の詳細さの水準で作成するのみであることが多い。
オブジェクト指向設計の工程で使う資料

オブジェクト指向設計の工程で使う資料 (オブジェクト指向設計の入力となる資料) の、一つの例を、説明する。いずれの資料も、前工程であるオブジェクト指向分析の成果物である。
概念モデル
システムが対象とする問題領域における、さまざまな概念を記述した文書とモデル図である。概念モデルは、
並行性分散化永続性などの実装の詳細に依存しない形で、明確に記述される。
ユースケース
ユースケースは、何らかのビジネス目標と機能に関するシナリオでの、アクターと呼ばれるユーザとシステムの一連のやりとりを描いたものである。一つのユースケースは、アクターとシステムがどのように相互作用し、ビジネス上の目標の達成もしくはビジネス上の機能の実現をいかに行うかを説明する一つ以上のシナリオを、記述する。ユースケースのアクターは、エンドユーザである場合と、他のシステムである場合とがある。ユースケースはユースケース図を使って描くことができる。
システムシーケンス図
システムシーケンス図は、ユースケースの個別のシナリオについて、アクターが発生させる事象とその順序および (もし有るのであれば) システム間の事象を記述したモデル図である。
ユーザインタフェースの文書
(可能であれば作成しておく) ユーザインタフェースの文書は、完成させるシステムのユーザインタフェースのルックアンドフィールを示し説明した文書である。ユーザインタフェースの文書は、オブジェクト指向設計を行うに際して必須ではないが、完成させるシステムを視覚化することを助け、それにより設計者の作業にとって有用な資料となる。
関係データモデル
(可能であれば作成しておく) データモデルとは、データがどのように表現されどのように使われるかを説明した、抽象的なモデルである。もしオブジェクトデータベースを使わずに関係データベースを使うのであれば、関係データモデルを作るべきであるとされる。その場合、関係データモデルを作った後にオブジェクト指向設計ができるようになる。関係データモデルを、オブジェクト指向のデータモデルに対応づける (マッピングする) ことを、どのようにして行うかを決める作業については、オブジェクト指向設計の工程に含まれる。 (参考: オブジェクトリレーショナルマッピング)
オブジェクト指向プログラミング言語が備えるオブジェクト指向の概念


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:57 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef