クラス図 (1)

Post on 31-Dec-2015

40 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

クラス図 (1). FM12013  山口 亨. クラスとは. 現実に存在する“物体”(オブジェクト)の構造や 振る舞い などに着目して注目し抽象化したもの クラス図を含む UML のほとんどの図で使用されている. クラス の表記. クラス名 (ステレオタイプは任意 ). > クラス 名. 属性1 属性 2 属性3. 属性のリスト. 操作 1 () 操作 2 (). 操作のリスト. 属性. クラス内の、知識的な情報 属性名以外は省略可能で、以下の形式で記述. 従業員. 従業員. 勤続 年数 氏名 年齢. - PowerPoint PPT Presentation

TRANSCRIPT

クラス図(1)

FM12013  山口 亨

クラスとは• 現実に存在する“物体”(オブジェクト)

の構造や振る舞いなどに着目して注目し抽象化したもの

• クラス図を含む UML のほとんどの図で使用されている

クラスの表記

属性1属性2属性3

操作 1 ()操作 2 ()

<< ステレオタイプ>>

クラス名

属性のリスト

操作のリスト

クラス名(ステレオタイプは任意)

属性• クラス内の、知識的な情報• 属性名以外は省略可能で、以下の形式で記述

可視性 属性名 : 型表現 = 初期値

ー 勤続年数 : int = 1

従業員勤続年数氏名年齢

属性名のみ表示

従業員ー勤続年数: int=1ー氏名: Stringー年齢 :int

属性名、可視性、型、初期値を表示

操作• クラス内の振る舞い情報• 操作名以外は省略可能で、以下のように記述

可視性 操作名 (引数名 : 引数の型)

: 戻り値

+ 商品名設定 (商品名 : String ) : void

商品

商品名取得()商品名設定()操作名のみ表示

商品

+商品名取得(): String+商品名設定(商品名: String ): void

可視性、操作名、引数名、引数の型     戻り値の型の表示

クラス表記のバリエーション• クラスの表記は、クラス名以外は省略可

能商品

商品名取得()商品名設定()属性、操作名を表示

ー商品名ー価格 商品

商品名取得()商品名設定()属性非表示

商品ー商品名ー価格

操作非表示

商品

属性、操作非表示

クラス表記のバリエーション• 表示規則に適合するもののみを表示する

ことができる

商品

商品名取得()商品名設定()

ー商品名… 省略表記

可視性• 属性・操作に対して設定する、他クラスか

らの参照できる度合い• 以下の値が設定できる

記号 名称 参照度合

+ public すべてから

ー private 自分からのみ

# protected 自分とサブクラスからのみ

~ package 自分と同パッケージ内のクラスからのみ

可視性の表示

Class3

Class1

+操作1()#操作2()ー操作3()~操作4()

Class2

Class4

クラス図の関係その1• より良い構造化を行うには、他のクラス

との関係性を表現する必要がある• UML では、関連(集約)、依存(実現)、

汎化、フローを総称して関係と呼ぶ

関連• クラス間に構造的な関係がある場合に使

受験生 大学志望校である

役割(ロール)名• あるクラスが他のクラスから見た時に、

どの様な役割を持つか示すのに使用

役割(ロール)名

受験生 大学受験者 志望校

教授

勤務先

多重度• 他のクラスから接続される可能性のある

関係の数を記述• 以下のように表記

クラスA

クラスA1 0..*

多重度

表記 接続される可能性のある数0..1 0 か 11 1 のみ

0..* または *

0 以上

1..* 1 以上3..10 3 ~ 10

• 多重度にはこのような表記が可能

多重度(例)

受験生A

受験生B

受験生C

甲大学

乙大学

丙大学

多重度(例)

受験生 大学志望校である

0 .. * 1..*

関連の方向• 関連の棒線に矢印をつける事で、参照の

方向を指定する事が出来る• UML1.X と UML2.X では、指定方法が違う

関連の方向

Object1 :Class1

Object2 :Class2

Message1 ()

Message2 ()

Object3 :Class3

Object4 :Class4

Message3 ()

双方向の呼び出し 片方向の呼び出し

関連の方向

Class1

Class2

双方向の関連( UML 1.X )

Class1

Class2

双方向の関連( UML 2.X )

Class1

Class2

片方向の関連( UML 1.X )

Class1

Class2

片方向の関連( UML 2.X )

UML1.X の方向表記

BAAからBへの方向性の指定があるBからAへの方向性の指定がある

BAAからBへの方向性の指定があるBからAへの方向性はなし

UML2.X の方向表記BA

AからBへの方向性は未定義BからAへの方向性は未定義

BAAからBへの方向性の指定があるBからAへの方向性は未定義

BAAからBへの方向性の指定があるBからAへの方向性の指定がある

BAAからBへの方向性の指定があるBからAへの方向性はなし

BAAからBへの方向性はなしBからAへの方向性はなし

複数の関係• 同一クラス間でも、異なる関連があれば、

それぞれ複数の関連を引ける

受験生 大学第 1 志望である

第 2 志望である

クラス図の関係その2• 次は、集約、依存関係、汎化、抽象クラ

スについて説明します

集約• あるクラスに対して、その一部を構成して

いるクラスを表す時に使用

会員リスト

会員ー会員 ID

依存関係• 2つのモデル要素間の利用関係を表現• 依存関係は以下の 3 つの場合に使用

1.引数で参照する場合2.ローカル変数として参照する場合3.グローバルに参照する場合

引数で参照する場合• クラス A の操作で引数の型にクラス B を

使っている場合• クラス A の操作の戻り値型にクラス B を

使っている場合

クラスA

+操作1(引数1:クラス B )

クラスB

ローカル変数として参照する場合

• クラス A 内のローカル変数として、クラス B が宣言されている場合

クラスA

+操作1()

クラスB

グローバルに参照する場合• クラス A の操作から、グローバルに宣言

されているクラス B を参照している場合

クラスA

+操作1()

クラスB

+操作2()

汎化• 一般的な要素(スーパークラス)と特定

化された要素(サブクラス)の関係を表現する手法

• 複数のサブクラスがある場合、”シェアード・ターゲット・スタイル”と”セパレート・ターゲット・スタイル”の2種類の表記がある

汎化の表記スーパー

サブ1

サブ2

・・・

サブ1

サブ2

・・・

スーパー

シェアード・ターゲット・スタイル セパレート・ターゲット・スタイル

汎化の例学校

義務教育学校 任意教育学校

小学校 中学校 高校 大学

コラム (単一継承、多重継承)

日本

動物 飛行物

単一継承 多重継承

衝突の例

動物 飛行物サイズ サイズ

多重継承により、サイズ属性が重複する

抽象クラス• オブジェクトを1つも持つことが無いク

ラス• サブクラスをまとめる意味で作成され、

必ずサブクラスを持つ

抽象クラスの表記

猫 犬

動物

馬 猿

{ abstract}

問題• 同一パッケージ内から参照できる操作を

持っているクラスは次のうちどれ?

クラスA

+操作1()

クラスB

ー操作2()

クラスC

~操作3()

クラスD

#操作4()

問題• 関連名と役割名(関連端名)は?

コンビニ

人 売買関係 お店利用客

問題• この場合の多重度は?

家人

0..*

1 .. *

質問

top related