1 of 48

หน่วยการเรียนรู้ที่

4

กระบวนการคิดวิเคราะห์

และออกแบบเชิงวัตถุ

2 of 48

สาระสำคัญ

สาระสำคัญ

แนวคิดเชิงวัตถุจะมุ่งเน้นสิ่งต่าง ๆ ที่อยู่ใกล้เคียง กับโลกแห่งความเป็นจริงมากที่สุดในลักษณะรูปธรรม โดยมองระบบเป็นกลุ่มของวัตถุที่มีปฏิกิริยาต่อกัน ด้วยการนําเอาข้อมูลและฟังก์ชันการทํางานรวมเข้าด้วยกัน เป็นวัตถุทําให้ข้อมูลที่เป็นวัตถุนั้นสามารถอธิบายคุณสมบัติ รวมทั้งฟังก์ชันการทํางานในตัวเอง

3 of 48

สาระการเรียนรู้

สาระการเรียนรู้

จุดประสงค์การเรียนรู้

จุดประสงค์การเรียนรู้

สมรรถนะประจำหน่วย

สมรรถนะประจำหน่วย

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

2. ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ

1. อธิบายการออกแบบเชิงวัตถุได้

2. อธิบายขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุได้

1. แสดงความรู้พื้นฐานเกี่ยวกับการวิเคราะห์และออกแบบเชิงวัตถุ

2. แสดงความรู้ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ

4 of 48

แบบทดสอบก่อนเรียน

แบบทดสอบก่อนเรียน

5 of 48

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

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

การวิเคราะห์และออกแบบระบบเชิงวัตถุเป็นแนวคิดที่พยายามจัดการกับระบบ และทําให้ กระบวนการพัฒนาระบบงานมีระเบียบมากยิ่งขึ้น และสามารถนําโปรแกรมที่เคยเขียนมาก่อนให้สามารถ นํากลับมาใช้งานใหม่ได้อีกครั้ง การวิเคราะห์ระบบเชิงวัตถุเป็นการอธิบายระบบสารสนเทศว่าประกอบด้วย สิ่งต่าง ๆ ที่เรียกว่า วัตถุ (Object) ทั้งที่จับต้องได้และจับต้องไม่ได้ ผลลัพธ์ของการวิเคราะห์ระบบเชิงวัตถุ ก็คือ แบบจําลองเชิงวัตถุ (Object Model) ที่นําเสนอระบบสารสนเทศในลักษณะเชิงวัตถุ จากนั้นระหว่าง ขั้นตอนของการพัฒนาระบบในวงจรการพัฒนาระบบ (SDLC) สามารถแปลงเป็นการออกแบบเชิงวัตถุได้ โดยตรงโดยใช้โปรแกรมเชิงวัตถุในการพัฒนา เช่น Java และ C++ เป็นต้น

6 of 48

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

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

เป็นวิธีการที่มีโครงสร้างในการวิเคราะห์ออกแบบระบบโดยใช้แนวคิดเชิงวัตถุและพัฒนาชุดของ แบบจําลองระบบกราฟิกในช่วงวงจรชีวิตของการพัฒนาซอฟต์แวร์ OOAD ใน SDLC โดยทั่วไปวงจรชีวิต ของซอฟต์แวร์จะแบ่งออกเป็นขั้นตอนตั้งแต่คําอธิบายที่เป็นนามธรรมของปัญหาไปจนถึงการออกแบบ จากนั้นไปจนถึงโคดและการทดสอบและสุดท้ายไปจนถึงการปรับใช้

การวิเคราะห์และออกแบบเชิงวัตถุ (Object - Oriented Analysis and Design : 00AD)

รูป : โครงสร้างในการวิเคราะห์ออกแบบระบบ

Requirement

Design

Implementation

Varification

Maintenance

7 of 48

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

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

ความแตกต่างระหว่างการวิเคราะห์และการออกแบบมักอธิบายว่า “อะไรกับอย่างไร” ในการ วิเคราะห์นักพัฒนาจะทํางานร่วมกับผู้ใช้และผู้เชี่ยวชาญด้านโดเมนเพื่อกําหนดสิ่งที่ระบบควรทํา รายละเอียด การใช้งานควรจะถูกละเลยเป็นส่วนใหญ่หรือทั้งหมดในขั้นตอนนี้ เป้าหมายของขั้นตอนการวิเคราะห์คือการ สร้างแบบจําลองของระบบโดยไม่คํานึงถึงข้อจํากัด เช่น เทคโนโลยีที่เหมาะสม โดยทั่วไปจะทําผ่านกรณีการ ใช้งานและการกําหนดนามธรรมของวัตถุที่สําคัญที่สุดโดยใช้แบบจําลองแนวความคิด ขั้นตอนการออกแบบ จะปรับแต่งรูปแบบการวิเคราะห์และใช้เทคโนโลยีที่จําเป็นและข้อจํากัดในการนําไปใช้งานอื่น ๆ มุ่งเน้น ไปที่การอธิบายวัตถุคุณลักษณะพฤติกรรมและการโต้ตอบ แบบจําลองการออกแบบควรมีรายละเอียดทั้งหมด ที่จําเป็นเพื่อให้โปรแกรมเมอร์สามารถใช้การออกแบบในโคดได้ วิธีนี้ดําเนินการได้ดีที่สุดในวิธีการของ ซอฟต์แวร์แบบวนซ้ำและแบบเพิ่มหน่วย

ขั้นตอนแรกสุดของกระบวนการนี้คือ การวิเคราะห์ (ข้อกําหนด) และการออกแบบ

ดังนั้นกิจกรรมของ OOAD และแบบจําลองที่พัฒนาแล้วจึงไม่เกิดขึ้นเพียงครั้งเดียว เราจะทบทวน และปรับแต่งขั้นตอนเหล่านี้อย่างต่อเนื่อง

8 of 48

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

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

ข้อกําหนดในการส่งออก : กําหนดสิ่งที่ซอฟต์แวร์ต้องทําและปัญหาที่ซอฟต์แวร์พยายามแก้ไข คืออะไร

ขั้นตอนแรกสุดของกระบวนการนี้คือ การวิเคราะห์ (ข้อกําหนด) และการออกแบบ (ต่อ)

ระบุข้อกําหนด : อธิบายข้อกําหนดโดยปกติใช้กรณีการใช้งาน (และสถานการณ์จําลอง) หรือ เรื่องราวของผู้ใช้แบบจําลองแนวคิด : ระบุวัตถุที่สําคัญปรับแต่งและกําหนดความสัมพันธ์และพฤติกรรมของ พวกเขาและวาดในแผนภาพอย่างง่าย เราจะไม่กล่าวถึงสองกิจกรรมแรกเพียงกิจกรรมสุดท้าย สิ่งเหล่านี้ ได้อธิบายรายละเอียดไว้แล้วในวิศวกรรม

9 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ

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

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

10 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

การอธิบายปฏิสัมพันธ์ระหว่างอ็อบเจกต์เหล่านั้นช่วยให้เข้าใจความรับผิดชอบของอ็อบเจกต์ต่าง ๆ รวมถึงพฤติกรรมที่ต้องมีได้ดีขึ้น

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

1) วัตถุหรืออ็อบเจกต์ (Object) คือ ทุกสิ่งที่เราสนใจในเหตุการณ์ใดเหตุการณ์หนึ่งที่เกิดขึ้นทั้งที่ เราสามารถจับต้องได้และจับต้องไม่ได้ เช่น คน สถานที่ เหตุการณ์ หรือรายการต่าง ๆ เป็นต้น วัตถุจะประกอบ ด้วยคุณสมบัติ กิจกรรม การกระทําวิธีการ และมีความสัมพันธ์กันระหว่างวัตถุภายในระบบ

11 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

2) คลาส (Class) คือ กลุ่มของวัตถุที่มีโครงสร้างและพฤติกรรมที่เหมือนกัน หรืออาจเปรียบ ได้ว่า คลาสเปรียบเสมือนรูปแบบที่ใช้เพื่อสร้างวัตถุ เช่น คลาสของรถยนต์ว่ามี 4 ล้อ ใช้น้ำมันเป็นเชื้อเพลิง ฉะนั้นจึงสามารถจัดรถยนต์เป็นอ็อบเจกต์ของคลาสรถยนต์ได้ แต่ไม่สามารถจัดรถจักรยานยนต์ เป็นอ็อบเจกต์ในคลาสรถยนต์ได้เพราะมีคุณสมบัติไม่ตรงกับนิยามที่วางไว้ เป็นต้น คลาสประกอบด้วย ชื่อของคลาส แอตทริบิวต์และโอเปอเรชั่น ในรูป : คลาสนักศึกษาจะแสดงคลาส Student ที่มี 6 แอตทริบิวต์ และ 2 โอเปอเรชั่น

รูป : คลาสนักศึกษา

12 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

3) แอตทริบิวต์ (Attributes) คือ คุณสมบัติที่ใช้บรรยายคลาสหรืออ็อบเจกต์ โดยคุณสมบัติเหล่านี้ อยู่ภายในขอบเขตที่เราสนใจ เช่น สี ขนาดเครื่องยนต์ รุ่น ความเร็ว เป็นต้น

4)การดําเนินการหรือโอเปอเรชั่น (Operation) หรือเมท็อด (Method) ในอ็อบเจกต์แต่ละ อ็อบเจกต์ต้องมีความสามารถในการดําเนินการ หมายถึง การกระทําที่อ็อบเจกต์สามารถกระทําได้ หรือสามารถถูกร้องขอให้กระทําได้ ความสามารถในการดําเนินการบางอย่างถูกแสดง ออกมาให้เห็นเป็น พฤติกรรมได้ต้องเกิดจากการสื่อสารหรือปฏิสัมพันธ์กันระหว่างอ็อบเจกต์ ในทางการเขียนโปรแกรม เมท็อด (Method) เป็นชุดคําสั่งที่เขียนขึ้นมาอย่างเป็นลําดับขั้นตอนเพื่อให้มีการดําเนินการขึ้น มักใช้คําว่า “Operation” และ “Method” ในความหมายเดียวกัน

13 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

5) การสืบทอดคุณสมบัติ (Inheritance) เป็นวิธีการในการสร้างคลาสใหม่จากคลาสเดิมที่มีอยู่ การสืบทอดคุณสมบัติถือเป็นเรื่องที่สําคัญสําหรับเทคโนโลยีเชิงวัตถุ เนื่องจากการสืบทอดคุณสมบัตินี้ทําให้ เกิดข้อดี คือ ทําให้ได้ระบบที่มีโครงสร้างที่เป็นระบบปรับเปลี่ยนได้ง่าย และทําให้ลดเวลา ค่าใช้จ่าย ในการพัฒนาระบบ การสืบทอดคุณสมบัติของคลาสในระบบทําให้เกิดคลาสย่อย (Subclass) คลาสย่อย จะรับคุณสมบัติของคลาสที่ให้กําเนิด ซึ่งเรียกว่า คลาสหลัก (Superclass) เช่น คลาส Employee เป็น คลาสหลักที่มีแอตทริบิวต์ 8 แอตทริบิวต์ที่อธิบายคุณสมบัติของคลาส Employee และมีโอเปอเรชั่น 4 โอเปอเรชั่นจากคลาส Employee สามารถสืบทอดคุณสมบัติของคลาสให้เกิดเป็นคลาสย่อยคือ คลาส Manager ที่มีคุณสมบัติทุกอย่างเหมือนคลาสหลัก แต่มีคุณสมบัติเพิ่มขึ้นมาคือมีแอตทริบิวต์เงิน ประจําตําแหน่ง (Exsalary) และโอเปอเรชันออกคําสั่ง (Order) ซึ่งเป็นลักษณะเฉพาะของคลาส Manager ดังแสดงในรูปต่อไปนี้

14 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

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

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

15 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

6) โพลิมอร์ฟิสซึม (Polymorphism) หมายถึง คลาสต่างกันสามารถตอบสนองต่อการดําเนินการ ชื่อเดียวกัน โดยอาจให้พฤติกรรมหรือวิธีการกระทําต่อการดําเนินการนั้นต่างกันได้ เช่น Draw) คือ ฟังก์ชัน การวาดซึ่งมีความสามารถในการวาดรูปได้หลายลักษณะมิได้เฉพาะเจาะจง เช่น การวาดรูปวงกลมวงรี สามเหลี่ยม สี่เหลี่ยม เป็นต้น ซึ่งหากต้องการให้มีการตอบสนองรูปวาดต่าง ๆ ผู้ใช้สามารถติดต่อได้ด้วยการ ใช้ฟังก์ชัน Draw) เพียงฟังก์ชันเดียว ส่วนจะมีการตอบสนองการวาดในลักษณะใดนั้นขึ้นอยู่กับรายละเอียด ของคําสั่ง ดังนั้นผู้ใช้งานไม่จําเป็นต้องจดจําฟังก์ชันในการวาดมากมายซึ่งแตกต่างจากการเขียนโปรแกรม แบบเดิมที่จําเป็นต้องมีฟังก์ชันการวาดต่าง ๆ ในการวาดรูปเหล่านั้น เช่น ฟังก์ชันวาดรูปสี่เหลี่ยม ฟังก์ชัน วาดรูปสามเหลี่ยม ฟังก์ชันวาดรูปวงกลม เป็นต้น

16 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

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

ระดับในการเข้าถึงแอตทริบิวต์และโอเปอเรชันของคลาส มี 3 ระดับ คือ…

  • ไพรเวต (Private)
  • โพรเท็กเท็ด (Protected)
  • พับลิก (Public)

17 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

7) เอ็นแคปซูเลชัน (Encapsulation) (ต่อ)

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

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

18 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

7) เอ็นแคปซูเลชัน (Encapsulation) (ต่อ)

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

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

19 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

แอ็บสแตรกชันเป็นการมองสิ่งต่าง ๆ แล้วใส่ความคิดรวบยอด (Concept) ให้กับสิ่งที่มองนั้นว่ามี คุณลักษณะที่สําคัญอย่างไร หรือกล่าวว่าแอ็บสแตรกชัน คือ กระบวนการในการสร้างแนวคิดของคลาสจาก กลุ่มของอ็อบเจกต์ที่สนใจ ดังนั้นการมองอ็อบเจกต์หนึ่งชนิดของคนหลายคนจะมีมุมมองที่แตกต่างกันขึ้น อยู่กับ ความสนใจในสิ่งนั้น แอ็บสแตรกชันเป็นส่วนหนึ่งที่ช่วยในการวิเคราะห์ถึงปัญหาของระบบงานที่ ต้องการพัฒนา

ซึ่งมีกระบวนการ 4 ประเภท คือ

Classification Abstraction

Association Abstraction

Aggregation Abstraction

และ Generalization Abstraction

4.2.1 แอ็บสแตรกชัน (Abstraction)

20 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

1) Classification Abstraction คือ กระบวนการในการให้แนวคิดกับอ็อบเจกต์ที่สนใจ เพื่อก่อให้ เกิดแนวคิดของคลาส หัวใจสําคัญของ Classification Abstraction คือ แนวคิดรวบยอดที่ให้แก่อ็อบเจกต์ การให้แนวความคิดคือ การให้ขอบเขตแก่อ็อบเจกต์ว่าต้องมีคุณลักษณะอะไรบ้าง

2) Association Abstraction หมายถึง ความสัมพันธ์ระหว่างคลาสหรืออ็อบเจกต์ที่อยู่ ในระดับเดียวกันคือ คลาสทั้งสองมีความสําคัญเท่าเทียมกัน ไม่มีคลาสใดเป็นองค์ประกอบของคลาสใด เช่น ลูกค้าจัดทําใบสั่งซื้อสินค้า นักศึกษาลงทะเบียนวิชาเรียน สินค้าอยู่ในคลังสินค้า เป็นต้น และกระบวนการ ในการหาความสัมพันธ์ระหว่างคลาสที่สนใจในลักษณะที่คลาสทั้งสองมีความเกี่ยวข้องกันในระดับเดียวกัน เรียกว่า Association Abstraction คลาสที่มีความสัมพันธ์กันถูกเชื่อมความสัมพันธ์ด้วยชื่อความสัมพันธ์ (Association Name) เช่น ลูกค้าจัดทําใบสั่งซื้อ คลาสลูกค้ากับคลาสใบสั่งซื้อถูกเชื่อมความสัมพันธ์ ด้วย Association ที่ชื่อว่าจัดทํา เป็นต้น ดังนั้นการเขียนสัญลักษณ์แทนความสัมพันธ์ระหว่างคลาสจึงควร ระบุชื่อ Association ไว้ด้วย โดยอาจใช้ลูกศรแสดงให้เห็นทิศทางของความสัมพันธ์

4.2.1 แอ็บสแตรกชัน (Abstraction) (ต่อ)

21 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2.1 แอ็บสแตรกชัน (Abstraction) (ต่อ)

2) Association Abstraction (ต่อ)

รูป : Association Abstraction 

22 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

3) Aggregation Abstraction เป็นความสัมพันธ์อีกชนิดหนึ่ง โดยที่ Aggregation หมายถึง ความสัมพันธ์ระหว่างคลาสหรืออ็อบเจกต์แบบต่างระดับกัน คือ คลาสหนึ่งมีความสัมพันธ์แบบเป็นองค์ประกอบ ของอีกคลาสหนึ่ง และกระบวนการในการหาความสัมพันธ์ระหว่างคลาสในลักษณะนี้เรียกว่า Aggregation Abstraction สัญลักษณ์ความสัมพันธ์แบบ Aggregation ใช้เส้นตรงหัวข้าวหลามตัดโปร่งเชื่อมทั้งสองคลาส หันหัวข้าวหลามตัดโปร่งไปทางด้านคลาสที่เป็นคลาสหลัก ตัวอย่าง ห้องเรียน (Class) เกิดจากการรวม กันของนักศึกษา (Student) อย่างน้อยหนึ่งคน อาจารย์ผู้สอน (Lecturer) หนึ่งคน และอุปกรณ์การสอน (Teaching Material) ซึ่งอาจจะมีหรือไม่มีเลยก็ได้

4.2.1 แอ็บสแตรกชัน (Abstraction) (ต่อ)

4) Generalization Abstraction Generalization หมายถึง ความสัมพันธ์แบบต่างระดับระหว่าง คลาสหลัก (Superclass) กับคลาสย่อย (Subclass) โดยที่คลาสย่อยจะสืบทอดคุณลักษณะทั้งแอตทริบิวต์ และการดําเนินการที่สําคัญของคลาสหลักนั้นมาด้วยทําให้คลาสรองมีแอตทริบิวต์และการดําเนินการบางอย่างเหมือนกับคลาสหลัก ในขณะเดียวกัน คลาสย่อยก็จะสามารถสร้างแอตทริบิวต์และการดําเนินการ เพิ่มเติมได้ด้วย

23 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

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

4.2.2 ยูสเคสไดอะแกรม

ส่วนประกอบที่สําคัญของยูสเคสไดอะแกรมมี 3 ส่วน คือ ยูสเคส (Use Case) แอ็กเตอร์ (Actor) เส้นแสดงความสัมพันธ์ (Relationship) ในการสร้างยูสเคสไดอะแกรมสิ่งสําคัญคือการค้นหาว่าระบบ ทําอะไรได้บ้าง โดยไม่สนใจว่าจะทํางานอย่างไรหรือใช้เทคนิคการสร้างอย่างไร

24 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2.2 ยูสเคสไดอะแกรม (ต่อ)

(1) ต้องถูกกระทําโดยแอ็กเตอร์ และแอ็กเตอร์เป็นผู้ติดต่อกับระบบตามยูสเคสที่กําหนด 

(2) ยูสเคส รับข้อมูลจากแอ็กเตอร์และส่งข้อมูลให้แอ็กเตอร์ นั่นคือแอ็กเตอร์กระทํากับยูสเคสโดยการส่งข้อมูลเข้าสู่ระบบตามยูสเคสหรือรอรับค่าที่ระบบส่งกลับให้

(3) ยูสเคสถือว่าเป็นการรวบรวมคุณลักษณะความต้องการในระบบอย่างสมบูรณ์ เปรียบเสมือนเป็นการสรุปความต้องการของลูกค้าออกเป็นข้อ ๆ

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

1)

25 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2.2 ยูสเคสไดอะแกรม (ต่อ)

แอ็กเตอร์ คือ ผู้ที่กระทํากับยูสเคสหรือใช้งานยูสเคส อาจเป็นคนหรือไม่ก็ได้ ซึ่งจะเป็นผู้ที่ ส่งข้อมูลหรือรับข้อมูล หรือแลกเปลี่ยนข้อมูลข่าวสารกับระบบที่กําลังพัฒนา ชื่อของแต่ละแอ็กเตอร์ไม่ใช่ เป็นชื่อเฉพาะเจาะจง จะไม่บอกว่าผู้ที่กระทําชื่ออะไร เป็นใคร แต่จะบอกถึงประเภทของแอ็กเตอร์หรือบทบาท และหน้าที่ต่อระบบ ในการหาแอ็กเตอร์ของระบบจะดูที่ว่าใครเป็นผู้ใช้ระบบในฟังก์ชันที่สําคัญ ใครเป็น ผู้ดูแลระบบ อุปกรณ์ฮาร์ดแวร์ใดบ้างที่กระทําการเชื่อมต่อกับระบบ และระบบข้างนอกใดบ้างที่เชื่อมต่อ รับส่งข้อมูลกับระบบที่เราสร้าง แอ็กเตอร์ในยูเอ็มแอลแทนด้วยรูปคน (Stick Man)

2)

26 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2.2 ยูสเคสไดอะแกรม (ต่อ)

เส้นแสดงความสัมพันธ์ เป็นการเชื่อมโยงระหว่างยูสเคสและแอ็กเตอร์ เป็นเส้นที่แสดง ความสัมพันธ์ระหว่างยูสเคส มี 2 ชนิด คือ 

3)

(1) ความสัมพันธ์แบบขยาย (Extend Relationship) ยูสเคสหนึ่งอาจถูกช่วยเหลือโดยการทํางานจากยูสเคสอื่น เช่น ยูสเคสการใส่รหัสอาจถูกช่วยเหลือโดยยูสเคสคําอธิบายการใส่ รหัสสัญลักษณ์ในยูเอ็มแอลคือลูกศรเส้นประที่ชี้จากยูสเคสแรกไปยังยูสเคสที่ถูกช่วยเหลือ หรือถูกขยาย โดยมีคําว่า “extend” อยู่ในเครื่องหมายสเตริโอไทป์ (stereotype) <<extend>> อยู่ที่กึ่งกลางลูกศร 

(2) ความสัมพันธ์แบบรวม (Include Relationship) ยูสเคสหนึ่งอาจจําเป็นต้องอาศัยการทํางานของยูสเคสอื่น สําหรับยูสเคสที่ถูกเรียกใช้โดยยูสเคสอื่น สัญลักษณ์ในยูเอ็มแอลของความสัมพันธ์ คือลูกศรเส้นประชี้ไปยังยูสเคสที่ถูกเรียกใช้หรือถูกรวมไว้ โดยมีคําว่า “Uses” อยู่ใน เครื่องหมายสเตริโอไทป์ (stereotype) <<uses>> อยู่ที่กึ่งกลางลูกศร

27 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2.2 ยูสเคสไดอะแกรม (ต่อ)

เส้นแสดงความสัมพันธ์ (ต่อ)

3)

รูป : สัญลักษณ์แอ็กเตอร์เจ้าหน้าที่พัสดุ

28 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2.3 การสร้างคลาสไดอะแกรม

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

1) คํานามที่ปรากฏอยู่ในคําบรรยายยูสเคสจะถูกสร้างเป็นคลาส เช่น คลาสรถยนต์ คลาสวิชาเรียนคลาสหนังสือ คลาสสินค้า เป็นต้น 

2) คําวิเศษณ์ที่ปรากฏอยู่ในคําบรรยายยูสเคสจะถูกสร้างเป็นแอตทริบิวต์ เช่น สีรถ ยี่ห้อรถเป็นต้น 

3) คํากริยาที่ปรากฏอยู่ในคําบรรยายยูสเคสจะถูกสร้างเป็นโอเปอเรชั่น เช่น สตาร์ตรถ เบรกลงทะเบียน ยกเลิกรายวิชา เป็นต้น

29 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2.4 สัญลักษณ์

ตามมาตรฐานยูเอ็มแอล คลาสไดอะแกรมประกอบไปด้วยสัญลักษณ์ของคลาสและเส้นแสดง ความสัมพันธ์ สัญลักษณ์คลาสประกอบด้วย 3 ส่วน คือ ชื่อคลาส (Class Name) แอตทริบิวต์และโอเปอเรชั่นความสัมพันธ์ระหว่างคลาส

1) ความสัมพันธ์แบบพึ่งพิง (Dependency) ความสัมพันธ์แบบนี้เกิดขึ้นเมื่อการเปลี่ยนแปลง ที่เกิดขึ้นกับคลาสที่ถูกพึ่งพิง (Independent Class) ส่งผลต่อคลาสที่พึ่งพิง (Dependent Class) คลาสดังกล่าว การจําลองความสัมพันธ์แบบนี้สามารถทําได้โดยวาดเส้นตรงแบบประที่มีหัวลูกศรเป็นเส้นโปร่ง ชี้จากคลาสรองที่พึ่งพิงไปยังคลาสหลักที่ถูกพึ่งพิง

2) ความสัมพันธ์แบบถ่ายทอด (Generalization) คือ ความสัมพันธ์ระหว่างคลาสหลัก และคลาสรองนั่นเอง การจําลองความสัมพันธ์แบบนี้สามารถทําได้โดยวาดเส้นตรงทึบที่มีหัวลูกศรเป็น สี่เหลี่ยมโปร่ง ชี้จากคลาสรองไปยังคลาสหลัก

3) ความสัมพันธ์แบบเชื่อมโยง (Association) เป็นความสัมพันธ์อีกชนิดหนึ่งระหว่างคลาส

ซึ่งความสัมพันธ์เหล่านี้สามารถแบ่งเป็นได้ 3 รูปแบบ ดังนี้

30 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2.5 สเตตชาร์ตไดอะแกรม

สเตตชาร์ตไดอะแกรมบอกถึงพฤติกรรมของคลาสต่าง ๆ ในระบบว่ามีสถานะอะไรบ้าง จะเปลี่ยน สถานะเมื่อเกิดเหตุการณ์อะไร สเตตชาร์ตไดอะแกรมของแต่ละคลาสประกอบไปด้วยสถานะที่สามารถ เกิดขึ้นได้ เช่น คนอยู่ในสถานะกําลังเดิน รถอยู่ในสถานะกําลังวิ่ง เป็นต้น เมื่อเวลาผ่านไปหรือมีเหตุการณ์ บางอย่างเกิดขึ้นย่อมทําให้เกิดการเปลี่ยนสถานะหรือเปลี่ยนพฤติกรรมได้ สเตตชาร์ตไดอะแกรมในยูเอ็มแอล มีจุดเริ่มต้นสถานะและจุดสิ้นสุดสถานะ โดยจุดเริ่มต้นมีสัญลักษณ์เป็นรูปวงกลมทึบและจุดสิ้นสุดสถานะ เป็นรูปวงกลมโปร่งล้อมรอบวงกลมทึบข้างใน ส่วนสถานะในไดอะแกรมถูกแสดงเป็นรูปสี่เหลี่ยมมุมมน รูปร่างเหมือนแคปซูล และเชื่อมกันด้วยเส้นลูกศรชี้จากสถานะหนึ่งไปยังอีกสถานะหนึ่ง สามารถเขียน คําอธิบายเหตุการณ์ที่ทําให้เปลี่ยนสถานะตรงเส้นลูกศรได้

31 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2.6 ซีเควนซ์ไดอะแกรม

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

32 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2.7 คอลลาบอเรชั่นไดอะแกรม

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

33 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2.7 คอลลาบอเรชั่นไดอะแกรม (ต่อ)

คอลลาบอเรชันไดอะแกรมใช้ในการออกแบบกระบวนการทํางานที่แสดงถึง ลําดับของการโต้ตอบกันระหว่างอ็อบเจกต์ นั้นคือ แสดงถึงกลุ่มของอ็อบเจกต์ที่ทํางานร่วมกันสอดคล้องกับ ความหมาย ของชื่อไดอะแกรม ลูกศรที่ชี้จะชี้ไปในทิศทางเดียวไม่มีการชี้ย้อนกลับในเส้นเดียวกัน ตัวเลข ที่กํากับข้างหน้า เป็นการบอกลําดับขั้นการทํางานว่าใครส่งก่อนหรือหลังและยังบอกว่ากระบวนการใดที่มี การจัดลําดับเป็นอนุกรม คือต้องทําขั้นตอนนี้เสร็จก่อนจึงจะสามารถทําขั้นต่อไปได้ ตัวเลขที่กํากับข้างหน้า ถูกแบ่งย่อยเป็นทศนิยม แต่ถ้ากระบวนการใดสามารถทําพร้อมกันได้ก็ไม่ต้องแยกย่อยเป็นทศนิยมเพิ่มขึ้น อีกให้อยู่ในระดับเดียวกันได้ ในส่วนของการวนซ้ําแสดงด้วยเครื่องหมาย *] และในส่วนของเงื่อนไขแสดง ภายในเครื่องหมายวงเล็บก้ามปู

34 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2.8 แอ็กทิวิตีไดอะแกรม

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

35 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2.9 คอมโพเนนต์ไดอะแกรม

แสดงความสัมพันธ์ที่เชื่อมต่อกันระหว่างซอฟต์แวร์คอมโพเนนต์ในระบบว่าประกอบด้วยไฟล์อะไร บ้าง ซึ่งอาจเป็นไฟล์ซอร์สโคด (Source Code) ไฟล์ไบนารี (Binary Code) และไฟล์เอ็กซิคิวต์ (Executable Code) การตั้งชื่อของคอมโพเนนต์ในคอมโพเนนต์ไดอะแกรมจะใช้ชื่อของคลาสจากคลาสไดอะแกรมไม่ใช่ ชื่อของอินสแตนซ์ (Instance) สัญลักษณ์ของคอมโพเนนต์ในคอมโพเนนต์ไดอะแกรมถูกแสดงเป็นสี่เหลี่ยม ประกอบด้วยสี่เหลี่ยมเล็ก 2 รูปติดอยู่ที่ขอบด้านซ้าย และอาจเชื่อมต่อกันด้วยเส้นแสดงความสัมพันธ์

36 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2.10 ดีพลอยเมนต์ไดอะแกรม

แสดงการเชื่อมต่อของอุปกรณ์ฮาร์ดแวร์ในระบบและมักใช้ร่วมกับคอมโพเนนต์ไดอะแกรม โดยข้างในฮาร์ดแวร์อาจประกอบไปด้วยซอฟต์แวร์คอมโพเนนต์ ดีพลอยเมนต์ไดอะแกรมแสดงอยู่ใน รูปอินสแตนซ์ และแสดงในช่วงเวลาของการรันหรือระหว่างการเอ็กซิคิวต์ ดังนั้นไฟล์คอมโพเนนต์ของระบบ ที่ไม่ได้ใช้สําหรับรันจะไม่ปรากฏในไดอะแกรมนี้ แต่มีในคอมโพเนนต์ของไฟล์ที่ใช้ทํางานจริงเท่านั้น

สัญลักษณ์ของดีพลอยเมนต์ไดอะแกรมเป็นการเชื่อมกันระหว่างโหนดซึ่งคือฮาร์ดแวร์ก็จะบรรจุ อินสแตนซ์ของซอฟต์แวร์คอมโพเนนต์ที่ถูกแสดงด้วยสัญลักษณ์ของคอมโพเนนต์ไว้ข้างใน แต่ละคอมโพเนนต์ เชื่อมต่อกันโดยใช้ความสัมพันธ์แบบพึ่งพิง โดยชี้จากคอมโพเนนต์ที่ขอใช้บริการไปยังคอมโพเนนต์อื่น เหมือนกับคอมโพเนนต์ไดอะแกรม โดยบนลูกศรอาจมีคํากํากับอยู่ภายใต้เครื่องหมายสเตอริโอไทป์เพื่อสร้าง ความกระจ่างยิ่งขึ้น หากจําเป็นสัญลักษณ์ของโหนดถูกแสดงด้วยรูปลูกบาศก์ 3 มิติ ภายในบรรจุชื่อที่แสดงถึงประเภทของโหนด

37 of 48

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2 ขั้นตอนการวิเคราะห์และออกแบบเชิงวัตถุ (ต่อ)

4.2.10 ดีพลอยเมนต์ไดอะแกรม (ต่อ)

ถ้าเป็นโหนดอินสแตนซ์จะมีทั้งชื่อจริงและประเภทของโหนดและต้องขีดเส้นใต้ที่ชื่อ ของโหนดเพื่อแสดงว่าเป็นอินสแตนซ์หรืออ็อบเจกต์ ชื่อของโหนดเป็นชื่อเฉพาะ ส่วนประเภทของโหนด เป็นการบ่งบอกว่าโหนดนั้นคืออุปกรณ์ชนิดใด โหนดอาจถูกเชื่อมต่อกับโหนดอื่นได้ ซึ่งแสดงว่าอุปกรณ์ แต่ละตัวมีการติดต่อสื่อสารกันอย่างไรผ่านระบบเครือข่าย อาจมีคํากํากับภายใต้สัญลักษณ์สเตอริโอไทป์ เพื่อบอกว่าทั้ง 2 โหนดนี้เชื่อมต่อกัน ด้วยการสื่อสารวิธีใด ซึ่งก็คือชนิดของช่องสัญญาณของเครือข่าย หรือโพรโตคอลเช่น KTCP/IP>> เป็นต้น

38 of 48

สรุปหน่วยการเรียนรู้ที่ 4

สรุปหน่วยการเรียนรู้ที่ 4

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

เป็นวิธีการที่มีโครงสร้างในการวิเคราะห์ออกแบบระบบโดยใช้แนวคิดเชิงวัตถุและพัฒนาชุดของ แบบจําลองระบบกราฟิกในช่วงวงจรชีวิตของการพัฒนาซอฟต์แวร์ 0OAD ใน SDLC โดยทั่วไปวงจรชีวิต ของซอฟต์แวร์จะแบ่งออกเป็นขั้นตอนตั้งแต่คําอธิบายที่เป็นนามธรรมของปัญหาไปจนถึงการออกแบบ จากนั้นไปจนถึงโคดและการทดสอบและสุดท้ายไปจนถึงการปรับใช้

39 of 48

สรุปหน่วยการเรียนรู้ที่ 4 (ต่อ)

สรุปหน่วยการเรียนรู้ที่ 4 (ต่อ)

คลาส (Class) คือ กลุ่มของวัตถุที่มีโครงสร้างและพฤติกรรมที่เหมือนกัน หรืออาจเปรียบ ได้ว่า คลาสเปรียบเสมือนรูปแบบที่ใช้เพื่อสร้างวัตถุ

2)

แอตทริบิวต์ (Attributes) คือ คุณสมบัติที่ใช้บรรยายคลาสหรืออ็อบเจกต์ โดยคุณสมบัติ เหล่านี้อยู่ภายในขอบเขตที่เราสนใจ เช่น สี ขนาดเครื่องยนต์ รุ่น ความเร็ว เป็นต้น

3)

  • ขั้นตอนการออกแบบเชิงวัตถุ 

ขั้นตอนการวิเคราะห์ระบุวัตถุความสัมพันธ์และพฤติกรรมโดยใช้แบบจําลองความคิด

วัตถุหรืออ็อบเจกต์ (Object) คือ ทุกสิ่งที่เราสนใจในเหตุการณ์ใดเหตุการณ์หนึ่ง ที่เกิดขึ้นทั้งที่เราสามารถจับต้องได้และจับต้องไม่ได้ เช่น คน สถานที่ เหตุการณ์ หรือรายการต่าง ๆ เป็นต้น วัตถุจะประกอบด้วยคุณสมบัติ กิจกรรม การกระทําวิธีการ และมีความสัมพันธ์กันระหว่าง วัตถุภายในระบบ

1)

40 of 48

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

4)

การสืบทอดคุณสมบัติ (Inheritance) เป็นวิธีการในการสร้างคลาสใหม่จากคลาสเดิมที่มีอยู่ การสืบทอดคุณสมบัติถือเป็นเรื่องที่สําคัญสําหรับเทคโนโลยีเชิงวัตถุ เนื่องจากการสืบทอดคุณสมบัตินี้ ทําให้เกิดข้อดีคือ ทําให้ได้ระบบที่มีโครงสร้างที่เป็นระบบ ปรับเปลี่ยนได้ง่าย และทําให้ลดเวลา ค่าใช้จ่ายในการพัฒนาระบบ

5)

โพลิมอร์ฟิสซึม (Polymorphism) หมายถึง คลาสต่างกันสามารถตอบสนองต่อการ ดําเนินการชื่อเดียวกัน โดยอาจให้พฤติกรรมหรือวิธีการกระทําต่อการดําเนินการนั้นต่างกันได้

6)

สรุปหน่วยการเรียนรู้ที่ 4 (ต่อ)

สรุปหน่วยการเรียนรู้ที่ 4 (ต่อ)

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

7)

41 of 48

สรุปหน่วยการเรียนรู้ที่ 4 (ต่อ)

สรุปหน่วยการเรียนรู้ที่ 4 (ต่อ)

Association Abstraction Association หมายถึง ความสัมพันธ์ระหว่างคลาส หรืออ อบเจกต์ที่อยู่ในระดับเดียวกันคือ คลาสทั้งสองมีความสําคัญเท่าเทียมกัน ไม่มีคลาสใดเป็นองค์ประกอบ ของคลาสใด

2)

  • แอ็บสแตรกชัน (Abstraction)

คือ กระบวนการในการสร้างแนวคิดของคลาสจากกลุ่มของอ็อบเจกต์ที่สนใจ ซึ่งมีกระบวนการ 4 ประเภท คือ

Classification Abstraction คือ กระบวนการในการให้แนวคิดกับอ็อบเจกต์ที่สนใจ เพื่อก่อให้เกิดแนวคิดของคลาส หัวใจสําคัญของ Classification Abstraction คือ แนวคิดรวบยอด ที่ให้แก่อ็อบเจกต์ การให้แนวความคิดคือ การให้ขอบเขต แก่อ็อบเจกต์ว่าต้องมีคุณลักษณะอะไรบ้าง

1)

แอตทริบิวต์ (Attributes) คือ คุณสมบัติที่ใช้บรรยายคลาสหรืออ็อบเจกต์ โดยคุณสมบัติ เหล่านี้อยู่ภายในขอบเขตที่เราสนใจ เช่น สี ขนาดเครื่องยนต์ รุ่น ความเร็ว เป็นต้น

3)

Generalization Abstraction Generalization หมายถึง ความสัมพันธ์แบบต่างระดับ ระหว่างคลาสหลัก (Superclass) กับคลาส ย่อย(Subclass) โดยที่คลาสย่อยจะสืบทอดคุณลักษณะ ทั้งแอตทริบิวต์และการดําเนินการที่สําคัญของคลาส

4)

42 of 48

สรุปหน่วยการเรียนรู้ที่ 4 (ต่อ)

สรุปหน่วยการเรียนรู้ที่ 4 (ต่อ)

  • ยูสเคสไดอะแกรม

ส่วนประกอบที่สําคัญของยูสเคสไดอะแกรมมี 3 ส่วน คือ ยูสเคส (Use Case) แอ็กเตอร์ (Actor) เส้นแสดงความสัมพันธ์ (Relationship) 

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

  • การสร้างคลาสไดอะแกรม

43 of 48

สรุปหน่วยการเรียนรู้ที่ 4 (ต่อ)

สรุปหน่วยการเรียนรู้ที่ 4 (ต่อ)

  • สัญลักษณ์

ตามมาตรฐานยูเอ็มแอล คลาสไดอะแกรมประกอบไปด้วยสัญลักษณ์ของคลาสและเส้นแสดงความ สัมพันธ์ สัญลักษณ์คลาสประกอบด้วย 3 ส่วน คือ ชื่อคลาส (Class Name) แอตทริบิวต์และโอเปอเรชั่น ความสัมพันธ์ระหว่างคลาส ซึ่งความสัมพันธ์เหล่านี้สามารถแบ่งเป็นได้ 3 รูปแบบ ดังนี้

ความสัมพันธ์แบบถ่ายทอด (Generalization) 

2)

ความสัมพันธ์แบบพึ่งพิง (Dependency) 

1)

ความสัมพันธ์แบบเชื่อมโยง (Association) 

3)

44 of 48

สรุปหน่วยการเรียนรู้ที่ 4 (ต่อ)

สรุปหน่วยการเรียนรู้ที่ 4 (ต่อ)

  • ซีเควนซ์ไดอะแกรม

ซีเควนซ์ไดอะแกรมบ่งบอกถึงในยูสเคสนั้นวัตถุแต่ละตัวจะติดต่อสื่อสารกันอย่างไร มีขั้นตอนการทํางาน 

มีหน้าที่เดียวกันกับซีเควนซ์ไดอะแกรมแต่ไม่แสดงถึงแกนเวลาอย่างชัดเจนยกเว้นการโต้ตอบกัน ระหว่าง อ็อบเจกต์สัญลักษณ์ที่ใช้ประกอบด้วย วัตถุหรือคลาสแทนด้วยรูปสี่เหลี่ยม

  • คอลลาบอเรชั่นไดอะแกรม

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

  • แอ็กทิวิตีไดอะแกรม

45 of 48

สรุปหน่วยการเรียนรู้ที่ 4 (ต่อ)

สรุปหน่วยการเรียนรู้ที่ 4 (ต่อ)

  • คอมโพเนนต์ไดอะแกรม

แสดงความสัมพันธ์ที่เชื่อมต่อกันระหว่างซอฟต์แวร์คอมโพเนนต์ในระบบว่าประกอบด้วยไฟล์ อะไรบ้าง ซึ่งอาจเป็นไฟล์ซอร์สโคด (Source Code) ไฟล์ไบนารี (Binary Code) และไฟล์เอ็กซิคิวต์ (Executable Code) 

แสดงการเชื่อมต่อของอุปกรณ์ฮาร์ดแวร์ในระบบและมักใช้ร่วมกับคอมโพเนนต์ไดอะแกรม โดยข้างในฮาร์ดแวร์อาจประกอบไปด้วยซอฟต์แวร์คอมโพเนนต์

  • ดีพลอยเมนต์ไดอะแกรม

46 of 48

นยามศัพท์

นิยามศัพท์

  • Object : วัตถุหรืออ็อบเจกต์
  • Class : คลาสกลุ่มของวัตถุที่มีโครงสร้างและพฤติกรรมที่เหมือนกัน คลาสเปรียบเสมือนรูปแบบที่ใช้เพื่อสร้างวัตถุ
  • Attributes : แอตทริบิวต์ คือ คุณสมบัติที่ใช้บรรยายคลาสหรืออ็อบเจกต์
  • Operation : การดําเนินการหรือโอเปอเรชั่น
  • Inheritance : การสืบทอดคุณสมบัติเป็นวิธีการในการสร้างคลาสใหม่ จากคลาสเดิมที่มีอยู่
  • Polymorphism : โพลิ้มอร์ฟิสซึม หมายถึงคลาสต่างกันสามารถตอบสนอง ต่อการดําเนินการชื่อเดียวกัน โดยอาจให้พฤติกรรมหรือ วิธีการกระทําต่อการดําเนินการนั้นต่างกันได้
  • Encapsulation : เอ็นแคปซูเลชัน หมายถึง กระบวนการซ่อนรายละเอียดของ คุณลักษณะต่าง ๆ และรายละเอียดการทํางานของคลาส เอาไว้ภายใน
  • Dependency : ความสัมพันธ์แบบพึ่งพิง
  • Generalization : ความสัมพันธ์แบบถ่ายทอด 
  • Association : ความสัมพันธ์แบบเชื่อมโยง

47 of 48

แบบทดสอบหลังเรียน

แบบทดสอบหลังเรียน

48 of 48

หน่วยการเรียนรู้ที่

4

ขอบคุณครับ/ค่ะ

สิ้นสุดเนื้อหา

สิ้นสุดเนื้อหา