連載

Javaオブジェクトモデリング

第1回 連載を読む前に知っておくべきこと

3.UML(図の分類)

 UML(Unified Modeling Language)は、OMG(Object Management Group)によって仕様が制定された、オブジェクト指向モデルを表現するためのグラフィカル言語です。UMLは以下の9つの図を定義しており、オブジェクト指向開発の全工程をカバーしています。

図名(英語名、UML仕様書名) 内容
クラス図(class diagram) クラスとクラスの関係をモデル化するための図
オブジェクト図(object diagram) オブジェクトとオブジェクト間の関係をモデル化するための図。クラス図を実体化したもの
コラボレーション図(collaboration diagram、UML仕様書では「協調図」) オブジェクト間の相互作用を空間的な側面からモデル化するための図
シーケンス図(sequence diagram) オブジェクト間の相互作用を時間的な側面からモデル化するための図
ステートチャート図(statechart diagram) オブジェクトの状態を状態遷移としてモデル化するための図
ユースケース図(use case diagram) システムの要求仕様を、システムとシステム外のオブジェクト(アクター)との通信としてモデル化するための図
アクティビティ図(activity diagram、UML仕様書では「活動図」) システムの振る舞いをフローチャートやオブジェクトフローといったアクションの流れでモデル化するための図
コンポーネント図(component diagram) コンポーネント間の構造や依存関係をモデル化するための図
デプロイメント図(deployment diagram、 UML仕様書では「配置図」) コンポーネントの配備をモデル化するための図

コラボレーション図とシーケンス図は、いずれもオブジェクト間の相互作用をモデル化するための図であり、実質的には同じ情報を空間的あるいは時間的な側面にフォーカスして表現し分けたものです。コラボレーション図とシーケンス図を総称して、相互作用図と呼びます。

 オブジェクト指向におけるモデルは、「静的vs.動的」「論理vs.物理」の2つの観点で分類することができ、UMLの9個の図をこの観点で分類したものが、図1「UML図の分類」となります。

 論理・静的モデルを表現する図として、クラス図とオブジェクト図が用意されています。オブジェクト図はどちらかというと補助的に用いられる図なので、実質上クラス図が論理・静的モデルを表現する図となります。論理・静的モデルはオブジェクト指向の核となるモデルですが、このモデルがクラス図のみで表現できる点がポイントです。

 論理・動的モデルを表現する図としては、ユースケース図、シーケンス図、コラボレーション図、ステートチャート図、アクティビティ図の5つが用意されています。5つの図が存在することからも分かるように、オブジェクト指向開発では動的モデルの作成が非常に難易度の高い作業となります。これらの図で表現できるモデルを適材適所に組み合わせ、その総体として動的モデルを表現することになるからです。この適材適所を考えるうえで、開発プロセスとモデルの関係が重要になってきます。

図1 UML図の分類

 物理・静的モデルを表現する図としては、コンポーネント図とデプロイメント図が用意されています。これらの図は、JavaBeansやEnterprise JavaBeansといったJavaのコンポーネント技術を用いる場合に重要となってきます。

2/5

Javaオブジェクトモデリング 第1回
  連載のはじめに
UML(図の分類)
  開発プロセス
  オブジェクト指向開発におけるモデル体系
  Java開発におけるオブジェクトモデリングの意義

Javaオブジェクトモデリング INDEX


IT Architect 連載記事一覧

この記事に対するご意見をお寄せください managemail@atmarkit.co.jp

「ITmedia マーケティング」新着記事

Microsoft傘下の孤高のビジネスSNSはAIの時代にどこへ向かう?――2025年のSNS大予測(LinkedIn編)
ビジネス特化型のソーシャルプラットフォームとして独自の立ち位置を確立したLinkedIn。...

ソニーとディズニーが奇跡のコラボ NBAの試合に3Dアニメをリアルタイムで融合
ドナルドダック、グーフィー、その他の人気キャラがプロバスケットボールの試合の初のア...

ChatGPTだけじゃない! 生成AIの「検索量ランキング」、世界18カ国の傾向は?
ChatGPTの圧倒的な人気が際立つ一方で、GeminiやPerplexity、Copilotも注目を集めている...