統一モデリング言語

UM
家族モデリング言語
Webサイトwww.uml.org

統一モデリング言語UML)は、汎用のオブジェクト指向のビジュアルモデリング言語であり、システムのアーキテクチャと設計を青写真のように視覚化する方法を提供します。[ 1 ] [ 2 ] UMLは、動作、相互作用、構造などの側面に焦点を当てた多くの種類のダイアグラムの表記法を定義します。

UMLは、形式的なメタモデルであると同時に、グラフィカルなテンプレートの集合でもあります。メタモデルは、クラスやプロパティといったオブジェクト指向モデルの要素を定義します。これは本質的にはオブジェクト指向プログラミング(OOP)におけるメタモデルと同じものですが、OOPにおいては、メタモデルは主に実行時にアプリケーションオブジェクトモデルを動的に検査・変更するために使用されます。UMLメタモデルは、モデリング言語において、新たなシステムを記述するために使用されるグラフィカルなビューのための、数学的かつ形式的な基盤を提供します。

UMLは、 OOPSLA '95カンファレンスにおいて、オブジェクト指向プログラミングの標準言語を定義する試みとして作成されました。当初、Grady BoochJames Rumbaughは、それぞれのモデルを統合して統一モデルを作成しました。その後、Boochの会社であるRational SoftwareがIvar JacobsonのObjectory社を買収し、彼らのモデルをUMLに統合しました。当時、RationalとObjectoryは、オブジェクト指向ツールとメソッドを提供する独立系ベンダーの小さな世界において、有力な二大勢力でした。[ 3 ]その後、 Object Management Group (OMG)がUMLの所有権を取得しました。

UMLは、当時のソフトウェア設計における表記法やアプローチのばらばらな性質を標準化したいという願望から生まれました。[ 4 ] 1997年、UMLはオブジェクト管理グループ(OMG)によって標準として採用され、それ以来この組織によって管理されています。2005年には、国際標準化機構(ISO)と国際電気標準会議(IEC)によってISO/IEC 19501標準として発行されました。[ 5 ]それ以来、この標準は定期的に改訂され、UMLの最新版に対応しています。[ 6 ]

ほとんどの開発者はUMLそのものを使用するのではなく、より非公式な図(多くの場合手描き)を作成します。しかし、これらの図にはUMLの要素が含まれていることがよくあります。[ 7 ] : 536

使用

UMLは主にソフトウェア開発(あらゆる業界や分野で)に使用されています[ 8 ]が、ビジネスプロセスシステム機能データベーススキーマ、法制度のワークフロー、医療用電子機器ヘルスケアシステムハードウェア設計など、他の分野でも使用されています[ 9 ]

UMLは、 OMTBooch法Objectory、そして特にRUPなど、今日だけでなく開発当初から使われている多くのオブジェクト指向ソフトウェア開発手法で使用できるように設計されています。RUPは、Rational Softwareでの開発開始当初から、UMLと併用されることが想定されていました。[ 10 ]もともとオブジェクト指向設計ドキュメントを目的としていましたが、UMLはビジネスプロセスのモデリングなど、他のコンテキストでも効果的に使用されています。[ 11 ] [ 12 ]

UMLは特定のプログラミング言語に本質的に結びついていないため、言語に依存しないシステムのモデリングに使用できます。一部のUMLツールは、 UMLモデルからソースコードを生成します。 [ 13 ]

要素

旅行予約システムのコンポーネント

UMLダイアグラムは次のようなシステムの側面を視覚化することをサポートします: [ 14 ]

  • ユーザーとシステムのインタラクションを指定するためのユースケース図
  • データ構造を含む構造を指定するためのクラス図
  • ビジネスプロセスワークフローを指定するためのアクティビティ図
  • コンポーネントが他のコンポーネントとどのようにインターフェースするかを指定するためのコンポーネント図
  • 計算ノード上でコンポーネントがどのように展開され実行されるかを指定するための配置図

UML ダイアグラムでは、明確に定義されたセマンティクスを持つ構文 (表記) 要素に加えて、使用法、制約、意図などの側面を説明する自由形式のコメント (メモ) も使用できます。

共有

UML モデルは、XML メタデータ交換(XMI) 形式を介してUML ツール間で交換できます。

基数表記

データベースのChen、Bachman、ISO ER図と同様に、クラスモデルは「look-across」カーディナリティを使用するように規定されていますMerise[ 15 ] Elmasri & Navathe、[ 16 ][ 17 ] )は、ロールと最小カーディナリティおよび最大カーディナリティの両方について、同じ側または「look-here」カーディナリティを推奨しています。最近の研究者(Feinerer [ 18 ] およびDullea他[ 19 ] )は、UMLおよびER図で使用される「look-across」手法は、2より大きい順序を持つn項関係に適用した場合、効果が低く、一貫性も低いことを示しています。

ファイネラーは次のように述べている。「UMLの関連付けに使用されているルックアクロスセマンティクスに基づいて操作すると、問題が発生します。ハートマン[ 20 ]はこの状況を調査し、さまざまな変換が失敗する理由と方法を示しています。」また、「次の数ページで説明するように、ルックアクロスの解釈は、2項関連付けからn項関連付け への単純なメカニズムの拡張を妨げるいくつかの困難をもたらします。」

遺物

アーティファクトの顕現コンポーネント

成果物とは、「ソフトウェア開発プロセス、またはシステムの展開と運用によって使用または生成される物理的な情報の仕様」 [ 21 ]であり、モデル、ソースコード、スクリプト、実行可能ファイルデータベースシステムテーブル、開発成果物、設計文書電子メールメッセージなどが含まれます。[ 21 ]

アーティファクトとは、 ノードに配置される物理的な実体です。[ 21 ]クラスやコンポーネントなどの他のUML要素は、まずアーティファクトとして表現され、その後、これらのアーティファクトのインスタンスが配置されます。アーティファクトは他のアーティファクトから構成されることもあります。

メタモデリング

メタオブジェクト機能の図解

OMGはUMLを定義するためのメタモデリング・アーキテクチャ、 Meta-Object Facility (MOF) を開発しました。[ 22 ] MOFは右図に示すように4層構造のアーキテクチャとして設計されています。最上位層にはM3層と呼ばれるメタメタモデルが存在します。このM3モデルは、Meta-Object FacilityがM2モデルと呼ばれるメタモデルを構築するために使用する言語です。

第2層メタオブジェクト機能モデルの最も顕著な例は、UML自体を記述するUMLメタモデルです。これらのM2モデルはM1層の要素、つまりM1モデルを記述します。これらは例えばUMLで記述されたモデルです。最後の層はM0層、つまりデータ層です。これはシステムの実行時インスタンスを記述するために使用されます。[ 23 ]

メタモデルはステレオタイプと呼ばれるメカニズムを用いて拡張することができます。これは、ブライアン・ヘンダーソン=セラーズとセザール・ゴンザレス=ペレスによる「UML 1.x および 2.0 におけるステレオタイプメカニズムの活用と濫用」において、不十分/非現実的であると批判されています。[ 24 ]

図表

UML 2は多くの種類の図を定義しており、画像では分類法として示されています。 [ 14 ] [ 25 ]

UML 2.2 図の階層構造(クラス図として表示)
UML 2.2 図の階層構造(クラス図として表示)

構造図

構造図は、オブジェクト、分類子、関係、属性、操作を用いてシステムの構造を強調します。ソフトウェアアーキテクチャを文書化するために使用されます。

動作図

動作図は、オブジェクト間の連携やオブジェクトの内部状態の変化を示すことで、システムの振る舞いを強調します。システムの機能を記述するために使用されます。

相互作用図

動作図のサブセットである相互作用図は、システムのコンポーネント間の制御とデータの流れを強調します。

採択

2013年、UMLはOMGによって様々な用途向けに販売されていましたが、主にソフトウェア開発を目的としていたため、成功は限定的でした。[ 12 ] [ 27 ]

UMLは時に設計の万能薬のように扱われ、問題を引き起こしてきました。UMLの誤用には、過剰な使用(システムのあらゆる部分をUMLで設計するなど、不必要)や、初心者でもUMLを使って設計できると想定することが含まれます。[ 28 ]

UMLは多くの構成要素を持つ大規模な言語であると考えられています。一部の人々(ジェイコブソン氏を含む)は、UMLの規模が学習と普及の妨げになっていると考えています。[ 29 ]

Visual Studioは、使用頻度の低さから2016年にUMLのサポートを廃止しました。[ 30 ]

歴史

オブジェクト指向のメソッドと表記法のタイムラインと関係

UMLは1990年代後半から進化を続け、そのルーツは1980年代後半から1990年代初頭にかけて開発されたオブジェクト指向プログラミング手法にあります。この画像は、UMLをはじめとするオブジェクト指向モデリング手法と表記法の歴史を時系列で示しています。

起源

ラショナル・ソフトウェアは1994年にゼネラル・エレクトリックからジェームズ・ランボーを雇用し、その後、当時最も普及していた2つのオブジェクト指向モデリング手法、すなわち[ 31 ]ランボーのオブジェクトモデリング技法(OMT)とグレイディ・ブーチの手法の源泉となった。彼らはすぐに、オブジェクト指向ソフトウェア工学(OOSE)手法の創始者であるアイヴァー・ジェイコブソンの支援を受け、1995年にラショナルに入社した。[ 4 ]

UML 1.x

UMLはもともとブーチ法オブジェクトモデリング技術(OMT)、オブジェクト指向ソフトウェア工学(OOSE)の表記法に基づいており、これらが1つの言語に統合されました。[ 14 ] UMLは1994年から1995年にかけてラショナルソフトウェアで開発され、1996年まで同社によってさらなる開発が進められました。[ 4 ]

1996年、ラムボー、ジェイコブソン、ブーチの技術的リーダーシップの下、 UMLパートナーと呼ばれるコンソーシアムが組織され、統一モデリング言語(UML)仕様を完成させ、標準化のためにオブジェクト管理グループ(OMG)に提案しました。このパートナーシップには、HPDECIBMMicrosoftなどの追加の利害関係者も含まれていました。UMLパートナーのUML 1.0ドラフトは、コンソーシアムによって1997年1月にOMGに提案されました。同月、UMLパートナーは、言語構成要素の正確な意味を定義することを目的としたグループを結成しました。このグループは、クリス・コブリンが議長を務め、エド・エイクホルトが運営し、仕様を完成させ、他の標準化活動と統合しました。この作業の結果であるUML 1.1は、1997年8月にOMGに提出され、1997年11月にOMGに採用されました。[ 4 ] [ 32 ]

最初のリリースの後、言語を改良するためのタスクフォースが結成され[ 4 ]、1.3、1.4、1.5といういくつかのマイナーリビジョンがリリースされました[ 33 ] 。

作成された規格(オリジナルの規格も同様)は曖昧で一貫性がないと指摘されている。[ 34 ]

UML2

UML 2.0は2005年にバージョン1.5に取って代わりました。バージョン1.5は、機能の使用に関する新しい経験を反映するように言語をさらに改良するために、拡大されたコンソーシアムで開発されました。[ 35 ]

UML 2.1は正式な仕様としてリリースされることはなかったが、2007年にバージョン2.1.1と2.1.2が登場し、続いて2009年2月にUML 2.2が登場した。UML 2.3は2010年5月に正式にリリースされた。[ 36 ] UML 2.4.1は2011年8月に正式にリリースされた。[ 36 ] UML 2.5は2012年10月に「進行中」バージョンとしてリリースされ、2015年6月に正式にリリースされた。[ 36 ] 正式バージョン2.5.1は2017年12月に採用された。[ 1 ]

UML 2.x 仕様には 4 つの部分があります。

  • 図とそのモデル要素の表記法と意味を定義する上部構造
  • 上部構造の基盤となるコアメタモデルを定義するインフラストラクチャ
  • モデル要素のルールを定義するためのオブジェクト制約言語(OCL
  • UML 2 ダイアグラムレイアウトの交換方法を定義する UML ダイアグラム交換

UML 2.4.1までのこれらの標準の最新バージョンは次のとおりです。[ 37 ]

  • UML スーパーストラクチャ バージョン 2.4.1
  • UML インフラストラクチャ バージョン 2.4.1
  • OCLバージョン2.3.1
  • UML ダイアグラム交換バージョン 1.0。

バージョン2.5以降、UML仕様は簡素化され(上部構造とインフラストラクチャが削除されました)、これらの標準の最新バージョンは次のとおりです。[ 38 ]

  • UML仕様2.5.1
  • OCLバージョン2.4

改訂タスクフォースによって継続的に更新・改善され、言語に関するあらゆる問題が解決されています。[ 39 ]

参照

参考文献

  1. ^ a b統一モデリング言語 2.5.1 . Object Management Group 文書番号 formal/2017-12-05 . Object Management Group 標準開発組織. 2017年12月.
  2. ^ [1412.2458] UML のシステム、ビュー、モデル。ルース・ブルー・ラドゥ・グロス著、フランツ・フーバー・ベルンハルト・ルンペ・ヴォルフガング・シュヴェリン著。 arXiv arxiv.org
  3. ^ 「統一手法から統一言語へ」 modelseverywhere.wordpress.com 2010年11月13日. 2013年12月19日閲覧
  4. ^ a b c d e統一モデリング言語ユーザーガイド(第2版)Addison-Wesley. 2005年. p. 496. ISBN 0321267974 サンプルコンテンツを見る: 履歴を探す
  5. ^ 「ISO/IEC 19501:2005 - 情報技術 - オープン分散処理 - 統一モデリング言語(UML)バージョン1.4.3」。Iso.org。2005年4月1日。 2015年5月7日閲覧
  6. ^ 「ISO/IEC 19505-1:2012 - 情報技術 - オブジェクト管理グループ統一モデリング言語(OMG UML) - パート1:インフラストラクチャ」 Iso.org、2012年4月20日。 2014年4月10日閲覧
  7. ^ Sebastian Baltes、Stephan Diehl (2014年11月11日). 「スケッチとダイアグラムの実践」 .第22回ACM SIGSOFT国際ソフトウェア工学基礎シンポジウム議事録. FSE 2014. Association for Computing Machinery . pp.  530– 541. arXiv : 1706.09172 . doi : 10.1145/2635868.2635891 . ISBN 978-1-4503-3056-5. S2CID  2436333 .
  8. ^ Conallen, Jim (1999). 「UMLによるWebアプリケーションアーキテクチャのモデリング」 (PDF) . Communications of the ACM . 42 (10): 63– 70. doi : 10.1145/317665.317677 .
  9. ^ Jacobson, Ivar、Grady Booch、James Rumbaugh (1998). The Unified Software Development Process . Addison Wesley Longman. ISBN 0-201-57169-2
  10. ^ジョン・ハント (2000).『実践者のための統一プロセス:オブジェクト指向設計、UML、Java』 Springer, 2000. ISBN 1-85233-275-1. p. 5.ドア
  11. ^ Satish Mishra (1997).「ビジュアルモデリングと統一モデリング言語(UML):UML入門」Wayback Machineで2011年7月20日アーカイブ。Rational Software Corporation。2008年11月9日アクセス。
  12. ^ a b「UML、成功事例」 。 2014年4月9日閲覧
  13. ^ 「UMLの重要性」
  14. ^ a b c「OMG Unified Modeling Language (OMG UML), Superstructure. Version 2.4.1」 . Object Management Group . 2014年4月9日閲覧
  15. ^ユベール・タルデュー、アーノルド・ロシュフェルド、ルネ・コレッティ『La Methode MERISE: Principes et outils』 (ペーパーバック - 1983)
  16. ^ Elmasri、Ramez、B. Shamkant、Navathe、「データベース システムの基礎」、第 3 版、Addison-Wesley、Menlo Park、CA、USA、2000 年。
  17. ^ Paolo Atzeni、Wesley Chu、Hongjun Lu、Shuigeng Zhou、Tok Wang Ling編(2004年10月27日)。概念モデリング – ER 2004:第23国際概念モデリング会議、上海、中国、2004年11月8~12日。Lecture Notes in Computer Science 3288(2004年版)。Springer。ISBN 3540237232
  18. ^ Ingo Feinerer (2007年3月). A Formal Treatment of UML Class Diagrams as an Efficient Method for Configuration Management (PDF) (工学博士論文). ウィーン: ウィーン工科大学. 2024年6月29日時点のオリジナル(PDF)からアーカイブ。 2024年5月25日閲覧
  19. ^ James Dullea、Il-Yeol Song、Ioanna Lamprou (2003年11月1日). 「実体関連モデリングにおける構造的妥当性の分析」.データ&ナレッジエンジニアリング. 47 (2): 167– 205. doi : 10.1016/S0169-023X(03)00049-1 .
  20. ^ Sven Hartmann (2003年1月17日).参加制約とChenの制約に関する推論. ADC '03: 第14回オーストラレーシア・データベース会議議事録.オーストラリアコンピュータ協会. pp.  105– 113.オープンアクセスアイコン
  21. ^ a b c「アーティファクト」。統一モデリング言語 2.5.1。OMG文書番号 formal/2017-12-05。オブジェクト管理グループ標準化機構 (OMG SDO)。2017年12月。p. 656。
  22. ^ Iman Poernomo (2006)「 The Meta-Object Facility Typed Archived 30 June 2016 at the Wayback Machine Proceeding SAC '06 Proceedings of the 2006 ACM symposium on Applied computing . pp. 1845–1849
  23. ^ 「UML 2.4.1インフラストラクチャ」 Omg.org、2011年8月5日。 2014年4月10日閲覧
  24. ^ Brian Henderson-Sellers、Cesar Gonzalez-Perez (2006年10月1日). 「UML 1.xおよび2.0におけるステレオタイプメカニズムの活用と濫用」. MoDELS '06: Proceedings of the 9th International Conference on Model Driven Engineering Languages and Systems . Lecture Notes in Computer Science 4199. 4199.ベルリン、ドイツ: Springer - Verlag : 16–26 . doi : 10.1007/11880240_2 . ISBN 978-3-540-45772-5
  25. ^ジョン・ホルト電気技術者協会 (2004).システムエンジニアリングのためのUML: 車輪の観察IET, 2004, ISBN 0-86341-354-458ページ
  26. ^マヌエル・アルメンドロス=ヒメネス、ヘスス、イリバルネ、ルイス。 (2007)。シーケンス図を使用したユースケースの関係の説明。計算します。 J.. 50. 116-128。 10.1093/comjnl/bxl053。
  27. ^ 「UML 2.5: 本当に気にしますか?」ドクター・ドブス「UMLは本当にどこにでもある」
  28. ^ 「UML熱による死」
  29. ^ 「Ivar Jacobson による UML、MDA、および方法論の将来について」
  30. ^ Krill, Paul (2016年10月18日). 「UML、Microsoft Visual Studioから削除へ」 InfoWorld . 2026年1月5日閲覧
  31. ^ Andreas Zendler (1997)オブジェクト指向ソフトウェア開発のための高度な概念、ライフサイクルモデル、ツール. p. 122
  32. ^ 「UML仕様バージョン1.1(OMG文書 ad/97-08-11)」 . Omg.org . 2011年9月22日閲覧
  33. ^ "UML" . Omg.org . 2014年4月10日閲覧
  34. ^ Génova et alia 2004「産業ユースケースモデリングにおける未解決の問題」
  35. ^ 「UML 2.0」 . Omg.org . 2011年9月22日閲覧
  36. ^ a b c「UML」 . Omg.org . 2011年9月22日閲覧
  37. ^ OMG. 「OMG形式仕様(モデリングとメタデータの段落)」 . 2016年2月12日閲覧
  38. ^ OMG. 「統合モデリング言語仕様について」 。 2020年2月22日閲覧
  39. ^ 「UML 2.6改訂タスクフォースメーリングリストの問題」 Omg.org 2014年4月10日閲覧

さらに読む