Chapter 10 Sequence Diagram

29
Chapter 10 Sequence Diagram

description

Chapter 10 Sequence Diagram. 10.1 การจำลองภาพในเชิงกิจกรรม (Dynamic View) ด้วย Sequence Diagram. - PowerPoint PPT Presentation

Transcript of Chapter 10 Sequence Diagram

Page 1: Chapter  10  Sequence Diagram

Chapter 10

Sequence Diagram

Page 2: Chapter  10  Sequence Diagram

10.1 การจำ�าลองภาพในเชิ�งก�จำกรรม (Dynamic View) ด้�วย Sequence Diagramการสร�างแบบจำาลองเชิ�งก�จำกรรม

(Dynamic Model หร�อ Behavioral Model) ของ Problem Domain ซึ่��งก�คื�อการจำาลองกระบวนการที่��ที่าให�เก�ดก�จำกรรมของระบบ เก�ดจำากชิ!ดของก�จำกรรม ซึ่��งก�จำกรรมหน��งๆ น#$นเก�ดจำากการที่�� Object หน��งโต้�ต้อบก#บอ�ก Object หน��งน#�นเอง สามารถอธิ�บายการเก�ดก�จำกรรมของ Problem Domainได�ด�วย Class Diagram ด#งร+ป

Page 3: Chapter  10  Sequence Diagram

ก�จำกรรมของ

Problem Domain

ชิ�ด้ของก�จำกรรม

ก�จำกรรมObjectทำ�าให้�เก�ด้

0..1

2..n

1..n

2..2

ร�ป Class Diagram แสด้งก�จำกรรมของ Problem Domain

Page 4: Chapter  10  Sequence Diagram

ในการที่า Object Oriented Analysis (OOA) จำาเป-นต้�องม�การจำาลองก�จำกรรมของ Problem Domain ด�วยเชิ.นเด�ยวก#น ซึ่��งการจำาลองก�จำกรรมของ Problem Domain เร�ยกว.า Dynamic ModelDynamic Model คื�อการจำาลองก�จำกรรมและลาด#บของก�จำกรรมที่��เก�ดข�$นหร�ออาจำเก�ดข�$นใน Problem Domain ให�อย+.ในร+ปที่��สามารถเข�าใจำได�โดยง.าย เชิ.น การจำาลองโดยใชิ�คืา ประโยคื หร�อการจำาลอง โดยการเข�ยนภาพต้ามลาด#บเวลาและเหต้!การณ์2 (เชิ.น ในหน#งส�อการ2ต้+น) เป-นต้�น แต้.สาหร#บการบรรยายก�จำกรรมที่��เก�ดข�$นต้ามหล#กการของ OOAD น#$น ส��งที่��เหมาะสมที่��ส!ดสาหร#บการน�$คื�อ Sequence Diagram

Sequence Diagram เป-น Diagram ที่��ประกอบไปด�วย Class หร�อ Object เส�นที่��ใชิ�เพ��อแสดงลาด#บเวลา และเส�นที่��ใชิ�เพ��อแสดงก�จำกรรมที่��เก�ดข�$นจำาก Object หร�อ Class ใน Diagram

Page 5: Chapter  10  Sequence Diagram

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

Page 6: Chapter  10  Sequence Diagram

:Clients

:Console

:Monitor

:Printer

PressKey(Key) [Key

= M]Show()

[Key = P]Print()

ร�ป Sequence Diagram

Page 7: Chapter  10  Sequence Diagram

จำาก Sequence Diagram ทำ��ผ่!านมา อธิ�บายก�จำกรรมทำ��เก�ด้ข$%นได้�ด้'งน�%เม��อพ�จำารณ์าล+กศรบนส!ดจำะเห�นว.า ก�จำกรรม

แรกที่��เก�ดข�$นคื�อ ผู้+�ใชิ�งาน (Client) กดป!5ม (PressKey) ซึ่��งอย+.บนแป6นพ�มพ2หร�อ Console ซึ่��ง PressKey จำะต้�องเป-น Function หน��งของ Consoleเม��อพ�จำารณ์าล+กศรที่��อย+.ถ#ดจำากเส�นแรก จำะเห�นว.าหล#งจำากน#$นก�ม�การต้รวจำสอบด�วยเง��อนไขว.า ถ�าหาก Key ที่��กด (ซึ่��งเก�ดจำากก�จำกรรมแรก) เป-น “M” ให� Monitor แสดงผู้ลล#พธิ2ด�วย Function Show ซึ่��งเป-น Function ของ Monitorแต้.ถ�า Key ที่��กดเป-น “P” จำ�งให�พ�มพ2ผู้ลล#พธิ2ออกที่าง Printer ด�วย Function Print ซึ่��งเป-น Function ที่��อย+.ใน Printer (ให�พ�จำารณ์าเส�นล.างส!ด)

Page 8: Chapter  10  Sequence Diagram

จำากร+ป Sequence Diagram ที่��แสดงให�เห�น เม��อพ�จำารณ์าจำะเห�นว.า Sequence Diagram จำะม�บที่บาที่และม�ประโยชิน2ในการชิ.วยพ�จำารณ์าว.าใน Class Diagram ที่��เราสร�างข�$น ม� Function ใดของ Class ใดขาดหายไป หร�อคืวรเพ��มเต้�มเข�ามาหร�อไม. เพ�ยงใด ซึ่��งม�ส.วนชิ.วยให� Class ต้.างๆ ที่��เราสร�างข�$นใน Class Diagram ม�คืวามสมบ+รณ์2มากข�$น

ต้#วอย.างเชิ.น ใน Sequence Diagram ถ�าหาก Monitor ไม.ม� Function Show() มาก.อน ก�สามารถเพ��มก�จำกรรมน�$ (ซึ่��งก�คื�อการเพ��ม Function Show() น#�นเอง) เข�าไปใน Sequence Diagram ได� ในขณ์ะเด�ยวก#นก�จำะต้�องย�อนกล#บไปเพ��ม Function Show() ของ Class Monitor ใน Class Diagram ด�วยเชิ.นก#น

Page 9: Chapter  10  Sequence Diagram

10.2 เทำคน�คในการสร�าง Sequence Diagram จำาก Use Case และ Class Diagramเราเคืยได�เร�ยนร+ �การสร�าง Use Case เพ��อจำาลอง

ภาพโดยรวมของระบบย.อยภายใน Problem Domain ซึ่��งเร�ยกว.า Use Case และคืวามส#มพ#นธิ2ระหว.าง Use Case ต้.างๆ มาแล�ว ส��งที่��จำะต้�องที่าต้.อไปก�คื�อ การแสดงก�จำกรรมที่��เก�ดข�$นภายใน Problem Domain ที่#$งหมดน#$น จำ!ดประสงคื2เพ��ออธิ�บายก�จำกรรมที่��เก�ดข�$นที่#$งหมดในที่!กๆ Use Case ซึ่��งส��งที่��จำะนามาใชิ�ในการอธิ�บายก�จำกรรมต้.างๆ คื�อ Sequence Diagram น#�นเอง

สามารถสร!ปเที่คืน�คืการสร�าง Sequence Diagram จำาก Use Case Diagram และ Class Diagram เป-นรายการ ได�ด#งน�$

1. พ�จำารณ์าที่��ละ Use Case โดยย#งไม.ต้�องคืาน�งถ�งคืวามส#มพ#นธิ2ที่��แต้.ละ Use Case ม�ต้.อก#น

Page 10: Chapter  10  Sequence Diagram

2. พ�จำารณ์าที่��ละ Use Case ว.าม� Class หร�อ Object ใดร.วมที่าให�เก�ดก�จำกรรมใน Use Case น#$นๆ บ�าง

3. นาเอา Class หร�อ Object ต้.างๆ มาเร�ยงต้.อก#นในแนวนอน (ร+ป Sequence Diagram) โดยให�นา Actor (ในกรณ์�ที่�� Use Case น#$นม� Actor ด�วย) ไว�ที่��ด�านซึ่�ายม�อส!ดเสมอ แล�วนาเอา Class หร�อ Object ต้.างๆ เร�ยงต้.อก#นจำากซึ่�ายไปขวา (แล�วแต้.คืวามเหมาะสม)

4. หาก Use Case น#$นม� Actor โดยปกต้�แล�วก�จำกรรมแรกที่��ถ+กเร�ยกม#กจำะเก�ดจำาก Actor ก.อนเสมอ ด#งน#$นเม��อเก�ดก�จำกรรมไปที่�� Class หร�อ Object ใด ให�ย�าย Class หร�อ Object น#$นมาที่างซึ่�าย ที่าเชิ.นน�$เร��อยๆ จำนกระที่#�งก�จำกรรมที่#$งหมดคืรบถ�วน

Page 11: Chapter  10  Sequence Diagram

6. หากต้�องม�การเพ��ม Class ใหม.เข�าไปใน Sequence Diagram ต้�องเข�าไปเพ��มเต้�ม Class น#$น และ Relationship ที่��ม�ที่# $งหมดใน Class Diagram ด�วย (แต้. Class ที่��เพ��มเข�าไปน#$น เป-น Class เพ��อจำาลองก�จำกรรมที่��เก�ดข�$นจำร�งๆ ของระบบเที่.าน#$น ไม.ใชิ. Class เพ��อการ Implement เชิ.น User Interface ต้.างๆ)

7. ที่าข#$นต้อน 1-6 จำนคืรบที่!ก Use Case

5. กรณ์�ที่��ม�ก�จำกรรมเก�ดข�$นใหม. แต้. Function ที่��เก�ดข�$นน#$นไม.ม�ใน Class หร�อ Object ที่��ล+กศรชิ�$ไป ให�เข�าไปเพ��ม Function น#$นๆ ลงไปที่�� Class น#$นใน Class Diagram

Page 12: Chapter  10  Sequence Diagram

8. การสร�างคืวามส#มพ#นธิ2ของ Sequence Diagram จำาก Use Case ที่��ม�การ Uses ที่าได�โดยการนา Class และก�จำกรรมที่��เก�ดข�$นใน Use Case ที่��ถ+ก Use มาแที่รกเข�าไปใน Use Case ที่��เร�ยกใชิ� และใชิ�ก�จำกรรมเพ��อเชิ��อมโยง Sequence Diagram ที่#$งสอง

9. การสร�างคืวามส#มพ#นธิ2ของ Sequence Diagram จำาก Use Case ที่��ม�การ Extends ที่าได�โดยนา Class และก�จำกรรมที่��เก�ดข�$นใน Use Case ที่�� Extend มาแที่รกเข�าไปใน Use Case ที่��ถ+ก Extend และ ใชิ�ก�จำกรรมเพ��อเชิ��อมโยง Sequence Diagram ที่#$งสอง

Page 13: Chapter  10  Sequence Diagram

ตั'วอย!าง

Sequence Diagram ของระบบ ATMในระบบ ATM จำะประกอบด�วย Use Case

ต้.างๆ ด#งน�$-การถอนเง�น -การด+ยอดเง�นในระบบ ATM จำะประกอบด�วย Class ต้.างๆ ด#งน�$-เคืร��อง ATM-ป!5มหมายเลข บนเคืร��อง ATM (เป-น Aggregation ของเคืร��อง ATM)-หน�าจำอบนเคืร��อง ATM (เป-น Aggregation ของเคืร��อง ATM)-เคืร��องจำ.ายเง�นหร�อ Cash Dispenser (เป-น Aggregation ของเคืร��อง ATM)-เคืร��องพ�มพ2 Slip (เป-น Aggregation ของเคืร��อง ATM)-ผู้+�ใชิ�เคืร��อง (ถ�อเป-น Class ที่��เป-น Actor)-เง�นสด-บ#ญชิ�เง�นฝาก

Page 14: Chapter  10  Sequence Diagram

จำาก Class และ Use Case ทำ��ม� สามารถสร�าง Sequence Diagram ส�าห้ร'บ Use Case ตั!างๆ ได้�ด้'งน�%

• Sequence Diagram สาหร#บ Use Case การขอด+ยอดเง�น

:ผ่��ใชิ�เคร-�อง

:เคร-�อง ATM

:ป�.มห้มายเลข

:ห้น�าจำอ

:บ'ญชิ�เง�นฝากสอด

บ#ต้ร() กด(รห#ส)[รห#สไม.ถ+กต้�อง]

เต้�อน()[รห#สไม.ถ+กต้�อง] แสดงข�อคืวามเต้�อน()[รห#สไม.ถ+กต้�อง] หย!ดการที่ารายการ()[รห#สถ+กต้�อง] ดาเน�นการต้.อ()แสดง Main Menu()กด (ขอด+

ยอดเง�น) ต้รวจำสอบยอดคืงเหล�อ() แสดงยอดคืง

เหล�อ()

ร�ป Sequence Diagram ของการขอด้�ยอด้เง�นจำากเคร-�อง ATM

Page 15: Chapter  10  Sequence Diagram

จำากร+ปเป-นภาพของ Sequence Diagram ที่��แสดงก�จำกรรมใน Use Case การขอด+ยอดเง�นคืงเหล�อจำากเคืร��อง ATM โดยจำะให�ผู้+�ใชิ�เคืร��อง ซึ่��งถ�อเป-น Actor เป-น Class ที่��อย+.ที่างซึ่�ายส!ดของ Sequence Diagram ถ#ดมาคื�อเคืร��อง ATM ซึ่��งเคืร��อง ATM น#$นประกอบด�วย (Aggregation) ป!5มหมายเลข และหน�าจำอ ซึ่��งเป-น Class ที่��แสดงไว�ในอ#นด#บถ#ดมา และบ#ญชิ�เง�นฝาก เป-น Class ที่��อย+.ที่างขวาส!ดของ Sequence Diagram

Page 16: Chapter  10  Sequence Diagram

ก�จำกรรมใน Use Case น�$เร��มต้�นที่��ผู้+�ใชิ�เคืร��องสอดบ#ต้ร ATM เข�าไปย#งเคืร��อง ATM (ซึ่��งหมายคืวามว.าต้+� ATM ต้�องม� Function เพ��อการสอดบ#ต้ร ATM อย+.ในต้#ว) ต้ามด�วยการกดรห#สของผู้+�ใชิ�เคืร��องที่��ป!5มหมายเลข (Function กด เป-นของป!5มหมายเลข)

ซึ่��งผู้ลล#พธิ2ที่��ได�จำากการกดน�$จำะได�รห#สที่��ผู้+�ใชิ�เคืร��องกดถ�ารห#สไม.ถ+กต้�อง เคืร��องจำะถ+กส#�งให�เต้�อนผู้+�ใชิ�เคืร��องว.ารห#สผู้�ดพลาด แต้.เคืร��อง ATM จำะเต้�อนได�น#$นต้�องแสดงข�อคืวามผู้.านที่างหน�าจำอของเคืร��อง ด#งน#$นเคืร��อง ATM จำ�งส#�งให�หน�าจำอแสดงข�อคืวามเต้�อน

Page 17: Chapter  10  Sequence Diagram

หล#งจำากแสดงข�อคืวามเต้�อนเสร�จำส�$นแล�ว เคืร��องจำะถ+กส#�งให�หย!ดที่ารายการของผู้+�ใชิ�รายน�$ แต้.ในที่างกล#บก#นหากรห#สที่��กดไว�น# $นถ+กต้�อง (พ�จำารณ์าเส�นที่�� 6 จำากด�านบน)

จำะเห�นว.าเคืร��อง ATM ถ+กส#�งให�ดาเน�นการต้.อไป โดยการดาเน�นการแรกของเคืร��องคื�อ การส#�งให�หน�าจำอแสดงหน�าจำอหล#ก (Main Menu) หล#งจำากน#$นผู้+�ใชิ�จำะกดป!5มที่��ป!5มหมายเลขเพ��อระบ!ว.าต้นต้�องการขอด+ยอดเง�น หล#งจำากน#$นบ#ญชิ�เง�นฝากจำะถ+กส#�งให�ส.งคื.ายอดคืงเหล�อ (ผู้.านที่าง Function ต้รวจำสอบยอดคืงเหล�อ) และผู้ลที่��ได�จำะถ+กแสดงออกที่างหน�าจำอซึ่��งถ�อเป-นก�จำกรรมส!ดที่�ายของ Use Case น�$

Page 18: Chapter  10  Sequence Diagram

• Sequence Diagram ส�าห้ร'บ Use Case การถอนเง�น

:ผ่��ใชิ�เคร-�อง

:เคร-�อง ATM

:ป�.มห้มายเลข

:ห้น�าจำอ :บ'ญชิ�เง�นฝาก

:เคร-�องจำ!ายเง�น

:เคร-�องพ�มพ1สอด

บ#ต้ร() กด(รห#ส)[รห#สไม.ถ+กต้�อง]

เต้�อน()[รห#สไม.ถ+กต้�อง] แสดงข�อคืวามเต้�อน()[รห#สไม.ถ+กต้�อง] หย!ดการที่ารายการ()[รห#สถ+กต้�อง] ดาเน�นการต้.อ()แสดง Main Menu()

กด (จำานวนเง�น)

ต้รวจำสอบยอดคืงเหล�อ(จำานวนเง�น) [จำานวนเง�น <=

ยอดคืงคื�าง]จำ.ายเง�น()

พ�มพ2 SLIP()[จำานวนเง�น >

ยอดคืงคื�าง]แสดง Error Message()

ร�ป Sequence Diagram ของการถอนเง�นด้�วยเคร-�อง ATM

Page 19: Chapter  10  Sequence Diagram

จำากร+ปเป-นภาพของ Sequence Diagram ที่��แสดงภาพของก�จำกรรมใน Use Case การถอนเง�นจำากเคืร��อง ATM ซึ่��งเม��อเปร�ยบเที่�ยบก#บร+ปที่��ผู้.านมาก.อนหน�าน�$ จำะพบว.าม� Class ที่��ม�ส.วนร.วมใน Sequence Diagram น�$เพ��มข�$น ซึ่��งได�แก.เคืร��องจำ.ายเง�น (Cash Dispenser) และเคืร��องพ�มพ2ถ�าส#งเกต้ให�ด�จำะพบว.า จำากเส�นก�จำกรรมเส�นบนส!ดจำนกระที่#�งถ�งเส�นที่�� 7 จำากด�านบน จำะเหม�อนก#บใน Sequence Diagram ของการขอด+ยอดเง�นฯ ที่!กประการ แต้.คืวามแต้กต้.างของก�จำกรรมจำะเก�ดข�$นหล#งจำากน#$นคื�อ

Page 20: Chapter  10  Sequence Diagram

หล#งจำากที่�� Main Menu แสดงให�เห�นผู้+�ใชิ� จำะกดจำานวนเง�นที่��ต้�องการถอนที่��ป!5มหมายเลข (ซึ่��ง Function กดอย+.ใน Class ป!5มหมายเลขอย+.แล�ว) จำากน#$นบ#ญชิ�จำะถ+กส#�งให�ต้รวจำสอบว.าม�ยอดคืงเหล�อในบ#ญชิ�เที่.าใด ซึ่��งถ�าหากว.าเง�นที่��ม�อย+.ในบ#ญชิ�ม�จำานวนมากกว.าจำานวนเง�นที่��ต้�องการถอน เคืร��องจำ.ายเง�นจำะถ+กส#�งให�จำ.ายเง�น ต้.อจำากน#$นเคืร��องพ�มพ2จำะถ+กส#�งให�พ�มพ2 SLIP แสดงการถอนเง�นออกมาในที่างกล#บก#น ถ�าหากเง�นในบ#ญชิ�ม�จำานวนน�อยกว.าจำานวนที่��ระบ!ว.าจำะถอน หน�าจำอจำะถ+กส#�งให�แสดงข�อคืวามเต้�อนคืวามผู้�ดพลาด (Error Message)

Page 21: Chapter  10  Sequence Diagram

ตั'วอย!าง Sequence Diagram ของการค�ยโทำรศั'พทำ1 ในการคื!ยโที่รศ#พที่2 Use Case ที่��ม�ได�แก.

-การต้.อโที่รศ#พที่2-การคื!ยโที่รศ#พที่2-การม�สายเร�ยกซึ่�อน (เป-น Use Case ที่�� Extends การคื!ยโที่รศ#พที่2)

ในการคื!ยโที่รศ#พที่2 Class ที่��ม�ได�แก.-ผู้+�ต้.อโที่รศ#พที่2 (Actor)-ผู้+�ร #บโที่รศ#พที่2 (Actor)-เคืร��องโที่รศ#พที่2

Page 22: Chapter  10  Sequence Diagram

Sequence Diagram ของการตั!อโทำรศั'พทำ1

:ผ่��ตั!อโทำรศั'พทำ1

โทำรศั'พทำ1ของผ่��ตั!อฯ:ผ่��ตั!อ

โทำรศั'พทำ1

โทำรศั'พทำ1ของผ่��ร'บ

:เคร-�องโทำรศั'พทำ1

:ผ่��ร'บโทำรศั'พทำ1

ยกห+()หม!นเบอร2

โที่ร()ส#ญญาณ์ด#ง() [ไม.เก�น 30

ว�นาที่�]ส#ญญาณ์

ด#ง()ยกห+()[ยกห+ก.อน 30

ว�นาที่�]ต้.อ

(Connection)

ร+ป Sequence Diagram ของการต้.อโที่รศ#พที่2

Page 23: Chapter  10  Sequence Diagram

จำากร+ปเป-นภาพแสดงการต้.อโที่รศ#พที่2โดยเร��มต้�นเม��อ ผู้+�โที่รศ#พที่2ยกห+ของเคืร��องร#บโที่รศ#พที่2(ในเส�นก�จำกรรมเส�นบนส!ด) ต้.อจำากน#$นผู้+�ต้.อโที่รศ#พที่2จำ�งหม!นเบอร2เคืร��องที่��ต้�องการต้�ดต้.อ เม��อเสร�จำส�$นการหม!นเบอร2โที่รฯ จำะเก�ดส#ญญาณ์ด#งที่��โที่รศ#พที่2เคืร��องปลายที่าง โดยม�เง��อนไขว.า ส#ญญาณ์จำะด#งอย+.นานเต้�มที่��เพ�ยง 30 ว�นาที่� (ถ�าส#งเกต้จำะเห�นว.าเส�นก�จำกรรมในเส�นน�$จำะวนจำากโที่รศ#พที่2ของผู้+�ร #บส+.ต้นเอง ซึ่��งม�เง��อนไขว.าจำะวนอย+.เชิ.นน�$นาน 30 ว�นาที่� หร�อจำนกว.าจำะม�ผู้+�ร #บสาย) หากม�ผู้+�ยกห+ที่��เคืร��องปลายที่างก.อนหมดเวลา 30 ว�นาที่� เคืร��องที่#$งสองจำะสามารถเชิ��อมโยงถ�งก#นและเร��มการสนที่นาโที่รศ#พที่2ได� (ด�วยก�จำกรรมต้.อ(Connection))

Sequence Diagram ของการคื!ยโที่รศ#พที่2และการม�สายเร�ยกซึ่�อน (เข�ยนไว�ใน Sequence Diagram เด�ยวก#นเพราะ Use Case การม�สายเร�ยกซึ่�อน ม�ผู้ลกระที่บโดยต้รงต้.อ Use Case การคื!ยโที่รศ#พที่2) ซึ่��งแสดงด�วย Sequence Diagram ต้.อไปน�$

Page 24: Chapter  10  Sequence Diagram

:ผ่��ตั!อโทำรศั'พทำ1

โทำรศั'พทำ1ของผ่��ตั!อฯ:เคร-�องโทำรศั'พทำ1

โทำรศั'พทำ1ของผ่��ร'บ

:เคร-�องโทำรศั'พทำ1

:ผ่��ร'บโทำรศั'พทำ1

คื!ย()

กดเปล��ยนสาย()

ร#บส#ญญาณ์เส�ยง()

ม�สายเร�ยกซึ่�อน()

[จำบการสนที่นา] วางห+()

[ม�การเปล��ยนสาย]ต้#ด

(Connection)

ร�ป Sequence Diagram ของการค�ยโทำรศั'พทำ1 และม�สายเร�ยกซ้�อน

คื!ย()ร#บส#ญญาณ์

เส�ยง()

[จำบการสนที่นา]

ต้#ด (Connectio

n)

[จำบการสนที่นา] วางห+()

Page 25: Chapter  10  Sequence Diagram

จำากร+ปเป-น Sequence Diagram เพ��อแสดงก�จำกรรมของ Use Case การคื!ยโที่รศ#พที่2 และการม�สายเร�ยกซึ่�อน โดย Class และ Objects ที่��ม�ส.วนร.วมใน Sequence Diagram น�$เป-นเชิ.นเด�ยวก#นก#บ Sequence Diagram ของการต้.อโที่รศ#พที่2

ก�จำกรรมเร��มต้�นข�$นเม��อ ผู้+�ต้.อสายโที่รศ#พที่2คื!ยไปย#งเคืร��องโที่รศ#พที่2ต้�นที่าง จำากน#$นเคืร��องโที่รศ#พที่2ต้�นที่างจำ�งส#�งให�เคืร��องโที่รศ#พที่2ปลายที่างร#บส#ญญาณ์เส�ยงที่��ส.งไป โดยส#ญญาณ์เส�ยงน#$นจำะออกไปที่างห+โที่รศ#พที่2 ต้.อจำากน#$นผู้+�ร #บโที่รศ#พที่2คื!ยไปย#งโที่รศ#พที่2ปลายที่าง หล#งจำากน#$นโที่รศ#พที่2ปลายที่างจำะส#�งให�โที่รศ#พที่2ต้�นที่างร#บสายส#ญญาณ์เส�ยงจำากต้น ซึ่��งเหต้!การณ์2น�$จำะเป-นเชิ.นน�$ไปจำนกว.าจำะจำบการสนที่นา หร�อเก�ดม�สายเร�ยกซึ่�อนข�$น

Page 26: Chapter  10  Sequence Diagram

ก�จำกรรมที่��อาจำจำะเก�ดข�$นใน Use Case ม�สายเร�ยกซึ่�อน จำะเร��มเก�ดข�$นในเส�นก�จำกรรมที่�� 4 น#บจำาก เส�นบนส!ด น#�นคื�อเม��อเก�ดม�สายเร�ยกซึ่�อนข�$น ถ�าผู้+�โที่รกดเปล��ยนสาย Connection ที่��เก�ดข�$นในต้อนแรก สายน#$นจำะถ+กต้#ดออกไปเพ��อร#บสายใหม.ที่��เข�ามา ซึ่��งในจำ!ดน�$จำะจำบก�จำกรรมที่��อาจำจำะเก�ดข�$นใน Use Case ม�สายเร�ยกซึ่�อน

ต้.อจำากน#$นจำะเป-นการอธิ�บายเหต้!การณ์2ใน Use Case การคื!ยโที่รศ#พที่2 (เร��มต้�นที่��เส�นก�จำกรรมที่�� 3 น#บจำากที่�าย) ซึ่��งเร��มต้�นเม��อเก�ดเง��อนไข จำบการสนที่นา ซึ่��งเม��อจำบการสนที่นาแล�ว Connection จำะถ+กต้#ดออกไป เม��อวางห+โที่รศ#พที่2ที่#$ง 2 ฝ5ายลง

Page 27: Chapter  10  Sequence Diagram

ในบางกรณ์� ในการเข�ยน Sequence Diagram เพ��อบรรยายลาด#บก�จำกรรมใน Problem Domain น#$น อาจำม�กรณ์�ที่��ม�การส.งข�อม+ลก#นระหว.าง Class หร�อ Objects ก�ได� ซึ่��งในกรณ์�น�$สามารถเข�ยน Sequence Diagram โดยใชิ�ส#ญล#กษณ์2ล+กศรประแที่นข�อม+ลที่��ม�การส.งถ�งก#น ด#งร+ปต้.อไปน�$

Page 28: Chapter  10  Sequence Diagram

:Users

:ATMScreen

:SavingAccount

AcquireBalance() Bal =

GetBalance()Bal

Show(Bal)

ร�ป Sequence Diagram ของการถามยอด้เง�นคงเห้ล-อจำากเคร-�อง ATM

Page 29: Chapter  10  Sequence Diagram

จำากร+ปเป-นต้#วอย.างของการส.งข�อม+ลใน Sequence Diagram ซึ่��งก�จำกรรมใน Sequence Diagram น�$ เร��มต้�นที่�� Users เล�อก Function การเร�ยกด+ยอดคืงเหล�อ (AcquireBalance()) ที่�� Class หน�าจำอของ ATM (ATMScreen) ซึ่��งต้.อมา Function ที่��ชิ��อ GetBalance() ซึ่��งอย+.ในบ#ญชิ�เง�นฝาก (SavingAccount) จำะถ+กเร�ยกใชิ�งานเพ��อด�งคื.ายอดคืงเหล�อออกมา หล#งจำากที่��ได�คื.ายอดคืงเหล�อ (Bal) แล�ว คื.าที่��ได�จำะถ+กส.งไปย#ง ATMScreen โดยแสดงเป-นภาพล+กศรประ หล#งจำากน#$น ATMScreen จำ�งนาคื.าที่��ได� Show แก. Users ในที่��ส!ด