UML(Unified Modeling Language)は、ソフトウェアシステムの構造、動作、相互作用を表す図を作成するために使用される標準化された視覚言語です。UMLは、ソフトウェア開発者、エンジニア、その他の関係者が、ソフトウェア開発プロセスにおいてより効果的にコミュニケーションやコラボレーションを行えるよう、一貫性のある共通の表記法を提供するために開発されました。
UMLにはさまざまな種類の図があり、それぞれがソフトウェア・システムのさまざまな側面を表現する上で、特定の目的を果たすものです。最も一般的なUMLの図には、以下のようなものがあります。
この図は、システムの静的構造を表すもので、システム内のクラス(またはオブジェクト)、その属性、メソッド、およびそれらの間の関係 を示しています。例えば、図書館システムのクラス図には、「Book」、「Author」、「LibraryMember」などのクラスが含まれ、これらのクラス間には、本に著者がいる、図書館の会員が本を借りている、などの関連付けがあります。
この図は、さまざまなユースケースを通じて、ユーザー(またはアクター)がシステムとどのように相互作用するかを示すことで、システムの機能要件を表しています。例えば、オンライン・ショッピング・システムのユースケース図には、「顧客」「販売者」「管理者」などのアクターと、「商品の検索」「商品の購入」「在庫の管理」などのユースケースを含めることができます。
この図は、時間の経過に伴うオブジェクト間の相互作用の順序を示すことによって、システムの動的な動作を表します。特定のシナリオに参加するオブジェクトと、それらが交換するメッセージを時系列に描きます。例えば、ログイン・プロセスのシーケンス図では、ユーザー、ログイン・フォーム、認証サーバー、データベースの間の相互作用を示し、ユーザーの認証情報を検証するステップを説明できます。
この図は、アクティビティ(またはタスク)とその間の遷移を示すことで、システムにおける制御の流れを表現します。システム内の手続き論理、並列動作、または条件付き制御の流れをモデル化するために使用されます。例えば、文書承認プロセスのアクティビティ図では、文書のレビュー、承認、拒否に関わるステップを、決定点と並列タスクで示すことができます。
これらは、ソフトウェア・システムのさまざまな側面をモデル化するために使用できる、多くの種類の UML 図のほんの一例に過ぎません。UMLを使用することで、ソフトウェア開発者やエンジニアはシステムを視覚的に表現でき、複雑なソフトウェアプロジェクトの理解、設計、保守を容易にできます。
要約すると、UML(Unified Modeling Language)は、ソフトウェアシステムの構造、動作、および相互作用を表す図を作成するために使用される標準化された視覚言語です。ソフトウェア開発者、エンジニア、その他の関係者が、ソフトウェア開発プロセスにおいて効果的にコミュニケーションやコラボレーションを行うための、一貫した共通の表記法を提供します。UML図の例としては、クラス図、ユースケース図、シーケンス図、アクティビティ図などがあり、それぞれがソフトウェアシステムのさまざまな側面を表すという特定の目的をもっています。