ツール・メンター: Rational Software Architect を使用した設計要素の識別
目的
ここでは、このツール・メンターに関連する追加情報へのリンクを示します。
このツール・メンターの手順は、作業の手順と一致しています。RSA のオンライン・ヘルプのトピックへのリンクには というマークが付いています。
概要
このツール・メンターでは、現在の反復でユース・ケースを設計するために、以下の手順を実行します。
追加ツール情報
アーキテクチャー上重要な設計要素は、設計要素として保守される独立した論理ビューに文書化し、識別できます。
RSA では、基本的に <<perspective>> パッケージを使用することをお勧めします。
このトピックの詳細については、「Rational Software Architect のためのモデル構造ガイドライン」を参照してください。
イベント (UML 2.0 ではトリガーと呼ばれる) の特性は、それらを処理する設計要素の識別を駆動するために、必要に応じて把握する必要があります。この情報は、RSA モデルの一部としてではなく、単独の文書などで非公式に把握できます。
非同期通信イベントは、伝播するデータを表現したり、汎化関係などのシグナル間の関係を表現するシグナルとしてモデル化することができます。以下の手順で、シグナルをモデル化する方法について説明します。
- (必要に応じて) クラス図を作成します。
「Adding Class Diagrams to Model Elements」を参照してください。
- シグナルを追加します。
「Creating and Modifying Class Diagrams」を参照してください。
- 各設計要素に簡単な説明を追加します。
「Documenting Model Elements」を参照してください。
- 適用可能な場合は、シグナル間に汎化関係を追加します。
クラス図の詳細については、
「Modeling Static Structure with Class Diagrams」を参照してください。
設計要素は、通常、次の 3 つの方法で作成されます。
- パターンの拡張
- モデリング
- コーディングとリバース・エンジニアリング
以下のセクションでは、これらの各アプローチについて説明します。
パターンの拡張
RSA におけるパターンは特別な種類の変換であり、主に単一のメタモデルの中で、同一レベルの抽象概念の中で、そして基本的には同じモデルの中で、対話式の部品単位の推敲を行うために最適化されています。詳細については、「分析メカニズム 」を参照してください。
RSA オンライン・ヘルプの 「Authoring Patterns」と 「Applying Patterns」を参照してください。
モデリング
RSA ツールは、モデル主導のソフトウェア開発アプローチ (「モデル駆動型開発 (MDD) およびモデル駆動型アーキテクチャーR (MDAR)」と「分析メカニズム」を参照してください) をサポートしています。このアプローチでは、
最終的には設計モデルが含まれるモデルのセットを構成し、この設計モデルから変換を使用して実装成果物 (3GL コード、記述子、その他) を生成します。
コード生成変換は、分析クラスを入力として取ることがありますが、基本的には設計要素に基づきます。
詳細については、 「Design: Transform Model to Model」と 「Design: Transform Model to Code」を参照してください。
従来の開発アプローチでは、設計モデルでクラス図を作成して設計要素を把握します。
分析クラスを保守することに決定した場合、
その分析クラスに対する「トレース」依存関係を使用することによって追跡可能性を確立できます。
- (必要に応じて) クラス図を作成します。
「Adding Class Diagrams to Model Elements」を参照してください。
- サブシステムとクラスを追加します。
「Creating and Modifying Class Diagrams」を参照してください。
- 各設計要素に簡単な説明を追加します。
「Documenting Model Elements」を参照してください。
- (オプション) 設計要素からその基になっている分析クラスへの「トレース」依存関係を使用することによって、分析クラスに追跡可能性を追加します。
「Adding Abstraction Relationships」を参照してください。
- 設計要素をサブシステムまたはパッケージとして編成します。 白書「Rational Software Architect のためのモデル構造ガイドライン」を参照してください。
クラス図の詳細については、
「Modeling Static Structure with Class Diagrams」を参照してください。
コーディングとリバース・エンジニアリング
別のアプローチは、「コード先行」のアプローチです。コードがすでに存在しているため (たとえば、非未開発領域の開発のサイクル)、あるいはチームが複雑な概念を検証するためのプロトタイプをコーディングすることによってある特定のプロジェクト・リスクに対処する必要があるために、コードが主要な推進要因となります。
アーキテクチャーのディスカバリーおよびリカバリー (「Architectural
Discovery, Analysis and Control」のガイドラインを参照) のサポートの一部として、RSA のコード視覚化機能は、パッケージ構造、クラス内部、継承ツリー、コラボレーションなどのトピック図に自動的にデータを取り込むことができます。
この作業の目的には、既存のコードを認識することだけではなく、アプリケーションのモデルを抽出することも含まれます。このアプリケーションのモデルは、変換を使用して新しいアプリケーションのバージョンを生成するために、他の特定のモデルと連結して使用できます。
既存のコードの UML 図が生成または構成済みであれば、コード記述を設計モデルの一部として利用するための以下のオプションがあります。
- コード要素の UML 記述を、真のセマンティック・モデル要素として設計モデル内に取得します。
これを行うと、取得されたコード項目とは無関係の設計モデル内に新しい UML 要素が作成されます。
ただし、これは取得されたコード項目のプロパティーを反映するプロパティー (たとえば、属性および操作) を持ちます。
これは真の UML セマンティック要素であるため、新しいコードをこれから生成することができます (つまり、これは設計モデル内において、前に述べた未開発領域のモデリング・プロセスで定義された設計要素と同じステータスを持ちます)。
-
設計モデル内にある図に、コード要素の可視参照を置きます。
この参照そのものには、設計モデル内のセマンティクス上の意味はなく、これから新しいコードが生成されることもありません。
この名前が暗示するように、これは単なる実際のコード要素の参照です。
しかし、コード参照と設計モデル内のセマンティック設計要素との関連を描画することはできます。
これらの関係は、設計モデル内でのセマンティクス上の意味を持ち、コード生成に影響します。
詳細については、RSA オンライン・ヘルプの 「Modeling Static Structure with Class Diagrams」を参照してください。
以下の手順は、詳細度の大きなサブシステムに該当します。
- それぞれのサブシステムについて、インターフェース候補のセットを識別します。
以前に分析クラスを作成し、分析レベルのユース・ケース実現を実行したことがある場合は、
それらの操作をグループ化して特定のコンポーネントまたはサービスのインターフェースとして公開する方法を決定します。
既存のコンポーネント図にインターフェースを追加するか、
必要に応じて新しいコンポーネント図を作成します。
「Adding
Shapes」を参照してください。
- インターフェースの依存関係を追加します。
- サブシステムからインターフェースへの実現関係を追加することで、サブシステムをインターフェースにマッピングします。
- 必要な振る舞いを含むインターフェースを記述します。
「Documenting Model Elements」を参照してください。
- インターフェースに操作を追加します。
「Adding Operations to Classifiers in Diagrams」を参照してください。
- 各操作に説明を追加します。
「Documenting Model Elements」を参照してください。
- 各操作にパラメーターを追加します。
「Adding Operations to Classifiers in Diagrams」を参照してください。
- インターフェースをパッケージに編成します。
UML 2.0 サブシステムは大きなコンポーネントであり、ポートまたはインターフェース、あるいはその両方を持つ構造化クラスとして表されることがあります。
オンライン・ヘルプの UML 2.0 の具体的なトピックを参照してください。
ツアー:
RAS
Patterns
チュートリアル:
Applying the XYZ Pattern
サンプル:
Model for Pattern Application
Patterns
参考文献:
Identifying
Design Elements
|