統一モデリング言語とは何? わかりやすく解説 Weblio辞書 (original) (raw)
UML logo
統一モデリング言語(とういつモデリングげんご、英: Unified Modeling Language, UML)は、システムの設計を視覚化する標準的な方法を提供する、汎用ビジュアルモデリング言語である[1]
ソフトウェア設計における種々の記法やアプローチを標準化したいという動機によって開発されたもので、1994年から1995年にかけてラショナルソフトウェアによって開発され、1996年まで同社によって追加開発が主導された[2]。
多くの種類の図の標準記法を提供し、これらの図は振る舞い図、相互作用図、構造図に大別される。
1997年にはObject Management Group(OMG)の標準モデリング言語に採択され、以降、同団体によって管理されている。2005年にはISOとIECによってISO/IEC 19501として標準化され[3]、最新版のUMLに合わせて定期的に改訂されている[4]。
ソフトウェアエンジニアリングにおいては、ほとんどの実務家がUMLを使用しておらず、代わりに非形式的な手書きの図を使用しているとされる一方で、それらの図はUMLの要素を含んでいることが多いとされる[5]:536。
概要
UMLダイアグラム
UML2.2ダイアグラム体系
UMLの公式な定義は、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からプロファイル図が導入されたことでプロトタイプベースのデザインにも対応できるようになった。
UMLは、統一的なモデリング言語であって統一的な方法論ではない。当時のメジャーなオブジェクト指向方法論であったOMT、Booch法、OOSE/Objectoryの三つで、それぞれ使われていたオブジェクトモデリング言語の記法を統一したものであって、それ以上ではない。14種類のダイアグラムを揃えているUMLは、様々なソフトウェア開発方法論に対応できるだけの表現力を備えている。
歴史
UML1.0以前
UMLの歴史
1994年、ラショナルはゼネラル・エレクトリックからジェームズ・ランボーを雇った。その後同社は2つのオブジェクト指向モデリング技法を生み出すこととなった。それは、ランボーのオブジェクトモデル化技法(OMT、オブジェクト指向分析 (OOA) の一種)と、グラディ・ブーチのBooch法(オブジェクト指向設計 (OOD) の一種)である。ランボーとブーチは共同で彼らの技法を統一する作業を開始した。
間もなく、オブジェクト指向ソフトウェア工学(OOSE)の開発者であるイヴァー・ヤコブソンが加わった。ヤコブソンは1995年に自身の会社である Objectory AB が買収されたことにより、ラショナルに合流した。この3人の方法論者はスリーアミーゴスと呼ばれる[6]。
1996年、ラショナルはあまりにも多様なモデリング言語が存在しているとオブジェクト技術の採用が遅れてしまうと判断し、彼らの統合作業をオープンな統一モデリング言語の開発に方向転換した。OOPSLA '96 においてオブジェクト技術系の競合企業が集まってこれに関する話し合いが行われ、ランボーのOMT記法で使われていた四角形でクラスを表す技法がブーチの雲でクラスを表す技法に勝った[7]。
UML1.x
スリーアミーゴスの技術リーダーシップの下、UMLパートナーズ(英語版)という国際コンソーシアムが1996年に結成され、UMLの仕様が完成し、OMG RFP に対する応答として提案された。UMLパートナーズの UML 1.0 仕様ドラフト版がOMGに提案されたのは、1997年1月であった。同月、UMLパートナーズはセマンティクス・タスク・フォース[8]を結成し、仕様の意味論的側面の仕上げと他の標準化作業との整合作業を行った。その結果は UML 1.1 としてOMGに1997年8月に提出され、1997年11月に採用された[9]。
モデリング記法としては、OMTの記法がほぼ踏襲された(例えば、クラスやオブジェクトを矩形で表すなど)。ブーチの「雲」記法は除外されたものの、ブーチ法に特有な低レベルな設計の詳細を記述する機能が採用されている。ヤコブソンの Objectory からユースケース図が採用され、ブーチのコンポーネント図も採用された。しかし、意味論的な統合という観点では UML 1.1 は弱く、その点が大きく改善されたのは UML 2.0 であった。
他のオブジェクト指向手法の概念をUMLに緩やかに統合し、ほぼあらゆるオブジェクト指向手法に対応するものとなっている。例えば、CRCカードおよびオブジェクト指向役割分析法(英語版)が考慮されており、他にもトニー・ヴァッサーマン(英語版)とペーター・ピルヒャーによるオブジェクト指向構造設計(英: Object-Oriented Structured Design、OOSD)記法、レイ・バーの「Adaによるシステム設計(英: Systems Design with Ada)」、イヴァー・ヤコブソンのユースケース記法、アーチー・ボウウェンのタイミング解析、デイビッド・ハレル(英語版)の状態図、ポール・ウォードのデータ解析など、当時の様々なオブジェクト指向技法が寄与している[10]。
このとき、彼らはリアルタイムシステム領域もカバーしようとしていた。結果として、UMLは単一プロセスのアプリケーションから分散システムまで、様々な工学的問題に使えるツールとなり、巨大な仕様を抱えることになった。UML は UML 1.1 以降も進化し続けている。いくつかのマイナーバージョン(UML 1.3, 1.4, 1.5)はバグや問題点を修正したものだが、UML 2.0 では大きく進化した。これが現在のOMG標準である。
UML2
UML 2.0 の最初の部分は、新しい図とモデリング要素を説明した高次構造(スーパーストラクチャ)であり、2004年10月にOMGにより採用された。他の部分はインフラストラクチャと呼ばれ、Object Constraint Language (OCL、オブジェクト制約言語) と図の関係を示したものであり、順次採用され、2005年11月に完成した。「UML 2.0 specification」最終版が使用可能であると宣言され、OMGの形式仕様ライブラリに追加されている。UML仕様の他の部分として「UML 2.0 infrastructure」、「UML 2.0 Diagram Interchange」、「UML 2.0 OCL」を採用している。よく知られているUMLツールの多くは UML 2.0 のほとんどに対応している。一部、あまり使われない機能を実装していないことがある。
略年表
- 2005年 - UML 1.4.2がISO/IEC 19501:2005として国際標準化[11]。
- 2012年 - UML 2.4.1が、ISO/IEC 19505-1:2012ならびにISO/IEC 19505-2:2012として標準化[12]。
- 2017年 - UML 2.5.1が公開[13]。
ダイアグラム一覧
UML図は、システムの静的な構造を描写する構造図と、システムの振る舞いを描写する振る舞い図に分けられる。振る舞い図はシステム内のそれぞれの振る舞いを描写するそれと、それぞれのインタラクションを描写する相互作用図に分けられている。
UML 2.0 以降では、14種類のダイアグラムがあり、それぞれの開発局面に応じて使い分けることができる。クラス図、アクティビティ図、シーケンス図が多用される。次いでコンポーネント図、ディプロイメント図、ユースケース図、ステートマシン図である[_独自研究?_]。
ダイアグラム | 説明 |
---|---|
クラス図 | クラス、型、その内容、その関係性といった静的モデル要素の集まりの図式化。 |
コンポーネント図 | アプリケーションやシステムを構成するコンポーネントの図式化。それらの相互関係、相互作用、公開インターフェースも記述する。 |
ディプロイメント図 | システムの実行アーキテクチャの図式化。ハードウェアおよびソフトウェアの実行環境のそれぞれをノードで表わし、それらを結合するミドルウェアも記述する。 |
コンポジット構造図 | クラス、コンポーネント、ユースケースといった分類子の内部構造の図式化。分類子とシステム内パーツの相互作用ポイントも合わせて記述する。 |
パッケージ図 | モデル要素のパッケージ分割構成を図式化。パッケージ間の依存関係も記述。 |
オブジェクト図 | 特定タイミングでのオブジェクトとその関係性の図式化。クラス図またはコミュニケーション図での特別ケースを記述。 |
プロファイル図 | プロトタイプベース向けのオブジェクトデザイン。 |
ダイアグラム | 説明 | 使用度 |
---|---|---|
アクティビティ図 | 高水準業務プロセスを図式化。システム内のデータフロー、複合ロジックのロジックを模型化する。 | 高 |
ステートマシン図 | オブジェクトまたは相互作用を内包した状態と、状態遷移の図式化。状態図、状態チャート図、状態遷移図に言及されていた。 | 中 |
ユースケース図 | ユースケース、アクター、それらの相互関係を図式化。 | 中 |
ダイアグラム | 説明 | 使用度 |
---|---|---|
シーケンス図 | 分類子間のメッセージ交換における時系列のエフェクトを描写するシーケンシャル・ロジックのモデル図 | 高 |
インタラクション概要図 | システムや業務プロセス内の制御フローの概要の図式化。その各ノード/アクティビティを、他のインタラクション概要図表記にしての入れ子構図にできる。アクティビティ図の派生とされる。 | 低 |
タイミング図 | 分類子インスタンスや役割子の状態またはコンディションの変遷の図式化。レスポンスや外部イベントによるオブジェクトの状態変化の描写。 | 低 |
コミュニケーション図 | クラスのインスタンス、相互関係、メッセージフローを図式化。メッセージを送受するオブジェクトの構造的機構に注目する。以前はコラボレーション図だった。 | 低 |
批判
UMLはモデリング標準として広く認知され使われているが、以下のような問題点をよく指摘される。
- 言語肥大
UMLは無駄に大きく複雑になっていると批判されることが多い[16]。多数の図と構成要素から成っていて、その一部は滅多に使われず、しかも冗長である。特に UML 2.0 になってから委員会的妥協案が多くなったことで、このような批判が増えている。SysML [17]は UML 2.0 の13種類の図のうち 7 種類を利用し、2種類の図(リクワイアメント図とパラメトリック図)とアロケーションテーブルを追加している。 - 学習と採用に関する問題
上の批判とも関係するが、UMLの学習や採用は難しくなりつつある[18]。 - コードとの同期問題
UMLモデリングは、それ自体の美しさよりも実際に動作するシステムのモデルでなくてはならない。Jack Reeves はこれを簡潔に「コードは設計である」と表している[19]。この考え方を推し進めると、ソフトウェアの書き方の改善が必要とされていることになる。UMLは、そこからソースコードや実行コードを生成できるツールもある。しかし、UML 2.0 の Action Semantics がチューリング完全かどうかは明らかではないため、十分とは言えない。 - インピーダンス不整合
UMLは他の表記法と比較しても、簡潔かつ効率的にシステムを表現できる。従って、開発者にはUMLとプログラミング言語の両方で記述可能なソリューションを重視する傾向が生じる。しかし、言語が正統なオブジェクト指向言語でない場合、UMLと言語間に共通点が少ないため、この問題が特に大きくなる。 - 見た目の不統一感
場当たり的に様々な図が統合されているため、統一感がないという批判もある。 - 八方美人
UMLは汎用モデリング言語であり、様々な実装言語との互換性を達成しようとしている。個別のプロジェクトでは、目標達成のために設計チームがUMLの利用可能な機能を区別する必要がある。さらに言えば、UMLの範囲を特定の領域に限定する方法は完全には定式化されておらず、それも批判の対象となっている。
バートランド・メイヤーとエドワード・ヨードンが American Programmer 誌に書いた "UML: The Positive Spin" という記事は、UMLをパロディ形式(UMLをテーマとしてその長所を書かなければならなくなった学生が書いた論文という体裁)で厳密に批判したものである。Eiffel Software のアーカイブ・サイトにある[16]。
出典・脚注
- ^ Unified Modeling Language User Guide, The (2 ed.). Addison-Wesley. (2005). p. 496. ISBN 0321267974. http://www.informit.com/store/unified-modeling-language-user-guide-9780321267979 , See the sample content, look for history
- ^ Unified Modeling Language User Guide, The (2 ed.). Addison-Wesley. (2005). p. 496. ISBN 0321267974. http://www.informit.com/store/unified-modeling-language-user-guide-9780321267979 See the sample content: look for history
- ^ “ISO/IEC 19501:2005 - Information technology - Open Distributed Processing - Unified Modeling Language (UML) Version 1.4.3”. Iso.org (2005年4月1日). 2015年5月7日閲覧。
- ^ “ISO/IEC 19505-1:2012 - Information technology - Object Management Group Unified Modeling Language (OMG UML) - Part 1: Infrastructure”. Iso.org (2012年4月20日). 2014年4月10日閲覧。
- ^ Sebastian Baltes; Stephan Diehl (2014-11-11). “Sketches and diagrams in practice”. Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering. FSE 2014. Association for Computing Machinery. pp. 530–541. arXiv:1706.09172. doi:10.1145/2635868.2635891. ISBN 978-1-4503-3056-5. https://doi.org/10.1145/2635868.2635891
- ^ Unified Modeling Language User Guide, The. Addison-Wesley. (2005). p. 496. ISBN 0321267974. http://www.informit.com/store/unified-modeling-language-user-guide-9780321267979
- ^ この勝利を記念してランボーがジョニ・ミッチェルの「Clouds」をア・カペラで歌ったという[_要出典_]。
- ^ 英: Semantics Task Force
- ^ UML Specification v. 1.1 (OMG document ad/97-08-11)
- ^ “Unified Modeling Language - an overview | ScienceDirect Topics”. www.sciencedirect.com. 2025年1月13日閲覧。
- ^ “ISO/IEC 19501:2005 - Information technology - Open Distributed Processing - Unified Modeling Language (UML) Version 1.4.3”. Iso.org (2005年4月1日). 2015年5月7日閲覧。
- ^ “ISO/IEC 19505-1:2012 - Information technology - Object Management Group Unified Modeling Language (OMG UML) - Part 1: Infrastructure”. Iso.org (2012年4月20日). 2014年4月10日閲覧。
- ^ “About the Unified Modeling Language Specification Version 2.5.1”. 2022年5月8日閲覧。
- ^ a b c “Introduction to the Diagrams of UML 2.X”. www.agilemodeling.com. 2021年1月閲覧。
- ^ a b c “OMG Unified Modeling LanguageTM(OMG UML),Superstructure”. 2021年1月閲覧。
- ^ a b Bertrand Meyer: UML: The Positive Spin, in American Programmer, 1997.
- ^ http://www.omgsysml.org OMG sysml
- ^ ACM の記事 "Death by UML Fever" では、その種の問題を論じている。
- ^ The Code is The Design Slashdot
Code as Design: Three Essays by Jack W. Reeves
参考文献
- Ambler, Scott William (2004年). The Object Primer: Agile Model Driven Development with UML 2. Cambridge University Press. ISBN 0-521-54018-6. http://www.ambysoft.com/books/theObjectPrimer.html
- Chonoles, Michael Jesse; James A. Schardt (2003年). UML 2 for Dummies. Wiley Publishing. ISBN 0-7645-2614-6
- Coad, Peter; Eric Lefebvre; Jeff De Luca (1999年). Java Modeling In Color With UML: Enterprise Components and Process. Prentice Hall. ISBN 0-13-011510-X
- Fowler, Martin. UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd ed. ed.). Addison-Wesley. ISBN 0-321-19368-7
- Jacobson, Ivar; Booch, Grady; Rumbaugh, James (1998年). The Unified Software Development Process. Addison Wesley Longman. ISBN 0-201-57169-2
- Martin, Robert Cecil (2003年). UML for Java Programmers. Prentice Hall. ISBN 0-13-142848-9
- Noran, Ovidiu S.. “Business Modelling: UML vs. IDEF” (PDF). 2005年12月28日閲覧。
- Penker, Magnus; Hans-Erik Eriksson (2000年). Business Modeling with UML. John Wiley & Sons. ISBN 0-471-29551-5
- Henderson Sellers, Brian (2006年). about UML profiles. Springer Verlag. MoDELS'2006 Conference, Genova
関連項目
- オブジェクト指向モデリング
- オブジェクト指向分析設計
- ブーチ法
- オブジェクトモデル化技法
- オブジェクト指向ソフトウェア工学
- 実体関連モデル (ER)
- メタモデル
- モデルベーステスト (MBT)
- UN/CEFACT Modelling Methodology (UMM)
- ビジネスプロセスモデリング表記法 (BPMN)
外部リンク
- www.uml.org - OMG (Object Management Group) のUMLウェブサイト
UMLのツール
- Rational Rhapsody - Rational Rhapsody (組込み開発向けモデリング・ツール)
- Enterprise Architect - ビジュアルな UML2.0対応 モデリングと CASE のためのツール
- Visual Paradigm for UML - ビジュアルな UML モデリングと CASE のためのツール
- Software Ideas Modeler
- パターンウィーバー - UML モデリングツール
- astah* professional, astah* UML - 日本製のUML2.0モデリングツール
- ArgoUML - Tigris.org によるオープンソースの UML モデリングツール
- EclipseUML - Eclipse に UML モデリングの機能を追加するプラグイン
- IBM Rational 製品群 - IBM Rational
- SystemDirector Application Modeler - UMTP 基準準拠のUML2.0エディタ
- MagicDraw UML - ビジュアルな UML2.0対応 モデリングと CASE のためのツール
- Violet UML Editor - 簡単に使い始められ、クロスプラットフォームで動作するフリーソフトウェア
- UML Jokes - ウェイバックマシン(2011年1月31日アーカイブ分)
- UMLdraw - 日本製のシンプルな軽量 UML エディタ
表話編歴統一モデリング言語(UML) | |
---|---|
団体人物 | 団体 OMG 人物 グラディ・ブーチ イヴァー・ヤコブソン ジェームズ・ランボー |
概念 | OOP オブジェクト指向プログラミング オブジェクト指向分析設計 オブジェクト指向モデリング 構造性 アクター(英語版) 属性 アーティファクト(英語版) クラス コンポーネント(英語版) インターフェース(英語版) オブジェクト パッケージ(英語版) 操作性 アクティビティ(英語版) イベント(英語版) メッセージ メソッド ステート(英語版) ユースケース 関連性 ジェネラライゼーション スペシャライゼーション リアライゼーション インプリメンテーション 多重度 コンポジション アグリゲーション アソシエーション(英語版) ディペンデンシー 拡張性 プロファイル(英語版) ステレオタイプ(英語版) |
図式 | 構造 クラス図 コンポーネント図 コンポジション構造図 ディプロイメント図 オブジェクト図 パッケージ図 プロファイル図(英語版) 振る舞い アクティビティ図 ステートマシン図(英語版) ユースケース図 相互作用 インタラクション概要図(英語版) コミュニケーション図(英語版) シーケンス図 タイミング図(英語版) |
派生言語 | Systems Modeling Language UML eXchange Format(英語版) XML Metadata Interchange Executable UML(英語版) |
その他 | UML用語集(英語版) ラショナル統一プロセス UMLツール一覧(英語版) カラーUML(英語版) |
![]() |
表話編歴ソフトウェア工学 | |
---|---|
分野 | 要求分析 システム解析 ソフトウェア設計 コンピュータプログラミング 形式手法 ソフトウェアテスト ソフトウェアデプロイメント ソフトウェア保守 |
コンセプト | データモデリング エンタープライズアーキテクチャ プログラム仕様 モデリング言語 プログラミングパラダイム ソフトウェア ソフトウェアアーキテクチャ ソフトウェア開発方法論 ソフトウェア開発工程 ソフトウェア品質 ソフトウェア品質保証 ソフトウェア考古学(英語版) 構造化分析(英語版) |
指向 | アジャイル アスペクト指向 オブジェクト指向 オントロジー サービス指向 SDLC |
モデル | 開発モデル アジャイル 反復型 RUP スクラム スパイラルモデル ウォーターフォール・モデル XP Vモデル インクリメントモデル(英語版) プロトタイピングモデル 他のモデル オートモーティブスパイス CMMI データモデル 実体関連モデル 機能モデル 情報モデル メタモデル オブジェクトモデル(英語版) システムモデル(英語版) ビュー・モデル モデリング言語 IDEF UML |
主な人物 | ケント・ベック グラディ・ブーチ フレデリック・ブルックス バリー・ベーム(英語版) ピーター・チェン ウォード・カニンガム オーレ=ヨハン・ダール トム・デマルコ マーティン・ファウラー アントニー・ホーア ワッツ・ハンフリー(英語版) マイケル・A・ジャクソン(英語版) イヴァー・ヤコブソン クレイグ・ラーマン(英語版) ジェームス・マーティン(英語版) バートランド・メイヤー デイビッド・パーナス ウィンストン・W・ロイス(英語版) コレット・ロラン(英語版) ジェームズ・ランボー ニクラウス・ヴィルト エドワード・ヨードン ビクター・バシリ(英語版) |
関連項目 | 計算機科学 計算機工学 エンタープライズエンジニアリング 歴史(英語版) 経営管理論 プロジェクトマネジメント 品質マネジメント ソフトウェア人間工学 システム工学 |
![]() ![]() |