แผนภาพเครื่องของรัฐและแผนภาพแผนภูมิรัฐใน UML
State Machine Diagram คืออะไร?
แผนภาพสถานะ ใช้เพื่อบันทึกพฤติกรรมของระบบซอฟต์แวร์ ไดอะแกรมเครื่องสถานะ UML สามารถใช้ในการสร้างแบบจำลองพฤติกรรมของคลาส ระบบย่อย แพ็คเกจ หรือแม้แต่ทั้งระบบ เรียกอีกอย่างว่าแผนภูมิรัฐหรือแผนภาพการเปลี่ยนสถานะ
แผนภาพ Statechart คืออะไร?
แผนภาพแผนภูมิรัฐช่วยให้เรามีวิธีที่มีประสิทธิภาพในการสร้างแบบจำลองปฏิสัมพันธ์หรือการสื่อสารที่เกิดขึ้นภายในเอนทิตีภายนอกและระบบ ไดอะแกรมเหล่านี้ใช้เพื่อจำลองระบบตามเหตุการณ์ สถานะของออบเจ็กต์ถูกควบคุมด้วยความช่วยเหลือของเหตุการณ์ แผนภาพ Statechart ใช้เพื่ออธิบายสถานะต่างๆ ของเอนทิตีภายในระบบแอปพลิเคชัน
มีไดอะแกรมเครื่องสถานะทั้งหมดสองประเภทใน UML:
1. แผนภาพเครื่องสถานะพฤติกรรม
- โดยจะจับพฤติกรรมของเอนทิตีที่มีอยู่ในระบบ
- มันถูกใช้เพื่อแสดงการใช้งานเฉพาะขององค์ประกอบ
- สามารถสร้างแบบจำลองพฤติกรรมของระบบได้โดยใช้แผนภาพเครื่องสถานะพฤติกรรมใน OOAD
2. แผนผังเครื่องสถานะโปรโตคอล
- ไดอะแกรมเหล่านี้ใช้เพื่อบันทึกพฤติกรรมของโปรโตคอล
- มันแสดงให้เห็นว่าสถานะของโปรโตคอลเปลี่ยนแปลงไปอย่างไรเกี่ยวกับเหตุการณ์ นอกจากนี้ยังแสดงถึงการเปลี่ยนแปลงที่สอดคล้องกันในระบบด้วย
- พวกเขาไม่ได้แสดงถึงการใช้งานองค์ประกอบเฉพาะ
เหตุใดจึงต้องใช้ State Machine Diagram
แผนภาพสถานะใช้เพื่อจับภาพลักษณะไดนามิกของระบบ ไดอะแกรมเครื่องสถานะถูกใช้เพื่อแสดงพฤติกรรมของแอปพลิเคชัน วัตถุต้องผ่านสถานะต่างๆ ตลอดอายุการใช้งาน อายุการใช้งานของอ็อบเจ็กต์ยังคงอยู่จนกว่าโปรแกรมจะสิ้นสุดลง วัตถุไปจากหลายสถานะขึ้นอยู่กับเหตุการณ์ที่เกิดขึ้นภายในวัตถุ แต่ละรัฐแสดงถึงข้อมูลเฉพาะบางอย่างเกี่ยวกับออบเจ็กต์
ไดอะแกรม Statechart ใช้เพื่อออกแบบระบบเชิงโต้ตอบที่ตอบสนองต่อเหตุการณ์ภายในหรือภายนอก แผนภาพ Statechart ใน UML จะแสดงภาพขั้นตอนการดำเนินการจากสถานะหนึ่งไปยังอีกสถานะหนึ่งของออบเจ็กต์
มันแสดงถึงสถานะของวัตถุตั้งแต่สร้างวัตถุจนกระทั่งวัตถุนั้นถูกทำลายหรือยุติลง
วัตถุประสงค์หลักของแผนภาพสถานะคือการสร้างแบบจำลองระบบเชิงโต้ตอบและกำหนดแต่ละสถานะของออบเจ็กต์ ไดอะแกรม Statechart ได้รับการออกแบบมาเพื่อบันทึกพฤติกรรมไดนามิกของระบบแอปพลิเคชัน ไดอะแกรมเหล่านี้ใช้เพื่อแสดงสถานะต่างๆ ของระบบและเอนทิตีภายในระบบ
สัญกรณ์และสัญลักษณ์สำหรับแผนภาพเครื่องของรัฐ (Statechart Diagram)
ต่อไปนี้เป็นสัญลักษณ์ต่างๆ ที่ใช้ในแผนภาพรัฐ เมื่อนำสัญลักษณ์ทั้งหมดเหล่านี้มารวมกัน จะกลายเป็นแผนภาพเดียว
สถานะเริ่มต้น
สัญลักษณ์สถานะเริ่มต้นใช้เพื่อระบุจุดเริ่มต้นของไดอะแกรมเครื่องสถานะ
สถานะสุดท้าย
สัญลักษณ์นี้ใช้เพื่อระบุจุดสิ้นสุดของแผนภาพเครื่องสถานะ
กล่องการตัดสินใจ
มันมีเงื่อนไข ขึ้นอยู่กับผลลัพธ์ของเงื่อนไขการป้องกันที่ประเมิน เส้นทางใหม่จะถูกนำไปใช้ในการรันโปรแกรม
การเปลี่ยนแปลง
การเปลี่ยนแปลงคือการเปลี่ยนแปลงจากสถานะหนึ่งไปสู่อีกสถานะหนึ่งซึ่งเกิดขึ้นเนื่องจากเหตุการณ์บางอย่าง การเปลี่ยนแปลงทำให้เกิดการเปลี่ยนแปลงในสถานะของวัตถุ
กล่องรัฐ
มันเป็นช่วงเวลาที่เฉพาะเจาะจงในช่วงชีวิตของวัตถุ มันถูกกำหนดโดยใช้เงื่อนไขหรือคำสั่งบางอย่างภายในเนื้อหาลักษณนาม ใช้เพื่อแสดงสถานการณ์แบบคงที่และแบบไดนามิก
จะแสดงเป็นรูปสี่เหลี่ยมผืนผ้าที่มีมุมมน ชื่อของรัฐเขียนอยู่ในสี่เหลี่ยมมุมมน
ชื่อของรัฐสามารถวางไว้ภายนอกสี่เหลี่ยมผืนผ้าได้ ซึ่งสามารถทำได้ในกรณีของสถานะแบบผสมหรือแบบย่อย สามารถวางชื่อของรัฐไว้ในสี่เหลี่ยมผืนผ้าหรือภายนอกสี่เหลี่ยมผืนผ้าในกล่องตารางได้ ไม่สามารถทำทั้งสองอย่างในเวลาเดียวกันได้
สถานะสามารถเป็นได้ทั้งใช้งานอยู่หรือไม่ได้ใช้งาน เมื่อสถานะอยู่ในโหมดการทำงาน สถานะนั้นจะเปิดใช้งาน ทันทีที่หยุดดำเนินการและเปลี่ยนผ่านไปยังสถานะอื่น สถานะก่อนหน้าจะปิดใช้งาน และสถานะปัจจุบันจะเปิดใช้งาน
ประเภทของรัฐ
Unified Modeling Language กำหนดสถานะสามประเภท:
- รัฐที่เรียบง่าย
- พวกเขาไม่มีรัฐย่อยใด ๆ
- สถานะคอมโพสิต
- รัฐประเภทนี้สามารถมีได้หนึ่งรัฐหรือมากกว่าหนึ่งรัฐ
- สถานะประกอบที่มีสถานะย่อยตั้งแต่ 2 สถานะขึ้นไปเรียกว่าสถานะมุมฉาก
- สถานะของเครื่องย่อย
- สถานะเหล่านี้มีความหมายเท่ากับสถานะแบบผสม
- ต่างจากสถานะคอมโพสิต เราสามารถนำสถานะของเครื่องย่อยกลับมาใช้ใหม่ได้
จะวาดแผนภาพ Statechart ได้อย่างไร?
ไดอะแกรม Statechart ใช้เพื่ออธิบายสถานะต่างๆ ที่วัตถุผ่าน การเปลี่ยนแปลงระหว่างรัฐหนึ่งไปสู่อีกรัฐหนึ่งเกิดขึ้นเนื่องจากเหตุการณ์บางอย่างที่ถูกกระตุ้น เพื่อวาดแผนภาพสถานะเข้าไป UMLเราจะต้องระบุสถานะที่เป็นไปได้ทั้งหมดของเอนทิตีใด ๆ
วัตถุประสงค์ของสิ่งเหล่านี้ ไดอะแกรม UML คือการแสดงสถานะของระบบ รัฐมีบทบาทสำคัญในแผนภาพการเปลี่ยนผ่านของรัฐ วัตถุสำคัญ สถานะ และเหตุการณ์ทั้งหมดที่ทำให้เกิดการเปลี่ยนแปลงภายในสถานะจะต้องได้รับการวิเคราะห์ก่อนจึงจะนำแผนภาพไปใช้
ในการวาดแผนภาพสถานะจะต้องพิจารณากฎต่อไปนี้:
- ชื่อของการเปลี่ยนสถานะต้องไม่ซ้ำกัน
- ชื่อของรัฐจะต้องเข้าใจง่ายและอธิบายพฤติกรรมของรัฐ
- หากมีวัตถุหลายชิ้น ควรใช้งานเฉพาะวัตถุสำคัญเท่านั้น
- ต้องระบุชื่อที่เหมาะสมสำหรับการเปลี่ยนแปลงแต่ละครั้งและเหตุการณ์
เมื่อใดจึงควรใช้ State Machine Diagram
แผนภาพสถานะใช้เพื่อนำโมเดลการทำงานในชีวิตจริงและระบบเชิงวัตถุไปใช้ในเชิงลึก ไดอะแกรมเหล่านี้ใช้เพื่อเปรียบเทียบลักษณะไดนามิกและสแตติกของระบบโดยจับพฤติกรรมไดนามิกของระบบ
แผนภาพสถานะใช้เพื่อบันทึกการเปลี่ยนแปลงในเอนทิตีต่างๆ ของระบบตั้งแต่ต้นจนจบ ใช้เพื่อวิเคราะห์ว่าเหตุการณ์สามารถทำให้เกิดการเปลี่ยนแปลงภายในหลายสถานะของระบบได้อย่างไร
ใช้ไดอะแกรมสถานะถ่าน:
- เพื่อจำลองวัตถุของระบบ
- เพื่อสร้างแบบจำลองและใช้งานระบบเชิงโต้ตอบ
- เพื่อแสดงเหตุการณ์ที่ทำให้เกิดการเปลี่ยนแปลงภายในรัฐ
ตัวอย่างเครื่องของรัฐ
แผนภูมิตัวอย่างแผนภาพสถานะต่อไปนี้แสดงให้เห็นกระบวนการพิสูจน์ตัวตนของผู้ใช้
มีทั้งหมด 2 สถานะ โดยสถานะแรกระบุว่าต้องป้อน OTP ก่อน จากนั้นจึงทำเครื่องหมายในช่อง OTP หากถูกต้อง การเปลี่ยนสถานะจะเกิดขึ้นเท่านั้น และผู้ใช้จะได้รับการตรวจสอบ หาก OTP ไม่ถูกต้อง การเปลี่ยนสถานะจะไม่เกิดขึ้น และจะย้อนกลับไปยังสถานะเริ่มต้นอีกครั้ง จนกว่าผู้ใช้จะป้อน OTP ที่ถูกต้อง ดังที่แสดงในตัวอย่างไดอะแกรมเครื่องสถานะด้านบน
แผนภาพเครื่องของรัฐกับผังงาน
ต่อไปนี้เป็นความแตกต่างที่สำคัญระหว่าง Statechart Diagram และ Flowchart
แผนผังเครื่องของรัฐ | ผังงาน |
---|---|
แสดงถึงสถานะต่างๆ ของระบบ | ผังงานจะแสดงขั้นตอนการทำงานของโปรแกรม |
เครื่องสถานะมีแนวคิด WAIT เช่น รอการดำเนินการหรือเหตุการณ์ | ผังงานไม่ได้เกี่ยวข้องกับการรอแนวคิด |
เครื่องของรัฐใช้สำหรับระบบที่ทำงานอยู่ | ผังงานแสดงภาพลำดับการแยกย่อยของระบบ |
เครื่องสถานะเป็นไดอะแกรมการสร้างแบบจำลอง | ผังงานคือลำดับโฟลว์หรือไดอะแกรม DFD |
เครื่องสถานะสามารถสำรวจสถานะต่างๆ ของระบบได้ | ผังงานจัดการกับเส้นทางและการควบคุมการไหล |
สรุป
- ไดอะแกรมแผนภูมิสถานะเรียกอีกอย่างว่าไดอะแกรมเครื่องสถานะ
- ไดอะแกรมเหล่านี้ใช้เพื่อจำลองระบบตามเหตุการณ์
- สถานะของเอนทิตีถูกควบคุมด้วยความช่วยเหลือของเหตุการณ์
- ไดอะแกรมเครื่องสถานะมีทั้งหมดสองประเภท: 1) แผนภาพเครื่องสถานะเชิงพฤติกรรม 2) แผนภาพเครื่องสถานะโปรโตคอล
- แผนภาพสถานะใช้เพื่อจับภาพลักษณะไดนามิกของระบบ
- สถานะคือช่วงเวลาที่เฉพาะเจาะจงในช่วงอายุของวัตถุ