TOP3。UMLのクラス図とクラス図間の関係

                                  UMLのクラス図とクラス図間の関係

統一モデリング言語の紹介

クラス、インターフェース、クラス図

1.クラス

2.インターフェース

3.クラス図

クラス間の関係

1.依存関係

2.協会

3.集計

4.組み合わせの関係

5.汎化

6.関係を実現する


統一モデリング言語の紹介


統一モデリング言語(UML)は、ソフトウェア設計図の設計に使用されるビジュアルモデリング言語で、オブジェクト指向モデリング言語の国際標準として1997年に国際オブジェクト管理グループ(OMG)によって採用されました。その特性は、シンプルで統一されたグラフィカルであり、ソフトウェア設計で動的および静的な情報を表現できます。

統一モデリング言語は、ソフトウェア開発のすべての段階でモデリングと視覚化のサポートを提供できます。さらに、ソフトウェアエンジニアリングの分野で新しいアイデア、新しい方法、新しいテクノロジーを取り入れて、ソフトウェア設計者間のコミュニケーションをより簡潔にし、設計時間をさらに短縮し、開発コストを削減します。幅広いアプリケーションがあり、一般的なシステムの開発だけでなく、並列システムや分散システムのモデリングにも適しています。

ターゲットシステムのさまざまな観点から、UMLはユースケース図、クラス図、オブジェクト図、状態図、アクティビティ図、シーケンス図、コラボレーション図、コンポーネント図、配置図などの9つの図を定義します。

このチュートリアルでは、主ソフトウェア設計パターンで一般的に使用されるクラス図とクラス間の関係を紹介します。さらに、実験的な部分ではUMLモデリングツールの使用法を簡単に紹介します。業界で最も広く使用されているのはRational Roseです。Umletを使用する人はたくさんいます。これは軽量のオープンソースUMLモデリングツールで、シンプルで実用的で、小規模なソフトウェアシステムの開発と設計でよく使用されます。

クラス、インターフェース、クラス図


1.クラス

クラスは、同じ属性、メソッド、および関係を持つオブジェクトの抽象化を指します。これは、データと動作をカプセル化します。これは、オブジェクト指向プログラミング(OOP)の基礎です。カプセル化、継承、およびポリモーフィズムの3つの主要な特性があります。 。UMLでは、クラスはクラス名、属性、操作、および分離された線を含む長方形で表されます。

(1)クラスの名前(Name)は文字列です(例:Student)。

(2)属性は、クラスの特性、つまりクラスのメンバー変数を指します。UMLは次の形式で表されます。

[可见性]属性名:类型[=默认值]
例如:-name:String

注意:“可见性”表示该属性对类外的元素是否可见,包括公有(Public)、私有(Private)、受保护(Protected)和朋友(Friendly)4 种,在类图中分别用符号+、-、#、~表示。

(3)操作は、クラスの任意のインスタンスオブジェクトで使用できる動作であり、クラスのメンバーメソッドです。UMLは次の形式で表されます。

[可见性]名称(参数列表)[:返回类型]
例如:+display():void。

图 1 所示是学生类的 UML 表示。

学生クラス


                                                                                        図1学生クラス

2.インターフェース

インターフェイス(Interface)は、クラスの構造を持つ特別なクラスですが、インスタンス化することはできず、サブクラスによってのみ実装できます。抽象操作が含まれていますが、属性は含まれていません。クラスまたはコンポーネントの外部から見えるアクションを記述します。UMLでは、インターフェースは名前の付いた小さな円で表されます。

図2は、グラフィカルインターフェイスのUMDL表現を示しています。


                                                                                        図2グラフインターフェイス

3.クラス図

クラス図(ClassDiagram)は、システム内のクラス、インターフェース、コラボレーション、およびそれらの静的構造と関係を表示するために使用される静的モデルです。主にソフトウェアシステムの構造化設計を説明し、ソフトウェアシステムの理解を簡素化するために使用されます。これは、システムの分析と設計段階の重要な製品であり、システムのコーディングとテストの重要なモデル基盤です。

クラス図のクラスは、特定のプログラミング言語で直接実装できます。クラス図は、ソフトウェアシステム開発のライフサイクル全体にわたって効果的であり、オブジェクト指向システムモデリングで最も一般的な図です。図3は、「四角形と円の周長と面積の計算」のクラス図を示しています。グラフィックインターフェースには、面積と周長を計算するための抽象的なメソッドがあります。長方形と円は、呼び出すクラスにアクセスするためのこれら2つのメソッドを実装しています。
 

「長方形と円の周囲と面積を計算する」ためのクラス図


                                                              図3「長方形と円の周囲と面積の計算」のクラス図

クラス間の関係


ソフトウェアシステムでは、クラスは単独では存在せず、クラス間にはさまざまな関係があります。弱いクラスから強いクラスへのクラス間の結合度の配置に従って、UMLのクラス図には、依存関係、関連付け、集約、構成、一般化、および実現という関係があります。その中でも、一般化と実装の結合の程度は等しく、最も強力です。

1.依存関係

依存関係(依存関係)は、一種の使用関係であり、オブジェクト間の結合が最も弱い一種の関連付け方法であり、一時的な関連付けです。コードでは、特定のクラスのメソッドは、ローカル変数、メソッドパラメーター、または静的メソッドの呼び出しを使用して、別のクラス(依存クラス)の特定のメソッドにアクセスし、いくつかの責任を実行します。

UMLクラス図では、依存関係は矢印付きの破線で表され、矢印は使用されているクラスから依存クラスを指します。図4は、人と携帯電話の関係を示したもので、人は携帯電話の音声伝送方式で電話をかけます。
 

依存関係の例


                                                                               図4依存関係の例

2.協会

関連(Association)関係は、オブジェクト間の参照関係の一種であり、あるタイプのオブジェクトと別のタイプのオブジェクト(教師と生徒、教師と実習生、夫婦など)との間の接続を表すために使用されます。関連関係は、クラス間の最も一般的に使用される関係であり、一般的な関連関係、集約関係、および組み合わせ関係に分類されます。まず、一般的な協会を紹介します。

関連付けは、双方向または単方向にすることができます。UMLクラス図では、双方向の関連付けは2つの矢印のある実線または矢印のない実線で表すことができ、単方向の関連付けは矢印のある実線で表され、矢印は使用されるクラスから関連付けられたクラスを指します。関連線の両端にロール名をマークして、2つの異なるロールを表すこともできます。

コードでは、関連付け関係を実現するために、通常、1つのクラスのオブジェクトが別のクラスのメンバー変数として使用されます。図5は、教師と生徒の関係を示しています。各教師は複数の生徒に教えることができ、各生徒は複数の教師から学ぶことができます。これらは双方向に関連しています。
 

関連付けの例


                                                                              図5関連付け関係の例

3.集計

集約関係とは、一種の連想関係、強い連想関係、全体と部分の関係、has-a関係です。

集計関係もメンバーオブジェクトを通じて実現されます。メンバーオブジェクトはオブジェクト全体の一部ですが、メンバーオブジェクトはオブジェクト全体から独立して存在できます。たとえば、学校と教師の関係では、学校には教師が含まれますが、学校が閉鎖されている場合でも、教師は存在します。

UMLクラス図では、集約関係は中空のひし形の実線で表すことができ、ひし形は全体を指します。図6は、大学と教師の関係を示しています。
 

集約関係の例


                                                                             図6集計関係の例

4.組み合わせの関係

合成関係も一種の関連関係であり、クラス間の全体と部分の関係も表しますが、cxmtains-a関係であるより強力な集約関係です。

構成関係では、オブジェクト全体が一部のオブジェクトのライフサイクルを制御できます。オブジェクト全体が存在しなくなると、一部のオブジェクトは存在しなくなり、一部のオブジェクトはオブジェクト全体なしでは存在できなくなります。たとえば、頭と口の関係は、頭がなければ、口は存在しなくなります。

UMLクラス図では、組み合わせ関係は実線のひし形の実線で表され、ひし形は全体を指します。図7は、頭と口の関係を示しています。
 

組み合わせ関係の例


                                                                             図7組み合わせ関係の例

5.汎化

汎化(汎化)関係は、オブジェクト間の最も結合された関係であり、一般的および特殊な関係、親クラスとサブクラス間の関係、継承関係、およびis-a関係を表します。

UMLクラス図では、汎化関係は中空の三角形の矢印が付いた実線で表され、矢印は子クラスから親クラスを指しています。コード実装では、汎化関係を実現するためにオブジェクト指向の継承メカニズムが使用されます。たとえば、StudentクラスとTeacherクラスはどちらもPersonクラスのサブクラスであり、クラス図を図8に示します。
 

汎化関係の例


                                                                              図8汎化関係の例

6.関係を実現する

実現関係は、インターフェースと実装クラスの間の関係です。この関係では、クラスはインターフェースを実装し、クラスの操作はインターフェースで宣言されたすべての抽象操作を実装します。

UMLクラス図では、実現関係は白抜きの三角形の矢印が付いた破線で表され、矢印は実現クラスからインターフェイスを指しています。たとえば、車とボートは車両を実装し、クラス図は図9に示されています。
 

関係の実現例


                                                                       図9実現関係の例

<GOFの23のデザインモードの                                                                                                                                                       開閉原理>

おすすめ

転載: blog.csdn.net/m0_38023584/article/details/106343695