แผนภาพแสดงสถานะ หรือ สเตตไดอะแกรม (state diagram) ใช้เพื่อแสดงสถานะของวัตถุ รวมไปถึงเหตุการณ์ต่าง ๆ ที่สามารถทำให้สถานะของวัตถุนั้นเปลี่ยนแปลงไปและการกระทำที่เกิดขึ้นเมื่อสถานะของระบบเปลี่ยนไป สามารถบอกสถานะของวัตถุได้ โดยใช้หลักการให้ความสนใจ ณ เวลาต่าง ๆ กันนั้น วัตถุจะมีสถานะเป็นแบบใดบ้าง
บทความนี้หรือส่วนนี้ของบทความต้องการปรับรูปแบบ ซึ่งอาจหมายถึง ต้องการจัดรูปแบบข้อความ จัดหน้า แบ่งหัวข้อ จัดลิงก์ภายใน และ/หรือการจัดระเบียบอื่น ๆ คุณสามารถช่วยแก้ไขปัญหานี้ได้โดยการกดที่ปุ่ม แก้ไข ด้านบน จากนั้นปรับปรุงหรือจัดรูปแบบอื่น ๆ ในบทความให้เหมาะสม |
การเขียน State Diagram เพื่อการทำ Object Oriented Analysis and Design นั้นจะแทนด้วยสัญลักษณ์ สี่เหลี่ยมมุมมน ซึ่งแทน State โดยมีชื่อของ State ระบุอยู่ และจะใช้เครื่องหมายลูกศรเพื่อแทน Transition โดยลากจาก State เริ่มต้นไปยัง State ที่ต้องการ โดยบนลูกศรจะมีชื่อของ Transition หรือกิจกรรมกำกับอยู่ด้วย การเขียนชื่อของกิจกรรมกำกับบนลูกศร มีรูปแบบดังนี้
โดยที่
- Condition หมายถึง เงื่อนไขในการเข้าหรือออกจาก State
- Action หมายถึง กิจกรรมที่ทำระหว่างการเปลี่ยน State
- ทั้งนี้ในลูกศรจะมี Condition หรือ Action หรือไม่มีก็ได้ แต่ต้องมีตัวใดตัวหนึ่งเป็นอย่างน้อย
- จุดเริ่มต้นของกิจกรรมต่าง ๆ ใน State diagram เรียกว่า Initial state
- จุดสิ้นสุดของกิจกรรมทั้งหมดใน State diagram เรียกว่า End State
หลักในการเขียน State Diagram ให้มีประสิทธิภาพ
- จาก Class Diagram ดูว่ามีจำนวนของ State Diagram กี่ตัวที่ต้องเขียน ปกติจะเท่ากับจำนวน Function ของแต่ละ Class รวมกัน
- ไม่จำเป็นที่จะต้องเขียน State Diagram ของทุก ๆ Function ของทุก ๆ Class Diagram ก็ได้
- ในบาง Function ที่กิจกรรมไม่ซับซ้อนมากมาย ไม่จำเป็นต้องมี State Diagram
- ให้พิจารณาว่าในแต่ละ Class จะมี State อะไรบ้าง (โดยยึดจากหลักการของความเป็นจริง) ไม่ต้องคำนึงว่ามี Function อะไรอยู่
- จาก State ที่มีอยู่ให้เขียน State Diagram ของแต่ละ Function
- เพิ่ม state ที่จำเป็นเพิ่มเติม เพื่อให้ state diagram สมบูรณ์ยิ่งขึ้น
- ทำจนกว่าจะได้ State Diagram ของ 1 Class ที่สมบูรณ์
- ทำซ้ำจนครบทุก ๆ Class ใน Class Diagram
Moore Model
การเขียน State Diagram ของ Moore จะใช้ตัวอักษรและตัวเลขเขียนอยู่ในวงกลม โดยที่ตัวอักษรแสดงถึง State ตัวเลขแสดงถึง Output เช่น W/0 หมายความว่า ที่ State W ที่เวลาใดๆ ถ้าได้รับ Input แล้ววงจรจะเชื่อมด้วยเส้นตรงหรือเส้นโค้งมีหัวลูกศรกำกับและแต่ละเส้นที่เชื่อมกันก็ยังมีตัวเลขอีกชุด แสดงถึงการป้อน Input กำกับไว้ด้วย
Moore Model ใช้ในกรณีที่ Output ของวงจรไม่ได้ขึ้นอยู่กับ Input แต่จะขึ้นอยู่กับ Present State เท่านั้น ดังนั้น State table และ State Diagram ตามแบบของ Moore จะแตกต่างกับแบบของ Mealy
จากรูปคือ
ถ้าให้ State W เป็น Present State และวงจรได้รับ Input X=0 แล้ว Next State ของวงจรเป็น State Y และให้ Output Z=0 แต่ถ้าวงจรได้รับ Input X=1แล้ว Next State ของวงจรเป็น State X และให้ Output Z=0
ถ้าให้ State X เป็น Present State และวงจรได้รับ Input X=0 แล้ว Next State ของวงจรจะคงอยู่ที่ State X และให้ Output Z=1 แต่ถ้าวงจรได้รับ Input X=1แล้ว Next State ของวงจรเป็น State Yและให้ Output Z=1
ถ้าให้ State Y เป็น Present State และวงจรได้รับ Input X=0 แล้ว Next State ของวงจรเป็น State X และให้ Output Z=0 แต่ถ้าวงจรได้รับ Input X=1แล้ว Next State ของวงจรเป็น State W และให้ Output Z=0
ข้อดี
Output ไม่เปลี่ยนตาม Input ทำให้ไม่เกิดปัญหา momntary change หรือ Glitch
ข้อเสีย ใช้จำนวนสภาวะมากกว่าในการออกแบบวงจรชนิดเดียวกัน
อ้างอิง
- State diagram เก็บถาวร 2011-11-05 ที่ เวย์แบ็กแมชชีน
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.