UML クラス図のチュートリアル: 抽象クラスと例
UML 図のクラスとは何ですか?
A UML のクラス ダイアグラムは、オブジェクトまたはオブジェクトのセットを作成するために使用される設計図です。クラスは、オブジェクトの機能を定義します。これは、さまざまなオブジェクトを作成し、その動作をシステムに実装するためのテンプレートです。UML のクラスは、クラス名、属性、および操作を含む行を含む長方形で表されます。
クラス図とは何ですか?
A クラス図 ソフトウェア エンジニアリングにおけるクラス図は、クラス、属性、操作、およびそれらの相互関係を表示することでソフトウェア システムの概要を示す静的構造です。この図には、クラス名、属性、および操作が、指定された個別の区画に含まれています。クラス図は、ソフトウェア アプリケーション開発のコード構築に役立ちます。
クラス図は、システム内のオブジェクトのタイプと、オブジェクト間に存在するさまざまなタイプの関係を定義します。 アプリケーションの概要を示します。 このモデリング手法は、ほぼすべてのオブジェクト指向メソッドで実行できます。 クラスは別のクラスを参照できます。 クラスはそのオブジェクトを持つことも、他のクラスから継承することもできます。
クラス図の利点
- クラス図は、非常に複雑な情報システムのデータモデルを示します。
- 実際のコードを学ぶ前に、アプリケーションがどのように構造化されているかの概要を説明します。 メンテナンス時間を簡単に短縮できます
- これは、アプリケーションの一般的な概要をより深く理解するのに役立ちます。
- プログラムに必要なコードを強調表示する詳細なチャートを描画できます
- 開発者やその他の関係者にとって役立ちます。
UML クラス図の必須要素
UML クラス図の重要な要素は次のとおりです。
- クラス名
- Attributes
- 業務執行統括
クラス名
クラス名は、クラスのグラフィカルな表現でのみ必要です。クラス名は最上位のコンパートメントに表示されます。クラスは、同じ関係、属性、操作、およびセマンティクスを共有できるオブジェクトの設計図です。クラスは、その名前、属性、および操作が別々のコンパートメントに含まれた長方形としてレンダリングされます。
クラスを表現する際には、次のルールに注意する必要があります。
- クラス名は常に大文字で始める必要があります。
- クラス名は常に最初のコンパートメントの中央にある必要があります。
- クラス名は必ず記述する必要があります 大胆な 形式でダウンロードすることができます。
- UML 抽象クラス名は斜体で記述する必要があります。
Attributes
属性は、モデル化されるオブジェクトを記述するクラスの名前付きプロパティです。 クラス図では、このコンポーネントは名前コンパートメントのすぐ下に配置されます。
派生属性は他の属性から計算されます。 たとえば、生徒の年齢は生年月日から簡単に計算できます。
属性の特徴
- 属性は通常、可視性係数とともに書き込まれます。
- パブリック、プライベート、保護、パッケージの XNUMX つの可視性は、それぞれ +、-、#、または ~ 記号で示されます。
- 可視性は、クラスの属性のアクセス可能性を表します。
- 属性には、クラス内での使用を説明する意味のある名前が必要です。
の関係
大きく分けてXNUMX種類あります UML での関係:
- 依存関係
- 汎化
- 協会
依存関係
依存関係とは、一方の変更が他方の変更を強制する可能性がある XNUMX つ以上のクラス間の関係を意味します。 しかし、それは常に弱い関係を生み出します。 依存関係は、あるクラスが別のクラスに依存していることを示します。
次のUMLクラス図の例では、StudentはCollegeに依存しています。
汎化:
一般化は、サブクラスをそのスーパークラスに接続するのに役立ちます。 サブクラスはそのスーパークラスから継承されます。 一般化関係は、インターフェイスの実装をモデル化するために使用できません。 クラス図では、複数のスーパークラスからの継承が可能です。
この例では、クラス Student が Person クラスから一般化されます。
協会:
この種の関係は、クラス A とクラス B の間の静的な関係を表します。 従業員は組織で働いています。
アソシエーションに関するいくつかのルールを次に示します。
- 関連性はほとんどの場合、動詞、動詞句、名詞、名詞句です。
- 関連パスの最後に接続されたクラスが果たす役割を示すように名前を付ける必要があります。
- 再帰的関連付けには必須
この例では、学生と大学、つまり勉強の関係が示されています。
多重度
多重度は、属性に関連付けられた要素です。 クラスの初期化時に作成される属性のインスタンスの数を指定します。 多重度が指定されていない場合、デフォルトでは、多重度がデフォルトの多重度とみなされます。
ある大学に 100 人の学生がいるとします。 大学には複数の学生が所属することができます。
アグリゲーション
集約は、集約とその部分の間の全体と部分の関係をモデル化する特別なタイプの関連付けです。
たとえば、クラスカレッジは XNUMX 人以上の学生で構成されます。 集約では、含まれるクラスがコンテナーのライフサイクルに完全に依存することはありません。 ここでは、学生が欠席しても大学のクラスは残ります。
組成:
構成は、1 つのクラスが別のクラスの一部である場合に、2 つのクラス間の強い所有権を示す特別なタイプの集約です。
たとえば、大学がクラスの学生で構成されているとします。 大学には多数の学生が所属する可能性がありますが、各学生は XNUMX つの大学にのみ所属します。 したがって、大学が機能していない場合は、学生も全員退学になります。
集計と構成
アグリゲーション | 構成 |
---|---|
集約は、子が親クラスとは別に存在できる関係を示します。 例: 自動車 (親) と自動車 (子)。 したがって、Automobile を削除しても、子の Car はまだ存在します。 | 子が親から独立して存在することのない構成表示関係。 例:家(親)と部屋(子)。 部屋がハウスに分かれることはありません。 |
抽象クラス
これは、操作のプロトタイプを持つクラスですが、実装はありません。また、内部に操作が宣言されていない抽象クラスを持つこともできます。抽象は、クラス間の機能を識別するのに役立ちます。抽象クラスの例を考えてみましょう。モーションと呼ばれる抽象クラスがあり、その中にメソッドまたは操作が宣言されているとします。抽象クラス内で宣言されているメソッドは、 動く ().
この抽象クラス メソッドは、車、動物、ロボットなどの任意のオブジェクトで現在位置を変更するために使用できます。 指定された関数には実装が提供されていないため、この抽象クラス メソッドをオブジェクトで使用すると効率的です。 複数のオブジェクトに対して任意の方法で使用できます。
UML では、抽象クラスはクラスと同じ表記法を持ちます。 クラスと抽象クラスの唯一の違いは、クラス名が厳密に斜体フォントで書かれていることです。
抽象クラスは初期化またはインスタンス化できません。
上記で 抽象クラスの表記法、クラスの複数のオブジェクトで使用できる抽象メソッドは XNUMX つだけです。
UML クラス図の例
クラス図の作成は簡単なプロセスです。 多くの技術的なことは必要ありません。 以下に例を示します。
ATM のシステムは非常にシンプルで、顧客はいくつかのボタンを押して現金を受け取るだけです。ただし、どの ATM システムも複数のセキュリティ レイヤーを通過する必要があります。これにより、詐欺を防止し、銀行の顧客に現金や必要な情報を提供できます。
以下に UML クラス図の例を示します。
また、チェックしてください:- UML 図: 歴史、タイプ、特性、バージョン、ツール
ソフトウェア開発ライフサイクルのクラス図
クラス図は、さまざまなソフトウェア開発フェーズで使用できます。 これは、XNUMX つの異なる視点でクラス図をモデル化するのに役立ちます。
1. 概念的な観点: 概念図は現実世界の物事を説明しています。研究対象ドメインの概念を表す図を描く必要があります。これらの概念はクラスに関連し、常に言語に依存しません。
2. 仕様の観点: 仕様パースペクティブは、仕様とインターフェイスを備えたソフトウェアの抽象化またはコンポーネントを説明します。 ただし、特定の実装を約束するものではありません。
3. 実装の観点: このタイプのクラス図は、特定の言語またはアプリケーションでの実装に使用されます。 実装の観点、ソフトウェアの実装に使用します。
クラス図の設計のベスト プラクティス
クラス図は、ソフトウェア アプリケーション開発に使用される最も重要な UML 図です。クラス図を描くときに考慮すべきプロパティは多数あります。クラス図は、ソフトウェア アプリケーションのさまざまな側面を表します。
クラス図を描くときに留意すべき点をいくつか示します。
- クラス図に付ける名前は意味のあるものでなければなりません。 さらに、システムの実際の側面を説明する必要があります。
- 各要素間の関係を事前に特定する必要があります。
- すべてのクラスの責任を特定する必要があります。
- すべてのクラスに対して、プロパティの最小数を指定する必要があります。 したがって、不要なプロパティによって図が簡単に複雑になる可能性があります。
- 図の特定の側面を定義する必要がある場合は、必ずユーザー メモを含める必要があります。図の最後には、ソフトウェア開発チームが理解できる内容にする必要があります。
- 最後に、最終バージョンを作成する前に、図を普通紙に描く必要があります。 さらに、最終提出の準備が整うまで再加工する必要があります。
まとめ:
- UML は、ソフトウェア システムの成果物を指定、設計、視覚化するための標準言語です
- クラスはオブジェクトの設計図です
- クラス図は、システム内のオブジェクトのタイプと、オブジェクト間に存在するさまざまな種類の関係を記述します。
- ソフトウェア アプリケーションの静的ビューの分析と設計が可能になります。
- クラス図は、ソフトウェア アプリケーション開発に使用される最も重要な UML 図です。
- UML クラス図の必須要素は 1) クラス 2) 属性 3) 関係
- クラス図は、実際のコードを学習する前に、アプリケーションがどのように構造化されているかの概要を示します。 メンテナンス時間は確実に短縮されます
- クラス図は、次のようなオブジェクト指向プログラミング言語をマッピングするのに役立ちます。 Java, C++ルビー、 Python, etc.
また、チェックしてください:- 初心者向けの UML 図チュートリアル: UML をオンラインで無料で学ぶ