แผนภาพเครื่องของรัฐและแผนภาพแผนภูมิรัฐใน UML

State Machine Diagram คืออะไร?

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

แผนภาพ Statechart คืออะไร?

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

มีไดอะแกรมเครื่องสถานะทั้งหมดสองประเภทใน UML:

1. แผนภาพเครื่องสถานะพฤติกรรม

  • โดยจะจับพฤติกรรมของเอนทิตีที่มีอยู่ในระบบ
  • มันถูกใช้เพื่อแสดงการใช้งานเฉพาะขององค์ประกอบ
  • สามารถสร้างแบบจำลองพฤติกรรมของระบบได้โดยใช้แผนภาพเครื่องสถานะพฤติกรรมใน OOAD

2. แผนผังเครื่องสถานะโปรโตคอล

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

เหตุใดจึงต้องใช้ State Machine Diagram

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

ไดอะแกรม Statechart ใช้เพื่อออกแบบระบบเชิงโต้ตอบที่ตอบสนองต่อเหตุการณ์ภายในหรือภายนอก แผนภาพ Statechart ใน UML จะแสดงภาพขั้นตอนการดำเนินการจากสถานะหนึ่งไปยังอีกสถานะหนึ่งของออบเจ็กต์

มันแสดงถึงสถานะของวัตถุตั้งแต่สร้างวัตถุจนกระทั่งวัตถุนั้นถูกทำลายหรือยุติลง

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

สัญกรณ์และสัญลักษณ์สำหรับแผนภาพเครื่องของรัฐ (Statechart Diagram)

ต่อไปนี้เป็นสัญลักษณ์ต่างๆ ที่ใช้ในแผนภาพรัฐ เมื่อนำสัญลักษณ์ทั้งหมดเหล่านี้มารวมกัน จะกลายเป็นแผนภาพเดียว

สัญลักษณ์ไดอะแกรมสถานะ UML
สัญลักษณ์ไดอะแกรมสถานะ UML

สถานะเริ่มต้น

สัญลักษณ์สถานะเริ่มต้นใช้เพื่อระบุจุดเริ่มต้นของไดอะแกรมเครื่องสถานะ

สถานะสุดท้าย

สัญลักษณ์นี้ใช้เพื่อระบุจุดสิ้นสุดของแผนภาพเครื่องสถานะ

กล่องการตัดสินใจ

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

การเปลี่ยนแปลง

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

กล่องรัฐ

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

จะแสดงเป็นรูปสี่เหลี่ยมผืนผ้าที่มีมุมมน ชื่อของรัฐเขียนอยู่ในสี่เหลี่ยมมุมมน

ชื่อของรัฐสามารถวางไว้ภายนอกสี่เหลี่ยมผืนผ้าได้ ซึ่งสามารถทำได้ในกรณีของสถานะแบบผสมหรือแบบย่อย สามารถวางชื่อของรัฐไว้ในสี่เหลี่ยมผืนผ้าหรือภายนอกสี่เหลี่ยมผืนผ้าในกล่องตารางได้ ไม่สามารถทำทั้งสองอย่างในเวลาเดียวกันได้

สถานะสามารถเป็นได้ทั้งใช้งานอยู่หรือไม่ได้ใช้งาน เมื่อสถานะอยู่ในโหมดการทำงาน สถานะนั้นจะเปิดใช้งาน ทันทีที่หยุดดำเนินการและเปลี่ยนผ่านไปยังสถานะอื่น สถานะก่อนหน้าจะปิดใช้งาน และสถานะปัจจุบันจะเปิดใช้งาน

ประเภทของรัฐ

Unified Modeling Language กำหนดสถานะสามประเภท:

  • รัฐที่เรียบง่าย
  • พวกเขาไม่มีรัฐย่อยใด ๆ
  • สถานะคอมโพสิต
  • รัฐประเภทนี้สามารถมีได้หนึ่งรัฐหรือมากกว่าหนึ่งรัฐ
  • สถานะประกอบที่มีสถานะย่อยตั้งแต่ 2 สถานะขึ้นไปเรียกว่าสถานะมุมฉาก
  • สถานะของเครื่องย่อย
  • สถานะเหล่านี้มีความหมายเท่ากับสถานะแบบผสม
  • ต่างจากสถานะคอมโพสิต เราสามารถนำสถานะของเครื่องย่อยกลับมาใช้ใหม่ได้

จะวาดแผนภาพ Statechart ได้อย่างไร?

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

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

ในการวาดแผนภาพสถานะจะต้องพิจารณากฎต่อไปนี้:

  1. ชื่อของการเปลี่ยนสถานะต้องไม่ซ้ำกัน
  2. ชื่อของรัฐจะต้องเข้าใจง่ายและอธิบายพฤติกรรมของรัฐ
  3. หากมีวัตถุหลายชิ้น ควรใช้งานเฉพาะวัตถุสำคัญเท่านั้น
  4. ต้องระบุชื่อที่เหมาะสมสำหรับการเปลี่ยนแปลงแต่ละครั้งและเหตุการณ์

เมื่อใดจึงควรใช้ State Machine Diagram

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

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

ใช้ไดอะแกรมสถานะถ่าน:

  1. เพื่อจำลองวัตถุของระบบ
  2. เพื่อสร้างแบบจำลองและใช้งานระบบเชิงโต้ตอบ
  3. เพื่อแสดงเหตุการณ์ที่ทำให้เกิดการเปลี่ยนแปลงภายในรัฐ

ตัวอย่างเครื่องของรัฐ

แผนภูมิตัวอย่างแผนภาพสถานะต่อไปนี้แสดงให้เห็นกระบวนการพิสูจน์ตัวตนของผู้ใช้

แผนภาพสถานะ UML

แผนภาพสถานะ UML

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

แผนภาพเครื่องของรัฐกับผังงาน

ต่อไปนี้เป็นความแตกต่างที่สำคัญระหว่าง Statechart Diagram และ Flowchart

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

สรุป

  • ไดอะแกรมแผนภูมิสถานะเรียกอีกอย่างว่าไดอะแกรมเครื่องสถานะ
  • ไดอะแกรมเหล่านี้ใช้เพื่อจำลองระบบตามเหตุการณ์
  • สถานะของเอนทิตีถูกควบคุมด้วยความช่วยเหลือของเหตุการณ์
  • ไดอะแกรมเครื่องสถานะมีทั้งหมดสองประเภท: 1) แผนภาพเครื่องสถานะเชิงพฤติกรรม 2) แผนภาพเครื่องสถานะโปรโตคอล
  • แผนภาพสถานะใช้เพื่อจับภาพลักษณะไดนามิกของระบบ
  • สถานะคือช่วงเวลาที่เฉพาะเจาะจงในช่วงอายุของวัตถุ