Page 31 - วิศวกรรมซอฟต์แวร์
P. 31
สุนัข การออกแบบซอฟต์แวร์เชิงวัตถุ 7-21
แมว สัตว์สี่ขามีเขา
สุนัขสีขาว แมวสีขาว แมวสีดำ� วัวสีดำ�
ภาพท่ี 7.8 ตวั อย่างการแกป้ ญั หาความกำ�กวมทเี่ กิดขึ้นในการจำ�แนกคลาสนามธรรม
ที่มา: h ttp://siam2dev.com/E_Learning/OOAD/Lec03_1_Classification_Abstractions_PDF.pdf ค้นคืนวันที่ 5 กุมภาพันธ์ 2557
จากภาพท่ี 7.8 จะเห็นว่า มีการให้คอนเซ็บต์ใหม่กับคลาสสัตว์ส่ีขา ให้กลายเป็นคลาสสัตว์ส่ีขามีเขา เพ่ือให้
สามารถแยกแยะวัตถุได้ชัดเจนยิ่งขึ้น และน�ำคอนเซ็บต์ของคลาสสัตว์สีด�ำเปลี่ยนให้เป็นเพียงแอตทริบิวต์หนึ่งของ
คลาสเท่านั้น ท�ำให้ได้คลาสพื้นฐานที่สามารถแยกแยะวัตถุได้ดีขึ้น โดยไม่มีความก�ำกวมเกิดขึ้นในการจ�ำแนกคลาส
นามธรรม
8. การคน้ หาคลาสด้วยวิธกี ารค้นหาคำ�นาม
การค้นหาคลาสด้วยวิธีการค้นหาค�ำนาม เป็นการค้นหาค�ำนามจากค�ำอธิบายการท�ำงานระบบท่ีรวบรวมได้
เป็นวิธีท่ีท�ำได้ง่ายและนิยมใช้กันมากและเป็นวิธีท่ีหลายคน ๆ เสนอให้ใช้เป็นวิธีค้นหาคลาส ผลที่ได้จะแตกต่างกัน
ตามค�ำอธิบายการท�ำงานของระบบที่รวบรวมได้ แต่ค�ำนามบางค�ำท่ีจะน�ำมาสร้างเป็นคลาสน้ัน อาจจะท�ำให้เกิดคลาส
ที่ซำ�้ ซ้อนหรือไมเ่ กี่ยวขอ้ งกับการทำ� งานของระบบ ดังนนั้ จากคำ� นามทั้งหมดท่ีได้ จะต้องน�ำมาพิจารณาคัดว่าค�ำนามใด
เป็นคลาสของระบบ ตามลักษณะต่อไปนี้ (Rumbaugh, et al., 1991; Bahrami. 1999; Quatrani และ Palistrant.
2006)
• คลาสซำ�้ ซอ้ น (redundant class) พิจารณาค�ำที่มีความหมายซ้�ำซ้อนกับค�ำอื่น ให้เลือกเพียงค�ำเดียว เช่น
รายการขาย กับรายการขายใหม่ (ต่างกันท่ีสถานะ)
• คลาสไม่เกี่ยวข้อง (irrelevant class) พิจารณาคัดเลือกค�ำที่ไม่เก่ียวข้องกับระบบท่ีก�ำลังวิเคราะห์หรือ
อยู่นอกขอบเขตออก เช่น ระบบสินค้าคงคลัง
• คลาสไมส่ อ่ื ความหมาย (vague class) พิจารณาคัดเลือกค�ำที่มีความหมายไม่ชัดเจนและไม่ส่ือความหมาย
ออก เช่น ระบบ
• คุณลกั ษณะ (attribute) พิจารณาค�ำท่ีเป็นข้อมูลจ�ำเพาะของคลาสอ่ืนไม่สมควรเป็นคลาส เช่น รหัสสินค้า
ช่ือสินค้า ราคา
• การดำ� เนนิ การ (opereation) พิจารณาค�ำท่ีแสดงถึงกิจกรรมของระบบ ซ่ึงเป็นการระบุกิจกรรมไม่สมควร
เป็นคลาส เช่น การปิดรายการขาย
• บทบาท (role) คลาสควรสื่อความหมายถึงลักษณะโดยทั่วไปของสิ่งน้ัน ไม่ใช่เพียงบทบาทของ
ความสมั พนั ธข์ องคลาสอนื่ ดงั นนั้ คำ� ทมี่ ลี กั ษณะเปน็ บทบาท ควรถกู เปลยี่ นเพอื่ ใหส้ อื่ ความหมายถงึ ลกั ษณะทว่ั ไปแทน
เช่น แคชเชียร์ เป็นเพียงบทบาทพนักงานในร้าน ควรใช้พนักงานแทนแคชเชียร์ ยกเว้นว่า แคชเชียร์มีพฤติกรรมท่ี
แตกต่างจากพนักงานอ่ืนในระบบ