私は独自のユーザー定義クラスを持つアプリを持っており、組み込みの他のクラスのオブジェクトを開始するために Qt フレームワーク ライブラリも使用しています。私のクラスでは、それを 'myclass' と呼びましょう。Qt 組み込みクラスのインスタンスを作成し、それらに取り組みます。これで完了です...次に、そのためのクラス図を作成する必要があります。これは、関連、集約、構成、または一般化のどれに分類できるのだろうかと思っていました。
ありがとう
私は独自のユーザー定義クラスを持つアプリを持っており、組み込みの他のクラスのオブジェクトを開始するために Qt フレームワーク ライブラリも使用しています。私のクラスでは、それを 'myclass' と呼びましょう。Qt 組み込みクラスのインスタンスを作成し、それらに取り組みます。これで完了です...次に、そのためのクラス図を作成する必要があります。これは、関連、集約、構成、または一般化のどれに分類できるのだろうかと思っていました。
ありがとう
ここでは継承していないため、一般化されていないため、「is-a」関係とは見なされません。
アソシエーション、コンポジション、またはアグリゲーションについては...ここで、どれがどれであるかについてのかなり良い説明を見つけることができます。ユースケースをよく知らずに、適切なものを判断することはできません。ただし、他のリンクを読むと、違いを理解し、シナリオに基づいて判断するのに役立ちます。
それが役立つことを願っています。
UML について心に留めておくべき重要なことは、何を使用するかを決定する際に実際の正しい答えも間違った答えもないことが多いということですが、ツールによっては他のツールより優れているものもあります。UML はコミュニケーションのための単なるツールであり、コミュニケーションの内容を誰もが理解できるようにツールを使用する限り、そのツールはその目的を果たします。
クラス図の場合、その最も基本的なレベルでは、関連と一般化だけで実際にすべてをモデル化できますが、そうすると、他の人が見たいと思うかもしれない詳細が欠けてしまいます。
一般化は継承と 1 対 1 の関係にあるため、それをいつ使用するかは明らかです。
関連付けは、別のクラスとの関係または依存関係を持つクラスを表します。そこにはかなりの一般化があります(!)。そのため、Aggregation と Composition の代わりに使用できます。
集約は、オブジェクト (B) が別のオブジェクト (A) を構成し、B を他のオブジェクト間で共有できる場合に使用されます。たとえば、図書館は本で構成されているため、本は図書館の集合体としてモデル化できます。これは、他のクラスも、借りている人などの本を集合化できるためです。
オブジェクト (B) を直接使用してオブジェクト (A) を構成する場合は、構成を使用します。この場合、人体をモデル化しており、臓器のクラスがある場合、心臓のクラスを体のクラスの合成オブジェクトとしてモデル化します。
Qt フレームワークを使用しているという事実は、クラスをモデル化するために使用するものとは無関係であり、ダイアグラムはすべてをモデル化する必要はなく、概念を他の人に伝えるために必要なものだけをモデル化する必要があります。
たとえば、QList や QMap などのコンテナー クラスを使用している場合、それらはおそらくダイアグラムに含めたくありませんが、QTcpSocket を使用してそれを継承する場合は、それを示した方がよい場合があります。
ただ覚えておいてください、それはあなたが伝えようとしていることについてのすべてです.