บทที่ 1 Object Orientation

Report
บทที่ 1 Object Orientation
อ.วิวฒ
ั น์ ชินนาทศิริกุล
Object Orientation คืออะไร

เกิดจากคา 2 คา คือ
1. Object
2. Orientation


Object
แปลว่า วัตถุ ที่จบั ต้องได้และไม่สามารถจับต้องได้ (รูปธรรมกับ
นามธรรม) เช่น คน สุนัข รถยนต์ รายวิชา ภาควิชา เกรด
Orientation มาจากคาว่า Orient แปลว่านาทางหรือนาไป
Object Orientation คืออะไร (ต่อ)


Object Orientation
หมายถึง การใช้ Object เป็ นหลักในการพิจารณา
ความเป็ นจริงต่างๆที่เกิดขึ้ น
สามารถนาหลักการของ Object Orientation มาใช้ในการวิเคราะห์และ
ออกแบบระบบคอมพิวเตอร์ได้ ทาให้เกิดศาสตร์ใหม่ที่เรียกว่า Object
Oriented Analysis and Design หรือเรียกย่อๆว่า OOAD
Object, Relation และ Interaction


ในชีวิตประจาวัน จะพบวัตถุ(Object)ต่างๆ อยูร่ อบๆตัวเรา เช่น คน
รถยนต์ คอมพิวเตอร์ โต๊ะเรียน เก้าอี้ ซึ่งเป็ นวัตถุที่สามารถจับต้องได้ หรือ
รายวิชาเรียน เกรด ซึ่งเป็ นวัตถุที่ไม่สามารถจับต้องได้
Object ต่างๆ จะประกอบด้วยคุณลักษณะ หรือคุณสมบัติ (properties)
และพฤติกรรม (behavior) หรือการกระทา หรือกิจกรรม ที่วตั ถุน้ัน
สามารถกระทาได้ เช่น คน มีคุณลักษณะดังนี้ มีผม มีแขน มีขา มีหู ตา
จมูก ปาก คน มีพฤติกรรมดังนี้ คนพูดได้ กินได้ วิ่งได้ นอนได้
Object, Relation และ Interaction (ต่อ)

กิจกรรมต่างๆที่เกิดขึ้ นรอบๆตัวเรา ล้วนแต่เกิดจากการมีความสัมพันธ์
(Relationship) และการมีปฏิสม
ั พันธ์ (Interaction) ระหว่าง Object 2
ตัวขึ้ นไป เช่น
คน รับประทาน อาหาร จากประโยคดังกล่าวนี้
Object ได้แก่ คน , อาหาร
Interaction ได้แก่ รับประทาน
Relation ได้แก่ เป็ นเจ้าของ (คน เป็ นเจ้าของ อาหารที่รบ
ั ประทาน)
Object, Relation และ Interaction (ต่อ)


Relationship
คือ ความเกี่ยวข้อง หรือความสัมพันธ์ระหว่าง object
ตัวขึ้ นไป เช่น การเป็ นเข้ามี การมี การสังกัด
Interaction คือ ปฏิสมั พันธ์ หรือการกระทาใดๆที่เกิดขึ้ น ระหว่าง
object 2 ตัวขึ้ นไป เช่น การกิน การเล่น การสร้าง
2
Domain


Domain
เป็ นกรอบ หรือขอบเขต ของสิ่งที่เราให้ความสนใจ หรือ
พิจารณา
ใน Domain หนึ่ งๆ สามารถมี object ได้ต้งั แต่ 2 ตัวขึ้ นไป object ตัว
เดียวสามารถอยูใ่ นหลายๆ Domain ได้ ซึ่งขึ้ นอยูก่ บั ว่าเราจะกาหนด
Domain ที่สนใจอย่างไร
Object และ Class

Concept
Object ที่อยูใ่ นโลกของความเป็ นจริง (Real World Object) เราไม่

สามารถนา มาใส่ในคอมพิวเตอร์ได้ แต่สิ่งที่สามารถทาได้คอื การใส่
แนวคิด (Concept) ให้กบั Object เพื่อนาไปใส่ไว้ในคอมพิวเตอร์
Concept หมายถึง ความคิดรวบยอดที่มีให้กบ
ั Object นั้นๆ ภายใต้
กรอบที่กาหนด (Domain) เช่น
Concept ของรถยนต์ คือ รถยนต์ทุกคัน มีตวั ถัง มีลอ้ มีเครื่องยนต์
Concept ของคน คือ มี 2 แขน 2 ขา 1 ศีรษะ
Class


ผลจาก การให้ Concept กับ Object ทาให้เกิดการจัดกลุ่มของ Object
ขึ้ น กลุ่มของ Object ที่ได้จากกระบวนการนี้ เรียกว่า Abstract
Objects หรือเรียกว่า Class
ตัวอย่าง เช่น รถยนต์ยหี่ อ้ TOYOTA , HONDA ต่างก็มี 4 ล้อ มี
เครื่องยนต์ และใช้น้ ามันเชื้ อเพลิง เหมือนกัน สามารถจัดให้ รถ ทั้งสอง
คันนี้ อยูใ่ นคลาส รถยนต์ ดังนั้น รถยนต์ยหี่ อ้ MAZDA ก็มี 4 ล้อ มี
เครื่องยนต์ ใช้น้ ามันเชื้ อเพลิง ก็สามารถจัดอยูใ่ นคลาส รถยนต์ได้ เพราะ
มี Concept แบบเดียวกัน แต่รถจักรยานยนต์ ไม่สามารถจัดอยูใ่ นคลาส
รถยนต์ ได้
Class (ต่อ)


Class ถือเป็ นนามธรรม (Abstract) นัน่ แสดงว่า คลาสไม่มีตวั ตน
คลาสมีแต่แนวคิด ดังนั้นเราจึงไม่สามารถทาให้ class ดาเนิ นกิจกรรม
ใดๆได้
เช่น จากประโยค คน กิน อาหาร ในแง่ของ Object Orientation ถือว่าไม่ได้
เป็ นเหตุการณ์ที่เกิดขึ้ นจริง
เพราะ คน จะหมายถึง แนวความคิด อาหารก็เป็ นแนวความคิด แต่ถา้ กล่าวว่า
สมชาย กิน ข้าวมันไก่ จะหมายถึง นายสมชาย ซึ่งมีอยูจ่ ริงบนโลกนี้ ซึ่งสมชาย
เป็ น วัตถุ ของคลาส คน ข้าวมันไก่ เป็ นวัตถุของคลาส อาหาร
Class (ต่อ)


Class
ต่างๆทั้หมดใน Domain ที่เราสนใจ เป็ นสิ่งที่อยูใ่ นความคิดของ
เรา ไม่สามารถดาเนิ นกิจกรรมอะไรได้ ถ้าเราต้องการให้เกิดกิจกรรมขึ้ น
เราจะต้องสร้าง Object ของ Class นั้นๆแล้วจึงใช้ Object ทางานหรือ
ดาเนิ นกิจกรรม
เมื่อเปรียบเทียบกับการพัฒนาโปรแกรมแบบเดิม Class จะคล้ายๆกับ
ชนิ ดข้อมูล (Type) และ Object จะคล้ายๆกับ ตัวแปร
Abstraction และ Instantiation

Abstraction
Class
เป็ นกระบวนการให้ Concept กับ Object จนเกิดเป็ น

Instantiation
เป็ นกระบวนการของการทาให้เกิด Object จาก Class ที่
เราสร้างขึ้ น ตาราบางเล่มจะเรียก Object ว่า Instance เพราะว่า
Object เกิดจากการกระบวนการ Instantiation
Attributes และ Function
Attribute
เป็ นคุณสมบัติของ วัตถุ โดยที่คุณสมบัติดงั กล่าวนี้ ต้องเป็ น
คุณสมบัติที่เราสนใจ หรืออยูใ่ น Domain ที่เราสนใจ
 เช่น มีผลไม้ ประกอบด้วย มะม่วง มีรสเปรี้ ยว สีเขียว เงาะ มีรสหวาน สี
แดง ชมพู่ มีรถหวาน สีชมพู
Object ในตัวอย่างนี้ ได้แก่ มะม่วง เงาะ ชมพู่
Class ในตัวอย่างนี้ คือ ผลไม้
Attribute ในตัวอย่างนี้ ได้แก่ 1. รสชาด 2. สี

Function

Function
เป็ นความสามารถในการทากิจกรรมของ Object ที่มีไว้เพื่อให้
Object อื่นใน Domain เรียกใช้หรือกระตุน
้ ได้
เช่น นายสมชาย เปิ ดเครื่องคอมพิวเตอร์ หมายเลข 001
Object ได้แก่ นายสมชาย และ เครื่องคอมพิวเตอร์ หมายเลข 001
Class ได้แก่ คน และ คอมพิวเตอร์
Interaction ได้แก่ การเปิ ด
Function ได้แก่ ฟั งก์ชน
ั เปิ ดของคอมพิวเตอร์ 001
Function (ต่อ)

Object ในโลกของ Object Orientation เป็ น Objects ที่
ถูกกระทา หรือเป็ นอ็อบเจกต์ที่ให้อ็อบเจกต์อื่น มาเรียกใช้หรือกระตุน้
เพื่อให้เกิดการทางานเสมอ
สัญลักษณ์ที่ใช้อธิบาย Class
Class Name
Attribute 1
Attribute 2
Attribute n
Function 1
Function 2
Function n
Object-Oriented Software Engineering

การพัฒนาระบบคอมพิวเตอร์ กินความหมายตั้งแต่ การวิเคราะห์ การ
ออกแบบ การพัฒนาโปรแกรม และการนาไปใช้ เราเรียกการพัฒนา
ระบบคอมพิวเตอร์ดว้ ยหลักการ Object Orientation ว่า ObjectOriented Software Engineering

ใน OOSE จะใช้คาว่า Problem Domain หรือ Domain of Problem
แทนคาว่า Domain เพราะ OOSE มองว่าการพัฒนาโปรแกรมคือการ
แก้ปัญหา
Object-Oriented Software Engineering (ต่อ)

OOSE
ประกอบด้วย 3 ขั้นตอน
1. Object-Oriented Analysis (OOA)
เป็ นการวิเคราะห์เพื่อหาว่า
Problem Domain คืออะไร และทาความเข้าใจในรายละเอียดของ
ปั ญหานั้น เป็ นการหาคาตอบให้กบั คาถามที่วา่ what is the
problem to be solved?
2. Object-Oriented Design (OOD)
เป็ นขั้นตอนการออกแบบหรือ
จาลองวิธีแก้ปัญหาใน Problem Domain ซึ่งเป็ นการหาคาตอบให้กบั
คาถามที่วา่ How to solve the problem?
Object-Oriented Software Engineering (ต่ อ)
3. Object-Oriented Programming (OOP)
เป็ นขั้นตอนการสร้างหนทาง
แก้ปัญหาในรายละเอียดให้เกิดขึ้ นและใช้งานได้จริง เป็ นการตอบคาถาม
ที่วา่ How to implement the solution?
Abstraction

เป็ นกระบวนการในการให้ Concept กับ Object ต่างๆในโลกแห่งความ
เป็ นจริง (Real World) เพื่อสร้าง Class นั้น ซึ่งแบ่งออกได้เป็ น 4
กระบวนการคือ
1. Classification Abstraction
2. Aggregation Abstraction
3. Generalization Abstraction
4. Association Abstraction
Abstraction (ต่อ)

ในการใช้ Abstraction เพื่อวิเคราะห์ Domain Problem ไม่ได้มี
ข้อกาหนดตายตัว ว่าจะต้องใช้กระบวนการย่อยของ Abstraction ทุกตัว
หรือใช้ตามลาดับก่อนหลัง แต่ส่วนใหญ่ Abstraction แรกที่ถูกใช้คือ
Classification หลังจากนั้นจะขึ้ นอยูก
่ บั มุมมองของผูว้ ิเคราะห์วา่ จะใช้
Abstraction ตัวใดที่เหมาะสมมาวิเคราะห์ Domain Problem อีก
Classification Abstraction


เป็ นกระบวนการที่ใช้แยกประเภทของ Object ต่างๆที่อยูใ่ น Domain
และให้ Concept กับ Object ต่างๆ เพื่อให้ได้ Class พื้ นฐานที่ตอ้ งการ
ถือว่า Classification เป็ น Abstraction ที่สาคัญที่สุดเพราะ Class
เกิดขึ้ นด้วย Classification Abstraction
Classification Abstraction (ต่อ)


ตัวอย่าง ถ้าใน Problem Domain มีสิ่งที่ตอ้ งพิจารณา ได้แก่ 1.
รถยนต์นัง่ โตโยต้า 2.รถจักรยานยนต์ยามาฮ่า 3.รถโดยสาร 6 ล้ออีซซู ุ
4.จักรยาน BMX 5.เรือข้ามฟาก
พบว่า Concept ที่เหมือนกันของ 1.รถยนต์นัง่ โตโยต้า 2.
รถจักรยานยนต์ยามาฮ่า 3.รถโดยสาร 6 ล้ออีซซู ุ คือ มีเครื่องยนต์ มีลอ้
จานวนหนึ่ ง วิ่งไปบนถนนได้ ใช้น้ ามันหรือแก๊สเป็ นเชื้ อเพลิง ดังนั้น
สามารถให้ Concept ของ 1,2,3 ว่าเป็ นคลาสรถยนต์
รูปแสดง Classification ของรถยนต์
Aggregation Abstraction


เป็ นกระบวนการที่นาเอา Class พื้ นฐาน มารวมกันหรือประกอบกัน
(Aggregate) เพื่อเกิดเป็ น Class ที่ใหญ่ขึ้น หรือซับซ้อนขึ้ น โดยที่
Class พื้ นฐานสร้างมาจากขั้นตอน Classification
การทา Aggregation เป็ นการตอบคาถามว่า ใน Class กลุ่มหนึ่ งนั้น
สามารถนามารวมเพื่อให้เกิด Class ใหม่ ที่มี Concept ใหม่ได้หรือไม่
อย่างไร หรือในทางกลับกัน มี Class ใดบ้างที่สามารถแบ่งย่อย ออกเป็ น
ส่วนประกอบต่างๆซึ่งมี Concept ต่างไปจากเดิมได้

ตัวอย่าง รถยนต์แต่ละคันประกอบด้วย ตัวถัง ล้อ เครื่องยนต์ ในส่วนของ
ตังถังประกอบด้วย โครงรถ ประตู กระจก จาก Domain ดังกล่าว
สามารถแสดงความสัมพันธ์แบบ Aggregation ได้ดงั รูป
Generalization Abstraction

เป็ นกระบวนการในการนา Class ที่มีลกั ษณะเหมือนกันหรือคล้ายกัน
หรือมีลกั ษณะอย่างใดอย่างหนึ่ งร่วมกัน มาจัดหมวดหมู่ ไว้เป็ น Class
เดียวกัน กระบวนการย้อนกลับของ Generalization Abstraction
เรียกว่า Specialization ซึ่ง กระบวนการ Specialization จะตอบ
คาถามว่าใน Class หนึ่ งๆสามารถจาแนกเป็ น Class อะไรได้บา้ ง

ตัวอย่าง รถยนต์สามารถแบ่งออกเป็ น รถบรรทุก รถเก๋ง และรถสปอร์ตซึ่ง
วิ่งได้เร็วกว่ารถปกติ สามารถเขียนแสดงความสัมพันธ์เชิง
Generalization หรือ Specialization ได้ดงั นี้
Association Abstraction



เป็ นกระบวนการในการสร้างความสัมพันธ์ระหว่าง Class ต่างๆใน
Problem Domain ที่เราสนใจ
ความสัมพันธ์ดงั กล่าว เป็ นความสัมพันธ์ที่ไม่สามารถอธิบาย
Aggregation หรือ Generalization
Association เป็ นการอธิบายความสัมพันธ์ของ Class
Association Abstraction (ต่อ)

ตัวอย่าง รถยนต์ใช้น้ ามันเป็ นเชื้ อเพลิง รถยนต์วิ่งบนถนน คนเป็ นผูข้ บั ขี่
รถยนต์ สามารถแสดงความสัมพันธ์ของคลาสต่างๆใน Domain ได้ดงั นี้
คน
ขับ
รถยนต์
วิง่ บน
ใช้เป็ นเชื้ อเพลิง
น้ ามัน
ถนน
Association Abstraction (ต่อ)

จากตัวอย่าง Class ต่างๆใน Problem Domain ได้แก่ คน
รถยนต์ ถนน น้ ามัน มีความสัมพันธ์ต่อกัน ได้แก่
คนกับรถยนต์ (คนขับรถยนต์)
รถยนต์กบั ถนน (รถยนต์วิ่งบนถนน)
รถยนต์กบั น้ ามัน (รถยนต์ใช้น้ ามัน)
เอกสารอ้างอิง

กิตติ ภักดีวฒ
ั นะกุล และกิตติพงษ์ กลมกล่อม. (2544). UML วิเคราะห์
และออกแบบเชิงวัตถุ. กรุงเทพฯ:เคทีพี คอมพ์ แอนด์ คอนซัลท์ จากัด

similar documents