ソフトウェア開発中、プロジェクトの規模と複雑さが増大するにつれて、効果的な設計ツールと文書化ツールが重要になります。標準化されたモデリング言語である統一モデリング言語 (UML) は、ソフトウェア システムを記述、構築、視覚化するための強力な方法を開発者に提供します。その中でも、UML クラス図はオブジェクト指向設計 (OOD) の中核ツールの 1 つとして極めて重要な役割を果たしています。
UML クラス図は、システム内のクラス、クラス間の関係、および属性 (フィールド) やメソッド (関数) などのクラスの内部構造をグラフィカルに表示します。これらの図は、開発者がシステムの全体的なアーキテクチャを理解するのに役立つだけでなく、チームワークでのコミュニケーションとコラボレーションを促進し、すべてのメンバーが設計について共通の理解を確実に持つことができます。今日はUMLのクラス図を学びます。
クラス図とは何ですか?クラス図の描画ルールは何ですか?クラス図を描くにはどうすればよいですか?皆さんが学習しやすいように、編集者がここに洗練してまとめました。これを読んで、クラス図の基本を理解していただければ幸いです。
クラス図は、主にクラスの構造 (属性、操作) とクラス間の関係を反映することを目的とした、静的モデリング手法です。クラス図は、特定の概念、抽象概念、実装概念などを含む、システム内の意味のある概念を記述するために使用されます。クラス図は、現実世界の物事を抽象化したものです。クラス図の主な目的は、システムの語彙をモデル化し、単純なコラボレーションをモデル化し、論理データベース スキーマをモデル化することです。
クラス図は主にクラスとクラス間の関係の 2 つの部分で構成されます。クラスの定義は、主にクラス名、クラス間の関係の 3 つの部分で構成されます。クラスの属性、クラスのメソッドは、図の 3 つのパーティションの内容に対応します。
クラス名: 画像の一番上の長方形のボックスがクラス名です。フォントが斜体の場合、抽象クラスとして表されます。
クラス属性: クラス名の下部分
クラスメソッド: 図の下部分
※記号の説明: 属性およびメソッドの前の「+」、「-」、「#」はアクセスレベルを示します。これらの記号について説明します。 。
+: パブリック、パブリック、すべてのクラスに表示
-: プライベート、プライベート、クラス自体でのみ使用可能
#: 保護され、保護され、このクラスの子孫に表示されます
~: パッケージ、パッケージ、同じパッケージ内で宣言された他のクラスにのみ表示されます
=: はデフォルト値を示します
アンダースコア: 静的
イタリック体: 抽象 (抽象化は、-<<私は抽象クラスまたはインターフェイスです>> のように、2 つの山かっこで囲むことによっても表現できることに注意してください)
コロンの前はメソッド名/変数名(括弧の有無で区別)、コロンの後ろは戻りパラメータ/変数の型(括弧の有無で区別)です。コロンがない場合は、メソッドが void を返すことを意味します (return void を示すために void を使用する人もいます)
クラス間の関係には主に、汎化 (継承)、依存、関連、集約、結合、実装の 6 つの関係について説明します。以下に一つずつ。
1. 一般化関係サブクラスは、親クラスのすべての動作と属性を継承し、新しい関数を追加したり、親クラスの関数を書き換えたりすることができます。表現方法:中空三角+実線、親クラスへの矢印
2. 依存関係
依存関係とは、あるクラスが別のクラスのサービスや情報を使用する(依存する)ことを示します。あるクラスへの変更が別のクラスに影響を与える場合、2 つのクラス間に依存関係が存在します。一般に、依存関係は常に一方向であり、双方向の依存関係があってはなりません。表現方法:山括弧+点線
3. 協会関係
アソシエーションは、あるクラスが別のクラスのプロパティとメソッドを認識できるようにする所有権関係です。それは、私や私の友人など、さまざまなタイプの強い依存関係を具体化しています。この関係は依存関係よりも強いです。依存関係には偶発性はなく、その関係は一時的なものではなく、一般的に長期的なものです。
アソシエーション関係は単方向アソシエーションと双方向アソシエーションに分けられ、多重性 (1 対多) を持つこともできます。双方向アソシエーションには 2 つの矢印があるか、矢印がない場合があり、単方向アソシエーションには 1 つの矢印があります。表現方法: 山かっこ + 実線、矢印は所有者を指します
4. 集約関係
集合関係は、「弱い」「所有」関係を表す一種の関係であり、全体と部分との間の関係であり、例えば、車の間の関係は、全体と部分との間の関係である。タイヤは全体と部分の関係であり、タイヤは全体から分離されても、単独で存在することができます。表現方法:中空ひし形+実線、ひし形は全体を指します
5. 組み合わせ関係
結合関係も集合関係の一種であり、全体と個の関係ですが、全体がなければ個は単独では存在できません。たとえば、会社と部門の関係は全体と部分です。会社がなければ部門は存在しません。通常の集約関係で全体を表すオブジェクトが、その部分を表すオブジェクトのライフサイクルを担当する必要があります。表現方法:菱形+実線
6. 実装関係 実装関係は、クラスとインターフェイスの間の関係であり、クラスがインターフェイスのすべての特性と動作を実現していることを示します。表現方法:中空三角形+点線
クラス間の 6 つの関係をよりよく理解できるように、学習と理解に役立つ例を以下に示します。
1. 自動車のクラス図
自動車のクラス図の説明:
車、自動車、自転車の間には「実現」の関係があり、これは白抜きの矢印が付いた点線で表されます。
自動車と SUV の関係は一般化された関係であり、白抜きの矢印が付いた実線で表されます。
車、エンジン、タイヤの間には「組み合わせ」の関係があり、これは実線のひし形矢印の実線で表されます。
学生は通学に自転車を利用する必要があり、自転車との「依存」関係が点線の矢印で表されています。
学生とクラスの間には「集合」関係があり、白抜きのひし形の矢印が付いた実線で表されます。
学生と ID カードの関係は「関連付け」であり、尖った矢印付きの実線で表されます。
2. 動物の UML クラス図
3. 学生インターネット UML クラス図
上記のケースをすぐに読んで理解できれば、クラス図を基本的に理解したことになります。さらにコードと対応するクラス図を組み合わせて統合すれば、将来クラス図を見たときに混乱することはなくなります。
ProcessOn は、フローチャート、マインド マップ、UML 図、アーキテクチャ図、およびその他のグラフィックの描画をサポートします。ProcessOn を使用してUMLクラス図を描画する方法は、クラス図の描画に関する知識ポイントを習得し、学習して理解する限り、非常に簡単です。エディターによって共有されるクラス 図の例があれば、誰もがクラス図の書き方をすぐに学ぶことができると思います。
ステップ 1: ProcessOn に登録してログインし、新しい UML グラフを作成する
ステップ 2:左側のツールバーでクラスのロゴを選択し、右側の編集領域にドラッグし、クラス名、属性、メソッドを書き込みます。
ステップ 3:クラス間の関係に従って矢印と線をマークします。
注: ProcessOn の各アイコン間の接続は、デフォルトでは実線の矢印です。必要に応じて、上部のツールバーで接続スタイル、接続タイプ、接続の色、矢印の方向、および矢印のスタイルを調整できます。写真をより美しくしたい場合は、テキスト、アイコン、線などを異なる色で塗りつぶし、同じアイコンをできるだけ同じサイズにすることができます。
クラス図に関する関連内容です。上記のUML クラス図のケースはすべてProcessOnを使用して描画されます。