連載

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

第4回
静的モデル:クラスにおけるUMLとJavaのマッピング(2)

6.オペレーションのマッピング

 本節ではオペレーションのマッピングについて検討します。

■■6.1 オペレーションの種類■■

 UMLのオペレーションと、対応するJavaのモデル要素の関係は図9になります。UMLのオペレーションは、Javaのインスタンスメソッド、クラスメソッド、コンストラクタのいずれかにマッピングされるということです。

図9 オペレーションの対応

 Javaのインスタンスメソッドとクラスメソッドの違いは、スコープにあります。つまり、インスタンススコープを持つメソッドがインスタンスメソッドであり、クラススコープを持つメソッドがクラスメソッドとなります。スコープという概念はUMLのオペレーションにもまったく同じものがあるので、そのままJavaのインスタンスメソッドおよびクラスメソッドに対応させることができます。

 Javaのコンストラクタは、UMLではオペレーションとして表現することになります。ただし、ステレオタイプcreateを設定した特殊なオペレーションという扱いになります。

■■6.2 部品のマッピング■■

 UMLオペレーションの部品とJavaメソッドおよびJavaコンストラクタの部品との対応関係は図10となります。

図10 オペレーションのマッピング(クリックすると拡大します)

6.2.1 共通の部品

 オペレーション名/メソッド名、返却値型/復帰型、可視性、パラメタ、例外はUMLの部品とJavaの部品がそのまま対応します。また、UMLのプロパティabstractとJavaの修飾子abstractも同じ意味です。いずれも抽象メソッドを表します。UMLのプロパティleafにはJavaの修飾子finalが対応します。

 いずれもサブクラスでオーバーライドされないメソッドを表します。ステレオタイプcreateは、Javaのコンストラクタに相当します。

6.2.2 要検討の部品

 オペレーションの並行性を表現するために、UMLではプロパティconcurrencyを用意しており、以下の3つの値で表現します。

sequential クライアント側で並行性を制御
guarded 複数のクライアントからの要求はガードされ同時に1つの要求のみが実行される
concurrent guardedではないが並行性を持っている

 それに対して、Javaではメソッドの修飾子としてsynchronizedを用意しています。synchronizedを指定されたメソッドは、UMLの concurrencyプロパティのguardedと同様に、複数のクライアントからの要求はガードされ同時に1つの要求のみが実行されるようになります。つまり、UMLのconcurrencyプロパティのguardedをJavaメソッドの修飾子synchronizedにマップすることは可能です。

 synchronizedが指定されていないJavaメソッドはUMLのsequentialまたはconcurrentにマップされることになりますが、どちらにマップされるかは実装次第であり、機械的なマッピングを行うことはできません。

6.2.3 Javaのみの部品

 Javaのみの部品として、以下の2つの修飾子が挙げられます。

native 外部のプログラムで実装
strictfp 浮動小数点の扱いを厳密に行う

 いずれもUMLに相当する機能がないので、ステレオタイプかプロパティで表現することになります。

6.2.4 UMLのみの部品

 UMLのみに定義されているオペレーションの機能を表現するステレオタイプとしてdestroyがあります。Javaにはステレオタイプに相当する機能はなく、また手動での実装も困難なのであえて利用することはないでしょう。UMLのみに定義されている機能を表現するプロパティは以下の2つです。

query オペレーション呼び出しに伴う副作用がない
root 親クラスのオペレーションをオーバーライドしない

 queryは、オペレーションの呼び出しに伴う副作用がないことを表現します。rootは、親クラスのオペレーションをオーバーライドしないメソッドであることを表現します。いずれも、直接Javaにマッピングできる機能はありません。参考情報として利用するのがよいでしょう。

3/5

Javaオブジェクトモデリング 第4回
  “クラス”のマッピング
  属性のマッピング
オペレーションのマッピング
  サンプルプロファイル
  マッピング例


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


IT Architect 連載記事一覧

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

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

“AI美女”を広告に起用しない ユニリーバ「Dove」はなぜそう決めたのか
Unilever傘下の美容ケアブランド「Dove」は、「Real Beauty」の20周年を機に、生成AIツー...

有料動画サービス 34歳以下では過半数が利用経験、4割は1日1回以上利用
「ニールセン・ビデオコンテンツ アンド アド レポート 2024」を基に、テレビ画面での動...

2024年のGW予算は横ばい 賃上げよりも物価高と円安の影響が勝る?――インテージ調査
インテージが全国の15歳から79歳の男女を対象に実施したゴールデンウイークに関する調査...