The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

เอกสารประกอบการสอน 30901-2002 การคิดวิเคราะห์และการออกแบบเชิงวัตถุ

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by sathitsanom, 2023-09-12 21:31:47

เอกสารประกอบการสอน 30901-2002 การคิดวิเคราะห์และการออกแบบเชิงวัตถุ

เอกสารประกอบการสอน 30901-2002 การคิดวิเคราะห์และการออกแบบเชิงวัตถุ

วิชา การคิดวิเคราะห์ ชั้นประกาศนียบัตร วิชาชีพชั้นสูง หลักสูตรประกาศนียบัตรวิชาชีพชั้นสูง (ปวส.) พุทธศักราช 2563 จัดท าโดย ต าแหน่ง ครูผู้ช่วย วิทยาลัยเทคนิควังน ้าเย ็ น อ าเภอวังน ้าเย็น จงัหวัดสระแก้ว ส านักงานคณะกรรมการการอาชีวศึกษา กระทรวงศึกษาธิการ เอกสารประกอบการสอน (30901-2002) แผนกเทคโนโลยีสารสนเทศ และการออกแบบเชิงวัตถุ


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


สำรบัญ เรื่อง หน้า หลักสูตร จุดประสงค์รายวิชา สมรรถนะรายวิชา ค าอธิบายรายวิชา 1 หน่วยที่1 กำรพัฒนำระบบ 2 ความหมายของการพัฒนาระบบสารสนเทศ 2 ความหมายของวงจรการพัฒนาระบบ (System Development Life Cycle) 2 วงจรการพัฒนาระบบ (System Development Life Cycle) 3 หน่วยที่ 2 หลักกำรและแนวคิดเชิงวัตถุ 11 ความหมายของและหลักการของวัตถุ 11 แนวคิดเชิงวัตถุ (Object Oriented Concept) 12 วัตถุคืออะไร 13 หน่วยที่ 3 หลักกำรออกแบบ 17 ยูเอ็มแอล (Unified Modeling Language: UML) 17 องค์ประกอบของ UML 17 ประเภทไดอะแกรมของ UML 18 หน่วยที่ 4 กระบวนกำรคิดวิเครำะห์และออกแบบเชิงวัตถุ 29 การวิเคราะห์และออกแบบเชิงวัตถุ (OOAD) 29 ขั้นตอนแรกสุดของกระบวนการนี้คือการวิเคราะห์ (ข้อก าหนด) และการออกแบบ 29 การออกแบบเชิงวัตถุ 30 ส่วนประกอบส าคัญในยูสเคสไดอะแกรม 34 การสร้างคลาสไดอะแกรม 35 หน่วยที่ 5 โมเดลที่ใช้ออกแบบเชิงวัตถุ 39 ส่วนขยายการสร้างแบบจ าลองธุรกิจ 39 การด าเนินการออกแบบ 41 การใช้เครื่องมือสร้างแบบจ าลอง 51 หน่วยที่ 6 กำรวิเครำะห์และออกแบบโปรแกรมทำงธุรกิจ 52 หลักการพัฒนาเชิงวัตถุ 52 การวาด Use Case Diagram ส าหรับระบบการขายปลีกสินค้า 53 การเขียน Use Case Description ระบบการขายปลีกสินค้า 53 กรณีศึกษา : ระบบการจัดการคลินิกทันตกรรม 54 กรณีศึกษา : ระบบการยืมหนังสือในห้องสมุด 56 กรณีศึกษา : ระบบการจองห้องพักออนไลน์ (Reservation online) 58


หลักสูตรรำยวิชำ ชื่อวิชำ กำรคิดวิเครำะห์และกำรออกแบบเชิงวัตถุ รหัสวิชำ 30901-2002 ทฤษฎี2 ปฏิบัติ2 หน่วยกิต 3 หลักสูตรประกำศนียบัตรวิชำชีพชั้นสูง สำขำวิชำเทคโนโลยีสำรสนเทศ จุดประสงค์รำยวิชำ 1. เพื่อให้เข้าใจหลักการวิเคราะห์และออกแบบเชิงวัตถุ หลักการของ UML Modeling องค์ประกอบ ของ UMLสามารถปฏิบัติงานสารบรรณ 2. เพื่อมีทักษะในการวิเคราะห์และออกแบบเชิงวัตถุ ออกแบบโปรแกรมทางธุรกิจ 3. เพื่อมีเจตคติและกิจนิสัยที่ดีในการปฏิบัติงานด้วยความรับผิดชอบ ซื่อสัตย์ ละเอียด รอบคอบ สมรรถนะรำยวิชำ 1. แสดงความรู้เกี่ยวกับหลักการวิเคราะห์และออกแบบเชิงวัตถุ 2. วิเคราะห์และออกแบบเชิงวัตถุตามหลักการ 3. ออกแบบโปรแกรมทางธุรกิจโดยใช้หลักการของ UML ค ำอธิบำยรำยวิชำ ศึกษาและปฏิบัติเกี่ยวกับขั้นตอนการพัฒนาระบบสารสนเทศ หลักการพื้นฐานและแนวคิดเชิงวัตถุ กระบวนการวิเคราะห์และออกแบบเชิงวัตถุ โมเดลที่ใช้ออกแบบเชิงวัตถุ หลักการของ UML Modeling องค์ประกอบของ UMLและการวิเคราะห์และออกแบบโปรแกรมทางธุรกิจ 1


หน่วยที่ 1 กำรพัฒนำระบบสำรสนเทศ 1.1 ควำมหมำยของกำรพัฒนำระบบสำรสนเทศ กำรพัฒนำระบบสำรสนเทศ หมายถึง การพัฒนาระบบสารสนเทศที่กระบวนการ ใช้เทคนิคการ ศึกษา การวิเคราะห์ และการออกแบบระบบสารสนเทศขององค์กรให้สามารถด าเนินงานอย่างมีประสิทธิภาพ โดยบางครั้งจะเรียกวิธีการด าเนินงานในลักษณะนี้ว่า “การวิเคราะห์และออกแบบระบบ (System Analysis and Design)” เนื่องจากผู้พัฒนาระบบต้องศึกษาและวิเคราะห์กระบวนการ การไหลเวียนของข้อมูล ตลอดจน ความสัมพันธ์ระหว่างปัจจัยน าเข้า ทรัพยากรด าเนินงาน และผลลัพธ์ เพื่อท าการออกแบบระบบ สารสนเทศ ใหม่ แต่ในความเป็นจริงการพัฒนาระบบมิได้สิ้นสุดที่การออกแบบ ผู้พัฒนาระบบจะต้องดูแล การจัดหา การ ติดตั้ง การด าเนินงาน และการประเมินระบบว่าสามารถด าเนินงานได้ตามต้องการหรือไม่ ตลอดจนก าหนด แนวทางในการพัฒนาระบบในอนาคต อย่างไรก็ดี จะใช้ทั้ง “การพัฒนาระบบ” และ “การวิเคราะห์และ ออกแบบระบบ” ในความหมายที่ทดแทนกัน การพัฒนาระบบสารสนเทศเป็นงาน ที่ละเอียดอ่อนเกี่ยวข้องกับ บุคลากรและส่วนประกอบขององค์กรในหลายด้าน จึงต้องมีแนวทางและ แผนด าเนินงานที่เป็นระบบ เพื่อที่จะให้ระบบที่ถูกพัฒนาขึ้นมีความสมบูรณ์ ตรงตามความต้องการและสร้าง ความพอใจแก่ผู้ใช้ แต่ถ้า ระบบที่พัฒนาขึ้นมีปัญหาหรือขาดความเหมาะสมก็อาจก่อให้เกิดผลเสียทั้งโดยตรง และทางอ้อมแก่ธุรกิจ โดยเฉพาะในด้านค่าใช้จ่ายที่สูงและความเชื่อมั่นที่สูญเสียไป รูป : วงจรการพัฒนาระบบสารสนเทศ 1.2 ควำมหมำยของวงจรกำรพัฒนำระบบ (System Development Life Cycle) เพื่อให้นักวิเคราะห์และทีมงานพัฒนาระบบท างานได้อย่างคล่องตัวมีล าดับขั้น และเป้าหมาย ที่ แน่นอน นักวิเคราะห์ระบบควรจะทราบถึงว่า ระบบสารสนเทศนั้นพัฒนาขึ้นมาอย่างไร มีขั้นตอนอย่างไร นั่นก็ คือนักวิเคราะห์ต้องรู้ว่าวงจรการพัฒนาระบบคืออะไร ดังนี้ 2


วงจรกำรพัฒนำระบบ (Systems Development Life Cycle) เป็นวงจรที่แสดงถึงกิจกรรม ต่าง ๆ ในแต่ละขั้นตอน ตั้งแต่ต้นจนเสร็จเป็นระบบงานที่ใช้ได้ ซึ่งนักวิเคราะห์ระบบต้องท าความเข้าใจว่า ในแต่ละ ขั้นตอนท าอะไร และท าอย่างไร 1. เข้าใจปัญหา (Problem Recognition) 2. ศึกษาความเป็นไปได้ (Feasibility Study) 3. วิเคราะห์ (Analysis) 4. ออกแบบ (Design) 5. พัฒนา (Development) 6. ทดสอบและติดตั้ง (Implementation and Testing) 7. บ ารุงรักษา (Maintenance) 1.3 วงจรกำรพัฒนำระบบ (System Development Life Cycle) 1. เข้ำใจปัญหำ (Problem Recognition) เป็นกิจกรรมแรกของการพัฒนาระบบงานซึ่งนักวิเคราะห์ระบบต้องสนใจปัญหา โอกาสและ เป้าหมาย ที่ชัดเจนของงานต่าง ๆ เมื่อพบปัญหาและโอกาสที่สามารถน าระบบคอมพิวเตอร์เข้ามาแก้ไขได้นั้น จึงเป็นจุด เริ่มในการพัฒนาระบบงาน นักวิเคราะห์ระบบจะต้องพยายามหาโอกาสในการปรับปรุง โดยใช้ ระบบ คอมพิวเตอร์เข้าไปช่วยในงานด้านต่าง ๆ เริ่มจากการตรวจสอบเบื้องต้น (Preliminary Investigation) โดย นักวิเคราะห์ระบบจะตรวจสอบจากผู้ใช้ระบบที่ประสบปัญหาจากการพัฒนาระบบงานที่ใช้ในปัจจุบัน เช่น ต้องการแข่งขันกับคู่ต่อสู้ในการลดต้นทุนการผลิตสินค้า โดยการลดจ านวนการสต๊อกวัตถุดิบ นักวิเคราะห์ ระบบจะต้องพิจารณาในการน าระบบคอมพิวเตอร์เข้าไปใช้ในการเก็บข้อมูลสต๊อกวัตถุดิบ และการประมวลผล การสั่งวัตถุดิบ เป็นต้น 1.1 นักวิเคราะห์และออกแบบระบบ ต้อง ศึกษาระบบโดยละเอียด เพื่อให้เข้าใจถึงปัญหาที่เกิด ขึ้นในองค์กร ตัวอย่างปัญหา เช่น บริษัท A เปิดสาขา เพิ่มมากขึ้น ระบบเดิมไม่ได้ครอบคลุมถึงการขยายตัว ของบริษัท บริษัท B เก็บข้อมูลผู้ขายได้เพียง 1,000 ราย แต่ปัจจุบันระบบนี้มีข้อมูลผู้ขาย 900 ราย และ ใน อนาคตจะมีเกิน 1,000 ราย 1.2 นักวิเคราะห์และออกแบบระบบ ต้อง มองเป้าหมายให้ชัดเจน เพื่อทราบทิศทางของการ พัฒนาระบบงานให้เป็นไปตามเป้าหมายที่วางไว้ เช่น ต้องการแข่งขันกับคู่แข่งในเรื่องการลดต้นทุน ในการ ผลิตสินค้า โดยการลดจ านวนการสต๊อก วัตถุดิบ ดังนั้น นักวิเคราะห์และออกแบบระบบ จะเห็นถึงปัญหา โอกาส และเป้าหมายในการน า ระบบคอมพิวเตอร์เข้าไปใช้ในการเก็บข้อมูลสต๊อก วัตถุดิบ และประมวลผล การสั่งวัตถุดิบ เป็นต้น ขั้นตอนที่1 : เข้ำใจปัญหำ หน้ำที่ : ตระหนักว่ามีปัญหาในระบบ ผลลัพธ์ : อนุมัติการศึกษาความเป็นไปได้ 3


เครื่องมือ : ไม่มี บุคลำกรและหน้ำที่รับผิดชอบ : ตระหนักว่ามีปัญหาในระบบ 2. ศึกษำควำมเป็นไปได้ (Feasibility Study) เมื่อก าหนดปัญหาที่เกิดขึ้นกับการพัฒนา ระบบงานได้และตัดสินใจจะสร้างและพัฒนาระบบ งาน ขึ้นมาใหม่นั้น นักวิเคราะห์ระบบจะท าการศึกษา ว่ามีความเป็นไปได้หรือไม่ที่จะปรับเปลี่ยนระบบ โดยใช้ ระยะเวลาในการพัฒนาระบบน้อยที่สุด และ ประหยัดค่าใช้จ่ายมากที่สุด แต่ให้ได้ผลลัพธ์เป็นที่ น่าพอใจและมี ประสิทธิภาพมากที่สุด 1. ความเป็นไปได้ด้านเทคนิค (Technically Feasibility) 2. ความเป็นไปได้ด้านการปฏิบัติ (Operational Feasibility) 3. ความเป็นไปได้ด้านการลงทุน (Economic Feasibility) (1) ควำมเป็นไปได้ด้ำนเทคนิค (Technically Feasibility) การศึกษาความเป็นไปได้ด้านเทคนิค หรือด้าน เทคโนโลยี จะท าการตรวจสอบว่า ภายใน องค์กรมีเครื่อง คอมพิวเตอร์ ซอฟต์แวร์ อุปกรณ์ ต่อพ่วง รวมทั้งเครื่องมืออื่น ๆ ที่ เกี่ยวข้องหรือไม่ จ านวนเท่าใด เพียงพอหรือไม่ และสมรรถนะของ เครื่องคอมพิวเตอร์อยู่ในระดับใด เป็นต้น (2) ควำมเป็นไปได้ด้ำนกำรปฏิบัติ (Operational Feasibility) การศึกษาความเป็นไปได้ทางด้าน การปฏิบัติ นักวิเคราะห์ระบบจะต้องพิจารณาดูว่าแนวทางแต่ละแนวทางที่จะ ใช้แก้ไขปัญหานั้น จะต้องสนอง ความต้องการของผู้ใช้ระบบหรือไม่ เพียงใด จะก่อให้เกิดผลกระทบต่อวิธีการท างานของผู้ใช้ระบบ หรือไม่ อย่างไร และมีความพึงพอใจกับระบบใหม่ในระดับใด นอกจากนี้ จะต้องพิจารณาว่าบุคลากรที่จะพัฒนาและ ติดตั้งระบบ มีความรู้ความสามารถหรือไม่ และมีจ านวนเพียงพอหรือไม่ ถ้าไม่ เพียงพอจะหาได้หรือไม่ และ ระบบใหม่สามารถเข้ากันกับการ ท างานของระบบที่มีอยู่ในปัจจุบันหรือไม่ รูป : ศึกษำควำมเป็นไปได ้ 4


การศึกษาความเป็นไปได้ด้านการ ลงทุน จะเป็นการตรวจสอบเกี่ยวกับ ค่าใช้จ่ายของโครงการรวมทั้งเวลาที่จะต้องใช้ในการพัฒนาระบบ โดย พิจารณาว่าเป้าหมายของการท าโครงการที่ได้ก าหนดไว้ สามารถท าให้ ส าเร็จได้ภายในวงเงินที่ก าหนดไว้ หรือไม่ และหากมีการด าเนินงาน โครงการในขั้นต่อไปทั้งหมดจนจบ จะคุ้มค่ากับการลงทุนหรือไม่ จะได้รับ ก าไรหรือผลประโยชน์จากระบบใหม่คุ้มค่ากับการลงทุนหรือไม่ ที่จะมี การเปลี่ยนแปลงระบบ ซึ่งผู้บริหารจะตัดสินใจว่าควรจะด าเนินการต่อไป ในขั้นตอนการวิเคราะห์หรือจะยกเลิกโครงการทั้งหมด นักวิเคราะห์ระบบจะต้องพิจารณาความ เป็นไปได้ทั้ง 3 ด้านดังกล่าวเพื่อที่จะเลือกใช้แนวทางการพัฒนา ระบบงานที่มีความเป็นไปได้สูงสุด ดังนั้น ผลลัพธ์ที่ได้จากการศึกษาความเป็นไปได้ของนักวิเคราะห์ระบบ ก็คือ การเสนอแนวทางในการแก้ปัญหาที่ เป็นไปได้ พร้อมทั้งการประมาณการค่าใช้จ่ายและก าไรที่คาดว่า จะได้รับ รวมทั้งรายละเอียดอื่น ๆ ที่ระบบ ใหม่ต้องการ ขั้นตอนที่2 :กำรศึกษำควำมเป็นไปได้ (Feasibility Study) หน้ำที่ : ก าหนดปัญหา และศึกษาว่าเป็นไปได้หรือไม่ที่จะเปลี่ยนแปลงระบบ ผลลัพธ์: รายงานความเป็นไปได้ เครื่องมือ : เก็บรวบรวมข้อมูลของระบบและคาดคะเนความต้องการของระบบ บุคลำกรและหน้ำที่รับผิดชอบ : ผู้ใช้จะมีบทบาทส าคัญในการศึกษา 1) นักวิเคราะห์ระบบจะต้องเก็บรวบรวมข้อมูลทั้งหมดที่จ าเป็นเกี่ยวกับปัญหา 2) นักวิเคราะห์ระบบคาดคะเนความต้องการของระบบและแนวทางการแก้ปัญหา 3) นักวิเคราะห์ระบบก าหนดความต้องการที่แน่ชัดซึ่งจะใช้ส าหรับขั้นตอนการวิเคราะห์ต่อไป 4) ผู้บริหารตัดสินใจว่าจะด าเนินโครงการต่อไปหรือไม่ 3. วิเครำะห์ (Analysis) กำรวิเครำะห์ระบบ เป็นขั้นตอนของการศึกษาการท างานของระบบงานเดิม (ปัจจุบัน) เพื่อต้องการ ค้นหาว่าท างานอย่างไร ท าอะไรบ้าง และมีปัญหาใดเกิดขึ้นบ้าง หรือผู้ใช้ระบบต้องการให้มีการเปลี่ยนแปลง อย่างไร เปลี่ยนแปลงส่วนใดของระบบ บ้าง หรือต้องการให้ระบบใหม่ท าอะไรได้บ้าง นักวิเคราะห์ระบบ จะต้องเก็บรวบรวมข้อมูลต่าง ๆ ขององค์กรเพื่อน ามาจัดท ารายงานการท างานของระบบ รูป : Fact Gathering รูป : ควำมเป็นไปได้ทำงด้ำนกำรเงิน 5


ปัจจัยที่ส าคัญประการหนึ่งในการวิเคราะห์ระบบก็คือ การท าความเข้าใจกับระบบและปัญหาของ ระบบให้ถูกต้องและชัดเจน ซึ่งจะช่วยให้นักวิเคราะห์ระบบท าการออกแบบระบบได้ถูกต้องและตรงตาม ความ ต้องการของผู้ใช้ กระบวนการวิเคราะห์ระบบ คือ การท าความเข้าใจในกระบวนการทางธุรกิจ (Business Function) และการก าหนดความต้องการของระบบ (System Requirement) โดยท าการรวบรวม ข้อมูลใน ระบบงานเดิม ซึ่งท าให้รู้ถึงขั้นตอนการท างานและปัญหาของระบบที่เกิดขึ้นอย่างละเอียด การเก็บรวบรวม ข้อมูล ข้อเท็จจริง และสารสนเทศ สามารถกระท าได้ด้วยเทคนิคต่าง ๆ เช่น การสัมภาษณ์ การออกแบบ สอบถาม การสังเกตการณ์ หรือโดยการตรวจสอบรายละเอียดจากเอกสารต่าง ๆ ที่มีอยู่ในระบบ (1) กำรก ำหนดควำมต้องกำรของระบบ (System Requirement Determination) คือ การรวบรวมข้อมูล รวมถึงข้อเท็จจริงของระบบโดยใช้วิธีการเก็บรวบรวมข้อมูล (Information Gathering Method) เพื่อน าข้อมูลมาท าการวิเคราะห์ร่วมกับปัญหาที่เกิดขึ้นในองค์กร เพื่อน าไปสู่การก าหนดแนวทาง ใน การแก้ปัญหา (2) กำรวิเครำะห์ควำมต้องกำรระบบใหม่ (Requirement Structuring) คือขั้นตอนการ วิเคราะห์ ความต้องการของระบบใหม่จากปัญหาที่พบในการท างานของระบบเดิม โดยใช้แผนภาพเพื่อการ จ าลอง ขั้นตอนการท างาน และจ าลองข้อมูลของระบบใหม่นักวิเคราะห์ระบบต้องค้นหาความต้องการของผู้ใช้ ระบบ และใช้ความต้องการเหล่านี้เป็นปัจจัย ในการก าหนดเป้าหมายส าหรับระบบใหม่ รูป : Application Analysis ขั้นตอนที่3 : วิเครำะห์ (Analysis) หน้ำที่ : ก าหนดความต้องการของระบบใหม่ (ระบบใหม่ทั้งหมดหรือแก้ไขระบบเดิม) ผลลัพธ์ : รายงานข้อมูลเฉพาะของปัญหา เครื่องมือ : เทคนิคการเก็บรวบรวมข้อมูล Data Dictionary, Data Flow Diagram, Process Specification, Data Model, System Model, แบบทดลอง System Flowcharts บุคลำกรและหน้ำที่รับผิดชอบ : ผู้ใช้จะต้องให้ความร่วมมืออย่างดี (1) นักวิเคราะห์ระบบศึกษาเอกสารที่มีอยู่ และศึกษาระบบเดิม เพื่อให้เข้าใจถึงขั้นตอน การท างาน และทราบว่าจุดส าคัญของระบบอยู่ที่ไหน 2) นักวิเคราะห์ระบบเตรียมรายงานความต้องการของระบบใหม่ 3) นักวิเคราะห์ระบบเขียนแผนภาพการท างาน (Diagram) ของระบบใหม่โดยไม่ต้องบอกว่า หน้าที่ใหม่ระบบจะพัฒนาขึ้นมาได้อย่างไร 4) นักวิเคราะห์ระบบเขียนสรุปรายงานข้อมูลเฉพาะของปัญหา 5) ถ้าเป็นไปได้นักวิเคราะห์ระบบอาจจะเตรียมแบบทดลองด้วย 6


4. ออกแบบ (Design) กำรออกแบบระบบ จะเป็นการเสนอระบบใหม่ โดยที่นักออกแบบระบบจะด าเนินการออกแบบ ระบบใหม่ หรือเปลี่ยนแปลงโปรแกรมเดิมที่มีอยู่ ออกแบบฐานข้อมูลใหม่ หรือเปลี่ยนแปลงฐานข้อมูลเดิม ที่มี อยู่ ออกแบบรายละเอียดเกี่ยวกับการท างานของผู้ใช้ และจะต้องเลือกอุปกรณ์ที่ต้องใช้ในการติดตั้งระบบ ใน การสร้างระบบใหม่จะต้องใช้อะไรบ้าง เป็นต้น กำรเขียนขอบเขตของระบบ คือ การตั้งชื่อขอบเขตของระบบมาก าหนดข้อมูล (Data) และ สารสนเทศ (Information) ว่ามีการน าข้อมูลน าเข้ามาในระบบมีอะไรบ้าง และเมื่อข้อมูลนั้น ผ่านกระบวนการ ต่าง ๆ แล้วจะออกมาเป็นผลลัพธ์อะไรบ้าง ในลักษณะสารสนเทศอย่างไร ดังรูป รูป : แสดงข้อมูลระบบสำรสนเทศ ระบบงานคอมพิวเตอร์ทุกระบบงานในปัจจุบันต้องการกระบวนการที่จะเข้าถึง (Access) ข้อมูล ที่ ต้องการได้อย่างสะดวกและรวดเร็ว ดังนั้น นักวิเคราะห์ระบบจึงจะต้องพยายามออกแบบระบบงาน ให้เกิด ความสะดวกและลดความซ้ าซ้อนกันของข้อมูลให้ได้มากที่สุด เพื่อลดความยุ่งยากในการปรับปรุงระบบ อย่างไรก็ดีระบบคอมพิวเตอร์จ าเป็นต้องได้รับการออกแบบให้เหมาะสม ทั้งซอฟต์แวร์และฮาร์ดแวร์ เช่น หน่วยความจ า (Memory) ก็ต้องมีเพียงพอ ทางด้านซอฟต์แวร์จะต้องมีระบบบริหารฐานข้อมูล (DBMS : Data Base Management System) มาเป็นตัวกลาง เพื่อที่จะเชื่อมโยงระหว่างระบบงาน คอมพิวเตอร์กับ ฐานข้อมูล ระบบรักษำควำมปลอดภัยและควำมถูกต้องของระบบงำน ระบบงานควรมีระบบการรักษาความปลอดภัย (Security) เพื่อคุ้มครองระบบคอมพิวเตอร์ ระบบ รักษาความปลอดภัยในระบบงานคอมพิวเตอร์สามารถแบ่งออกได้เป็น 2 ส่วนใหญ่ คือ... 1) ระบบรักษาความปลอดภัยภายนอกระบบงาน (Physical Security) การป้องกันภายนอก ของ ระบบงานคอมพิวเตอร์ เช่น การล็อกห้องคอมพิวเตอร์ หรือป้องกันไม่ให้บุคคลภายนอกสามารถใช้ เครื่อง คอมพิวเตอร์ได้ หรือระบบการป้องกันการคัดลอกข้อมูล เป็นต้น 2) ระบบรักษาความปลอดภัยภายในระบบงาน (System Security and Integrity) จ าเป็นต้องมี ระบบรักษาความปลอดภัยภายในระบบงานเพื่อป้องกันไม่ให้ผู้ที่ไม่มีสิทธิ์ใช้ข้อมูล ขั้นตอนที่4 : วิเครำะห์ (Analysis) หน้ำที่ : ออกแบบระบบใหม่เพื่อให้สอดคล้องกับความต้องการของผู้ใช้และฝ่ายบริหาร ผลลัพธ์ : ข้อมูลเฉพาะของการออกแบบ (System Design Specification) เครื่องมือ : พจนานุกรมข้อมูล (DataDictionary) แผนภาพการไหลของกระแสข้อมูล (DataFlow Diagram) ข้อมูลเฉพาะการประมวลผล (Process Specification) รูปแบบข้อมูล (Data Models) รูปแบบ 7


ระบบ (System Models) ผังงานระบบ (System Flow Charts) ผังงานโครงสร้าง (Structure Charts) ผัง งาน HIPO (HIPO Chart) แบบฟอร์มข้อมูลเข้าและรายงาน (1) นักวิเคราะห์ระบบตัดสินใจเลือกคอมพิวเตอร์ฮาร์ดแวร์และซอฟต์แวร์ (ถ้าใช้) (2) นักวิเคราะห์ระบบเปลี่ยนแผนภาพทั้งหลายที่ได้จากขั้นตอนการวิเคราะห์มาเป็นแผนภาพล าดับ ขั้น (3) นักวิเคราะห์ระบบออกแบบความปลอดภัยของระบบ (4) นักวิเคราะห์ระบบออกแบบแบบฟอร์มข้อมูลขาเข้า รายงาน และการแสดงผลบนจอภาพ (5) นักวิเคราะห์ระบบก าหนดจ านวนบุคลากรในหน้าที่ต่าง ๆ และการท างานของระบบผู้ใช้ ฝ่าย บริหารและนักวิเคราะห์ระบบ ทบทวน เอกสารข้อมูลเฉพาะของการออกแบบ เพื่อความถูกต้องและสมบูรณ์ แบบของระบบ 5. พัฒนำ (Development) กำรพัฒนำระบบ เป็นการสร้างส่วนประกอบแต่ละส่วนของระบบโดยเริ่มเขียนโปรแกรมและทดสอบ โปรแกรม การติดต่อระหว่างผู้ใช้กับระบบและฐานข้อมูลจากข้อมูลต่าง ๆ ของระบบ โปรแกรมเมอร์จะเขียน โปรแกรมตามข้อมูลที่ได้จากการวิเคราะห์และออกแบบระบบ ซึ่งควรมีการตรวจสอบผลการท างานของ โปรแกรมร่วมกับนักวิเคราะห์ระบบ เพื่อค้นหาว่าอาจเกิดข้อผิดพลาดขึ้นที่ใดบ้างของระบบ เพื่อให้เข้าใจ และ ท างานได้โดยไม่มีปัญหา อาจจะอบรมตัวต่อตัว หรือเป็นกลุ่มก็ได้ ขั้นตอนที่5 : พัฒนำ (Development) หน้ำที่ : เขียนและทดสอบโปรแกรม ผลลัพธ์ : โปรแกรมที่ทดสอบเรียบร้อยแล้ว เอกสารคู่มือการใช้ และการฝึกอบรม เครื่องมือ : เครื่องมือของโปรแกรมเมอร์ทั้งหลาย Editor, Complier, Structure, Walkthrough, วิธีการทดสอบโปรแกรม การเขียนเอกสารประกอบการใช้งาน บุคลำกรและหน้ำที่รับผิดชอบ : (1) นักวิเคราะห์ระบบดูแลการเตรียมสถานที่และติดตั้งเครื่องคอมพิวเตอร์ (ถ้าซื้อใหม่) (2) นักวิเคราะห์ระบบวางแผนและดูแลการเขียนโปรแกรม ทดสอบโปรแกรม (3) โปรแกรมเมอร์เขียนและทดสอบโปรแกรม หรือแก้ไขโปรแกรมถ้าซื้อโปรแกรมส าเร็จรูป (4) นักวิเคราะห์ระบบวางแผนทดสอบโปรแกรม (5) ทีมที่ท างานร่วมกันทดสอบโปรแกรม (6) ผู้ใช้ตรวจสอบให้แน่ใจว่าโปรแกรมท างานตามที่ต้องการ (7) นักวิเคราะห์ระบบดูแลการเขียนคู่มือการใช้งานและการฝึกอบรม ทดสอบและติดตั้ง (Implementation and Testing) กำรทดสอบระบบ เป็นขั้นตอนของการทดสอบระบบก่อนที่จะน าไปปฏิบัติการใช้งานจริง ระบบ จะต้องได้รับการทดสอบเพื่อให้แน่ใจว่าไม่มีข้อผิดพลาดหรือข้อบกพร่องใด ๆ ก่อนจะน าระบบไปใช้ งานจริง ต้องมีการทดสอบการท างานของระบบโดยโปรแกรมเมอร์หรือผู้ใช้งานระบบหรือทดสอบการท างาน ร่วมกัน 8


ระหว่างโปรแกรมเมอร์และผู้ใช้งานระบบ การทดสอบควรใช้ข้อมูลที่ปฏิบัติงานจริง เพื่อดูผลลัพธ์ที่ได้ว่า ถูกต้องและตรงตามความต้องการของผู้ใช้หรือไม่ 6. ทดสอบและติดตั้ง (Implementation and Testing) กำรทดสอบระบบ เป็นขั้นตอนของการทดสอบระบบก่อนที่จะน าไปปฏิบัติการใช้งานจริง ระบบ จะต้องได้รับการทดสอบเพื่อให้แน่ใจว่าไม่มีข้อผิดพลาดหรือข้อบกพร่องใด ๆ ก่อนจะน าระบบไปใช้ งานจริง ต้องมีการทดสอบการท างานของระบบโดยโปรแกรมเมอร์หรือผู้ใช้งานระบบหรือทดสอบการท างาน ร่วมกัน ระหว่างโปรแกรมเมอร์และผู้ใช้งานระบบ การทดสอบควรใช้ข้อมูลที่ปฏิบัติงานจริง เพื่อดูผลลัพธ์ ที่ได้ว่า ถูกต้องและตรงตามความต้องการของผู้ใช้หรือไม่ ขั้นตอนกำรทดสอบ ➢ ในระหว่างการพัฒนาควรมีการทดสอบการใช้งานร่วมกัน ➢ ในการทดสอบอาจมีการทดสอบด้วยการใช้ข้อมูลที่จ าลองขึ้น ➢ ทดสอบระบบด้วยการตรวจสอบในส่วนของ Verification และ Validation ➢ จัดฝึกอบรมการใช้ระบบงาน กำรติดตั้ง ขั้นตอนถัดไปหลังจากที่ได้ท าการทดสอบ จนมีความมั่นใจแล้วว่าระบบสามารถท างาน ได้ จริง และตรงกับความต้องการของผู้ใช้ระบบ จากนั้นจึงด าเนินการติดตั้งระบบเพื่อใช้งานจริงต่อไป ขั้นตอนติดตั้ง คือ ➢ ก่อนติดตั้งระบบ ควรศึกษาสภาพแวดล้อมของ พื้นที่ ที่จะติดตั้ง ➢ จัดเตรียมอุปกรณ์Hardware, Network, อุปกรณ์สื่อสารให้พร้อม ➢ ลงโปรแกรมระบบปฏิบัติการ และแอปพลิเคชันโปรแกรมให้ครบถ้วน ➢ ด าเนินงานใช้งานระบบงานใหม่ ➢ จัดท าคู่มือการใช้งาน 7. บ ำรุงรักษำ (Maintenance) การบ ารุงรักษาเป็นขั้นตอนสุดท้ายของการพัฒนาระบบ ภายหลังขั้นตอนการติดตั้งระบบ จะต้องมี การประเมินผลการท างานของระบบ ซึ่งเป็นการตรวจสอบว่าระบบใหม่ที่ติดตั้งใช้งานนี้ สามารถใช้งานตรง ตามวัตถุประสงค์ สนองตอบความต้องการของผู้ใช้ ผู้ใช้มีความพึงพอใจและยอมรับการท างานกับระบบใหม่ มากน้อยเพียงใด หรือมีปัญหาอุปสรรคอย่างไร ส่วนการบ ารุงรักษาระบบนั้น เป็นสิ่งที่จ าเป็นที่จะต้องกระท า เพื่อขจัดข้อผิดพลาดต่าง ๆ ที่อาจ เกิดขึ้นในระหว่างการท างานของระบบ และเพื่อเป็นแนวทางในการปรับปรุงระบบให้เหมาะสม รูป :กำรทดสอบ และกำรติดตั้งระบบ 9


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


หน่วยที่ 2 หลักกำรและแนวคิดเชิงวัตถุ ควำมหมำยของและหลักกำรของวัตถุ วัตถุ (Object) คือสิ่งที่เป็นรูปธรรม และนามธรรม ที่มีอยู่บนโลกของความเป็นจริง (Real World) • สิ่งที่เป็นรูปธรรม (จับต้องได้) เช่น คอมพิวเตอร์ คน แมว ตุ๊กตา ฯลฯ • สิ่งที่เป็นนามธรรม (จับต้องไม่ได้) เช่น ความคิด ปรากฏการณ์ ฯลฯ แต่ละวัตถุจะประกอบด้วยกลุ่ม ของ • คุณสมบัติ (Attribute) หรือข้อมูลส่วนตัวของวัตถุเช่น หน้าตา น าหนัก ส่วนสูง ซึ่งระบุข้อมูล (Data) ของวัตถุเช่น สีปากกา อาจมีข้อมูลเป็น สีน้ าเงิน แดง หรือด า • พฤติกรรม (Behavior) หรือเมธอด (Method) เป็นแสดงการท างานของวัตถุเช่น วัตถุ แมวอาจ ประกอบด้วยเมธอด การร้อง การเดิน จะเห็นได้ว่าวัตถุประกอบไปด้วยคุณสมบัติและพฤติกรรม คือมีคุณลักษณะ (ข้อมูล) ประจ าตัว พฤติกรรมหรือการท างาน แต่วัตถุไม่สามารถท างานได้ด้วยตนเองต้องพึ่งพาอาศัยวัตถุอื่นเข้ามากระตุ้นให้ ท างาน ดังนั้นวัตถุ ในวิธีการเชิงวัตถุ (Objects Oriented Methodology) ส่วนมากวัตถุจะถูกกระท า (Passive Objects) เช่น รถคันที่ 1 ประกอบด้วยเมธอด สตาร์ทรถ รถคันที่ 1 จะไม่สามารถสตาร์ทด้วยตัวเอง ได้จะต้องมีวัตถุอื่นเข้ามากระตุ้นให้สตาร์ท ซอฟต์แวร์ทำงวัตถุ (Object Oriented Software) คือโปรแกรมที่ประกอบไปด้วยกลุ่มหรือชุด (Collection) ของวัตถุมีหน้าที่รับผิดชอบต่อการ จัดการ ข้อมูลของตนเองและติดต่อสื่อสารกับวัตถุอื่น ๆ โดยส่งข่าวสาร (Message) วิธีกำรเชิงวัตถุ (Object Orientation Methodology) เป็นวิธีการเชิงวัตถุ เป็นแนวคิดที่มองการท างานของระบบใด ๆ ในกรอบที่สนใจ (Problem Domain) ว่าเกิดจากการท างานร่วมกันระหว่างวัตถุ แบบจ ำลองของวัตถุ (Object Modeling) เป็นสร้างแบบจ าลอง (Model) จะเป็นการท างานร่วมกันระหว่างวัตถุต่าง ๆ การก าหนดวัตถุจะท าได้ โดยการใส่แนวคิด (Concept) ให้กับสิ่งต่าง ๆ ภายที่อยู่ภายใต้กรอบที่ก าหนดเช่น การให้แนวคิดกับ คอมพิวเตอร์ที่คอมพิวเตอร์ทุกเครื่องจะต้องมี เคส หรือตัวถัง ซีพียู เป็นต้น ขอบเขตระบบ (Domain) คือขอบเขตที่เราสนใจการท างานของวัตถุต่าง ๆที่ ร่วมกันท างานในขอบเขต ระบบหนึ่งจะสามารถมี วัตถุได้ตั้งแต่ 2 ตัวขึ้นไป ควำมสัมพันธ์และปฏิสัมพันธ์ระหว่ำงวัตถุ (Relationships and Interactions of Objects) กิจกรรม (Action) ใด ๆ ของวัตถุใด ๆที่เกิดจาก • การมีความสัมพันธ์ (Relationship)ระหว่างวัตถุ 11


• การมีปฏิสัมพันธ์ (Interaction) ระหว่างวัตถุ • การมีปฏิสัมพันธ์ระหว่าง 2 วัตถุขึ้นไป ควำมสัมพันธ์ (Relationships) ความเกี่ยวข้องหรือความสัมพันธ์ระหว่างวัตถุตั้งแต่ 2 ตัวขึ้นไป ปฏิสัมพันธ์ (Interaction) หมายถึงปฏิสัมพันธ์หรือการกระท าใด ๆ ที่เกิดขึ้นระหว่างวัตถุ2 วัตถุขึ้นไป กิจกรรม (Activity) ตัวอย่างกิจกรรม แมว แมวกินอาหาร Object : แมว, อาหาร Relationship : เป็นเจ้าของ Interaction: กินอาหาร แมวกับหนู Object : แมว Relationship : เป็นศัตรู Interaction: กิน แนวคิดเชิงวัตถุ (Object Oriented Concept) วัตถุ และ คลาส (Objects and Classes) Object หมายถึงเอนทิตี้ในโลกแห่งความเป็นจริงเช่น ปากกา เก้าอี้ โต๊ะคอมพิวเตอร์ นาฬิกา ฯลฯ รูปที่ 2.1 ตัวอย่างวัตถุ Object-Oriented Programming คือระเบียบวิธีหรือกระบวนทัศน์ในการออกแบบโปรแกรมโดยใช้ คลาสและอ็อบเจกต์ ช่วยลดความยุ่งยากในการพัฒนาและบ ารุงรักษาซอฟต์แวร์ประกอบไปด้วย - Object - Calss 12


- Inheritance - ploymorhphism - Abstarction - Encapsulation Objects and Classes จะพูดถึงหน้านี้เราจะเรียนรู้เกี่ยวกับออบเจ็กต์และคลาส Java ในเทคนิคการเขียนโปรแกรมเชิงวัตถุ เราออกแบบโปรแกรมโดยใช้ออบเจ็กต์และคลาส วัตถุคืออะไร เอนทิตีที่มีสถานะและพฤติกรรมเรียกว่าวัตถุเช่น เก้าอี้ จักรยาน เครื่องหมาย ปากกา โต๊ะ รถ ฯลฯ ซึ่งอาจเป็นทางกายภาพหรือเชิงตรรกะ (จับต้องได้และจับต้องไม่ได้) ตัวอย่างของวัตถุที่จับต้องไม่ได้คือระบบ ธนาคาร วัตถุมีสำมลักษณะประกอบไปด้วย สถำนะ : แสดงถึงข้อมูล (ค่า) ของวัตถุ พฤติกรรม : แสดงถึงพฤติกรรม (การท างาน) ของวัตถุเช่นการฝากถอน ฯลฯ Dentity : โดยทั่วไปแล้วเอกลักษณ์ของอ็อบเจ็กต์จะถูกน ามาใช้ผ่าน ID เฉพาะ ผู้ใช้ภายนอกมองไม่ เห็นค่าของ ID อย่างไรก็ตาม JVM ใช้ภายในเพื่อระบุแต่ละออบเจ็กต์โดยไม่ซ้ ากัน รูปภำพผัง ตัวอย่างเช่นปากกาเป็นวัตถุ ชื่อของมันคือ Reynolds สีเป็นสีขาวหรือที่เรียกว่าสถานะ ใช้ในการ เขียน ดังนั้นการเขียนจึงเป็นการแสดงพฤติกรรมของมัน วัตถุเป็นตัวอย่ำงของคลำส คลาส คือเทมเพลตหรือพิมพ์เขียวที่ใช้สร้างออบเจ็กต์ ดังนั้นวัตถุคืออินสแตนซ์ (ผลลัพธ์) ของคลาส ค ำจ ำกัดควำมของวัตถุ - วัตถุคือเอนทิตีในโลกแห่งความเป็นจริง - วัตถุคือเอนทิตีรันไทม์ - วัตถุคือเอนทิตีที่มีสถานะและพฤติกรรม - วัตถุเป็นตัวอย่างของคลาส คลำสคืออะไร คลาส คือ กลุ่มของอ็อบเจ็กต์ที่มีคุณสมบัติทั่วไป เป็นเทมเพลตหรือพิมพ์เขียวที่ใช้สร้างวัตถุ เป็นเอนทิ ตีเชิงตรรกะไม่สามารถเป็นกายภาพได้ - Fields - Methods - Constructors - Blocks 13


- Nested class and interface - ฟิลด์ รูปที่ 2.2 Class 3 Inheritance มีการสืบทอดเป็นกลไกที่อ็อบเจ็กต์หนึ่งได้รับคุณสมบัติและพฤติกรรมทั้งหมดของอ็อบเจ็กต์พาเรนต์ เป็นส่วนส าคัญของ OOPs (ระบบการเขียนโปรแกรมเชิงวัตถุ) แนวคิดเบื้องหลังจากการสืบทอด คือคุณสามารถสร้างคลาสใหม่ที่สร้างขึ้นจากคลาสที่มีอยู่ เมื่อคุณ สืบทอดจากคลาสที่มีอยู่คุณสามารถใช้เมธอดและฟิลด์ของคลาสพาเรนต์ซ้ าได้ นอกจากนี้คุณสามารถเพิ่มเมธ อดและฟิลด์ใหม่ในคลาสปัจจุบันของคุณได้ด้วย การสืบทอดแสดงถึงความสัมพันธ์IS-A ซึ่งเรียกอีกอย่างว่า ความสัมพันธ์แม่ กำรสืบทอด ส าหรับวิธีการแทนที่ (ดังนั้นความหลากหลายของรันไทม์สามารถท าได้) ส าหรับ Code Reusability วิธีกำรแทนที่ ถ้าคลาสย่อย (คลาสย่อย) มีเมธอดเดียวกันกับที่ประกาศไว้ในคลาสพาเรนต์เรียกว่าเมธอดแทนที่ถ้า คลาสย่อยจัดให้มีการน าเมธอดไปใช้งานเฉพาะที่ได้รับการประกาศโดยคลาสพาเรนต์หนึ่งในคลาสพาเรนต์ เรียกว่าเมธอดการแทนที่ กำรใช้วิธีกำรแทนที่ การลบล้างเมธอดใช้เพื่อจัดเตรียมการน าเมธอดไปใช้งานเฉพาะซึ่งมีให้โดยซูเปอร์คลาส วิธีการแทนที่ใช้ส าหรับความหลากหลายของรันไทม์ กฎส ำหรับกำรแทนที่ - เมธอดต้องมีชื่อเดียวกับในคลาสพาเรนต์ - เมธอดต้องมีพารามิเตอร์เดียวกันกับในคลาสพาเรนต์ - ต้องมีความสัมพันธ์IS-A (การสืบทอด) 14


Polymorphism Polymorphism เป็นแนวคิดที่เราสามารถด าเนินการเพียงครั้งเดียวในรูปแบบต่างๆ Polymorphism มาจากค าภาษากรีก 2 ค า: poly และ morphs ค าว่า "poly" หมายถึงจ านวนมากและ "morphs" หมายถึง รูปแบบ ความหลากหลายจึงมีความหมายหลายรูปแบบ Runtime Polymorphism Runtime polymorphism หรือ Dynamic Method Dispatch คือกระบวนการที่การเรียกใช้เมธอด ที่ถูกแทนที่ได้รับการแก้ไขที่รันไทม์แทนที่จะเป็นเวลาคอมไพล์ ในกระบวนการนี้วิธีการแทนที่ถูกเรียกใช้ผ่านตัวแปรอ้างอิงของซูเปอร์คลาส การก าหนดเมธอดที่จะเรียกใช้นั้น ขึ้นอยู่กับอ็อบเจ็กต์ที่ถูกอ้างถึงโดยตัวแปรอ้างอิง Upcasting ถ้าตัวแปรอ้างอิงของคลาส Parent อ้างถึงอ็อบเจ็กต์ของคลาส Child เรียกว่า upcasting ตัวอย่างเช่น รูปที่ 2.3 Upcasting Abstract class คลาสที่ประกาศด้วยคีย์เวิร์ดนามธรรมเรียกว่าคลาสนามธรรม สามารถมีทั้งวิธีการที่เป็นนามธรรมและ ไม่ใช่นามธรรม สิ่งที่เป็นนำมธรรม สิ่งที่เป็นนามธรรมคือกระบวนการซ่อนรายละเอียดการใช้งานและแสดงเฉพาะฟังก์ชันการท างาน ให้กับผู้ใช้อีกวิธีหนึ่งจะแสดงเฉพาะสิ่งที่จ าเป็นต่อผู้ใช้และซ่อนรายละเอียดภายในตัวอย่างเช่นการส่ง SMS โดยที่คุณพิมพ์ข้อความและส่งข้อความ คุณไม่ทราบการประมวลผลภายในเกี่ยวกับการส่งข้อความ จุดที่ต้องจ ำ Points to Remember - ต้องประกาศคลาสนามธรรมด้วยคีย์เวิร์ดที่เป็นนามธรรม - สามารถมีวิธีการที่เป็นนามธรรมและไม่ใช่นามธรรม - ไม่สามารถสร้างอินสแตนซ์ได้ - สามารถมีตัวสร้างและวิธีการคงที่ได้เช่นกัน - มันสามารถมีวิธีสุดท้ายที่จะบังคับให้คลาสย่อยไม่เปลี่ยนเนื้อความของวิธีการ Encapsulation 15


การห่อหุ้ม เป็นกระบวนการห่อรหัสและข้อมูลเข้าด้วยกันเป็นหน่วยเดียวตัวอย่างเช่นแคปซูลที่ผสมยา หลายชนิด กำรห่อหุ้ม เราสามารถสร้างคลาสที่ห่อหุ้มเต็มรูปแบบได้โดยท าให้สมาชิกข้อมูลทั้งหมดของคลาสเป็นแบบส่วนตัว ตอนนี้เราสามารถใช้วิธีsetter และ getter เพื่อตั้งค่าและรับข้อมูลในนั้นได้ รูปที่ 2.4 Points to Remember ตัวอย่างของคลาสที่ห่อหุ้มอย่างสมบูรณ์ รูปที่ 2.5 คลาสที่ห่อหุ้มอย่างสมบูรณ์ ข้อดีของกำรห่อหุ้ม - มีการระบุเมธอด setter หรือ getter เท่านั้นคุณสามารถท าให้คลาสเป็นแบบอ่านอย่างเดียวหรือ เขียนอย่างเดียว กล่าวอีกนัยหนึ่งคุณสามารถข้ามวิธีgetter หรือ setter ได้ - ช่วยให้คุณสามารถควบคุมข้อมูลได้ สมมติว่าคุณต้องการก าหนดค่าของ id ซึ่งควรมากกว่า 100 เท่านั้นคุณสามารถเขียนตรรกะภายในเมธอด setter ได้ คุณสามารถเขียนตรรกะไม่ให้เก็บตัวเลขเชิงลบในเมธ อด setter - เป็นวิธีที่จะบรรลุการซ่อนข้อมูลใน Java เนื่องจากคลาสอื่นจะไม่สามารถเข้าถึงข้อมูลผ่านสมาชิก ข้อมูลส่วนตัวได้ - คลาสเอนแคปซูลนั้นง่ายต่อการทดสอบ ดังนั้นจึงเป็นการดีกว่าส าหรับการทดสอบหน่วย - IDE มาตรฐานก าลังจัดเตรียมสิ่งอ านวยความสะดวกในการสร้าง getters และ setters ดังนั้นจึง เป็นเรื่องง่ายและรวดเร็วในการสร้างคลาสที่ห่อหุ้มใน Java 16


หน่วยที่ 3 หลักกำรออกแบบ 1. ยูเอ็มแอล (Unified Modeling Language: UML) ยูเอ็มแอล (Unified Modeling Language: UML) เป็นภาษาที่ใช้อธิบายแบบจ าลองต่าง ๆ หรือเป็น ภาษาสัญลักษณ์รูปภาพมาตรฐานส าหรับใช้ในการสร้างแบบจ าลองเชิงวัตถุ โดยยูเอ็มแอล เป็นภาษามาตรฐาน ส าหรับสร้างแบบพิมพ์เขียวให้แก่ระบบงาน เราสามารถใช้ยูเอ็มแอลในการสร้างมุมมอง ก าหนดรายละเอียด สร้างระบบงานและจัดท าเอกสารอ้างอิงให้แก่ระบบงานได้ เนื่องจากยูเอ็มแอล เป็นภาษาที่มีการใช้สัญลักษณ์ รูปภาพ จึงอาจมีผู้เข้าใจสับสนว่า ยูเอ็มแอล เป็น การสร้างแผนภาพหรือเป็นเพียงการใช้สัญลักษณ์เพื่ออธิบาย ระบบงานเท่านั้น แต่แท้จริงแล้ว ยูเอ็มแอลมี ลักษณะของแบบจ าลองข้อมูล คือเป็นแบบจ าลองที่เอาไว้อธิบาย แบบจ าลองอื่นๆ อีกที การใช้งานภาษายูเอ็ม แอล นอกจากจะต้องเข้าใจในแนวความคิดเชิงวัตถุแล้ว ยังจ าเป็นต้องมีพื้นฐานความเข้าใจเกี่ยวกับแบบจ าลอง ภาพด้วยเช่นกัน 2. องค์ประกอบของ UML UML ประกอบด้วย 3 ส่วนหลักคือ Things, Relationships และ Diagrams - ส่วน Things แบ่ง 4 ประเภท คือ Structural things, Behavioral things, Group things และ Annotational things - ส่วน Relationships แบ่ง 3 ประเภท คือ Meaning, Structural และ Generalized/Specialized - ส่วน Diagrams แบ่ง 6 ประเภท คือ Use case, Static structure, Interaction, State, Activity และ Implementation รูปที่ 3.1 โครงสร้าง UML 17


3. ประเภทไดอะแกรมของ UML การวิเคราะห์และออกแบบระบบ โดยใช้UML เป็นเครื่องมือ ในการด าเนินงานโครงการ มีกลไก ของ Model มาตราฐาน ( Standard Model ) เพื่อเป็นเครื่องมือ ในการวิเคราะห์และออกแบบ ดังนี้ 1. Use case Diagram 2. Sequence Diagram 3. Class Diagram 4. Activity Diagram 5. Collaboration Diagram 6. Component Diagram 7. Deployment Diagram 8. Object Diagram 9. State Diagram 4. Use case Diagram Use Case Diagram เป็นแผนภาพที่ใช้แสดงให้ทราบว่าระบบทางานหรือมีหน้าที่ใดบ้าง โดยมี สัญลักษณ์รูปวงรีแทน Use Case และสัญลักษณ์รูปคน (Stick Man Icon) แทน Actor สาหรับชื่อUse Case นั้น ให้ใช้ค ากริยาหรือกริยาวลี (คากริยามีกรรมมารองรับ) เช่น ลงทะเบียนเรียน,ตรวจสอบรายวิชา, บันทึก การชาระเงิน, Generate Report, Enter Sales Data, Compute Commission เป็นต้น ส่วนการมี ปฏิสัมพันธ์ระหว่าง Use Case และ Actor จะใช้เส้นตรงลากเชื่อมต่อกัน หรือจะใช้เส้นตรงมีหัวลูกศรก็ได้ ใน ที่นี้เลือกใช้เส้นตรงไม่มีหัวลูกศร ส่วนเส้นแบ่งขอบเขตระหว่าง Actor กับ Use Case จะใช้เส้นกรอบสี่เหลี่ยม เรียกว่า “System Boundary” และสิ่งส าคัญส่วนสุดท้ายก็คือ “ชื่อของระบบ (System Name)” ให้แสดงไว้ ด้านบนสุดของแผนภาพ 18


4. สัญลักษณ์ควำมสัมพันธ์ สัญลักษณ์ที่ส าคัญของ Use Case Diagram มีดังต่อไปนี้ -Use Case คือ หน้าที่ที่ระบบต้องกระท าใช้สัญลักษณ์รูปวงรี พร้อมทั้งเขียนชื่อ Use Case ซึ่งต้องใช้ ค ากริยาหรือกริยาวลีก็ได้ Actor คือ ผู้เกี่ยวข้องกับระบบ ซึ่งรวมทั้ง Primary Actor และ Stakeholder Actor ที่เป็นมนุษย์ ในที่นี้จะใช้สัญลักษณ์รูปคน (Stick Man Icon) เหมือนกัน พร้อมทั้งเขียนชื่อ Actor ไว้ด้านล่างของสัญลักษณ์ ด้วย แต่หากเป็น Actor ที่ไม่ใช่มนุษย์ เช่น ระบบงานอื่นที่อยู่นอกเหนือระบบที่เราสนใจ จะใช้รูปสี่เหลี่ยมแล้ว เขียนค าว่า “<<actor>>” ไว้ด้านบน ดังรูปที่ 3.3 System Boundary เส้นแบ่งขอบเขตระหว่างระบบกับผู้กระทาต่อระบบ (Use Case กับ Actor) ใช้รูปสี่เหลี่ยมเป็นสัญลักษณ์ พร้อมทั้งเขียนชื่อระบบไว้ด้านใน ดังรูปที่ 3.4 รูปที่ 3.2 แสดง Use Case Diagram ของระบบลทะเบียน รูปที่ 3.3 แสดงสัญลักษณ์ Use Case รูปที่ 3.4 แสดงสัญลักษณ์ Actor 19


Connection คือ เส้นที่ลากเชื่อมต่อระหว่าง Actor กับ Use Case ที่มีปฏิสัมพันธ์กัน ใช้เส้นตรงไม่ มีหัวลูกศรเป็นสัญลักษณ์ของ Connection ส่วน Connection ที่ใช้เชื่อมต่อระหว่าง Use Case กับ Use Case กรณีที่ Use Case นั้นมีความสัมพันธ์ซึ่งกันและกัน จะใช้สัญลักษณ์เส้นตรงมีหัวลูกศร พร้อมทั้งเขียนชื่อ ความสัมพันธ์ไว้ตรงกลางเส้นด้วย โดยเขียนไว้ภายในเครื่องหมาย <<...>> ดังรูปที่ 3.5 Extend Relationship เป็นความสัมพันธ์แบบขยายหรือเพิ่ม เกิดขึ้นในกรณีที่บาง Use Case ด าเนินกิจกรรมของตนเองไปตามปกติ แต่อาจจะมีเงื่อนไขหรือสิ่งกระตุ้นบางอย่างที่ส่งผลให้กิจกรรมตามปกติ ของ Use Case นั้นถูกรบกวนจนเบี่ยงเบนไป ซึ่งเราสามารถแสดงเงื่อนไขหรือสิ่งกระตุ้นเหล่านั้นได้ในรูปของ “Use Case” และเรียกความสัมพันธ์ระหว่าง Use Case ในลักษณะนี้ว่า “Extend Relationship” โดยเรียก Use Case ที่ถูกรบกวนหรือUse Case ที่ดาเนินงานตามปกติว่า “Base Use Case” และเรียก Use Case ที่ ท าหน้าที่รบกวนหรือกระตุ้น Base Use Case ว่า “Extending Use Case” กล่าวโดยสรุป ก็คือ Use Case หนึ่งทาหน้าที่ตามปกติ เมื่อเกิดเหตุการณ์ผิดปกติขึ้นจะต้องทาหน้าที่ พิเศษเพิ่ม โดยหน้าที่พิเศษที่เพิ่มขึ้นก็ คือ“Extending Use Case”นั่นเอง ดังนั้น อาจกล่าวได้ว่า Use Case ที่ เป็น Extending Use Case จะเกิดขึ้นเพียงบางครั้งเท่านั้น (ไม่ได้เกิดขึ้น ทุกครั้งที่ดาเนินกิจกรรมตาม Base Use Case) การวาดเส้น Connection เชื่อมระหว่าง Use Case ทั้งสอง ให้เริ่มต้นลากเส้นตรงจาก Extending Use Case หันลูกศรชี้ไปที่ Base Use Case ดังรูปที่ 3.6 รูปที่ 3.5 แสดงสัญลักษณ์ System Boundary รูปที่ 3.6 แสดงสัญลักษณ์ Connection 20


จากรูปที่ 3. 7 สังเกตที่ Use Case “Register Course” ซึ่งเป็น Base Use Case คือ ทาหน้าที่รับ ลงทะเบียนตามปกติ แต่เมื่อมีเงื่อนไขหรือมีเหตุการณ์พิเศษเกิดขึ้น คือ “นักศึกษาบางคนอาจมีการลงทะเบียน เรียนซ้ าเพื่อปรับเกรดด้วย (Regrade)” จึงได้เพิ่ม Extending Use Case เพื่อมารองรับหน้าที่พิเศษดังกล่าว นั่นคือ “Register Regrade” 5. Sequence Diagram Sequence Diagram จะเป็น Diagram ที่ใช้แสดงถึง Class ที่มีส่วนร่วมในแต่ละ Use case และ message ที่ส่งผ่านระหว่าง Class บนเวลาต่างๆ Sequence Diagram จะเป็น dynamic model ที่จะแสดง ล าดับของ message ที่ถูกส่งผ่านระหว่าง Class ออกมาอย่างชัดเจน Sequence Diagram ประกอบด้วยแกนสมมติ2 แกนคือ แกนนอน และแกนตั้ง โดยแกนนอนจะ แสดง ขั้นตอนการท างาน หรือการส่งเมจเสจระหว่างวัตถุ ส่วนแกนตั้งเป็นแกนเวลา ทั้ง 2 แกนต้องสัมพันธ์กัน สัญลักษณ์ประกอบด้วย ส่วนที่บอกชื่อของออบเจ็กต์ว่าเป็นออบเจ็กต์อะไรโดยเรียงจากซ้ายไปขวา ตามล าดับ การท างานของระบบคือออบเจ็กต์ทางซ้ายจะท างานก่อนออบเจ็กต์ที่อยู่ขวามือโดยจะมีเมจเสจ เป็นการติดต่อ ที่ส่งจากออบเจ็กต์หนึ่งไปยังออบเจ็กต์หนึ่งหรืออาจส่งกลับมาหาตัวเองก็ได้ รูปที่ 3.7 แสดงการวาดเส้น Connection เชื่อมระหว่าง Use Case ทั้งสอง ให้เริ่มต้นลากเส้นตรงจาก Extending Use Case หันลูกศรชี้ไปที่ Base Use Case รูปที่ 3.8 แสดง Use Case Diagram ที่มีความสัมพันธ์แบบExtend Relationship 21


Sequence Diagram จะแสดงการท างานของออบเจ็กต์ต่างๆเมื่อเกิดการส่งข่าวสารหรือ massage และเมื่อเกิดเหตุการณ์ต่างๆ โดยทิศทางของลูกศรจะเป็นการบ่งบอกถึงทิศทางการส่ง message ระหว่าง ออบเจ็กต์ 6. Class Diagram Class Diagram แสดงรายละเอียดของ Class และความสัมพันธ์ระหว่าง Class ในมุมมองแบบ logical view องค์ประกอบของ UML class diagrams ได้แก่ - Class, โครงสร้างของ Class และพฤติกรรมของ Class14 - ตัวบ่งชี้Multiplicity และ navigation - ชื่อของ Role - ความสัมพันธ์แบบ Association, aggregation, dependency, และinheritance Class Diagram ประกอบด้วยสัญลักษณ์ของคลาสและเส้นแสดงความสัมพันธ์ ในส่วนของสัญลักษณ์ คลาสจะถูกวาดเป็นรูปสี่เหลี่ยมซึ่งประกอบด้วย 3 ส่วนดังรูปนั่นคือ ชื่อคลาส อยู่ในส่วนบนสุด แอตทริบิวต์อยู่ ตรงส่วนกลางและโอเปอเรชั่นในส่วนล่างสุด Class Diagram เขียนได้2 แบบ รูปที่ 3.9 Sequence Diagram แสดงการท างานของระบบ ATM 22


7. Activity Diagram Activity Diagram จะเป็น Diagram คล้ายกับ State Transition Diagram คือจะเป็น state machine ซึ่งแต่ละ state ของ Activity Diagram นั้นจะเป็นกิจกรรมที่แสดงการปฏิบัติงาน และจะมีการ เปลี่ยน state ก็ต่อเมื่อได้ท างานนั้นเสร็จแล้ว ดังนั้น Activity Diagram จึงเน้นหนักไปที่การไหลของกิจกรรม ใน process หนึ่งๆ รูปที่ 3.10 แสดงตัวอย่าง Class Diagram แบบที่ 1 รูปที่ 3.11 แสดงตัวอย่าง Class Diagram แบบที่ 2 23


Activity Diagram ประกอบด้วยกิจกรรมแสดงด้วยสี่เหลี่ยมมน เชื่อมโยงกันด้วยลูกศรเพื่อแสดง ล าดับการท ากิจกรรม และมีเส้นทึบหนาในแนวนอนซึ่งใช้วาดในกรณีที่ต้องรอกิจกรรมอื่นๆเสร็จหมดก่อนจึงท า กิจกรรมถัดไปได้ นอกจากนี้ยังมีการแบ่งเป็นสวิมเลนส์ (Swimlanes) ซึ่งเป็นการแบ่งกลุ่มกิจกรรมเป็น เลนๆ โดยแบ่งเป็นช่องในแนวดิ่งและก าหนดแต่ละ ช่องด้วยชื่อของออบเจ็กต์ไว้แถบบนสุด ซึ่งเป็น การก าหนดแต่ละเลนว่างานในแต่ละเลนนั้น เกิดขึ้นกับออบเจ็กต์อะไรหรือกล่าวอีกนัยหนึ่ง แต่ละ Swimlanes แสดงถึงกิจกรรมที่เกิด ขึ้นกับออบเจ็กต์ที่เป็นเจ้าของเลนนั้นๆ Activity Diagram ใช้ส าหรับอธิบาย กระแสการไหลของการท างาน (workflow) และแสดงขั้นตอนการท างานของระบบ แต่ละ ขั้นตอนการท างาน เรียกว่า Activity 8. Collaboration Diagram Collaboration Diagram จะเป็น Diagram ที่แสดงการติดต่อกันระหว่าง Class เหมือนกับ Sequence Diagram ข้อมูลที่มีการขนส่งก็จะเหมือนกับ Sequence Diagram แต่ Collaboration Diagram จะมุ่งเน้นไปที่บทบาทของ object แทนที่การเน้นไปที่เวลาที่ message ถูกส่งเหมือนกับ Sequence Diagram Collaboration Diagram ประกอบด้วยวัตถุหรือคลาสเขียนแทนด้วนรูปสี่เหลี่ยม โดยมีฟอร์แมตคือ : ชื่อออบเจ็กต์ : ชื่อคลาสและขีดเส้นใต้ เพื่อแสดงว่าเป็นอินสแตนซ์มีเส้นเชื่อมกันระหว่างวัตถุเรียกว่า Link ซึ่ง แต่ละ Link มีค าอธิบายแสดงขั้นตอนการท างานตามทิศทางลูกศร โดยมีตัวเลขล าดับก ากับไว้เพื่อบอกว่า ขั้นตอนใดท าก่อนท าหลัง ซึ่งแทนแกนเวลาตามด้วยเครื่องหมายโคล่อนและข้อความ ตัวอย่าง Collaboration Diagram Collaboration Diagram จะแสดงการติดต่อสื่อสารระหว่างออบเจ็กต์ต่าง ๆ และความสัมพันธ์ ระหว่างที่แต่ละออบเจ็กต์ติดต่อสื่อสารกัน รูปที่ 3.12 Activity Diagram แสดงการไหลของระบบ ATM 24


9. Component Diagram Component Diagram จะเป็น Diagram ที่แสดงกลุ่มของ Software component ต่างๆ และ ความสัมพันธ์ระหว่าง component เหล่านี้ โดย Software component จะมีอยู่ 3 ประเภทดังนี้ 1. source code components 2. binarycode components 3. executable components ในบางครั้ง software module ก็สามารถจะแสดงด้วย component ได้เหมือนกัน บาง component ก็จะมีอยู่ในตอน compile โปรแกรม เช่น compile-only component, บาง component ก็ จะมีอยู่ในตอน link โปรแกรม และบาง component ก็จะมีอยู่ในตอน run โปรแกรม ในกรณีนี้ก็คือ โปรแกรมที่สามารถ execute ได้แล้วนั่นเอง Component Diagram จะถูกแสดงโดยสี่เหลี่ยมที่ประกอบด้วยสี่เหลี่ยมเล็กอีก 2 รูป ติดอยู่ที่ขอบ ด้านซ้ายและอาจเชื่อมต่อกันด้วยเส้นแสดงความสัมพันธ์แบบพึ่งพิงระหว่างกัน เช่นการเชื่อมกันระหว่าง คอมโพเนนต์ฝั่งไคลเอนท์กับคอมโพเนนต์ฝั่งเซิร์ฟเวอร์โดยมีลูกศรเส้นประเป็นตัวเชื่อมโยงจากคอมโพเนนต์ หนึ่งที่เป็นตัวเรียกใช้ไปยังอีกอินเทอร์เฟซของอีกคอมโพเนนต์หนึ่งที่ถูกเรียกใช้ รูปที่ 3.13 Collaboration Diagram แสดงการท างานการแสดงภาพของจอคอมพิวเตอร์ 25


10. Deployment Diagram Deployment Diagram ใช้ส าหรับแสดงสถาปัตยกรรมของระบบในลักษณะเป็น Physical Architecture คือแสดงว่ามีคอมพิวเตอร์และอุปกรณ์อะไรบ้างที่ต้องการใช้ในระบบสัญลักษณ์จะใช้รูป ลูกบาศก์แทน โดย 1 ลูกบาศก์จะแทน 1 โหนดและแต่ละโหนดก็จะมีcomponent ที่เป็นองค์ประกอบของ โหนดนั้น Deployment Diagram ใช้สัญลักษณ์รูปลูกบาศก์หรือกล่องแทนโหนดต่างๆ โดยสามารถแบ่งโหนด ออกเป็นส่วนต่างๆ ดังนี้ ส่วนแรกเป็นชื่อของโหนด อีกส่วนเป็นการอธิบายว่ามีคอมโพเนนต์ไหนบ้างที่มีการใช้ โหนดนี้การตั้งชื่อโหนดจะใช้อักขระทั่วไปโดยเน้นให้สื่อความหมายของโหนดนั้นและถ้าโหนดนั้นเป็นส่วนหนึ่ง ของแพ็กเกจเราก็อาจใช้ชื่อของแพ็กเกจมาตั้งรวมกับชื่อของโหนดด้วยเพื่อให้รู้ว่าโหนดนั้นเป็นของแพ็กเกจใด Deployment Diagram ใช้ส าหรับแสดงสถาปัตยกรรมของระบบในลักษณะที่เป็น Physical Architecture คือแสดงว่ามีคอมพิวเตอร์และอุปกรณ์อะไรบ้างที่ต้องการใช้ในระบบใช้รูป ลูกบาศก์แทน โดย 1 ลูกบาศก์จะแทน 1 โหนด และแต่ละโหนดก็จะมีcomponent ที่เป็น องค์ประกอบของโหนดนั้น 11. Object Diagram Object Diagram เป็น Diagram ที่ใช้แสดงถึง instance ที่สืบทอดมาจาก class ต่างๆ โดยจะ ประกอบด้วย object และ ค่าข้อมูลของ object นั้นๆ Object Diagram จะสามารถเรียกว่าเป็น instance ของClass Diagram ก็ได้ การใช้Object Diagram หลัก ๆ แล้วจะใช้แสดงตัวอย่างโครงสร้างข้อมูลในระบบ รูปที่ 3.14 Component Diagram ของระบบการลงทะเบียน รูปที่ 3.15 Deployment Diagram 26


แค่นั้น โดยส่วนใหญ่Tools ต่างๆ จะไม่สนับสนุนการสร้าง Object Diagram เพราะ Class Diagram สามารถถูกประยุกต์ใช้เป็น Object Diagram ได้ Object Diagram ประกอบด้วยออบเจ็กต์และความสัมพันธ์ระหว่างออบเจ็กต์ โดยแต่ละออบเจ็กต์จะ แสดงอินสแตนซ์ของแต่ละคลาสที่มีในระบบ ส่วนของความสัมพันธ์ต่างๆ ระหว่างคลาสเช่น Dependency, Generalization, Association จะมีลักษณะเช่นเดียวกับใน Class Diagram จะเห็นว่า Object Diagram จะ เป็นอินสแตนซ์ของคลาส ซึ่งจะมีชื่อและข้อมูลเก็บอยู่ในขณะที่คลาสจะเป็นเพียงตัวแบบที่ยังไม่มีการสร้าง ออบเจ็กต์หรืออินสแตนซ์ ออบเจ็กต์ไดอะแกรม มีความใกล้เคียงกับ คลาสไดอะแกรม สิ่งที่แตกต่างก็คือ ออบเจ็กต์แสดงถึง ตัวแทนออบเจ็กต์ของคลาส และชุดความสัมพันธ์ต่างๆ ในขณะหนึ่งออบเจ็กต์ไดอะแกรมใช้เซตย่อยของ องค์ประกอบจากคลาสไดอะแกรมในอัน ที่จะเน้นด้านความสัมพันธ์ระหว่าง กรณีตัวอย่าง (instances) ของ คลาสในช่วงใดช่วงหนึ่งอย่างไรก็ตาม สังเกตได้ว่า ออบเจ็กต์ไดอะแกรม ไม่ได้แสดงถึงสถาปัตยกรรมที่แตกต่าง กันมากนักกับคลาสไดอะแกรมแต่ก็ได้สะท้อน ให้เห็น ตัวทวีค่า (multiplicity) และบทบาทของคลาสตัวอย่าง ที่สามารถตอบสนองการให้บริการ 12. State Diagram State Diagram จะเป็น dynamicmodel ที่แสดงสถานะ(state) ต่างๆที่ Class หนึ่ง Classจะ เป็นได้ ในระหว่างช่วงชีวิตในการตอบสนองต่อเหตุการณ์(event) ที่เกิดขึ้น โดยทั่วไปแล้ว State Diagram จะ รูปที่ 3.16 Object Diagram แสดงการให้บริการห้องเรียน 27


ไม่ถูกใช้กับ Class ทั้งหมด แต่จะใช้อธิบายเฉพาะ Class ที่มีความซับซ้อนสูงๆ เท่านั้น เพื่อที่จะช่วยให้การ ออกแบบ algorithm ง่ายขึ้น State Diagram จะแสดงจุดเริ่มต้นและจุดสิ้นสุดสถานะโดยจุดเริ่มต้นสถานะจะมีสัญลักษณ์เป็นรูป วงกลมทึบ และจุดสิ้นสุดสถานะจะเป็นรูปวงกลมโปร่งล้อมรอบวงกลมทึบข้างใน ในแต่ละสถานะของ ไดอะแกรมจะถูกแสดงเป็นรูปสี่เหลี่ยมหัวมน และเชื่อมกันด้วยเส้นลูกศรชี้จากสถานะหนึ่งไปยังอีกสถานะหนึ่ง สามารถเขียนค าอธิบายเหตุการณ์ที่ท าให้เปลี่ยนสถานะตรงเส้นลูกศรได้ บาง State Diagram จะมีสถานะ วนเวียน 13. ข้อดีของภำษำ UML 1. เป็นภาษารูปภาพมาตรฐาน (Standard Visual Modeling Laguage) หรือภาษาสากล ที่ใช้ในการ พัฒนาซอฟต์แวร์เชิงวัตถุ สามารถแลกเปลี่ยนโมเดลได้อย่างสื่อความหมายรวมถึงการจัดสร้างเอกสารการ วิเคราะห์ออกแบบระบบ 2. สามารถน าเสนอและสนับสนุนหลักการเชิงวัตถุได้อย่างครบถ้วน ชัดเจนท าให้นักพัฒนา ระบบ สามารถท าความเข้าใจเกี่ยวกับปัญหา และค้นพบวิธีแก้ไขรวดเร็ว 3. ไม่ผูกติดกับโปรแกรมภาษาใดภาษาหนึ่ง โมเดลที่ถูกสร้างขึ้นจากภาษามาตรฐาน UML นี้ สามารถ ถูกแปลงไปเป็นระบบจริงที่ถูกสร้างขึ้นด้วยภาษาโปรแกรมเชิงวัตถุใด ๆก็ได้ 4. เป็นภาษาที่ง่ายต่อการท าความเข้าใจผู้ที่ท าการศึกษาหรือน าไปใช้งาน ไม่จ าเป็นต้องมีความรู้อื่นใด นอกจากแนวคิดเชิงวัตถุ ไม่ว่าจะเป็นความรู้ด้านการค านวณหรือด้านอื่น ๆ ก็ตาม 5. สามารถถูกแปลงเป็นภาษาที่ใช้ในการสร้างระบบขึ้นจริงได้อย่างอัตโนมัติท าให้ช่วยลดภาระเวลา และค่าใช้จ่ายในการพัฒนาระบบเป็นอย่างมาก 6. สนับสนุนการขยายปรับปรุงระบบ การเพิ่มแก้ไขระบบ สามารถกระท าได้กับโมเดลก่อนลงมือ พัฒนาเพิ่มเติมจริง ซึ่งจะง่ายกว่าการเริ่มต้นท าการเปลี่ยนแปลงที่ซอร์สโค้ด 7. UML ถูกใช้ในการบันทึกความคิดของนักพัฒนา ในลักษณะของเอกสารที่พร้อมจะถูก น ามาท า ความเข้าใจหรือสานต่ออีกครั้งได้อย่างรวดเร็ว รูปที่ 3.17 State Diagram แสดงสถานภาพ (State )ที่เป็นไปได้ของ Object ใด ๆ รวมทั้งแสดงเหตุการณ์ (event) ที่ท าให้เกิดการเปลี่ยนสภาพของ Object 28


หน่วยที่ 4 กระบวนกำรคิดวิเครำะห์และออกแบบเชิงวัตถุ กำรวิเครำะห์และออกแบบเชิงวัตถุ (OOAD) 29


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


และวาดในแผนภาพอย่างง่าย เราจะไม่กล่าวถึงสองกิจกรรมแรกเพียงกิจกรรมสุดท้าย สิ่งเหล่านี้ได้อธิบาย รายละเอียดไว้แล้วในวิศวกรรม กำรออกแบบเชิงวัตถุ ขั้นตอนการวิเคราะห์ระบุวัตถุความสัมพันธ์และพฤติกรรมโดยใช้แบบจ าลองความคิด (นิยามเชิง นามธรรมส าหรับวัตถุ) ขณะอยู่ในขั้นตอนการออกแบบเราอธิบายถึงวัตถุเหล่านี้ (โดยการสร้างแผนภาพชั้น เรียนจากแผนภาพความคิด -โดยปกติจะท าแผนที่แบบจ าลองความคิดกับแผนภาพชั้นเรียน) คุณลักษณะ พฤติกรรมและการโต้ตอบนอกเหนือจากการประยุกต์ใช้หลักการและรูปแบบการออกแบบซอฟต์แวร์ซึ่งจะ กล่าวถึงในบทช่วยสอนในภายหลัง อินพุตส าหรับการออกแบบเชิงวัตถุมีให้โดยเอาต์พุตของการวิเคราะห์เชิง วัตถุ แต่การวิเคราะห์และการออกแบบอาจเกิดขึ้นควบคู่กันไปและอีกกิจกรรมหนึ่งสามารถใช้ผลลัพธ์ของ กิจกรรมหนึ่งได้ ในการออกแบบเชิงวัตถุเราอธิบายชั้นเรียนและความสัมพันธ์โดยใช้แผนภาพชั้นเรียน อธิบาย ปฏิสัมพันธ์ระหว่างวัตถุโดยใช้แผนภาพล าดับ ใช้หลักการออกแบบซอฟต์แวร์และรูปแบบการออกแบบ แผนภาพชั้นเรียนให้การแสดงภาพของชั้นเรียนที่คุณต้องการ และนี่คือที่ที่คุณจะต้องเจาะจงเกี่ยวกับหลักการ เชิงวัตถุเช่นการถ่ายทอดทางพันธุกรรมและความหลากหลาย การอธิบายปฏิสัมพันธ์ระหว่างออบเจ็กต์เหล่านั้นช่วยให้คุณเข้าใจความรับผิดชอบของอ็อบเจกต์ต่าง ๆ รวมถึงพฤติกรรมที่ต้องมีได้ดีขึ้น 1. วัตถุหรืออ็อบเจ็กต์ (Object) คือ ทุกสิ่งที่เราสนใจในเหตุการณ์ใดเหตุการณ์หนึ่งที่เกิดขึ้นทั้งที่เรา สามารถจับต้องได้และจับต้องไม่ได้ เช่น คน สถานที่ เหตุการณ์ หรือรายการต่าง ๆ เป็นต้น วัตถุจะ ประกอบด้วยคุณสมบัติ กิจกรรม การกระท าวิธีการ และมี ความสัมพันธ์กันระหว่างวัตถุภายในระบบ 2. คลำส (Class) คือ กลุ่มของวัตถุที่มีโครงสร้างและพฤติกรรมที่เหมือนกัน หรืออาจเปรียบได้ว่า คลาส เปรียบเสมือนรูปแบบที่ใช้เพื่อสร้างวัตถุ เช่น คลาสของรถยนต์ว่ามี4 ล้อ ใช้น้ า มันเป็นเชื้อเพลิง ฉะนั้น จึง สามารถจัดรถยนต์ฮอนด้า รถยนต์โตโยต้า รถยนต์ฟอร์ด เป็นอ็อบเจ็กต์ของคลาสรถยนต์ได้ แต่ไม่สามารถ จัด รถจักรยานยนต์เป็นอ็อบเจ็กต์ในคลาสรถยนต์ได้เพราะมีคุณสมบัติไม่ตรงกับนิยามที่วางไว้เป็นต้น คลาส ประกอบด้วย ชื่อของคลาส แอททริบิวท์และโอเปอเรชั่น ในภาพที่ 4.1 แสดงคลาส Student ที่มี6 แอททริ บิวท์และ 2 โอเปอเรชั่น 31


3. แอททริบิวท์ (Attributes) คือ คุณสมบัติที่ใช้บรรยายคลาสหรืออ็อบเจ็กต์โดยคุณสมบัติเหล่านี้ อยู่ภายในขอบเขตที่เราสนใจ สี ขนาดเครื่องยนต์รุ่นความเร็วเป็นต้น 4. กำรด ำเนินกำรหรือโอเปอเรชั่น (Operation) หรือ เมธอด (Method) ในอ็อบเจ็กต์แต่ละอ็อบ เจ็กต์ต้องมีความสามารถในการด าเนินการ หมายถึง การกระท าที่อ็อบเจ็กต์สามารถกระท าได้หรือสามารถถูก ร้องขอให้กระท าได้ ความสามารถในการด าเนินการบางอย่างถูกแสดง ออกมาให้เห็นเป็นพฤติกรรมได้ต้องเกิด จากการสื่อสารหรือปฏิสัมพันธ์กันระหว่างอ็อบเจ็กต์ ในทางการเขียน โปรแกรม เมธอด (Method) เป็น ชุดค าสั่งที่เขียนขึ้นมาอย่างเป็นลาดับขั้นตอนเพื่อให้มีการด าเนินการขึ้นมักใช้ ค าว่า “Operation” และ “Method” ในความหมายเดียวกัน 5. กำรสืบทอดคุณสมบัติ(Inheritance) เป็นวิธีการในการสร้างคลาสใหม่จากคลาสเดิมที่มีอยู่ การ สืบทอดคุณสมบัติถือเป็นเรื่องที่ส าคัญ ส าหรับเทคโนโลยีเชิงวัตถุ เนื่องจากการสืบทอดคุณสมบัตินี้ท าให้เกิด ข้อดี คือ ท าให้ได้ระบบที่มีโครงสร้างที่เป็น ระบบ ปรับเปลี่ยนได้ง่าย และท าให้ลดเวลา ค่าใช้จ่ายในการพัฒนา ระบบการสืบทอดคุณสมบัติของคลาสใน ระบบท าให้เกิดคลาสย่อย (Subclass) คลาสย่อยจะรับคุณสมบัติของ คลาสที่ให้ก าเนิด ซึ่งเรียกว่า คลาสหลัก (Super Class) เช่น คลาส Employee เป็นคลาสหลักที่มีแอททริบิวท์ 8 แอททริบิวท์ที่อธิบายคุณสมบัติของ คลาสEmployee และมีโอเปอเรชั่น 4โอเปอเรชั่นจากคลาส Employee สามารถสืบทอดคุณสมบัติของ คลาสให้เกิดเป็นคลาสย่อยคือ คลาส Manager ที่มีคุณสมบัติทุก อย่างเหมือนคลาสหลัก แต่มีคุณสมบัติเพิ่ม ขึ้นมาคือมีแอททริบิวท์เงินประจาต าแหน่ง (Exsalary) และโอเปอ เรชั่นออกคาสั่ง (Order) ซึ่งเป็น ลักษณะเฉพาะของคลาส Manager 6. โพลิมอร์ฟิสซึม (Polymorhpism) หมายถึง คลาสต่างกันสามารถตอบสนองต่อการด าเนินการ ชื่อเดียวกัน โดยอาจให้พฤติกรรมหรือ วิธีการกระทาต่อการด าเนินการนั้นต่างกันได้ เช่น Draw() คือ ฟังก์ชัน การวาดซึ่งมีความสามารถในการวาดรูป ได้หลายลักษณะมิได้เฉพาะเจาะจงเช่น การวาดรูปวงกลม วงรี สามเหลี่ยม สี่เหลี่ยม เป็นต้น ซึ่งหากต้องการให้ มีการตอบสนองรูปวาดต่าง ๆ ผู้ใช้สามารถติดต่อได้ด้วยการใช้ ฟังก์ชัน Draw() เพียงฟังก์ชันเดียวส่วนจะมีการ ตอบสนองการวาดในลักษณะใดนั้นขึ้นอยู่กับรายละเอียดของ คาสั่ง ดังนั้นผู้ใช้งานไม่จ าเป็นต้องจดจ าฟังก์ชันใน การวาดมากมายซึ่งแตกต่างจากการเขียนโปรแกรมแบบเดิม ที่จ าเป็นต้องมีฟังก์ชันการวาดต่าง ๆ ในการวาดรูป เหล่านั้น เช่น ฟังก์ชันวาดรูปสี่เหลี่ยม ฟังก์ชันวาดรูป สามเหลี่ยม ฟังก์ชันวาดรูปวงกลม เป็นต้น 32


7. เอ็นแคปซูโลชั่น (Encapsulation) หมายถึง กระบวนการซ่อนรายละเอียดของคุณลักษณะต่าง ๆ และรายละเอียดการท างานของคลาส เอาไว้ภายในโดยการท าสิ่งที่อยู่ภายนอกคลาสจะติดต่อกับคลาสได้ต้องติดต่อผ่านทางช่องทางที่คลาสเตรียมไว้ ให้เท่านั้น หลักการนี้ท าให้เกิดการมองคลาสใน 2 ลักษณะคือ การมองคลาสจากภายใน และมองคลาสจาก ภายนอก ถ้ามองคลาสจากภายในตัวคลาสเองจะเห็นรายละเอียดทั้งหมดของคลาสแต่ถ้ามองคลาสจาก ภายนอก จะเห็นเฉพาะสิ่งที่คลาสเปิดเผยให้ได้เห็นผ่านทางที่กาหนดเท่านั้น การที่สิ่งที่อยู่ภายนอกคลาสไม่ สามารถเห็น รายละเอียดของคลาสจากภายนอกได้นั้นเรียกว่า การซ่อนข้อมูล (Information Hiding) ซึ่ง หมายถึง การซ่อน รายละเอียดของแอททริบิวท์และการดาเนินการของคลาสจากภายนอก ระดับในการเข้าถึง แอททริบิวท์และ โอเปอเรชั่นของคลาส มี3 ระดับ คือ ไพรเวต (Private) โปรเท็กเท็ต (Protected) และพับ ลิก (Public) 7.1 ไพรเวต แอททริบิวท์และ/หรือการดาเนินการของคลาสที่ถูกกาหนดเป็นไพรเวต ไม่ถูก เปิดเผย แก่ภายนอกและไม่สามารถเข้าถึงได้โดยตรงจากภายนอก แต่สามารถเข้าถึงได้จากภายในตัวคลาสเอง สัญลักษณ์ที่ใช้ระบุในแผนภาพว่าแอททริบิวท์ใดการด าเนินการใดเป็นไพรเวตคือ เครื่องหมายลบ (-) 7.2 โปรเท็กเท็ต แอททริบิวท์และ/หรือการดาเนินการของคลาสที่ถูกกาหนดให้เป็นโปรเท็กเท็ต จะไม่ถูกเปิดเผยแก่ภายนอกและไม่สามารถเข้าถึงได้โดยตรงจากภายนอก แต่สามารถเข้าถึงได้จากภายในตัว คลาสเองโปรเท็กเท็ตแอททริบิวท์และโปรเท็กเท็ตโอเปอเรชั่นจะถูกถ่ายทอดไปให้กับคลาสย่อยและสามารถ เข้าถึงได้จากภายในซับคลาสสัญลักษณ์ที่ใช้ในแผนภาพคือ เครื่องหมายชาร์ป (#) 7.3 พับลิก แอททริบิวท์และ/หรือการดาเนินการของคลาสที่ถูกก าหนดให้เป็นพับลิกจะถูก เปิดเผยและถูกเข้าถึงได้โดยตรงจากภายนอกไม่มีการปกปิดใด ๆ ทั้งสิ้น รวมทั้งยังสามารถถ่ายทอดไปยังคลาส ย่อยได้ด้วยแอททริบิวท์และการดาเนินการที่ถูกก าหนดให้เป็นพับลิกสัญลักษณ์ที่ใช้ในแผนภาพคือ เครื่องหมาย บวก (+) ประโยชน์ของการห่อหุ้มแอททริบิวท์และการด าเนินการ คือ สามารถป้องกันความเสียหายของ แอททริบิวท์ และการด าเนินการจากการเข้าถึงของอ็อบเจ็กต์อื่นโดยไม่ได้รับอนุญาต เนื่องจากถ้ามีการอนุญาต ให้อ็อบ 33


เจ็กต์อื่นสามารถเข้าถึงส่วนของโปรแกรมทั้งหมดจะส่งผลให้แอททริบิวท์และเมธอดนั้นถูกเรียกไปใช้งาน อย่าง ผิด ๆ ได้ง่ายท าให้ค่าของแอททริบิวท์เปลี่ยนแปลงไปซึ่งอาจท าให้โปรแกรมท างานผิดพลาดได้ แอ็บสเตรคชั่น (Abstraction) แอ็บสเตรคชั่นเป็นการมองสิ่งต่าง ๆ แล้วใส่ความคิดรวบยอด (Concept) ให้กับสิ่งที่มองนั้นว่ามี คุณลักษณะที่ส าคัญอย่างไรหรือกล่าวว่าแอ็บสเตรคชั่น คือ กระบวนการในการสร้างแนวคิดของคลาสจากกลุ่ม ของอ็อบเจ็กต์ที่สนใจ ดังนั้นการมองอ็อบเจ็กต์หนึ่งชนิดของคนหลายคนจะมีมุมมองที่แตกต่างกันขึ้นอยู่กับ ความสนใจในสิ่งนั้น แอ็บสเตรคชั่นเป็นส่วนหนึ่งที่ช่วยในการวิเคราะห์ถึงปัญหาของระบบงานที่ต้องการพัฒนา ซึ่งมีกระบวนการ 4 ประเภท คือ Classification Abstraction Association Abstraction Aggregation Abstraction และ Generalization Abstraction 1. Classification Abstraction คือ กระบวนการในการให้แนวคิดกับอ็อบเจ็กต์ที่สนใจ เพื่อก่อให้เกิดแนวคิดของคลาส หัวใจส าคัญ ของ Classification Abstraction คือ แนวคิดรวบยอดที่ให้แก่อ็อบเจ็กต์ การให้แนวความคิดคือ การให้ ขอบเขต แก่อ็อบเจ็กต์ว่าต้องมีคุณลักษณะอะไรบ้าง 2. Association Abstraction Association หมายถึง ความสัมพันธ์ระหว่างคลาส หรืออ็อบเจ็กต์ที่อยู่ในระดับเดียวกันคือ คลาส ทั้ง สองมีความส าคัญเท่าเทียมกันไม่มีคลาสใดเป็นองค์ประกอบของคลาสใด เช่น ลูกค้าจัดทาใบสั่งซื้อสินค้า นักศึกษาลงทะเบียนวิชาเรียน สินค้าอยู่ในคลังสินค้า เป็นต้น และกระบวนการในการหาความสัมพันธ์ระหว่าง คลาสที่สนใจในลักษณะที่คลาสทั้งสองมีความเกี่ยวข้องกันในระดับเดียวกัน เรียกว่า Association Abstraction คลาสที่มีความสัมพันธ์กันถูกเชื่อมความสัมพันธ์ด้วยชื่อความสัมพันธ์ (Association Name) เช่น ลูกค้าจัดทา ใบสั่งซื้อ คลาสลูกค้ากับคลาสใบสั่งซื้อถูกเชื่อมความสัมพันธ์ด้วยAssociationที่ชื่อว่าจัดทา เป็น ต้น ดังนั้นการ เขียนสัญลักษณ์แทนความสัมพันธ์ระหว่างคลาสจึงควรระบุชื่อ Associationไว้ด้วยโดยอาจใช้ ลูกศรแสดงให้เห็น ทิศทางของความสัมพันธ์ 3. Aggregation Abstraction 34


เป็นความสัมพันธ์อีกชนิดหนึ่ง โดยที่ Aggregation หมายถึง ความสัมพันธ์ระหว่างคลาสหรืออ็อบ เจ็กต์แบบต่างระดับกัน คือ คลาสหนึ่งมีความสัมพันธ์แบบเป็นองค์ประกอบของอีกคลาสหนึ่งและกระบวนการ ในการหาความสัมพันธ์ระหว่างคลาสในลักษณะนี้เรียกว่า Aggregation Abstraction สัญลักษณ์ความสัมพันธ์ แบบ Aggregation ใช้เส้นตรงหัวข้าวหลามตัดโปร่งเชื่อมทั้งสองคลาสหันหัวข้าวหลามตัดโปร่งไปทางด้าน คลาส ที่เป็นคลาสหลัก ตัวอย่าง ห้องเรียน (Class) เกิดจากการรวมกันของนักศึกษา (Student) อย่างน้อย หนึ่งคน อาจารย์ผู้สอน (Lecturer) หนึ่งคน และอุปกรณ์การสอน (Teaching Material) ซึ่งอาจจะมีหรือไม่มี เลยก็ได้ 4. Generalization Abstraction Generalization หมายถึง ความสัมพันธ์แบบต่างระดับระหว่างคลาสหลัก (Superclass) กับคลาส ย่อย(Subclass) โดยที่คลาสย่อยจะสืบทอดคุณลักษณะทั้งแอททริบิวท์และการด าเนินการที่ส าคัญของคลาส หลักนั้นมาด้วยทาให้คลาสรองมีแอททริบิวท์และการด าเนินการบางอย่างเหมือน กับคลาสหลัก ใน ขณะเดียวกัน คลาสย่อยก็จะสามารถสร้างแอททริบิวท์และการด าเนินการเพิ่มเติมได้ด้วย ยูเคสไดอะแกรม เมื่อเริ่มต้นการพัฒนาระบบทุกครั้งผู้พัฒนาจะต้องเริ่มต้นที่ขั้นตอนแรก คือการค้นหาและเก็บ รวบรวมข้อมูล ความสามารถของระบบที่ผู้ใช้ต้องการซึ่งถือว่าส าคัญมากในการพัฒนาระบบในมาตรฐาน ยูเอ็ม แอลจะใช้ยูสเคสไดอะแกรมเพื่อเป็นเทคนิคในการจ าลองความต้องการของผู้ใช้รวมถึงแสดงความสามารถ ของ ระบบ ยูสเคสไดอะแกรมเป็นไดอะแกรมมาตรฐานที่สามารถท าความเข้าใจได้โดยง่าย ส่วนประกอบส ำคัญในยูสเคสไดอะแกรม ส่วนประกอบที่ส าคัญของยูสเคสไดอะแกรมมี3 ส่วนคือ ยูสเคส (Use Case) แอ็กเตอร์ (Actor) เส้น แสดงความสัมพันธ์ (Relationship) ในการสร้างยูสเคสไดอะแกรมสิ่งส าคัญคือการค้นหาว่าระบบ ท าอะไรได้ บ้าง โดยไม่สนว่าจะทางานอย่างไรหรือใช้เทคนิคการสร้างอย่างไร 1. ยูสเคส คือ ความสามารถหรือฟังก์ชันที่ระบบจะต้องท าได้จึงจะถือว่าระบบไม่มี ข้อผิดพลาด ซึ่งมี คุณสมบัติดังนี้ 1) ต้องถูกกระท าโดยแอ็กเตอร์และแอ็กเตอร์เป็นผู้ติดต่อกับระบบตามยูสเคสที่ก าหนด 2) ยูสเคสรับข้อมูลจากแอ็กเตอร์และส่งข้อมูลให้แอ็กเตอร์ นั่นคือแอ็กเตอร์ กระท ากับ ยูสเคสโดย การส่งข้อมูลเข้าสู่ระบบตามยูสเคสหรือรอรับค่าที่ระบบส่งกลับให้ 3) ยูสเคสถือว่าเป็นการรวบรวมคุณลักษณะความต้องการในระบบอย่างสมบูรณ์ เปรียบเสมือนเป็น การสรุปความต้องการของลูกค้าออกเป็นข้อ ๆ 2. แอ็กเตอร์ คือ ผู้ที่กระทากับยูสเคสหรือใช้งานยูสเคสอาจเป็นคนหรือไม่ก็ได้ซึ่งจะเป็นผู้ที่ ส่งข้อมูล หรือรับข้อมูล หรือแลกเปลี่ยนข้อมูลข่าวสารกับระบบที่กาลังพัฒนา ชื่อของแต่ละแอ็กเตอร์ไม่ใช่เป็น ชื่อ เฉพาะเจาะจงจะไม่บอกว่าผู้ที่กระทาชื่ออะไรเป็นใครแต่จะบอกถึงประเภทของแอ็กเตอร์หรือบทบาทและ หน้าที่ต่อระบบ ในการหาแอ็กเตอร์ของระบบจะดูที่ว่าใครเป็นผู้ใช้ระบบในฟังก์ชันที่ส าคัญ ใครเป็นผู้ดูแล L SEP


ระบบ อุปกรณ์ฮาร์ดแวร์ใดบ้างที่กระทาการเชื่อม ต่อกับระบบ และระบบข้างนอกใดบ้างที่เชื่อมต่อรับส่งข้อมูล กับ ระบบที่เราสร้าง แอ็กเตอร์ในยูเอ็มแอลแทนด้วยรูปคน (Stick Man) 3. เส้นแสดงควำมสัมพันธ์เป็นการเชื่อมโยงระหว่างยูสเคสและแอ็กเตอร์ เป็นเส้นที่แสดง ความสัมพันธ์ระหว่างยูสเคส มี2 ชนิด คือ 1) ความสัมพันธ์แบบขยาย (Extend Relationship) ยูสเคสหนึ่งอาจถูกช่วยเหลือโดยการ ท างาน จากยูสเคสอื่น เช่น ยูสเคสการใส่รหัสอาจถูกช่วยเหลือโดยยูสเคสค าอธิบายการใส่รหัส สัญลักษณ์ใน ยูเอ็มแอล คือลูกศรเส้นประที่ชี้จากยูสเคสแรกไปยังยูสเคสที่ถูกช่วยเหลือหรือถูกขยาย โดยมีคาว่า “extend” อยู่ใน เครื่องหมายสเตริโอไทป์ (stereotype) <<extend>> อยู่ที่กึ่งกลางลูกศร 2) ความสัมพันธ์แบบรวม (Include Relationship) ยูสเคสหนึ่งอาจจาเป็นต้องอาศัยการท างาน ของยูสเคสอื่น สาหรับยูสเคสที่ถูกเรียกใช้โดยยูสเคสอื่น สัญลักษณ์ในยูเอ็มแอลของความสัมพันธ์ คือ กำรสร้ำงคลำสไดอะแกรม วัตถุประสงค์ของการสร้างคลาสไดอะแกรมเพื่อแสดงถึงโครงสร้างของระบบ ที่ประกอบด้วย คลาส และความสัมพันธ์ระหว่างคลาส คลาสไดอะแกรมถือว่าเป็นไดอะแกรมที่มีความส าคัญมากเพราะถูกใช้ เป็น ไดอะแกรมหลักในการสร้างไดอะแกรมอื่นอีกหลายประเภทสิ่งส าคัญในการสร้างคลาสไดอะแกรม คือ การ ค้นหาแนวคิด ต่าง ๆ ที่อยู่ในขอบข่ายของระบบที่กาลังสนใจ มีวิธีการในการค้นหาคลาสดังนี้ 1. ค านามที่ปรากฏอยู่ในคาบรรยายยูสเคสจะถูกสร้างเป็นคลาส เช่น คลาสรถยนต์ คลาสวิชา เรียน คลาสหนังสือ คลาสสินค้า เป็นต้น 2. ค าวิเศษณ์ที่ปรากฏอยู่ในคาบรรยายยูสเคสจะถูกสร้างเป็นแอททริบิวท์ เช่น สีรถ ยี่ห้อรถ เป็นต้น 3. ค ากิริยาที่ปรากฏอยู่ในคาบรรยายยูสเคสจะถูกสร้างเป็นโอเปอเรชั่น เช่น สตาร์ทรถ เบรก ลงทะเบียน ยกเลิกรายวิชา เป็นต้น สัญลักษณ์ ตามมาตรฐานยูเอ็มแอล คลาสไดอะแกรมประกอบไปด้วยสัญลักษณ์ของคลาสและเส้นแสดง ความสัมพันธ์ สัญลักษณ์คลาสประกอบด้วย 3 ส่วนคือ ชื่อคลาส (Class Name) แอททริบิวท์และโอเปอเรชั่น ความสัมพันธ์ระหว่างคลาส ซึ่งความสัมพันธ์เหล่านี้สามารถเป็นได้3 รูปแบบ ดังนี้ 1. ความสัมพันธ์แบบพึ่งพิง (Dependency) ความสัมพันธ์แบบนี้เกิดขึ้นเมื่อการเปลี่ยนแปลง ที่เกิด ขึ้นกับคลาสที่ถูกพึ่งพิง (Independent Class) ส่งผลต่อคลาสที่พึ่งพิง (Dependent Class) คลาส ดังกล่าว 35


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


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


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


1. ส่วนขยำยกำรสร้ำงแบบจ ำลองธุรกิจ UML เรียกใช้แบบแผนเฉพาะของคลาสและการเชื่อมโยงที่ขยาย UML เพื่อให้ครอบคลุมแนวคิดการ สร้างแบบจ าลองทางธุรกิจ ซึ่งรวมถึงการสร้างแบบแผนในชั้นเรียน เอนทิตีและการสร้างความสัมพันธ์แบบ ตายตัว เป็นการสื่อสารอย่างง่ายหรือการสมัครสมาชิกระหว่างแหล่งที่มาและเป้าหมาย ภำษำ และข้อจ ำกัดของวัตถุ (OCL) รูปภาพสามารถอธิบายได้หลายค า ในท านองเดียวกันแบบจ าลองกราฟิกสามารถอธิบายพฤติกรรม บางอย่างได้เท่านั้น หลังจากนั้นจ าเป็นต้องกรอกรายละเอียดเพิ่มเติมด้วย อย่างไรก็ตามการอธิบายบางสิ่งนี้ ด้วยค าพูดมักท าให้เกิดความคลุมเครือ นั่นคือ "เขาหมายความว่าอย่างไรเมื่อเขียนอย่างนั้น" วัตถุ ภาษาข้อ จ ากัด (OCL) รวมอยู่ใน UML เป็นมาตรฐานส าหรับการระบุรายละเอียดเพิ่มเติมหรือข้อจ ากัดที่แม่นย า เกี่ยวกับโครงสร้างของแบบจ าลอง OCL ได้รับการพัฒนาภายในแผนกประกันภัยของไอบีเอ็มเป็นภาษาส าหรับการสร้างแบบจ าลองทาง ธุรกิจ OCL เป็นภาษาทางการที่ออกแบบมาเพื่อให้อ่านและเขียนได้ง่าย OCL มีความเป็นทางการมากกว่า ภาษาธรรมชาติ แต่ไม่แม่นย าเท่ากับภาษาโปรแกรม -ไม่สามารถใช้เขียนตรรกะของโปรแกรมหรือการควบคุม โฟลว์ได้ เนื่องจาก OCL เป็นภาษาส าหรับการแสดงออกที่บริสุทธิ์ค าแถลงจึงได้รับการรับรองว่าไม่มี ผลข้างเคียง –เพียงแต่ให้คุณค่าและไม่สามารถเปลี่ยนสถานะของระบบได้ กำรวิเครำะห์ตำมควำมรับผิดชอบด้วยกำร์ด CRC เทคนิคที่ใช้กันอย่างแพร่หลายในการเข้าสู่ 'ความคิด' ของการคิดเชิงวัตถุคือการวิเคราะห์ที่ขับเคลื่อน ด้วยความรับผิดชอบด้วยบัตร Class Responsibility and Collaborator (CRC) ด้วยเทคนิคนี้สามารถกรอง คลาสที่ค้นพบระหว่างการวิเคราะห์เพื่อพิจารณาว่าคลาสใดที่จ าเป็นอย่างแท้จริงส าหรับระบบ กำรสร้ำงแบบจ ำลองข้อมูลเชิงสัมพันธ์ แม้ว่าฐานข้อมูลเชิงวัตถุจะได้รับความนิยมมากขึ้น แต่ในสภาพแวดล้อมในการพัฒนาปัจจุบัน ฐานข้อมูลเชิงสัมพันธ์ยังคงเป็นวิธีการหลักในการจัดเก็บข้อมูล แผนภาพคลาส UML สามารถใช้เพื่อสร้าง แบบจ าลองฐานข้อมูลเชิงสัมพันธ์ที่ระบบใช้อย่างไรก็ตามไดอะแกรมการสร้างแบบจ าลองข้อมูลแบบดั้งเดิมจะ เก็บข้อมูลเพิ่มเติมเกี่ยวกับฐานข้อมูลเชิงสัมพันธ์และเหมาะสมกว่าในการสร้างแบบจ าลอง การใช้แผนภาพ Entity Relationship (ER) เป็นส่วนขยาย UML ที่ส าคัญส าหรับการสร้างแบบจ าลองฐานข้อมูลเชิงสัมพันธ์ แผนภำพกำรโต้ตอบ Use Case ถูกสร้างเป็นแบบจ าลองส าหรับกระบวนการทั้งหมดที่ระบบจะต้องด าเนินการ อธิบาย กระบวนการเอาไว้ภายใน Use Case โดยค าอธิบายอาจจะเป็นข้อความหรือล าดับขั้นตอนในการด าเนินการ นอกจากนี้ยังสามารถใช้แผนภาพกิจกรรมเพื่อจ าลองสถานการณ์แบบกราฟิกได้อีกด้วย ตรวจสอบระบบด้วย วิธีนี้Use Cases จะถูกตรวจสอบและขยายเพื่อแสดงว่าวัตถุใดที่สัมพันธ์กันท าให้พฤติกรรมเหล่านี้เกิดขึ้น แผนภาพล าดับและการท างานร่วมกันใช้เพื่อแสดงความสัมพันธ์ของวัตถุ คลำสและไดอะแกรมกำรน ำไปใช้งำน 40


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


การน าระบบไปใช้เกี่ยวกับการแปลข้อมูลจากแบบจ าลอง UML หลายแบบให้เป็นรหัสและโครงสร้าง ฐานข้อมูล เพื่อสร้างแบบจ าลองระบบขนาดใหญ่ที่จะมีประโยชน์ในการแบ่งระบบออกเป็นชั้นธุรกิจ (รวมถึงอ็ อบเจ็กต์อินเทอร์เฟซผู้ใช้) เลเยอร์แอปพลิเคชัน (รวมถึงอ็อบเจ็กต์การน าไปใช้งาน) และชั้นข้อมูล (รวมถึง โครงสร้างฐานข้อมูลและอ็อบเจ็กต์การเข้าถึง) กำรด ำเนินกำรออกแบบฐำนข้อมูล ชั้นข้อมูลของคลาสไดอะแกรมจะสามารถใช้เพื่อการออกแบบฐานข้อมูลเชิงวัตถุ สมารถน าไปใช้ได้ โดยตรงหรือเป็นส่วนขยาย UML ที่แมปกับแผนภาพ Entity Relation ส าหรับการวิเคราะห์ความสัมพันธ์ของ เอนทิตีเพิ่มเติม ในแผนภาพ ER สามารถสร้างแบบจ าลองความสัมพันธ์ระหว่างเอนทิตีได้ตามแอตทริบิวต์ที่ ส าคัญ แผนภาพ ER เชิงตรรกะเป็นพื้นฐานในการสร้างแผนภาพทางกายภาพที่แสดงถึงตารางจริงและ ความสัมพันธ์ของฐานข้อมูลเชิงสัมพันธ์ กำรทดสอบตำมข้อก ำหนด ทดสอบเพื่อตรวจสอบระบบดูว่าระบบเป็นไปตามข้อก าหนดเบื้องต้นหรือไม่ ขั้นตอนของ Use Cases จะถูกด าเนินการเพื่อตรวจสอบว่าระบบตรงตามความต้องการของผู้ใช้หรือไม่ กำรจัดระบบด้วยแพ็คเกจ ภารกิจหลักอย่างหนึ่งในการสร้างแบบจ าลองระบบซอฟต์แวร์ขนาดใหญ่คือการแยกย่อยออกเป็นส่วน ที่จัดการได้ก่อน ไม่ว่าพื้นที่เหล่านี้จะเรียกว่าโดเมนหมวดหมู่หรือระบบย่อยก็เหมือนกัน : แบ่งระบบออกเป็น ส่วนที่มีหัวข้อที่คล้ายคลึงกัน UML น าเสนอแนวคิดของแพ็กเกจว่าเป็นไอเท็มสากลในการจัดกลุ่มองค์ประกอบท าให้ผู้สร้างโมเดล สามารถแบ่งย่อยและจัดหมวดหมู่ระบบได้ สามารถใช้แพ็กเกจได้ในทุกระดับตั้งแต่ระดับสูงสุดซึ่งใช้ในการ แบ่งย่อยระบบออกเป็นโดเมนไปจนถึงระดับต่ าสุดซึ่งใช้ในการจัดกลุ่มกรณีการใช้งานคลาสหรือส่วนประกอบ แต่ละรายการ กำรใช้Case Modeling 42


Use Case modeling เป็นเทคนิคที่ง่ายและมีประสิทธิภาพที่สุดส าหรับการสร้างโมเดล เป็น ข้อก าหนดของระบบจากมุมมองของผู้ใช้Use Case เพื่อจ าลองวิธีการท างานของระบบหรือธุรกิจในปัจจุบัน หรือวิธีที่ผู้ใช้ต้องการให้ท างาน ไม่ใช่แนวทางเชิงวัตถุจริง ๆ มันเป็นรูปแบบของการสร้างแบบจ าลอง กระบวนการจริง ๆ อย่างไรก็ตามก็ถือว่าเป็นวิธีการที่ยอดเยี่ยมในการน าไปสู่การวิเคราะห์ระบบเชิงวัตถุ กรณี การใช้งานมักจะเป็นจุดเริ่มต้นของการวิเคราะห์เชิงวัตถุด้วย UML จับภำพและ / หรือตรวจสอบข้อก ำหนด วัตถุประสงค์สุดท้ายของการออกแบบซอฟต์แวร์คือการตอบสนองความต้องการของผู้ใช้ส าหรับระบบ ข้อก าหนดเหล่านี้อาจเป็นข้อก าหนดด้านซอฟต์แวร์ การก าหนดผลิตภัณฑ์หรือข้อก าหนดการทดสอบ เป้าหมายของการรวบรวมและตรวจสอบตามความต้องการของผู้ใช้เพื่อให้แน่ใจว่าข้อก าหนดทั้งหมดเป็นไป ตามการออกแบบ และการออกแบบนั้นสอดคล้องกับข้อก าหนดที่ก าหนดไว้หรือไม่ บ่อยครั้งข้อก าหนดของระบบที่มีอยู่แล้วในรูปแบบของเอกสาร Use Case สามารถเชื่อมโยงทุก สถานการณ์กับข้อก าหนดที่เป็นไปตามข้อก าหนด หากไม่มีการสร้างข้อก าหนดการสร้างแบบจ าลองระบบ Use Cases จะช่วยให้สามารถค้นหาข้อก าหนดได้ กำรสร้ำงแบบจ ำลองล ำดับทำงเลือกผ่ำนควำมสัมพันธ์ "ขยำย" โดยปกติแล้วหนึ่งรุ่นแต่ละ Use Case จะมีล าดับการด าเนินการตามปกติ จากนั้นผู้ใช้จะพิจารณา เงื่อนไข "what if" ส าหรับแต่ละขั้นตอนและพัฒนา Use Cases ตามล าดับเหตุการณ์อื่นเหล่านี้ ล าดับ ทางเลือกจะถูกสร้างแบบจ าลองใน Use Case ที่แยกจากกันซึ่งเกี่ยวข้องกับ Use Case ดั้งเดิมโดย ความสัมพันธ์แบบ "Extends" ความสัมพันธ์แบบขยายสามารถคิดได้ว่า Use Case เทียบเท่ากับการสืบทอด โดยที่ Extending Use Case จะสืบทอดและแทนที่ลักษณะการท างานของ Use Case ดั้งเดิม 43


กำรสร้ำงแบบจ ำลองที่ซ้ ำซ้อนผ่ำนควำมสัมพันธ์ "กำรใช้งำน" การจัดกัดการสร้างแบบจ าลองที่ซ้ าซ้อนของพฤติกรรมกลุ่มที่ปรากฏใน Use Case หลาย ๆ กรณี พฤติกรรมสามารถถูกจ าลองแบบใน Use Case แยกต่างหากในส่วนที่เกี่ยวข้องกับความสัมพันธ์Use Cases by the Uses อื่น ๆ ความสัมพันธ์Uses สามารถคิดได้ว่า Use Case เทียบเท่ากับการรวม ใช้เคสช่วยในกำรทดสอบระบบตำมข้อก ำหนด Use Cases ยังใช้เพื่อสร้างสคริปต์ทดสอบที่ใช้เพื่อตรวจสอบว่าแอปพลิเคชันเป็นไปตามข้อก าหนด ทางธุรกิจและระบบ เมื่อคุณมาถึงระดับ Use Case ที่ต่ าที่สุดคุณอาจสร้างแผนภาพล าดับส าหรับ Use Case ด้วย แผนภาพล าดับและการท างานร่วมกันคุณสามารถจ าลองการน าสถานการณ์ไปใช้งานได้ แผนภำพล ำดับ แผนภาพล าดับเป็นหนึ่งในแผนภาพที่มีประสิทธิภาพมากที่สุดในการจ าลองปฏิสัมพันธ์ของวัตถุใน ระบบ แผนภาพล าดับถูกจ าลองขึ้นส าหรับทุกกรณีการใช้งาน ในขณะที่แผนภาพ Use Case เปิดใช้งานการ สร้างแบบจ าลองของมุมมองทางธุรกิจ สถานการณ์จ าลองแผนภาพล าดับมีรายละเอียดการใช้งานของ สถานการณ์รวมถึงวัตถุและคลาสที่ใช้ในการปรับใช้สถานการณ์และข้อความที่ส่งผ่านระหว่างวัตถุ โดยทั่วไปแล้วเราจะตรวจสอบค าอธิบายของ Use Case เพื่อพิจารณาว่าอ็อบเจ็กต์ที่จ าเป็นในการปรับใช้ใน สถานการณ์นั้นๆ หากคุณได้จ าลองค าอธิบายของ Use Case เป็นล าดับขั้นตอนแล้วคุณสามารถ "เดินผ่าน" ขั้นตอนต่าง ๆ เพื่อค้นหาว่าวัตถุใดที่จ าเป็นส าหรับขั้นตอนที่จะเกิดขึ้น แผนภาพล าดับแสดงวัตถุที่เกี่ยวข้องกับสถานการณ์โดยเส้นประแนวตั้งและข้อความที่ส่งผ่านระหว่าง วัตถุเป็นเวกเตอร์แนวนอน ข้อความจะถูกลากตามล าดับเวลาจากด้านบนของแผนภาพไปที่ด้านล่าง ระยะห่าง ของวัตถุในแนวนอนเป็นไปตามที่ต้องการ 44


แผนภำพกำรท ำงำนร่วมกัน Collaboration Diagram แสดงทางเลือกของ Sequence Diagram ส าหรับการสร้างแบบจ าลอง ปฏิสัมพันธ์ระหว่างอ็อบเจ็กต์ในระบบ ในขณะที่ใน Sequence Diagram จะโฟกัสที่ล าดับเวลาของ สถานการณ์ที่ก าลังสร้างแบบจ าลอง ในแผนภาพการท างานร่วมกันจะโฟกัสที่การท า ความเข้าใจ ผลกระทบ ทั้งหมดที่มีต่อวัตถุที่ก าหนดในระหว่างสถานการณ์ ออบเจ็กต์จะเชื่อมต่อกันด้วยลิงก์แต่ละลิงก์ แสดงถึง อินสแตนซ์ของการเชื่อมโยงระหว่างคลาสที่เกี่ยวข้อง ลิงก์จะแสดงข้อความที่ส่งระหว่างอ็อบเจ็กต์ประเภทของ ข้อความที่ส่งผ่าน (ซิงโครนัสอะซิงโครนัสแบบง่ายการหยุดชะงักและการหมดเวลา) และการมองเห็นอ็อบเจ็กต์ ซึ่งกันและกัน 45


กำรออกแบบระบบด้วย Class Diagram ในระหว่างการออกแบบไดอะแกรมคลาสจะถูกอธิบายอย่างละเอียดเพื่อค านึงถึงรายละเอียดที่เป็น รูปธรรมของการน าระบบไปใช้ สถำปัตยกรรมหลำยชั้น 46


แนวทางหนึ่งในการจัดการคลาสไดอะแกรมส าหรับระบบที่ซับซ้อนคือการแยกไดอะแกรมออกเป็น ส่วนที่แสดงตรรกะของแอปพลิเคชัน การติดต่อกับผู้ใช้และคลาสที่เกี่ยวข้องกับการจัดเก็บข้อมูล สิ่งนี้สามารถ ท าได้ทางกายภาพโดยการแบ่งส่วนของแผนภาพชั้นเรียนโดยใช้แผนภาพแยกกันส าหรับแต่ละส่วน กำรออกแบบส่วนประกอบ ส่วนประกอบคือกลุ่มของวัตถุที่โต้ตอบหรือส่วนประกอบขนาดเล็กที่รวมกันเพื่อให้บริการ ส่วนประกอบคล้ายกับกล่องด าซึ่งบริการในส่วนของการประกอบ ถูกระบุโดยอินเทอร์เฟซหรือส่วนต่อประสาน คอมโพเนนต์จะแสดงในแผนภาพคลาส UML โดยระบุอินเทอร์เฟซของคลาสหรือแพ็กเกจ มีสองสัญกรณ์เพื่อ แสดงอินเทอร์เฟซหนึ่งคือการแสดงอินเทอร์เฟซเป็นสัญลักษณ์คลาสปกติที่มีรูปแบบ <<อินเทอร์เฟซ>> แบบ ตายตัวพร้อมรายงานการด าเนินการที่สนับสนุนโดยอินเทอร์เฟซที่แสดงรายการในแผนกปฏิบัติการ มีทางเลือก คือการแสดงอินเทอร์เฟซเป็นวงกลมเล็ก ๆ ที่ติดกับคลาสด้วยเส้นทึบโดยมีชื่อของส่วนต่อประสานอยู่ข้าง วงกลม ตัวอย่างในรูปที่ 9 แสดงให้เห็นว่าคลาสผู้โดยสารมีการด าเนินการย้าย (x พิกัด, y พิกัด) ส าหรับการ ปรากฏบน GUI ผ่านอินเทอร์เฟซที่แสดงได้ การด าเนินการบันทึก (store at) ผ่านอินเทอร์เฟซแบบต่อเนื่อง คลาสหรือส่วนประกอบการเชื่อมต่อฐานข้อมูลอาจใช้อินเทอร์เฟซนี้ กำรวิเครำะห์และออกแบบซ้ ำ แผนภาพชั้นเรียนสามารถพัฒนาได้ในรูปแบบซ้ า ๆ ผ่านวงจรการวิเคราะห์และการออกแบบ การ น าไปใช้งานซ้ าแล้วซ้ าอีกจากนั้นกลับไปที่การวิเคราะห์เพื่อเริ่มวงจรอีกครั้ง กระบวนการนี้มักเรียกว่า "วิศวกรรมแบบไปกลับ" เครื่องมือการสร้างแบบจ าลองเช่น System Architect 2001 สามารถอ านวยความ 47


Click to View FlipBook Version