この章では、Unified Modeling Language (UML)クラス、プロファイル、アクティビティ、シーケンス、ユースケース図、さらにデータベース、EJB、および様々なビジネス・サービスとデータベース構造をモデル化するビジネス・コンポーネント・ダイアグラムを作成するためのモデリング・ツールとモデリング・テクノロジの利用方法について説明します。
この章には次の項が含まれます:
JDeveloperは、アプリケーション用のソフトウェアおよびシステム開発をモデル化するために6つの標準UMLダイアグラム・タイプと4つの追加ダイアグラム・タイプをサポートしています。
ダイアグラムの作成は、「新規ギャラリ」ウィザードで行います。ウィザードでは、ダイアグラム・タイプを選択し、「コンポーネント」ウィンドウで使用可能とするコンポーネントを選択します。ダイアグラムと関連コンポーネントをすばやく作成できるUMLアプリケーションを作成することもできます。図5-28は、クラス図を作成するダイアログの例を示しています。
使用可能なUML図はUML準拠です。ダイアグラムが作成されると、多くのUML要素を「コンポーネント」ウィンドウからダイアグラム上にドラッグ・アンド・ドロップすることができます。
ダイアグラム・タイプはすべて、「新規ギャラリ」ウィザードを使用して作成でき、JDeveloperダイアグラム・エディタ、「コンポーネント」ウィンドウおよび「プロパティ」ウィンドウでサポートされます。データベース・オブジェクトに対する変換オプションもあります。
JDeveloperでは、6つの標準UMLダイアグラム・タイプが用意されています。
アクティビティ図。調整されたアクションとしてシステム動作をモデル化します。アクティビティ・オブジェクトを使用して、出荷や注文処理などのビジネス目標用のタスクなどのビジネス・プロセスをモデル化できます。
パーティション付きアクティビティ図。視覚的な分割線、モデリング・グループ構成メンバー、または似た特性を共有する分割アクティビティと分割アクションを作成します。
クラス図。システムの構造をモデル化します。既存のクラス、インタフェース、属性、操作、アソシエーション、汎化およびインタフェース実現のアーキテクチャをインスペクトするために使用します。
シーケンス図。システム動作のトレースをイベントのシーケンスとしてモデル化します。シーケンス図は、主にこれを、時間順のオブジェクト間のメッセージとして示します。
ユースケース図。システムに想定される動作をモデル化します。ユースケース図は、アクター、ユースケース、およびそれらの通信をまとめたものです。
プロファイル図。プロファイルとステレオタイプを使用してUML拡張機能を定義します。
ビジネス・サービスをモデル化するために選択する4つのダイアグラムがあります。
ビジネス・コンポーネント・ダイアグラム。エンティティ・オブジェクト、ビュー・オブジェクト、アプリケーション・モジュール、およびこれらの関係をモデル化します。
データベース・ダイアグラム。オンライン・データベース表とオフライン・データベース表、およびその関係に加え、ビュー、マテリアライズド・ビュー、シーケンス、パブリック・シノニムとプライベート・シノニムをモデル化します。
EJBダイアグラム。システム内のエンティティBean、セッションBean、メッセージドリブンBeanおよびその関係をモデル化します。
Javaクラス図。Javaクラス、インタフェース、Enum、フィールド、メソッド、参照の関係と依存関係、継承関係、および実装関係をモデル化します。
Oracle JDeveloperには、アプリケーション・システムをモデル化するための多様なツールと各種のダイアグラムが用意されています。ダイアグラムと要素を作成するための便利なウィザード、および編集ウィンドウを開いたままで様々な要素を簡単にドラッグ・アンド・ドロップしたり編集したりできる「コンポーネント」ウィンドウと「プロパティ」ウィンドウが用意されています。
図5-1は、クラス図が表示されているダイアグラム・エディタ・ウィンドウ、「アプリケーション」ウィンドウおよび「コンポーネント」ウィンドウを示しています。「アプリケーション」ウィンドウ上のダイアグラムをダブルクリックして、これを開き、「コンポーネント」ウィンドウからダイアグラム・エディタにコンポーネントをドラッグ・アンド・ドロップします。
ダイアグラムを作成したら、コンポーネントを「コンポーネント」ウィンドウからダイアグラムに追加します。キーストローク・コマンドで、ダイアグラムのズーム・インおよびズーム・アウトを行ったり、元のサイズや元のサイズ率で表示したりできます。終了したら、ポップアップ・メニューやメイン・メニューのコマンドを使用して、ダイアグラムをイメージとして公開したり、印刷したりできます。
「新規ギャラリ」ウィザードで、コンポーネントを追加できるダイアグラムを作成することができます。
新規のダイアグラムを作成するには:
「アプリケーション」ウィンドウで、プロジェクトを選択し、「ファイル」→ギャラリから新規作成→「一般」→「ダイアグラム」を選択します。
ダイアグラム・タイプを選択し、「OK」を選択します。
ダイアグラムのデフォルト・パッケージは、そのプロジェクト設定で指定したデフォルト・パッケージです。現在のプロジェクトの指定したパッケージに、空のダイアグラムが作成され、コンテンツ領域で開かれます。「OK」をクリックします。
ダイアグラムを名前変更すると、元の名前の元のダイアグラムのコピーを残さずに、ダイアグラムの名前が変更されます。
ダイアグラム名を変更するには、次のようにします。
「アプリケーション」ウィンドウで、名前を変更するダイアグラムを選択します。
「ファイル」→「名前の変更」を選択します。
ダイアグラムをグラフィック・イメージとして公開するには、ポップアップ・メニューのオプションを使用します。イメージとして公開した後、ダイアグラムをプレビューしたり、印刷したりできます。
ダイアグラムをイメージとして公開するには、次のようにします。
ダイアグラムを右クリックし、「ダイアグラムの公開」を選択します。
または
ダイアグラムの表面をクリックし、「ダイアグラム」→「ダイアグラムの公開」を選択します。
表からイメージ・ファイルの公開先フォルダを選択します。
「ファイル・タイプ」ドロップダウン・リストを使用し、イメージ・ファイルのファイル・タイプ(SVG、SVGZ、JPEG、PNG)を選択します。
「ファイル名」ボックスに、適切な拡張子(.svg、.svgz、.jpg、.png)も含めてイメージ・ファイルの名前を入力します。
「保存」をクリックします。
ポップアップ・メニューまたはキーストロークを使用して、異なるダイアグラム間で要素をコピーします。
ダイアグラムから要素をコピーし、別のダイアグラムに貼り付けるには、次のようにします。
ダイアグラム要素を選択し、ポップアップ・メニューの「コピー」を選択するか、ツールバーの「コピー」アイコンを選択するか、または[Ctrl]キーを押しながら[C]キーを押します。
貼付け先のダイアグラムを開きます。
ダイアグラム要素を追加する場所にポインタを置き、ポップアップ・メニューから「貼付け」を選択します(または、ツールバーの「貼付け」アイコンを選択するか、[Ctrl]キーを押しながら[V]キーを押します)。
ページ設定を使用して、縦向きから横向きに変更したり、印刷余白を設定したりできます。
印刷前にページを設定するには、次のようにします。
印刷するダイアグラム上をクリックし、「ファイル」→「ページ設定」を選択します。
「ページ設定」ダイアログの各タブで設定を変更します。
「ファイル」メニューの印刷領域の設定オプションを使用して、印刷するダイアグラムの特定領域を設定します。
印刷するダイアグラム上の領域を設定するには、次のようにします。
「ファイル」→「印刷領域」→「印刷領域の設定」を選択します。
ダイアグラム上で、印刷する範囲のオブジェクトをマウス・ポインタのドラッグで囲みます。印刷する領域が点線の枠で示されます。領域を設定しない場合は、ダイアグラム全体が印刷されます。
ページをプレビューするには、「ファイル」→「印刷プレビュー」を選択します。「印刷オプション」を選択することにより、このページから印刷オプションも設定できます。「印刷オプション」ページで、ヘッダーおよびフッターのコンテンツをテキストとして追加できます。
ダイアグラムをズーム・インおよびズーム・アウトするには、[Ctrl]キーを押しながらホイール・ボタンを使用します。サムネイル・ビューを使用している場合は、スクロールを使用してズームします。ダイアグラム・ツールバーにもズーム・オプションがあります。
ダイアグラムのツールバー上にあるズームのドロップダウン・リストで、「100%」を選択するか、ダイアグラムをクリックして「ダイアグラム」→「ズーム」→「100%」を選択します。
ダイアグラムのツールバー上にあるズームのドロップダウン・リストで、「ウィンドウに合せる」を選択するか、ダイアグラムをクリックして「ダイアグラム」→「ズーム」→「ウィンドウに合せる」を選択します。
ダイアグラムのツールバー上にあるズームのドロップダウン・リストで、「選択領域のズーム」を選択するか、ダイアグラムをクリックして「ダイアグラム」→「ズーム」→「選択領域のズーム」を選択します。
メニュー・バーを使用して、ダイアグラムおよび関連ダイアグラム要素を削除します。
ダイアグラムを削除するには、次のようにします。
「アプリケーション」ウィンドウで、削除するダイアグラムを選択します。
「編集」→「削除」を選択します。このコマンドでダイアグラム・ファイルがシステムから削除され、ダイアグラムの編集ウィンドウが閉じます。削除したダイアグラムに対する選択内容は、「アプリケーション」ウィンドウとファイル・システムに残ります。
「アプリケーション」ウィンドウからもダイアグラムを削除できます。「アプリケーション」ウィンドウで、ダイアグラム名を右クリックし、「削除」を選択します。
大部分のダイアグラム要素を「コンポーネント」ウィンドウから使用できます。要素を視覚的に管理したり、要素のプロパティを管理するための様々なツールが用意されています。
「構造」ウィンドウで要素名をクリックします。ダイアグラムで要素が選択されます。ダイアグラムのサムネイル・ウィンドウを使用して要素を見つけることもできます。ダイアグラムのサムネイル・ビューを表示するには、「アプリケーション」ウィンドウまたはダイアグラムの背景をクリックしてダイアグラムを選択し、「ウィンドウ」→「サムネイル」を選択します。表示領域ボックスをドラッグし、ダイアグラムのサムネイル・ビューの要素上に置きます。対応する要素がメイン・ダイアグラムのビューに表示されます。
ダイアグラムからすべての要素を選択し、そのすべての要素に対して、位置合せ、コピー、削除、移動などのアクションを同時に実行することができます。ダイアグラムの表面をクリックして、任意の要素を選択し、「編集」→「すべて選択」を選択します。ダイアグラムの表面上でドラッグして領域を選択し、すべてまたは複数の要素を選択することもできます。
同じタイプの多くの要素を編集または管理する必要がある場合、「すべて選択」オプションを使用します。
同じタイプの要素をすべて選択するには、次のようにします。
必要なタイプのオブジェクトを選択します。
ポップアップ・メニューから「このタイプをすべて選択」を選択します。
要素グループを選択し、特定の要素を除外する場合、「選択解除」オプションを使用します。要素を1つずつ選択するより簡単です。
選択した要素グループから、要素の選択を解除するには、次のようにします。
[Ctrl]キーを押したままの状態にします。
ダイアグラム上で、選択を解除する要素をクリックします。
要素のグループ化により、複数の要素を1つのグループとしてロックできます。これは集合コンテナになります。
ダイアグラム上の要素をグループ化するには、次のようにします。
必要に応じて、ダイアグラムの注釈を開きます。「コンポーネント」ウィンドウで、「グループ」をクリックします。
ダイアグラム上の、要素をグループ化する範囲の角にポインタを置き、マウス・ボタンを押したままの状態にします。
その部分にマウス・ポインタを移動します。
オブジェクトを完全に囲んだら、マウス・ボタンを放します。
「グループの管理」機能を使用して要素をグループに追加またはグループから削除、要素を他のグループへ移動、またはグループを他のグループに追加または他のグループから削除します。
ダイアグラム上でグループ化された要素を管理するには、次のようにします。
管理するグループを選択します。
右クリックして、「グループの管理」を選択します。
要素をグループに追加、またはグループから削除するには、[Shift]キーを押しながら目的の場所まで要素をドラッグする方法もあります。
次のいずれかの方法で「プロパティ」ダイアログを開きます。
ダイアグラムで要素をダブルクリックします。
または
ダイアグラム上の要素を選択し、ポップアップ・メニューから「プロパティ」を選択します。
「ウィンドウ」→「プロパティ」を選択して、「プロパティ」ウィンドウを開きます。「プロパティ」ウィンドウには、ビジュアル・プロパティとセマンティクス・プロパティの両方が表示されます。
ダイアグラム要素を選択します。
変更するプロパティを選択します。
「プロパティ」ウィンドウの右側から、コントロールを選択し、値を変更します。(コントロールには、編集ボックス、ドロップダウン・リスト、チェック・ボックスなどがあります。)
注意: これらのプロパティは、すべての要素において有効であるわけではありません。 |
ダイアグラム上の要素(複数可)を選択します。
次に、「プロパティ」ウィンドウ(「ウィンドウ」→「プロパティ」)の「グラフィック・オプション」タブで、現在の色(またはフォント・タイプのボックス)を選択し、必要な変更を行ってから[Enter]を押します。
または
ツールバーでフォント・タイプ、フォント・サイズ、または色のボックスを選択し、必要な変更を行います。
または
ポップアップ・メニューから「ビジュアル・プロパティ」を選択し、必要な変更を行います。
「プリファレンス」ダイアログを使用して、ダイアグラムに追加する要素のデフォルトのフォントと色を定義します。
ダイアグラムに追加されるダイアグラム要素の色またはフォントを変更するには、次のようにします。
「ツール」→「プリファレンス」を選択し、「ダイアグラム」を選択します。ダイアグラム・タイプを選択した後、(ドロップダウン・ボックスの「次のプリファレンスを編集」から)変更する要素タイプを選択します(図5-3)。
必要な変更を行います。
「プリファレンス」ダイアログを使用して、要素間でプリファレンスをコピーできます。
ビジュアル・プロパティを要素にコピーして貼り付けるには、次のようにします。
コピーするプロパティを持つ要素を選択します。
右クリックして、「ビジュアル・プロパティ」を選択します。
右クリックして「グラフィック・オプションの貼付け」を選択します。
要素のサイズを変更するには、要素が目的のサイズになるまでグラッブ・バーをドラッグします。初期ノードや終了ノードなど、一部のダイアグラム要素はサイズを変更できません。
一部の要素タイプには内部グラッブ・バーもあり、要素を選択するとそれが表示されます。内部グラッブ・バーは、ダイアグラム要素内のコンパートメントのサイズを変更する際に使用します。
ダイアグラム要素がダイアグラムの表示端に向かってサイズ変更されると、ダイアグラムは自動的にスクロールします。要素がサイズ変更され、ダイアグラム上から離れると、新しいダイアグラム・ページが追加されます。
ダイアグラム要素をサイズ変更するには、次のようにします。
サイズを変更する要素を選択します。
要素の任意のグラッブ・バーにポインタを置き、マウス・ボタンを押したままの状態にします。グラッブ・バー上に置くと、ポインタは先頭が二重になった矢印として表示されます。
要素のサイズが変更されるまでグラッブ・バーをドラッグし、マウス・ボタンを放します。
ダイアグラム上で要素をドラッグする方法が、最も簡単に要素を移動できる方法です。より広い距離で要素を移動するには、切り取って貼り付けるという方法を取ります。ダイアグラム要素がダイアグラムの表示端に向かって移動した場合、ダイアグラムは自動的にスクロールされます。要素が移動してダイアグラム上から離れると、新しいダイアグラム・ページが追加されます。
ダイアグラム要素を移動するには、次のようにします。
移動する要素(複数可)を選択します。
要素にポインタを置き、マウス・ボタンを押したままの状態にします。
選択した要素を、新しい位置までドラッグします。
マウス・ボタンを放します。要素が他の要素に重なる場合は、お互いに重なって表示されます。要素を右クリックし、「最前面へ移動」を選択します。
「編集」→「元に戻す[...]」を選択するか、「元に戻す」アイコンをクリックすることにより、最後のグラフィック操作を元に戻し、やり直すことができます。グラフィック操作は、ダイアグラム上の要素の外観を変更する、次のような操作です。
ダイアグラムの要素の切取りおよび貼付け。
ダイアグラム要素の位置およびサイズの変更。
ダイアグラム要素のフォント、色およびフォント・サイズの変更。
要素のプロパティの変更など、純粋にグラフィック上の変更ではない変更をダイアグラム要素に行った場合、取り消すことはできません。要素のプロパティを変更した場合、その前に行ったグラフィック上の変更も取消が不可能になります。
アクションのやり直しを実行するには、「編集」→「やり直し[...]」を選択するか、「やり直し」アイコンをクリックします。
ダイアグラムには、階層、対称、グリッドおよび行の各スタイルがあります。ダイアグラム内の要素も、レイアウト・スタイルをカスタマイズできます。ダイアグラムの外観をカスタマイズするためのプリファレンスが数多く用意されています。これら大部分のプリファレンスは、図5-4で示されているように、「ツール」→「プリファレンス」→「ダイアグラム」(ダイアグラム・タイプ)で表示される様々な「プリファレンス」ダイアログを使用して設定できます。新しいダイアグラムに対する特定のプリファレンスを設定するには、全般プリファレンス・ダイアログから「次のプリファレンスの編集」を選択します。全般プリファレンス・ダイアログでは、そのタイプのすべてのダイアグラムに対するプリファレンスを設定できます。右クリックして、「ビジュアル・プロパティ」を選択すると、編集ウィンドウに現在表示されているダイアグラムのプリファレンスを編集できます。
階層レイアウトは、図5-5に示されているように、汎化構造と、定義された方向のエッジに基づいてダイアグラム要素を階層的に配置します。ノード間は、最短ルートでエッジが引かれます。他のノードに連結されていないダイアグラム上のノードは、グリッド・レイアウトでレイアウトされます。階層レイアウトは、上から下、下から上、左から右、右から左の4種類の方向で使用できます。
対称レイアウトでは、図5-6に示されているノード間のエッジに基づいて、ダイアグラム要素が対称的に位置合せされます。特定の状況では、対称レイアウトにより中央のノードの周囲に放射状レイアウトでノードが配置されます。他のノードに連結されていないダイアグラム上のノードは、グリッド・レイアウトでレイアウトされます。
直交ダイアグラムには、図5-7に示されているように、階層と非階層の要素が表示され、位置合せされたコンポーネントの端がすべて同じ方向になります。クラス図の場合、汎化の各階層を位置合せして表すレイアウトが作成されます。
グリッドは、図5-8に示されているように、左から右への行または上から下への列でノードを直線的にレイアウトしたグリッド・パターンで、ダイアグラム要素をレイアウトします。ノードは、左上のノードから開始します。
レイアウト・スタイルを使用するには、ダイアグラムのポップアップ・メニューを開いて「図形のレイアウト」を選択するか、図5-9のようにダイアグラムの「レイアウト・オプション」ドロップダウンを使用します。
ダイアグラムで要素をレイアウトするには、次のようにします。
次のいずれかを選択します。
ダイアグラム上の個々の要素を選択します。
ダイアグラムのすべての要素をレイアウトする場合は、ダイアグラム上をクリックします。
コンテナ要素内のすべての要素をレイアウトする場合は、コンテナ要素を選択します。
ダイアグラム・ツールバーで、ドロップダウン・リストから必要なレイアウト・スタイルを選択します(図5-9)。
選択した要素がダイアグラム上にレイアウトされた後も、ダイアグラム上の任意の場所にまとめて移動できるように、その要素は選択された状態になっています。
ダイアグラムの新しい要素のレイアウトを設定するには、「表示」→「プロパティ」ウィンドウを選択します。
ダイアログ上の要素のデフォルト・レイアウトを設定するには、「ツール」→「プリファレンス」→「ダイアグラム」に移動します。
ダイアグラムは、ダイアグラム上にグリッドが表示されていない場合でも、一番近いグリッド線に自動的に合せることができます。ダイアグラム上のグリッド・セルは正方形で、このセルの高さおよび幅両方の変更には、値が1つのみ必要です。デフォルトでは、アクティビティ図上の要素はグリッドに合せられていません。デフォルト・ダイアグラム・グリッドの表示と動作を設定するには、「ツール」→「プリファレンス」に移動し、「ダイアグラム」を選択します。ここから、「グリッドの表示」を選択してグリッドを表示するか、「グリッドに合せる」チェック・ボックスを選択して、要素をグリッドに合せることができます。要素をグリッドに合せる際に、グリッドを表示する必要はありません。
ダイアグラムのグリッド表示と動作を現在のダイアグラムに定義するには、次のようにします。
ダイアグラム上をクリックします。
「表示」→「プロパティ」ウィンドウで、「グリッドの表示」または「グリッドに合せる」を選択します。
ダイアグラム要素を、上詰め、下詰めなど、特定のポイントに合せて間隔調整して配置できます。要素が配置される際、選択した要素の中で垂直軸および水平軸から最も離れた要素が、境界として使用されます。効果的に配置するには、選択範囲にある最も離れた要素を移動してから、要素を再配置します。
ダイアグラム要素を配置するには、次のようにします。
3つ以上のダイアグラム要素を選択し、「ダイアグラム」→「配置」を選択します。
要素の配置方法を次のように選択します。
水平方向の配置を、「なし」、「左揃え」、「中央揃え」、「間隔調整」、「右揃え」から選択します。
垂直方向の配置を、「なし」、「上詰め」、「中央揃え」、「間隔調整」、「下詰め」から選択します。
「OK」をクリックします。
要素は垂直または水平に位置合せできます。また、要素の垂直間隔および水平間隔が均等になるように、要素の位置を変更できます。
要素の位置合せとサイズ変更は、次のようにします。
2つ以上の要素を選択します。「ダイアグラム」→「位置合せ」を選択します。
次のうちから選択します。
水平方向の位置合せを選択します。
垂直方向の位置合せを選択します。
選択した要素のサイズを設定する場合は、「サイズ調整」チェック・ボックスを使用します。
選択したすべての要素の幅を揃えるには、「同じ幅」を選択します。変更後の要素の幅は、選択した要素の平均の幅になります。
選択したすべての要素の高さを揃えるには、「同じ高さ」を選択します。変更後の要素の高さは、選択した要素の平均の高さになります。
「OK」をクリックします。
ダイアグラム上の1つの端または任意の数の端を非表示にします。ダイアグラム上で非表示になっている端も「構造」ウィンドウには表示され、名前に「(非表示)」が追加されます。非表示の端がある場合、個別または同時に再表示できます。
1つまたは複数の端を非表示にするには、次のようにします。
非表示にするダイアグラムの端を選択します。(特定のタイプの端をすべて選択する場合は、1つの端を右クリックして「このタイプをすべて選択」を選択します。)
右クリックして、「選択した図形の非表示」を選択します。
「構造」ウィンドウに移動して、非表示にする端(複数可)を選択し、右クリックして、「図形の非表示」を選択することもできます。
現在表示されている要素に関連するクラスおよびインタフェースを、ダイアグラムに取り込むことができます。これには、選択したクラスまたはインタフェースによって拡張、実装または参照されているクラスまたはインタフェースが含まれます。
次のオプションから選択して、ダイアグラム上に関連クラスを表示します。
ダイアグラム上でクラスまたはインタフェースを選択し、「モデル」→「表示」→「関連する要素」を選択します。
ダイアグラム上でクラスまたはインタフェースを右クリックし、「表示」→「関連する要素」を選択します。
ダイアグラムの端は、斜線または直線のスタイルでレイアウトできます。斜線は、任意の角度で移動できます。直線は、一連の直角として常に表示される線です。
「ツール」→「プリファレンス」→「ダイアグラム」→「クラス」で「線のスタイル」を使用して、各ダイアグラムの端に対するデフォルトの線スタイルを設定したり、アソシエーション用のプリファレンスを編集したりできます。図5-10を参照してください。
ダイアグラム・タイプの全インスタンスに対して線のスタイルを設定することもできます。1つの端の線のスタイルが斜線に変わり、線のスタイルを直線から斜線に変更した場合、ダイアグラム上には変更は表示されませんが、後でダイアグラム上の線を任意の角度で新しい位置に移動できるようになります。
個別に端を選択して、その線のスタイルを変更できます。個別の線を斜線から直線に変更する場合、線は直角を使用して再描画されます。個別の線を直線から斜線に変更する場合、線は変更されませんが、後で任意の角度で線(または線の一部)を再配置できます。
線が交差するときのスタイルも、ブリッジ交差とトンネル交差から選択できます。ブリッジを選択すると、線が交差する場所に2本の平行線が作成されます。トンネルを選択すると、交差する場所に半円が作成されます。デフォルトのスタイルは、線が交差する2本の線を使用した標準の交差です。
ノードは表示/非表示が可能です。ノードは要素の内外に作成できます。
「コンポーネント」ウィンドウを使用してノードを作成します。
ダイアグラムのノードを作成するには、次のようにします。
ダイアグラムの「コンポーネント」ウィンドウに表示されるノード・タイプから、作成するノードのタイプを選択します。
ノードを作成するダイアグラムをクリックするか、コンポーネント・パレットからドラッグします。これで、ノードがデフォルトのサイズで追加されます。
または
ノードを置く場所のいずれかの隅でマウス・ボタンをクリックして押したままにし、対角上までノードの枠線をドラッグしてからマウス・ボタンを放します。
新しいノード上でデフォルトの要素名がハイライト表示されたら、ノードの名前を入力します。
要素は、他のダイアグラム要素の内部ノードとしてダイアグラム上に表現できます。
内部ノードを使用して次の要素を作成できます。
内部クラスおよび内部インタフェース
リレーションの使用方法
ダイアグラム要素に内部ノードを作成するには、次のようにします。
内部ノードを作成するノードをダイアグラム上で選択します。
「ダイアグラム」→拡張表示を選択し、ノードの拡張ビューを表示します。
拡張ボックス内に内部ノード用のノードを作成するか、「アプリケーション」ウィンドウまたはダイアグラムから適切なノードをドラッグし、内部ノードを作成するために拡張したノード内にドロップします。
ダイアグラム要素を選択し、次のいずれかを選択します。
「ダイアグラム」→「表示モード」→「圧縮」
「ダイアグラム」→「表示モード」→「シンボル」
「ダイアグラム」→「表示モード」→「拡張済」
ノートは、ダイアグラムまたはダイアグラム上の要素に対するコメントの追加に使用します。ノートは、1つ以上の要素に添付できます。ノートは、個別のファイル・システム要素としてではなく、現在のダイアグラムの一部として格納されます。図5-13に示されているように、「コンポーネント」ウィンドウにはノート・オプションがあります。
「コンポーネント」ウィンドウの「ダイアグラムの注釈」機能を使用して、ダイアグラムにノートを追加します。
ダイアグラムにノートを追加するには、次のようにします。
「コンポーネント」ウィンドウの「ダイアグラムの注釈」セクションで、「ノート」アイコンをクリックします。
デフォルト・サイズでノートを作成する場合は、ダイアグラムをクリックしてノートを作成します。
または
異なるサイズでノートを作成する場合は、ダイアグラムをクリックし、ノート・ボックスを必要なサイズまでドラッグしてからマウス・ボタンを放します。
ノートのテキストを入力し、ダイアグラム上をクリックします。
「コンポーネント」ウィンドウの「ダイアグラムの注釈」機能には、ダイアグラム要素にノートを添付するための添付コンポーネントが含まれています。
ダイアグラムの要素にノートを添付するには、次のようにします。
「コンポーネント」ウィンドウの「ダイアグラムの注釈」セクションで、「添付」アイコンをクリックします。
ノートをクリックします。
ノートを添付する要素をクリックします。
JDeveloperでは、データベース表、Javaクラスおよびインタフェースに対するUML変換がサポートされています。これらの変換機能を使用すると、UMLなどプラットフォームに依存しないモデルから、Javaのようなプラットフォーム固有のモデルを生成できます。同じソース・モデルとターゲット・モデルを使用して、変換を何度でも実行できます。JavaクラスからUMLへの逆変換の機能もあります。
変換には、次の方法があります。
元の要素と同じダイアグラム上の変換。
変換される要素用に作成された新規ダイアグラム上の変換。
現在のプロジェクトのみで、ダイアグラムに表示されない変換。
UMLモデリング・ツールを使用すると、UMLクラス・モデルを作成してオフライン・データベースに変換する、またはその逆に変換することができます。
UML、Javaクラスまたはインタフェースを変換するには、次のようにします。
UMLモデリング・ツールを使用すると、UMLクラス・モデルを作成してオフライン・データベースに変換する、またはその逆に変換することができます。ダイアグラム上のすべての要素を変換する場合は、「ファイル」→「新規」→「ギャラリから」→「データベース・ダイアグラム」→「オフライン・データベース・オブジェクト」→「UMLクラス・モデルからのオフライン・データベース・オブジェクト」を選択します。
UMLクラス図をオフライン・データベースに変換するには、次のようにします。
変換するダイアグラムを開きます。
変更する要素を選択します。右クリックして、「変換」を選択します。
次のいずれかを選択します。
モデルのみ。UMLクラス・モデルに基づくオフライン・データベース・モデルが、現在のプロジェクトの「アプリケーション」ウィンドウに作成されます。
同一ダイアグラム。UMLクラス図に基づくオフライン・データベース・モデルが作成されます。オフライン・データベース・モデルは、次の場所で表示できます。
「アプリケーション」ウィンドウ。
UMLクラス図(モデル化された表として)。
新規ダイアグラム。UMLクラス図に基づくオフライン・データベース・モデルが作成されます。オフライン・データベース・モデルは、次のどちらでも表示できます。
「アプリケーション」ウィンドウ。
新規データベース・ダイアグラム(モデル化された表および制約として)。
UMLをオフライン・データベースへを選択します。
「OK」をクリックします。
オフライン・データベース・ダイアグラムをUMLに変換するには、次のようにします。
変換するオフライン・データベース・オブジェクト(複数可)を選択します。
右クリックして、「変換」を選択します。次のいずれかのオプションを選択します。
モデルのみ。データベース・スキーマに基づくUMLクラス・モデルが、現在のプロジェクトの「アプリケーション」ウィンドウに作成されます。
同一ダイアグラム。オフライン・スキーマに基づくUMLクラス図が作成されます。新しいクラスは、次のどちらでも表示できます。
「アプリケーション」ウィンドウ。
UMLクラス図(変換された各データベース表のクラスとして)。
新規ダイアグラム。ウィザードが完了すると、オフライン・データベース・スキーマに基づくUMLクラス図が作成されます。クラスは、次のどちらでも表示できます。
「アプリケーション」ウィンドウ(新しいUMLクラスとして)。
新規クラス図(変換された各データベース表のクラスとして)。
図5-16のように、「変換」ダイアログが表示されます。「オフライン・データベース・オブジェクトをUMLへ」を選択します。
「OK」をクリックします。
UMLからオフライン・データベース・オブジェクトを作成するには、次のようにします。
「アプリケーション」ウィンドウで、変換するUMLクラスを含むプロジェクトを選択します。
「ファイル」→「新規」→「ギャラリから」を選択します。
「データベース層」で、「項目」→ 「UMLクラス・モデルからのオフライン・データベース・オブジェクト」を選択します。「新規ギャラリ」からウィザードを起動した場合、変換プロセス中に作成されるオフライン・データベース・オブジェクトは、「アプリケーション」ウィンドウでのみ使用可能になります。
変換中には、次の選択肢があります。
UML名をオフライン・データベース名に変換する方法。
UMLクラス階層と多対多のアソシエーションの処理方法。
ブジェクトが所属するスキーマ。
表示するログ・メッセージ。どの変換メッセージをログに記録するか、およびメッセージをログ・ウィンドウとログ・ファイルのどちらに送信するかを選択できます。
図5-17のように、「UMLクラス・モデルからのオフライン・データベース・オブジェクト」ウィザードが開きます。変換するUMLクラスとアソシエーションを選択します。
「終了」をクリックします。オフライン・データベース・オブジェクトが「アプリケーション」ウィンドウに作成されます。
ログに記録する変換メッセージのタイプを選択するには、次のようにします。
「UMLクラス・モデルからのオフライン・データベース・オブジェクト」ウィザードを起動します。
「ロギング・オプションの設定」ページで、ログ・メッセージを表示する場所と、ログに記録するアクションのタイプを選択します。
変換を実行する前に変更内容を確認するオプションがあります。また、ログに記録される変換メッセージの種類と、ログ・ウィンドウとログ・ファイルのどちらに表示するかを指定できます。
汎化の変換
「UMLクラス・モデルからのオフライン・データベース・オブジェクト」ウィザードの「クラス・オプションの設定」ページでは4つのタイプの汎化を指定できます。
オプションは次のとおりです。
ルート・クラス変換
リーフ・クラス変換
全クラスを変換して汎化
全クラスを変換、外部キーを作成
図5-18のように、2つのルート・クラスと3つのリーフ・クラスを考えます。
「ルート・クラス変換」のオプションを選択した場合、図5-19に示すように、ルート・クラスがオフライン表に変換され、階層における子孫クラスの属性と外部キーもすべて変換されます。識別子列を作成するオプションもあります。識別子列には、特定の行に対してどのサブクラスをインスタンス化するかを判読するために、永続層に対するマーカー値が含まれます。
「汎化クラスから継承し、リーフ・クラスのみを変換します」のオプションを選択した場合、図5-20に示すように、リーフ・クラスがオフライン表に変換され、先祖クラスの列と外部キーを継承します。
「汎化クラスから継承し、すべてのクラスを変換します」のオプションを選択した場合、変換セットのすべてのクラスに対してオフライン表が作成されます。図5-21に示すように、各表は先祖表から列と外部キーを継承しますが、その点を除けば独立しています。
「全クラスを変換、外部キーを作成」のオプションを選択した場合、変換セットのすべてのクラスに対してオフライン表が作成されます。図5-22に示すように列と外部キーは継承されず、親表(複数可)に対して外部キーが作成されます。
ダイアグラムはダイアグラム・ファイルと同じようにディスクに格納されます。ダイアグラム・ファイルは、ダイアグラムに表示される要素を参照し、その要素の表示に関する情報(サイズ、色、フォント、各種プロパティの表示など)を含んでいます。ダイアグラム・ファイルは、ダイアグラムを格納するパッケージのフォルダの中に格納され、プロジェクト設定で指定したモデル・パスに格納されます。ダイアグラムのリンクと依存性もダイアグラム・ファイルに格納されます。
モデル・パスを設定するには、「アプリケーション」→「デフォルト・プロジェクト・プロパティ」→「プロジェクトのソース・パス」→「モデラー」を選択します。
Javaクラスなどのダイアグラム要素はダイアグラム・ファイルで参照されますが、その定義と実装の詳細は各要素の実行ファイルにのみ格納されます。各要素のダイアグラムでの詳細(位置、色、サイズなど)はダイアグラム・ファイルに格納されますが、要素の個別のモデル定義は格納されません。
「新規ギャラリ」で作成するUML要素は、データベース・ウィンドウに表示され、ダイアグラムから独立して作成された後、ダイアグラム上にドロップできます。
「新規ギャラリ」を使用して、既存のダイアグラムがない状態でUML要素を作成します。
ダイアグラムから独立したUML要素を作成するには、次のようにします。
「アプリケーション」ウィンドウでプロジェクトを選択します。
「ファイル」→「新規」を選択します。新規ギャラリが表示されます。
「カテゴリ」パネルで「一般」ノードを開き、「UML」ノードを選択します。「項目」パネルにUML要素がリストされます。
「項目」パネルで、作成するUML要素を選択し「OK」をクリックします。選択したUML要素の「プロパティ」ダイアログが開きます。
「プロパティ」ダイアログをすべて入力し、「OK」をクリックします。UML要素が「アプリケーション」ウィンドウに追加されます。
他のモデリング・ソフトウェアを使用して作成したモデルは、そのモデルがUML 2.1.1から2.4.1に準拠している場合は、XML Metadata Interchange (XMI)ファイルを使用してJDeveloperにインポートできます。
XMI仕様では、メタモデルを使用してUMLモデルをXMLドキュメントに変換する方法が記述されています。
インポートには、次の制約事項があります。
ダイアグラムはインポートできません。
XMIには1つのファイルのみ含まれている必要があります。XMIによって参照されるプロファイルはすべて、「ツール」→「プリファレンス」→「UML」→「プロファイル」を使用してインポート前にJDeveloperに登録しておく必要があります。プロファイルは個別のファイルにある必要があります。詳細は、第5.5.3項「UMLプロファイルの使用」を参照してください。
XMIからUMLモデルをインポートするには、次のようにします。
「アプリケーション」ウィンドウで空のプロジェクトを選択し、「ファイル」→「インポート」を選択します。
「XMIからUML」を選択し、「OK」をクリックします。ダイアグラムは、インポートされたモデルから自動的に作成されます。図5-24に示すように、このオプションはプロセス中にダイアログで示されます。
「UMLをXMIからインポート」ダイアログを完了します。
UMLモデルをXMIとしてエクスポートするには、次のようにします。
プロジェクトを選択します。
「ファイル」→「エクスポート」を選択します。
インポート中には、「XMIインポート」ログで頻繁に見られる一般的なエラーと警告があります。これらの多くは、いくつかの単純な手順のみで簡単に解決できます。詳細は、表5-1を参照してください。ログの項目をダブルクリックすると、問題のある要素に移動します。多くの場合、ネームスペースや標準オブジェクト参照が正しくないことが問題の原因です。
他のXMLと同様、有効なファイルの構造は、xmlnsネームスペースによって参照されるXMLスキーマによって指定されます。XMLは、オブジェクトまたはその親要素オブジェクトの値を表す要素と、値である属性とで構成されます。値が他のオブジェクトへの参照である場合もあり、たとえばHTMLの場合にはhrefとして表されます。
表5-1 インポート時の一般的なエラー・メッセージ
エラー・タイプ | エラー詳細 | 解決内容 |
---|---|---|
プロファイルの欠落 |
|
UMLには、'profile'で追加のXMLスキーマを指定できる拡張メカニズムがあります。前述のメッセージは、関連するプロファイルが登録されていなかったことを示しています。プロファイルを登録するには、第5章「UMLプロファイルの使用」を参照してください。 |
XMIのバージョンが無効 |
エラー(2,360): 2.0はhttp://schema.omg.org/spec/XMI/2.1の正しいバージョンではありません |
このメッセージは、xmi:version属性とxmlns:xmiネームスペースの間の不一致が原因です。xmi:versionは2.1である必要があります。 |
UMLネームスペースが無効 |
警告(2,356): http://schema.omg.org/spec/UML/2.1.1/Unknownはネームスペースとして認識されていません |
このメッセージは、xmlns:umlネームスペースがhttp://schema.omg.org/spec/UML/2.1.1/uml.xmlである必要があることが原因です。 |
L2標準プロファイル・ネームスペースが無効 |
|
これは、標準プロファイルがすでにツールに登録されている場合です。xmlnsネームスペースがhttp://schema.omg.org/spec/UML/2.1.1/StandardProfileL2.xmi and the reference、参照がhttp://schema.omg.org/spec/UML/2.1.1/StandardProfileL2.xmi#_0となるように、XMIを変更してください。 |
L3標準プロファイル・ネームスペースが無効 |
|
これは、標準プロファイルがすでに登録されている2つ目です。プロファイルの参照が正しくない場合、メッセージはL2プロファイル・ネームスペースメッセージの場合と似ています。正しいネームスペースはhttp://schema.omg.org/spec/UML/2.1.1/StandardProfileL3.xmi、正しい参照はhttp://schema.omg.org/spec/UML/2.1.1/StandardProfileL3.xmi#_0です。 |
標準のデータ型参照が無効 |
エラー(7,75): 参照しようとした要素http://schema.omg.org/spec/UML/2.1.1/Unknown#Stringが欠落しています |
|
UMLプロファイルは、UMLメタモデルのサブセットです。これらのサブセットは、UMLメタデータで指定されているルール以上の整形式のルールを指定します。整形式のルールとは、標準のUMLメタモデル仕様で使用される条件です。UMLメタモデル仕様には、メタモデル要素の定義に有効なUMLオブジェクト制約言語(OCL)で記述された一連の制約が記されています。JDeveloperには、UMLの標準プロファイルがいくつか付属しています。
カスタム・プロファイルを追加するには、「ツール」→「プリファレンス」→「UML」→「プロファイル」に進んで「追加」をクリックします。図5-27に示されているように、プロファイル・ページには、アプリケーションで使用できる現在のプロファイルのすべてが表示されます。カスタム・プロファイルを追加したら、そのプロファイルを選択して、「編集」をクリックすることにより、プロファイルのURI (Universal Resource Indicator)を編集します。URIは、アプリケーションがプロファイルを探す場合を示します。UMLプロファイルの詳細は、「OMG Catalog」(http://www.omg.org/technology/documents/profile_catalog.htm
)内のサンプル・プロファイルを参照してください。
UML変換を実行する際、プロファイルを選択して、UML変換のステレオタイプをターゲット書式に適用します。UMLパッケージを変換する際、使用するプロファイル、および生成されたオブジェクト(クラスまたはパッケージ)のコール元をシステムに伝える必要があります。
UMLプロファイルをパッケージに適用するには、次のようにします。
「アプリケーション」ウィンドウでUMLパッケージを右クリックし、「プロパティ」を選択し、UMLパッケージの「パッケージ」の「プロパティ」ダイアログを開きます。
「パッケージ」の「プロパティ」ダイアログで、「プロファイル・アプリケーション」を選択します。「追加」をクリックし、UMLプロファイルを選択します。
「パッケージ」の「プロパティ」ダイアログで、「パッケージ化要素」を選択します。
「クラス」ノードを展開し、「適用済ステレオタイプ」を選択して「追加」をクリックします。使用可能なプロパティは、使用するUMLプロファイルに応じて異なります。図5-28に、DatabaseProfileというUMLプロファイルの「変換後の名前」プロパティを示します。
JDeveloperにはDatabaseProfileと呼ばれるUMLプロファイルが付属しています。このプロファイルを使用すると、オフライン・データベース・モデルに変換されるときのクラス・モデルに対する処理を指定できます。UMLプロファイルの詳細は、第5.5.3項「UMLプロファイルの使用」を参照してください。
DatabaseProfileには、要素の変換方法を制御するステレオタイプのプロパティが含まれます。このプロファイルに含まれるステレオタイプとそのプロパティは、表5-2のとおりです。
表5-2 DatabaseProfileのステレオタイプとプロパティ
ステレオタイプ | 適用先 | オフライン・データベースのタイプ | プロパティ | 説明 |
---|---|---|---|---|
データベース・パッケージ |
UML::Package |
SCHEMA |
変換後の名前 |
|
データベース・クラス |
UML::Class |
TABLE |
変換後の名前 |
|
データベース属性 |
UML::Property |
COLUMN |
変換後の名前 |
UMLプロパティは、"attribute"またはアソシエーションの端です。 |
データベース・データ型 |
UML::Type |
n/a |
DatatypePrimary |
メタモデルで、TypeはClass、Association、PrimitiveTypeなどを含む広範囲の要素のスーパークラスです。このステレオタイプはすべてに適用できます。プロパティ(属性)が特定タイプの場合は常に、トランスフォーマによって読取りが可能です。 |
データベース・アソシエーション |
UML:: |
CONSTRAINT |
変換後の名前 外部キー・ネーミング・ルール |
|
データベースの汎化 |
UML:: |
CONSTRAINT |
変換後の名前 外部キー・ネーミング・ルール |
特定のトランスフォーマは汎化から外部キーを作成し、このステレオタイプがここで適用されます。 |
属性(プロパティ)は、表5-3を参照してください。
表5-3 DatabaseProfileのステレオタイプのプロパティ
プロパティ | 説明 | データ型 |
---|---|---|
変換後の名前 |
変換されるデータベース・オブジェクトの名前。ブランクのままにすると、デフォルトのネーミング・ルールが適用されます。 |
文字列 |
データ型 |
データ型のSQLテキスト。 デフォルト、ANSI、Oracleと、サポートされるその他のデータベース・タイプなど様々なデータ型があります。 |
文字列 |
外部キー・ネーミング・ルール |
アソシエーションから外部キーに名前を付けるときに使用するルール。UML名を使用するか、databaseNameプロパティを使用するか、または表名からデフォルト名を導出します。 |
両方の表 |
プライマリ |
変換された列が親表の主キーの一部であることを示すフラグ。 |
ブール |
DatabaseProfileを使用してクラス・モデルを変換するには、次のようにします。
「アプリケーション」ウィンドウで右クリックして「プロパティ」を選択し、UMLパッケージpackage.uml_pck
の「パッケージ」の「プロパティ」ダイアログを開きます。
ヘルプを参照するには、[F1]を押すか、「パッケージ」の「プロパティ」ダイアログ内で「ヘルプ」をクリックしてください。
「パッケージ」プロパティ・ダイアログで「プロファイル・アプリケーション」を選択し、「追加」をクリックします。
図5-29に示すように、「プロパティ」ウィンドウで、使用可能なプロファイルのリストからDatabaseProfile
を選択します。パッケージをオフライン・データベース・スキーマに変換した後で使用する名前を指定します。「適用済ステレオタイプ」ノードを選択し、「追加」をクリックします。「プロパティ」に、「変換後の名前」
という新しいプロパティがリストされます。名前を入力します。「OK」をクリックします。これで、図5-30に示されているように、新しいファイルDatabaseProfile.uml_pa
が「アプリケーション」ウィンドウに加わりました。
データベース・プロファイル・ファイルを確認するには、「アプリケーション」ウィンドウで右クリックし、「プロパティ」を選択します。ダイアログには、変換に使用されるプロファイルが表示されます。「OK」をクリックしてダイアログを閉じます。
これで、プロジェクトの様々な要素にステレオタイプを適用できるようになります。図5-30に示した例では、Employee.uml_cla
を右クリックして「プロパティ」を選択し、Employeeクラスにステレオタイプを適用しています。これにより、この要素の「クラスのプロパティ」ダイアログが開きます。
変換後に使用する名前を指定するには、「適用済ステレオタイプ」を選択し、「追加」をクリックして「データベース・クラス」
を選択します。図5-31のように、「プロパティ」で、「変換後の名前」の隣に値を入力します。
適用するステレオタイプを設定後、第5.3.6.2項「UMLとオフライン・データベースの変換方法」の手順に従ってUMLクラス・モデルの変換に進むことができます。設定したDatabaseProfileのステレオタイプとプロパティが変換中に適用されます。
ステレオタイプは他の要素にも適用できます。たとえば、特定のクラスによって所有されている属性にデータ型と主キーを指定できます。同じ「クラスのプロパティ」ダイアログで、「所有された属性」を開いて、「追加」をクリックして、名前を入力することにより、既存の属性を選択するか、作成します。所有された属性のノードを開いて、「適用済ステレオタイプ」を選択し、「追加」をクリックします。図5-31では、このレベルで指定できる多くのデータ型、属性が主キーに変換されるかどうか、および変換後の名前を示しています。
DatabaseProfileで変換されるステレオタイプとプロパティの詳細は、表5-2「DatabaseProfileのステレオタイプとプロパティ」および表5-3「DatabaseProfileのステレオタイプのプロパティ」を参照してください。
プロファイル図は、カスタム・ステレオタイプ、タグ付けされた値および制約を定義することにより、手軽なUML拡張メカニズムを提供する構造ダイアグラムです。プロファイルにより、様々なプラットフォームとドメインに対するUMLメタモデルまたはモデル化されたビジネス・プロセスを調整できます。メタモデルのカスタマイズは、パッケージに適用されるプロファイルで定義されます。ステレオタイプは特定のメタクラスであり、タグ付けされた値は標準メタ属性であり、プロファイルは特定種のパッケージです。
標準UMLメタモデルのセマンティクスはプロファイルで定義されます。たとえば、Javaモデル・プロファイルで、明示的に各クラス・インスタンスにJavaクラス・ステレオタイプを割り当てることなく、クラスの汎化を単一継承に制限することができます。プロファイルは、動的にモデルに適用したり、除外したりできます。また、動的に組み合せて、複数のプロファイルを同時に同じモデルに適用することもできますが、プロファイル・メカニズムは、上級の拡張メカニズムではありません。既存のメタモデルを変更したり、MOFのように新しいメタモデルを作成することはできません。プロファイルは、特定のドメイン、プラットフォームまたはメソッド固有の構成による既存メタモデルの調整またはカスタマイズのみ可能です。メタモデルに適用される制約を除外することはできませんが、プロファイルを使用して新しい制約を追加することはできます。プロファイル図を作成するには、「新規ギャラリ」を使用します。「ファイル」→「新規」→「ギャラリから」→「プロファイル図」を選択します。
MOF (Meta-Object Facility)モデル・ライブラリ.jarファイルを作成して、プロジェクト内のUMLオブジェクトを別のプロジェクトで再利用できます。
MOFモデルJARファイルを作成するには、次のようにします。
アプリケーション・プロジェクトにモデル・ノードを選択します。
「新規」→「ギャラリから」→「デプロイメント・プロファイル」→「MOFモデル・ライブラリ」を選択します。「OK」をクリックします。
デプロイメント・プロファイルの名前を追加します。「OK」をクリックします。次のダイアログが表示されます。
「MOFモデル・ライブラリ」ダイアログで、JARファイルの場所を選択し、ダイアログを確定します。「OK」をクリックします。
プロジェクトを選択し、右クリックして、「デプロイ」→MyMOFLibraryを選択することにより、作成したJARに対する変更をデプロイします。プロジェクトにライブラリを追加する場合は、「ツール」→「ライブラリの管理」→「ライブラリ」→「新規」に移動して、MOFモデル・ライブラリのソース・パスを追加します。再デプロイする場合は、JARを新しい変更で更新できます。
ダイアグラムに表されるクラスの定義、クラスのメンバー、継承およびコンポジット関係は、クラスのJavaソース・コードから直接導出されます。これらはすべてJavaコードとして作成され、ダイアグラムに表示されます。ダイアグラムに表示されているクラスのソース・コードを変更、追加または削除した場合、これらの変更内容は、ダイアグラム上のこれらのクラスおよびインタフェースに反映されます。反対に、モデリングされたクラスに対する変更は、基礎となるソース・コードにも行われます。Javaクラス図上に表示されたコンポジット関係または参照に関する情報の中には、Javadocタグとしてソース・コードに格納されているものもあります。
Javaクラス図には、他のダイアグラム・タイプ(Oracle ADF Business Components、UML要素、Enterprise JavaBeansおよびデータベース・オブジェクト)の図形を含めることができます。
クラスは、クラス名と詳細を含む四角形として表されます。クラスは、圧縮、シンボルまたは拡張済のノードとして表示できます。表示プロパティを設定するには、「ツール」→「プリファレンス」→「ダイアグラム」→(「ダイアグラム・タイプ」)→「表示オプション」に進みます。
ダイアグラム上の要素の表示方法を変更することもできます。ダイアグラム上で、クラスおよびインタフェースはコンパートメントに分割されており、各コンパートメントには情報が1種類のみ含まれます。大きさが不足し、内容の全体を表示できない各コンパートメントには、省略記号(...)が表示されます。モデル化されたクラスのすべての属性を表示するには、クラスを右クリックして図形の高さの最適化を選択します。図5-33に、一般的なクラス図のレイアウトの例を示します。
すべての属性および操作には、可視性を表す記号が表示されます。可視性の記号には、Public (+)、Private (-)、Protected (#)および~ Packageがあります。
表5-4 クラス図の要素
要素 | 説明 |
---|---|
インタフェース |
インタフェースは、名前コンパートメントにキーワード≪interface≫が付いて表されます。インタフェースは、圧縮、標準または拡張済のノードとして表示できます。ネストされたクラスおよびインタフェースは、標準および拡張済のインタフェース内部でモデル化できます。 |
列挙 |
列挙は、有限の、通常は小さいセットの名前付きリテラルを持つデータ型です。列挙には、列挙の値を表す名前付き識別子のセットが含まれます。 |
1対*アソシエーション |
1対多アソシエーションは、クラス間の関係を定義します。ダイアグラム上では実線で表されます。 |
方向を定めた1対1アソシエーション |
「有向1対1アソシエーション」は、ダイアグラムでは、アソシエーションの方向を開いた矢印で指す実線として表示されます。 |
方向を定めた1対多アソシエーション |
「有向1対*アソシエーション」は、ダイアグラムでは、複数のアソシエーションの方向を開いた矢印で指す実線として表示されます。 |
有向コンポジット集約 |
ダイアグラムでは、アソシエーションの方向に開いた矢印と、塗りつぶされたダイアモンド型の付いた実線でアソシエーションの発生側に表示されます。 |
汎化 |
分類子間の汎化関係を定義します。ダイアグラムでは、特殊分類子またはインタフェースの方向を白抜きの矢印で指す実線として表示されます。 |
実現 |
インタフェースがクラスによって実現される位置を定義します。ダイアグラム上に破線と実装されているインタフェースに向けた白抜きの矢印で表されます。 |
クラス |
オブジェクトを表します。クラスは、オブジェクト指向アプリケーションの主要な構築ブロックを形成します。垂直に重ねた3つのコンパートメントを含む四角形として、ダイアグラム上で表されます。 |
パッケージ |
システムを複数のパッケージに分割するために使用し、システムを簡略化してわかりやすくします。 |
データ型 |
データ型は、データ値を定義するモデル要素です。 |
プリミティブ・タイプ |
プリミティブ型またはプリミティブ・データ型は、ブール、バイト、小数、DateTime、Double、Float、Timeなどのデータ型です。 |
制約 |
制約は、システムの動作やソリューションをモデル化するときの自由度、または自由度の欠如です。 |
「プロパティ」ウィンドウを使用して、要素のプロパティを設定します。図5-34に示すように、各要素は一意のアイコンと説明で表されます。
クラスをダイアグラムにドラッグし、クラスとインタフェースを作成します。プロジェクト設定とデフォルト・プロパティのモデル・パスで指定されている場所に、要素が作成されます。(「アプリケーション」→「デフォルト・プロジェクト・プロパティ」。)パッケージをクリックしてパッケージをモデル化することもできます。モデル化されたパッケージを右クリックして「ドリル・ダウン」を選択すると、そのパッケージのダイアグラムが表示されます。
クラス・プロパティは、次のいずれかの方法でダイアグラム上にモデル化されたクラスとインタフェースに追加されます。
モデル化されたクラスまたはインタフェースをダブルクリックし、プロパティ・ダイアログにアクセスします。
クラスまたはインタフェースを右クリックし、「プロパティ」を選択します。
ネストされたクラスとネストされたインタフェースを作成するには、モデル化されたクラスまたはインタフェースにそれらを作成するか、インプレース作成(シンボル表示のみ)を使用して図形の表示設定を変更するか、またはクラスを右クリックして「表示モード」→「拡張済」を選択した後、拡張済ノード内部に別のクラスを作成します。
モデル化されたクラスとインタフェースに属性と操作を追加するには、次のいずれかの方法を使用します。
モデル化されたクラスまたはインタフェースをダブルクリックし、要素のプロパティ・ダイアログを使用して属性または操作を追加します。
クラスまたはインタフェースを右クリックして「プロパティ」を選択し、要素のプロパティ・ダイアログを使用して属性または操作を追加します。
ダイアグラム上の1つのクラスまたはインタフェースから、同じダイアグラム上の別のクラスまたはインタフェースに、既存の属性または操作をドラッグします。
クラスまたはインタフェースにおける属性または操作の順序を変更するには、画面で上下にドラッグします。属性または操作の「アルファベット順でソート」プロパティは、選択を解除する必要があります(「ツール」→「プリファレンス」→「ダイアグラム」→「クラス」→「次のプリファレンスを編集」: 「クラス」または「インタフェース」→「属性」または「操作」→「アルファベット順でソート」)。
ポップアップ・メニューを使用して、ダイアグラム上の属性および操作を表示したり非表示にしたりできます。
1つ以上の属性または操作を非表示にするには、次のようにします。
非表示にする属性または操作を選択します。
選択した項目を右クリックして、「非表示」→「選択した図形」を選択します。属性または操作を表示するには、「非表示のメンバーをすべて表示」を選択します。
汎化した構造をクラス図に作成するには、クラス・コンポーネント・ウィンドウで「汎化」アイコンを使用します。
クラスによってインタフェースを実現する場所に、ダイアグラムの「クラス」の「コンポーネント」ウィンドウで「実現」アイコンを使用してインタフェースをモデル化します。
「アソシエーション」アイコンを使用し、モデル化されたクラスとインタフェースの間で様々なアソシエーションを作成できます。アソシエーションは、モデリングされたアソシエーションをダブルクリックして、そのプロパティを変更することによって変更します。
Javaクラス、インタフェースまたは列挙をダイアグラム上に作成するには、そのダイアグラムに対するJavaの「コンポーネント」ウィンドウで「Javaクラス」アイコン、「Javaインタフェース」アイコンまたは「Java Enum」アイコンをクリックし、次に、そのクラスを作成するダイアグラムをクリックします。モデリングされたクラスまたはインタフェースのJavaソース・ファイルは、プロジェクトの設定で指定された位置に作成されます。
「Javaクラス」、「Javaインタフェース」、および「Java Enum」の各アイコンは、Javaクラスの名前および詳細を含む四角形として図に表示されます。Javaクラスおよびインタフェースはコンパートメントに分割されており、各コンパートメントに含まれている情報は1種類のみです。
大きさが不足し、すべての内容を表示できない各コンパートメントには、省略記号(...)が表示されます。すべてのフィールドおよびメソッドが表示されるようにモデリングされたクラスを表示するには、クラスを右クリックし、「図形サイズの最適化」、「高さと幅」を選択します。
ダイアグラム上のクラスの各タイプは、名前コンパートメントのステレオタイプにより識別されます。これは、デフォルトでは表示されません。
メンバー(フィールドおよびメソッド)には、可視性を表す記号が表示されます。可視性の記号には、Public (+)、Private (-)およびProtected (#)があります。可視性の記号が使用されていない場合、フィールドまたはメソッドの可視性はPackageになります。
様々なパッケージ、現在のアプリケーションまたはライブラリにあるプライマリ・クラスや内部クラスをダイアグラムに含めることができます。内部Javaクラスおよび内部Javaインタフェースは、それらを所有するクラスのメンバーとして定義します。そのため、これらのクラスはメンバー・クラスとも呼ばれます。
内部クラスおよび内部インタフェースは、ダイアグラム上のモデリングされたJavaクラスまたはJavaインタフェースの内部クラス・コンパートメントに表示されます。内部クラスにはClassという語が、内部インタフェースにはInterfaceという語が接頭辞として付き、可視性の記号とクラス名またはインタフェース名の間に挿入されます。
モデリングされたJavaクラスまたはインタフェースに内部クラスまたは内部インタフェースを作成するには、実装Javaコードに内部クラスを追加するか、既存のモデリングされたクラスの内部ノードとして新規Javaクラスまたはインタフェースを作成します。
内部Javaクラスおよび内部Javaインタフェースには、Javaクラス、Javaインタフェースまたはパッケージに含まれるものと同じ名前を付けることはできません。また、staticフィールドやstaticメソッドを含めることはできません。
ダイアグラムのJavaクラスのJavaクラス・コンポーネント・ウィンドウの様々な参照アイコンを使用して、ダイアグラムのクラスとインタフェースとの間に、これまでアソシエーションと呼ばれていた様々な参照をすばやく作成できます。モデリングされたJavaクラス間に作成された参照は、参照を実装するクラスのソース・コードではフィールドとして表されます。ダイアグラム上のコンポジット関係は、参照の方向で開いた実線の矢印で表示されます。表5-5は、ダイアグラムにモデリング可能な参照を示しています。
表5-5 クラスまたはインタフェース間の参照
参照 | 説明 |
---|---|
参照(オブジェクト) |
クラスまたはインタフェース間の唯一の直接参照。これは、 |
参照(配列) |
別のクラスまたはインタフェースの配列への参照。これは、 |
参照(コレクション) |
これは、コレクション宣言としてコードに表されます。必須のimport java.util.Collection;文、およびこの参照を識別するための |
参照(リスト) |
これは、リスト宣言としてコードに表されます。必須のimport java.util.List;文、およびこの参照を識別するための |
参照(マップ) |
これは、マップ宣言としてコードに表されます。必須のimport java.util.Map;文、およびこの参照を識別するための |
参照(セット) |
これは、セット宣言としてコードに表されます。必須のimport java.util.Set;文、およびこの参照を識別するための |
注意: ダイアグラム上の参照のプロパティを迅速に変更するには、その参照をダブルクリックしてコード・エディタを表示し、参照の詳細を変更します。 |
デフォルトでは、参照のラベルが表示されません。参照のラベルを表示するには、参照を右クリックして「ビジュアル・プロパティ」を選択し、「ラベルの表示」を選択します。デフォルトのラベル名は、その参照を表すフィールド名です。ダイアグラムでこのラベル名を選択して変更すると、コードでは@label <label_name>
Javadocタグが参照を表すフィールドの前に追加されます。
ダイアグラム上の参照で使用される集約記号を変更できます。そのためには、まずその参照を右クリックして「参照集約タイプ」を選択し、次に「なし」、「弱い」(@aggregation
共有Javadocタグが参照を表すコードに追加されます)、または「強い」(@aggregation
コンポジットJavadocタグが参照を表すコードに追加されます)を選択します。集約記号は、文書化の目的にのみ使用されます。
Javaソースでextends
文として表現される継承構造は、ダイアグラムのJavaクラス・コンポーネント・ウィンドウの「拡張」アイコンを使用してJavaクラスのダイアグラムに作成できます。拡張関係は、ダイアグラムでは、拡張クラスまたはインタフェースの方向を白抜きの矢印で指す実線として表示されます。
インタフェースをクラスによって実装する場合、ダイアグラムのJavaコンポーネント・ウィンドウで「実装」アイコンを使用して、インタフェースを作成できます。実装関係を作成すると、実装クラスのソース・コードにimplements
文が追加されます。実装関係は、ダイアグラムでは、実装されたJavaインタフェースの方向を白抜きの矢印で指す破線として表示されます。
拡張関係は、同一クラス・モデルにおける要素間の継承をモデリングします。クラス定義にextends文を作成して、Javaクラス間およびJavaインタフェース間の拡張関係を作成できます。列挙は他のクラスを拡張したり、他のクラスで拡張することはできません。
注意: Javaでは多重クラス継承をサポートしていないため、ダイアグラムのJavaクラスからモデリングできる拡張関係は1つのみです。多重拡張関係は、Javaインタフェースからモデリングできます。 |
実装関係は、モデリングされたJavaインタフェースを、モデリングされたJavaクラスを使用して実装することを指定します。これは、Javaクラスのソースではimplementsキーワードとして表されます。クラス図における実装関係は、実装されるインタフェースへ向けた、先端が白抜きの破線矢印で表します。列挙は、インタフェースを実装できません。
実装されたインタフェースが、モデリングされた別のインタフェースの拡張である場合(extends関係を使用)、これはインタフェースのJavaソース・コードに反映されます。
インタフェースを実装するクラスでは、そのインタフェースの一部またはすべての抽象メソッドの実装が可能です。あるクラスがインタフェースのメソッドを部分的にしか実装しない場合でも、そのクラスはabstractとして定義されます。
Javaクラスまたはインタフェースのメンバー(フィールドおよびメソッド)をダイアグラムに作成できます。フィールドおよびメソッドを、ダイアグラム上のモデリングされたJavaクラスおよびインタフェースに追加します。そのためには、モデリングされたJavaクラスまたはインタフェースをダブルクリックし、Javaソース・エディタを使用してフィールドまたはメソッドを追加します。
フィールドは、モデリングされたJavaクラスまたはJavaインタフェースの特性をカプセル化するために使用されます。モデリングされたすべてのフィールドには、名前、データ型および指定された可視性があります。
フィールドまたはメソッドがダイアグラムのクラスに表示されるとき、接頭辞として+ (publicとして宣言される場合)、- (privateとして宣言される場合)または# (protectedとして宣言される場合)が付きます。staticフィールドはダイアグラム上で下線が引かれます。
メソッドは、クラス内でそのクラスの動作を定義します。メソッドには、スカラー型または他のクラスで定義した型のいずれかの戻り型を指定できます。
ダイアグラムでインプレース編集機能を使用してクラスの名前を変更またはクラスを移動すると、そのクラスのソース・コードが自動的にリファクタされます。ダイアグラムでJavaパッケージの名前を変更またはパッケージを移動すると、そのパッケージの内容が自動的にリファクタされます。
ダイアグラムでフィールド、メソッドまたは内部クラスを削除すると、自動的に「安全に削除」リファクタ・パターンが適用されます。ダイアグラムのJavaクラス、インタフェース、列挙またはメンバーにリファクタ・パターンを適用するには、ダイアグラムで対象となるクラスまたはメンバーを選択し、「リファクタ」メニューから目的のリファクタ・パターンを選択します。
Javaクラス図のJavaクラス、インタフェースおよび列挙では、次のリファクタ・パターンを使用できます。
名前の変更
移動(ダイアグラムで1つ選択した場合にも複数選択した場合にも適用されます)
複製
インタフェースの抽出
スーパークラスの抽出
Javaクラス図のJavaフィールドおよびメソッドでは、次のリファクタ・パターンを使用できます。
リファクタ操作を開始するには、次のようにします。
ソース・エディタ・ウィンドウ、データベース・ウィンドウまたは構造ペインでプログラム要素を選択します。
プログラム要素を右クリックします。
ポップアップ・メニューから操作を選択します。
ツールバーから「リファクタ」を選択し、ドロップダウン・リストからリファクタ操作を選択することもできます。
名前の変更
移動
staticにする
メンバーのプル・アップ
メンバーのプッシュ・ダウン
メソッドの変更(Javaメソッドのみ)
Enterprise JavaBeans (EJB)のモデル化により、EJBエンティティ関連およびアーキテクチャを視覚化し、プロパティおよびメソッドを移入できるBeanのセットを迅速に作成し、またそのBeanおよびBean間の関連と参照のグラフィカル表示を作成できます。Beanがモデル化されると、基礎となる実装ファイルも常に作成されます。
EJBをモデル化するため、EJBダイアグラムの作成を開始します。詳細は、第5.3.1.1項「新しいダイアグラムの作成方法」を参照してください。UMLクラス、Javaクラス、ビジネス・コンポーネント、オフライン・データベース表、UMLユースケース、Webサービスなどの他の要素は、後で同じダイアグラムに追加できます。詳細は、第5.3.2項「ダイアグラム要素の使用」を参照してください。
モデリング・オプションは次のとおりです。
エンティティBeanは、コンテナ管理の永続性(CMP)またはBean管理の永続性(BMP)になります。Bean管理の永続性を使用してエンティティBeanを作成する前に、そのエンティティBean間の関連を作成する必要があるかどうかを検討することもできます。関連は、コンテナ管理の永続性を持つエンティティBean間にのみ作成できます。
セッションBeanのセッション・タイプをクラス図で変更するには、セッションBeanを右クリックし、「セッション・タイプ」、次に「ステートフル」、または「セッション・タイプ」、次に「ステートレス」を選択します。
メッセージドリブンBeanは、(EJB参照を使用して)セッションBeanおよびエンティティBeanと対話するために最も頻繁に使用されます。
Enterprise JavaBeansは、「コンポーネント」ウィンドウで「エンティティBean」アイコン、「セッションBean」アイコンまたは「メッセージドリブンBean」コンポーネントを使用して、ダイアグラム上に作成されます。コンポーネントを選択し、必要なスポットでダイアグラムをクリックします。モデル化された要素の実装ファイルは、プロジェクト設定で指定された場所に作成されます。
ヒント: ダイアグラムでモデル化されたBeanの実装Javaクラスをモデル化する場合は、モデル化されたBeanを右クリックし、実装ファイルを表示を選択します。 |
プロパティとメソッドを追加するには、BeanをダブルクリックしてEJBモジュール・エディタでプロパティまたはメソッドを追加するか、モデル化されたBean自体で新規のプロパティまたはメソッドをインプレースで作成します。
モデル化されたセッションBeanとエンティティBeanは、複数のコンパートメントで構成されます。たとえば、メッセージドリブンBeanに含まれるのは、«message-driven bean»
ステレオタイプおよびBeanの名前を含む名前コンパートメントのみです。EJB 3.0 Beanでは、インタフェースのコンパートメントがないため、モデルの外観は異なります。
Bean間の関連とエッジに注意してください。一方のBeanからリモートまたはローカル・インタフェースを持つ他方のBeanへの参照を作成できます。参照をモデル化できるのは、現在のデプロイメント・ディスクリプタ内にあるBean間のみです。
EJB/JPAクラスのダイアグラムを作成するには、次のようにします。
「新規ギャラリ」でプロジェクトまたはアプリケーションの新規EJBダイアグラムを作成します。
「EJBコンポーネント」ウィンドウを使用して、ダイアグラムの要素を作成します。表5-6は、「EJBコンポーネント」ウィンドウを示しています。
関連コンポーネントを「コンポーネント」ウィンドウからドラッグして、1つのクラス図での2つのエンティティ間の関連をモデル化できます。また、ルート・エンティティと子エンティティの間の継承エッジも表示できます。
1つのダイアグラムで2つの関連をモデル化するには、次のようにします。
作成する関連のアイコンをクリックします。
注意: 関連の端のナビゲーション性および多重度は、作成後に変更できます。EJBコンポーネント・アイコンが表示されない場合は、「コンポーネント」ウィンドウのドロップダウン・リストから「EJBコンポーネント」を選択してください。 |
関連の「所有する」または「元」側のエンティティをクリックします。
関連の「先」側のエンティティBeanをクリックします。
ダイアグラム上の関連を示す線をクリックし、アソシエーションに隣接するテキスト・フィールドをクリックして、関連名を入力します。
注意: ダイアグラム上の関連の端の多重度を変更するには、その関連の端を右クリックして、「多重度→1」または「多重度→*」を選択します。 |
一方のBeanからリモート・インタフェースを持つ他方のBeanへの参照は、「EJB参照」アイコンを使用して作成できます。一方のBeanからローカル・インタフェースを持つ他方のBeanへのローカル参照は、ダイアグラムの「EJBコンポーネント」ウィンドウの「EJBローカル参照」アイコンを使用して作成できます。
モデル化されたエンティティBean間の様々な関連を迅速に作成するには、1対*関係アイコン、有向1対1関係アイコン、有向1対*関係アイコンおよび「有向厳密集約」アイコンを使用します。
モデル化されたEJBにプロパティを追加するには、BeanをダブルクリックしてEJBモジュール・エディタでプロパティまたはメソッドを追加するか、モデル化されたBeanで新規のプロパティまたはメソッドを直接作成します。
モデル化されたBeanで直接プロパティを作成するには、プロパティの名前とデータ型を入力します。次に例を示します。
name : java.lang.String
Public (+)可視性の記号が、プロパティの先頭に自動的に追加されます。
注意:
|
クラス・ダイアグラム上で、モデル化されたBeanにローカル/リモートおよびローカル/ローカル・ホームの両方のメソッドを作成できます。
モデル化されたBeanにインプレースでメソッドを作成するには、名前を入力し、オプションでパラメータ型と名前およびメソッドの戻り型を入力します。メソッドの戻り型の前には、コロン(:)を付ける必要があります。次に例を示します。
getName(String CustNumber) : java.lang.String
Public (+)可視性の記号が、メソッドの先頭に自動的に追加されます。
注意:
|
クラス・ダイアグラム上で、モデル化されたBean間に参照を作成できます。
一方のBeanからリモート・インタフェースを持つ他方のBeanへのEJB参照を作成できます。
一方のBeanからローカル・インタフェースを持つ他方のBeanへのEJBローカル参照を作成できます。
注意: 参照を作成できるのは、現在のデプロイメント・ディスクリプタ内にあるBeanに対してのみです。 |
モデル化されたBean間の参照をモデル化するには、次のようにします。
「EJBコンポーネント」ウィンドウで次のアイコンを選択します。
EJB参照
EJBローカル参照
参照の「所有」または「元」側のBeanをクリックします。
参照の「先」側のBeanをクリックします。
モデル化された各Beanには、その要素の実装コードを含む基礎となるJavaソース・ファイルがあります。これらの実装ファイルは、モデル化されたJavaクラスとしてダイアグラムに表示できます。
モデル化されたBeanのモデル化された実装Javaクラスを表示するには、次のようにします。
ダイアグラムでJava実装をモデル化するBeanを選択し、「モデル」→「表示」→「実装ファイル」を選択します。
または、Beanを右クリックし、実装の表示→「ファイル」を選択します。
モデル化されたBeanのJavaソース・コードは、ダイアグラムのシンプル・コマンドでソース・エディタに表示できます。
モデル要素のJavaソース・コードを表示するには、次のようにします。
ダイアグラムの要素を右クリックします。「ソースに移動」を選択し、表示するソース・ファイルを選択します。
または
要素を選択し、「モデル」→「ソースに移動」を選択します。
ポップアップ・メニューを使用して、プロパティまたはメソッドのアクセス・レベルを変更できます。
プロパティまたはメソッドのアクセス・レベルを変更するには、次のようにします。
変更するプロパティまたはメソッドを右クリックします。
「次からアクセスが可能」オプションから、必要なアクセス・レベル・オプションを選択します。
アクセス・レベル・オプションは次のとおりです。
ローカル・インタフェース
リモート・インタフェース
ローカル・インタフェースとリモート・インタフェース
モデル化されたエンティティBeanは、EJBのダイアグラム上で、アプリケーションのデータベース接続を介して表定義からリバース・エンジニアリングできます。
表定義をエンティティBeanにリバース・エンジニアリングするには、次のようにします。
ダイアグラムを開く、または作成します。
データベース接続の「接続」ウィンドウでノードを開きます。
ユーザー・ノードを展開した後、「表」ノードを展開します。
エンティティBeanの作成に使用する表定義をクリックし、現在のダイアグラムにドラッグします。
複数の表をエンティティBeanにリバース・エンジニアリングするには、[Ctrl]キーを押しながら、リバース・エンジニアリングする表を「データベース」ウィンドウで選択し、その表をダイアグラムにドラッグした後、[Ctrl]キーを放します。
EJBバージョンを選択し、「OK」をクリックします。
データベース構造をモデル化すると、データベース・スキーマ、およぴオンラインまたはオフラインの表間の関連をビジュアルに表示できます。変換機能を使用すると、データベース表をUMLクラスとインタフェースに、またその逆に変換できます。データベースの変換の詳細は、第5章「UMLとオフライン・データベースの変換方法」を参照してください。
JDeveloperを使用して、オフライン・データベース・オブジェクトを、稼働中のデータベース接続のデータベース・オブジェクトと同様にモデル化できます。また、表や外部キー関係などのデータベース・オブジェクトをダイアグラム上で作成し、それをオンラインまたはオフライン・データベースに統合できます。オフライン・オブジェクトは、オフライン・データベース見出しの下のプロジェクト・アコーディオンに表示され、オンライン・オブジェクトは、データベース接続の下のアプリケーション・リソース・アコーディオン→データベース接続(「データベース」ウィンドウ)に表示されます。
データベース・ダイアグラムを使用して、表および外部キー関係、ビューおよび結合オブジェクト、マテリアライズド・ビュー、シノニム、およびシーケンスなどの図コンポーネント上で直接作成、およびデータベース・オブジェクト構造と関係を表示できます。
作成した新規オブジェクトと同様、オンラインまたはオフライン・データベースのすべてのデータベース・オブジェクトは「アプリケーション」ウィンドウに表示されます。
データベース・ダイアグラムの作成は、「新規ギャラリ」で行います。第5.3.1.1項「新しいダイアグラムの作成方法」を参照してください。
図5-36に示すとおり、データベース・ダイアグラムは、作成後に「コンポーネント」ウィンドウのコンポーネントから選択できます。
ダイアグラムにオフライン・データベース・オブジェクトを作成するには、データベース・オブジェクト・コンポーネント・ウィンドウで該当するアイコンをクリックし、オブジェクトの作成先であるダイアグラムをクリックします。このプロセスでは、新しいオブジェクトは作成されません。データベース・ダイアグラムに既存オブジェクトが追加されます。
「データベース」ウィンドウのデータベース接続から、または「アプリケーション」ウィンドウのオフライン・スキーマからオブジェクトをダイアグラムにドラッグすることもできます。
外部キーは、「データベース・コンポーネント」ウィンドウで外部キーをクリックし、外部キーの作成元の表をクリックし、外部キーの宛先表をクリックすることで作成できます。「外部キーの作成」ダイアログを使用すると、ターゲット表の既存の列を選択するか、新しい列を作成できます。
ビューで2つの表の使用方法の間に結合オブジェクトを作成するには、「結合オブジェクト」をクリックして、結合する2つの表の使用方法をクリックします。「結合の編集」ダイアログでは、結合を指定できます。
テンプレートはすべてオフライン・データベース・プロパティ・ダイアログで定義されます。作成するオブジェクトに、作成元のオフライン・データベースで定義されているテンプレートがある場合、<ObjectType>コンポーネントを使用すれば、そのテンプレートに基づいたオブジェクトが作成されます。そのため、たとえば、オフライン・データベース'Database1'にテンプレート表'MyTab'があった場合、「コンポーネント」ウィンドウの表オプションを使用して、Database1で新しい表を作成すると、テンプレート'MyTab'に基づいて新しい表が作成されます。既存オブジェクトはオフライン・データベースからダイアグラムに追加されます。
「データベース・コンポーネント」ウィンドウ上の「シノニム」をクリックし、シノニムを作成するダイアグラム上をクリックすると、ダイアグラムにシノニムが作成されます。また、オンライン・データベース接続からオブジェクトをドラッグ・アンド・ドロップしたり、データベース接続からダイアグラムに既存オブジェクトを追加することにより、データベース接続からオフライン・データベースにオブジェクトをインポートしたりできます。
パブリック・シノニムはPUBLICスキーマで作成されます。
「データベース・コンポーネント」ウィンドウ上の「リレーションの使用方法」をクリックした後、ビューをクリックして、ビューの基本リレーションを定義します。
ダイアグラムの「データベース・コンポーネント」ウィンドウの「シーケンス」をクリックしてから、シーケンスを作成するダイアグラムをクリックすると、ダイアグラムにシーケンスが作成されます。データベース接続から、または「アプリケーション」ウィンドウのオフライン・データベースから、シーケンスをドラッグしてダイアグラム上にドロップする方法もあります。また、オンライン・データベース接続から表をドラッグしたり、データベース接続からダイアグラムに既存オブジェクトを追加することにより、データベース接続からオフライン・データベースにオブジェクトをインポートしたりできます。
ダイアグラムの「データベース・コンポーネント」ウィンドウ上の「テンプレートからのシーケンス」をクリックしてから、シーケンスを作成するダイアグラムをクリックすると、ダイアグラムにテンプレートに基づくシーケンスが作成されます。また、オンライン・データベース接続からシーケンスをドラッグ・アンド・ドロップすることによりシーケンスを作成したり、データベース接続からダイアグラムに既存オブジェクトを追加することによりデータベース接続からオフライン・データベースにオブジェクトをインポートすることもできます。同様に、オフライン・データベースから既存オブジェクトをダイアグラムに追加できます。「テンプレート・オブジェクトの選択」ダイアログが表示され、ここで、マテリアライズド・ビューの基準とするテンプレートを選択できます。
ダイアグラムの「データベース・コンポーネント」ウィンドウ上の「テンプレートからのシノニム」をクリックしてから、シノニムを作成するダイアグラムをクリックすると、ダイアグラムにテンプレートに基づくシノニムが作成されます。「テンプレート・オブジェクトの選択」ダイアログが表示され、マテリアライズド・ビューの基準とするテンプレートを選択できます。また、オンライン・データベース接続から表をドラッグ・アンド・ドロップしたり、データベース接続からダイアグラムに既存オブジェクトを追加することにより、データベース接続からオフライン・データベースにオブジェクトをインポートしたりできます。
「データベース・コンポーネント」ウィンドウ上の「表」をクリックした後、ダイアグラム上をクリックすると、ダイアグラムに表が作成されます。データベース接続から、または「アプリケーション」ウィンドウのオフライン・データベースから、表をドラッグしてダイアグラム上にドロップする方法もあります。同様に、オフライン・データベースから既存オブジェクトをダイアグラムに追加できます。
モデル化された表で、列が主キー、外部キー、または一意キーであることを示す表列アイコンの表示を選択できます。
モデル化された表の最初の列は、列が主キー、一意キー、または外部キーのいずれかを示します。
列は主キー
列は外部キー
列は一意キー
2番目の列は、表列が必須であるかどうかを示します。
注意: 表列が主キーの場合は、一意キーまたは外部キーでもある場合でも、主キーのアイコンのみが表示されます。 |
「データベース・コンポーネント」ウィンドウ上の「テンプレートからの表」をクリックした後、ダイアグラム上をクリックすると、ダイアグラムに表が作成されます。「テンプレート・オブジェクトの選択」ダイアログが表示され、マテリアライズド・ビューの基準とするテンプレートを選択できます。オンライン・データベース接続からドラッグ・アンド・ドロップすることにより、表を作成することもできます。データベース接続からダイアグラムに既存オブジェクトを追加することにより、データベース接続からオフライン・データベースにオブジェクトをインポートできます。
「ビュー」をクリックした後、ダイアグラム上をクリックすると、ダイアグラムにビューが作成されます。オンライン・データベース接続からオブジェクトをドラッグ・アンド・ドロップすることにより、ビューを作成することもできます。オブジェクトは、データベース接続からダイアグラムに既存オブジェクトを追加することにより、データベース接続からオフライン・データベースにインポートできます。また、オンライン・データベース接続からドラッグ・アンド・ドロップによりデータベース・ビューを作成したり、、データベース接続からダイアグラムに既存オブジェクトを追加することにより、データベース接続からオフライン・データベースにオブジェクトをインポートしたりできます。
ビューを定義するには、表とビュー、表列または他のビューの要素を新規に定義するビューに追加します。データベース接続から、または「アプリケーション」ウィンドウのオフライン・データベースから、ビューをドラッグしてダイアグラム上にドロップする方法もあります。
「テンプレートからのビュー」をクリックした後、ダイアグラム上をクリックすると、ダイアグラムにビューが作成されます。「テンプレート・オブジェクトの選択」ダイアログが表示され、マテリアライズド・ビューの基準とするテンプレートを選択できます。
ビジネス・プロセスのモデル化には、アクティビティ図を使用します。ビジネス・プロセスとは、注文処理、出荷、精算および支払いプロセス・フローなどビジネス目標を達成するために調整されたタスクです。
図5-37に示すように、アクティビティ図は、システムの動作を取得し調整されたアクションの実行を示します。
「コンポーネント」ウィンドウには、アクティビティ図に使用できる要素が含まれています。「アクティビティ」は、ダイアグラムに直接配置できる唯一の要素です。他の要素は「アクティビティ」の内部に配置できます。図5-38およぴ表5-7に示すように、各要素は一意のアイコンと説明のためのラベルで表されます。
表5-7 アクティビティ図の要素
要素 | 説明 |
---|---|
アクション |
アクションは、請求書の送信や支払いの受領など、動作を指定する基本単位です。アクティビティ内の1つのステップを表します。アクションは、一連の入力を受け取って一連の出力に変換します。アクションの実行は、モデル化されたシステムにおける変換または処理を表します。 アクションは、制御フローおよびオブジェクト・フローの形で入力を受け取る場合があり(後者は入力ピンを介して)、その処理または変換の結果を送信制御フローまたはオブジェクト・フローへ(後者は出力ピンを介して)、そしてさらに下流ノードに渡します。アクションの実行は、すべての前提条件が満たされるまで開始されません。 |
アクティビティ |
ビジネス・プロセスなど、システムによって実行される動作。アクティビティは、独自の処理、オブジェクト・ノード、およびそれらの間のフローによって定義される動作です。 |
アクティビティ最終ノード |
制御トークンを初めて受信したとき、アクティビティの実行を終了します。最終ノードは、アクティビティに複数あってもかまいません。アクティビティ最終ノードは、このダイアグラム上の各アクションが終了したことを示します。 |
分岐/結合 |
垂直または水平の棒として表示されます。分岐は1つの受信フローと複数の送信フローを持つ制御ノードです。結合は複数の受信フローを1つの送信フローに同期する制御ノードです。分岐/結合のペアを、1つのダイアグラム・ノードとして組み合せることができます。 |
コール動作アクション |
アクションの入力と出力を適切な動作パラメータに単純にマップします。 |
コール操作アクション |
操作コール・リクエストをターゲット・オブジェクトに転送し、そこで関連する動作を呼び出させることができます。動作の結果はアクション出力になります。アクションの引数値は、呼び出された動作の実行に使用できます。 |
中央バッファ |
オブジェクト・ノードの一種。トークンを格納(バッファ)する機能をノードに付与します。1つ以上のオブジェクト・ノードからの受信フローに着信するトークンを管理し、送信フローを介してどのトークンをどの順序で下流のオブジェクト・ノードに渡すかを選択します。 |
制御フロー |
制御トークンのフローを示します。 |
データ・ストア |
一時的でないデータにバッファを渡すオブジェクト・ノードの一種。 |
フロー終了ノード |
アクティビティ全体の実行は終了せずに受信フローを終了させます。 |
初期ノード |
アクティビティを実行する開始点。受信フローはなく、複数の送信フローがあります。初期状態はダイアグラムに1回のみ指定できます。 |
オブジェクト・フロー |
オブジェクト・ノードを接続します。オブジェクト・フローは、ピンを使用してアクションに接続できます。 |
ノードのマージ |
マージ・ノードには、複数の受信フローと1つの送信フローがあります。決定には、1つの受信フローと複数の送信フローがあります。 |
ノードを作成するには、「コンポーネント」ウィンドウで「初期ノード」アイコン、「アクティビティ最終ノード」アイコン、または終了フロー・ノード・アイコンをクリックした後、ダイアグラム上のノードを配置する場所をクリックします
ダイアグラムにパーティションを作成するには、アクションを選択してから、「プロパティ」ウィンドウの「表示オプション」で「アクティビティ・パーティションの表示」を選択します。
アクティビティ図にパーティションを表示するには、次のようにします。
アクティビティ図で、アクションを選択します。
「プロパティ」ウィンドウで、「表示オプション」ノードを開きます。
「アクティビティ・パーティションの表示」を選択します。ダイアグラム上のアクションに「(パーティションなし)」というテキストが表示されます。
テキストをクリックします。編集ボックスが表示され、パーティションの名前を入力できます。
シーケンス図は、クラス・インスタンス間の相互作用を表します。相互作用は、メッセージの交換としてモデル化されます。図5-39に示すように、シーケンス図の中核には、動作パターンを表すクラス・インスタンスとそれらの間で交換されるメッセージがあります。
「コンポーネント」ウィンドウから追加する要素は、シーケンス図のデフォルト位置にレイアウトされます。オブジェクト・ライフラインは垂直方向に位置合せされますが、他のオブジェクト・ライフラインに関連する場合には、作成メッセージに位置合せされます。同期メッセージと非同期メッセージは、ページの上から下へ時系列に配置されます。
図5-40に、シーケンス図で使用できる「コンポーネント」ウィンドウの要素を示します。各要素は一意のアイコンと説明のためのラベルで表されます。
表5-8 シーケンス図の要素
要素 | 説明 |
---|---|
非同期メッセージ |
ダイアグラム上では、対角線と開いた矢印で表されます。非同期メッセージは、送信者が処理を続行する前に応答を待つ必要がないメッセージです。 |
作成メッセージ |
ダイアグラムでは、作成されるオブジェクトを表す四角形と破線が元のオブジェクトよりも下方向にシフトして表されます。作成メッセージは、オブジェクトの作成を導くメッセージです。 |
相互作用 |
システムでタスクを完了するためのオブジェクトの相互作用を示すことによって、1つのケースの動作を取得します。 |
メッセージ |
メッセージは、相互作用に関与するオブジェクト間で特定の通信を定義するモデル要素です。メッセージは、相互作用に関与するあるオブジェクトから他のオブジェクトへの情報を伝達し、ライフラインで表されます。 |
オブジェクト・ライフライン |
ダイアグラム上では、四角形と下方向への垂直の破線で表されます。オブジェクト・ライフラインは、一定期間のオブジェクトの存在を表します。 |
戻る |
戻りメッセージは、以前にメッセージが送信されたオブジェクトから戻されるメッセージです。戻りメッセージは同期メッセージからのみ有効で、それ自体が同期します。 |
メッセージの停止または破棄 |
ダイアグラムでは、実行仕様をメッセージ終端の大きい×印で表します。停止メッセージは、オブジェクトの削除を導く(または、オブジェクトが不要になったことを示す)メッセージです。 |
シーケンス図の一部でポップアップ・メニューを開き、「トレース・シーケンス」を選択します。トレーサは、各ステップをハイライト表示しながら実行仕様とメッセージをステップごとに実行します。
注意: 「トレース・シーケンス」は、相互作用を選択した場合に使用できます。ダイアグラム上のポップアップ・メニューには表れません。 |
システム内で相互作用をモデル化するには、「相互作用」コンポーネントをダイアグラムに追加します。相互作用は、動作を構成する特定要素のためのコンテナです。
相互作用を右クリックして「順序」、「自動レイアウト」の順に選択すると、要素が相互作用内で自動レイアウトされます。
オブジェクト・ライフラインをシーケンス図に追加するには、相互作用を追加してから「オブジェクト・ライフライン」アイコンをクリックし、相互作用をクリックします。編集ボックスが開き、オブジェクトのインスタンス名を入力できます。匿名のインスタンスの場合は空白のままにできます。
分類子を追加するには、オブジェクト・ライフラインを右クリックし、「分類子の添付」を選択します。要素のリストが開き、オブジェクト・ライフラインに関連付ける要素を選択できます。分類子を添付するには、分類オブジェクトを「データベース」ウィンドウからオブジェクト・ライフラインにドラッグする別の方法もあります。これらの方法は、分類要素を表すアイコンの外観(オブジェクト・ライフラインの左上)によって確認できます。
非同期メッセージを追加するには、「メッセージ」アイコンをクリックし、そのメッセージの開始ポイントとなる垂直の破線、つまり実行仕様をクリックします。次に、そのメッセージの宛先になる垂直の破線をクリックします。
実行仕様をマージするには、ダイアグラム上で重ねます。次に右クリックして、「重複発生のマージ」を選択します。
実行仕様(および添付されているメッセージ)は、元の位置から上下に移動できます。この移動によって、ダイアグラムが無効になる場合があります。ダイアグラムが無効になると、メッセージ線が赤に変わり、宛先のオブジェクトに矢印アイコンが付きます。このアイコンは、ダイアグラムを有効にするためにオブジェクトを移動する方向を示します。
実行仕様ボックスのサイズは、実行仕様ボックスを選択したときに下隅に表示される黒色の小さいボックスをドラッグして変更できます。メッセージ線をドラッグして延長すると、実行仕様のサイズが変更されます。
テキストの編集ボックスを開くには、メッセージ線をクリックし、表示されたグレーのボックス内をクリックします。
同期メッセージの開始ポイントと宛先ポイントが同じオブジェクト・ライフラインである場合があります。この場合は、セルフ・コールを作成したことになります。
同期メッセージは、シーケンス図上では実線と塗りつぶされた矢印で表示されます。
作成メッセージを追加するには、「作成メッセージ」アイコン、元のオブジェクト、作成するオブジェクトの順にクリックします。オブジェクトを表す四角形と破線が元のオブジェクトより下方向にシフトします。
作成するオブジェクトがまだダイアグラム上にない場合には、元のオブジェクトを含む相互作用をクリックし、そのオブジェクトを表すオブジェクト・ライフラインを作成します。デフォルトでは、作成メッセージには「create」という名前が指定されます。メッセージ名の編集ボックスを開くには、メッセージ線をクリックし、表示されたグレーのボックス内をクリックします。
停止または破棄メッセージを追加する前に、このメッセージによって削除されるオブジェクトのオブジェクト・ライフラインがすでに追加されている必要があります。
停止メッセージまたは破棄メッセージを追加するには、「メッセージの停止または破棄」アイコン、元のオブジェクト、削除するオブジェクトの順にクリックします。同じオブジェクトで停止メッセージを開始して終了すると、自己削除オブジェクトが作成されます。停止メッセージの終了時の実行仕様は、大きい十字によって示されます。メッセージ行をクリックして、表示される灰色のボックス内をクリックすると、メッセージ名(たとえば、close)の編集ボックスを開くことができます。
他の実行仕様より前にメッセージの停止をシーケンスに追加した場合、その実行仕様は実装されず、警告フラグ付きで表示されます。
戻りメッセージを追加するには、「戻る」アイコンをクリックし、終了実行仕様をクリックします。次に、対応する開始実行仕様をクリックします。この戻りメッセージ線は別のオブジェクトで終了できません。戻りメッセージは、破線と塗りつぶされた矢印で表示されます。メッセージ・テキストの編集ボックスを開くには、メッセージ線をクリックし、表示されたグレーのボックス内をクリックします。
非同期メッセージ(およびその終わりの実行仕様)を追加するには、「非同期メッセージ」アイコンをクリックし、そのメッセージの開始ポイントとなる垂直の破線、つまり実行仕様をクリックします。次に、そのメッセージの宛先になる垂直の破線をクリックします。メッセージ・テキストの編集ボックスを開くには、メッセージ線をクリックし、表示されたグレーのボックス内をクリックします。
非同期メッセージの開始ポイントと宛先ポイントが同じオブジェクト・ライフラインである場合があります。この場合は、セルフ・コールを作成したことになります。
非同期メッセージは、シーケンス図上では対角線と開いた矢印で表示されます。
シーケンス図の相互作用には、結合フラグメント・ロックのアイコンがあります。相互作用をロックまたはロック解除すると、ダイアグラム上のその相互作用内の結合フラグメントの動作を維持し、その範囲を他の相互作用や他のダイアグラムにまで拡張できます。
結合フラグメントは、相互作用の演算子とそれに対応する相互作用オペランドによって定義される相互作用の式を定義します。結合フラグメントには、相互作用の演算子によって制御される一連の相互作用(これを相互作用オペランドと言います)が反映され、それに対応するブール条件を相互作用制約と言います。透明なウィンドウとして表示され、各オペランドを示す水平の点線で分割されます。
例5-41に、現金出納係が支払いを要求した後で購入品目を反復処理するループ・フラグメントの例を示します。この時点では2つの支払いオプションを考慮して別のフラグメントも作成し、現金とクレジットカードの2つのオペランドを分割して表しています。フラグメントがトレースを完了すると、支払い条件が満たされた時点で現金出納係が顧客に領収書を発行します。
図5-42は、ダイアグラム・ウィンドウでダイアグラムを開くと「コンポーネント」ウィンドウに表示される結合フラグメントを示しています。
表5-9 結合フラグメントの相互作用演算子
相互作用演算子 | 説明 |
---|---|
代替 |
ブール条件に基づいて相互作用フラグメントを分割します。 |
アサート |
唯一有効なフラグメントの発生を示します。 |
ブレーク |
オペランドが、包含する相互作用フラグメントの残りのかわりに実行されるシナリオであるという意味で結合フラグメントがブレーク・シナリオを表すことを指定します。 |
クリティカル |
他の処理によって中断できないシーケンスを示します。 |
ループ |
オペランドが、相互作用制約で指定される回数繰り返されることを示します。 |
負 |
フラグメントが無効であることをアサートし、他の相互作用がすべて有効であることを表します。 |
オプション |
オプションの相互作用フラグメントを包括します。 |
パラレル |
オペランドが並行して処理されることを示します。 |
順序 |
結合フラグメントが弱く順序付けされることを示します。発生仕様が同じライフライン上にある場合に、最初のオペランドの発生仕様が2番目の発生仕様より優先されるかぎりオペランド内の順序は維持されるが、オペランドどうしの順序は未定義であることを示します。 |
厳密 |
オペランドの動作が厳密な順序で処理されることを示します。 |
ユースケース図は、システムの使用条件の概要を示します。図5-43のように、開発の目的で、ユースケース図はシステムまたはプロジェクトの実際の要件またはワークフローを表します。
ユースケース図は、アクターとそのアクションを接続して、アクターとシステムとの相互作用を表します。アクターが情報を提供する、ユースケースを開始する、またはユースケースの結果として情報を受信する場合は、アクター間にアソシエーションがあります。
図5-44は、ユースケース図に追加できる要素が表示された「コンポーネント」ウィンドウを示しています。各要素は一意のアイコンと説明のためのラベルで表されます。
「相互作用」は、ダイアグラムに直接配置できる唯一の要素です。他の要素はすべて、「相互作用」の内部に配置します。
表5-10 ユースケース要素
構成要素 | 説明 |
---|---|
アクター |
システム内の抽象ロールを表します。 |
通信 |
アクターが特定のユースケースに関連付けられている状況を示します。 |
依存関係 |
要素間の関係を示します。 |
拡張 |
ターゲットのユースケースがソースのユースケースの定義を拡張することを示します。 |
汎化 |
1つ以上の要素が別の要素を特化している状況を示します。たとえば、あるアクターTeam MemberがアクターManagerとアクターDeveloperに特化されている場合があります。 |
対象 |
ユースケースで、他のユースケースを含む関係を示します。 |
サブジェクト |
サブジェクトには2つのタイプがあります。1つのシステムには通常、モデル化の対象となるシステム全体を構成するユースケースとアクターのセットが含まれます。2つ目のタイプには通常、開発の対象となる一貫性のあるシステム部分を構成するユースケースのグループが含まれます。 |
ユースケース |
1つの要素が、相互作用を実行するために他の要素を必要とすることを示します。 |
サブジェクト、アクター、その他のタイプのオブジェクトの外観や他の属性を決定するには、「プロパティ」ウィンドウでプロパティを変更するか、オブジェクトを右クリックしてプロパティを変更するか、または基礎となるテンプレート・ファイルを作成してカスタマイズします。
テンプレートを使用すると、サポートするオブジェクトを「コンポーネント」ウィンドウに追加できます。詳細は、第5章「ユースケース・コンポーネント・テンプレートの作成方法」を参照してください。
モデル化するシステムは、そのシステムのすべてのアクターとユースケースをサブジェクト内に囲んで表示できます。サブジェクト・ライン内のユースケースを包括するグループによって開発対象を表示します。サブジェクトをダイアグラムに追加するには、「コンポーネント」ウィンドウで「サブジェクト」をクリックし、サブジェクトが占める領域をカバーするようにポインタをドラッグします。図5-45に、関連するアクターに会計サブジェクトを接続している例を示します。サブジェクトの内部に要素をドロップすると、要素を包含するようにサブジェクト・ラインが拡張されます。手動でサブジェクトのサイズを変更することもできます。サイズを縮小して表示しきれない要素がある場合には、右下隅に省略記号が表示されます。
ダイアグラム上にアクターを作成するには、「コンポーネント」ウィンドウ上で「Actor」アイコンをクリックし、次にダイアグラム上でアクターを作成する位置をクリックします。
アクターまたはユースケースのプロパティを変更するには、モデル化された要素をダブルクリックして、エディタでその要素の詳細を編集します。
アクターとユースケース間の相互作用をダイアグラム上で表現するには、「コンポーネント」ウィンドウの「通信」アイコンを使用します。また、アクター間およびユースケース間の汎化構造を作成するには、「汎化」アイコンを使用します。1つのユースケースが別のユースケースを包含する状況を表すには、「対象」アイコンを使用し、1つのユースケースが別のユースケースを拡張する状況を表すには、「拡張」アイコンを使用します。
ノート、依存関係およびURLリンクを使用して、ユースケース図に注釈を追加できます。注釈コンポーネントは、「コンポーネント」ウィンドウ下部の「ダイアグラムの注釈」から使用できます。
「ソース」タブを選択します。HTMLタグを特定の場所に挿入するには、ポップアップ・メニューを開いて「HTMLの挿入」を選択します。
一般的なルールとして、uml:接頭辞を含むタグ(例: <uml:usecase_extends>)は削除しないでください。テンプレートのセクション全体(例: tdタグと/tdタグの間)を削除する場合、uml:接頭辞はセクションの他の内容とともに安全に削除できます。
「エディタ」タブを選択し、挿入するテンプレート上の場所を選択してから必要な場所とオブジェクトをポップアップ・メニューから選択します。
HTMLインタフェース・オブジェクト(ボタンやチェック・ボックス)、HTMLコード・オブジェクト(アンカーや表)、開発入力(コメントや処理指示)を挿入できます。
初期状態では、選択したテンプレート項目の前後どちらにも、またテンプレートの<head>セクションにもオブジェクトを挿入できます。その後、これらのオプションが不適切である場合は選択できなくなります。ポップアップ・メニューから「HTML」または「参照」を選択すると、ダイアログ・ボックスが開き、様々なHTMLインタフェース・オブジェクトおよびコード・オブジェクトから1つを選択できます。ここで項目を選択すると、オブジェクトに適したプロパティを入力する挿入ダイアログが開きます。
新規のユースケース・テンプレートは、JDeveloperで用意されているテンプレートをコピーして作成できます。必要に応じてコピーを変更できます。
新しい「コンポーネント」ウィンドウごとに、これをサポートするユースケース・テンプレートが1つ必要です。指定したユースケース・テンプレートはコピーまたは移動されず、元の場所にそのまま存在します。
新しい「コンポーネント」ページを作成して、新しいユースケース・コンポーネントを追加するには、次のようにします。
「ツール」→「パレットの設定」を選択します。
「コンポーネントの構成」ダイアログで、ページ・タイプのユースケースを選択します。
「追加」をクリックします。
新しい「コンポーネント」ページの名前を入力します。
ドロップダウン・リストから「ユースケース」を選択し、「OK」をクリックします。「コンポーネント」ウィンドウに新しいページが表示されます。ポインタ・アイテムは自動的に含まれます。
「コンポーネント」ウィンドウのコンポーネント領域に対してポップアップ・メニューを開いて、「コンポーネントの追加」を選択します。「ユースケース・テンプレートの追加」ダイアログが開きます。
新規コンポーネントの名前を入力します。
新規コンポーネントのベースとなるユースケース・テンプレートへのパスを入力します。パスにはURLを設定できます。
新規コンポーネントをコンポーネント・ページに追加するには、「OK」をクリックします。
UML要素は個別のファイルに格納されます。ファイルの場所は、要素のパッケージ・プロパティによって異なります。この要素ファイルには、各要素に対して定義されたプロパティが含まれていますが、ダイアグラム・ファイルには、ダイアグラムに表示される要素およびその要素のビジュアル・プロパティも定義されます。モデル化されたUML要素の要素ファイルは、プロジェクトのモデル・パスで指定されたフォルダの下の適切なパッケージ・フォルダに格納されます。モデル・パスを設定するには、「アプリケーション」→「デフォルト・プロジェクト・プロパティ」→「プロジェクトのソース・パス」→「モデラー」を選択します。