クラス図とは?
クラス図は、オブジェクト指向システムの静的構造をモデル化するUML構造図です。クラス、その属性、メソッド、およびそれらの間の関係(継承、関連、コンポジション、集約)を示します。クラス図はソフトウェアアーキテクチャの設計図として機能し、開発者がコードを書く前にシステム設計を視覚化するのに役立ちます。
編集とプレビュー
Mermaid構文でクラス図を作成し、変更を即座に確認。
一般的なユースケース
ソフトウェアアーキテクチャ計画
実装前にアプリケーションの構造を設計。クラス、その責任、およびそれらがどのように相互作用するかを定義し、保守性と拡張性のあるシステムを構築。
オブジェクト指向設計
継承階層、インターフェース、抽象クラスをモデル化。ポリモーフィズム、カプセル化、Factory、Singleton、Observerなどのデザインパターンを視覚化。
コードドキュメント
既存のコード構造のビジュアルドキュメントを生成。新しいチームメンバーが複雑なクラス階層と依存関係をすばやく理解するのに役立つ。
データベーススキーマ計画
オブジェクトモデルをデータベーステーブルにマッピング。ORMモデルやデータベーススキーマを実装する前に、エンティティ、関係、カーディナリティを特定。
主な機能
クラス構造定義
クラス名、可視性修飾子(public、private、protected)付きの属性、戻り値型とパラメータ付きのメソッドを定義。
関係タイプ
継承(汎化)、関連、集約、コンポジション、依存関係を適切なUML表記でモデル化。
インターフェースと抽象クラス
標準的なUML規約とステレオタイプを使用して、具体クラス、抽象クラス、インターフェースを区別。
多重度と制約
関係のカーディナリティ(1..1、1..*、0..*)を指定し、ビジネスルールと設計決定を明確にする制約やノートを追加。
ベストプラクティス
コアクラスから始める
最も重要なドメインエンティティから始め、徐々にサポートクラスを追加。一度にすべてをモデル化しようとしない。
適切な可視性を使用
属性とメソッドに適切な可視性をマーク:+はpublic、-はprivate、#はprotected。これによりカプセル化の決定が文書化される。
関連する関係を表示
意味のある関係のみを含める。すべてのクラスの相互作用を表示する必要はない—アーキテクチャ的な重要性に焦点を当てる。
ダイアグラムを焦点を絞る
1つの大きなダイアグラムではなく、異なるサブシステム用に複数の小さなダイアグラムを作成。それぞれが明確なストーリーを伝えるべき。
他のダイアグラムタイプを探す
フローチャート
ノードと方向矢印でプロセス、ワークフロー、アルゴリズムを視覚化。ビジネスプロセスやデシジョンツリーに最適です。
シーケンス図
異なるアクターやシステム間の時系列でのインタラクションを文書化。APIドキュメントやシステム設計に最適です。
ステート図
システムやアプリケーションの状態遷移を表現。ライフサイクル状態やワークフローのモデリングに最適です。
ガントチャート
タスクと依存関係でプロジェクトのタイムラインを計画・追跡。プロジェクト管理やスケジューリングに最適です。
ER図
エンティティと関係でデータベーススキーマを設計。データベースモデリングやドキュメント作成に最適です。
ユーザージャーニー
タッチポイント全体のユーザー体験とインタラクションをマッピング。UXデザインやカスタマージャーニーマッピングに最適です。
Gitグラフ
Gitのブランチ戦略やコミット履歴を視覚化。バージョン管理ワークフローの説明に役立ちます。