Sequence Diagram

Sequence Diagram คืออะไร
        Sequence Diagram คือ เป็นแสดงลำดับการทำงานของระบบ โดยมี Object และ เวลาเป็นตัวกำหนดลำดับของงาน และเน้นไปที่ instant ของ Oject Sequence Diagram เป็น Diagram ซึ่งแสดงปฏิสัมพันธ์(Interaction) ระหว่าง Object ตามลำดับของเหตุการณ์ที่เกิดขึ้น ณ เวลาที่กำหนด message ที่เกิดขึ้นระหว่าง class จะสามารถนำไปสู่การสร้าง method ใน class ที่เกี่ยวข้องได้

        ภายใน Sequence Diagram จะใช้สี่เหลี่ยมแทน Class หรือ Object ซึ่งภายในกรอบสี่เหลี่ยมจะมีชื่อของ Object หรือ Class ประกอบอยู่ในรูปแบบ {Object}: Class กิจกรรมที่เกิดขึ้นจะแทนด้วยลูกศรแนวนอนที่ชี้จาก Class หรือ Object หนึ่งไปยัง Class หรือ Object ตัวต่อไป การระบุชื่อกิจกรรมนั้นอยู่ในรูปแบบ {[Condition]} Function  ชื่อของกิจกรรมจะต้องเป็น Function ที่มีอยู่ใน Class หรือ Object ที่ลูกศรชี้ไป   เส้นแสดงเวลาจะแทนด้วยเส้นตรงประแนวตั้ง โดยเวลาจะเดินจากด้านบนมาสู่ด้านล่าง นั่นหมายถึง ถ้าหากกิจกรรมที่เกิดขึ้นเกิดอยู่ด้านบนสุดนั่นหมายถึงกิจกรรมนั้น เป็นกิจกรรมแรก และกิจกรรมที่อยู่บริเวณต่ำลงมาจะเป็นกิจกรรมที่เกิดขึ้นต่อจากนั้น เพื่อความเข้าใจมากยิ่งขึ้น ขอให้พิจารณาจากรูปต่อไปนี้

รูปที่ 1 Sequence Diagram




ภาพที่ 2 องค์ประกอบของ Sequence Diagram
 
ขั้นตอนการสร้าง Sequence Diagram
        1. กำหนด External หรือ Internal Entity โดยกรณีถ้าเป็น Internal กระบวนการติดต่ออาจจะเริ่มจาก Actor โดยตรงและจะถูกกำหนดให้เป็นตัวเริ่มต้นโดยอัตโนมัติ และถ้าเป็น External อาจจะอยู่ในรูปของระบบอื่น ๆ
        2. การระบุ Object และ Class ที่จะมีการทำงาน
 
 

        3. รับ – ส่ง Message ระหว่าง Object โดยเริ่มต้นจาก Object หนึ่งไปยังอีก Object อื่น ๆ ลงไปตามเส้นเวลาทุกครั้งที่มีการเรียกใช้ Message

.
        4. Activation บริเวณที่มี Activation Bar ครอบอยู่แสดงให้เห็นว่าวัตถุที่สั่งงานไป   ยังคงรอคอยผลลัพธ์กลับจากวัตถุที่ทำงานให้อยู่
        5. Message ในลำดับถัดมาจะเป็นผลของการสร้าง Object ของ Activation ใหม่
        6. ที่ตำแหน่งสุดท้ายของ Activation อาจจะใช้สำหรับการคืนค่ากลับไปยัง Caller ซื่งจะแทนด้วยเส้นประที่เริ่มจากผู้รับไปยังผู้ส่ง
        7. Message ที่ปรากฎในส่วนบนจะเกิดขึ้นก่อน Message ที่อยู่ถัดลงมา ซึ่งเป็นไปตาม Lifetime
        8. Message ที่อยู่ท้ายสุดจะเป็นการทำงานลำดับท้ายของ Use Case
 
 
 
ตัวอย่างการทำงาน
 

 

 การทำงานของ Sequence Diagram ของระบบ ATM สำหรับ Use Case ดูยอดเงินคงเหลือ
        1. จากรูปเป็นภาพของ Sequence Diagram ที่แสดงกิจกรรมใน Use Case การขอดูยอดเงินคงเหลือจากเครื่อง ATM โดยจะให้ผู้ใช้เครื่อง ซึ่งถือเป็น Actor เป็น Class ที่อยู่ทางซ้ายสุดของ Sequence Diagram ถัดมาคือเครื่อง ATM ซึ่งเครื่อง ATM นั้นประกอบด้วย (Aggregation) ปุ่มหมายเลข และหน้าจอ ซึ่งเป็น Class ที่แสดงไว้ในอันดับถัดมา และบัญชีเงินฝาก เป็น Class ที่อยู่ทางขวาสุดของ Sequence Diagram
        2. กิจกรรมใน Use Case นี้เริ่มต้นที่ผู้ใช้เครื่องสอดบัตร ATM เข้าไปยังเครื่อง ATM (ซึ่งหมายความว่าตู้ ATM ต้องมี Function เพื่อการสอดบัตร ATM อยู่ในตัว) ตามด้วยการกดรหัสของผู้ใช้เครื่องที่ปุ่มหมายเลข (Function กด เป็นของปุ่มหมายเลข)
        3. ซึ่งผลลัพธ์ที่ได้จากการกดนี้จะได้รหัสที่ผู้ใช้เครื่องกดถ้ารหัสไม่ถูกต้อง เครื่องจะถูกสั่งให้เตือนผู้ใช้เครื่องว่ารหัสผิดพลาด แต่เครื่อง ATM จะเตือนได้นั้นต้องแสดงข้อความผ่านทางหน้าจอของเครื่อง ดังนั้นเครื่อง ATM จึงสั่งให้หน้าจอแสดงข้อความเตือน
        4. หลังจากแสดงข้อความเตือนเสร็จสิ้นแล้ว เครื่องจะถูกสั่งให้หยุดทำรายการของผู้ใช้รายนี้ แต่ในทางกลับกันหากรหัสที่กดไว้นั้นถูกต้อง (พิจารณาเส้นที่ 6 จากด้านบน)
        5. จะเห็นว่าเครื่อง ATM ถูกสั่งให้ดำเนินการต่อไป โดยการดำเนินการแรกของเครื่องคือ การสั่งให้หน้าจอแสดงหน้าจอหลัก (Main Menu) หลังจากนั้นผู้ใช้จะกดปุ่มที่ปุ่มหมายเลขเพื่อระบุว่าตนต้องการขอดูยอดเงิน หลังจากนั้นบัญชีเงินฝากจะถูกสั่งให้ส่งค่ายอดคงเหลือ (ผ่านทาง Function ตรวจสอบยอดคงเหลือ) และผลที่ได้จะถูกแสดงออกทางหน้าจอซึ่งถือเป็นกิจกรรมสุดท้ายของ Use Case นี้

No comments:

Post a Comment