ปี: 2019

UML: Behavioral Things องค์ประกอบเชิงพฤติกรรม อธิบายการทำงานของระบบ เช่น ปฏิสัมพันธ์ (Interaction) และสเตทแมชชีน (State Machine)UML: Behavioral Things องค์ประกอบเชิงพฤติกรรม อธิบายการทำงานของระบบ เช่น ปฏิสัมพันธ์ (Interaction) และสเตทแมชชีน (State Machine)

ในโลกของการพัฒนาระบบซอฟต์แวร์ การทำความเข้าใจว่าระบบจะทำงานอย่างไรเมื่อเวลาผ่านไปนั้นสำคัญไม่แพ้การทราบโครงสร้างขององค์ประกอบต่างๆ UML หรือ Unified Modeling Language จึงถูกออกแบบมาเพื่อเป็นเครื่องมือในการจำลองภาพรวมนี้ โดยเฉพาะอย่างยิ่งส่วนที่เรียกว่า ‘พฤติกรรมเชิงพฤติกรรม’ (Behavioral Things) ซึ่งไม่ได้สนใจแค่คลาสหรือคุณสมบัติทางสถิต แต่ให้ความสำคัญกับการไหลเวียนและการเปลี่ยนแปลงสถานะตลอดวัฏจักรชีวิตของวัตถุ

UML Behavioral Diagram: มุมมองพลวัตของระบบ

หาก Class Diagram แสดงถึงแผนผังตึกและห้องต่าง ๆ ส่วน Diagrams เชิงพฤติกรรมก็จะอธิบายลำดับเหตุการณ์ของผู้คนที่เคลื่อนไหวภายในอาคารเหล่านั้น หัวใจหลักคือการแสดงปฏิสัมพันธ์ระหว่าง Object ต่างๆ ในช่วงเวลานั้น ๆ เพื่อพิสูจน์ Use Case และ Business Logic ที่กำหนดไว้.

Interaction Overview: เมื่อ Objects สื่อสารกันตามกาลเวลา

หนึ่งในรูปแบบไดอะแกรมที่มีประสิทธิภาพที่สุดสำหรับการวิเคราะห์ปฏิสัมพันธ์ก็คือ Sequence Diagram ไดอะแกรมชนิดนี้นำเสนอ Timeline ของข้อความส่งผ่าน (Message Passing) ระหว่าง Actor, Component หรือ object ต่างๆ ตามกรอบระยะเวลาอย่างแม่นยำ มันช่วยให้นักพัฒนามองเห็นว่าใครทำอะไรกับใคร ลำดับไหนก่อนหลัง ทำให้สามารถระบุจุดที่เกิดปัญหาเรื่อง Race Condition ได้ตั้งแต่ขั้นตอนของการออกแบบเท่านั้น ตัวอย่างเช่น การเข้าสู่ระบบจะต้องมีการร้องขอข้อมูลผู้ใช้จาก Client ไปยัง Authentication Service จากนั้นจึงตอบกลับด้วย Token ซึ่งทั้งหมดนี้ถูกจัดเรียงเป็นแถวบนแกนนอนด้านล่าง

State Machine Diagram: ชีวิตประจำวันของวัตถุเดียว

ขณะที่ Interaction Diagrams เน้นไปที่กลุ่ม objects หลายตัว State Machine หรือ State Diagram จะโฟกัสไปที่วงจรชีวิต (Lifecycle) ของ Object เพียงชิ้นเดียว อธิบายให้ทราบถึงสถานะที่เป็นไปได้ทุกรูปแบบและเงื่อนไขการเปลี่ยนสถานะนั้น ๆ ลองพิจารณา ‘คำสั่งซื้อ’ ชิ้นหนึ่ง สถานะเริ่มต้นอาจเป็น `Pending` ต่อมาเมื่อลูกค้าจ่ายเงินก็จะข้ามไปยัง `Paid`, และหากสินค้าพร้อมแล้วจะเปลี่ยนแปลงอีกครั้งเป็น `Shipped`. UML ใช้ Event/Trigger เป็นกลไกขับเคลื่อน โดยกำหนดเส้นทางระหว่าง States เช่น เมื่อได้รับ Trigger ชื่อ