บทที่ 4 Aggregation Abstraction

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
การจำลองความคิด รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
Advertisements

เทคนิคการอ่านรายงานการวิจัย
โดย ดร.วรินทร์ สุวรรณวิสูตร อาจารย์ผู้ประสานงานวิชาโครงการ
ตัวอย่างการสร้าง Class Diagram
Class Diagram.
การโปรแกรมเชิงวัตถุ (Object-Oriented Programming)
Algorithms.
Business Modeling (บางส่วนอ้างอิงจาก ดร.อดิศร ณ อุบล)
บทที่ 3 พื้นฐานการเขียนโปรแกรม Visual Basic
Object-Oriented Analysis and Design
แผนผัง FlowChart Flow Chart คือ ขั้นตอนที่นำผลที่ได้จากการกำหนดและการ วิเคราะห์ปัญหามาเขียนเป็นแผนภาพหรือสัญลักษณ์ ประโยชน์ของผังงาน -ช่วยลำดับขั้นตอนการทำงานของโปรแกรม.
05_3_Constructor.
การเขียนขยายเค้าโครงเอกสารแต่ละบท ให้มีเนื้อหาสมบูรณ์
รหัสวิชา SOHU 0022 Information Literary
รหัสวิชา SOHU 0022 Using Information Systems
Properties ของคอนโทรล ที่ควรรู้จักในเบื้องต้น
จดหมายเหตุมหาวิทยาลัยอิเล็กทรอนิกส์ กับระบบห้องสมุดอัตโนมัติ
Object-Oriented Analysis and Design
ครั้งที่ 7 Composition.
Use Case Diagram.
SCC : Suthida Chaichomchuen
Classification Abstraction
Association Abstraction
Object-Oriented System Analysis and Design
SCC : Suthida Chaichomchuen
Enhanced Entity-Relationship Model
วิธีการเขียนรายงานของปัญหาพิเศษ
โครงร่างการวิจัย (Research Proposal)
OOP (Object-Oriented Programming)
Generalization & Specialization
ฟิสิกส์ เรื่อง แสง จัดทำโดย นาย ปณิธาน กาญจนถวัลย์ ม.4/3 เลขที่ 12
โปรแกรมภาษาจาวาเบื้องต้น Basic Java Programming 3(2-2-5)
บทที่ 3 การวิเคราะห์ Analysis.
ความสัมพันธ์ระหว่างคลาส (Class Relationship)
ที่ใช้ใน Object-Oriented Design
โดย อ. นัฐพงศ์ ส่งเนียม การเขียนโปรแกรมคอมพิวเตอร์ และอัลกอรทึ่ม ( ) Lec04 : [ การแปลงจาก FlowChart.
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
การวิเคราะห์และออกแบบระบบเชิงวัตถุ (OOAD)
การวิเคราะห์และออกแบบระบบเชิงวัตถุ Object Oriented Analysis and Design
การเขียนโปรแกรมคอมพิวเตอร์ และอัลกอริทึ่ม Lec03 : 25/03/2551 การทำงานกับ Event ต่าง ๆ โดย อ. นัฐพงศ์ ส่งเนียม
บทที่ 2 Abstractions Agenda Objectives : วัตถุประสงค์ Abstractions
วิชา :: การเขียนโปรแกรมภาษาคอมพิวเตอร์ขั้นสูง
เขียนโปรแกรมเพื่อแสดงข้อมูลพนักงาน ด้วย ADO.NET vs. DataReader
Object-Oriented Programming
Lecture 2 แก้ไขปัญหาด้วย OOP (Solving problems using OOP in Java)
หลักการเขียนโปรแกรม ( )
ศ.ดร.สุมาลี สังข์ศรี มหาวิทยาลัยสุโขทัยธรรมาธิราช
ขั้นตอนและหลักการวิเคราะห์
โปรแกรมฐานข้อมูลที่นิยมใช้
การเขียนโปรแกรมสั่งงานตัวควบคุม (Control)
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
Midterm outline Object-oriented programming Wattanapong suttapak, Software Engineering, school of Information communication Technology, university of phayao.
BCS 121 บท 5 การโปรแกรมเชิงวัตถุ (Object-Oriented Programming)
อ.วิวัฒน์ ชินนาทศิริกุล
Polymorphism กนกวรรธน์ เซี่ยงเจ็น
Object Oriented Programming : OOP
สาระการเรียนรู้ที่ ๒ การเชื่อมประพจน์
การประเมินพัฒนาการทางภาษาตามแนวสมดุลภาษา
BC305 การวิเคราะห์และออกแบบระบบสารสนเทศ
Chapter 1 : Introduction to Database System
Unified Modeling Language
วิชา การวิเคราะห์และออกแบบเชิงวัตถุ รหัส
แบบทดสอบก่อนเรียน กลุ่มสาระการเรียนรู้วิทยาศาสตร์ ชั้นมัธยมศึกษาปีที่ 2 เรื่อง การเขียนเสนอรายงานโครงงาน คะแนนเต็ม 10 คะแนน.
บทที่ 5 การเขียนรายงานโครงงานคอมพิวเตอร์
1 Inheritance อุทัย เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
Chapter 6 Abstract Class and Interface
16. การเขียนรายงานการวิจัย
วิชาคอมพิวเตอร์ คุณครูภาราดร ฟุ้งเฟื้อง
Class Diagram.
Class Diagram.
ใบสำเนางานนำเสนอ:

บทที่ 4 Aggregation Abstraction ในบทที่แล้วได้พูดถึง Classification Abstraction ไปแล้ว ซึ่งเป็นกระบวนการสร้าง Class จาก Object ต่าง ๆ ที่มีอยู่ใน Problem Domain จนได้ Class แต่ยังขาดความสัมพันธ์ระหว่าง Class ต่าง ๆ ที่เราสร้างขึ้น จากสภาพความเป็นจริงในโลกนี้จะพบว่ายังมีวัตถุหลาย ๆ อย่างที่เกิดจากการรวมตัวของวัตถุอื่น ๆ เช่น คนเกิดจากการวมกันของ ลำตัว แขน ขา หัว หรือ คอมพิวเตอร์เกิดจากการรวมของ Case , main board , monitor , Drive หรือแม้แต่โลกเราก็ยังประกอบไปด้วย ดิน น้ำ อากาศ และแร่ธาตุ ต่าง ๆ เป็นต้น

ตัวอย่าง 4.1 “ห้องเรียนประกอบไปด้วย กระดานดำ 1 กระดาน มีเก้าอี้และโต๊ะจำนวนหนึ่ง มีนักศึกษา มีอาจารย์” จากข้อความข้างต้น สามารถสรุปได้ว่า class กระดานดำ class โต๊ะ class เก้าอี้ class นักศึกษา class อาจารย์ เมื่อนำมารวมกันจะได้ class ใหม่ คือ class ห้องเรียน

ห้องเรียน นักศึกษา กระดานดำ โต๊ะ เก้าอี้ อาจารย์

ห้องเรียน นักศึกษา กระดานดำ โต๊ะ เก้าอี้ อาจารย์ ถ้ามองในทางกลับกันจะได้ว่า Class ห้องเรียนสามารถแบ่งออกได้เป็น Class กระดานดำ Class โต๊ะ Class เก้าอี้ Class นักศึกษา Class อาจารย์ มองในมุมของ Decomposition ห้องเรียน นักศึกษา กระดานดำ โต๊ะ เก้าอี้ อาจารย์

Aggregation Abstraction คือ การ พยายามตอบคำถามที่ว่า มี class ใดเป็นส่วนประกอบ (Is part of) ของ class อื่นหรือไม่ และที่สำคัญ “การประกอบกันของ class ต้องทำให้เกิด class ใหม่ ซึ่งมี concept ใหม่ด้วย” ในทาง object orientation นั้น การแสดงสัญลักษณ์เพื่อแสดง Aggregation Abstraction ของ class นั้น ทำได้โดยการโยงลูกศรเป็นสี่เหลี่ยมขนมเปียกปูน จาก class ย่อยหรือ class ที่เป็นส่วนประกอบ (Composite class) ไปยัง Class หลัก (Main Class) ดังแสดงในรูป

ห้องเรียน นักศึกษา กระดานดำ โต๊ะ เก้าอี้ อาจารย์ การเป็นส่วนหนึ่ง (Is part of) สามารถเขียนแทนด้วย สัญลักษณ์ ห้องเรียน นักศึกษา กระดานดำ โต๊ะ เก้าอี้ อาจารย์

ห้องเรียน บุคลากร นักศึกษา กระดานดำ โต๊ะ เก้าอี้ อาจารย์ บางครั้งอาจเกิดกรณีที่ class หนึ่งสามารถเป็น class ย่อยของ class หนึ่งได้พร้อมทั้งยังเป็น class ย่อยของอีก class หนึ่งได้เช่นกัน ห้องเรียน บุคลากร นักศึกษา กระดานดำ โต๊ะ เก้าอี้ อาจารย์

รถยนต์ เรือยนต์ เครื่องยนต์ ที่นั่ง ล้อ ประตู ไฟ บางครั้งอาจเกิดกรณีที่ class หนึ่งสามารถเป็น class ย่อยของ class หนึ่งได้พร้อมทั้งยังเป็น class ย่อยของอีก class หนึ่งได้เช่นกัน รถยนต์ เรือยนต์ เครื่องยนต์ ที่นั่ง ล้อ ประตู ไฟ

บางครั้งอาจเกิดกรณีที่ class หนึ่งสามารถเป็น class ย่อยของ class หนึ่งได้พร้อมทั้งยังเป็น class ย่อยของอีก class หนึ่งได้เช่นกัน Computer ? ? ? ? ? ? ?

Cardinality , Required Component ,Optional Component สำหรับ Aggregation Abstraction การประกอบกันของ class หรือความสัมพันธ์เชิง is part of นั้นอาจจะเกิดกรณี ที่ class หลัก (main class) ประกอบไปด้วย class ย่อย (Composite class ) ชนิดที่หรึ่ง เพียงชิ้นเดียว แต่ประกอบด้วย class ชนิดที่สอง จำนวน 4 ชิ้นขึ้นไป และอาจจะประกอบไปด้วยชนิดที่สาม ไม่จำกัดจำนวน หรืออาจไม่มีเลยก็ได้ ซึ่งสิ่งที่ใช้ในการแสดงความสัมพันธ์ ดังกล่าวนี้เรียกว่า Cardinality

Cardinality , Required Component ,Optional Component ในทาง OO เราเรียก Class ย่อย ว่า Component นั่นเอง โดย เราเรียกส่วนประกอบที่จำเป็นต้องมีว่า Require Component เช่น รถยนต์ต้องมีเครื่องยนต์ ถ้าไม่มีเครื่องยนต์ รถยนต์ก็ ไม่สามารถวิ่งได้ นั่นเอง เราเรียกส่วนประกอบที่ไม่จำเป็นต้องมีว่า Optional Component เช่น เครื่องปรับอากาศในรถยนต์ไม่จำเป็นต้องมีก็ได้ หมายถึงไม่มีเครื่องปรับอากาศรถยนต์ก็ยังสามารถวิ่งได้

Cardinality , Required Component ,Optional Component ห้องเรียน นักศึกษา mandatory กระดานดำ โต๊ะ เก้าอี้ อาจารย์ mandatory mandatory mandatory mandatory

Cardinality , Required Component ,Optional Component รถเก๋ง 0..1 เครื่องปรับอากาศ 1..2 1..1 2..4 4..4 กระโปรงรถ เครื่องยนต์ ประตู ล้อ

Cardinality , Required Component ,Optional Component หนังสือ 1..1 บรรณานุกรม 2..2 1..1 1..1 1..N ปก คำนำ สารบัญ บท

หนังสือ ปก คำนำ สารบัญ บทของเนื้อหา บรรณานุกรม 2..2 1..n 1..1 1..n ต.ย. การเขียน cardinality ของ class หนังสือ

บทของเนื้อหา 1..n หน้าหนังสือ

ต.ย. การเขียน cardinality ของ class หน้าหนังสือ ตัวหนังสือ รูปภาพ ต.ย. การเขียน cardinality ของ class หน้าหนังสือ

หนังสือ ปก คำนำ สารบัญ บทของเนื้อหา บรรณานุกรม หน้าหนังสือ ตัวหนังสือ 2..2 1..n 1..1 1..n 1..1 ปก คำนำ สารบัญ บทของเนื้อหา บรรณานุกรม 1..n หน้าหนังสือ 0..n 0..n ตัวหนังสือ รูปภาพ ต.ย. การเขียน cardinality ของ class หนังสือ

บรรณานุกรม - เนื้อความ + อ่าน ปกหนังสือ คำนำ บทของเนื้อหา สารบัญ - รหัสหนังสือ + ชื่อหนังสือ + อ่าน + พิมพ์ 2..2 1..n 1..1 1..n 1..1 ปกหนังสือ + ประเภทของปก + พลิก คำนำ เนื้อความ ชื่อผู้แต่ง + อ่าน สารบัญ เนื้อความ + อ่าน บทของเนื้อหา เนื้อหาแต่ละบท + อ่าน บรรณานุกรม - เนื้อความ + อ่าน 1..n หน้าหนังสือ เนื้อหาแต่ละหน้า พลิก อ่าน 0..n 0..n ตัวหนังสือ อักขระ + สะกด รูปภาพ - ภาพ + ดู ต.ย. การเขียน cardinality ของ class หนังสือ

ASSIGNMENT จงเขียน class diagram ที่แสดง Aggregation Abstration ของ Computer PC จงเขียน class diagram ที่แสดง Aggregation Abstration ของ โทรศัพท์มือถือ (Mobile) จงเขียน class diagram ที่แสดง Aggregation Abstration ของ สมุดธนาคาร (Bank Account)

Aggregation A unfilled diamond shows aggregation. This relationship indicates that one is PART of the other. An Employee is PART of a division. But a division can stand on its own without Employees.

The Person Class

Composite Aggregation A filled diamond shows Composite Aggregation. This relationship indicates that one is PART of the other. An OrderDetail is PART of an order. But an Order CANNOT stand on its own without Order Details.

บทที่ 5 Generalization Abstraction เพื่อให้ผู้อ่านเข้าใจหลักการของ Generalization Abstraction และการ Inheritance เพื่อให้ผู้อ่านเข้าใจวัตถุประสงค์ กลไก และวิธีการทำ inheritance เพื่อให้ผู้อ่านสามารถแยกความแตกต่างและสร้างความสัมพันธ์ระหว่าง Super class และ Sub class ได้

Polymorphism in VB.NET Prefix Overridable before Base Method Public Class Shape Public Overridable Sub draw() MsgBox("Draw Shape") End Sub End Class Public Class Rectangle Inherits Shape Public Overrides Sub draw() MsgBox("Draw Rec ") Public Class Circle Inherits Rectangle MsgBox("Draw Circle ") Prefix Overridable before Base Method Prefic Overrides before derived class

Polymorphism in VB.NET Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim s As Shape = New Shape s.draw() Dim s1 As Rectangle = New Rectangle s1.draw() Dim s3 As New Circle s3.draw() End Sub

Polymorphism in VB.NET Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim s As Shape = New Shape s.draw() Dim s1 As Rectangle = New Rectangle s1.draw() Dim s3 As New Circle s1 = s3 End Sub

No polymorphism Dim s As Shape = New Shape s.draw() Public Class Shape Public Overridable Sub draw() MsgBox("Draw Shape") End Sub End Class Public Class Rectangle Inherits Shape Public Overrides Sub draw() MsgBox("Draw Rec ") Public Class Circle Inherits Rectangle MsgBox("Draw Circle ") Public Class Triangle Public Shadows Sub draw() Dim s As Shape = New Shape s.draw() Dim s1 As Rectangle = New Rectangle s1.draw() Dim s3 As New Circle s1 = s3

Calling Base Method Public Class Shape Public Overridable Sub draw() MsgBox("Draw Shape") End Sub End Class Public Class Rectangle Inherits Shape Public Overrides Sub draw() MsgBox("Draw Rec ") Public Class Circle Inherits Rectangle MsgBox("Draw Circle ") MyBase.draw() Mybase