UMLの集約と一般化の違いは何ですか
目次:
NS 主な違い UMLの集約と一般化の間には、 集約は「hasa」関係で接続された2つのオブジェクトの関連付けであり、一般化は複数のクラスから一般クラスを形成するプロセスです。
複雑なソフトウェアを一度に開発することはできません。したがって、それらを実装する前に、ソフトウェアが何を実行する必要があるかを理解する必要があります。統一モデリング言語(UML)は、ソフトウェアのモデリングに役立つ視覚的なダイアグラム言語です。これは、JavaやC ++などのプログラミング言語とは異なり簡単です。絵で表現されているので、技術者でなくてもUMLを学び理解することができます。クラス図とオブジェクト図は、2種類のUML図です。さらに、システムの静的ビューについても説明します。集約と一般化はこれらの図に関連しています。
集約、一般化、継承、UML
UMLの集約とは
アソシエーションは、2つのオブジェクト間の関係を表します。集約は一種の関連です。言い換えれば、それは関連の特別な場合です。オブジェクトが別のオブジェクトを「持っている」場合、それを集合体と見なすことができます。したがって、集約は、オブジェクト間の「hasa」関係を表します。
図1:集約
従業員と住所は「hasa」の関係にリンクされています。 Addressクラスのインスタンスは、Employeeのインスタンスがなくても存在できます。集合体です。 UMLでは、ひし形の記号は集合体を表します。方向は、どのオブジェクトに他のオブジェクトが含まれているかを示します。
UMLの一般化とは何ですか
一般化は継承に関連付けられています。継承は、クラスが既存のクラスのプロパティとメソッドを使用できるようにするプロセスです。既存のクラスはスーパークラスであり、新しいクラスはサブクラスです。一般化は、複数のクラスを一般クラスに結合します。さらに、スーパークラスには最も一般的なプロパティとメソッドがあります。サブクラスは、これらのプロパティとメソッドを共有できます。サブクラスは、特殊なプロパティとメソッドを持つことができます。サブクラスはスーパークラスの一種であるため、一般化は「isa」関係を表します。
図2:一般化
従業員はスーパークラスです。正社員と臨時従業員はサブクラスですが、従業員は正社員と臨時従業員の一般化された形式です。一方、正社員と臨時社員は特殊な形態の社員です。従業員には、プロパティID、名前、給与、およびメソッドの表示があります。サブクラスのPermanentおよびTemporaryEmployeeも、これらのプロパティとメソッドを使用できます。さらに、サブクラスには独自のプロパティとメソッドがあります。 UMLでは、矢印は一般化を表します。
UMLにおける集約と一般化の違い
意味
集約は、「has a」関係を表す2つのオブジェクト間の関連付けであり、一般化は、類似したクラスのオブジェクトを1つの一般的なクラスに結合するためのメカニズムです。したがって、これはUMLの集約と一般化の主な違いを説明しています。
関係
集約は「hasa」関係を示し、Generalizationは「isa」関係を示します。
UML表現
ひし形の記号は集約を表し、矢印の記号は一般化を表します。したがって、これは、UMLの集約と一般化の違いをさらに説明します。
結論
簡単に言うと、集約と一般化は、UML図で表すことができる2つの概念です。 UMLでの集約と一般化の主な違いは、集約は「has a」関係で接続された2つのオブジェクトの関連付けであるのに対し、一般化は複数のクラスから一般クラスを形成するプロセスであるということです。
参照:
1.「関連付け、集約、構成、抽象化、一般化、実現、依存関係。」 Javapapers、ここから入手できます。