การวิเคราะห์และออกแบบระบบเชิงวัตถุ (OOAD)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
การออกแบบการวิจัยการเขียนเค้าโครงการวิจัย
Advertisements

Object-Oriented Analysis and Design
Class Diagram.
งานนำเสนอแฟ้มสะสมผลงาน
การโปรแกรมเชิงวัตถุ (Object-Oriented Programming)
บทที่ 3 พื้นฐานการเขียนโปรแกรม Visual Basic
05_3_Constructor.
Object-Oriented Programming
Object Oriented Programing
การเขียนโปรแกรมภาษาจาวาตอนที่ ๓
ครั้งที่ 7 Composition.
หลักการเชิงวัตถุ อาจารย์ศิริพร ศักดิ์บุญญารัตน์
SCC : Suthida Chaichomchuen
Selected Topics in IT (Java)
Object-Oriented System Analysis and Design
SCC : Suthida Chaichomchuen
Enhanced Entity-Relationship Model
การสืบทอด (Inheritance)
Data Mining นำเสนอโดย อาจารย์นงเยาว์ สอนจะโปะ คณะสารสนเทศศาสตร์
บทที่ 8 การวิเคราะห์ข้อมูลเชิงคุณภาพ
การสืบทอดคุณสมบัติ (Inheritance)
OOP (Object-Oriented Programming)
C# Programming Exceed Camp: Day 3.
Generalization & Specialization
Lecture 9 Class (คลาส) To do: Hand back assignments
Inheritance การสืบทอดคลาส
บทที่ 6 เมธอด.
โปรแกรมภาษาจาวาเบื้องต้น Basic Java Programming 3(2-2-5)
บทที่ 3 การวิเคราะห์ Analysis.
ความสัมพันธ์ระหว่างคลาส (Class Relationship)
ที่ใช้ใน Object-Oriented Design
บทที่ 2 หลักการแก้ปัญหา
โดย อ. นัฐพงศ์ ส่งเนียม การเขียนโปรแกรมคอมพิวเตอร์ และอัลกอรทึ่ม ( ) Lec04 : [ การแปลงจาก FlowChart.
บทที่ 4 Aggregation Abstraction
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
การวิเคราะห์และออกแบบระบบเชิงวัตถุ Object Oriented Analysis and Design
การเขียนโปรแกรมคอมพิวเตอร์ และอัลกอริทึ่ม Lec03 : 25/03/2551 การทำงานกับ Event ต่าง ๆ โดย อ. นัฐพงศ์ ส่งเนียม
บทที่ 2 Abstractions Agenda Objectives : วัตถุประสงค์ Abstractions
Lec03 :: หลักการเชิงออปเจ็ค (Object Oriented Concept)
วิชา :: การเขียนโปรแกรมภาษาคอมพิวเตอร์ขั้นสูง
Lec05 :: การสืบทอด (inheritance)
หลักการทำ Animation แบบง่ายๆ
การวาดวงกลม Arc วงรี pie และ โปรแกรมเกมส์ Pacman
เขียนโปรแกรมเพื่อแสดงข้อมูลพนักงาน ด้วย ADO.NET vs. DataReader
วิชาคอมพิวเตอร์กราฟิก intro_vb_net_06 การสร้างกราฟเส้นตรงด้วย VB.NET
วิชาคอมพิวเตอร์กราฟิก
ฟอร์ม โมดูล และ MDI.
Object-Oriented Programming
Lecture 2 แก้ไขปัญหาด้วย OOP (Solving problems using OOP in Java)
การปลูกพืชผักสวนครัว
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
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
การสืบทอด (inheritance)
chapter5 - คลาสนามธรรม - อินเตอร์เฟสคลาส
Object-Oriented Programming
วิชา การวิเคราะห์และออกแบบเชิงวัตถุ รหัส
1 Inheritance อุทัย เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
Chapter 6 Abstract Class and Interface
บทที่ 4 ข้อเสนอโครงการวิจัย
บทที่ 3 การสืบทอด (Inheritance)
Inheritance and Method Overriding
Class Diagram.
Object Roles and the Importance of Polymorphism
Inheritance Chapter 07.
Class Inheritance and Interfaces.
Class Diagram.
ใบสำเนางานนำเสนอ:

การวิเคราะห์และออกแบบระบบเชิงวัตถุ (OOAD) โดย อ. นัฐพงศ์ ส่งเนียม http://www.siam2dev.com xnattapong@hotmail.com

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

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

Specialization Specialization Generalization Generalization รถยนต์ คุณสมบัติ : มีล้อ มีเครื่องยนต์ Specialization Specialization Generalization Generalization รถบรรทุก คุณสมบัติ : คุณสมบัติของรถยนต์ + สามารถบรรทุกของได้ รถเก๋ง คุณสมบัติ : คุณสมบัติของรถยนต์ + ใช้โดยสาร มี 4 ประตู Specialization Generalization รถสปอร์ต คุณสมบัติ : คุณสมบัติของรถเก๋ง +วิ่งได้เร็วกว่า + เปิดประทุนได้

Specialization Specialization Generalization Generalization สัตว์ปีก คุณสมบัติ : มีปีก มีขา 2 ขา Specialization Specialization Generalization Generalization นก คุณสมบัติ : คุณสมบัติของสัตว์ปีก + บินได้ ไก่ คุณสมบัติ : คุณสมบัติสัตว์ปีก + ขันได้ Specialization Generalization ไก่ชน คุณสมบัติ : คุณสมบัติไก่ + ขันได้ + ชนไก่ได้

Specialization Specialization Generalization Generalization สัตว์น้ำ - อาศัยในน้ำ Specialization Specialization Generalization Generalization ปู ปลา - มีครีบ Specialization Generalization ??? Practice II จงเขียนความสัมพันธ์ของสัตว์บก ในเชิง Generalization และ Specialization

Generalization แนวคิดหลักเชิงวัตถุ Generalization จัดการ classes ให้อยู่ในรูปของโครงสร้างลำดับชั้น (class Hierarchy) ขึ้นกับ similarities และ differences เราเรียกคลาสที่อยู่ในระดับที่สูงกว่าของ classes hierarchy ว่า “superclasses” และที่อยู่ในระดับต่ำกว่าว่า “subclasses” เป็น “kind-of” relationship

Inheritance and Polymorphism “subclass” รับถ่ายทอดคุณสมบัติ (inherits)อันได้แก่ attributes, operations และassociations มาจาก “superclass” ของตัวเอง แต่อย่างไรก็ตาม ถ้า attribute หรือ operation ของ “superclass” ถูกกำหนดให้ค่าใหม่ใน “subclass” จะเป็นการ “overrides” คำนิยามที่กำหนดไว้ใน “superclass” - นำสู่แนวคิดของ polymorphism

Superclasses and Subclasses “Superclass” มีคำนิยาม attributes, operations และ associations ร่วมกันกับ “subclasses” ของคลาสนั้นๆ “Subclasses” มี attributes, operations และ associations เฉพาะเป็นของตัวเอง โดยเลือกที่จะกำหนดนิยามใหม่ให้กับ attribute, operation หรือ relationship ที่รับมาจาก “superclass” หรือไม่ก็ได้

A Generalization Hierarchy Geometric_Figure Superclass X_Position Y_Position Ellipse Circle Rectangle Major_Axis Minor_Axis Radius Width Height Subclasses

Class Diagrams-inheritance

Class diagrams-inheritance A simple example of inheritance in Java:

Class diagrams-inheritance

Class diagrams-inheritance

Class diagrams-inheritance

Single & Multiple Inheritance generalizations มักเกิดใน class hierarchies ที่แต่ละ “subclass” มีเพียง 1 “superclass” - เรียกว่า “single inheritance” แต่มีบางสถานการณ์ที่ “subclass” อาจมีได้มากกว่า 1 “superclass” - เรียกว่า “multiple inheritance”

Multiple Inheritance Employee GeneralStaff ProfStaff FullTime PartTime Subclass with two superclasses Academic

Multiple Inheritance Vehicle Furniture Wheelchair

Specialization Specialization เป็นกระบวนการย้อนกลับของ generalization แต่ให้ผลเช่นเดิม แตกต่างกันที่จุดเริ่มต้นเท่านั้น Generalization เป็นการค้นหาคุณลักษณะร่วมกัน ของ (sub)classes Specialization เป็นการแยก และค้นหาคุณลักษณะพิเศษของ (super)classes เพื่อให้ได้ subclasses

Generalization and Classification (= is_a?) 1. Shep is a Border Collie. 2. A Border Collie is a Dog. 3. Dogs are Animals 4. A Border Collie is a Breed. 5. Dog is a Species 1+2: Shep is a Dog 1+2+3: Shep is a animal 1+4: Shep is a breed????? 2+5: A Border Collie is a Species????? Generalization is transitive (is kind of) Classification is not transitive (is instance of)

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