UMLクラス図は、オブジェクト指向システムを構築し、可視化するために使用されるグラフィカル表記法です。統一モデリング言語(UML)のクラス図は、システムの構造を表すことによってシステムの構造を記述する一種の静的構造図です。

  • クラス、
  • それらの属性
  • 操作(またはメソッド)
  • そしてオブジェクト間の関係。

より早く、より簡単にUMLを学ぶ

あなたはより早く、より簡単にそしてより早くUMLを学ぶための無料のUMLツールを探していますか?Visual Paradigm Community Editionは、すべてのUML図タイプをサポートするUMLソフトウェアです。それは国際的な賞を受賞したUMLモデラーですが、それでも使いやすく直感的で完全に無料です。

クラスとは

クラスはオブジェクトの青写真です。オブジェクトとクラスは密接に関係しています。一方について話すことなく他方について話すことはできません。そして、オブジェクト指向設計の全体的なポイントはオブジェクトではなく、クラスです。オブジェクトを作成するためにクラスを使用するからです。したがって、クラスはオブジェクトが何であるかを記述しますが、それはオブジェクト自体ではありません。

実際、クラスはオブジェクトのタイプを記述しますが、オブジェクトはクラスの使用可能なインスタンスです。各オブジェクトは同じブループリントのセットから構築されているため、同じコンポーネント(プロパティとメソッド)を含んでいます。標準的な意味は、オブジェクトはクラスとオブジェクトのインスタンスであるということです - オブジェクトは状態と振る舞いを持ちます。

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

クラスとは

UMLクラス表記

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

UMLクラス表記

クラス名:

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

クラス属性

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

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

  • 操作は3番目の区画に表示されます。それらはクラスが提供するサービスです。
  • メソッドの戻り型は、メソッドシグネチャの末尾のコロンの後に表示されます。
  • メソッドパラメータの戻り型は、パラメータ名の後のコロンの後に表示されます。操作がコード内のクラスメソッドにマッピングされる

クラス操作

クラスの視認性

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

クラスの視認性

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

パラメータの方向性

操作(メソッド)内の各パラメータは、呼び出し元に対するその方向を指定する in、out、またはinoutとして表すことができます。この方向性はパラメータ名の前に表示されます。

パラメータの方向性

クラス図の見方

視点の選択は、あなたが開発プロセスにどの程度沿っているかによって異なります。たとえば、ドメインモデルの作成中に、概念的な観点を超えることはめったにありません。分析モデルは通常、概念的な観点と仕様の観点の混在を特徴とします設計モデルの開発は、通常、仕様の観点を重視して始まり、実装の観点へと進化します

ダイアグラムはさまざまな観点から解釈できます。

  • 概念:ドメイン内の概念を表します
  • 仕様:ソフトウェア内の抽象データ型(ADT)のインターフェースに焦点を当てています
  • 実装:クラスがどのようにしてそれらのインターフェースを実装するかを説明します

視点は、提供される詳細の量と提示する価値のある関係の種類に影響します。前述したように、クラス名は唯一の必須情報です。

クラス図の見方

クラス間の関係

UMLはきれいな絵だけではありません。正しく使用されると、UMLはダイアグラムからコードがどのように実装されるべきかを正確に伝えます。正確に解釈されれば、実装されたコードはデザイナーの意図を正しく反映します。下の図に示されているターゲットプログラミング言語との関係で、それぞれの関係が何を意味するのか説明できますか。

あなたがまだそれらを認識できないならば、問題ないこのセクションはあなたがUMLクラス関係を理解するのを助けることを意味します。クラスは、他のクラスとの1つ以上の関係に関与している可能性があります。関係は、次のいずれかのタイプになります。

クラス間の関係

継承(または汎化):

一般化は、より一般的な分類子とより具体的な分類子の間の分類学的関係です。特定の分類子の各インスタンスは、一般的な分類子の間接的なインスタンスでもあります。したがって、特定の分類器は、より一般的な分類器の機能を継承します。

  • "is-a"関係を表します。
  • 抽象クラス名はイタリック体で示しています。
  • SubClass1とSubClass2はスーパークラスの特殊化です。

次の図は、継承階層の例を示しています。SubClass1とSubClass2はSuperClassから派生しています。関係は、子要素から親要素を指す白抜きの矢印付きの実線として表示されます。

継承(または汎化)

継承の例 - 図形

次の図は、2つのスタイルを持つ継承の例を示しています。コネクターは異なって描かれていますが、それらは意味的に同等です。

継承の例 - 図形

協会

関連は、UMLクラス図内のクラス間の関係です。それらはクラス間の実線で表されます。関連付けは通常、実世界の問題ドメインを反映する動詞または動詞句を使用して命名されます。

簡単な協会

  • 2つのピアクラス間の構造的リンク
  • Class1とClass2の間に関連があります

以下の図は、単純な関連付けの例を示しています。<>クラスClass1と<>クラスClass2を関連付ける関連付けがあります。関係は2つのクラスを結ぶ実線として表示されます。

簡単な協会

基数

カーディナリティは、次の観点から表現されます。

  • 一対一
  • 一対多
  • 多対多

基数

集約

特別なタイプの協会。

  • それは「の一部」の関係を表します。
  • Class2はClass1の一部です。
  • Class2の多くのインスタンス(*で表示)はClass1に関連付けることができます。
  • クラス1とクラス2のオブジェクトは別々の有効期間を持ちます。

下の図は、集計の例を示しています。関連付けは、関連付けの端に塗りつぶされていない菱形が付いた実線として表示されます。これは、集計を表すクラスに接続されています。

集約

組成

  • 全体が破壊されたときに部分が破壊される特殊なタイプの集約。
  • クラス2のオブジェクトはクラス1と共存して死にます。
  • Class2は自立することができません。

次の図は、構成例を示しています。関係は、関連付けの端に塗りつぶされた菱形が付いた実線として表示されます。これは、全体または複合を表すクラスに接続されています。

組成

依存

あるクラスのオブジェクトは、メソッドのコード内で別のクラスのオブジェクトを使用することがあります。オブジェクトがどのフィールドにも格納されていない場合、これは依存関係としてモデル化されます。

  • 特別なタイプの協会。
  • 一方の定義を変更しても他方が変更される可能性がある場合は、2つのクラス間に存在します(ただしその逆はありません)。
  • クラス1はクラス2に依存

以下の図は、依存関係の例を示しています。関係は白抜きの矢印付きの破線として表示されます。

依存

次の図は、依存関係の他の例を示しています。Personクラスには、BookRecordメソッドを持つhasReadメソッドがあり、その人がその本を読んだ場合はtrueを返します(おそらくデータベースをチェックすることによって)。

依存

実現

実現化は、ブループリントクラスと、それぞれの実装レベルの詳細を含むオブジェクトとの間の関係です。このオブジェクトは、青写真クラスを実現すると言われています。つまり、これはインタフェースと実装クラスの関係として理解できます。

たとえば、Ownerインタフェースは、プロパティの取得およびプロパティの破棄のためのメソッドを指定します。PersonクラスとCorporationクラスは、おそらく非常に異なる方法でこれらのメソッドを実装する必要があります。

実現

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

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

クラス図の例:GUI

クラス図には、クラスまたは関係に添付されたメモもあります。

クラス図の例:GUI

今すぐUMLクラス図を描こうとする

クラス図とは何か、そしてクラス図の書き方を学びました。あなた自身のクラス図を描く時が来ました。無料のUMLソフトウェアであるVisual Paradigm Community Editionを入手し、無料のクラス図ツールを使って独自のクラス図を作成してください。それは使いやすく直感的です。

関連リンク

視覚的パラダイムオンライン

コメント

コメントフォーム
記事の評価
  • リセット
  • リセット