200 likes | 349 Views
A Sequence Diagram is a behavioral model that mimics the activities of a system. Learn the symbols used, steps to create one from Use Case and Class Diagram, and handle new activities efficiently. Look into creating relationships from Use Case with Uses and Extends. Example diagrams for an ATM system included.
E N D
Sequence Diagram • เป็นแบบจำลองเชิงพฤติกรรม (Dynamic Model หรือ Behavioral Model)ของ Problem Model • คือการจำลองกระบวนการที่ทำให้เกิดกิจกรรมรวมของระบบ เกิดจากชุดของกิจกรรม ซึ่งกิจกรรมหนึ่งๆ นั้นเกิดจากการที่ Object หนึ่งโต้ตอบกับอีก Object หนึ่ง
Sequence Diagram • เป็น Diagram ที่ประกอบด้วย Class หรือ Object เส้นที่ใช้เพื่อแสดงลำดับเวลา และเส้นที่ใช้เพื่อแสดงลำดับเวลา และเส้นที่ใช้เพื่อแสดงกิจกรรมที่เกิดขึ้นจาก Object หรือ Class ใน Diagram
สัญลักษณ์ที่ใช้ {Object}:Class แทน Object หรือ Class {[Condition]} Function กิจกรรมที่เกิดขึ้น ชื่อของกิจกรรมต้องเป็น Function ที่มีอยู่ใน Class หรือ Object ที่ลูกศรชี้ไป เส้นเวลา
ตัวอย่าง :Class :Console :Monitor :Printer PressKey(key) [key=M] Show() [key=P] Print()
เทคนิคสร้าง Sequence Diagram จาก Use Case และ Class Diagram • พิจารณาทีละ Use Case โดยวังไม่ต้องคำนึงถึงความสัมพันธ์ที่แต่ละ Use Case มีต่อกัน • พิจารณาแต่ละ Use Case ว่ามี Class หรือ Object ใดร่วมทำให้เกิดกิจกรรมใน Use Case นั้นๆ บ้าง • นำ Use Case หรือ Object มาเรียงต่อกันตามแนวนอน โดยให้ Actor วางไว้ด้านซ้ายมือสุด (ถ้า Use Case นั้นมี Actor) • หากUse Case นั้นมี Actor ปกติแล้วกิจกรรมแรกที่ถูกเรียกมักจะเกิดจาก Actor ก่อนเสมอ ดังนั้นเมื่อเกิดกิจกรรมไปที่ Class หรือ Object ใด ให้ย้าย Class หรือ Object นั้นมาทางซ้ายมือ
เทคนิคสร้าง Sequence Diagram จาก Use Case และ Class Diagram (ต่อ) • กรณีที่มีกิจกรรมเกิดขึ้นใหม่ แต่ Function ที่เกิดขึ้นนั้นไม่มีใน Class หรือ Object ที่ลูกศรชี้ไป ให้เข้าไปเพิ่ม Function นั้นๆ ลงไปใน Class นั้น ใน Class Diagram • หากต้องมีการเพิ่ม Class ใหม่เข้าไปใน Sequence Diagram ต้องเพิ่ม Class นั้นและ Relationship ทีมีทั้งหมดใน Class Diagram ด้วย (แต่ Class ที่เพิ่มเข้าไปนั้น เป็น Class เพื่อจำลองกิจกรรมที่เกิดขึ้นจริงๆ ของระบบเท่านั้น ไม่ใช่ Class เพื่อการ Implement เช่น User Interface ต่างๆ) • ทำขั้นตอน 1-6 จนครบทุก Use Case
เทคนิคสร้าง Sequence Diagram จาก Use Case และ Class Diagram (ต่อ) • การสร้างความสัมพันธ์ของ Sequence Diagram จาก Use Case ที่มีการ Uses ทำได้โดยการนำ Class และกิจกรรมที่เกิดขึ้นใน Use Case ที่ถูก Use มาแทรกเข้าไปใน Use Case ที่เรียกใช้ และใช้กิจกรรมเพื่อเชื่อมโยง Sequence Diagram ทั้งสอง • การสร้างความสัมพันธ์ของ Sequence Diagram จาก Use Case ที่มีการ Extends ทำได้โดยนำ Class และกิจกรรมที่เกิดขึ้นใน Use Case ที่ Extend มาแทรกเข้าไปใน Use Case ที่ถูก Extend และใช้กิจกรรมเพื่อเชื่อมโยง Sequence Diagram ทั้งสอง
ตัวอย่าง Sequence Diagram ของระบบ ATM • Use Case ของระบบ ATM • การถอนเงิน • การดูยอดเงิน • Class ของระบบ ATM • เครื่อง ATM • ปุ่มหมายเลข บนเครื่อง ATM (เป็น Aggregate ของเครื่อง ATM) • หน้าจอบนเครื่อง ATM (เป็น Aggregate ของเครื่อง ATM) • เครื่องจ่ายเงินหรือ Cash Dispenser (เป็น Aggregate ของเครื่อง ATM
ตัวอย่าง Sequence Diagram ของระบบ ATM (ต่อ) • ระบบ ATM ประกอบด้วย Class อะไรบ้าง? • เครื่องพิมพ์ Slip (เป็น Aggregate ของเครื่อง ATM) • ผู้ใช้เครื่อง (ถือเป็น Class ที่เป็น Actor) • เงินสด • บัญชีเงินฝาก
Sequence Diagram สำหรับ Use Case การขอดูยอดเงิน :เครื่อง ATM :ผู้ใช้เครื่อง :ปุ่มหมายเลข :หน้าจอ :บัญชีเงินฝาก สอดบัตร() กด (รหัส) [รหัสไม่ถูกต้อง] เตือน [รหัสไม่ถูกต้อง] แสดงข้อความเตือน [รหัสไม่ถูกต้อง] หยุดการทำรายการ [รหัสถูกต้อง] ดำเนินการต่อ แสดง Main Menu กด (ขอดูยอดเงิน) ตรวจสอบยอดคงเหลือ แสดงยอดคงเหลือ
Sequence Diagram สำหรับ Use Case การถอนเงิน :เครื่องพิมพ์ :เครื่องจ่ายเงิน :บัญชีเงินฝาก :ผู้ใช้เครื่อง :หน้าจอ :ปุ่มหมายเลข :เครื่อง ATM สอดบัตร() กด (รหัส) [รหัสไม่ถูกต้อง] เตือน [รหัสไม่ถูกต้อง] แสดงข้อความเตือน [รหัสไม่ถูกต้อง] หยุดการทำรายการ [รหัสถูกต้อง] ดำเนินการต่อ แสดง Main Menu กด (กดจำนวนเงิน) ตรวจสอบยอดคงเหลือ (จำนวนเงิน) [จำนวนเงิน<= ยอดคงค้าง] จ่ายเงิน พิมพ์ SLIP [จำนวนเงิน> ยอดคงค้าง] แสดง Error Message
ตัวอย่าง Sequence Diagram ของการคุยโทรศัพท์ • Use Case ของการคุยโทรศัพท์ • การต่อโทรศัพท์ • การคุยโทรศัพท์ • การมีสายเรียกซ้อน (เป็น Use Case ที่ Extends การคุยโทรศัพท์) • Class ของการคุยโทรศัพท์ • ผู้ต่อโทรศัพท์ (Actor) • ผู้รับโทรศัพท์ (Actor) • เครื่องโทรศัพท์
Sequence Diagram ของการต่อโทรศัพท์ โทรศัพท์ของผู้รับ :เครื่องโทรศัพท์ :ผู้รับโทรศัพท์ :ผู้ต่อโทรศัพท์ โทรศัพท์ของผู้ต่อฯ :เครื่องโทรศัพท์ ยกหู หมุนเบอร์โทร สัญญาณดัง [ไม่เกิน 30 วินาที] สัญญาณดัง ยกหู [ยกหูก่อน 30 วินาที] ต่อ Connection
Sequence Diagram ของการคุยโทรศัพท์และมีสายเรียกซ้อน โทรศัพท์ของผู้รับ :เครื่องโทรศัพท์ :ผู้รับโทรศัพท์ :ผู้ต่อโทรศัพท์ โทรศัพท์ของผู้ต่อฯ :เครื่องโทรศัพท์ คุย รับสัญญาณเสียง คุย รับสัญญาณเสียง มีสายเรียกซ้อน กดเปลี่ยนสาย [มีการเปลี่ยนสาย] ตัด Connection [จบการสนทนา] ตัด Connection [จบการสนทนา] วางหู [จบการสนทนา] วางหู
Sequence Diagram ของการการถามยอดเงินคงเหลือจากเครื่อง ATM :SavingAccount :Users :ATMScreen AcquireBalance() Bal:=AcquireBalance() Bal Show(Bal)
จงเขียน Sequence Diagram ของเหตุการณ์ในแต่ละ Use Caseโดย พิจารณาว่าควรจะมี Class หรือ Objects 1 • Problem Domain ที่ประกอบด้วย Use Case ต่อไปนี้ • การฝากเงินที่ธนาคาร • การถอนเงินที่ธนาคาร • การนำเช็คเงินสดไปขึ้นเงิน
จงเขียน Sequence Diagram ของเหตุการณ์ในแต่ละ Use Caseโดย พิจารณาว่าควรจะมี Class หรือ Objects 2 • Problem Domain ที่ประกอบด้วย Use Case ต่อไปนี้ • การเข้ารับการรักษาในโรงพยาบาล • การนำใบสั่งยาไปชำระเงินและรับยา
จงเขียน Sequence Diagram ของเหตุการณ์ในแต่ละ Use Caseโดย พิจารณาว่าควรจะมี Class หรือ Objects 3 • Problem Domain ที่ประกอบด้วย Use Case ต่อไปนี้ • การสตาร์ทเครื่องยนต์ของรถยนต์ • การขับขี่รถยนต์ • การหยุดรถและนำเก็บเข้าที่จอด