unit01 - object - oriented system analysis

Post on 18-Nov-2014

204 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

หนวยที่ 1: แนวคิดเชิงวัตถุ(Object-Orientation)

ดร.สุขสถิต มีสถิตยการวิเคราะหและออกแบบเชิงวัตถุ2/2550

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 2

วัตถุประสงคเพื่อใหนกัศึกษาเขาใจลักษณะพื้นฐานของระบบเชงิวัตถุ

เพื่อใหนกัศึกษาเขาใจหลักการเชงิวัตถุ

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 3

แนวคิดเชิงวัตถุ (Object-orientation)

แนวคิดเชงิวัตถุเปนเทคนคิในการจําลองระบบระบบถูกจาํลองในรูปของกลุมออบเจ็คที่ปฏิสมัพันธกันประโยชนเขาใจงาย - ลดชองวางระหวางระบบจริงและระบบที่จําลองโดยคอมพวิเตอรงายตอการแกไข - เพราะขอมูลและการทาํงานอยูภายในออบเจ็ค

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 4

ภาพตวัอยางของระบบเชิงวัตถุCustomer

Mary

Customer Bill

Order 563

Customer Joe

Chair 213

Order 143

Order 721

Chair 654

Lamp 453

Lamp 856

Button

Text Box

Label

create

get text

display

add new order

add to order

add to order

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 5

หลกัการเชิงวัตถุ (Object-Oriented Concepts)

ออบเจ็ค (Object)คลาส (Class)เอ็นแค็ปซุเลชัน (Encapsulation) และ การซอนรายละเอียด (Information Hiding)การสืบทอดคุณสมบัติ (Inheritance)โพลีมอรฟซึม (Polymorphism)

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 6

ออบเจ็ค (Object)

ออบเจ็ค คือสิ่งที่สามารถจดจําสถานะ (state) (หรือขอมลู (information)) และแสดงพฤติกรรม (behavior) เพื่อสํารวจสถานะ กระทาํงานที่มีผลกระทบกบัสถานะ หรือกระทาํงานอื่นๆออบเจ็ค ถูกสรางขึน้มาเพื่อเปนตัวแทนของสิง่ตางในสถาวะจริงของระบบในโลกของซอฟตแวร

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 7

การจําลองระบบในเชิงวัตถุ

ของจริง

แบบจําลอง

บาน

รถยนตทิชา

อาศัยอยูในขับ

บาน รถยนต

ทิชา

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 8

ออบเจ็ค และ แอบสแตร็กชัน

แอบสแตร็กชัน (Abstraction)หมายถึง การจํากัดรายละเอียดเปนกระบวนการในการละเวนรายละเอียดที่ไมเกี่ยวของและ เนนรายละเอียดที่จําเปน

ออบเจ็ค เปนแอบสแตรกชนั (Abstraction) ของสิ่งตางๆ เพือ่จําลองสิง่นั้นไวในระบบคอมพิวเตอร

ออบเจ็คแตละตัวจะมีพฤติกรรมและขอมูลของออบเจ็คที่มันเปนตัวแทน และมเีฉพาะดานที่เกีย่วของกับระบบเทานั้น

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 9

ตัวอยางของแอบสแตรก็ชัน

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 10

คลาส (Class)คลาส คือ ตนแบบ หรือแมพิมพ (Template) สําหรับสรางออบเจ็คคลาส เปนขอกําหนดลกัษณะรวมกันของออบเจค็ประเภทเดียวกันคลาส อธิบายโครงสรางภายในของออ็บเจ็ค ประกอบดวยโอเปอรชนัและโครงสรางขอมูลอินสแตนซ (Instance) คือ ออบเจ็คที่สรางจากคลาส

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 11

คลาส และ ออบเจ็คคลาสกําหนดลักษณะโครงสรางของออบเจ็คโครงสรางที่ใชในการเก็บขอมลูบงบอกสถานะของออบเจ็ค ในรูปของกลุมแอททริบวิ (attribute)พฤติกรรมทีอ่อบเจ็คกระทาํไดในรูปกลุม โอเปอรชนั (operation)

ออบเจ็คของคลาสเดียวกันมลีักษณะโครงสรางภายในเหมอืนกนั แตจะขอมูลทีเ่ก็บจะตางกันขึน้อยูกับสถานะของออบเจค็แตละตัว ซึ่งถกูกําหนดผานโอเปอรชนัของออบเจค็ออบเจ็ค แตละตัวจะมีไอเด็นทติี้ (identity) ไมซ้ํากัน

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 12

ตัวอยาง คลาส และ ออบเจ็ค

+เดิน()+ยืน()+ยิ้ม()

-ชื่อ-อายุ-เบอรโทรศัพท

บุคคล

ออบเจ็คของ

ออบเจ็คของ

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 13

เมสเสจ (Message)

เมสเสจ คือขอมูลทีส่งไปยังออบเจ็คเพื่อสัง่ใหทํางานระบบเชงิวัตถุทํางานโดยอาศัยการปฏิสมัพันธระหวางออบเจ็ค หมายถึงการทีอ่อบเจค็สงเมสเสจไปถึงกนัโดยออบเจ็คที่ไดรับเมสเสจจะทํางานตามที่ไดรับการรองขอ โดยการเรียกโอเปอรชนัที่ตรงกับที่เมสเสจสงมาทํางานการสงเมสเสจ = การเรียกใชโอเปอรชนัของออบเจ็คอื่น

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 14

เอ็นแคปซุเลชัน (Encapsulation)

หมายถึง สิ่งทีม่องเห็นจากภายนอกของออบเจ็ค คืออินเตอรเฟซ (interface)อินเตอรเฟซ คือโอเปอรชนัทีส่ามารถเรยีกใชจากออบเจ็คไดเพราะ กระบวนการทํางานและขอมูลถกูรวมไวดวยกันภายในออบเจ็คโดยการจัดการกับขอมูลภายในออบเจ็คตองทําผานการเรียกใชโอเปอรชนัของออบเจค็

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 15

การซอนรายละเอียด (Information Hiding)

หมายถึงการเปดเผยเฉพาะขอมลูที่จาํเปนตอการใชซอฟตแวรโมดูล (software module) เทานัน้ออบเจ็ค รองรับการซอนรายละเอียด เพราะออบเจค็ซอนโครงสรางภายในจากสิ่งภายนอก

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 16

การสืบทอดคุณสมบัติ (Inheritance)

เปนวธิีการในการออกแบบสิ่งสองสิ่งหรือมากกวาที่ตางกัน แตมีลักษณะบางอยางเหมือนกนัโดยกําหนดลักษณะสวนที่เหมือนกนัไวใน ซุปเปอรคลาส (Superclass) หนึ่งคลาส แลวกําหนดใหคลาสอืน่ๆ เรยีกวา ซับคลาส (Subclasses) มารับนี้ลักษณะสืบทอดตอไปเปนของตัวเอง หมายความวา ซับคลาสมีแอททริบวิและโอเปอรชนัทีร่ับมาจากซุปเปอรคลาสคุณสมบัติสามารถสืบทอดตอลงไปไดหลายลําดับชัน้ เนื่องจาก ซับคลาสสามารถเปนซุปเปอรคลาสของคลาสอื่น ทําใหเกิดลําดับชัน้การสืบทอดคุณสมบัติ (Inheritance hierarchy)

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 17

ตัวอยางลําดับชั้นการสืบทอดคุณสมบัติ (Inheritance Hierarchy)

ยานยนต

จักรยานยนต รถบรรทุก

รถยนตสวนบุคคล รถยนตโดยสาร

รถยนต

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 18

โพลีมอรฟซึ่ม (Polymorphism)

แปลวาหลายรูปแบบใน OO หมายถึงการทีอ่อบเจค็ตางคลาสกันทํางานตอบสนองตอเมสเสจที่เหมอืนกนัในรูปแบบที่แตกตางกันอยางเหมาะสมทําใหสามารถใชงานออบเจ็คโดยไมตองทราบคลาสของออบเจ็ค

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 19

ขอดขีองการใชแนวคิดเชิงวัตถุในการพัฒนาระบบความเปนธรรมชาติ (Naturalness)

คลาส ออบเจ็ค โอเปอรชนั และเมสเสจ ทําใหมุมมองในการพัฒนาซอฟตแวรสอดคลองกับการมองสิ่งตางๆ ของมนุษยโดยทัว่ไปการใชซ้ํา (Reusability)

คลาส ออบเจ็ค โอเปอรชนั เมสเสจ เอ็นแคปซุเลชนั และการซอนรายละเอียด ชวยใหออบเจ็คงายตอการใชงานซ้ํา การสืบทอดคณุสมบัติสงเสริมใหเกิดการใชโคดซ้ําชวยลดระยะเวลาในการพฒันาซอฟตแวรความงายในการบํารุงรักษา (Maintainability)

เอ็นแคปซุเลชนั การซอนรายละเอียด และโพลีมอรฟซึ่ม ชวยลดผลกระทบทีจ่ะเกิดขึ้นเมื่อมีการแกไขซอฟตแวร

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 20

ประโยชนของหลกัการเชิงวัตถุ

ประโยชนหลกัการ

ออบเจ็คที่ใชซ้าํไดชวยลดผลกระทบจากการเปลีย่นแปลง

เอ็นแคปซุเลชนั และการซอนรายละเอียด

ทําใหมมุมองในการพัฒนาซอฟตแวรสอดคลองกับธรรมชาติออบเจ็คที่ใชซ้าํได

คลาส ออบเจ็ค โอเปอรชนั และเมสเสจ

OOAD 2/2550 ดร.สุขสถิต มสีถิตย 21

ประโยชนของหลกัการเชิงวัตถุ

ชวยลดความซับซอนในการเขียนโปรแกรมเกี่ยวกับเหตุการณชวยลดผลกระทบจากการเปลีย่นแปลง

โพลมีอรฟซึม่

ลดความซ้ําซอนลดระยะเวลาในการสรางคลาสใหมชวยใหเกดิมาตรฐานและความตรงกันในโปรแกรม

การสืบทอดคุณสมบัติ

ประโยชนหลกัการ

top related