State Diagram
State Diagram แผนภาพแสดงสถานะ หรือ สเตตไดอะแกรม (state diagram) ใชเพือ่ แสดง สถานะของวตั ถุ รวมไปถึงเหตกุ ารณต าง ๆ ทีส่ ามารถทําใหสถานะของวตั ถนุ ัน้ เปล่ียนแปลงไปและการกระทําท่ีเกิดข้ึนเมอื่ สถานะของระบบเปลย่ี นไป สามารถบอก สถานะของวัตถไุ ด โดยใชหลกั การใหค วามสนใจ ณ เวลาตา ง ๆ กันน้ัน วัตถจุ ะมีสถานะ เปน แบบใดบาง การเขยี น State Diagram เพือ่ การทาํ Object Oriented Analysis and Design นั้นจะแทนดวยสญั ลกั ษณ ส่ีเหล่ยี มมมุ มน ซึ่งแทน State โดยมชี ือ่ ของ State ระบอุ ยู และจะใชเ คร่อื งหมายลกู ศรเพ่อื แทน Transition โดยลากจาก State เรม่ิ ตนไป ยัง State ท่ีตอ งการ โดยบนลูกศรจะมชี ่ือของ Transition หรอื กิจกรรมกํากับอยดู วย การเขียนช่ือของกจิ กรรมกํากบั บนลูกศร มีรูปแบบดังนี้
หลกั ในการเขียน State Diagram 1. จาก Class Diagram ใหดวู ามี State Diagram ก่ตี ัวทต่ี องเขียน ไมจาํ เปนท่ีจะตอ งเขยี น State Diagram ของทกุ Function ทกุ Class Diagram ในบาง Function ทไ่ี มไ ดมกี ิจกรรมท่ีซับซอ นมากมาย กไ็ มจ าํ เปนตอ งมี StateDiagram 2. ในแตละ Class ใหพิจารณาวาจะมี State อะไรบา ง โดยยังไมตองคาํ นงึ วา มี Function อะไรอยบู า ง 3. จาก State ที่มอี ยใู หเขยี น State Diagram ของแตล ะ Function 4. หากพบวามี State ใดที่จะตองเพิม่ ใหเพ่ิมเขาไป เพอื่ ทําให State Diagram สมบูรณข ึ้น 5. ทาํ ขอ 3 และ 4 จนกวาจะได State Diagram ของ 1 Class ท่ีสมบูรณ 6. ทําจนครบทุกๆ Class ใน Class Diagram
การเปด เคร่ืองคอมพิวเตอร เรมิ่ ตนท่เี ครือ่ งคอมพิวเตอร ที่อยใู น State Off ไดรับการเปด (Switch is turned on) จึง ทาํ ใหค อมพวิ เตอรเ ปลีย่ นไปอยทู ่ี State On และเมอ่ื เปดเคร่ือง เสร็จเรยี บรอย การ Boot จึงเกดิ ข้ึน จนทําใหค อมพวิ เตอรมาอยู ท่ี State Boot และเมือ่ Boot เสรจ็ เรียบรอ ยแลว เคร่อื ง คอมพวิ เตอรจ ึงมาอยูใน State Ready ซ่ึงรอรบั คาํ สงั่ และพรอ ม จะทาํ งานตอ ไป Turn On (เปดเคร่อื ง)
Shut Down (ปด เครื่อง) ในการปด เคร่ืองคอมพวิ เตอรคือ การเปล่ยี น State จาก Ready ซ่ึงไมม กี ารทาํ งานใดๆ ไปยงั State Off ซึ่งการจะเปลี่ยน State เชนน้ีไดตอ งใช Transition การปด เครอื่ ง (Switch is turned off)
Read Instruction (อา นคําส่ังจากหนวยความจาํ ) ในการอานคําส่งั ใดๆ จากหนวยความจาํ ของคอมพวิ เตอรน ั้นจะเริม่ ตนใน State Ready กอน เม่อื มคี ําสง่ั เขามาในหนว ยความจาํ แลว ตาม Transition Instruction Coming คอมพิวเตอรจ ะเริม่ เขา ไปยงั State reading ซงึ่ จะอานคําสง่ั จาก Memory ทลี ะ คาํ สัง่ ไปจนกวาจะเสร็จสนิ้ (Reading Complete) ซงึ่ เมอื่ อา นเสรจ็ แลว คอมพวิ เตอรจะสง คําสง่ั ที่อา นไดไ ปยัง CPU ดงั ระบไุ วใ น State Sending และคอมพิวเตอรจะวนอยูใน State น้ี (ดังจะเหน็ จาก Transition Sending not Complete) จนกวา จะเสร็จสน้ิ จึง กลบั เขาไปยงั State Ready
Decode (การถอดรหัสคาํ สั่ง) ในการถอดรหสั คาํ สงั่ โดยไมต อ งมเี งอ่ื นไขใดๆ คอมพิวเตอรจะ เปลี่ยนจากสถานะ Readyมายงั สถานะ Decoding ซึ่งใน State น้ี เคร่ืองคอมพิวเตอรจะถอดรหัสคาํ ส่งั ทลี ะคําสั่งจนกวา จะหมด และเมื่อ การถอดรหสั เสรจ็ ส้ินแลว (Decoding Complete) จึงกลับไปอยใู น สถานะ Ready เพอ่ื รอคาํ ส่งั ใหมต อไป
Execute (การประมวลผล) การประมวลผลทางคอมพิวเตอรจะเรม่ิ ตน ท่ี State Ready เขาไปยัง State Executing ซึ่งจะวนอยใู น State นี้จนกระทั่งคําสั่งถูกประมวลผลเสร็จส้ิน ซง่ึ แบงออกเปน 2 แบบคอื การประมวลผลคาํ สั่งเกีย่ วกับ Memory และการ ประมวลผลทาง Input/Output ซึง่ การเสรจ็ ส้ินการประมวลผลทาง Memory นัน้ คอมพวิ เตอรจ ะยายกลบั ไปยัง State Ready ในขณะท่ี เม่อื การประมวลทาง Input/Output เสร็จสิ้น คอมพิวเตอรจ ะยา ยไป state Buffering ซึ่งเปนการ บนั ทกึ ผลการประมวลผลไวใ น Memory เพอ่ื รอการนําออกไปยังอุปกรณ Output หลงั จากทกี่ ารทาํ Buffering เสร็จเรียบรอย จะเขาไปยงั State Output ซ่งึ เม่ือเขา ไปยัง State น้ี จะนําผลที่ไดออกทางอปุ กรณ และเม่ือการนํา ขอมูลออกแสดงทางอุปกรณ Output แลว จึงกลบั มาสู State Ready ตามเดมิ
เงือ่ นไขของการเขา และออกจาก State ตางๆ ใน State Diagram Entry/ Action หมายถึงเม่อื เขามายัง State น้ี ใหทาํ กจิ กรรมAction เชน Entry/ Count=0 หมายถึง เมื่อเขา มายงั State ใหคา Count เปน 0 Do/ Action หมายถงึ หลังจากเขามายัง State นแ้ี ลว หากไมมเี งอ่ื นไขอน่ื ใด ใหท าํ กิจกรรม Action เชน Do/Count=Count+1 หมายถงึ เมือ่ เขามายัง State น้ใี หเพ่มิ คา Count ทลี ะ 1 Exit/ Action หมายถึงขณะท่ีจะออกจาก State น้ี ใหทํากจิ กรรม Action เชน Exit/Show “Good Bye” Message หมายถงึ หากออกจาก State ใหแสดงขอ ความ “Good Bye” Condition/ Action หมายถงึ ขณะทีย่ ังอยูใน State นเ้ี ม่อื เกดิ เง่ือนไขใดๆ ทก่ี ําหนดโดย Condition ใหท ํา กจิ กรรม Action เชน every 2 seconds/phone ring หมายถงึ ทุกๆ 2 วินาทใี หเสยี งโทรศัพทด ัง 1 ครง้ั เปน ตน
สญั ลกั ษณแ ละสญั ลักษณแ ผนภาพ สหรฐั อเมริกาแทนสถานการณในชวงชวี ติ ของวตั ถุ คุณสามารถ แผนภมู ิสถานะพืน้ ฐาน แสดงสถานะใน SmartDraw ไดอ ยางงายดายโดยใชส ่ีเหล่ยี มผนื ผา ท่มี มี มุ โคง มน
การซิงโครไนซและการแยกการควบคมุ แถบหนาสน้ั ๆ ทม่ี ีการเปลีย่ นสองชว งเขามาแสดงถึงการซงิ โครไนซก าร ควบคมุ แถบแรกมักเรยี กวาสอมซง่ึ การเปลีย่ นแปลงเดยี วจะแบงออกเปน หลายชว งการเปลี่ยนพรอ มกัน แถบทสี่ องเรยี กวา การรวมซงึ่ การเปลี่ยนท่ี เกิดขน้ึ พรอมกันจะลดกลบั เปน หน่งึ วิธีท่ดี ีท่สี ดุ ในการทาํ ความเขา ใจแผนภาพสถานะคอื การดตู วั อยางบางสวน ของแผนภาพสถานะ คลิกที่แผนภาพสถานะใด ๆ เหลานที้ ่รี วมอยใู น SmartDraw และแกไข
เปลย่ี นแปลง สญั ลักษณส ถานะพื้นฐาน ลูกศรทบึ แสดงเสน ทางระหวา งสถานะตางๆของวัตถุ ตดิ ปา ยกาํ กับการเปลยี่ นแปลงดวยเหตกุ ารณทีท่ ริกเกอรและการกระทาํ ที่ เปน ผลจากเหตุการณน น้ั สถานะสามารถมีการเปล่ียนแปลงท่ีชีก้ ลบั มาทต่ี ัวเอง สถานะเริ่มตน วงกลมท่เี ติมตามดว ยลกู ศรแสดงถึงสถานะเรม่ิ ตน ของวตั ถุ สถานะสุดทาย ลกู ศรที่ช้ไี ปยังวงกลมที่เตม็ แลว ซึ่งซอนอยูใ นวงกลมอืน่ แสดงถึงสถานะสุดทา ยของวตั ถุ
Store Data การ Store Data เร่ิมตน ท่ี State Ready แลว เขา สู State Storing Data ซ่ึงจะบันทกึ ขอ มลู ลงใน (การบนั ทกึ ผลลพั ธส ูหนว ยความ Memory จนกวา จะครบถว นในทกุ ๆ หนว ยขอมูล หลงั จากนน้ั จึงกลบั เขาสู State Ready ตามเดิม จํา) ขอควรคํานงึ ในการเขยี น State Diagram ใน Analysis Phase นัน้ คอื ตอ งเขยี น State ใหครบใน ภาพรวมท้งั หมดกอ น โดยยังไมต องคาํ นงึ ถึงรายละเอียดของแตละ State และ Transitionมากนัก แตท่สี าํ คัญคือตอ งไมม ี State และ Transition ใดตกหลน หรอื หายไป
State Machine Diagram - แนวคดิ ข้ันสูง เปนไปไดท จ่ี ะเพ่ิมขอ จํากัด ในการเปล่ยี น พจิ ารณารปู ดา นลาง ขอ จาํ กดั \"[ไมใ ชสาํ เนาสดุ ทา ย]\" และ \"[สําเนาสุดทา ย]\" ใชเ พื่อแยกความแตกตางของชวงการเปลีย่ นภาพทง้ั สองกับเหตกุ ารณ \"copyBorrowed ()\" ความหมายคือการเปดใชง านการเปล่ียนแปลงเมือ่ ขอ จํากดั เปนจริง
ซับสเตท – Substates สถานะงา ยๆคอื สถานะท่ีไมมโี ครงสรา งยอย สถานะทม่ี ีสารตงั้ ตน (สถานะซอ นกัน) เรียกวา สถานะ ผสม ซบั สเตทอาจซอ นกันในระดับใดก็ได เคร่ืองสถานะทซี่ อ นกันอาจมสี ถานะเรม่ิ ตน ไดสงู สุดหนึ่ง สถานะและสถานะสุดทา ยหนึ่งสถานะ Substates ถกู ใชเ พอ่ื ลดความซบั ซอนของเครือ่ งสเตตแบบ แบนที่ซับซอนโดยการแสดงวาบางสถานะเปน ไปไดภ ายในบรบิ ทเฉพาะเทา นน้ั (สถานะปด ลอ ม) ตวั อยา งพ้นื ผวิ - เคร่ืองทาํ ความรอน
Search
Read the Text Version
- 1 - 15
Pages: