Read this post in: de_DEen_USes_ESfr_FRhi_INid_IDpl_PLpt_PTru_RUvizh_CNzh_TW

包括的なUMLクラス図チュートリアル:例を用いてオブジェクト指向設計をマスターする

AIAI Visual ModelingUML2 hours ago

🎯 UMLクラス図入门

その UML(統一モデリング言語)クラス図 はオブジェクト指向ソフトウェア設計の基盤です。それは 静的構造図 であり、視覚的に システムの構造 をモデル化することで表現します:

Class Diagram Example: Order System

  • クラス

  • 属性(状態)

  • 操作(メソッド)

  • クラス間の関係

このガイドでは、基本的なクラス構造から、コンポジションや依存関係のような高度な関係まで、すべての重要なコンセプト、表記法、実践的な例を丁寧に解説します。


✅ 1. クラスとは何か?

クラス は、オブジェクトを作成するための 設計図または テンプレート です。それはオブジェクトが持つ データ(属性)および 振る舞い(メソッド)を定義します。

🔹 オブジェクト = ある インスタンス クラスの 
🔹 クラス = 定義; ではない オブジェクトそのものではない

🐶 例: Dog クラス

概念 説明
クラス名 Dog
属性 名前: 文字列色: 文字列種類: 文字列
操作 吠える(): voidしっぽを振る(): void食べる(): void

💡 各々の Dog オブジェクト(例: バディマックス) はこのブループリントから作成され、同じ構造を持ちながら異なる値を持つ。


🧩 2. UML クラス表記

UMLにおけるクラスは 3つのコンパートメントに分けられる:


🔹 構文規則

  • 名前: 中央揃え、太字、最初の文字を大文字にする。

  • 属性名前: 型 — 例として 年齢: int

  • 操作操作名(パラメータ): 戻り値の型 — 例として getAge(): int

🔹 可視性記号

記号 意味 説明
+ 公開 どこからでもアクセス可能
- プライベート クラス内でのみ
# プロテクト クラスおよびサブクラス内

🔹 例:Person クラス


✅ コード上では、これに対応するpublic class Personプライベートフィールドとパブリックゲッター/セッターを持つ。


🔍 3. クラス図の視点

詳細度と焦点は、以下の要因に依存する開発フェーズおよび目的モデルの目的に応じて変わる。

視点 焦点 使用するタイミング
概念的 ドメイン概念(例:「顧客」、「注文」) 初期段階 – ドメインモデリング
仕様 インターフェース、抽象型、契約 分析段階 – システムの機能を定義
実装 具象クラス、メソッドの詳細、データ型 設計およびコーディングフェーズ – どのように構築されるか

📌 ヒント:まず から始めましょう概念的、進化して へ実装設計する際に進化させましょう。


🔗 4. クラス間の関係

UMLは をサポートしています5つの基本的な関係クラス間の相互作用を定義するものです。これらを理解することで、設計が現実世界の論理を反映していることを保証できます。


🔹 1. 継承(一般化)

「は-である」関係

を表します継承、サブクラスがスーパークラスから振る舞いや属性を継承する関係です。

  • 矢印:空心の三角形(親クラスを指す)

  • 抽象クラス:斜体表記(例: Shape)

  • サブクラスはより具体的です(例: CircleRectangle)

✅ 例:形状の階層

💬   形状。これは継承しますdraw()および.

🧠 使用例:ポリモーフィズム — 呼び出しdraw()任意の形状に対して、その型を知らずに呼び出す。


🔹 2. 関連

「所有する」関係 — 2つのクラス間の構造的リンク。

  • は、実線で2つのクラスを接続する。

  • 動詞で名前が付けられることが多い(例:管理する所有する相互作用する).

  • 可能である双方向 または 単方向.

✅ 例:生徒と授業

🔄 双方向:A 生徒 は に登録する授業、そして 授業 は多くの 生徒を保有する.

📌 注意:関連は 多重性 (基数)が両端に存在する。


🔹 3. 集約

「部分-全体」関係 — 弱い所有関係

  • を表す緩い結合 — 部分は全体から独立して存在できる。

  • 空の菱形 (空洞)が 全体 側に存在する。

✅ 例:大学と学部

🟨 未埋めのダイヤモンド の 大学 側 → 学部 は、~なしで存在できる 大学.

🧩 大学が閉鎖された場合、学部は他の場所に移転する可能性がある。


🔹 4. 組成

「全体-部分」関係 — 強い所有関係

  • その 部分は独立して存在できない 全体とは別に。

  • 埋められたダイヤモンド (実線)全体の 全体 側。

  • 全体が破壊されると、部分も破壊される。

✅ 例:家と部屋

🔴 埋められたダイヤモンド の  → 部屋 が壊れると は取り壊される。

🛠️ 使用される場面:コンポジットパターン — 例:ドキュメントを含む段落画像など


🔹 5. 依存関係

「使用」関係 — 一時的または間接的な使用

  • 破線と開放矢印依存先から供給元へ。

  • あるクラスが使用するときメソッド内で別のクラスを使用する場合(例:パラメータ、戻り値、またはローカル変数として)。

  • フィールドとして保存されない →長期的な関係なし.

✅ 例:Person と Book

📌 Personを使用するBookのみ一時的に の hasRead() メソッド — フィールドとして保存されません。

✅ これは 依存関係、関連ではありません。


🔹 6. 実装(インターフェースの実装)

「実装」関係

  • を インターフェースに クラスがそれを実装する。

  • 破線と開放三角形がインターフェースを指す。

✅ 例:OwnerインターフェースとPerson

✅ Person 実装する の Owner インターフェース → 必ず実装する acquire() および dispose().

💡 これは 継承ではありません — それは 継承ではありません — それは インターフェースの実装.

🔄 複数のクラスが同じインターフェースを実装できる(例:法人もまた実装する所有者).


🧱 5. クラス図の例:注文システム

簡単な注文管理システムをUMLを使って設計しよう。

📌 関与するエンティティ:

  • 顧客

  • 注文

  • 注文項目

  • 商品

  • 支払い

🎯 設計目標:

  • ある顧客は1つ以上の注文.

  • 注文は複数の注文項目.

  • 注文項目は、製品.

  • 注文は1つを持つ支払い.

🖼️ UML クラス図(テキスト表現)


📌 関係:

  • 関連顧客 → 注文(1対多)

  • 合成注文 → 注文項目(全体-部分)

  • 集約注文 → 支払い(独立して存在可能)

  • 関連注文項目 → 商品 (多対1)

✅ このモデルは以下の機能をサポートしています:

  • 注文の作成

  • アイテムの追加

  • 合計の計算

  • 支払いの処理


🖼️ 6. クラス図の例:GUIアプリケーション(MVCパターン)

次に、シンプルなGUIログインフォームを用いてMVC(モデル-ビュー-コントローラ)アーキテクチャをモデル化します。

📌 コンポーネント:

  • LoginController (ロジックを処理)

  • LoginView (UIを表示)

  • UserModel (ユーザー情報を保存)

🎯 関係:

  • LoginController は…を使用してLoginView データを表示します。

  • LoginController を使用する UserModel ユーザー情報を取得/保存するために使用する。

  • LoginView からデータを表示する UserModel.

🖼️ UML クラス図(テキスト)


🔗 関係:

  • 依存関係LoginController → LoginView (メソッド内で使用)

  • 依存関係LoginController → UserModel (メソッド内で使用)

  • 関連LoginController は以下の参照を持つ LoginView および UserModel (フィールドとして)

✅ これは以下の通り反映されるMVC: コントローラーはビューとモデルの間を調整します。


🛠️ 7. UMLクラス図を作成するためのツール

✅ Visual Paradigm Community Edition(無料で強力)

  • 対応していますすべてのUML図

  • 直感的なドラッグアンドドロップインターフェース

  • AI駆動のアシスタンスより迅速な学習と設計のため

 

 

🚀 今すぐ試してみましょう:Visual Paradigm CEをダウンロード

🔧 AI駆動の機能

ツール ユースケース
AIクラス図ウィザード AIの提案を活用したステップバイステップのクラス作成
ユースケーススタジオ ユースケースの記述からクラスと関係を抽出
Agilien アジャイルユーザーストーリーからクラス図を生成
DB Modeler AI クラス図をデータベーススキーマに変換
MVCアーキテクチャ Webアプリ用のコントローラーとビュー図を生成

🎓 要約:主要なコンセプトを一覧で

コンセプト 記号 意味
クラス クラス オブジェクトの設計図 顧客製品
継承 空三角形 「は-である」  → 動物
関連 実線 「を持っている」 顧客 → 注文
集約 空菱形 「部分である」(弱い) 大学 → 学部
合成 実菱形 「全体-部分」(強い)  → 部屋
依存関係 破線+矢印 「使用する」 人物 → 
実現 破線+三角形 「実装する」 人物 → 所有者

🧠 成功のための最終アドバイス

  1. シンプルに始める:実装に飛び込む前に、概念モデルから始めましょう。

  2. 意味のある名前を使用する顧客注文支払い — ではない Obj1Obj2.

  3. 可視性に関して一貫性を持ちましょう: 使用してください+公開用、-非公開用、#保護用。

  4. AIツールを使用する記述から図を検証および自動生成するために。

  5. 関係性を慎重に確認する: 質問する: 「この部分は全体なしで存在できるか?」→ いいえの場合 →結合.


📚 関連リンクおよびリソース


✅ では、あなたが挑戦する番です!

🧩 チャレンジ:以下のものについてUMLクラス図を描いてください。図書館管理システム以下の要素を含む:

  • 書籍会員貸出図書館員

  • 以下の関係を用いてください。コンポジション貸出書籍

  • 以下の関係を用いてください。集約図書館司書 および 図書館

  • 使用する 依存関係 に対して 図書館司書 → 書籍 (利用可能状態を確認する際)

💬 使用する Visual Paradigm CE または任意のUMLツールを使ってスケッチしてください!


🎁 ボーナス:AIを使ってUMLをより早く習得する

🧠 AIを使ってクラス図を即座に生成、検証、説明しましょう。
学生、開発者、アーキテクトのいずれであっても—AIにより、UMLの学習はより速く、簡単で、直感的になります。

🔗 今日から最初のAI支援クラス図の作成を始めましょう!


🌟 今、UMLクラス図を使ってクリーンでプロフェッショナルかつ保守性の高いオブジェクト指向システムを設計するためのすべての要素が揃っています。
練習を続け、設計を続け、コーディングを続けましょう!


✅ モデリングを楽しんでください! 🎨💻
— UMLマスタリーへのあなたの旅はここから始まります

Sidebar Search
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...