クラス図のモデリングには、互いに関連付けられた一連のクラスが必要です。各クラスには一連の属性と操作があります。
私の質問は、これらの操作の実装 (本体) をどのように、どこでモデル化する必要があるかということです。
概念の適用を理解するのに混乱しているので質問しますclass
, interface
,abstract class
クラス図のモデリングには、互いに関連付けられた一連のクラスが必要です。各クラスには一連の属性と操作があります。
私の質問は、これらの操作の実装 (本体) をどのように、どこでモデル化する必要があるかということです。
概念の適用を理解するのに混乱しているので質問しますclass
, interface
,abstract class
Interface と Abstract が「空」(つまり、コードなし) 操作のセットであることに同意します。モデルを実装する場所は実際には存在しません。つまり、RSx、Rhapsody、Modelio などの各ツールには独自の戦略があります。これは、オペレーションが所有する UML コメント、OpaqueBehavior、またはアクティビティとしてのモデルである可能性があります。UML は、コード (操作本体) がどこにどのようにあるべきかを定義しません。
Modelio を使用した Java コード モデリングのスクリーンショットを追加します。特定の UML Comment を見ると、名前付き Code が UML 操作の下に作成され、このコメントの本文がメソッドのコードになります。
UML でクラスを表す場合、ボックスには 3 つのセクションが含まれます。最初のセクションはクラスの名前です。2 番目のセクションはクラス変数の名前です。3 番目のセクションは、クラス メソッドの名前 (パラメーターの型と戻り値を含む) です。
クラス (実装を持つ) とインターフェイス (基本的に実装のない空のメソッドのリスト) の違いは、インターフェイスの名前の上に専用のタグがあることです。
クラスがインターフェースを使用する場合、そのインターフェースに記述されているすべての機能を実装することを「約束」します。
要約すると: - 抽象クラス: 変数、抽象メソッド (実装のない「空の」メソッド)、および通常のメソッドを含めることができます。抽象クラスはインスタンス化できません。
インターフェイス : 「空の」メソッドのセット
クラス : クラスは 1 つの (そして 1 つのみ) 抽象クラスを拡張できます。この場合、抽象メソッドを実装する必要があります。クラスは複数のインターフェイスを実装することもできます (同様に、クラスはインターフェイスで定義されたメソッドを実装する必要があります)。