コンポーネントに定義されたスコープは、コード生成とラウンドトリップの両方のスコープを決定します。変更された要素を含むファイルがコンポーネントのスコープ内にある場合にのみ、それらの要素についてコードが生成され、変更されたファイルがコンポーネントのスコープに含まれる場合にのみ、ファイルの変更がモデルにラウンドトリップされます。
このタスクについて
コード中心プロジェクトのスコープを変更するには、以下の手順を行います。
- ファイルのリバース・エンジニアリングを行います。対象のファイルはすべて自動的にスコープに追加されます。
- 「リバース・エンジニアリング」ウィンドウでフォルダーを指定した場合、そのフォルダーに作成されたファイルはすべてスコープに自動的に追加されます。同様にフォルダーからファイルを削除した場合、ラウンドトリップを実行すると、その対応する要素がモデルから削除されます。
- ファイル (C の場合)/クラス (C++ の場合) をプロジェクトに追加し、コードを更新すると、生成されたファイルがスコープに追加されます。この構造は、スコープの一部として定義されていないフォルダーにファイルを生成した場合にも発生します。
- スコープを手動で変更するには、「ラウンドトリップ設定」ウィンドウで/を選択して、ファイル/フォルダーを追加します。
スコープを変更する場合、コード中心モードでは IBM® Rational® Rhapsody® でのラウンドトリップ後のパッケージ構造は、ソース・コードのディレクトリー構造と常に同じになるということを念頭におくことが重要です。この規則には、以下のような多くの意味があります。
- ファイルのリバース・エンジニアリングを暫時的に実行したい場合、コードを含むすべてのディレクトリーが、「リバース・エンジニアリングの詳細オプション」ウィンドウの「マッピング」タブでルート・ディレクトリーとして指定できる単一のディレクトリーの下にあるようにします。このルート・ディレクトリーの下にいずれのディレクトリーでもインポートできます。Rational Rhapsodyは、このディレクトリー構造に一致するパッケージ構造を作成します。このタイプの暫時的手法を使用したい場合、UseCalculatedRootDirectoryRational Rhapsody の値を Never に設定してから、リバース・エンジニアリングを実行します。
- ルート・ディレクトリーを変更した場合、モデル内のパッケージ構造は、ラウンドトリップ後は異なったものとなります。一部のパッケージがモデルから削除されたのち、再作成される場合があります。こうしたパッケージの 1 つがコード内で反映されていない要素を含んでいる場合 (例えば要件)、これらの要素は、ラウンドトリップ後のモデルには存在しません。これらの要素には、ラウンドトリップされたコードでの表現を持っていないためです。
注: 本製品でのパッケージ構造の変更のこうした結果は、ソース・コードを含むフォルダーの階層を手動で変更した場合にも適用されます。こうしたフォルダー調整後のコード変更のラウンドトリップ前に、モデルでパッケージ構造に対して同様の変更を行い、コードのない要素が存在することのないようにします。
この「削除して再作成」という手法は、クラスなどコード内の個別の要素を名前変更する場合にも使用されます。モデル内のクラスにはコードで表現されない重要な情報が含まれる場合もあるので、こうした名前変更によって、モデルから情報が欠落することのないようにしてください。
- その直接上位に共通の祖先ディレクトリーのないディレクトリーからコードをインポートしようとする場合、異なる製品コンポーネントにインポートする必要があります。