この章では、Oracle JDeveloperで提供される最新のツールやテクノロジを使用して、ダイアグラムを作成および管理する方法について説明します。
この章では、次の項目について説明します。
Oracle JDeveloperには、アプリケーション・システムをモデル化するための多様なツールと各種のダイアグラムが用意されています。指示に従ってダイアグラムと要素を作成できる使用しやすいウィザードがある他に、コンポーネント・パレットとプロパティ・インスペクタを使用してドラッグ・アンド・ドロップを簡単に実行でき、編集ウィンドウを閉じずに各種の要素を編集できます。さらに、クラスの作成と管理、クラスとUML間の変換、XMIのインポートおよびエクスポート機能などを含め、4つのUMLダイアグラム・オプションがあります。
図22-1は、ダイアグラム・エディタ・ウィンドウでクラス図、アプリケーション・ナビゲータ、コンポーネント・パレットを開いたところを示しています。ナビゲータでダブルクリックするとダイアグラムを開くことができ、ダイアグラムが開いたら、コンポーネントをダイアグラム・エディタにドラッグ・アンド・ドロップできます。エディタの上部には、色、フォント、ズーム機能など標準的な書式設定のアイコンがあります。
基本的なダイアグラム作成のタスクとコマンドの多くは、JDeveloperのメニュー・オプションを数回クリックすると実行できます。ダイアグラム・ファイルには、位置、サイズ、色などのグラフィカル・プロパティが含まれています。ビジュアル要素は通常、単独のファイルに格納されます。ダイアグラムを変更すると、関連するすべてのファイルが更新されます。すべてのファイルの一貫性を保つには、「ファイル」→「すべて保存」を選択します。
新規のダイアグラムを作成するには:
アプリケーション・ナビゲータでプロジェクトを選択し、「ファイル」→「新規」→「一般」→「ダイアグラム」を選択します。
ダイアグラムのタイプを選択し、「OK」をクリックします。
ダイアグラムのデフォルト名とパッケージの変更が必要な場合があります。ダイアグラムのデフォルト・パッケージは、そのプロジェクト設定で指定したデフォルト・パッケージです。現在のプロジェクトの指定したパッケージに、空のダイアグラムが作成され、コンテンツ領域で開かれます。「OK」をクリックします。
ダイアグラムをイメージとして公開するには、次のようにします。
イメージとして公開するダイアグラム上を右クリックし、「ダイアグラムの公開」を選択します。
または
イメージとして公開するダイアグラム上をクリックし、「ダイアグラム」→「ダイアグラムの公開」を選択します。
場所のドロップダウン・リストを使用し、イメージ・ファイルの公開先フォルダを選択します。
「ファイル名」ボックスに、適切な拡張子(.svg、.svgz、.jpg、.png)も含めてイメージ・ファイルの名前を入力します。
「ファイル・タイプ」ドロップダウン・リストを使用し、イメージ・ファイルのファイル・タイプ(SVG、SVGZ、JPEG、PNG)を選択します。
「保存」をクリックします。
ダイアグラム名を変更するには、次のようにします。
アプリケーション・ナビゲータで、名前を変更するダイアグラムを選択します。
「ファイル」→「名前の変更」を選択します。
「ファイルの名前変更のみ行います。参照は更新しません。」を選択します。この場合、ダイアグラムに対する参照の更新は適用されません。
印刷前にページを設定するには、次のようにします。
印刷するダイアグラム上をクリックし、「ファイル」→「ページ設定」を選択します。
「ページ設定」ダイアログの各タブで設定を変更します。
印刷するダイアグラム上の領域を設定するには、次のようにします。
「ファイル」→「印刷領域」→「印刷領域の設定」を選択します。
ダイアグラム上で、印刷する範囲のオブジェクトをマウス・ポインタのドラッグで囲みます。印刷する領域が点線の枠で示されます。領域を設定しない場合は、ダイアグラム全体が印刷されます。
以前に設定した印刷領域をクリアするには、次のようにします。
「ファイル」→「印刷領域」→「印刷領域のクリア」を選択します。
印刷前にページをプレビューするには、次のようにします。
「ファイル」→「印刷プレビュー」を選択します。
ダイアグラムを削除するには、次のようにします。
ナビゲータで、削除するダイアグラムを選択します。
「編集」→「削除」を選択します。このコマンドでダイアグラム・ファイルがシステムから削除され、ダイアグラムの編集ウィンドウが閉じます。削除したダイアグラムの要素は、ナビゲータとファイル・システムには残ります。
アプリケーション・ナビゲータからダイアグラムを削除することもできます。アプリケーション・ナビゲータで、ダイアグラム名を右クリックし、「削除」を選択します。
ダイアグラムをズーム・インおよびズーム・アウトするには、次のようにします。
ダイアグラムをズーム・インおよびズーム・アウトするには、[Ctrl]キーを押しながらホイール・ボタンを使用します。サムネイル・ビューを使用している場合は、ホイール・ボタンでズームします。
ダイアグラムを元のサイズで表示するには、次のようにします。
ダイアグラムのツールバー上にあるズームのドロップダウン・リストで、「100%」を選択するか、ダイアグラムをクリックして「ダイアグラム」→「ズーム」→「100%」を選択します。
ダイアグラム全体を表示するには、次のようにします。
ダイアグラムのツールバー上にあるズームのドロップダウン・リストで、「ウィンドウに合せる」を選択するか、ダイアグラムをクリックして「ダイアグラム」→「ズーム」→「ウィンドウに合せる」を選択します。
選択した要素を最大サイズで表示するには、次のようにします。
ダイアグラムのツールバー上にあるズームのドロップダウン・リストで、「選択領域のズーム」を選択するか、ダイアグラムをクリックして「ダイアグラム」→「ズーム」→「選択領域のズーム」を選択します。
ノードと要素を使用して、システム・アーキテクチャの様々な要素と関連リソースを表します。
ノードは、ダイアグラム上の図形です。
ダイアグラムのノードを作成するには、次のようにします。
ダイアグラムのコンポーネント・パレットのリストから、作成するノードのタイプを選択します。
ノードを作成するダイアグラムをクリックします。これで、ノードがデフォルトのサイズで追加されます。
または
ノードを置く場所のいずれかの隅でマウス・ボタンをクリックして押したままにし、対角上までノードの枠線をドラッグしてからマウス・ボタンを放します。
新しいノード上でデフォルトの要素名がハイライト表示されたら、ノードの名前を入力します。
または
ウィザードを完了します。
注意: ダイアグラム上のノードにプロパティを追加するには、ノードをダブルクリックするか、ノードを右クリックして「プロパティ」を選択します。次に、ダイアログまたはエディタを使用してプロパティを追加します。インプレース作成を使用してダイアグラム上にプロパティを作成することもできます。 |
特定の要素のノードは、他のノード内部に作成することもできます。
ダイアグラム要素に内部ノードを作成するには、次のようにします。
要素は、他のダイアグラム要素の内部ノードとしてダイアグラム上に表現できます。
内部ノードを使用して次の要素を作成できます。
モデル化されたUMLクラスおよびUMLインタフェースの内部クラスおよび内部インタフェース。
モデル化されたJavaクラスおよびJavaインタフェースの内部クラスおよび内部インタフェース。
モデル化されたデータベース・ビューの関連使用。
ダイアグラム要素に内部ノードを作成するには、次のようにします。
内部ノードを作成するノードをダイアグラム上で選択します。
「ダイアグラム」→拡張表示を選択し、ノードの拡張ビューを表示します。
拡張ボックス内に内部ノード用のノードを作成するか、ナビゲータまたはダイアグラムから適切なノードをドラッグし、内部ノードを作成するために拡張したノード内にドロップします。
ダイアグラムでノードの表示方法を変更するには、次のようにします。
ダイアグラム要素を選択し、次のいずれかを選択します。
「ダイアグラム」→「表示モード」→「圧縮」
「ダイアグラム」→「表示モード」→「シンボル」
「ダイアグラム」→「表示モード」→「拡張済」
ダイアグラムの2つのノードを連結するには、次のようにします。
ノード要素間の関係は、連結部を使用して識別されます。連結部は、ダイアグラムの端の終了点です。
接続するタイプ要素に対するコンポーネント・パレットのリストから、連結部タイプを選択します。
元の終了ノードをクリックします。暗黙的または現実的な方向を伴う連結部は、リンク元からリンク先まで達します。
連結部のリンク先にするノードをクリックします。
ダイアグラム上でノードのサイズを最適化するには、次のようにします。
サイズを変更するノードを選択します。
選択したノードを右クリックし、オプションとして「図形サイズの最適化」→「高さと幅」を選択します。
ダイアグラム上のプロパティの変更と要素の管理には、多くのオプションを使用できます。
同じタイプの要素をすべて選択するには、次のようにします。
必要なタイプのオブジェクトを選択します。
ポップアップ・メニューから「このタイプをすべて選択」を選択します。
アクティブなダイアグラム上のすべての要素を選択するには、次のようにします。
「編集」→「すべて選択」を選択します。
アクティブなダイアグラム上の特定のダイアグラム要素を選択するには、次のようにします。
[Ctrl]キーを押しながら、ダイアグラム上の要素をクリックして選択します。
アクティブなダイアグラム上の任意の範囲にあるすべての要素を選択するには、次のようにします。
ダイアグラム上の、要素を選択する範囲の角にポインタを置き、マウス・ボタンを押したままの状態にします。
その部分にマウス・ポインタを移動します。
選択範囲内のオブジェクトを完全に囲んだら、マウス・ボタンを放します。
選択した要素グループから、要素の選択を解除するには、次のようにします。
[Ctrl]キーを押したままの状態にします。
ダイアグラム上で、選択を解除する要素をクリックします。
ダイアグラム上の要素をグループ化するには、次のようにします。
コンポーネント・パレットで、「グループ」をクリックします。
ダイアグラム上の、要素をグループ化する範囲の角にポインタを置き、マウス・ボタンを押したままの状態にします。
その部分にマウス・ポインタを移動します。
オブジェクトを完全に囲んだら、マウス・ボタンを放します。
ダイアグラム上でグループ化された要素を管理するには、次のようにします。
「グループの管理」機能を使用して要素をグループに追加またはグループから削除、要素を他のグループへ移動、またはグループを他のグループに追加または他のグループから削除します。
管理するグループを選択します。
右クリックして、「グループの管理」を選択します。
要素をグループに追加、またはグループから削除するには、[Shift]キーを押しながら目的の場所まで要素をドラッグする方法もあります。
関連要素をダイアグラムに表示するには、次のようにします。
ダイアグラム要素を選択し、「ダイアグラム」→関連する要素の表示を選択します。
または
ダイアグラム要素を右クリックし、関連する要素の表示を選択します。
「プロパティ」ダイアログを使用して、ダイアグラム要素のプロパティを変更するには、次のようにします。
次のいずれかの方法で「プロパティ」ダイアログを開きます。
ダイアグラムで要素をダブルクリックします。
または
ダイアグラム上の要素を選択し、ポップアップ・メニューから「プロパティ」を選択します。
インプレース作成および編集を使用して、ダイアグラムの特定のプロパティを変更するには、次のようにします。
新規のセカンダリ要素を直接作成し、モデル化されたダイアグラム要素に設定されているプロパティを変更できます。
プロパティ・インスペクタを使用して、ダイアグラム要素のプロパティを変更するには、次のようにします。
「表示」→「プロパティ・インスペクタ」を選択して、プロパティ・インスペクタを開きます。
ナビゲータで要素を選択します。
プロパティ・インスペクタで、変更するプロパティ値を見つけます。
プロパティ・インスペクタの右側でコントロールを選択し、値を変更します。(コントロールには、編集ボックス、ドロップダウン・リスト、チェック・ボックスなどがあります。)
注意: これらのオプションは、すべての要素で常に有効とはかぎりません。 |
ダイアグラムの表示は、すべての要素が表示されるシンボル・モードと、要素に関する基本的な情報のみが表示される圧縮モードを切り替えることができます。
ダイアグラムの要素を検索するには、次のようにします。
構造ペインで要素名をクリックします。ダイアグラムで要素が選択されます。ダイアグラムのサムネイル・ビューを使用して要素を検索することもできます。ダイアグラムのサムネイル・ビューを表示するには、ナビゲータでダイアグラムを選択するか、またはダイアグラムの背景をクリックして「表示」→「サムネイル」を選択します。表示領域ボックスをドラッグし、ダイアグラムのサムネイル・ビューの要素上に置きます。対応する要素がメイン・ダイアグラムのビューに表示されます。
ダイアグラム上にすでに存在する1つ以上の要素の色またはフォントを変更するには、次のようにします。
ダイアグラム上の要素(複数可)を選択します。
次に、プロパティ・インスペクタ(「表示」→「プロパティ・インスペクタ」)の「グラフィック・オプション」タブで、現在の色(またはフォント・タイプのボックス)を選択し、必要な変更を行ってから[Enter]キーを押します。
または
ツールバーでフォント・タイプ、フォント・サイズ、または色のボックスを選択し、必要な変更を行います。
または
ポップアップ・メニューから「ビジュアル・プロパティ」を選択し、必要な変更を行います。
ダイアグラムに追加されるダイアグラム要素の色またはフォントを変更するには、次のようにします。
「ツール」→「プリファレンス」を選択し、「ダイアグラム」を選択します。ダイアグラム・タイプを選択した後、(ドロップダウン・ボックスの「次のプリファレンスを編集」から)変更する要素タイプを選択します(図22-4)。
「色/フォント」タブで、必要な変更を行います。
塗りつぶしの色、フォント、フォントの色、線の色などダイアグラムのグラフィカル・オプションを1つ以上の要素にコピーするには、次のようにします。
コピーするプロパティを持つ要素を選択します。
右クリックして、「ビジュアル・プロパティ」を選択します。(「ツール」→「プリファレンス」→「ダイアグラム」と進んで、ビジュアルおよびグラフィックのすべてのプロパティをカスタマイズすることもできます。)
変更するプロパティを持つ1つ以上の要素を選択します。(要素のグループを選択する場合は[Shift]キーを押しながら選択します。)
右クリックして、「ビジュアル・プロパティの貼付け」を選択します。
ダイアグラムから要素をコピーし、別のダイアグラムに貼り付けるには、次のようにします。
ダイアグラム要素を選択し、ポップアップ・メニューの「コピー」を選択するか、ツールバーの「コピー」アイコンを選択するか、または[Ctrl]キーを押しながら[C]キーを押します。
貼付け先のダイアグラムを開きます。
ダイアグラム要素を追加する場所にポインタを置き、ポップアップ・メニューから「貼付け」を選択します(または、JDeveloperツールバーの「貼付け」アイコンを選択するか、[Ctrl]キーを押しながら[V]キーを押します)。
ダイアグラムから要素をコピーし、別のアプリケーションに貼り付けるには、次のようにします。
ダイアグラム要素を選択し、ポップアップ・メニューの「コピー」を選択するか、JDeveloperツールバーの「コピー」アイコンを選択する、または[Ctrl]キーを押しながら[C]キーを押します。
貼付け先のアプリケーションを開きます。
貼付け先のアプリケーションでクリップボードの貼付け機能を使用し、必要な場所にダイアグラム要素を配置します。
要素のサイズを変更するには、要素が目的のサイズになるまでグラッブ・バーをドラッグします。初期擬似状態や終了擬似状態など、一部のダイアグラム要素はサイズを変更できません。
一部の要素タイプには内部グラッブ・バーもあり、要素を選択するとそれが表示されます。内部グラッブ・バーは、ダイアグラム要素内のコンパートメントのサイズを変更する際に使用します。
ダイアグラム要素がサイズ変更されたり、ダイアグラムの表示端に移動すると、ダイアグラムは自動的にスクロールします。要素がサイズ変更されたり、ダイアグラム上から移動した場合、新しいダイアグラム・ページが追加されます。
要素をダイアグラム上で段階的に移動させる最も簡単な方法は、選択したダイアグラム要素をダイアグラム上でドラッグすることです。大きいダイアグラム上で要素を移動する場合は、クリップボードによる切取りおよび貼付けを使用します。
ダイアグラム要素をサイズ変更するには、次のようにします。
サイズを変更する要素を選択します。
要素の任意のグラッブ・バーにポインタを置き、マウス・ボタンを押したままの状態にします。グラッブ・バー上に置くと、ポインタは先頭が二重になった矢印として表示されます。
要素のサイズが変更されるまでグラッブ・バーをドラッグし、マウス・ボタンを放します。
ダイアグラム要素を移動するには、次のようにします。
移動する要素(複数可)を選択します。
要素にポインタを置き、マウス・ボタンを押したままの状態にします。
選択した要素を、新しい位置までドラッグします。
マウス・ボタンを放します。要素が他の要素に重なる場合は、お互いに重なって表示されます。要素を右クリックし、「最前面へ移動」を選択します。
ダイアグラム要素が格納されているファイルを削除することなく、その要素を現在のダイアグラムから削除できます。ファイル・システムから削除することもできます。
ダイアグラムのノードと内部要素は、次の方法で削除します。
「ファイル」→「切取り」を使用して削除できるダイアグラム上の要素は、ノードのみ(拡張済ノード内部のノードを除く)です。
内部UMLとJavaクラスおよびインタフェースは、「ディスクから削除」で削除できます。親要素の外部にドラッグされ、プライマリ・ノードになった要素は、「ファイル」→「切取り」で削除できます。
その他の内部ノード(ビュー・オブジェクト・インスタンス、エンティティ・オブジェクトの使用方法およびアプリケーション・モジュール・インスタンス)は、親要素の外部では存在できません。それらを削除するには、「編集」→「切取り」を選択します。
ダイアグラムから要素を削除するには、次のようにします。
要素を選択します。
「編集」→「削除」を選択するか、[Del]キーを押します。アソシエーションや属性などの要素に対して削除を使用すると、システムから完全に削除されます。
ダイアグラムの最前面または最背面に要素を移動するには、次のようにします。
ダイアグラム要素を右クリックし、「最前面へ移動」または「最背面へ移動」を選択します。
直前に行ったグラフィック操作を取り消す、または再実行することができます。グラフィック操作は、ダイアグラム上の要素の外観を変更する、次のような操作です。
クラス図の要素の切取りおよび貼付け。
ダイアグラム要素の位置およびサイズの変更。
ダイアグラム要素のフォント、色およびフォント・サイズの変更。
要素のプロパティの変更など、純粋にグラフィック上の変更ではない変更をダイアグラム要素に行った場合、取り消すことはできません。要素のプロパティを変更した場合、その前に行ったグラフィック上の変更も取消が不可能になります。
ダイアグラム上で直前に行ったグラフィック操作を取り消すには、次のようにします。
「編集」→「元に戻す[...]」を選択するか、「元に戻す」アイコンをクリックします。
ダイアグラム上で一度取り消したグラフィック操作を再実行するには、次のようにします。
「編集」→「やり直し[...]」を選択するか、「やり直し」アイコンをクリックします。
新規ギャラリでUMLダイアグラムを作成しなくても、UML要素を作成できます。「新規ギャラリ」で作成したUML要素はナビゲータにリストされ、複数のダイアグラムにドロップできます。
新規ギャラリを使用してUML要素を作成するには、次のようにします。
ナビゲータでプロジェクトを選択します。
「ファイル」→「新規」の順に選択します。新規ギャラリが表示されます。
「カテゴリ」パネルで「一般」ノードを開き、「UML」ノードを選択します。「項目」パネルにUML要素がリストされます。
「項目」パネルで、作成するUML要素を選択し「OK」をクリックします。選択したUML要素の「プロパティ」ダイアログが開きます。
「プロパティ」ダイアログをすべて入力し、「OK」をクリックします。UML要素がナビゲータに追加されます。UML要素にユースケース・テンプレートが関連付けられている場合は、ユースケース・フォームがデフォルトのエディタで開きます。
ノートまたは注釈とは、テキスト情報を含む、ダイアグラム上のグラフィカル・オブジェクトです。ノートは、ダイアグラムまたはダイアグラム上の要素に対するコメントの追加に使用します。ノートは、1つ以上の要素に添付できます。ノートは、個別のファイル・システム要素としてではなく、現在のダイアグラムの一部として格納されます。図22-5に示すように、コンポーネント・パレットでノート・オプションを使用できます。
ダイアグラムにノートを追加するには、次のようにします。
コンポーネント・パレットの「ダイアグラムの注釈」セクションで、「ノート」アイコンをクリックします。
デフォルト・サイズでノートを作成する場合は、ダイアグラムをクリックしてノートを作成します。
または
異なるサイズでノートを作成する場合は、ダイアグラムをクリックし、ノート・ボックスを必要なサイズまでドラッグしてからマウス・ボタンを放します。
ノートのテキストを入力し、ダイアグラム上をクリックします。
ダイアグラムの要素にノートを添付するには、次のようにします。
コンポーネント・パレットの「ダイアグラムの注釈」セクションで、「添付」アイコンをクリックします。
ノートをクリックします。
ノートを添付する要素をクリックします。
要素のフォント・サイズとフォント色、太字やイタリックの書式設定を変更するには、次のようにします。
ノート要素をクリックします。テキスト編集ボックスが表示されます。
編集するテキストを選択します。
テキストの書式を選択します。
ダイアグラムの表示方法を変更するには、要素を右クリックするか、ダイアグラムに対して「ツール」→「プリファレンス」で使用できる各種のオプションを使用します。
ダイアグラムで1つの連結部を非表示にするのか、任意の数の連結部を非表示にするのかを選択します。ダイアグラム上で非表示になっている連結部も「構造」ウィンドウには表示され、名前に「(非表示)」が追加されます。非表示の連結部がある場合、個別または同時に再表示できます。
ダイアグラム上の1つ以上の連結部を非表示にするには、次のようにします。
非表示にするダイアグラム連結部(複数可)を選択します。(特定のタイプの連結部をすべて選択する場合は、連結部を右クリックして「このタイプをすべて選択」を選択します。)
右クリックして、「選択した図形の非表示」を選択します。
「構造」ウィンドウに移動して、非表示にする連結部(複数可)を選択し、右クリックして、「図形の非表示」を選択することもできます。
ダイアグラム上で非表示になっている1つ以上の連結部を表示するには、次のようにします。
「構造」ウィンドウで、表示する連結部(複数可)を選択し、右クリックして、「非表示の図形の表示」を選択します。
ダイアグラム上の非表示の連結部をすべて表示するには、次のようにします。
ダイアグラムの任意の部分を右クリックし、「非表示の端をすべて表示」を選択します。
構造ウィンドウに非表示の連結部をすべて表示するには、次のようにします。
「構造」ウィンドウにリストされているオブジェクトを右クリックし、「可視性順」を選択します。
ダイアグラムで、改ページの表示/非表示を切り替えることができます。改ページは、ダイアグラム上に破線として表示されます。
新規のダイアグラムに改ページを表示するには、次のようにします。
「ツール」→「設定」を選択します。
ダイアログ・ボックスの左ペインで、「ダイアグラム」をクリックします。
ダイアログ・ボックスの左ペインで、ダイアグラム・タイプをクリックします。クラス図にページはありません。
「改ページの表示」チェック・ボックスを選択して、新規のダイアグラムに改ページを表示します。
「OK」をクリックします。
連結部は、斜線または直線のスタイルでレイアウトされます。
斜線は、任意の角度で移動できます。直線は、一連の直角として常に表示される線です。ダイアグラムの線のスタイルが斜線に設定されている場合、後で任意の角度で線(または線の一部)を新しい位置に移動できます。
ダイアグラムのconnector要素のタイプごとに、デフォルトの線のスタイルを設定できます。(「行スタイル」は、連結部である要素のタイプごとに設定できるダイアグラム設定の1つです)。
特定のダイアグラムに線のスタイルを設定し、ダイアグラム・タイプのデフォルトの線のスタイルを上書きすることもできます。
この方法を使用して、線のスタイルを斜線から直線に変更する場合、対角線上に描画されたダイアグラム上の線は、直角で再描画されます。
この方法を使用して、線のスタイルを直線から斜線に変更する場合、ダイアグラム上には変更は表示されませんが、後でダイアグラム上の線を任意の角度で新しい位置に移動できるようになります。
描画の線のスタイルに関係なく、ダイアグラム上で個別の線を選択し、その線のスタイルを変更できます。個別の線を斜線から直線に変更する場合、線は直角を使用して再描画されます。個別の線を斜線から直線に変更する場合、線は変更されませんが、後で任意の角度で線(または線の一部)を再配置できます。
すでにダイアグラム上に存在するすべての線を直線にすることもできます。このオプションを選択した場合、必要に応じて対角線を使用して、開始点から終了点までの最短ルートですべての線が再描画されます。このオプションを使用すると、現在のダイアグラムの線のスタイルが斜線に設定されます。設定後に、ダイアグラムの線のスタイルを斜線に戻すと、すべての線が直角で再描画されます。
線が交差するときのスタイルも、ブリッジ交差とトンネル交差から選択できます。ブリッジ交差スタイルを選択すると、線が交差する場所に2本の平行線が作成されます。トンネル交差スタイルを選択すると、交差する場所に半円が作成されます。デフォルトのスタイルは、線が交差する2本の線を使用した標準の交差です。
ダイアグラム(または連結部である要素タイプ)のデフォルトの線のスタイルを設定するには、次のようにします。
「ツール」→「プリファレンス」を選択して「ダイアグラム」ノードを開き、ダイアグラムのタイプを選択します。
ドロップダウン・ボックスの「プリファレンスの編集」から「すべての端」を選択します。「すべての端」ではなく、連結部である特定の要素タイプを選択した場合、デフォルトの線のスタイルは、その要素タイプにのみ設定されます。
「表示オプション」セクションで、現在の線のスタイルをクリックします。現在の線のスタイル名がドロップダウン・ボックスになります。
ドロップダウン・ボックスから目的の線のスタイル(「斜線」または「直線」)を選択します。
現在のダイアグラムで特定の連結部の線のスタイルを変更するには、次のようにします。
ダイアグラムで連結部(複数可)を選択したまま、「ダイアグラム」→「線のスタイル」を選択し、「斜線」または「直線」を選択します。
L字を新しく連結部に追加するには、次のようにします。
[Shift]キーを押しながら、新しいL字を作成する連結部をクリックします。(新しいL字を追加して連結部のルートを変更できるのは、線のスタイルが斜線に設定されている場合のみです。)
連結部からL字を削除するには、次のようにします。
[Shift]を押しながら、削除するL字をクリックします。
連結部を直線にするには、次のようにします。
ダイアグラム上で直線にする連結部(複数可)を選択し、「ダイアグラム」→「直線にする」を選択します。(これで中間のL字はすべて削除されます。)
すべての線の交差スタイルを変更するには、次のようにします。
「ツール」→「プリファレンス」→「ダイアグラム」→「交差スタイル」を選択します。ダイアグラムのプロパティ・インスペクタで交差スタイルを変更することもできます。デフォルトのスタイルは、線が交差する2本の線を使用した標準の交差です。
ダイアグラムのレイアウトは、様々な方法で変更できます。レイアウトの変更には、ダイアグラム上の任意またはすべての要素に対するレイアウト・スタイルの適用、要素のプロパティすべてを表示するためのダイアグラム上のノードの高さの変更、および要素の位置合せと配置が含まれます。
ダイアグラムは、階層、対称、グリッド、行の事前定義済スタイルの1つに従ってレイアウトできます。
要件に応じて、ダイアグラム全体をレイアウトすることも、または階層(上から下、下から上、左から右、右から左)、対称、グリッド、直交、行の様々なレイアウト・スタイルの1つに従って、選択したダイアグラム要素のみをレイアウトすることもできます。
汎化構造および方向が定義されている他の連結部に基づいて、階層内のダイアグラム要素をレイアウトします。ノード間の連結部は、最も直接的なルーティングでレイアウトされます。他のノードに連結されていないダイアグラム上のノードは、グリッド・レイアウトでレイアウトされます。階層レイアウトは、上から下、下から上、左から右、右から左の4種類の方向で使用できます。
ノード間の連結部に基づいて最も対称的な方法でダイアグラム要素をレイアウトします。特定の状況では、対称レイアウトにより中央のノードの周囲に放射状レイアウトでノードが配置されます。他のノードに連結されていないダイアグラム上のノードは、グリッド・レイアウトでレイアウトされます。
直交ダイアグラムには、階層と非階層の要素が表示され、位置合せされたコンポーネントの端がすべて同じ方向になります。UMLクラス図の場合、汎化の各階層を位置合せして表すレイアウトが作成されます。
左から右への行または上から下への列でノードを直線的にレイアウトしたグリッド・パターンで、ダイアグラム要素をレイアウトします。ノードは、左上のノードから開始するグリッド・パターンでレイアウトされます。
ダイアグラムにグリッドが表示されていない場合でも、ダイアグラム上に作成または移動したダイアグラム要素が、最も近いグリッド線に自動的に合せられるように設定できます。ダイアグラム上のグリッド・セルは正方形で、このセルの高さおよび幅の変更には、値が1つのみ必要です。デフォルトでは、アクティビティ図上の要素はグリッドに合せられていません。
ダイアグラムのグリッド表示と動作を現在のダイアグラムに定義するには、次のようにします。
ダイアグラムのグリッド表示および動作を定義するダイアグラム上をクリックします。
プロパティ・インスペクタ(「表示」→「プロパティ・インスペクタ」)で、変更するプロパティの現在の値を選択し、そのプロパティの新しい値を入力または選択します。
ダイアグラムのグリッド表示と動作を新規のダイアグラムに定義するには、次のようにします。
「ツール」→「プリファレンス」を選択して「ダイアグラム」を選択し、目的のダイアグラム・タイプを選択します。
次のオプションから選択します。
グリッドを表示する場合は、「グリッドの表示」チェック・ボックスを選択します。
要素をグリッドに合せる場合は、「グリッドに合せる」チェック・ボックスを選択します。要素をグリッドに合せる際に、グリッドを表示する必要はありません。
「グリッド・サイズ」フィールドにグリッド・サイズを入力します。
「OK」をクリックします。
ダイアグラム上で、要素の位置を垂直方向および水平方向に合せることができます。また、要素の垂直間隔および水平間隔が均等になるように、要素の位置を変更できます。
要素を配置する場合は、選択した要素の中で垂直軸および水平軸から最も離れた要素が、境界として使用されます。効果的に配置するには、選択範囲にある最も離れた要素を移動してから、要素を再配置します。
ダイアグラム上の要素の位置合せとサイズ変更は、次のようにします。
ダイアグラムで複数の要素を選択します。「ダイアグラム」→「位置合せ」を選択します。
次のうちから選択します。
水平方向の位置合せを選択します。
垂直方向の位置合せを選択します。
選択した要素のサイズを設定する場合は、「サイズ調整」チェック・ボックスを使用します。
選択したすべての要素の幅を揃えるには、「同じ幅」を選択します。変更後の要素の幅は、選択した要素の平均の幅になります。
選択したすべての要素の高さを揃えるには、「同じ高さ」を選択します。変更後の要素の高さは、選択した要素の平均の高さになります。
「OK」をクリックします。
ダイアグラム上の要素を配置するには、次のようにします。
3つ以上のダイアグラム要素を選択し、「ダイアグラム」→「配置」を選択します。
要素の配置方法を次のように選択します。
水平方向の配置を、「なし」、「左揃え」、「中央揃え」、「間隔調整」、「右揃え」から選択します。
垂直方向の配置を、「なし」、「上詰め」、「中央揃え」、「間隔調整」、「下詰め」から選択します。
「OK」をクリックします。
レイアウト・スタイルを使用するには、ダイアグラムのポップアップ・メニューを開いて「図形のレイアウト」を選択するか、図22-10のようにダイアグラムの「レイアウト・オプション」ドロップダウンを使用します。
ダイアグラムで要素をレイアウトするには、次のようにします。
次のいずれかを選択します。
ダイアグラム上の個々の要素を選択します。
ダイアグラムのすべての要素をレイアウトする場合は、ダイアグラム上をクリックします。
コンテナ要素内のすべての要素をレイアウトする場合は、コンテナ要素を選択します。
ダイアグラム・ツールバーで、ドロップダウン・リストから必要なレイアウト・スタイルを選択します(図22-10)。
選択した要素がダイアグラム上にレイアウトされた後も、ダイアグラム上の任意の場所にまとめて移動できるように、その要素は選択された状態になっています。
現在のダイアグラム上で新しい要素のレイアウトを設定するには、次のようにします。
プロパティ・インスペクタ(「表示」→「プロパティ・インスペクタ」)でレイアウト・スタイルを選択します。
ダイアグラム上で要素のデフォルト・レイアウトを設定するには、次のようにします。
「ツール」→「プリファレンス」→「ダイアグラム」を選択し、ダイアグラム・タイプを選択します。
使用するレイアウト・スタイルを選択し、「OK」をクリックします。
JDeveloperでは、Javaクラスおよびインタフェースに対するUML変換と、XMIインポートおよびエクスポート機能がサポートされています。これらの変換機能を使用すると、UMLなどプラットフォームに依存しないモデルから、Javaのようなプラットフォーム固有のモデルを生成できます。同じソース・モデルとターゲット・モデルを使用して、変換を何度でも実行できます。JavaクラスからUMLへの逆変換の機能もあります。次のように、変換は個別またはグループのUMLオブジェクト、クラスおよびインタフェースに対して実行できます。
元の要素と同じダイアグラム上の変換。
変換される要素用に作成された新規ダイアグラム上の変換。
現在のプロジェクトのみで、ダイアグラムに表示されない変換。
UML、Javaクラスまたはインタフェースを変換するには、次のようにします。
変換するUMLオブジェクト、Javaクラスまたはインタフェースを選択します。
次のいずれか1つを実行します。
UMLモデリング・ツールを使用すると、UMLクラス・モデルを作成してオフライン・データベースに変換する、またはその逆に変換することができます。
UMLクラス図をオフライン・データベースに変換するには、次のようにします。
変換するダイアグラムを作成するか、開きます。
変換するクラス(複数可)を選択します。右クリックして、「変換」を選択します。
次のいずれかを選択します。
モデルのみ。UMLクラス・モデルに基づくオフライン・データベース・モデルが、現在のプロジェクトのアプリケーション・ナビゲータに作成されます。
同一ダイアグラム。UMLクラス図に基づくオフライン・データベース・モデルが作成されます。オフライン・データベース・モデルは、次の場所で表示できます。
アプリケーション・ナビゲータ。
UMLクラス図(モデル化された表として)。
新規ダイアグラム。UMLクラス図に基づくオフライン・データベース・モデルが作成されます。オフライン・データベース・モデルは、次のどちらでも表示できます。
アプリケーション・ナビゲータ。
新規データベース・ダイアグラム(モデル化された表および制約として)。
UMLをオフライン・データベースへを選択します。
「終了」をクリックします。
オフライン・データベース・オブジェクトをUMLに変換するには、次のようにします。
変換するオフライン・データベース・オブジェクト(複数可)を選択します。
右クリックして、「変換」を選択します。次のいずれかのオプションを選択します。
モデルのみ。データベース・スキーマに基づくUMLクラス・モデルが、現在のプロジェクトのアプリケーション・ナビゲータに作成されます。
同一ダイアグラム。オフライン・スキーマに基づくUMLクラス図が作成されます。新しいクラスは、次のどちらでも表示できます。
アプリケーション・ナビゲータ。
UMLクラス図(変換された各データベース表のクラスとして)。
新規ダイアグラム。ウィザードが完了すると、オフライン・データベース・スキーマに基づくUMLクラス図が作成されます。クラスは、次のどちらでも表示できます。
アプリケーション・ナビゲータ(新規のUMLクラスとして)
新規クラス図(変換された各データベース表のクラスとして)。
図22-13のように、「変換」ダイアログが表示されます。「オフライン・データベース・オブジェクトをUMLへ」を選択します。
「OK」をクリックします。
新規ギャラリ・ウィザードを使用してUMLからオフライン・データベース・オブジェクトを作成するには、次のようにします。
アプリケーション・ナビゲータで、変換するUMLクラスを含むプロジェクトを選択します。
「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。
「カテゴリ」ツリーで「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。「項目」リストで、「UMLクラス・モデルからのオフライン・データベース・オブジェクト」をダブルクリックします。
カテゴリまたは項目が見つからなければ、正しいプロジェクトが選択されていることを確認して、「フィルタ方法」ドロップダウン・リストの「すべての機能」を選択します。
図22-14のように、UMLクラス・モデルからのオフライン・データベース・オブジェクト・ウィザードが開きます。変換するUMLクラスとアソシエーションを選択します。
「終了」をクリックします。オフライン・データベース・オブジェクトが、アプリケーション・ナビゲータに作成されます。
「新規ギャラリ」からウィザードを起動した場合、オフライン・データベース・オブジェクトはアプリケーション・ナビゲータでのみ使用できます。
変換中には、次の選択肢があります。
UML名をオフライン・データベース名に変換する方法。
UMLクラス階層と多対多のアソシエーションの処理方法。
ブジェクトが所属するスキーマ。
表示するログ・メッセージ。どの変換メッセージをログに記録するか、およびメッセージをログ・ウィンドウとログ・ファイルのどちらに送信するかを選択できます。
ログに記録する変換メッセージのタイプを選択するには、次のようにします。
UMLクラス・モデルからのオフライン・データベース・オブジェクト・ウィザードを起動します。
「ロギング・オプションの設定」ページで、ログ・メッセージを表示する場所と、ログに記録するアクションのタイプを選択します。
変換を実行する前に変更内容を確認するオプションがあります。また、ログに記録される変換メッセージの種類と、ログ・ウィンドウとログ・ファイルのどちらに表示するかを指定できます。
汎化の変換
UMLクラス・モデルからのオフライン・データベース・オブジェクト・ウィザードの「クラス・オプションの設定」ページでは4つのタイプの汎化を指定できます。
オプションは次のとおりです。
ルート・クラス変換
リーフ・クラス変換
全クラスを変換して汎化
全クラスを変換、外部キーを作成
図22-15のように、2つのルート・クラスと3つのリーフ・クラスを考えます。
「ルート・クラス変換」のオプションを選択した場合、図22-16に示すように、ルート・クラスがオフライン表に変換され、階層における子孫クラスの列と外部キーもすべて変換されます。識別子列を作成するオプションもあります。識別子列には、特定の行に対してどのサブクラスをインスタンス化するかを判読するために、永続層に対するマーカー値が含まれます。
「汎化クラスから継承し、リーフ・クラスのみを変換します」のオプションを選択した場合、図22-17に示すように、リーフ・クラスがオフライン表に変換され、先祖クラスの列と外部キーを継承します。
「汎化クラスから継承し、すべてのクラスを変換します」のオプションを選択した場合、変換セットのすべてのクラスに対してオフライン表が作成されます。図22-18に示すように、各表は先祖表から列と外部キーを継承しますが、その点を除けば独立しています。
「全クラスを変換、外部キーを作成」のオプションを選択した場合、変換セットのすべてのクラスに対してオフライン表が作成されます。図22-19に示すように列と外部キーは継承されず、親表(複数可)に対して外部キーが作成されます。
JDeveloperにはDatabaseProfileと呼ばれるUMLプロファイルが付属しています。このプロファイルを使用すると、オフライン・データベース・モデルに変換されるときのクラス・モデルに対する処理を指定できます。UMLプロファイルの詳細は、第22.9項「UMLプロファイルの使用」を参照してください。
たとえば、属性を列に変換するときに使用される列データ型に、属性を割り当てることができます。
DatabaseProfileを使用すると、それに含まれるステレオタイプのプロパティを使用して、要素の変換方法を制御できます。このプロファイルに含まれるステレオタイプとそのプロパティは、表22-1のとおりです。
表22-1 DatabaseProfileのステレオタイプとプロパティ
ステレオタイプ | 適用先 | オフライン・データベースのタイプ | プロパティ | 備考 |
---|---|---|---|---|
データベース・パッケージ |
UML::Package |
SCHEMA |
変換後の名前 |
|
データベース・クラス |
UML::Class |
TABLE |
変換後の名前 |
|
データベース属性 |
UML::Property |
COLUMN |
変換後の名前 |
UMLプロパティは、"attribute"またはアソシエーションの端です。 |
データベース・データ型 |
UML::Type |
該当なし |
DatatypePrimary |
UMlメタモデルで、TypeはClass、Association、PrimitiveTypeなどを含む広範囲の要素のスーパークラスです。このステレオタイプはすべてに適用できます。プロパティ(属性)が特定タイプの場合は常に、トランスフォーマによって読取りが可能です。 |
データベース・アソシエーション |
UML:: |
CONSTRAINT |
変換後の名前外部キーのネーミング・ルールです。 |
|
データベースの汎化 |
UML:: |
CONSTRAINT |
変換後の名前外部キーのネーミング・ルールです。 |
特定のトランスフォーマは汎化から外部キーを作成し、このステレオタイプがここで適用されます。 |
属性(プロパティ)は、表22-2を参照してください。
表22-2 DatabaseProfileのステレオタイプのプロパティ
プロパティ | 説明 | データ型 |
---|---|---|
変換後の名前 |
変換されるデータベース・オブジェクトの名前。ブランクのままにすると、デフォルトのネーミング・ルールが適用されます。 |
文字列 |
データ型 |
データ型のSQLテキスト。 デフォルト、ANSI、Oracleと、サポートされるその他のデータベース・タイプなど様々なデータ型があります。 |
文字列 |
外部キー・ネーミング・ルール |
アソシエーションから外部キーに名前を付けるときに使用するルール。UML名を使用するか、databaseNameプロパティを使用するか、または表名からデフォルト名を導出します。 |
両方の表 |
主キー |
変換された列が親表の主キーの一部であることを示すフラグ。 |
ブール |
DatabaseProfileを使用してクラス・モデルを変換するには、次のようにします。
アプリケーション・ナビゲータを右クリックして「プロパティ」を選択し、UMLパッケージpackage.uml_pck
の「パッケージ」の「プロパティ」ダイアログを開きます。
ヘルプを参照するには、[F1]を押すか、「パッケージ」の「プロパティ」ダイアログ内で「ヘルプ」をクリックしてください。
「パッケージ」プロパティ・ダイアログで「プロファイル・アプリケーション」を選択し、「追加」をクリックします。
図22-20に示すように、「プロパティ」ウィンドウで、使用可能なプロファイルのリストからDatabaseProfile
を選択します。
オプションで、パッケージをオフライン・データベース・スキーマに変換した後で使用する名前を指定します。「適用済ステレオタイプ」ノードを選択し、「追加」をクリックします。「プロパティ」に、変換後の名前
という新しいプロパティがリストされます。名前を入力します。
「OK」をクリックします。図22-21に示すように、新しいファイルDatabaseProfile.uml_pa
がアプリケーション・ナビゲータにリストされます。
DatabaseProfileファイルを確認するには、アプリケーション・ナビゲータで右クリックし、「プロパティ」を選択します。ダイアログには、変換に使用されるプロファイルが表示されます。「OK」をクリックしてダイアログを閉じます。
これで、プロジェクトの様々な要素にステレオタイプを適用できるようになります。図22-21に示した例では、Employee.uml_cla
を右クリックして「プロパティ」を選択し、Employeeクラスにステレオタイプを適用しています。これにより、この要素の「クラスのプロパティ」ダイアログが開きます。
変換後に使用する名前を指定するには、「適用済ステレオタイプ」を選択し、「追加」をクリックして「データベース・クラス」
を選択します。図22-22のように、「プロパティ」で、「変換後の名前」の隣に値を入力します。
ステレオタイプは他の要素に適用できます。たとえば、このクラスによって所有されている属性にデータ型と主キーを指定できます。「クラス」の「プロパティ」ダイアログで、「所有された属性」を展開して既存の属性を選択するか、「追加」をクリックしてその名前を入力して属性を作成します。
所有された属性のノードを展開して「適用済ステレオタイプ」を選択し、「追加」をクリックします。図22-23では、このレベルで指定できる多くのデータ型、属性が主キーに変換されるかどうか、および変換後の名前を示しています。
DatabaseProfileで変換されるステレオタイプとプロパティの詳細は、表22-1「DatabaseProfileのステレオタイプとプロパティ」および表22-2「DatabaseProfileのステレオタイプのプロパティ」を参照してください。
適用するステレオタイプを設定後、第22.7.1項「UMLとオフライン・データベースの変換方法」の手順に従ってUMLクラス・モデルの変換に進むことができます。今度は、使用したDatabaseProfileのステレオタイプとプロパティが変換中に適用されます。
他のモデリング・ソフトウェアを使用して作成したモデルは、そのモデルがUML 2.1.1に準拠している場合は、XML Metadata Interchange (XMI)ファイルを使用してJDeveloperにインポートできます。
XMI仕様では、メタモデルを使用してUMLモデルをXMLドキュメントに変換する方法が記述されています。JDeveloperは、この仕様に準拠しています。詳細は、「Catalog of OMG Modeling and Metadata Specification」(http://www.omg.org/technology/documents/
)を参照してください。
modeling_spec_catalog.html
インポート・プロセスには、次の制限があります。
ダイアグラムはインポートできません。
XMIには1つのファイルのみ含まれている必要があります。XMIによって参照されるプロファイルはすべて、「ツール」→「プリファレンス」→「UML」→「プロファイル」を使用してインポート前にJDeveloperに登録しておく必要があります。プロファイルは個別のファイルにある必要があります。詳細は、第22.9項「UMLプロファイルの使用」を参照してください。
ダイアグラムは、クラス、アクティビティ、シーケンス、およびユースケース要素をインポートするときに自動的に作成されます。図22-25に示すように、このオプションはプロセス中にダイアログで示されます。
UMLモデルをXMIとしてインポートするには、次のようにします。
ナビゲータで空のプロジェクトを選択し、「ファイル」→「インポート」を選択します。
「XMIからUML」を選択し、「OK」をクリックします。
「UMLをXMIからインポート」ダイアログを完了します。
UMLモデルをXMIとしてエクスポートするには、次のようにします。
プロジェクトを選択します。
「ファイル」→「エクスポート」を選択します。
インポート中には、「XMIインポート」ログで頻繁に見られる一般的なエラーと警告があります。これらの多くは、いくつかの単純な手順のみで簡単に解決できます。
他のXMLと同様、有効なファイルの構造は、xmlnsネームスペースによって参照されるXMLスキーマによって指定されます。XMLは、オブジェクトまたはその親要素オブジェクトの値を表す要素と、値である属性とで構成されます。値が他のオブジェクトへの参照である場合もあり、たとえばHTMLの場合にはhrefとして表されます。ログの項目をダブルクリックすると、問題のある要素に移動します。多くの場合、ネームスペースや標準オブジェクト参照が正しくないことが問題の原因です。
一般的なエラー・メッセージとその解決方法を次に示します。
プロファイルの欠落
エラー(16,80): appliedProfileプロパティの多重度は[1..1]です
エラー(17,70): 参照しようとした要素http://example.oracle.com/MyProfile#_0が欠落しています
警告(2,356): http://example.oracle.com/MyProfileはネームスペースとして認識されていません
警告(22,142): 要素urn:uuid:2b45f92d-31c8-4f67-8898-00a2f5bbfd22は無視されます
UMLには、'profile'で追加のXMLスキーマを指定できる拡張メカニズムがあります。前述の最初の3つの問題は、関連するプロファイルが登録されていなかったことを示しています。プロファイルを登録するには、第22章「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プロファイル・ネームスペースが無効
エラー(13,80): appliedProfileプロパティの多重度は[1..1]です。
エラー(14,81): 参照しようとした要素http://schema.omg.org/spec/UML/2.1.1/L2Unknown#_0が欠落しています
警告(2,344): http://schema.omg.org/spec/UML/2.1.1/L2Unknownはネームスペースとして認識されていません
これは、標準プロファイルがすでにツールに登録されている場合です。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が欠落しています
属性タイプのように、このエラーを参照して解決するデータ型の標準セットがあります。XMIのhrefは、次のいずれかに更新する必要があります。
http://schema.omg.org/spec/UML/2.1.1/uml.xml#Boolean
http://schema.omg.org/spec/UML/2.1.1/uml.xml#Integer
http://schema.omg.org/spec/UML/2.1.1/uml.xml#String
http://schema.omg.org/spec/UML/2.1.1/uml.xml#UnlimitedNatural
UMLプロファイルは、UMLメタモデルのサブセットです。これらのサブセットは、UMLメタデータで指定されているルール以上の整形式のルールを指定します。整形式のルールとは、標準のUMLメタモデル仕様で使用される条件です。UMLメタモデル仕様には、メタモデル要素の定義に有効なUMLオブジェクト制約言語(OCL)で記述された一連の制約が記されています。JDeveloperには、UMLの標準プロファイルがいくつか付属しています。
図22-27に示すように、独自のプロファイルを追加するには、「ツール」→「プリファレンス」→「UML」→「プロファイル」に進んで追加記号をクリックします。カスタム・プロファイルを追加後、プロファイルを選択して「編集」をクリックし、ドキュメントURLを編集します。UMLプロファイルの詳細は、「OMG Catalog」(http://www.omg.org/technology/documents/profile_catalog.htm
)を参照してください。
プロファイルを使用すると、UMLモデルにステレオタイプを適用し、それをUMLパッケージに適用することで使用できます。
UMLプロファイルを使用するには、次のようにします。
必要な場合には、「新規ギャラリ」から新規のUMLパッケージを作成します。「ファイル」→「新規」を選択し、「一般」カテゴリで「UML」を選択して、「項目」で「パッケージ」を選択します。
そうでない場合、アプリケーション・ナビゲータを右クリックして「プロパティ」を選択し、既存のUMLパッケージの「パッケージ」の「プロパティ」ダイアログを開きます。
ヘルプを参照するには、[F1]を押すか、「パッケージ」の「プロパティ」ダイアログ内で「ヘルプ」をクリックしてください。
「パッケージ」の「プロパティ」ダイアログで、「プロファイル・アプリケーション」ノードを選択して「追加」をクリックし、使用可能なプロファイルのリストから使用するUMLプロファイルを選択します。
これで、クラスを作成してステレオタイプを追加できるようになります。「パッケージ」の「プロパティ」ダイアログで、「パッケージ化要素」ノードを選択し、「追加」をクリックして「クラス」
を選択します。
「クラス」ノードを展開し、「適用済ステレオタイプ」を選択して「追加」をクリックします。値を指定するプロパティは、使用しているUMLプロファイルによって異なります。図22-28に、JDeveloperに付属するDatabaseProfileというUMLプロファイルの「変換後の名前」プロパティを示します。
この項では、UMLパッケージにプロファイルを関連付け、パッケージ・レベルでステレオタイプを適用する方法について説明しました。プロファイルのタイプによっては、他の要素にステレオタイプを適用できる場合があります。第22.7.2項「DatabaseProfileの使用」の例を参照してください。
UMLクラス図を使用して、クラスやタイプなどのstatic要素、その内容と関係のコレクションをモデル化し、クラスやインタフェース、属性、操作、アソシエーション、汎化および実現を視覚的に作成またはインスペクトします。
クラスと関連要素をクラス図に追加するには、コンポーネント・パレットを使用します。図22-29に示すように、各要素は一意のアイコンと説明で表されます。
クラスとインタフェースをダイアグラムに追加するには、次のようにします。
クラスをダイアグラムにドラッグし、クラスとインタフェースを作成します。プロジェクト設定とデフォルト・プロパティのモデル・パスで指定されている場所に、要素が作成されます。(「アプリケーション」→「デフォルト・プロジェクト・プロパティ」。)パッケージをクリックしてパッケージをモデル化することもできます。
モデル化されたパッケージを右クリックして「ドリル・ダウン」を選択すると、そのパッケージのダイアグラムが表示されます。
クラス・プロパティを追加または編集するには、次のようにします。
クラス・プロパティは、次のいずれかの方法でダイアグラム上にモデル化されたクラスとインタフェースに追加されます。
モデル化されたクラスまたはインタフェースをダブルクリックし、プロパティ・ダイアログにアクセスします。
クラスまたはインタフェースを右クリックし、「プロパティ」を選択します。
汎化、実現、およびアソシエーションを追加するには、次のようにします。
汎化した構造をクラス図に作成するには、「クラス」の「コンポーネント・パレット」で「汎化」アイコンを使用します。
クラスによってインタフェースを実現する場所に、ダイアグラムの「クラス」の「コンポーネント・パレット」で「実現」アイコンを使用してインタフェースをモデル化します。
「アソシエーション」アイコンを使用し、モデル化されたクラスとインタフェースの間で様々なアソシエーションを作成できます。アソシエーションは、モデリングされたアソシエーションをダブルクリックして、そのプロパティを変更することによって変更します。
ネストされたクラスとネストされたインタフェースを追加するには、次のようにします。
ネストされたクラスとネストされたインタフェースを作成するには、モデル化されたクラスまたはインタフェースにそれらを作成するか、インプレース作成(シンボル表示のみ)を使用して図形の表示設定を変更するか、またはクラスを右クリックして「表示モード」→「拡張済」を選択した後、拡張済ノード内部に別のクラスを作成します。
属性と操作を追加するには、次のようにします。
モデル化されたクラスとインタフェースに属性と操作を追加するには、次のいずれかの方法を使用します。
モデル化されたクラスまたはインタフェースをダブルクリックし、要素のプロパティ・ダイアログを使用して属性または操作を追加します。
クラスまたはインタフェースを右クリックして「プロパティ」を選択し、要素のプロパティ・ダイアログを使用して属性または操作を追加します。
ダイアグラム上の1つのクラスまたはインタフェースから、同じダイアグラム上の別のクラスまたはインタフェースに、既存の属性または操作をドラッグします。
クラスまたはインタフェースにおける属性または操作の順序を変更するには、画面で上下にドラッグします。属性または操作の「アルファベット順でソート」プロパティは、選択を解除する必要があります(「ツール」→「プリファレンス」→「ダイアグラム」→「クラス」→「次のプリファレンスを編集」: 「クラス」または「インタフェース」→「属性」または「操作」→「アルファベット順でソート」)。
1つ以上の属性または操作を非表示にするには、次のようにします。
非表示にする属性または操作を選択します。
選択した項目を右クリックして、「非表示」→「選択した図形」を選択します。
クラスまたはインタフェースで非表示の属性または操作をすべて表示するには、次のようにします。
クラスまたはインタフェースを選択して右クリックし、「非表示のメンバーをすべて表示」を選択します。
クラスは、クラス名と詳細を含む四角形として表されます。クラスは、圧縮、シンボルまたは拡張済のノードとして表示できます。表示プロパティを設定するには、「ツール」→「プリファレンス」→「ダイアグラム」→(「ダイアグラム・タイプ」)→「表示オプション」に進みます。
ダイアグラム上の要素の表示方法を変更することもできます。ダイアグラム上で、クラスおよびインタフェースはコンパートメントに分割されており、各コンパートメントには情報が1種類のみ含まれます。大きさが不足し、内容の全体を表示できない各コンパートメントには、省略記号(...)が表示されます。モデル化されたクラスのすべての属性を表示するには、クラスを右クリックして図形の高さの最適化を選択します。図22-30に、一般的なクラス図のレイアウトの例を示します。
すべての属性および操作には、可視性を表す記号が表示されます。可視性の記号には、Public (+)、Private (-)、Protected (#)および~ Packageがあります。
表22-3 クラス図の要素
要素 | 説明 |
---|---|
インタフェース |
インタフェースは、名前コンパートメントにキーワード≪interface≫が付いて表されます。インタフェースは、圧縮、標準または拡張済のノードとして表示できます。ネストされたクラスおよびインタフェースは、標準および拡張済のインタフェース内部でモデル化できます。 |
列挙 |
列挙は、有限の、通常は小さいセットの名前付きリテラルを持つデータ型です。列挙には、列挙の値を表す名前付き識別子のセットが含まれます。列挙には、モデルにおけるその役割を表す名前があります。 |
1対*アソシエーション |
「1対多」は、クラス間の関係を定義します。ダイアグラム上では実線で表されます。 |
方向を定めた1対1アソシエーション |
「有向1対1アソシエーション」は、ダイアグラムでは、アソシエーションの方向を開いた矢印で指す実線として表示されます。 |
方向を定めた1対多アソシエーション |
「有向1対*アソシエーション」は、ダイアグラムでは、複数のアソシエーションの方向を開いた矢印で指す実線として表示されます。 |
有向コンポジット集約 |
ダイアグラムでは、アソシエーションの方向に開いた矢印と、塗りつぶされたダイアモンド型の付いた実線でアソシエーションの発生側に表示されます。 |
汎化 |
クラス間の汎化関係を定義します。ダイアグラムでは、特殊クラスまたはインタフェースの方向を白抜きの矢印で指す実線として表示されます。 |
実現 |
インタフェースがクラスによって実現される位置を定義します。ダイアグラム上に破線と実装されているインタフェースに向けた白抜きの矢印で表されます。 |
依存性 |
1つのダイアグラム要素が別のダイアグラム要素に依存していることを表します。ダイアグラム上には、破線と依存性の方向に向けた矢印で表されます。 |
クラス |
オブジェクトを表します。クラスは、オブジェクト指向アプリケーションの主要な構築ブロックを形成します。垂直に重ねた3つのコンパートメントを含む四角形として、ダイアグラム上で表されます。 |
パッケージ |
システムを複数のパッケージに分割するために使用し、システムを簡略化してわかりやすくします。 |
データ型 |
データ型は、データ値を定義するモデル要素です。 |
プリミティブ・タイプ |
プリミティブ型またはプリミティブ・データ型は、ブール、バイト、小数、DateTime、Double、Float、Timeなどのデータ型です。 |
制約 |
制約は、システムの動作やソリューションをモデル化するときの自由度、または自由度の欠如です。 |
ダイアグラムでインプレース編集機能を使用してクラスの名前を変更またはクラスを移動すると、そのクラスのソース・コードが自動的にリファクタされます。ダイアグラムでJavaパッケージの名前を変更またはパッケージを移動すると、そのパッケージの内容が自動的にリファクタされます。
ダイアグラムでフィールド、メソッドまたは内部クラスを削除すると、自動的に「安全に削除」リファクタ・パターンが適用されます。ダイアグラムのJavaクラス、インタフェース、列挙またはメンバーにリファクタ・パターンを適用するには、ダイアグラムで対象となるクラスまたはメンバーを選択し、「リファクタ」メニューから目的のリファクタ・パターンを選択します。
Javaクラス図のJavaクラス、インタフェースおよび列挙では、次のリファクタ・パターンを使用できます。
名前の変更
移動(ダイアグラムで1つ選択した場合にも複数選択した場合にも適用されます)
複製
インタフェースの抽出
スーパークラスの抽出
Javaクラス図のJavaフィールドおよびメソッドでは、次のリファクタ・パターンを使用できます。
名前の変更
移動
staticにする
メンバーのプル・アップ
メンバーのプッシュ・ダウン
メソッドの変更(Javaメソッドのみ)
ビジネス・プロセスのモデル化には、アクティビティ図を使用します。ビジネス・プロセスとは、注文処理、出荷、精算および支払いプロセス・フローなどビジネス目標を達成するために調整されたタスクです。
図22-31に示すように、アクティビティ図は、システムの動作を取得し調整されたアクションの実行を示します。
コンポーネント・パレットに、アクティビティ図に追加できる要素があります。「アクティビティ」は、ダイアグラムに直接配置できる唯一の要素です。他の要素は「アクティビティ」の内部に配置できます。表22-32と表22-4に示すように、各要素は一意のアイコンと説明のためのラベルで表されます。
表22-4 アクティビティ図の要素
要素 | 説明 |
---|---|
アクション |
アクションは、請求書の送信や支払いの受領など、動作を指定する基本単位です。アクティビティ内の1つのステップを表します。アクションは、一連の入力を受け取って一連の出力に変換します。アクションの実行は、モデル化されたシステムにおける変換または処理を表します。 アクションは、制御フローおよびオブジェクト・フローの形で入力を受け取る場合があり(後者は入力ピンを介して)、その処理または変換の結果を送信制御フローまたはオブジェクト・フローへ(後者は出力ピンを介して)、そしてさらに下流ノードに渡します。アクションの実行は、すべての前提条件が満たされるまで開始されません。 |
アクティビティ |
ビジネス・プロセスなど、システムによって実行される動作。アクティビティは、独自の処理、オブジェクト・ノード、およびそれらの間のフローによって定義される動作です。 |
アクティビティ最終ノード |
制御トークンを初めて受信したとき、アクティビティの実行を終了します。最終ノードは、アクティビティに複数あってもかまいません。アクティビティ最終ノードは、このダイアグラム上の各アクションが終了したことを示します。 |
分岐/結合 |
垂直または水平の棒として表示されます。分岐は1つの受信フローと複数の送信フローを持つ制御ノードです。結合は複数の受信フローを1つの送信フローに同期する制御ノードです。分岐/結合のペアを、1つのダイアグラム・ノードとして組み合せることができます。 |
コール動作アクション |
アクションの入力と出力を適切な動作パラメータに単純にマップします。 |
コール操作アクション |
操作コール・リクエストをターゲット・オブジェクトに転送し、そこで関連する動作を呼び出させることができます。動作の結果はアクション出力になります。アクションの引数値は、呼び出された動作の実行に使用できます。 |
中央バッファ |
オブジェクト・ノードの一種。トークンを格納(バッファ)する機能をノードに付与します。1つ以上のオブジェクト・ノードからの受信フローに着信するトークンを管理し、送信フローを介してどのトークンをどの順序で下流のオブジェクト・ノードに渡すかを選択します。 |
制御フロー |
制御トークンのフローを示します。 |
データ・ストア |
一時的でないデータにバッファを渡すオブジェクト・ノードの一種。 |
フロー終了ノード |
アクティビティ全体の実行は終了せずに受信フローを終了させます。 |
初期ノード |
アクティビティを実行する開始点。受信フローはなく、複数の送信フローがあります。初期状態はダイアグラムに1回のみ指定できます。 |
オブジェクト・フロー |
オブジェクト・ノードを接続します。オブジェクト・フローは、ピンを使用してアクションに接続できます。 |
ノードのマージ |
マージ・ノードには、複数の受信フローと1つの送信フローがあります。決定には、1つの受信フローと複数の送信フローがあります。 |
アクティビティ図を作成するには、次のようにします。
「新規のダイアグラムを作成するには:」の手順に従って新規ダイアグラムを作成します。
図22-32のように、ダイアグラムに追加する要素をコンポーネント・パレットから選択します。
アクティビティ図にパーティションを表示するには、次のようにします。
アクティビティ図で、アクションを選択します。
プロパティ・インスペクタで、「表示オプション」ノードを展開します。
「アクティビティ・パーティションの表示」を選択します。ダイアグラム上のアクションに「(パーティションなし)」というテキストが表示されます。
テキストをクリックします。編集ボックスが表示され、パーティションの名前を入力できます。
アクティビティ、アクション、中央バッファ・ノード、およびデータ・ストア・ノードをモデル化するには、アクティビティ図を開始する必要があります。
ダイアグラムにパーティションを作成するには、アクションを選択してから、プロパティ・インスペクタの「表示オプション」で「アクティビティ・パーティションの表示」を選択します。
アクティビティを作成するには、まずコンポーネント・パレットで「アクティビティ」アイコンを選択し、ダイアグラム上でアクティビティまたはアクションを作成する場所をクリックします。
初期ノードとは、アクティビティ実行の開始点です。最終ノードは実行の終了であり、アクティビティ最終ノードの場合はアクティビティ、フロー最終ノードの場合は特定のフローの最後になります。作成するには、コンポーネント・パレットで「初期ノード」アイコン、「アクティビティ最終ノード」アイコン、または最終フロー・ノード・アイコンをクリックし、ダイアグラム上でノードを配置する場所をクリックします。
シーケンス図は、クラス・インスタンス間の相互作用を表します。相互作用は、メッセージの交換としてモデル化されます。図22-33に示すように、シーケンス図の中核には、動作パターンを表すクラス・インスタンスとそれらの間で交換されるメッセージがあります。
コンポーネント・パレットから追加する要素は、シーケンス図のデフォルト位置にレイアウトされます。オブジェクト・ライフラインは垂直方向に位置合せされますが、他のオブジェクト・ライフラインに関連する場合には、作成メッセージに位置合せされます。同期メッセージと非同期メッセージは、ページの上から下へ時系列に配置されます。
図22-34に、シーケンス図で使用できるコンポーネント・パレットの要素を示します。各要素は一意のアイコンと説明のためのラベルで表されます。
表22-5 シーケンス図の要素
要素 | 説明 |
---|---|
非同期メッセージ |
ダイアグラム上では、対角線と開いた矢印で表されます。非同期メッセージは、送信者が処理を続行する前に応答を待つ必要がないメッセージです。 |
作成メッセージ |
ダイアグラムでは、作成されるオブジェクトを表す四角形と破線が元のオブジェクトよりも下方向にシフトして表されます。作成メッセージは、オブジェクトの作成を導くメッセージです。 |
相互作用 |
システムでタスクを完了するためのオブジェクトの相互作用を示すことによって、1つのケースの動作を取得します。 |
メッセージ |
メッセージは、相互作用に関与するオブジェクト間で特定の通信を定義するモデル要素です。メッセージは、相互作用に関与するあるオブジェクトから他のオブジェクトへの情報を伝達し、ライフラインで表されます。 |
オブジェクト・ライフライン |
ダイアグラム上では、四角形と下方向への垂直の破線で表されます。オブジェクト・ライフラインは、一定期間のオブジェクトの存在を表します。 |
RETURN |
戻りメッセージは、以前にメッセージが送信されたオブジェクトから戻されるメッセージです。戻りメッセージは同期メッセージからのみ有効で、それ自体が同期します。 |
メッセージの停止または破棄 |
ダイアグラムでは、実行仕様をメッセージ終端の大きい×印で表します。停止メッセージは、オブジェクトの削除を導く(または、オブジェクトが不要になったことを示す)メッセージです。 |
シーケンス図を作成するには、次のようにします。
「新規のダイアグラムを作成するには:」の手順に従って新規ダイアグラムを作成します。
図22-34「シーケンス図のコンポーネント・パレット」のように、ダイアグラムに追加する要素をコンポーネント・パレットから選択します。
シーケンス・トレーサを起動するには、次のようにします。
シーケンス図の一部でポップアップ・メニューを開き、「トレース・シーケンス」を選択します。トレーサは、各ステップをハイライト表示しながら実行仕様とメッセージをステップごとに実行します。
注意: 「トレース・シーケンス」は、相互作用を選択した場合に使用できます。ダイアグラム上のポップアップ・メニューには表れません。 |
シーケンス図の要素をダイアグラムに追加するには、コンポーネント・パレットでクリックするか、ドラッグ・アンド・ドロップします。
システム内で相互作用をモデル化するには、「相互作用」コンポーネントをダイアグラムに追加します。相互作用は、動作を構成する特定要素のためのコンテナです。
相互作用を右クリックして「順序」、「自動レイアウト」の順に選択すると、要素が相互作用内で自動レイアウトされます。
オブジェクト・ライフラインをシーケンス図に追加するには、相互作用を追加してから「オブジェクト・ライフライン」アイコンをクリックし、相互作用をクリックします。編集ボックスが開き、オブジェクトのインスタンス名を入力できます。匿名のインスタンスの場合は空白のままにできます。
分類子を追加するには、オブジェクト・ライフラインを右クリックし、「分類子の添付」を選択します。要素のリストが開き、オブジェクト・ライフラインに関連付ける要素を選択できます。分類子を添付するには、分類オブジェクトをナビゲータからオブジェクト・ライフラインにドラッグする別の方法もあります。これらの方法は、分類要素を表すアイコンの外観(オブジェクト・ライフラインの左上)によって確認できます。
非同期メッセージを追加するには、「メッセージ」アイコンをクリックし、そのメッセージの開始ポイントとなる垂直の破線、つまり実行仕様をクリックします。次に、そのメッセージの宛先になる垂直の破線をクリックします。
実行仕様をマージするには、ダイアグラム上で重ねます。次に右クリックして、「重複発生のマージ」を選択します。
実行仕様(および添付されているメッセージ)は、元の位置から上下に移動できます。この移動によって、ダイアグラムが無効になる場合があります。ダイアグラムが無効になると、メッセージ線が赤に変わり、宛先のオブジェクトに矢印アイコンが付きます。このアイコンは、ダイアグラムを有効にするためにオブジェクトを移動する方向を示します。
実行仕様ボックスのサイズは、実行仕様ボックスを選択したときに下隅に表示される黒色の小さいボックスをドラッグして変更できます。メッセージ線をドラッグして延長すると、実行仕様のサイズが変更されます。
テキストの編集ボックスを開くには、メッセージ線をクリックし、表示されたグレーのボックス内をクリックします。
同期メッセージの開始ポイントと宛先ポイントが同じオブジェクト・ライフラインである場合があります。この場合は、セルフ・コールを作成したことになります。
同期メッセージは、シーケンス図上では実線と塗りつぶされた矢印で表示されます。
作成メッセージを追加するには、「作成メッセージ」アイコン、元のオブジェクト、作成するオブジェクトの順にクリックします。オブジェクトを表す四角形と破線が元のオブジェクトより下方向にシフトします。
作成するオブジェクトがまだダイアグラム上にない場合には、元のオブジェクトを含む相互作用をクリックし、そのオブジェクトを表すオブジェクト・ライフラインを作成します。デフォルトでは、作成メッセージには「create」という名前が指定されます。メッセージ名の編集ボックスを開くには、メッセージ線をクリックし、表示されたグレーのボックス内をクリックします。
停止または破棄メッセージを追加する前に、このメッセージによって削除されるオブジェクトのオブジェクト・ライフラインがすでに追加されている必要があります。
停止メッセージまたは破棄メッセージを追加するには、「メッセージの停止または破棄」アイコン、元のオブジェクト、削除するオブジェクトの順にクリックします。同じオブジェクトで停止メッセージを開始して終了すると、自己削除オブジェクトが作成されます。停止メッセージの終了時の実行仕様は、大きい十字によって示されます。メッセージ行をクリックして、表示される灰色のボックス内をクリックすると、メッセージ名(たとえば、close)の編集ボックスを開くことができます。
他の実行仕様より前にメッセージの停止をシーケンスに追加した場合、その実行仕様は実装されず、警告フラグ付きで表示されます。
戻りメッセージを追加するには、「戻る」アイコンをクリックし、終了実行仕様をクリックします。次に、対応する開始実行仕様をクリックします。この戻りメッセージ線は別のオブジェクトで終了できません。戻りメッセージは、破線と塗りつぶされた矢印で表示されます。メッセージ・テキストの編集ボックスを開くには、メッセージ線をクリックし、表示されたグレーのボックス内をクリックします。
非同期メッセージ(およびその終わりの実行仕様)を追加するには、「非同期メッセージ」アイコンをクリックし、そのメッセージの開始ポイントとなる垂直の破線、つまり実行仕様をクリックします。次に、そのメッセージの宛先になる垂直の破線をクリックします。メッセージ・テキストの編集ボックスを開くには、メッセージ線をクリックし、表示されたグレーのボックス内をクリックします。
非同期メッセージの開始ポイントと宛先ポイントが同じオブジェクト・ライフラインである場合があります。この場合は、セルフ・コールを作成したことになります。
非同期メッセージは、シーケンス図上では対角線と開いた矢印で表示されます。
シーケンス図の相互作用には、結合フラグメント・ロックのアイコンがあります。相互作用をロックまたはロック解除すると、ダイアグラム上のその相互作用内の結合フラグメントの動作を維持し、その範囲を他の相互作用や他のダイアグラムにまで拡張できます。
結合フラグメントは、相互作用の演算子とそれに対応する相互作用オペランドによって定義される相互作用の式を定義します。結合フラグメントには、相互作用の演算子によって制御される一連の相互作用(これを相互作用オペランドと言います)が反映され、それに対応するブール条件を相互作用制約と言います。透明なウィンドウとして表示され、各オペランドを示す水平の点線で分割されます。
例22-35に、現金出納係が支払いを要求した後で購入品目を反復処理するループ・フラグメントの例を示します。この時点では2つの支払いオプションを考慮して別のフラグメントも作成し、現金とクレジットカードの2つのオペランドを分割して表しています。フラグメントがトレースを完了すると、支払い条件が満たされた時点で現金出納係が顧客に領収書を発行します。
図22-36に、ダイアグラマでダイアグラムを開いたときコンポーネント・パレットに表示される結合フラグメントを示します。
表22-6 結合フラグメントの相互作用演算子
相互作用演算子 | 説明 |
---|---|
代替 |
ブール条件に基づいて相互作用フラグメントを分割します。 |
アサート |
唯一有効なフラグメントの発生を示します。 |
ブレーク |
オペランドが、包含する相互作用フラグメントの残りのかわりに実行されるシナリオであるという意味で結合フラグメントがブレーク・シナリオを表すことを指定します。 |
重要 |
他の処理によって中断できないシーケンスを示します。 |
ループ |
オペランドが、相互作用制約で指定される回数繰り返されることを示します。 |
負 |
フラグメントが無効であることをアサートし、他の相互作用がすべて有効であることを表します。 |
オプション |
オプションの相互作用フラグメントを包括します。 |
パラレル |
オペランドが並行して処理されることを示します。 |
順序 |
結合フラグメントが弱く順序付けされることを示します。発生仕様が同じライフライン上にある場合に、最初のオペランドの発生仕様が2番目の発生仕様より優先されるかぎりオペランド内の順序は維持されるが、オペランドどうしの順序は未定義であることを示します。 |
厳密 |
オペランドの動作が厳密な順序で処理されることを示します。 |
ユースケース図は、システムの使用条件の概要を示します。図22-37のように、開発の目的で、ユースケース図はシステムまたはプロジェクトの実際の要件またはワークフローを表します。
ユースケース図は、アクターとそれが関与するユースケースを接続して、アクターとシステムとの相互作用を表します。アクターが情報を提供する、ユースケースを開始する、またはユースケースの結果として情報を受信する場合は、アクター間にアソシエーションがあります。
図22-38は、ユースケース図に追加できる要素が表示されたコンポーネント・パレットを示しています。各要素は一意のアイコンと説明のためのラベルで表されます。
「相互作用」は、ダイアグラムに直接配置できる唯一の要素です。他の要素はすべて、「相互作用」の内部に配置します。
表22-7 ユースケース要素
コンポーネント | 説明 |
---|---|
アクター |
システム内の抽象ロールを表します。 |
通信 |
アクターが特定のユースケースに関連付けられている状況を示します。 |
依存性 |
要素間の関係を示します。 |
拡張 |
ターゲットのユースケースがソースのユースケースの定義を拡張することを示します。 |
汎化 |
1つ以上の要素が別の要素を特化している状況を示します。たとえば、あるアクターTeam MemberがアクターManagerとアクターDeveloperに特化されている場合があります。 |
対象 |
ユースケースで、他のユースケースを含む関係を示します。 |
サブジェクト |
サブジェクトには2つのタイプがあります。1つのシステムには通常、モデル化の対象となるシステム全体を構成するユースケースとアクターのセットが含まれます。2つ目のタイプには通常、開発の対象となる一貫性のあるシステム部分を構成するユースケースのグループが含まれます。 |
ユースケース |
1つの要素が、相互作用を実行するために他の要素を必要とすることを示します。 |
ユースケース図を作成するには、次のようにします。
「新規のダイアグラムを作成するには:」の手順に従って新規ダイアグラムを作成します。
図22-38のように、ダイアグラムに追加する要素をコンポーネント・パレットから選択します。
サブジェクト、アクター、その他のタイプのオブジェクトの外観や他の属性を決定するには、プロパティ・インスペクタでプロパティを変更するか、オブジェクトを右クリックしてプロパティを変更するか、または基礎となるテンプレート・ファイルを作成してカスタマイズします。
テンプレートを使用すると、サポートするオブジェクトをコンポーネント・パレットに追加できます。詳細は、第22章の「ユースケースのコンポーネント・パレット・テンプレートの使用方法」を参照してください。
モデル化するシステムは、そのシステムのすべてのアクターとユースケースをサブジェクト内に囲んで表示できます。サブジェクト・ライン内のユースケースを包括するグループによって開発対象を表示します。サブジェクトをダイアグラムに追加するには、コンポーネント・パレットで「サブジェクト」をクリックし、サブジェクトが占める領域をカバーするようにポインタをドラッグします。図22-39に、関連するアクターに会計サブジェクトを接続している例を示します。サブジェクトの内部に要素をドロップすると、要素を包含するようにサブジェクト・ラインが拡張されます。手動でサブジェクトのサイズを変更することもできます。サイズを縮小して表示しきれない要素がある場合には、右下隅に省略記号が表示されます。
ダイアグラム上にアクターを作成するには、コンポーネント・パレット上で「アクター」アイコンをクリックし、次にダイアグラム上でアクターを作成する位置をクリックします。
アクターまたはユースケースのプロパティを変更するには、モデル化された要素をダブルクリックして、エディタでその要素の詳細を編集します。
アクターとユースケース間の相互作用をダイアグラム上で表現するには、コンポーネント・パレットの「通信」アイコンを使用します。また、アクター間およびユースケース間の汎化構造を作成するには、「汎化」アイコンを使用します。1つのユースケースが別のユースケースを包含する状況を表すには、「対象」アイコンを使用し、1つのユースケースが別のユースケースを拡張する状況を表すには、「拡張」アイコンを使用します。
ノート、依存関係およびURLリンクを使用して、ユースケース図に注釈を追加できます。注釈コンポーネントは、コンポーネント・パレット下部の「ダイアグラムの注釈」から使用できます。
ユースケースとサブジェクトの間の相互作用を表現するには、コンポーネント・パレットの「通信」アイコンを使用します。
ユースケースとサブジェクトの間の相互作用を表現するには、コンポーネント・パレットの「通信」アイコンを使用します。
XHTMLファイルは、ユースケース図ーの一部のオブジェクトをサポートするドキュメントのテンプレートとして使用できます。テンプレートを使用すると、各オブジェクト型に対して最初に作成するドキュメントの外観や他の属性を決定できます。テンプレートのソース・コードを直接編集することも、ビジュアル・エディタを使用することもできます。
ユースケース・テンプレートを開くには、次のようにします。
「ファイル」→「開く」の順に選択します。次に、<jdeveloper_install>/jdev
フォルダにナビゲートし、格納されているファイルの1つをダブルクリックして開きます。
/system[...]/o.uml.v2.usecase.html/templates/usecase
ファイルの名前と用途は次のとおりです。
Actor.xhtml_act
: アクター・ドキュメントのテンプレート。
Casual.xhtml_usc
: 略式ユースケース・ドキュメントのテンプレート。
FullyDressed.xhtml_usc
: 正式ユースケース・ドキュメントのテンプレート。
Milestone.xhtml_sub
: 「Subject - Milestone」ユースケース・ドキュメントのテンプレート。
SystemBoundary.xhtml_sub
: 「Subject -」ユースケース・ドキュメントのテンプレート。
ユースケース・テンプレートのソース・コードを編集するには、次のようにします。
「ソース」タブを選択します。HTMLタグを特定の場所に挿入するには、ポップアップ・メニューを開いて「HTMLの挿入」を選択します。
一般的なルールとして、uml:接頭辞を含むタグ(例: <uml:usecase_extends>)は削除しないでください。テンプレートのセクション全体(例: tdタグと/tdタグの間)を削除する場合、uml:接頭辞はセクションの他の内容とともに安全に削除できます。
ユースケース(モデラー)テンプレートのテキストの外観を変更するには、次のようにします。
「エディタ」タブを選択し、変更するテキストを選択します。次に、ツールバーから書式設定オプションを1つ以上選択します。
HTMLインタフェース・オブジェクト、コード・オブジェクトおよび開発入力を挿入するには、次のようにします。
「エディタ」タブを選択し、挿入するテンプレート上の場所を選択してから必要な場所とオブジェクトをポップアップ・メニューから選択します。
HTMLインタフェース・オブジェクト(ボタンやチェック・ボックス)、HTMLコード・オブジェクト(アンカーや表)、開発入力(コメントや処理指示)を挿入できます。
初期状態では、選択したテンプレート項目の前後どちらにも、またテンプレートの<head>セクションにもオブジェクトを挿入できます。その後、これらのオプションが不適切である場合は選択できなくなります。ポップアップ・メニューから「HTML」または「参照」を選択すると、ダイアログ・ボックスが開き、様々なHTMLインタフェース・オブジェクトおよびコード・オブジェクトから1つを選択できます。ここで項目を選択すると、オブジェクトに適したプロパティを入力する挿入ダイアログが開きます。
新規のユースケース・テンプレートは、JDeveloperで用意されているテンプレートをコピーして作成できます。必要に応じてコピーを変更できます。
各新規コンポーネント・パレットには、そのコンポーネントをサポートするユースケース・テンプレートが1つ必要です。指定したユースケース・テンプレートはコピーまたは移動されず、元の場所にそのまま存在します。
新規のコンポーネント・パレット・ページを作成し、新規ユースケース・コンポーネントを追加するには、次のようにします。
「ツール」→「パレットの設定」を選択します。
「コンポーネント・パレットの設定」ダイアログで、「ページ・タイプ」としてユースケースを選択します。
「追加」をクリックします。
新規コンポーネント・パレット・ページの名前を入力します。
ドロップダウン・リストから「ユースケース」を選択し、「OK」をクリックします。コンポーネント・パレットに新しいページが表示されます。ポインタ・アイテムは自動的に含まれます。
コンポーネント・パレットのコンポーネント領域でポップアップ・メニューを開き、「コンポーネントの追加」を選択します。「ユースケース・テンプレートの追加」ダイアログが開きます。
新規コンポーネントの名前を入力します。
新規コンポーネントのベースとなるユースケース・テンプレートへのパスを入力します。パスにはURLを設定できます。
新規コンポーネントをコンポーネント・ページに追加するには、「OK」をクリックします。
ダイアグラムはダイアグラム・ファイルと同じようにディスクに格納されます。ダイアグラム・ファイルは、ダイアグラムに表示される要素を参照し、その要素の表示に関する情報(サイズ、色、フォント、各種プロパティの表示など)を含んでいます。ダイアグラム・ファイルは、ダイアグラムを格納するパッケージのフォルダの中に格納され、プロジェクト設定で指定したモデル・パスに格納されます。ダイアグラムのリンクと依存性もダイアグラム・ファイルに格納されます。
モデル・パスを設定するには、「アプリケーション」→「デフォルト・プロジェクト・プロパティ」→「プロジェクトのソース・パス」→「モデラー」を選択します。
Javaクラスなどのダイアグラム要素はダイアグラム・ファイルで参照されますが、その定義と実装の詳細は各要素の実行ファイルにのみ格納されます。各要素のダイアグラムでの詳細(位置、色、サイズなど)はダイアグラム・ファイルに格納されますが、要素の個別のモデル定義は格納されません。
UML要素は個別のファイルに格納されます。ファイルの場所は、要素のパッケージ・プロパティによって異なります。この要素ファイルには、各要素に対して定義されたプロパティが含まれていますが、ダイアグラム・ファイルには、ダイアグラムに表示される要素およびその要素のビジュアル・プロパティも定義されます。モデル化されたUML要素の要素ファイルは、プロジェクトのモデル・パスで指定されたフォルダの下の適切なパッケージ・フォルダに格納されます。モデル・パスを設定するには、「アプリケーション」→「デフォルト・プロジェクト・プロパティ」→「プロジェクトのソース・パス」→「モデラー」を選択します。