200 likes | 343 Views
Sequence Diagram. Sequence Diagram. เป็นแบบจำลองเชิงพฤติกรรม ( Dynamic Model หรือ Behavioral Model ) ของ Problem Model คือการจำลองกระบวนการที่ทำให้เกิดกิจกรรมรวมของระบบ เกิดจากชุดของกิจกรรม ซึ่งกิจกรรมหนึ่งๆ นั้นเกิดจากการที่ Object หนึ่งโต้ตอบกับอีก Object หนึ่ง. Sequence Diagram.
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 ต่อไปนี้ • การสตาร์ทเครื่องยนต์ของรถยนต์ • การขับขี่รถยนต์ • การหยุดรถและนำเก็บเข้าที่จอด