Chapter3 クラス図(後半)             FM12014 劉鎧誠.

Slides:



Advertisements
Similar presentations
アルゴリズムとプログラミン グ (Algorithms and Programming) 第6回:クラスとインスタンス クラスの宣言 アクセス修飾子 インスタンスの生成 (new キーワード) this キーワード フィールドとメソッドの実際の定義と使い 方 クラスの宣言 アクセス修飾子 インスタンスの生成.
Advertisements

オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
地図の重ね合わせに伴う 位相関係の矛盾訂正手法 萬上 裕 † 阿部光敏* 高倉弘喜 † 上林彌彦 ‡ 京都大学工学研究科 † 京都大学工学部 * 京都大学情報学研究科 ‡
ステートチャート図 FM11013 中田紀之. ステートチャート図とは ( ステートマシン ) 時間の経過と共に変化するオブジェク トの「状態」を表す。 UML2.0 以降ではステートマシン図と名 前が変更になった。
クラス図(1) FM12013 山口 亨. クラスとは 現実に存在する “ 物体 ” (オブジェクト)の 構造や振る舞いなどに着目して注目し抽 象化したもの クラス図を含む UML のほとんどの図で使用 されている.
Chapter1 UML の概要とオブジェクト指向の基本概念 1 情報工学専攻 MFM10004 奥平 健太.
ソフトウェア工学 理工学部 情報システム工学科 新田直也. 演習問題 1 の解答例  入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票.
エンティティ・リレーションシップ・モデル
4 相互作用図 後半 FM13001 青野大樹.
相互作用図 FM11010 田中健太.
ソフトウェア工学特論III 第10回 その他の図 情報通信工学専攻 GM11013 堀江 真史
アルゴリズムとプログラミング (Algorithms and Programming)
東京工科大学 コンピュータサイエンス 亀田弘之
Androidアプリを公開する方法.
オブジェクト指向プログラミング(4) 静的分析(2)
クラスその2∽(アドバンス)∽ 福岡工業大学  梶原 大慈       .
Chapter 4 相互作用図 FM12010 中山直飛.
Chapter5 ステートチャート図 FM 于 聡.
班紹介 描画班一同.
アルゴリズムとデータ構造1 2007年6月12日
最適化ソルバーのための Python言語入門
ユースケース図 FM12012 比嘉久登.
地理情報システム論 第3回 コンピュータシステムおける データ表現(1)
3-5 クラス図の関係その3 福本研究室 神田 祐輔.
オブジェクト指向プログラミング(2) OOPの三大要素 「クラス」「ポリモーフィズム」「継承」
CHAPTER1 UMLとオブジェクト指向の基本概念(2)
3-3 クラス図の関係その2.
クラス図(1) 後半 FM13010 村上 太一.
条件式 (Conditional Expressions)
UMLの概要と オブジェクト指向の 基本概念
JSFによるWebアプリケーション開発 第6回
ユースケース図2-4~ FM11012 中島拓也.
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
プログラミング演習3 第2回 GUIの復習.
~手続き指向からオブジェクト指向へ[Ⅱ]~
アルゴリズムとプログラミング (Algorithms and Programming)
Chapter7 その他の図 FM13010  須崎研 村上 太一.
47070 オブジェクト指向モデリング [6] 2001年11月13日.
その他の図 Chapter 7.
組込みシステムの外部環境分析のためのUMLプロファイル
暗黙的に型付けされる構造体の Java言語への導入
TCanvas BCB:TCanvasクラスでグラフィックを扱う。 TFormなどもプロパティとして持っている。
プログラミング演習3 第2回 GUIの復習.
UML関係のTIPS 2008年5月26日 2010年5月16日改訂 海谷 治彦.
C#言語ソースプログラムの原型 C言語 C#言語 Hello World! Hello Students! オマジナイ! 適当なクラス名
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
ステートチャート図 前半 FM13003 怡土 宗太.
第1章 実世界のモデル化と形式化 3.地物インスタンスの表現
物理的側面を表現する図 Chapter6 物理的側面を表現する図について徐研究室の大楠が発表します。 FM13005 大楠拓也 徐研究室.
XMLゼミ 3.5 DTD M2 正木 裕一.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
1-3 UMLの図(ダイアグラム) コンポーネント図 システムの物理的な構成を表現 ソフトウェアコンポーネントの依存性を表現
UMLの概要とオブジェクト指向の基本概念
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
サブゼミ第7回 実装編① オブジェクト型とキャスト.
物理的側面を表現する図 石原研 古賀浩之.
オブジェクト指向言語論 第五回 知能情報学部 新田直也.
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
PROGRAMMING IN HASKELL
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
第3章 関係データベースの基礎 3.1 関係とは 3.2 関係代数.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
Chapter 5-2 ステートチャート図 FM12011 バユウユウ 山内研
Presentation transcript:

Chapter3 クラス図(後半)             FM12014 劉鎧誠

クラス名(~アドバンス) パッケージ名 クラス名 クラスその2~(アドバンス)~ クラス名(~アドバンス)                       パッケージ名          クラス名 クラスがあるパッケージに属する場合には、クラス名を表示する際に、パッケージ名をクラス名の前に修飾することができる 会社 会社::従業員 従業員

属性(~アドバンス) 座標点:int[2…*] 例: クラスの属性の表記 ステレオタイプ 属性:クラスに属性は下記の形式で多重度およびプロパティ文字列を表記することができる 座標点:int[2…*] 例:              クラスの属性の表記 ステレオタイプ 可視性 名前 : 型表現 [多重度] = 初期値 {プロパティ文字列}    - 従業員ID   int [1] {unique} 座標点が2つ以上の値を持つこと        従業員 ー勤続年数:int[1]=1 ー従業員ID:int[1] {unique} 多重度 プロパティ文字列

操作(~アドバンス) 操作:クラスの操作は下記の形式で、引数の入出力種別、引数のデフォルト 値。ポロパティ文字列を表記できる 引数の入出力種別: プロパティ文字列属性 ステレオタイプ <<accessor>> 可視性 名前 (入出力種別 引数名 : 型 = デフォルト値) : 戻り値型{プロパティ文字列} + 商品名設定(  in 商品名 : String = デフォルト商品):  void in 入力 out 出力 inout 入出力 sequential guarded concurrent

クラス操作の表記 {concurrency=名前} sequential(逐次) 名前 guarded(ガードされた)     concurrent(並行な)                  商品 <<accessor>>+商品名取得():String{concurrency=sequential} <<accessor>>+商品名設定(in 商品名:String=デフォルト商品):void

タグ付値 UML2.xメタ属性(~アドバンス)   タグ付値をUMLのモデル要素に付けることにより、UMLのモデル要素に情報を付    加することができる   {タグ=値}                図形              {abstract,   作成者=田中太郎, 作成日=2007/5/5, ステータス=分析}

派生属性(関連)(~アドバンス) 命令 命令 命令 命令 派生属性は、他の属性などから計算できる属性のことを言い 従業員 入社年月日   派生属性は、他の属性などから計算できる属性のことを言い                                  派生属性         命令        命令        命令        命令           する        する         する        する                        /直接命令する                         派生関連     従業員 入社年月日 /勤続年数 社長 部長 課長 係長 平社員

クラススコープ、インスタンススコープ(~アドバンス) インスタンススコープ:属性および操作が、個々のオブジェクトにそれぞれ別々に当てはまる倍、その属性、操作をインスタンススコープと言い。 クラススコープ:あるクラスから生成されたオブジェクトで共通の属性の値を持っている属性や、クラスに対して呼び出す操作はクラススコープと言い。

オブジェクト 運転手=田中さん クラス インスタンススコープ 運転手=鈴木さん 運転手=伊藤さん 定員=4 クラススコープ

表記: 操作の呼び出し例: タクシー 定員=4 運転手名 生成() 配車() クラススコープ オブジェクト インスタンススコープ 表記:     操作の呼び出し例: タクシー 定員=4 運転手名 生成() 配車() クラススコープの操作はクラスに対して呼びます 田中運転手のタクシー =   鈴木運転手のタクシー =  クラス タクシー.生成() クラススコープ クラススコープ インスタンススコープの操作はオブジェクトに対して呼び出す 田中運転手のタクシー = タクシー,生成() インスタンススコープ 田中運転手のタクシー, 配車() オブジェクト インスタンススコープ

顧客リスト<顧客タイプ->法人> パラメタライズドクラス 仮パラメタ名 : 型 = デフォルト値 顧客リスト<顧客タイプ->法人> 暗黙的束縛 (Implicit binding)

制約(~アドバンス) 制約を用いてモデルに条件や制限を付けることができる 制約を設定することにより、モデルの意味をより正確に伝えることが可能 制約は{}の中に記述する

クラス図の関係その3~(アドバンス)~ コンポジション集約(~アドバンス)

コンポジション集約の他の表記方法  部分側のクラスを入れ子にする   入れ子のクラスは多重度を内部の右上に配置できる

コンポジション集約を属性で表現した例 設計段階で基本データ型を指定した例 ノートパソコン 補助記憶装置[0..*] :ハードディスク 表示装置[1] :液晶ディスプレイ 入力装置[1] : キーボード

関連、集約、コンポジション集約の違い 関連 関係はあるが全体を部分ではない 集約 全体と部分の関係 全体を部分のライフサイクル 弱い所有関係 複数のオブジェクトによる部分の共有が可能 コンポジション集約 全体と部分のライフサイクルが同一 強い所有関係 複数のオブジェクトによる部分の共有は不可

タグ付値 UML2.x メタ属性その2(~アドバンス)

制約その2(~アドバンス) 関連に対しても制約を付けることが可能

汎化(~アドバンス) 汎化(~アドバンス) 区別子: 1、汎化関係は、それぞれ区別子を呼ばれるテキストラベルを持つことができる  区別子:   1、汎化関係は、それぞれ区別子を呼ばれるテキストラベルを持つことができる   2、サブクラスがいくつかのグループに別々の基準で分類できる場合、区別子により識別が可能になり

区別子を使用した人間の汎化階層

制約:汎化関係には次に制約が定義されている  overlapping あるスーパークラスのインスタンスは、二つ以上のサブクラスのインスタンスを持つ可能性がある。 disjoint あるスーパークラスのインスタンスは、二つ以上のサブグラスのインスタンスを持つことができない。 complete すべてのサブクラスが定義されており、新たなサブグラスを追加することはできない。   incomplete サブクラスが今後も追加される可能性があることを示す。

汎化における制約{overlapping} 例1

汎化における制約{disjoint, incomplete} 例2

再帰の関連(~アドバンス) 再帰の関連:  クラスは他のクラスに関連があるときと同様に、自分自身に関連を引くことができる。自分自身を引く関連を再帰の関連と言い。

例:(社員関係)

同一のクラス間の関係は再帰の関連になる

限定子(~アドバンス)  一つ以上の属性値を使用して、あるオブジェクトから他のオブジェクトへの関係を限定するもの。  限定子を使用することにより多重度を限定することが可能。

限定子は、インスタンスを限定するクラスを関連との間に小さな長方形を入れる 限定子属性が複数ある場合は、1行に複数の属性を示しても構わない 限定子の例:

学校を学級の関係                 限定子により学級の多重度を限定

関連クラス(~アドバンス) 関連クラスの例: 関連クラスは: 1、通常のクラスと同様に、属性、操作などを持つ関連    1、通常のクラスと同様に、属性、操作などを持つ関連     2、クラスを関連の中央に点線で接続する     3、クラスはクラスと関連合わせて単一のモデルですので、単一の名前しか持たない   関連クラスの例:         

例:設計者とビルの関係                 関連クラス「担当記録」                           関連クラスと他のクラスとの関係

N項関連(~アドバンス)  三つ以上のクラス間に使用する   大きな菱形で表現する a.N項関連                   b.N項関連の関連クラス

インタフェース、実現化関係(~アドバンス) 外部の他の要素から見える操作の仕様で、クラス、コンポーネント、サブシステムなどに付ける   操作だけを持っており、属性、関連は持たない   クラスと同様に長方形を記述して、<<interface>>と言うステレオタイプを付記する   実際のインタフェースを実現する要素をインタフェースは実現化の関係で結び   実現化関係は白抜きの三角の付いた点線で示す インタフェース

例:インタフェース「ウィンドウIF」 インタフェースの別の表記

練習問題

問題5 「ある会社では、10の部があり、各々の部には複数の課があります。社員はどこかの部に所属します。課長は3つまでの課を管理しますが、所属する部は1つに限定されます。」この文に最も適わしたモデルを選択してください。