1 / 32

บทที่ 1 Object Orientation

บทที่ 1 Object Orientation. อ.วิวัฒน์ ชินนาทศิริกุล. Object Orientation คืออะไร. เกิดจากคำ 2 คำ คือ 1. Object 2. Orientation Object แปลว่า วัตถุ ที่จับต้องได้และไม่สามารถจับต้องได้ (รูปธรรมกับนามธรรม) เช่น คน สุนัข รถยนต์ รายวิชา ภาควิชา เกรด

tender
Download Presentation

บทที่ 1 Object Orientation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. บทที่ 1 Object Orientation อ.วิวัฒน์ ชินนาทศิริกุล

  2. Object Orientation คืออะไร • เกิดจากคำ 2คำ คือ 1. Object 2. Orientation • Objectแปลว่า วัตถุ ที่จับต้องได้และไม่สามารถจับต้องได้ (รูปธรรมกับนามธรรม) เช่น คน สุนัข รถยนต์ รายวิชา ภาควิชา เกรด • Orientationมาจากคำว่า Orientแปลว่านำทางหรือนำไป

  3. Object Orientation คืออะไร (ต่อ) • Object Orientationหมายถึง การใช้ Object เป็นหลักในการพิจารณา ความเป็นจริงต่างๆที่เกิดขึ้น • สามารถนำหลักการของ Object Orientationมาใช้ในการวิเคราะห์และออกแบบระบบคอมพิวเตอร์ได้ ทำให้เกิดศาสตร์ใหม่ที่เรียกว่า ObjectOriented Analysis and Designหรือเรียกย่อๆว่า OOAD

  4. Object, Relation และ Interaction • ในชีวิตประจำวัน จะพบวัตถุ(Object)ต่างๆ อยู่รอบๆตัวเรา เช่น คน รถยนต์ คอมพิวเตอร์ โต๊ะเรียน เก้าอี้ ซึ่งเป็นวัตถุที่สามารถจับต้องได้ หรือ รายวิชาเรียน เกรด ซึ่งเป็นวัตถุที่ไม่สามารถจับต้องได้ • Objectต่างๆ จะประกอบด้วยคุณลักษณะ หรือคุณสมบัติ (properties)และพฤติกรรม (behavior) หรือการกระทำ หรือกิจกรรม ที่วัตถุนั้นสามารถกระทำได้ เช่น คน มีคุณลักษณะดังนี้ มีผม มีแขน มีขา มีหู ตา จมูก ปาก คน มีพฤติกรรมดังนี้ คนพูดได้ กินได้ วิ่งได้ นอนได้

  5. Object, Relation และ Interaction (ต่อ) • กิจกรรมต่างๆที่เกิดขึ้นรอบๆตัวเรา ล้วนแต่เกิดจากการมีความสัมพันธ์ (Relationship) และการมีปฏิสัมพันธ์ (Interaction)ระหว่าง Object2ตัวขึ้นไป เช่น คน รับประทาน อาหาร จากประโยคดังกล่าวนี้ Object ได้แก่ คน , อาหาร Interaction ได้แก่ รับประทาน Relation ได้แก่ เป็นเจ้าของ (คน เป็นเจ้าของ อาหารที่รับประทาน)

  6. Object, Relation และ Interaction (ต่อ) • Relationshipคือ ความเกี่ยวข้อง หรือความสัมพันธ์ระหว่าง object 2ตัวขึ้นไป เช่น การเป็นเข้ามี การมี การสังกัด • Interactionคือ ปฏิสัมพันธ์ หรือการกระทำใดๆที่เกิดขึ้น ระหว่าง object2ตัวขึ้นไป เช่น การกิน การเล่น การสร้าง

  7. Domain • Domainเป็นกรอบ หรือขอบเขต ของสิ่งที่เราให้ความสนใจ หรือพิจารณา • ใน Domainหนึ่งๆ สามารถมี object ได้ตั้งแต่ 2 ตัวขึ้นไป object ตัวเดียวสามารถอยู่ในหลายๆ Domainได้ ซึ่งขึ้นอยู่กับว่าเราจะกำหนด Domainที่สนใจอย่างไร

  8. Object และ Class • Concept Objectที่อยู่ในโลกของความเป็นจริง (Real World Object) เราไม่สามารถนำ มาใส่ในคอมพิวเตอร์ได้ แต่สิ่งที่สามารถทำได้คือ การใส่แนวคิด (Concept) ให้กับ Object เพื่อนำไปใส่ไว้ในคอมพิวเตอร์ • Concept หมายถึง ความคิดรวบยอดที่มีให้กับ Object นั้นๆ ภายใต้กรอบที่กำหนด (Domain)เช่น Conceptของรถยนต์ คือ รถยนต์ทุกคัน มีตัวถัง มีล้อ มีเครื่องยนต์ Conceptของคน คือ มี 2แขน2ขา1ศีรษะ

  9. Class • ผลจาก การให้ Conceptกับ Object ทำให้เกิดการจัดกลุ่มของ Object ขึ้น กลุ่มของ Object ที่ได้จากกระบวนการนี้ เรียกว่า Abstract Objectsหรือเรียกว่า Class • ตัวอย่าง เช่น รถยนต์ยี่ห้อ TOYOTA , HONDAต่างก็มี 4ล้อ มีเครื่องยนต์ และใช้น้ำมันเชื้อเพลิง เหมือนกัน สามารถจัดให้ รถ ทั้งสองคันนี้ อยู่ในคลาส รถยนต์ ดังนั้น รถยนต์ยี่ห้อ MAZDAก็มี 4ล้อ มีเครื่องยนต์ ใช้น้ำมันเชื้อเพลิง ก็สามารถจัดอยู่ในคลาส รถยนต์ได้ เพราะมี Conceptแบบเดียวกัน แต่รถจักรยานยนต์ ไม่สามารถจัดอยู่ในคลาส รถยนต์ ได้

  10. Class (ต่อ) • Class ถือเป็นนามธรรม (Abstract) นั่นแสดงว่า คลาสไม่มีตัวตน คลาสมีแต่แนวคิด ดังนั้นเราจึงไม่สามารถทำให้ class ดำเนินกิจกรรมใดๆได้ • เช่น จากประโยค คน กิน อาหาร ในแง่ของ Object Orientationถือว่าไม่ได้เป็นเหตุการณ์ที่เกิดขึ้นจริง เพราะ คน จะหมายถึง แนวความคิด อาหารก็เป็นแนวความคิด แต่ถ้ากล่าวว่า สมชาย กิน ข้าวมันไก่ จะหมายถึง นายสมชาย ซึ่งมีอยู่จริงบนโลกนี้ ซึ่งสมชายเป็น วัตถุ ของคลาส คน ข้าวมันไก่ เป็นวัตถุของคลาส อาหาร

  11. Class (ต่อ) • Classต่างๆทั้หมดใน Domainที่เราสนใจ เป็นสิ่งที่อยู่ในความคิดของเรา ไม่สามารถดำเนินกิจกรรมอะไรได้ ถ้าเราต้องการให้เกิดกิจกรรมขึ้น เราจะต้องสร้าง Object ของ Classนั้นๆแล้วจึงใช้ Object ทำงานหรือดำเนินกิจกรรม • เมื่อเปรียบเทียบกับการพัฒนาโปรแกรมแบบเดิม Classจะคล้ายๆกับ ชนิดข้อมูล (Type) และ Object จะคล้ายๆกับ ตัวแปร

  12. Abstraction และ Instantiation • Abstractionเป็นกระบวนการให้ Conceptกับ Objectจนเกิดเป็น Class • Instantiationเป็นกระบวนการของการทำให้เกิด Objectจาก Classที่เราสร้างขึ้น ตำราบางเล่มจะเรียก Object ว่า Instanceเพราะว่า Objectเกิดจากการกระบวนการ Instantiation

  13. Attributes และ Function • Attributeเป็นคุณสมบัติของ วัตถุ โดยที่คุณสมบัติดังกล่าวนี้ต้องเป็นคุณสมบัติที่เราสนใจ หรืออยู่ใน Domainที่เราสนใจ • เช่น มีผลไม้ ประกอบด้วย มะม่วง มีรสเปรี้ยว สีเขียว เงาะ มีรสหวาน สีแดง ชมพู่ มีรถหวาน สีชมพู Objectในตัวอย่างนี้ ได้แก่ มะม่วง เงาะ ชมพู่ Classในตัวอย่างนี้คือ ผลไม้ Attributeในตัวอย่างนี้ ได้แก่ 1.รสชาด 2.สี

  14. Function • Functionเป็นความสามารถในการทำกิจกรรมของ Objectที่มีไว้เพื่อให้ Objectอื่นใน Domainเรียกใช้หรือกระตุ้นได้ เช่น นายสมชาย เปิดเครื่องคอมพิวเตอร์ หมายเลข 001 Objectได้แก่ นายสมชาย และ เครื่องคอมพิวเตอร์ หมายเลข 001 Classได้แก่ คน และ คอมพิวเตอร์ Interactionได้แก่ การเปิด Functionได้แก่ ฟังก์ชันเปิดของคอมพิวเตอร์ 001

  15. Function (ต่อ) • Object ในโลกของ Object Orientation เป็น Objects ที่ถูกกระทำ หรือเป็นอ็อบเจกต์ที่ให้อ็อบเจกต์อื่น มาเรียกใช้หรือกระตุ้น เพื่อให้เกิดการทำงานเสมอ

  16. Class Name Attribute 1 Attribute 2 Attribute n Function 1 Function 2 Function n สัญลักษณ์ที่ใช้อธิบาย Class

  17. Object-Oriented Software Engineering • การพัฒนาระบบคอมพิวเตอร์ กินความหมายตั้งแต่ การวิเคราะห์ การออกแบบ การพัฒนาโปรแกรม และการนำไปใช้ เราเรียกการพัฒนาระบบคอมพิวเตอร์ด้วยหลักการ Object Orientationว่า Object-Oriented Software Engineering • ในOOSE จะใช้คำว่าProblem Domain หรือDomain of Problem แทนคำว่าDomain เพราะOOSE มองว่าการพัฒนาโปรแกรมคือการแก้ปัญหา

  18. 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?

  19. Object-Oriented Software Engineering (ต่อ) 3.Object-Oriented Programming (OOP)เป็นขั้นตอนการสร้างหนทางแก้ปัญหาในรายละเอียดให้เกิดขึ้นและใช้งานได้จริง เป็นการตอบคำถามที่ว่า How to implement the solution?

  20. Abstraction • เป็นกระบวนการในการให้ Concept กับ Object ต่างๆในโลกแห่งความเป็นจริง (Real World)เพื่อสร้าง Class นั้น ซึ่งแบ่งออกได้เป็น 4 กระบวนการคือ 1. Classification Abstraction 2. Aggregation Abstraction 3. Generalization Abstraction 4. Association Abstraction

  21. Abstraction (ต่อ) • ในการใช้ Abstractionเพื่อวิเคราะห์ Domain Problemไม่ได้มีข้อกำหนดตายตัว ว่าจะต้องใช้กระบวนการย่อยของ Abstraction ทุกตัว หรือใช้ตามลำดับก่อนหลัง แต่ส่วนใหญ่ Abstraction แรกที่ถูกใช้คือ Classificationหลังจากนั้นจะขึ้นอยู่กับมุมมองของผู้วิเคราะห์ว่าจะใช้ Abstractionตัวใดที่เหมาะสมมาวิเคราะห์ Domain Problem อีก

  22. Classification Abstraction • เป็นกระบวนการที่ใช้แยกประเภทของ Object ต่างๆที่อยู่ใน Domainและให้ Conceptกับ Objectต่างๆ เพื่อให้ได้ Classพื้นฐานที่ต้องการ • ถือว่า Classificationเป็น Abstractionที่สำคัญที่สุดเพราะ Classเกิดขึ้นด้วย Classification Abstraction

  23. Classification Abstraction (ต่อ) • ตัวอย่าง ถ้าใน Problem Domainมีสิ่งที่ต้องพิจารณา ได้แก่ 1.รถยนต์นั่งโตโยต้า 2.รถจักรยานยนต์ยามาฮ่า 3.รถโดยสาร 6ล้ออีซูซุ 4.จักรยานBMX 5.เรือข้ามฟาก • พบว่า Conceptที่เหมือนกันของ 1.รถยนต์นั่งโตโยต้า 2.รถจักรยานยนต์ยามาฮ่า 3.รถโดยสาร 6ล้ออีซูซุ คือ มีเครื่องยนต์ มีล้อจำนวนหนึ่ง วิ่งไปบนถนนได้ ใช้น้ำมันหรือแก๊สเป็นเชื้อเพลิง ดังนั้นสามารถให้ Conceptของ 1,2,3ว่าเป็นคลาสรถยนต์

  24. รูปแสดง Classificationของรถยนต์

  25. Aggregation Abstraction • เป็นกระบวนการที่นำเอา Classพื้นฐาน มารวมกันหรือประกอบกัน (Aggregate) เพื่อเกิดเป็น Classที่ใหญ่ขึ้น หรือซับซ้อนขึ้น โดยที่ Class พื้นฐานสร้างมาจากขั้นตอน Classification • การทำ Aggregation เป็นการตอบคำถามว่า ในClassกลุ่มหนึ่งนั้น สามารถนำมารวมเพื่อให้เกิด Class ใหม่ ที่มี Conceptใหม่ได้หรือไม่อย่างไร หรือในทางกลับกัน มี Class ใดบ้างที่สามารถแบ่งย่อย ออกเป็นส่วนประกอบต่างๆซึ่งมี Concept ต่างไปจากเดิมได้

  26. ตัวอย่าง รถยนต์แต่ละคันประกอบด้วย ตัวถัง ล้อ เครื่องยนต์ ในส่วนของตังถังประกอบด้วย โครงรถ ประตู กระจก จาก Domainดังกล่าวสามารถแสดงความสัมพันธ์แบบ Aggregationได้ดังรูป

  27. Generalization Abstraction • เป็นกระบวนการในการนำ Class ที่มีลักษณะเหมือนกันหรือคล้ายกัน หรือมีลักษณะอย่างใดอย่างหนึ่งร่วมกัน มาจัดหมวดหมู่ ไว้เป็น Class เดียวกัน กระบวนการย้อนกลับของ GeneralizationAbstractionเรียกว่า Specializationซึ่ง กระบวนการSpecialization จะตอบคำถามว่าใน Classหนึ่งๆสามารถจำแนกเป็น Classอะไรได้บ้าง

  28. ตัวอย่าง รถยนต์สามารถแบ่งออกเป็น รถบรรทุก รถเก๋ง และรถสปอร์ตซึ่งวิ่งได้เร็วกว่ารถปกติ สามารถเขียนแสดงความสัมพันธ์เชิง Generalizationหรือ Specialization ได้ดังนี้

  29. Association Abstraction • เป็นกระบวนการในการสร้างความสัมพันธ์ระหว่าง Classต่างๆใน Problem Domainที่เราสนใจ • ความสัมพันธ์ดังกล่าว เป็นความสัมพันธ์ที่ไม่สามารถอธิบาย Aggregationหรือ Generalization • Associationเป็นการอธิบายความสัมพันธ์ของ Class

  30. ขับ คน รถยนต์ วิ่งบน ถนน ใช้เป็นเชื้อเพลิง น้ำมัน Association Abstraction (ต่อ) • ตัวอย่าง รถยนต์ใช้น้ำมันเป็นเชื้อเพลิง รถยนต์วิ่งบนถนน คนเป็นผู้ขับขี่รถยนต์ สามารถแสดงความสัมพันธ์ของคลาสต่างๆในDomainได้ดังนี้

  31. Association Abstraction (ต่อ) • จากตัวอย่าง Class ต่างๆใน Problem Domain ได้แก่ คน รถยนต์ ถนน น้ำมัน มีความสัมพันธ์ต่อกัน ได้แก่ คนกับรถยนต์ (คนขับรถยนต์) รถยนต์กับถนน (รถยนต์วิ่งบนถนน) รถยนต์กับน้ำมัน (รถยนต์ใช้น้ำมัน)

  32. เอกสารอ้างอิง • กิตติ ภักดีวัฒนะกุล และกิตติพงษ์ กลมกล่อม. (2544).UMLวิเคราะห์และออกแบบเชิงวัตถุ. กรุงเทพฯ:เคทีพี คอมพ์ แอนด์ คอนซัลท์ จำกัด

More Related