UMLクラス図の包括的なガイド

Table of Contents hide

統一モデリング言語UML )は、ソフトウェアエンジニアリングの分野における汎用の開発モデリング言語であり、システム設計を視覚化するための標準的なアプローチを提供するように設計されています。UMLを作成する当初の動機は、さまざまな表記システムとソフトウェア設計方法を標準化することへの欲求でした。UMLでは、クラス図は6種類の構造図の1つです。クラス図は、オブジェクトモデリングプロセスの基礎であり、システムの静的構造をモデル化します。

構造図は、さまざまな抽象化および実装レベルでのシステムとその部分の静的構造、およびそれらが互いにどのように関連しているかを示しています。構造図の要素は、システムの意味のある概念を表しており、抽象、実世界、および実装の概念が含まれる場合があります。構造図には、次の7つのタイプがあります。

 

14のUMLダイアグラムタイプの概要

クラス図とは何ですか?

統一モデリング言語(UML)のクラス図は、システムのクラス、属性、操作(またはメソッド)、およびオブジェクト間の関係を示すことによってシステムの構造を記述する静的な構造図です。 クラス図は、システムまたはサブシステムの青写真です。クラス図を使用して、システムを構成するオブジェクトをモデル化し、オブジェクト間の関係を示し、これらのオブジェクトの役割とそれらが提供するサービスを説明できます。

UMLの起源

UMLの目標は、すべてのオブジェクト指向メソッドで使用できる標準表記法を提供し、先行表記法の最良の要素を選択して統合することです。UMLは、幅広いアプリケーション向けに設計されています。したがって、幅広いシステムとアクティビティ(分散システム、分析、システム設計、展開など)の構成を提供します。

UMLは、OMTの統合から生じた表記法です。

  1. オブジェクトモデリング技法OMT  [ James Rumbaugh  1991] –分析およびデータ集約型の情報システムに最適でした。
  2. Booch [ Grady Booch  1994] –設計と実装に優れていました。Grady Boochは、 Ada 言語を幅広く使用し ており、この言語のオブジェクト指向技術の開発において主要なプレーヤーでした。Booch法は強力でしたが、表記法はあまり受け入れられませんでした(多くの雲の形が彼のモデルを支配しました-あまりきれいではありません)
  3. OOSE(オブジェクト指向ソフトウェアエンジニアリング[ Ivar Jacobson  1992])–ユースケースと呼ばれるモデルを特徴としています。ユースケースは、システム全体(OOが従来弱かった領域)の動作を理解するための強力な手法です。

1994年、OMTの作成者であるJim Rumbaughは、General Electricを離れ、RationalCorpのGradyBoochに加わったとき、ソフトウェアの世界を驚かせました。パートナーシップの目的は、彼らのアイデアを単一の統一された方法に統合することでした。方法は確かに「統一された方法」でした)。

UMLの歴史

クラス図の目的

クラス図は、システム設計の多くの段階で役立ちます。分析フェーズでは、クラス図は問題のあるドメインの要件を理解し、そのコンポーネントを特定するのに役立ちます。オブジェクト指向ソフトウェアプロジェクトでは、プロジェクトの初期段階で作成されたクラス図に、コードを記述するときに実際のソフトウェアクラスとオブジェクトに変換されることが多いクラスが含まれています。

後で、初期の分析と概念モデルをクラス図に改良して、システムの特定の部分、ユーザーインターフェイス、ロジックの実装などを表示できます。

クラス図は、オブジェクト指向言語に直接マッピングできる唯一のUMLダイアグラムであるため、オブジェクト指向システムのモデリングで広く使用されています。ソフトウェア開発サイクルの実装フェーズでは、クラス図を使用してモデルをコードに変換し、コードをモデルに変換できます。

クラスの例

犬には、色、名前、品種、行動などの状態があります-振る、吠える、食べる。オブジェクトはクラスのインスタンスです。

クラスとは何ですか?

UMLクラス表記

クラスは、状態(属性)と動作(操作)をカプセル化する概念を表します。各属性にはタイプがあります。各 操作 には 署名があります。 クラス名は 唯一の必須情報です。

UMLクラス表記

クラス名:

  • クラスの名前は最初のパーティションに表示されます。

クラス属性:

  • 属性は2番目のパーティションに表示されます。
  • 属性タイプはコロンの後に表示されます。
  • 属性は、コード内のメンバー変数(データメンバー)にマップされます。

クラス操作(メソッド):

  • 操作は3番目のパーティションに表示されます。それらはクラスが提供するサービスです。
  • メソッドの戻りタイプは、メソッドシグネチャの最後のコロンの後に表示されます。
  • メソッドパラメータの戻りタイプは、パラメータ名に続くコロンの後に表示されます。操作はコード内のクラスメソッドにマップされます

クラス操作

クラスの関係

クラスは、他のクラスとの1つ以上の関係に関与している場合があります。リレーションシップは、次のいずれかのタイプになります(リレーションシップのグラフィック表現については、右の図を参照してください)。

関係タイプ グラフ表示
継承 (または一般化):
  • 「is-a」関係を表します。
  • 抽象クラス名はイタリック体で示されています。
  • SubClass1とSubClass2は、スーパークラスの専門分野です。
  • 子から親クラスを指す中空の矢印の付いた実線
継承
単純な関連付け
  • 2つのピアクラス間の構造的なリンク。
  • Class1とClass2の間には関連性があります
  • 2つのクラスを結ぶ実線
単純な関連付け
集約:特別なタイプの関連付け。これは、関係の「一部」を表します。
  • Class2はClass1の一部です。
  • Class2の多くのインスタンス(*で示される)は、Class1に関連付けることができます。
  • Class1とClass2のオブジェクトには、別々の有効期間があります。
  • コンポジットのクラスに接続された、関連付けの端に未塗りのダイアモンドがある実線
集約
構成:全体が破壊されたときに部分が破壊される特殊なタイプの集合体。
  • Class2のオブジェクトは、Class1とともに生きて死にます。
  • Class2はそれ自体では立つことができません。
  • コンポジットのクラスに接続された関連付けで塗りつぶされたひし形の実線
構成
依存関係
  • 一方の定義を変更するともう一方も変更される可能性がある場合は、2つのクラスの間に存在します(ただし、その逆はありません)。
  • Class1はClass2に依存します
  • 開いた矢印の付いた破線
依存

関係名

  • 関係の名前は、関連付け行の中央に書き込まれます。
  • 良い関係の名前は、大声で読み上げるときに意味があります。
    • 「すべてのスプレッドシート には いくつかのセルが含まれています」、
    • 「式 は値に評価され ます」
  • 多くの場合 、関係を読み取る方向を示す小さな矢印が あります。たとえば、式は値に評価されますが、値は式に評価されません。

関係名

関係–役割

  • 役割は、関連付けの方向性のある目的です。
  • 役割は関連付け行の終わりに記述され、関係でそのクラスが果たす目的を説明します。
    • たとえば、細胞は発現に関連しています。関係の性質は、  がセルの式であるということです。

クラスの属性と操作の可視性

オブジェクト指向設計では、属性と操作の可視性の表記があります。UMLは、 public、  protected、  private、  packageの4種類の可視性を識別 します。

クラス内の属性と操作名の前の+、-、#、および〜記号は、属性と操作の可視性を示します。

  • +はパブリック属性または操作を示します
  • –プライベート属性または操作を示します
  • #は保護された属性または操作を示します
  • 〜はパッケージの属性または操作を示します

クラスの可視性の例

シンプルクラス

上記の例では:

  • MyClassNameのattribute1とop1はパブリックです
  • attribute3とop3は保護されています。
  • attribute2とop2はプライベートです。

さまざまなクラスのメンバーについて、これらの各可視性タイプへのアクセスを以下に示します。

アクセス権 パブリック(+) プライベート (-) 保護(#) パッケージ(〜)
同じクラスのメンバー はい はい はい はい
派生クラスのメンバー はい いいえ はい はい
他のクラスのメンバー はい いいえ いいえ 同じパッケージで

多重度

各クラスのオブジェクトの数が関係に参加し、多重度は次のように表すことができます。

  • 正確に1つ– 1
  • ゼロまたは1– 0..1
  • 多く– 0 .. *または*
  • 1つ以上– 1 .. *
  • 正確な番号–例:3..4または6
  • または、複雑な関係–たとえば、0..1、3..4、6。*は、2または5以外の任意の数のオブジェクトを意味します

多重度の例

  • 要件:学生は多くのコースを受講でき、多くの学生を1つのコースに登録できます。
  • 以下の例では、 クラス図 (左側)が静的モデルの上記の要件のステートメントを示し、オブジェクト図(右側)がコース登録のスナップショット(クラス図のインスタンス)を示しています。それぞれソフトウェアエンジニアリングとデータベース管理のコース)

オブジェクト図

集計例–コンピューターと部品

  • 集約は、「構成された」階層を示す関連付けの特殊なケースです。
  • アグリゲートは親クラスであり、コンポーネントは子クラスです

集計例

継承の例–セル分類

  • 継承は、「種類の」階層を示す関連付けのもう1つの特殊なケースです。
  • 継承は、分類法を導入することによって分析モデルを簡素化します
  • 子クラスは、親クラスの属性と操作を継承します。

継承の例

クラス図–ダイアグラムツールの例

クラス図には、クラスまたは関係にメモが添付されている場合もあります。メモは灰色で表示されます。

クラス図の例

上記の例では:

上記のクラス図の意味は、次のようにポイントを読むことで解釈できます。

  1. Shapeは抽象クラスです。斜体で表示されます。
  2. Shapeはスーパークラスです。Circle、Rectangle、PolygonはShapeから派生しています。言い換えれば、円は-形です。これは一般化/継承の関係です。
  3. DialogBoxとDataControllerの間には関連付けがあります。
  4. 形状はウィンドウの一部です。これは集約関係です。形状はウィンドウなしで存在できます。
  5. ポイントはサークルの一部です。これは構成関係です。ポイントはサークルなしでは存在できません。
  6. ウィンドウはイベントに依存しています。ただし、イベントはウィンドウに依存しません。
  7. Circleの属性は、半径と中心です。これはエンティティクラスです。
  8. Circleのメソッド名は、area()、circum()、setCenter()、setRadius()です。
  9. Circleのパラメータradiusは、float型のinパラメータです。
  10. クラスCircleのメソッドarea()は、double型の値を返します。
  11. Rectangleの属性とメソッド名は非表示になっています。ダイアグラム内の他のいくつかのクラスにも、属性とメソッド名が非表示になっています。

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

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

クラス図の例:GUI

クラス図には、クラスまたは関係にメモが添付されている場合もあります。

クラス図の例:GUI

複雑なシステムを扱う–複数または単一のクラス図?

必然的に、大規模なシステムや大規模なビジネスエリアをモデル化する場合は、考慮しなければならないエンティティが多数あります。問題をモデル化するために、複数または単一のクラス図を使用する必要がありますか?答えは次のとおりです。

  • すべてのエンティティとその関係を単一のクラス図でモデル化するのではなく、複数のクラス図を使用することをお勧めします。
  • システムを複数のクラス図に分割すると、特に各図がシステムの特定の部分をグラフィカルに表現した場合に、システムを理解しやすくなります。

ソフトウェア開発ライフサイクルにおけるクラス図の展望

ソフトウェア開発ライフサイクルのさまざまな開発フェーズでクラス図を使用できます。  通常、クラス図は、前進するにつれて3つの異なる視点(詳細レベル)で段階的にモデル化されます。

概念的な視点:図は、現実の世界で物事を説明するものとして解釈されます。したがって、概念的な観点から考えると、調査中のドメインの概念を表す図を描くことになります。これらの概念は、当然、それらを実装するクラスに関連します。概念的な観点は 、言語に依存しないと見なされます

仕様の観点:図は、ソフトウェアの抽象化またはコンポーネントを仕様とインターフェースで説明していると解釈されますが、特定の実装へのコミットメントはありません。したがって、仕様の観点から 見ると、実装ではなく、ソフトウェアのインターフェースに注目しています

実装の観点:図は、特定のテクノロジーと言語でのソフトウェア実装を説明するものとして解釈され ます。したがって、実装の観点から 見ると、ソフトウェアの実装を見ています

無料のクラス図作成ツールをお探しですか?

Visual Paradigm Online(VP Online)Free Editionは、クラス図、その他のUML図、ERDツール、および組織図ツールをサポートする無料のオンライン描画ソフトウェアです。シンプルでありながら強力なエディタを備えているため、クラス図をすばやく簡単に作成できます。この無料のUMLエディターには、広告、アクセス期限、および図の数や図形の数などの制限はありません。個人的および非営利目的で作成する図は、ユーザーが所有します。

オンラインクラス図ツール

デスクトップでより正式なUMLモデリングをお探しですか?

Visual Paradigm Community Editionは、  非営利目的でのみ無料のUMLソフトウェアを提供し、UMLモデリングの最初の一歩を踏み出し、個人的な使用のために無料のクロスプラットフォームUMLモデリングソフトウェアを必要とするユーザーをサポートするために2004年からリリースされました。学生プロジェクトにUMLを適用するように。

ビジュアルパラダイム画面

あらゆる種類の非営利目的のために無料のUMLモデリングツール。13個のUML2.x図のサポート

13個のUML2.x図がサポートされている無料のUMLツール

私たちは世界中で100万を超えるインストールに採用されており、現在も成長を続けています。多くの人々が、ビジュアルパラダイムの有料版を使用して、システムおよびデータベースの設計と分析のためのプロフェッショナルなUMLおよびERD図を毎日作成しています。

理由2

ITプロフェッショナルや大規模な組織による信頼

世界中の多くの優良組織、IT企業、コンサルタント、大学、NGO、および政府機関がビジュアルパラダイム(有料版)を採用しています。下の図は、有料のお客様の一部を示しています。

ビジュアルパラダイムのお客様

理由3

高品質–受賞歴

私たちは、世界中の最も有名な企業だけでなく、業界からも信頼されています。Visual Paradigmは、複数の国際的な賞を受賞しています。

ビジュアルパラダイムアワード

理由4

アカデミアで最も広く使用されているモデリングプラットフォーム

何千もの大学やカレッジで採用されている、学界で最も広く使用されているUMLツール。

ビジュアルパラダイムを使用している学校

理由5

無料の学習リソースの膨大なコレクション(VP Community Circleによるサポート)

何百ものUMLおよびERD図の例とテンプレート

数百のUMLおよびERDの例 を使用して、ビジュアルパラダイムにインポートして、すぐに実験したり、独自のUMLモデルを開始したりできます。すべて無料です。

理由6

幅広いアプリケーションと可能性のための商用版へのアップグレードパス

膨大な追加機能(BPMNやチームコラボレーションサポートなど)のアップグレードが簡単で、 月額6ドルから商用利用できます。

ビジュアルパラダイムのパックされた機能

理由7

ヘルプを取得し、アイデアや経験を交換するためのアクティブなユーザーフォーラム

Visual Paradigmの アクティブユーザーフォーラムで、他の人とアイデアをサポート、共有、交換します。

ビジュアルパラダイムフォーラム

理由8

クロスプラットフォーム、ユーザーフレンドリー、高速で応答性の高いアプリケーション

Visual Paradigmは、Windows、Linux、Macなどのさまざまなプラットフォームで実行できます。その直感的なインターフェースと強力なモデリング機能により、モデリングが迅速かつ簡単になります。

コメントを残す

メールアドレスが公開されることはありません。