UML - ไดอะแกรมวัตถุ
ไดอะแกรมออบเจ็กต์มาจากคลาสไดอะแกรมดังนั้นไดอะแกรมออบเจ็กต์จึงขึ้นอยู่กับคลาสไดอะแกรม
ไดอะแกรมออบเจ็กต์แสดงถึงอินสแตนซ์ของคลาสไดอะแกรม แนวคิดพื้นฐานคล้ายกันสำหรับคลาสไดอะแกรมและออบเจ็กต์ไดอะแกรม ไดอะแกรมออบเจ็กต์ยังแสดงถึงมุมมองแบบคงที่ของระบบ แต่มุมมองแบบคงที่นี้เป็นภาพรวมของระบบในช่วงเวลาหนึ่ง
ออบเจ็กต์ไดอะแกรมใช้เพื่อสร้างชุดของอ็อบเจ็กต์และความสัมพันธ์เป็นอินสแตนซ์
วัตถุประสงค์ของแผนภาพวัตถุ
จุดประสงค์ของแผนภาพควรเข้าใจอย่างชัดเจนเพื่อนำไปใช้ได้จริง วัตถุประสงค์ของออบเจ็กต์ไดอะแกรมคล้ายกับคลาสไดอะแกรม
ความแตกต่างคือแผนภาพคลาสแสดงถึงโมเดลนามธรรมที่ประกอบด้วยคลาสและความสัมพันธ์ อย่างไรก็ตามแผนภาพออบเจ็กต์แสดงถึงอินสแตนซ์ในช่วงเวลาหนึ่งซึ่งเป็นรูปธรรมในธรรมชาติ
หมายความว่าแผนภาพออบเจ็กต์ใกล้เคียงกับพฤติกรรมของระบบจริงมากขึ้น จุดประสงค์คือเพื่อจับภาพมุมมองแบบคงที่ของระบบในช่วงเวลาหนึ่ง ๆ
วัตถุประสงค์ของแผนภาพวัตถุสามารถสรุปได้ดังนี้ -
วิศวกรรมไปข้างหน้าและย้อนกลับ
ความสัมพันธ์ของวัตถุของระบบ
มุมมองแบบคงที่ของการโต้ตอบ
ทำความเข้าใจพฤติกรรมของวัตถุและความสัมพันธ์จากมุมมองในทางปฏิบัติ
วิธีการวาด Object Diagram?
เราได้พูดคุยกันแล้วว่าออบเจ็กต์ไดอะแกรมเป็นอินสแตนซ์ของคลาสไดอะแกรม หมายความว่าออบเจ็กต์ไดอะแกรมประกอบด้วยอินสแตนซ์ของสิ่งที่ใช้ในคลาสไดอะแกรม
ดังนั้นแผนภาพทั้งสองจึงสร้างจากองค์ประกอบพื้นฐานเดียวกัน แต่อยู่ในรูปแบบที่แตกต่างกัน ในองค์ประกอบแผนภาพชั้นเรียนอยู่ในรูปนามธรรมเพื่อแสดงถึงการพิมพ์สีน้ำเงินและในแผนภาพวัตถุองค์ประกอบจะอยู่ในรูปแบบที่เป็นรูปธรรมเพื่อแสดงถึงวัตถุในโลกแห่งความเป็นจริง
ในการจับระบบเฉพาะจำนวนคลาสไดอะแกรมจะถูก จำกัด อย่างไรก็ตามหากเราพิจารณาออบเจ็กต์ไดอะแกรมเราสามารถมีอินสแตนซ์ได้ไม่ จำกัด จำนวนซึ่งมีลักษณะเฉพาะ จะพิจารณาเฉพาะอินสแตนซ์เหล่านั้นซึ่งมีผลกระทบต่อระบบ
จากการอภิปรายข้างต้นเป็นที่ชัดเจนว่าแผนภาพออบเจ็กต์เดียวไม่สามารถจับภาพอินสแตนซ์ที่จำเป็นทั้งหมดหรือไม่สามารถระบุอ็อบเจ็กต์ทั้งหมดของระบบได้ ดังนั้นวิธีแก้ปัญหาคือ -
ขั้นแรกวิเคราะห์ระบบและตัดสินใจว่าอินสแตนซ์ใดมีข้อมูลสำคัญและการเชื่อมโยง
ประการที่สองพิจารณาเฉพาะอินสแตนซ์เหล่านั้นซึ่งจะครอบคลุมฟังก์ชันการทำงาน
ประการที่สามทำการเพิ่มประสิทธิภาพเนื่องจากจำนวนอินสแตนซ์ไม่ จำกัด
ก่อนวาดแผนภาพวัตถุควรจำและทำความเข้าใจสิ่งต่อไปนี้ให้ชัดเจน -
แผนภาพวัตถุประกอบด้วยวัตถุ
ลิงค์ในออบเจ็กต์ไดอะแกรมใช้เพื่อเชื่อมต่อออบเจ็กต์
ออบเจ็กต์และลิงค์เป็นสององค์ประกอบที่ใช้ในการสร้างแผนภาพวัตถุ
หลังจากนี้สิ่งต่อไปนี้จะต้องตัดสินใจก่อนที่จะเริ่มสร้างแผนภาพ -
แผนภาพวัตถุควรมีชื่อที่มีความหมายเพื่อระบุวัตถุประสงค์
องค์ประกอบที่สำคัญที่สุดจะต้องระบุ
ควรชี้แจงการเชื่อมโยงระหว่างวัตถุ
ต้องจับค่าขององค์ประกอบต่างๆเพื่อรวมไว้ในแผนภาพวัตถุ
เพิ่มบันทึกที่เหมาะสมในจุดที่ต้องการความชัดเจนมากขึ้น
แผนภาพต่อไปนี้เป็นตัวอย่างของแผนภาพวัตถุ มันแสดงถึงระบบการจัดการคำสั่งซื้อที่เราได้พูดถึงในบท Class Diagram แผนภาพต่อไปนี้เป็นตัวอย่างของระบบ ณ เวลาที่ต้องการซื้อ มีวัตถุดังต่อไปนี้
Customer
Order
SpecialOrder
NormalOrder
ตอนนี้อ็อบเจ็กต์ลูกค้า (C) เชื่อมโยงกับอ็อบเจ็กต์คำสั่งซื้อสามรายการ (O1, O2 และ O3) วัตถุคำสั่งเหล่านี้เกี่ยวข้องกับคำสั่งพิเศษและวัตถุคำสั่งปกติ (S1, S2 และ N1) ลูกค้ามีคำสั่งซื้อสามรายการต่อไปนี้ซึ่งมีหมายเลขต่างกัน (12, 32 และ 40) ในช่วงเวลาที่พิจารณา
ลูกค้าสามารถเพิ่มจำนวนคำสั่งซื้อในอนาคตและในสถานการณ์นั้นแผนภาพวัตถุจะสะท้อนให้เห็นถึงสิ่งนั้น หากสังเกตคำสั่งคำสั่งพิเศษและวัตถุคำสั่งปกติคุณจะพบว่ามีค่าบางอย่าง
สำหรับคำสั่งซื้อค่าคือ 12, 32 และ 40 ซึ่งหมายความว่าออบเจ็กต์มีค่าเหล่านี้ในช่วงเวลาหนึ่ง (ในที่นี้เวลาเฉพาะเมื่อทำการซื้อจะถือเป็นช่วงเวลา) เมื่อจับอินสแตนซ์
เช่นเดียวกับคำสั่งซื้อพิเศษและออบเจ็กต์คำสั่งซื้อปกติซึ่งมีจำนวนคำสั่งซื้อเป็น 20, 30 และ 60 หากพิจารณาเวลาซื้อที่แตกต่างกันค่าเหล่านี้จะเปลี่ยนไปตามนั้น
แผนภาพออบเจ็กต์ต่อไปนี้ถูกวาดขึ้นโดยพิจารณาจากประเด็นทั้งหมดที่กล่าวมาข้างต้น
จะใช้ Object Diagrams ได้ที่ไหน?
แผนภาพออบเจ็กต์สามารถจินตนาการได้ว่าเป็นภาพรวมของระบบที่กำลังทำงานอยู่ในช่วงเวลาหนึ่ง ๆ ให้เราพิจารณาตัวอย่างของรถไฟวิ่ง
ตอนนี้ถ้าคุณลองดูรถไฟที่กำลังวิ่งอยู่คุณจะพบกับภาพที่คงที่ซึ่งมีดังต่อไปนี้ -
สถานะเฉพาะที่กำลังทำงานอยู่
จำนวนผู้โดยสารโดยเฉพาะ ซึ่งจะเปลี่ยนไปหากถ่ายภาพในเวลาอื่น
ที่นี่เราสามารถจินตนาการได้ว่ารถไฟที่กำลังวิ่งอยู่คือวัตถุที่มีค่าข้างต้น และนี่เป็นเรื่องจริงสำหรับระบบที่เรียบง่ายหรือซับซ้อนในชีวิตจริง
สรุปได้ว่าออบเจ็กต์ไดอะแกรมใช้สำหรับ -
สร้างต้นแบบของระบบ
วิศวกรรมย้อนกลับ
การสร้างแบบจำลองโครงสร้างข้อมูลที่ซับซ้อน
การทำความเข้าใจระบบจากมุมมองในทางปฏิบัติ