UML (統一モデリング言語) は、ソフトウェア システムの成果物を記述、視覚化、構築、文書化するために使用される汎用ビジュアル モデリング言語標準です。
言語のことになると、多くの友人が SQL、Java、C#、PHP などの言語を思い浮かべ、怖がって遠ざけてしまうかもしれません。

さまざまなプログラミング言語
ただし、UML はプログラミング言語ではなく、ビジュアル モデリング言語です。なぜ言語と呼ばれるかというと、UMLはコミュニケーションのための語彙やルールを提供し、その語彙やルールの枠内で垣根なく同じソフトウェアでコミュニケーションを行うことができ、さまざまなユーザが同じことを同じ理解できるようにするためです。
1960 年代後半以降、コンピュータ技術の継続的な普及に伴い、ソフトウェアに対する人々の需要は日に日に増大し、ソフトウェアの規模も拡大し、ソフトウェアの複雑さも増大してきました。科学的な理論的指針が欠如しているため、ソフトウェア開発コストは常に上昇しており、品質を保証できないソフトウェアはさらに悪化しています。ソフトウェアのメンテナンスは非常に面倒な作業になります。人々はこれをはっきりとソフトウェア危機と呼んでいます。
何をするか?その場合、ソフトウェア開発作業はプロジェクトとして実行する必要があります。そこで、ソフトウェアエンジニアリングという概念も登場しました。ソフトウェアエンジニアリングは、ソフトウェア生産の客観的法則を研究し、ソフトウェア生産活動を導くためのソフトウェア生産に関連する概念、原理、方法、技術、およびツールを確立することを目的としています。もちろん結果は満足のいくものでした。
ソフトウェアエンジニアリングに関する人々の研究が継続的に深まるにつれて、オブジェクト指向プログラミングが人々の視野に入ってきました。 1980年代から1990年代初頭にかけて、オブジェクト指向の分析・設計手法が数多く生まれ、オブジェクト指向の手法を紹介する書籍も数多く出版されました。これは、百の学派が争っているような感じがします。各著者は実践者のグループを率いており、その手法には多くの類似点がありますが、微妙な違いもあります。
これは、同じ分野の専門家に同じことについて話すときに混乱をもたらし、異なるオブジェクト指向の表現方法を思いつく可能性があり、同じことの理解とコミュニケーションを著しく妨げます。
このとき、ある方から、統一して同じ基準にしようという提案がありました。誰も彼の呼びかけを聞いていないようで、彼を無視しました。 OMG (Object Management Group) という組織もあり、同様にオブジェクト指向の標準化を試みましたが、すべての方法論者から公開の抗議書を 1 通受け取っただけでした。
Martin Fowler は、著書『UML Essentials: A Concise Guide to the Standard Object Modeling Language』の中でこの状況について語る際、次のようなジョークを飛ばしています。
A: 方法論者とテロリストの違いは何ですか?
B: テロリストは交渉できる。

オブジェクト指向の表現方法には大きな隔たりがある
1995 年の OOPSLA (オブジェクト指向プログラミング システム、言語、およびアプリケーション) 年次会議で、Grady Booch と Jim Rumbaugh は、統合されたアプローチである統一メソッド ドキュメント 0.8 (統一メソッド) を初めて公に説明しました。
さまざまな関係者間の一連のコンテストの後、1997 年 1 月に、すべての組織が他の組織と協力してメソッド標準の提案を提出し、これが初めて統一モデリングと呼ばれる UML ドキュメントのバージョン 1.0 をリリースしました。言語。
競争プロセスの後、OMG はバージョン 1.1 を公式の OMG 標準として採用しました。一連の修正を経て、UML1.4 と UML1.5 は比較的成熟したものになりました。たとえば、Rational Rose 2003 はそのような標準に基づいて開発されました。
多くの人が UML について話すとき、主に作成者の功績は Grady Booch、Ivar Jacobson、Jim Rumbaugh であると考え、彼らを「スリー アミーゴ」と呼びます。
もちろん、初期段階では反対を表明し、彼らが一定の貢献をしたと信じていた人もいたが、後期にはOMG委員会のメンバーが多くの貢献をし、3人の中で貢献したのはジム・ランボーだけだった。後期では。
手法と表現の側面
過去に登場したメソッドと表現に関して、UML はオブジェクト指向メソッドで一般に受け入れられている多くの概念を組み込んでおり、各概念について明確な定義、表現、および関連用語を提供しています。 UML を使用すると、さまざまな既存の方法で確立されたモデルを元の方法よりも適切に記述することができます。