Presentation is loading. Please wait.

Presentation is loading. Please wait.

クラス図(1) 後半 FM13010 村上 太一.

Similar presentations


Presentation on theme: "クラス図(1) 後半 FM13010 村上 太一."— Presentation transcript:

1 クラス図(1) 後半 FM13010 村上 太一

2 3-3 クラス図の関係その2 集約について 関連がある2つのクラス間に全体と部分の関係が成り立つときに使用する。
3-3 クラス図の関係その2 集約について 関連がある2つのクラス間に全体と部分の関係が成り立つときに使用する。 例 「企業 は 社員 を持っている 」 企業 社員 集約 全体 部分

3 3-3 クラス図の関係その2 依存関係について 2つのモデル要素間に存在する利用関係を表現する。 クラス間で使用する場合は以下の3つである。
3-3 クラス図の関係その2 依存関係について 2つのモデル要素間に存在する利用関係を表現する。 クラス間で使用する場合は以下の3つである。 引数で参照する場合 ローカル変数で参照する場合 グローバルに参照する場合

4 3-3 クラス図の関係その2 依存関係について 引数で参照する場合 クラスAがその保持している操作の引数でクラスBを受け取っている場合
3-3 クラス図の関係その2 依存関係について 引数で参照する場合 クラスAがその保持している操作の引数でクラスBを受け取っている場合 クラスA +操作1(引数1:クラスB) クラスB

5 3-3 クラス図の関係その2 依存関係について ②ローカル変数で参照する場合
3-3 クラス図の関係その2 依存関係について ②ローカル変数で参照する場合 クラスAがその保持している操作の中でクラスBをローカル変数として使用した場合 クラスA +操作1() クラスB 操作1(){ クラスB オブジェクト;//クラスBのオブジェクトの作成 オブジェクト1.操作2;//オブジェクト1(クラスB)の操作2の呼び出し

6 3-3 クラス図の関係その2 依存関係について ③グローバルに参照する場合
3-3 クラス図の関係その2 依存関係について ③グローバルに参照する場合 クラスBがモデル全体等から見えるように宣言され、クラスAがクラスBを参照している場合 クラスA +操作1() クラスB +操作2() 操作1(){ オブジェクト1.操作2();//オブジェクト1(クラスB)の操作2の呼び出し

7 3-3 クラス図の関係その2 汎化について 一般的な要素(スーパークラス)と特定化された要素(サブクラス)を表現する。
3-3 クラス図の関係その2 汎化について 一般的な要素(スーパークラス)と特定化された要素(サブクラス)を表現する。 サブクラスはスーパークラスの性質をすべて受け継ぎ、さらに独自の性質を持つ。

8 3-3 クラス図の関係その2 汎化について スーパークラス スーパークラス サブ1 サブ2 サブ1 サブ2 ・・・ ・・・
3-3 クラス図の関係その2 汎化について スーパークラス スーパークラス サブ1 サブ2 サブ1 サブ2 ・・・ ・・・ シェアード・ターゲット・スタイル セパレート・ターゲット・スタイル

9 3-3 クラス図の関係その2 汎化について 乗り物 スーパークラス 汎化 飛行機 乗用車 バス 旅客機 ヘリ

10 3-3 クラス図の関係その2 抽象クラスについて 抽象クラスはオブジェクトを1つも持たない。
3-3 クラス図の関係その2 抽象クラスについて 抽象クラスはオブジェクトを1つも持たない。 サブクラスをまとめる意味で作成する為、抽象クラスは必ずサブクラスを持つ。 乗り物 乗り物 {abstract} 飛行機

11 3-4 クラスその2 ∽(アドバンス) クラス名(∽アドバンス)について
3-4 クラスその2 ∽(アドバンス) クラス名(∽アドバンス)について クラスにあるパッケージに属する場合には、クラスを表示する際に、パッケージ名をクラス名の前に修飾することができます。 パッケージ名 クラス名 学校 学校: :生徒 生徒

12 3-4 クラスその2 ∽(アドバンス) クラス名(∽アドバンス)について
3-4 クラスその2 ∽(アドバンス) クラス名(∽アドバンス)について クラスの属性は下記の形式で多重度およびプロパティ文字列を表記することができる。 例・・・学生のクラス属性 ステレオタイプ 可視性 名前 : 型表現 [多重度] = 初期値 {プロパティ文字列}   ―  学籍番号  int    [1]          {unique}    生徒 -学年 : int[1] = 1 -学籍番号 : int[1] {unique}

13 3-4 クラスその2 ∽(アドバンス) 操作(∽アドバンス)について
3-4 クラスその2 ∽(アドバンス) 操作(∽アドバンス)について クラスの操作は以下の形式で引数の入出力種別、引数のデフォルト値、プロパティ文字列を表記できる。 例・・・商品のクラス操作 ステレオタイプ 可視性 名前 (入出力種別 引数名 : 型 デフォルト値) : 戻り値型{プロパティ文字列}  ≪accessor≫    +  生徒名設定(  in   生徒名 : String デフォルト生徒):  void   生徒 ≪accessor≫+生徒名取得():String{concurrency=sequential} ≪accessor≫+生徒名設定(in 生徒名:String=デフォルト生徒):void

14 3-4 クラスその2 ∽(アドバンス) タグ付値、メタ属性(∽アドバンス)
3-4 クラスその2 ∽(アドバンス) タグ付値、メタ属性(∽アドバンス) タグ付値をUMLモデル要素に付けることにより、UMLのモデル要素に情報を付加することができる。 タグ付値はクラスのみの情報を表現する。 例・・・乗り物クラスを用いてのタグ付値の表記 乗り物 {abstract, 作成者=村上太一, 作成日=2013/5/8, ステータス=分析}

15 3-4 クラスその2 ∽(アドバンス) 派生属性(∽アドバンス)
3-4 クラスその2 ∽(アドバンス) 派生属性(∽アドバンス) 派生属性は、他の属性などから計算できる属性である。 例・・・「学校」クラスの「創立年数」は「開校年月日」と現在の日付から計算できるので、派生属性といえる 派生属性 学校 開校年月日 /創立年数

16 3-4 クラスその2 ∽(アドバンス) 派生関連(∽アドバンス)
3-4 クラスその2 ∽(アドバンス) 派生関連(∽アドバンス) 派生関連は、派生属性と同様に、他の関連からたどることができる関連である。 例・・・「祖父」クラスは「父」の関連を使うことで「祖父」から見て「私」は子供の子供であるといえる。 二重の経路で、関連が引かれたので「孫である」は派生関連と   なる。 祖父 子供である 子供である /孫である(派生関連)


Download ppt "クラス図(1) 後半 FM13010 村上 太一."

Similar presentations


Ads by Google