オブジェクト指向モデリング (オブジェクトしこうモデリング、英: Object-Oriented Modeling 、OOM) とは、システム等のモデリングにおいて、オブジェクト指向を取り入れたものである。以下、主としてコンピュータプログラムの設計におけるそれに関して述べる。
概要
プログラミングよりも以前からの基本的な手法として分割統治法といったものがあるわけだが、コンピュータプログラムの設計では、分割して共通となるコードをサブルーチンとして切出しコードの再利用を行うことや、構造化による規則立ったコード片の組合せによる設計が行われてきた。
オブジェクト指向には、アラン・ケイに由来する、互いにメッセージをやりとりする(メッセージ・パッシングの)主体、としてのオブジェクトを中心としたものと、クラスベースのオブジェクトによるものがあるが、いずれにしても、プログラム片としてのコードが主体となるのではなく、「コードが付随したデータ」であるオブジェクトによってシステムが組上げられる。
例
| この節には独自研究が含まれているおそれがあります。 問題箇所を検証し出典を追加して、記事の改善にご協力ください。議論はノートを参照してください。(2016年6月) |
オブジェクト指向モデリングにより、プログラマは、問題領域について、互いに関連し相互作用するオブジェクトの集合として認識するため、問題領域の複雑性に取り組むことに専念しやすくなる。
そしてオブジェクト指向モデリングという作業は、特定の文脈においてそうしたオブジェクト (あるいはそうしたオブジェクトが属するクラス) の集合を同定することである。
クラスは、オブジェクトの設計図に相当するものである。
オブジェクトそれぞれが属性とメソッドをもち、すべてのオブジェクトのメンバ (属性とメソッド) は、そのオブジェクトが属するクラスで定義されている。
こうしたオブジェクトの定義 (クラス) は、スキーマである。
詳細は、オブジェクト指向、オブジェクト指向分析設計、オブジェクト指向プログラミングの項目を参照。
例として、「従業員管理システム」のモデルを考える。
同システムにおいて、「企業」は、オブジェクトである。
「従業員」は、また別のオブジェクトである。
「雇用」は、関連である。
「従業員クラス」には、氏名、生年月日などの属性が定義されており、このクラスに属する「従業員」オブジェクトはそれぞれに固有の氏名、生年月日などの属性値をもつ。
「雇用」関連については、それ自体をオブジェクトとして考えることもできる。
「雇用」関連オブジェクトは、給与や雇用形態のような属性を、もつことができるであろう。
「従業員」のメソッドとしては、出勤する、スキルを高める、などがあるであろう。
オブジェクト指向のモデルの記述 (スキーマ) は、時を経ると成長し複雑になってゆく可能性があり、そのためモデルを記述するための記法が必要となる。
オブジェクト指向のパラダイム内においても、さまざまなパラダイムが複数あり、それぞれのパラダイムを基にして、多くの記法がこれまで提案されてきた。
考案された記法は発展的に分岐することもあった。
現在は、統一モデリング言語 (UML) にほぼ統一され、UMLが広く使われている。
オブジェクト指向のモデルの非形式的な記述や形式的な記述は、プログラマあるいは (形式的な記述の場合は) Computer-aided software engineering ツール (CASEツール) によって、オブジェクト指向プログラミングをサポートするプログラミング言語 (オブジェクト指向プログラミング言語) のプログラムに変換されたり、データベース言語のスキーマのコードに変換されたりする。
関連項目