SlideShare a Scribd company logo
1 of 28
Download to read offline
モデリングと
クラス図
りんごって?
13年5月19日日曜日
モデリング
1. ある事象を抽象化し、
2. わかりやすく表現すること
•図
•式、公式
13年5月19日日曜日
抽象化
• 抽象化(ちゅうしょうか)とは、思考における手法の
ひとつで、対象から注目すべき要素を重点的に抜き出
して他は無視する方法である。抽象化において無視す
ることについては捨象するという。(wikipedia)
13年5月19日日曜日
抽象化手順
•種類の違う「りんご」をリストアップ
•共通点を抽出
13年5月19日日曜日
クラス図
•クラス
•オブジェクト(物、事)の属性と振
る舞い(操作)に着目して抽象化
•クラス図
•クラスとクラスの静的な関係を表現
13年5月19日日曜日
クラス図の例
13年5月19日日曜日
書き方
クラス名
属性
操作/振る舞い
13年5月19日日曜日
クラス図
Student
String name
public class Student {
String name;
}
生徒
名前
13年5月19日日曜日
クラス図
Student
sayName
public class Student {
public void sayName(){
String name = 自分の名前 ;
System.out.printf( My name is %sn ,name);
}
}
生徒
自己紹介する
13年5月19日日曜日
モデリング例1
13年5月19日日曜日
リンゴとは?
13年5月19日日曜日
説明1
•「リンゴっていうのは日本だと青森
だとかでたくさんつくられていて
ね、白雪姫の童話に重要なアイテム
としてでてきたりしてね、知恵の木
の実とかともいわれているようなや
つだよ」
• http://d.hatena.ne.jp/coconutsfine/20090505/1241475193
13年5月19日日曜日
説明2
•リンゴ
•丸い・赤い・果物
•芯がある
•芯の周りの実は食べられる
抽象化された説明
13年5月19日日曜日
りんごをクラス図で表現
りんごの実
•丸い
•芯がある
•食べられる
•果物
13年5月19日日曜日
りんごをクラス図で表現
りんご
丸い
芯がある
食べラル
果物
13年5月19日日曜日
モデリング例2
13年5月19日日曜日
りんごの値付け
プログラム
• りんごの価格を自動的に計算するプログラム
• 店長が価格の責任者
• 初期値は「重量」「糖度」「色」「栽培方
法」で決める
• 糖度が高くなるほど価格UP
• 色が赤くなるほど価格UP
• 有機栽培なら価格が通常の1.5倍
13年5月19日日曜日
要件定義
糖度
基準を12とし、2ポイントUPする毎に
価格を1.2倍
変更可
重量
基準を100gとし、10g増えるごとんい
価格を1.1倍
変更
不可
有機
栽培
有機栽培なら価格を1.5倍
変更
不可
13年5月19日日曜日
リンゴ値付けプログラム
13年5月19日日曜日
名詞をクラスに変換
13年5月19日日曜日
りんごの値付け
プログラム
• りんごの価格を自動的に計算するプログラム
• 店長が価格の責任者
• 初期値は「重量」「糖度」「色」「栽培方
法」で決める
• 糖度が高くなるほど価格UP
• 色が赤くなるほど価格UP
• 有機栽培なら価格が通常の1.5倍
13年5月19日日曜日
13年5月19日日曜日
関係を整理
13年5月19日日曜日
13年5月19日日曜日
さらに整理
•価格と賞味期限は本来の「りんご」の
属性??
•商品というクラスを採用する
13年5月19日日曜日
13年5月19日日曜日
さらに整理
•ユースケースを操作に反映
•責任者クラスは不要なので削除
13年5月19日日曜日
最終案
13年5月19日日曜日

More Related Content

More from 金沢工業高等専門学校

夏期休業中の評価課題(Javaプログラミング演習)
夏期休業中の評価課題(Javaプログラミング演習)夏期休業中の評価課題(Javaプログラミング演習)
夏期休業中の評価課題(Javaプログラミング演習)金沢工業高等専門学校
 
金沢高専・グローバル情報学科 科長講話 (新入生研修)
金沢高専・グローバル情報学科 科長講話 (新入生研修)金沢高専・グローバル情報学科 科長講話 (新入生研修)
金沢高専・グローバル情報学科 科長講話 (新入生研修)金沢工業高等専門学校
 
Scratchをつかってプログラムの流れを説明(抜粋)
Scratchをつかってプログラムの流れを説明(抜粋)Scratchをつかってプログラムの流れを説明(抜粋)
Scratchをつかってプログラムの流れを説明(抜粋)金沢工業高等専門学校
 
ファイルアクセス方式 - オペレーティングシステム
ファイルアクセス方式 - オペレーティングシステムファイルアクセス方式 - オペレーティングシステム
ファイルアクセス方式 - オペレーティングシステム金沢工業高等専門学校
 
OS: 論理ファイル管理 - ディレクトリについて
OS: 論理ファイル管理 - ディレクトリについてOS: 論理ファイル管理 - ディレクトリについて
OS: 論理ファイル管理 - ディレクトリについて金沢工業高等専門学校
 
オブジェクト指向プログラミングの考え方
オブジェクト指向プログラミングの考え方オブジェクト指向プログラミングの考え方
オブジェクト指向プログラミングの考え方金沢工業高等専門学校
 

More from 金沢工業高等専門学校 (20)

夏期休業中の評価課題(Javaプログラミング演習)
夏期休業中の評価課題(Javaプログラミング演習)夏期休業中の評価課題(Javaプログラミング演習)
夏期休業中の評価課題(Javaプログラミング演習)
 
金沢高専・グローバル情報学科 科長講話 (新入生研修)
金沢高専・グローバル情報学科 科長講話 (新入生研修)金沢高専・グローバル情報学科 科長講話 (新入生研修)
金沢高専・グローバル情報学科 科長講話 (新入生研修)
 
SQL入門 - GROUP BYとHAVING -
SQL入門 - GROUP BYとHAVING -SQL入門 - GROUP BYとHAVING -
SQL入門 - GROUP BYとHAVING -
 
インタフェース - Java入門
インタフェース - Java入門 インタフェース - Java入門
インタフェース - Java入門
 
Scratchをつかってプログラムの流れを説明(抜粋)
Scratchをつかってプログラムの流れを説明(抜粋)Scratchをつかってプログラムの流れを説明(抜粋)
Scratchをつかってプログラムの流れを説明(抜粋)
 
参照型 - Java入門
参照型 - Java入門参照型 - Java入門
参照型 - Java入門
 
金沢スマホアプリコンテスト
金沢スマホアプリコンテスト金沢スマホアプリコンテスト
金沢スマホアプリコンテスト
 
型変換と優先順位 - Java入門
型変換と優先順位 - Java入門型変換と優先順位 - Java入門
型変換と優先順位 - Java入門
 
ファイルアクセス方式 - オペレーティングシステム
ファイルアクセス方式 - オペレーティングシステムファイルアクセス方式 - オペレーティングシステム
ファイルアクセス方式 - オペレーティングシステム
 
ファイルとレコード
ファイルとレコードファイルとレコード
ファイルとレコード
 
OS: 論理ファイル管理 - ディレクトリについて
OS: 論理ファイル管理 - ディレクトリについてOS: 論理ファイル管理 - ディレクトリについて
OS: 論理ファイル管理 - ディレクトリについて
 
オブジェクト指向プログラミングの考え方
オブジェクト指向プログラミングの考え方オブジェクト指向プログラミングの考え方
オブジェクト指向プログラミングの考え方
 
コンピュータシステムの構成とか
コンピュータシステムの構成とかコンピュータシステムの構成とか
コンピュータシステムの構成とか
 
データベース - SELECT文入門2
データベース - SELECT文入門2データベース - SELECT文入門2
データベース - SELECT文入門2
 
データーベース - SELECT文入門
 データーベース - SELECT文入門 データーベース - SELECT文入門
データーベース - SELECT文入門
 
変数の型 - Java 演習
変数の型 - Java 演習 変数の型 - Java 演習
変数の型 - Java 演習
 
授業資料 - ファイルシステム
授業資料 - ファイルシステム授業資料 - ファイルシステム
授業資料 - ファイルシステム
 
情報処理 - CUI 入力のポイント
情報処理 - CUI 入力のポイント情報処理 - CUI 入力のポイント
情報処理 - CUI 入力のポイント
 
看護分野におけるネット活用
看護分野におけるネット活用看護分野におけるネット活用
看護分野におけるネット活用
 
今日からはじめるセキュリティセミナ
今日からはじめるセキュリティセミナ今日からはじめるセキュリティセミナ
今日からはじめるセキュリティセミナ
 

モデリングとクラス図