オブジェクト指向モデリング
オブジェクト指向モデリング (オブジェクトしこうモデリング、英: Object-Oriented Modeling 、OOM) は、主としてコンピュータプログラミングで使われるモデリングのパラダイムである。 オブジェクト指向モデリングが考案される以前は、主として考察の対象となってきたパラダイムは関数型プログラミングであった。 関数型プログラミングでは、再利用可能なコードブロックを利用することを強調した。 関数型プログラミングにおける再利用可能なコードブロックは、それ自体が独立しており、変数を受け取り、受け取った変数をもとに関数を実行し、値を返す。
オブジェクト指向モデリングでは、オブジェクト指向のパラダイムを使うことで、プログラマは、問題領域について、実行可能な関数の集合として認識するのではなく、互いに関連し相互作用するオブジェクトの集合として認識するため、問題領域の複雑性に取り組むことに専念しやすくなる。
そしてオブジェクト指向モデリングという作業は、特定の文脈においてそうしたオブジェクト (あるいはそうしたオブジェクトが属するクラス) の集合を同定することである。
クラスは、オブジェクトの設計図に相当するものである。 オブジェクトそれぞれが属性とメソッドをもち、すべてのオブジェクトのメンバ (属性とメソッド) は、そのオブジェクトが属するクラスで定義されている。 こうしたオブジェクトの定義 (クラス) は、スキーマである。 詳細は、オブジェクト指向、オブジェクト指向分析設計、オブジェクト指向プログラミングの項目を参照。
例として、「従業員管理システム」のモデルを考える。 同システムにおいて、「企業」は、オブジェクトである。 「従業員」は、また別のオブジェクトである。 「雇用」は、関連である。 「従業員クラス」には、氏名、生年月日などの属性が定義されており、このクラスに属する「従業員」オブジェクトはそれぞれに固有の氏名、生年月日などの属性値をもつ。 「雇用」関連については、それ自体をオブジェクトとして考えることもできる。 「雇用」関連オブジェクトは、給与や雇用形態のような属性を、もつことができるであろう。 「従業員」のメソッドとしては、出勤する、スキルを高める、などがあるであろう。
オブジェクト指向のモデルの記述 (スキーマ) は、時を経ると成長し複雑になってゆく可能性があり、そのためモデルを記述するための記法が必要となる。 オブジェクト指向のパラダイム内においても、さまざまなパラダイムが複数あり、それぞれのパラダイムを基にして、多くの記法がこれまで提案されてきた。 考案された記法は発展的に分岐することもあった。 現在は、統一モデリング言語 (UML) にほぼ統一され、UMLが広く使われている。
オブジェクト指向のモデルの非形式的な記述や形式的な記述は、プログラマあるいは (形式的な記述の場合は) Computer-aided software engineering ツール (CASEツール) によって、オブジェクト指向プログラミングをサポートするプログラミング言語 (オブジェクト指向プログラミング言語) のプログラムに変換されたり、データベース言語のスキーマのコードに変換されたりする。