読み込み中...統一モデリング言語(とういつモデリングげんご、UML; 英: Unified Modeling Language)は、ソフトウェア工学におけるオブジェクトモデリングのために標準化した仕様記述言語である。UMLは、グラフィカルな記述で抽象化したシステムのモデル(UMLモデル)を生成する汎用モデリング言語である。
最初期の版はラショナルにおいて、グラディ・ブーチ、イヴァー・ヤコブソン、ジェームズ・ランボーの三人が策定した。この三人はスリーアミーゴスと呼ばれている。現在は OMG (Object Management Group) がて管理している。ソフトウェア開発において、ソフトウェアを利用する汎用モデリング言語として、現在最も普及している。2008年現在の最新版は UML 2.1.1 であり、ISO/IEC 19501:2005 として UML 1.4.2 を標準化している。
UML 2.0 以降では13種類の図(ダイアグラム)を必要に応じて書き分ける。よく使う図としては、状態遷移図、シーケンス図がある。特定の言語での開発が決まった時点では、クラス図やユースケース図を使う場合がある。
UMLの公式な定義は、Object Management Group (OMG) が Meta-Object Facility (MOF) のメタモデルを使って行っている。他のMOFベースの仕様と同様、UMLメタモデルとUMLモデルは XMI でシリアライズできる。UML はソフトウェアを中心とするシステムの仕様を記述し、視覚化し、構築し、文書化するために設計された。
UML はソフトウェアのモデリングだけに利用するわけではない。ビジネスプロセスのモデリングやシステム工学的モデリングにも使われ、組織の構造図を表現するのにも使うことができる。Systems Modeling Language (SysML) は、UML 2.0 プロファイルとして定義されたシステム工学用のドメイン固有モデリング言語である。
UML は、モデル駆動工学(MDE) やモデル駆動型アーキテクチャ (MDA) といったモデル駆動型の技術が発展するきっかけとなった。クラス、コンポーネント、汎化、集約といった概念の視覚的な記法について業界の合意を得るようになったことで、ソフトウェア開発者は設計や構造(アーキテクチャ)に集中できるようになった。
UMLモデルは、OMGが対応するQVTなどの変換言語を使って、他の表現(Javaなど)に自動的に変換できる場合がある。
UMLには拡張性があり、プロファイルやステレオタイプといった機構でカスタマイズできる。プロトタイプによる拡張の意味論は UML 2.0 で改善している。
1994年、ラショナルはゼネラル・エレクトリックからジェームズ・ランボーを雇った。その後同社は今日の2つのオブジェクト指向モデリング技法を生み出すこととなった。それは、ランボーのオブジェクトモデル化技法(オブジェクト指向分析 (OOA) の一種)と、グラディ・ブーチのBooch法(オブジェクト指向設計 (OOD) の一種)である。ランボーとブーチは共同で彼らの技法を統一する作業を開始した。
間もなくイヴァー・ヤコブソンが加わった。オブジェクト指向ソフトウェア工学(OOSE)の開発者である。ヤコブソンは1995年に自身の会社である Objectory AB が買収されたことにより、ラショナルに合流した。この3人の方法論者をスリーアミーゴスと呼ぶ。
1996年、ラショナルはあまりにも多様なモデリング言語が存在しているとオブジェクト技術の採用が遅れてしまうと判断し、彼らの統合作業をオープンな統一モデリング言語の開発に方向転換した。OOPSLA '96 においてオブジェクト技術系の競合企業が集まってこれに関する話し合いが行われ、ランボーのOMT記法で使われていた四角形でクラスを表す技法がブーチの雲でクラスを表す技法に勝った。この勝利を記念してランボーがジョニ・ミッチェルの "Clouds" をア・カペラで歌ったという。
スリーアミーゴスの技術リーダーシップの下、UML Partners という国際コンソーシアムが1996年に結成され、統一モデリング言語(Unified Modeling Language、UML)仕様が完成し、OMG RFP に対する応答として提案された。UML Partners の UML 1.0 仕様ドラフト版がOMGに提案されたのは、1997年1月であった。同月、UML Partners は Semantics Task Force を結成し、仕様の意味論的側面の仕上げと他の標準化作業との整合作業を行った。その結果は UML 1.1 としてOMGに1997年8月に提出され、1997年11月に採用されたUML。
モデリング記法としては、OMTの記法がほぼ踏襲された(例えば、クラスやオブジェクトを矩形で表すなど)。ブーチの「雲」記法は除外されたものの、ブーチ法に特有な低レベルな設計の詳細を記述する機能が採用されている。ヤコブソンの Objectory からユースケース図が採用され、ブーチのコンポーネント図も採用された。しかし、意味論的な統合という観点では UML 1.1 は弱く、その点が大きく改善されたのは UML 2.0 であった。
他のオブジェクト指向手法の概念をUMLに緩やかに統合し、ほぼあらゆるオブジェクト指向手法に対応するものとなっている。例えば、CRCカード(1989年ごろ、ケント・ベックとウォード・カニンガムが考案)および Object Oriented Role Analysis Method (OORam) が考慮されている。他にも当時の様々なオブジェクト指向技法が寄与している。Tony Wasserman と Peter Pircher の "Object-Oriented Structured Design (OOSD)" 記法、Ray Buhr の "Systems Design with Ada"、Archie Bowen のユースケースとタイミング解析、Paul Ward のデータ解析、David Harel の "Statecharts" などである。このとき、彼らはリアルタイムシステム領域もカバーしようとしていた。結果として、UMLは単一プロセスのアプリケーションから分散システムまで、様々な工学的問題に使えるツールとなり、巨大な仕様を抱えることになった。
統一モデリング言語は国際標準規格である。ISO/IEC 19501:2005 Information technology ? Open Distributed Processing ? Unified Modeling Language (UML) Version 1.4.2 として規格化している。
UML は UML 1.1 以降も進化し続けている。いくつかのマイナーバージョン(UML 1.3, 1.4, 1.5)はバグや問題点を修正したものだが、UML 2.0 では大きく進化した。これが現在のOMG標準である。
UML 2.0 の最初の部分は、新しい図とモデリング要素を説明した高次構造(スーパーストラクチャ)であり、2004年10月にOMGにより採用された。他の部分はインフラストラクチャと呼ばれ、Object Constraint Language (OCL) と図の関係を示したものであり、順次採用され、2005年11月に完成した。UML 最終版が使用可能であると宣言され、OMGの形式仕様ライブラリに追加されている。UML仕様の他の部分として UML、UML、UML を採用している。
2007年8月現在のバージョンは 2.1.1 で、UML 2.1 版の XMI 2.1 版という形で使用可能である。その XMI 2.1 ファイルはOMGから入手可能である。2.2 版は現在開発中。
よく知られているUMLツールの多くは UML 2.0 のほとんどに対応している。一部、あまり使われない機能を実装していないことがある。
UML 自体は手法(方法論)ではなく、当時主流だったオブジェクト指向ソフトウェア開発手法群(OMT、Booch法、OOSE/Objectory など)と互換になるよう設計している。その後、UMLが普及するに従って、それら技法を新たな図を利用するよう変更している。また、UMLに基づいた新たな手法も登場している。よく知られている例としてはラショナル統一プロセス (RUP) がある。他にも Abstraction Method、DSDM などがあり、それぞれ異なった目的に特化している傾向がある。
バートランド・メイヤーとエドワード・ヨードンが American Programmer 誌に書いた "UML: The Positive Spin" という記事は、UMLをパロディ形式(UMLをテーマとしてその長所を書かなければならなくなった学生が書いた論文という体裁)で厳密に批判したものである。Eiffel Software のアーカイブ・サイトにある。
読み込み中...