クラス図(1) FM12013 山口 亨. クラスとは 現実に存在する “ 物体 ” (オブジェクト)の 構造や振る舞いなどに着目して注目し抽 象化したもの クラス図を含む UML のほとんどの図で使用 されている.

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(
独習JAVA Chapter 6 6.6 クラスの修飾子 6.7 変数の修飾子 結城 隆. 6.6 クラスの修飾 abstract インスタンス化できないクラス。1つまたは複数のサブクラスで 実装してはじめてインスタンス化できる。 final 継承されたくないことを明示する。これ以上機能拡張 / 変更でき.
C++ 基礎. 目次 C++ とは? C++ におけるオブジェクト指向 課題 C++ とは? Cには足りなかったものが付与されて出来た物 具体的には、 情報の隠蔽(カプセル化) 共通の名前付け(関数のオーバーロード) 再利用の仕組み クラスの導入 など オブジェクト指向 C++ では大規模なプログラミングの.
AIプログラミング Java とオブジェクト指向プログラミングの基 礎 認知システム論 情報工学コース コンピュータサイエンスコース 生体情報コース.
シーケンス図の生成のための実行履歴圧縮手法
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
4 相互作用図 後半 FM13001 青野大樹.
相互作用図 FM11010 田中健太.
Chapter3 クラス図(後半)             FM12014 劉鎧誠.
ソフトウェア工学特論III 第10回 その他の図 情報通信工学専攻 GM11013 堀江 真史
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向プログラミング(4) 静的分析(2)
Applet 岡部 祐典 鈴木 敬幸.
クラスその2∽(アドバンス)∽ 福岡工業大学  梶原 大慈       .
Chapter 4 相互作用図 FM12010 中山直飛.
アルゴリズムとデータ構造1 2007年6月12日
情報伝播によるオブジェクト指向プログラム理解支援の提案
ユースケース図 FM12012 比嘉久登.
3-5 クラス図の関係その3 福本研究室 神田 祐輔.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
オブジェクト指向プログラミング(2) OOPの三大要素 「クラス」「ポリモーフィズム」「継承」
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
CHAPTER1 UMLとオブジェクト指向の基本概念(2)
3-3 クラス図の関係その2.
クラス図(1) 後半 FM13010 村上 太一.
アルゴリズムとプログラミング (Algorithms and Programming)
UMLの概要と オブジェクト指向の 基本概念
第9章 オブジェクトの構築 日下部研究室 修士2年 秋本 浩平.
社会人学習講座 「Javaプログラミング概論」
ユースケース図2-4~ FM11012 中島拓也.
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
オブジェクト指向モデリング [3] 2003年10月14日.
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
~手続き指向からオブジェクト指向へ[Ⅱ]~
細かい粒度でコードの再利用を可能とするメソッド内メソッドのJava言語への導入
ソフトウェア工学 知能情報学部 新田直也.
プログラミング2 関数
JAVA入門後期⑩ 情報処理試験例題解説.
アルゴリズムとプログラミング (Algorithms and Programming)
細かい粒度で コードの再利用を可能とする メソッド内メソッドと その効率の良い実装方法の提案
Chapter7 その他の図 FM13010  須崎研 村上 太一.
その他の図 Chapter 7.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
第7回独習Javaゼミ セクション 1~4 発表者 直江 宗紀.
暗黙的に型付けされる構造体の Java言語への導入
ローカル変数とグローバル変数 ローカル変数  定義された関数内だけで使用できる変数 グローバル変数 プログラム全体で使用できる変数.
第11週:super/subクラス、継承性、メソッド再定義
UML関係のTIPS 2008年5月26日 2010年5月16日改訂 海谷 治彦.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
ソースコード縮退による ソースコード理解 神谷年洋 科学技術振興事業団 さきがけ研究21 オブジェクト指向シンポジウム2003.
UMLモデルを対象とした リファクタリング候補検出の試み
アルゴリズムとデータ構造1 2005年7月5日
第1章 実世界のモデル化と形式化 3.地物インスタンスの表現
物理的側面を表現する図 Chapter6 物理的側面を表現する図について徐研究室の大楠が発表します。 FM13005 大楠拓也 徐研究室.
XMLゼミ 3.5 DTD M2 正木 裕一.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト・プログラミング 第8回.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
C#プログラミング実習 第3回.
サブゼミ第7回 実装編① オブジェクト型とキャスト.
アルゴリズムとデータ構造1 2006年6月23日
物理的側面を表現する図 石原研 古賀浩之.
第5回 プログラミングⅡ 第5回
JAVA入門⑥ クラスとインスタンス.
ソフトウェア工学 知能情報学部 新田直也.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
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 自分と同パッケージ内のクラスからのみ

可視性の表示 Cla ss3 Cla ss1 +操作1 () #操作2 () ー操作3 () ~操作4 () Cla ss2 Cla ss4

クラス図の関係その1 より良い構造化を行うには、他のクラス との関係性を表現する必要がある UML では、関連(集約)、依存(実現)、 汎化、フローを総称して関係と呼ぶ

関連 クラス間に構造的な関係がある場合に使 用 受験生大学 志望校である

役割(ロール)名 あるクラスが他のクラスから見た時に、 どの様な役割を持つか示すのに使用

役割(ロール)名 受験生大学 受験者 志望校 教授 勤務先

多重度 他のクラスから接続される可能性のある 関係の数を記述 以下のように表記 クラス A 10..*

多重度 表記接続される可能性のある数 か のみ 0..* または * 0 以上 1..* 1 以上 ~ 10 多重度にはこのような表記が可能

多重度(例) 受験生A 受験生B 受験生C 甲大学 乙大学 丙大学

多重度(例) 受験生大学 志望校である 0.. * 1.. *

関連の方向 関連の棒線に矢印をつける事で、参照の 方向を指定する事が出来る UML1.X と UML2.X では、指定方法が違う

関連の方向 Object1 : Class1 Object2 : Class2 Message1 () Message2 () Object3 : Class3 Object4 : Class4 Message3 () 双方向の呼び出し片方向の呼び出し

関連の方向 Cla ss1 Cla ss2 双方向の関連( UML 1.X ) Cla ss1 Cla ss2 双方向の関連( UML 2.X ) Cla ss1 Cla ss2 片方向の関連( UML 1.X ) Cla ss1 Cla ss2 片方向の関連( UML 2.X )

UML1.X の方向表記 BA AからBへの方向性の指定がある BからAへの方向性の指定がある BA AからBへの方向性の指定がある BからAへの方向性はなし

UML2.X の方向表記 BA AからBへの方向性は未定義 BからAへの方向性は未定義 BA AからBへの方向性の指定がある BからAへの方向性は未定義 BA AからBへの方向性の指定がある BからAへの方向性の指定がある BA AからBへの方向性の指定がある BからAへの方向性はなし BA Aから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.. *

質問