2.1 オブジェクト図とクラス図の違い

2.1 オブジェクト図とクラス図の違い
2.1
オブジェクト図とクラス図の違い
オブジェクト図とクラス図は構造図の一種です。どちらもシステムの内部構造を表します。ふ
たつの図の違いは、システムの内部構造を具体的なオブジェクトで示すか、抽象的なクラスで示
すかにあります。
≪オブジェクト図≫
≪クラス図≫
具体的
抽象的
CarList
allCars:CarList
:Truck
1
:RV
aRental:Rental
[ renting ]
*
Rental
aSedan:Sedan
[ renting ]
*
1
Car
*
1
:Customer
Sedan
RV
Truck
Customer
一般にシステム開発のアウトプットとして作成するのは、クラス図です。オブジェクト図はク
ラス図を導く過程や補助として使います。
19
第 2 章 オブジェクト図とクラス図
2.2
オブジェクトとクラス
オブジェクトは具体的な「もの」、クラスはオブジェクトを抽象化した「もの」を表します。
2.2.1
オブジェクト
オブジェクトとは「もの」のことです。「もの」には人や商品、車のように目で見たり、手で
触ったりできる具体的な「もの」、注文や契約、預金口座のように概念として認識できる「もの」
があります。
商品
預金口座
人
車
契約
具体的な「もの」
概念的な「もの」
20
注文
2.2 オブジェクトとクラス
オブジェクトはデータと操作を持っています。
データはオブジェクトの特性を表します。例えば、車をオブジェクトとして捕らえると、車オ
ブジェクトは車名や色、動力などそのオブジェクトを詳しく説明するデータを持っています。
一方、操作はオブジェクトの能力を表します。車オブジェクトは走る、止まる、燃料を補充す
るなど色々な能力を持っています。
車名は○○○○
色はシルバー
動力はエンジン+モータ
総排気量は 3.310L
CO2 排出量は 130.4g/Km
・・・
走る
止まる
燃料を補充する
ワイパーを動かす
ライトをつける
・・・
21
第 2 章 オブジェクト図とクラス図
ところで、オブジェクトを識別する際に注意することは何でしょうか?
オブジェクトを識別
する時は、モデリングによって「何を表現したいか」「何を理解したいか」を考え、その目的に
合ったオブジェクトを捉えるようにします。
例えば、コーヒーショップにはたくさんのオブジェクトがありますが、注文業務の仕組みを捉
える時に必要なオブジェクトは顧客やレジの店員、メニュー、注文などのオブジェクトです。一
方、コーヒーショップのレイアウトを考える時はテーブルや椅子、スタンドなどが必要なオブジ
ェクトです。
注文業務に必要なオブジェクト
照明
クッキー
お金
Menu
スタンド
椅子
テーブル
コーヒー
ケーキ
ご注文
----------コーヒー 1
メニュー
レイアウトの把握に
必要なオブジェクト
顧客のペット
レジの店員
顧客
コーヒーショップのオブジェクト
22
サーバー
2.2 オブジェクトとクラス
また、現実世界のオブジェクトは複雑です。例えば、人は現実世界において様々な側面(役割)
を持っています。
英会話学校では、
生徒
コーヒーショップでは、
注文を受け付ける人
スポーツクラブでは、
会員
現実世界の人
必要なオブジェクトを識別する時に目的を考えるように、1 つのオブジェクトを考える時もそ
の目的に照らして考えます。例えば、コーヒーショップの注文業務を考える時は、現実世界の人
から「注文を受け付ける」役割だけを抽出します。
コーヒーショップでは、
注文を受け付ける人
英会話学校では、
生徒
英会話学校の
受講者管理の世界
生徒
オブジェクト
コーヒーショップの
注文業務の世界
スポーツクラブでは、
会員
注文受付
オブジェクト
現実世界の人
スポーツクラブの
会員管理の世界
会員
オブジェクト
23
第 2 章 オブジェクト図とクラス図
現実世界から必要な部分だけを抜き出すことを「抽象化」といいます。必要なオブジェクト、
およびオブジェクトが持つデータや操作は抽象化の仕方によって変化します。
秋田さんのデータ
秋田さんの操作
名前:秋田 早苗
住所:横浜市港南区 XX
電話番号:045-XXX-XXXX
性別:女
勤務先:XYZ Cafe
英会話学校の学生番号:012345
スポーツクラブの会員番号:56789
注文を受ける
メニューを説明する
英語を学習する
受講料を払う
運動する
会費を払う
現実世界の人
抽象化
生徒オブジェクト
会員オブジェクト
名前:秋田 早苗
住所:横浜市港南区 XX
電話番号:045-XXX-XXXX
性別:女
学生番号:012345
名前:秋田 早苗
住所:横浜市港南区 XX
電話番号:045-XXX-XXXX
性別:女
会員番号:56789
英語を学習する
受講料を払う
運動する
会費を払う
注文受付オブジェクト
注文を受ける
メニューを説明する
24
2.2 オブジェクトとクラス
○ Exercise 1 ○
以下は××デパートに関係するオブジェクトです。この中から人事管理に必要なオブジェクト
を選択しましょう。また、商品管理に必要なオブジェクトを選択しましょう。
東京本社
日本橋店
テナント
仕入先の倉庫
社長
販売員
衣類
仕入先
営業マン
食料品
買い物客
契約農家
★ Your Answer ★
目的
人事管理
商品管理
必要なオブジェクト
□ テナント □ 日本橋店
□ 東京本社
□ 衣類
□ 販売員
□ 社長 □ 仕入先の倉庫 □ 仕入先 □ 食料品 □ 買い物客
□ テナント □ 日本橋店
□ 東京本社
□ 衣類
□ 販売員
□ 社長 □ 仕入先の倉庫 □ 仕入先 □ 食料品 □ 買い物客
25
□ 営業マン
□ 契約農家
□ 営業マン
□ 契約農家
第 2 章 オブジェクト図とクラス図
○ Exercise 2 ○
山本さんは××デパートの社員です。××デパートが人事管理を行うために必要な山本さんの
データを選びましょう。
また、山本さんは○○銀行の顧客です。○○銀行が顧客管理を行うために必要な山本さんのデ
ータを選びましょう。
私は山本
和夫です。
世田谷区に住んでいます。家は持ち家です。広さは80㎡、間取りは4LDKです。
1年前に○○銀行の住宅ローンを利用して購入しました。
住宅ローンの期間は20年、金利は年3.95%の固定金利です。
○○銀行の自由が丘支店に総合口座を持っています。口座番号は「0123456」
です。住宅ローンの返済はこの口座を使っています。
勤務先は××デパートで、入社15年目、仕事は営業、役職はマネージャです。
血液型はB型、趣味はゴルフです。
家族は妻と子供2人です。
★ Your Answer ★
目的
必要なデータ
××デパートの人事管理
○○銀行の顧客管理
26
2.2 オブジェクトとクラス
2.2.2
クラス
クラスは同じ種類のオブジェクトが持つ性質(データや操作)を定義したひな型です。
例えば、下の図において、社員の石川さんオブジェクトと社員の山本さんオブジェクトは同じ
種類のオブジェクトです。これらから、一般に社員は「名前」、「生年月日」、「住所」、「職
種」などの属性を持つこと、社員は「職種を設定する」、「給与を設定する」という操作を持つ
ことがわかります。この社員に共通する性質を定義したものが「社員」クラスです。
社員の山本さんオブジェクト
社員の石川さんオブジェクト
名前:山本 和夫
生年月日:1965/11/10
住所:世田谷区XX
職種:営業
給与:500,000
名前:石川 悟
生年月日:1978/5/27
住所:港区XX
職種:開発
給与:270,000
職種を設定する
給与を設定する
職種を設定する
給与を設定する
社員
名前
生年月日
住所
職種
給与
社員
職種を設定する
給与を設定する
属性とはオブジェクトが持つデータの名前、タイトルです。この呼び方に合わせると、各オブ
ジェクトが持つ具体的なデータは属性値といいます。
クラスは同じ種類のオブジェクトに対して 1 つだけ存在します。
システムにはたくさんのオブジェクトが存在しますが、クラスの定義を見れば、オブジェクト
の特徴を理解できます。
27
第 2 章 オブジェクト図とクラス図
○ Exercise 3 ○
以下は××デパートに関係するオブジェクトです。これらを種類別にグループ化し、各グルー
プに対してクラスを定義しましょう。
梅田店オブジェクト
日本橋店オブジェクト
店舗番号:007
店舗名:梅田店
住所:大阪府北区梅田XXX
電話番号:06-69XX-XXXX
店舗番号:001
店舗名:日本橋店
住所:東京都中央区日本橋XX
電話番号:03-55XX-XXXX
テナントを追加する
テナントを追加する
時計オブジェクト
商品コード:RLX1500-D
商品名:腕時計
メーカ名:XYZ電子工業
価格:38,000
取扱:OK
シャツオブジェクト
商品コード:WM0210-A-1
商品名:カッターシャツ
メーカ名:ABC紡績
価格:7,900
取扱:OK
価格を取得する
取り扱いを中止する
価格を取得する
取り扱いを中止する
パン屋オブジェクト
花屋オブジェクト
テナント名:あすなろパン
責任者:菊池 明日香
電話番号:03-52XX-XXXX
テナント料:300,000
契約日:200x/10/1
テナント名:はなはっぴぃ
責任者:島崎 恵
電話番号:03-34XX-XXXX
テナント料:250,000
契約日:200x/4/1
テナント料を更新する
テナント料を更新する
★ Your Answer ★
同じ種類のオブジェクト
28
クラス
2.2 オブジェクトとクラス
○ Exercise 4 ○
以下のオブジェクトを種類別にグループ化し、各グループに対してクラスを定義しましょう。
本田さん
トラ
孝太郎
村山さん
キャシー
落合さん
ブラッド
★ Your Answer ★
同じ種類のオブジェクト
29
クラス