コンテンツにスキップ

オブジェクト指向モデリング

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。Xqbot (会話 | 投稿記録) による 2010年12月14日 (火) 19:08個人設定で未設定ならUTC)時点の版 (r2.5.2) (ロボットによる 変更: en:Object-oriented modeling)であり、現在の版とは大きく異なる場合があります。

オブジェクト指向モデリング (オブジェクトしこうモデリング、: Object-Oriented Modeling 、OOM) は、主としてコンピュータプログラミングで使われるモデリングのパラダイムである。 オブジェクト指向モデリングが考案される以前は、主として考察の対象となってきたパラダイムは関数型プログラミングであった。 関数型プログラミングでは、再利用可能なコードブロックを利用することを強調した。 関数型プログラミングにおける再利用可能なコードブロックは、それ自体が独立しており、変数を受け取り、受け取った変数をもとに関数を実行し、値を返す。

オブジェクト指向モデリングでは、オブジェクト指向のパラダイムを使うことで、プログラマは、問題領域について、実行可能な関数の集合として認識するのではなく、互いに関連し相互作用するオブジェクトの集合として認識するため、問題領域の複雑性に取り組むことに専念しやすくなる。

そしてオブジェクト指向モデリングという作業は、特定の文脈においてそうしたオブジェクト (あるいはそうしたオブジェクトが属するクラス) の集合を同定することである。

クラスは、オブジェクトの設計図に相当するものである。 オブジェクトそれぞれが属性メソッドをもち、すべてのオブジェクトのメンバ (属性とメソッド) は、そのオブジェクトが属するクラスで定義されている。 こうしたオブジェクトの定義 (クラス) は、スキーマである。 詳細は、オブジェクト指向オブジェクト指向分析設計オブジェクト指向プログラミングの項目を参照。

例として、「従業員管理システム」のモデルを考える。 同システムにおいて、「企業」は、オブジェクトである。 「従業員」は、また別のオブジェクトである。 「雇用」は、関連である。 「従業員クラス」には、氏名、生年月日などの属性が定義されており、このクラスに属する「従業員」オブジェクトはそれぞれに固有の氏名、生年月日などの属性値をもつ。 「雇用」関連については、それ自体をオブジェクトとして考えることもできる。 「雇用」関連オブジェクトは、給与や雇用形態のような属性を、もつことができるであろう。 「従業員」のメソッドとしては、出勤する、スキルを高める、などがあるであろう。

オブジェクト指向のモデルの記述 (スキーマ) は、時を経ると成長し複雑になってゆく可能性があり、そのためモデルを記述するための記法が必要となる。 オブジェクト指向のパラダイム内においても、さまざまなパラダイムが複数あり、それぞれのパラダイムを基にして、多くの記法がこれまで提案されてきた。 考案された記法は発展的に分岐することもあった。 現在は、統一モデリング言語 (UML) にほぼ統一され、UMLが広く使われている。

オブジェクト指向のモデルの非形式的な記述や形式的な記述は、プログラマあるいは (形式的な記述の場合は) Computer-aided software engineering ツール (CASEツール) によって、オブジェクト指向プログラミングをサポートするプログラミング言語 (オブジェクト指向プログラミング言語) のプログラムに変換されたり、データベース言語スキーマのコードに変換されたりする。

関連項目