นัฐพงศ ส์งเนียม่ dr.nattapong s...

113
โดย อ.ดร. นัฐพงศ งเนียม http://www.siam 2dev.com [email protected] สาขาวิชา วิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี มหาวิทยาลัยราชภัฏพระนคร Last Update : 08/02/2561 Lec09 : UML Behavioral Modeling แหล่งข ้อมูลเพิ่มเติม : : http://www.lumpaya.com/sdlc01.htm http://www.siam2dev.com [ dr. nattapong songneam]

Upload: others

Post on 09-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

โดย อ.ดร. นฐพงศ สงเนยมhttp://[email protected]

สาขาวชา วทยาการคอมพวเตอรคณะวทยาศาสตรและเทคโนโลย มหาวทยาลยราชภฏพระนคร

Last Update : 08/02/2561

Lec09 : UML Behavioral Modeling

แหลงขอมลเพมเตม : : http://www.lumpaya.com/sdlc01.htm

http://www.siam2dev.com [ dr. nattapong songneam]

Page 2: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Lecture OutlineUML has 9 kinds of diagrams

UML Structural Diagrams

UML Behavioral Diagrams

Interaction Diagrams• Sequence Diagram

• Collaboration Diagram

• Interaction: Core Elements

• Interaction: Core Relationships

How to created the sequence diagrams from Use case and class

Diagrams

Examples2

Page 3: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

UML has 9 kinds of diagrams Class Diagram

Object Diagram

Component Diagram

Deployment Diagram

Use Case Diagram

Sequence Diagram

Collaboration Diagram

StateTransition Diagram

Activity Diagram

Structural Diagrams

Behavioral Diagrams

สาหรบบทท 9 น

ในระบบใดๆ จะม 2 แบบ หรอ 2 ลกษณะ

• หยดนง static• ไมหยดนง เคลอนใหว Dynamic

แผนภาพเชงโครงสราง

แผนภาพเชงพฤตกรรม

what

how

3

Page 4: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Car

:Car

Car

altis:Car

altis:car

-Name:String = “altis”-registrations =“กก2559”

Car

-Name : String-registrations : String

+getBrandName() : String

class class

objects

objects

<<instanceOf>>

Is member Of

4

Page 5: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

UML(Unified Modeling Language)

• 5 มมมองหลกของ UML– Use-case view : หนาทการทางานของระบบซอฟตแวร

โดยพจารณาจากมมมองของผใชภายนอก หรอ ระบบภายนอก

• use-case diagram– Logical view : หนาทการทางานของระบบมโครงสรางอยางไร

มองในรปของ static structure และ dynamic behavior• class diagram, object diagram, state, sequence,

collaboration, activity diagrams

5

Page 6: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

UML(Unified Modeling Language)– Component view : องคประกอบยอยในการ implement ท

ประกอบเปนระบบ และ dependency ระหวางองคประกอบเหลาน น• component diagram

– Concurrency view: การแบงแยก process และ processors โดยพจารณาท ง communication และ synchronization

• dynamic diagrams (state, sequence, collaboration activity)

• implementation diagrams(component และ deployment)– Deployment view : โครงสรางทางกายภาพเกยวกบ การตดต ง

และใชงานระบบ• deployment diagram

6

Page 7: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Static & Dynamic viewsระบบใดๆ มกประกอบดวยโครงสราง 2 แบบ ไดแก

– Static(นงๆ ไมเคลอนไหว) และ dynamic(เคลอนไหวกจกรรม)

• โครงสรางของ Structural Diagram เปนแบบ static– แสดงองคประกอบของระบบ คลาส แอททรบวต เมทธอด

และ ความสมพนธระหวางคลาส– ไมระบขนตอนการดาเนนงาน ลาดบการทางานกอนหลง

• โครงสรางของ Behavioral Diagrams เปนแบบ dynamic– โครงสรางทแสดงถงการทางาน หรอ กจกรรม ทเกดขนในระบบทกาลง

พฒนา

7

Page 8: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Behavioral Diagrams• Behavioral Diagrams เปนโครงสรางแบบ dynamic

• ม 4 diagrams ไดแก

– Sequence Diagram

– Collaboration Diagram • {UML 2.0 เรยกวา communication diagram}

– State-transition Diagram• {UML 2.0 State Machine Diagram}

– Activity Diagram

Interaction Diagrams

แผนภาพปฏสมพนธ

8

Page 9: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

UML 2UML 2 defines 14 diagrams (all supported by Enterprise Architect)1. Package diagrams2. Class or Structural diagrams3. Object diagrams4. Composite Structure5. Component diagrams6. Deployment diagrams7. Use Case Diagrams8. Activity diagrams9. State Machine diagrams10. Communication diagrams11. Sequence diagrams12. Timing diagrams13. Interaction Overview diagrams14. Profile diagrams

แตเรายกมาบางสวนสาหรบ OOAD

Page 10: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Interaction Diagramsแผนภาพปฏสมพนธ

10

Page 11: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Interaction diagrams• แสดงการปฏสมพนธระหวางกลมของวตถ (มากกวา 1 วตถ)• มกใชอธบายสถานการณของ use case 1 use case

– นายสเคสแตละยสเคสมาเขยนเปนแผนภาพปฏสมพนธ– ในระบบหนงๆ จะมหลายยสเคส– จะนา ยสเคส แตละยสเคสมาเขยนเปนแผนภาพปฏสมพนธ

• อธบายการตดตอสอสารระหวางวตถ• จะประกอบไปดวย 2 รปแบบ ดงน

– รปแบบทเนนในเรองของลาดบเหตการณ หรอ เวลา Time-based (Sequence Diagram)

– รปแบบท 2 จะเนนในเรองการจดการ หรอ Organization-based (Collaboration Diagram)

โดยปกต ระบบหนงๆ มกจะประกอบไปดวย หลายยสเคส(use case) ดงนนInteraction diagrams จะแสดงเฉาะบาง use case เทานนเนองจาก ไมสามารถแสดงแทนทงหมดได 11

Page 12: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

ยกมา แลวแตระบบ ทตองจะพจารณาวา

มการปฏสมพนธ ระหวางวตถอยางไร

จะพจารณาบางสวน

ของยสเคสหรอบางยส

เคส หรอทงระบบ

ขนอยกบระบบท

พฒนา หรอทมงาน

พฒนาระบบ

12

Page 13: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

จาก Interaction diagrams

• เราจะสรปไดวา ทงสองไดอะแกรม เปนไดอะแกรมปฏสมพนธ (มการโตตอบหรอมการสอสารกนระหวางวตถ) ระหวางวตถ แตเนนคนละอยาง– Sequence เนนทลาดบ เหตการณ กอนหลง– Collaboration เนนทการจดการ โครงสรางการเชอมตอ

13

Page 14: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

ความหมายของ Sequence Diagram

Sequence Diagram เปนแผนภาพทแสดงใหเหนถงการปฏ ส มพ นธ ( Interaction) ร ะหว า ง อ อบ เจ กต ของคลาส โดยเฉพาะการสง message ระหวางออบเจกตตามลาดบของเวลา (Sequence) ทเกดเหตการณขนจากนอยไปมาก โดยจะมสญลกษณแสดงใหเหนลาดบของการสง message ตามเวลาสงอยางชดเจน แสดงลกษณะของ Sequence Diagram ดงรปท 1

14

Page 15: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

จากตวอยาง Sequence Diagram ในรป

ท 1 เปนการแสดงใหเหนการ

สง message ระหวางออบเจกต “Order”,

“Customer” และ“Product” โดย Actor

“Officer” ตองการทราบรายละเอยดรายการซอ

สนคา จงสง message “getOrderInfo( )” เขา

สระบบมายงออบเจกต“Order” จากนนออบ

เจกต“Order” สง message “getCustInfo (

)” ไปทออบเจกต “Customer” เพอขอ

รายละเอยดลกคา พรอมกบสง message

“getProductInfo( )” ไปทออบเจกต

“Product” เพอขอรายละเอยดสนคา แลวนามา

คานวณหาราคาสนคาทสงซอทงหมด

(calcGtotal ( )) และแสดงผลทางจอภาพ

ตอ Actor “Officer”จากรปท 1 จะเหน

คณลกษณะของ Sequence Diagram ไดอยาง

ชดเจนวา เปนแผนภาพท สามารถแสดงใหเหนถง

การปฏสมพนธระหวาง

ออบเจกตของคลาสตามลาดบของเวลาเปนสาคญ

มาใหทราบวา message ใดเกด

กอน message ใดเกดหลง15

Page 16: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

สญลกษณใน Sequence Diagram

จากรปท 1 แสดง

ลกษณะ

ของ Sequence

Diagram โดยทวไป

ซงประกอบไปดวย

สญลกษณตางๆ

ดงน

16

Page 17: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

สญลกษณใน Sequence Diagram

สญลกษณทแสดงใน Sequence Diagram รป

ท 1 แ ล ะ ใ น ต า ร า ง ท 1 เ ป น ส ญ ล ก ษ ณ

ของ Sequence Diagram โดยทวไปของ

ภ า ษ า UML แ ต ส า ห ร บ ใ น ท น จ ะ เ พ ม เ ต ม

สญลกษณของคลาสพเศษทง 3 ซงไดแก Entity

Class, Boundary Class แ ล ะ Control

Class ม า ว า ง ใ น แ ผ น ภ า พ แ ท น ต า แ ห น ง

ของ “ออบเจค” (จะไมใชสญลกษณของออบ

เจค) สาหรบสญลกษณอนในทนจะยงคงใช

เหมอนเดม ดงตวอยางในรปท 2

17

Page 18: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

สญลกษณใน Sequence Diagram

สาหรบ Sequence Diagram ตามลกษณะทภาพนเลอกใช

เปน Sequence Diagram ทใชประโยชนจาก Class Diagram (หรอ Object

Relation)ทปรบปรงแลวภายหลงจากการทา Normalization โดยนามาใช

รวมกบ Use Case Diagram ทงนเพราะ Class Diagram ทไดหลงจากการทา

Normalization แลวนน ประกอบไปดวยคลาสทไดรบการปรบปรงโครงสราง

ทางดานขอมลใหเหมาะสม และลดปญหาการจดเกบขอมลทซาซอนแลว ดงนน เมอ

นามาสราง Analysis Class หรอนามาใชเพอคนหา Operation/Method จะทาให

งายและถกตองยงขน

18

Page 19: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

วธการสราง Sequence Diagramในการสราง Sequence Diagram จะนา Use Case Diagram มาเปนพนฐานในการสราง

กลาวคอ จะทาการสราง Sequence Diagram เทากบจานวน Use Case ของระบบยกเวน Use

Case ทเปน Including และ Extending Use Case จะถกนาไปรวมกบ Base Use Case เพอเขยนเปน

Sequence Diagram 1 แผนภาพสรปขนตอนการสราง Sequence Diagram ดงน

1. จากคาอธบายของแตละ Use Case ใหนามาเขยนเปนลาดบกจกรรมไว เนองจาก Sequence

Diagram จะสรางจาก Use Case ครงละ 1 Use Case ดงนน Actor ทปรากฏอยใน Sequence

Diagram กคอ Actor ทมปฏสมพนธกบ Use Case ทพจารณาอย

2. คนหา Boundary Class จาก Use Case ทกาลงจะสราง Sequence Diagram โดยพจารณา

วา “อะไรคอสอกลางระหวาง Actor กบ Use Case นน” เชน สอกลางระหวาง Use Case “ลงทะเบยน

เรยน” กบ Actor “Employee” กคอ “จอภาพของโปรแกรมการลงทะเบยน” นนเอง

3. คนหา Control Class ซงในแตละ Use Case จะตองม 1 Control Class โดยอาจจะใชชอ Use

Case เปนชอ Control Class แลวตามดวยคาวา Control กได เชน : Registration Control เปนตน

แตหาก Use Case ใดม หรอ Extending Use Case ซงจะตองนามาเขยนใน Sequence

Diagram เดยวกน กจะตองเพม Control Class ของ Use Case ท Including หรอ Extending Use

Case ดวย (ม 2 Control Class ได หากมการ Including/Extending Use Case)19

Page 20: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

วธการสราง Sequence Diagram

4. ทกๆ คลาสใน Class Diagram หรอทกๆ Object Relation หลงการทา Normalization แลว ใหนามาใชเปน Entity Class ได

5. เรมตนสราง Sequence Diagram ใหวาง Actor ไวกอน ตามดวย Boundary Class, Control Class และ Entity Class ตามลาดบ

6. เรมตนวาดเสน Message ตามลาดบกจกรรมทเขยนไว

7. Including Use Case ใหนามาเขยนรวมกบ Base Use Case

8. Extending Use Case ใหนามาเขยนรวมกบ Base Use Case

9. Sequence Diagram แสดงใหเหนการตดตอสอสารกนระหวางออบเจกตของคลาสใดๆ

ดงนน การเขยนชอ Stereotype Class ในทนจงเรมตนดวยเครองหมายโคลอน ( : ) ตามดวยชอ

คลาสนน พรอมกบขดเสนใต เชน :LoginInterface, :LoginControl หรอ :Employee เปนตน

10. Focus of Control แสดงใหเหน Message ทสงระหวางออบเจกต หากอยในชวงเวลา

เดยวจะวาดอยใน Focus of Control เดยวกน แตหาก Message นนอยคนละชวงเวลา กจะตอง

เรมตนท Focus of Control ใหมเสมอ

20

Page 21: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Sequence & Collaboration Diagrams

• ทง 2 diagrams แสดง message ทถกสงผานระหวางวตถท

ทางานรวมกน เพอประกอบกน หรอรวมเขาดวยกนเปนหนาท

การทางานของระบบ (functional / usecase)

• ตว Sequence diagrams เนน message ทเกดขน

ตามลาดบของเวลา

• ตว Collaboration diagrams เนนการเชอมตอทางดาน

โครงสรางระหวางวตถททางานรวมกน

ทงสอง จะเรยก วา Interaction Diagrams

(ขอความ ขาวสาร หรอสงทสอสารกน)

21

Page 22: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Message ?

22

Page 23: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Sequence & Collaboration Diagrams

• ท ง 2 diagrams สามารถใชในการจาลองการปฏสมพนธระหวางวตถ กบระบบท งหมด

• หรอ อาจใชในการจาลองปฏสมพนธท เก ยวของใน Use Case ใด Use Case หนงโดยเฉพาะ

เราไมจาเปนตองสรางทง 2 Diagram อาจจะเลอกเพยง Diagram เดยว เพราะทง

2 Diagram จะใหความหมายเหมอนกนเพยงแตมจดเนนกนคนละจด กลาวคอ

- Sequence Diagram จะเนนทชวงเวลาทางาน

- Collaboration Diagram จะเนนท Message ท object ตางสงใหแกกน

23

Page 24: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

ในระบบงานหนง

• จะมอยางใดอยางหนงกได • หรอจะมทงสองไดอะแกรม

• ลาดบเวลา

• การจดการ

10 usecase

24

Page 25: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

A Sequence Diagram

: Student registration form

registration manager math 101

1: fill in info

2: submit

3: add course(joe, math 01)

4: are you open?5: are you open?

6: add (joe)7: add (joe)

math 101 section 1

ดานบน จะเปน Objects

ออบเจกต นกเรยน จะมความสามารถ Operation/Behavior / function ทจะกรอกขอมลได

Message กคอ ตวขอมลทกรอกในแบบฟอรม

เปนเพยงแค use case ของการลงทะเบยน

functions

message

staff

25

Page 26: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

วตถ

• Actor• Classes/Objects

เพม

รายวชา

สไมเกยว

Use case diagram

•ในยสเคส บอกแอกเตอร

•บอกความตองการ

•บอกฟงกชนของระบบเทานน

26

Page 27: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Interaction diagram

• ตองการด วา วตถใดทางานกบวตถใด และ สงขาวสารอะไรใหกน

– กอน-หลง sequence

• เพอใชในการสรางโปรแกรม ตองการดวาวตถ คยกนอยางไร

– ดวยการใชฟงกชน

– สาหรบทดสอบการทางานของโปรแกรม

27

Page 28: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

• Object• Message• function

trigger

Use case

28

Page 29: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Life line / Time Line

………………………………………Create …….object-1Work ……………….………………..Finish/drop/delete object-1

activationnew

destroy29

Page 30: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

A Sequence Diagram

: Student registration form

registration manager math 101

1: fill in info

2: submit

3: add course(joe, math 01)

4: are you open?5: are you open?

6: add (joe)7: add (joe)

math 101 section 1

ดานบน จะเปน Objects

ออบเจกต นกเรยน จะมความสามารถ Operation/Behavior / function ทจะกรอกขอมลได

Message กคอ ตวขอมลทกรอกในแบบฟอรม

เปนเพยงแค use case ของการลงทะเบยน

check

submit

•กระดาษ

•Windows App•Web app•Mobile app

30

Page 31: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

:Student

สมชาย:Student

Object

Student

Class

31

Page 32: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Class button {……}

Main {

Button b1 = new Button()}

private sub b1_click() {

Button b2 = new Button();Textbox t1 = new Textbox();t1.setText(“1”);t1.append(“1”)

}

B1 B2 B3 B4 B5 B

1 + 2 =

Message คอ 1

T1.text =“1”

Create message

32

Page 33: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

ชวงชวต ของวตถ life line

• Create …..• …work()• ….• ….• …call sub• Finalizae … delete

33

Page 34: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

b1:button t1:textbox

1 : append(1)

15211ปมใดๆ

Button b1 = new Button();

new button();

ป ม b1

1 : Settext(1)

1

:button

:student

สมชาย:student34

Page 35: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

button1:Button TxtResult

1 : append(1)

15211

35

Page 36: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

• C# , java,c++

private void button1_click() {

Button b1 = new Button()}

• Vb.net

class Operation/function

36

Page 37: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

java , c++ , c#

Button b1 = new Button();

b1.append(“1”);

37

Page 38: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

A Sequence Diagram

: Student registration form

registration manager math 101

1: fill in info

2: submit

3: add course(joe, math 01)

4: are you open?5: are you open?

6: add (joe)7: add (joe)

math 101 section 1

ดานบน จะเปน Objects

ออบเจกต registration manager กมความสามารถในการ addCourse()

Message กคอ joe,math101

Math101 เปนวตถของรายวชา หรอ ของ subject

หรอ math101 กเปนวชาหนง

เปนการตรวจสอบ section ท 1 เปดห

38

Page 39: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

btnSqrt : button

Button btnSqrt = new Button()

:Math :TextBox

2. Sqrt(x)

2. Sqrt(x)

: button :Math

: button

txtResult :TextBox

Button b1 = new Button()

: button

1. Text(x)

39

Page 40: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

จงเขยน Sequence diagram ของ Scenario 1. 5 + 8 - 2= ??

b5:button b8:button bOpt:button bEqual: button

1. Append(“5”)

5.Append(“8”)

TxtResult:TextBox

2. num1(“5”)

4. Opt(“+”)

3. Opt(“+”)

b2:button

8. Append(“2”)

6.Opt(“-”)

7.Opt(“-”)

9. Calculate(Result)

40

Page 41: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

เสนแนวตง เปนเสนชวต (lifeline)

1 : ถามอาย()

นาย ก. นาง ข.

หมายเลขบอกลาดบ

Lifeline

41

Page 42: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

A Collaboration Diagram

[< 30]: Registrar

course form : CourseForm

theManager : CurriculumManageraCourse :

Course

1: set course info2: process

3: add course

4: new course

จากรปจะทาใหเหนถง วตถตางๆ และการเชอมตอกนของวตถเหลานนจะเหนวามวตถอะไรบาง ในระบบ / หรอใน Use case หนง อาจจะไมใชทงระบบใหญ

วตถใดๆ

เจาหนาทคนใดกได

เปดวชาเรยน ใหนกถงการเปดรายวชา วชาเลอกเสร

หมายถงใครกได ทเปน จนท.

42

Page 43: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

การลงทะเบยน เรยนมรภ. พระนคร

1. นกศกษาเขาไปทเวบ ของพระนคร เลอก ระบบ นกศกษา

2. เลอกลงทะเบยน

1. ไปท สนง. ทะเบยน

2. เลอกแบบฟอรมลงทะเบยน

3. กรอกขอมล

4. ยนแบบฟอรม

5. ตรวจสอบแลวไมมปญหา

6. ลงทะเบยนเรยบรอย

7. ถามปญหา กยกเลก

รายวชาทเปด

นกเรยน อาจารยทปรกษา

1. ยนจดแผนการเรยน 4 ป

2. ยนแผนแตละเทอม

3. สงให สนง. ทะเบยน

รายวชาทเปด เลอกเสร

43

Page 44: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

หลกการเขยน

• Sequence diagram กบ Collaboration Diagram• ใน diagram หนงๆ เราเขยนเพยงสวนใดสวนหนงของระบบ

หรอเขยนเฉพาะ บาง use case เทานน

หมายถง 1 diagram ไมใชทงระบบ เพราะไมสามารถเขยนใหหมดไดภายใน diagram เพราะมขอจากดในเรอง กระดาษ หรอหนาจอทเขยน หรอ ความซบซอนของระบบ ทาใหยากตอการอานหรอ

การทาความเขาใจ ของผพฒนาระบบ

44

Page 45: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

หลกทสาคญ / ขนตอนทสาคญ

1. ทา Requirement specifications {หาขอกาหนดของความตองการ จากผใช}

2. แลวมาทาการวเคราะห และออกแบบเพอใหไดมาซง Use Case diagrams

3. จากนนกนาเอา Use case ทไดจากขอ 2. มา ออกแบบ หรอมาทา Sequence และ Collaboration Diagrams {ถาเปน class diagram กใหทาแบบเดยวกน}

45

Page 46: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Interactions : Core Elements

name

attr values

Instance (object, data value, component instance etc.)

An entity with a unique identity and to which a set of operations can be applied (signals be sent) and which has a state that stores the effects of the operations (the signals).

Action A specification of an executable statement.A few different kinds of actions are predefined, e.g. CreateAction, CallAction, DestroyAction, and UninterpretedAction.

Construct Description Syntax

Textual

เขยนออกมาใน

รปแบบ ขอความ

หรอประโยคfunction

46

Page 47: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Interaction : Core Elements (cont’d)

Stimulus A communication between two instances.

Operation A declaration of a service that can be requested from an instance to effect behavior.

Construct Description Syntax

textual

A specification of an asynchronous stimulus communicated between instances.

Signal «Signal»Name

parameters

เชน addCourse()

47

Page 48: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Interaction: Core Relationships

Link A connection between instances.

Attribute Link A named slot in an instance, which holds the value of an attribute.

Construct Description Syntax

textual

Return A return from method call

48

Page 49: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Sequence diagrams• แสดงการปฏสมพนธระหวางวตถตามลาดบเวลา (time

sequence)• ประกอบดวย

– actor หรอ object ทมปฏสมพนธกบวตถอ นๆ– เสนชวต (lifeline)– Message ทสงผานระหวาง Object หรอ actor

49

Page 50: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Content of sequence diagrams• Actor หรอ วตถ (Objects)

– หนาทสาหรบแลกเปลยน messages ใหแกกนและกน

• เสนชวต (Lifeline)– แสดงวาวตถถกสรางขน และยงไมถกทาลาย

• Messages– message ทสงผานระหวาง objects สนบสนนการปฏสมพนธ

ระหวางวตถ

– เปนวธการท object ใชในการขอรบบรการจากวตถอ นๆ

– object ใดๆ ตดตอสอสารกบ object อนๆ ผานทาง operation

ของวตถน นๆ

Function()

50

Page 51: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

:นกเรยน :วชา

ลงทะเบยน(…) : boolean

Message ?

Sequence / collaboration เอาขอมลมาจาก Use case และ

class , objects diagram

51

Page 52: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

submit

server client

Reponse Request52

Page 53: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Message : id , GPA

Login

Student System/staffCheck GPA

Message คอ สงฟงกชนใชในการสอสารกน ระหวางวตถ

53

Page 54: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Com1 : คอมพวเตอร Printer1 :พรนเตอร

-ชอ- รน- OS

- สงพมพ(f:file)- บนทก

+ พมพ()

Has a

client Server

Message = file

word

ขอมลขาวสารทเครองพมพไดรบ คอไฟล

54

Page 55: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Lifeline ของ button

Form_load() New B1 .. .. … .. Form_Closed()

Formb1

Aggregate /composite

55

Page 56: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

• Class A {• Class b {}• Class c {}

• }

Class A

Class bClass C

Car

doorhand

56

Page 57: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

57

Page 58: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

เสนแนวตง เปนเสน เวลา Timing Line

1. ถามอาย()

นาย ก. นาง ข.

เสนชวต

นาย ก. คอ client ?นาง ข. คอ server ?หมายความวาอะไร ?

activation58

Page 59: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

?

?

?

การใชงาน โปรแกรม MS-WORD ???

59

Page 60: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Message

เปนการตดตอทสงจาก object หนงไปยงอก object หนง หรออาจสงกลบมาหาตวเองกได โดยทจะแบงการตดตอเปน 5 แบบ(ตามลกษณะการตดตอ) คอ

1. Call – Message ท Sender เรยกใช Method ของ Receiver2. Return – Message ทใชสงขอมลทถกรองขอกลบไปยง

Sender3. Send –Message การสงสญญาณเพอบอกหรอกระตน object

อน แตไมใชการเรยกใช 4. Create – Message ทสงออกไปโดยมจดประสงคเพอใหเกด

การสราง object ของ class ขน5. Destroy – Message ทสงออกไปโดยมจดประสงคเพอให

object นนทาลายตวเอง

A B.b()

delete

create

60

Page 61: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

A{..}

B{..

void b() {}}

Call – Message

A{..

B b1 = new B();b1.b()

}

Create message

Sender Reciever

Sender โปรแกรมหนง หรอคลาสหนง Reciever โปรแกรมหนง หรอคลาสหนง61

Page 62: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

A

b1class A {…… B b1 = new B();B b2 = new B();b1.setName(“button1”);

}

java class B {

}Create message

B

+setName()

62

Page 63: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Message Types

• Simple– Sender / Receiver การสงจาก sender ไปยง receiver– ไมระบรายละเอยดของวธการตดตอสอสารระหวางวตถ

• Synchronous– เรยกใช Operation ของวตถ โดย Sender/Caller รอจน

สนสดOperation– Receiver จดเปน passive object

• Asynchronous– ไมมการ return กลบไปยง Sender/Caller– Sender ทางานตอทนทท สง message– Receiver จดเปน active object

63

Page 64: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Message Notation

Simple

Synchronous

Asynchronous

(Message return)

64

Page 65: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Sequence Diagrams• Sequence Diagrams อธบายถง การตดตอกนระหวางวตถ ณ เวลา

ตาง ๆ โดยแสดงถงลาดบการสงขาวสาร (message)• แกนตงแสดงเวลา• แกนนอนแสดงกลมของวตถ Object1 Object2

Message1 Message2

Message3

65

Page 66: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

ชนดของ Message

1. Simple message2. Return message3. Synchronous message4. Asynchronous

message

recursive

66

Page 67: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

ตวอยาง การใช Sequence DiagramsExample Code in C# , JAVA

Tester Classกคอคลาสทไมไดมไว

สาหรบนาไปสรางเปนวตถแตมไวเพอทดสอบหรอ

เรมตนโปรแกรม

67

Page 68: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

OOP

A worker = employee advise()B boss = manager advise().. …

Universe : Main Program = Tester Class {Create w , b

w.advise(boss);

}

68

Page 69: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Create message

Worker o1 = new Worker();

Boss b1 = new Boss();

69

Page 70: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

java

public class test_company{public static void main(String args[]) {

Boss b1 = new Boss();Worker w1 = new Worker();w1.advise(b1);

}}

Create message

call message

70

Page 71: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

เจาหนาท หวหนา

โปรแกรมหลก71

Page 72: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

public class Universe {

Worker w = new Work();Boss b = new Boss();

w.Advise(b);

}

activation

finalize

Java , C# , VB : Garbage collection

72

Page 73: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

ตวอยาง การใช Sequence Diagrams (ตอ)Example Code in C# , JAVA

73

Page 74: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Sequence Diagrams ใน UML 2.0 (loop)

Object1:Universe Object2:Worker Object3:Boss

1:Object()

2: Object ()

3:Advise (boss)

4:DoWork() 5:WorkStart()

sd Concepts

Call back until allobject Workersacknowledge.

Loop (1,5)

74

Page 75: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Sequence Diagrams ใน UML 2.0 (alt )

75

Page 76: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Sequence Diagrams ใน UML 2.0 (Recursion )

76

Page 77: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

การใช Sequence Diagram และ Communication Diagram ใน Rose

77

Page 78: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Notation : Sequence Diagram

name : Classobject symbol

lifeline

activation

other

stimulus

[condition]name (…)

return

: Class

create

new (…)

deletemessage

Return Function

78

Page 79: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Example: Different Arrows

caller exchange callee

Flat Flow

lift receiver

dial tone

dial digit

dial digitringing tone

ringing signal

lift receiver

teller

: Order : Article

Nested Flow

getValue

price

getName

appl err handl alarm

Asynchronous Flow

unknownalarm

79

Page 80: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Nested Flow

If() {if() {

if() { } else {}

} elseif() { } else{}

}

80

Page 81: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Example: Sequence diagram

Objectcreation

course form :CourseForm

theManager :CurriculumManager

aCourse :Course

: Registrar

Set Course Info

processAdd Course

<<create>>

81

Page 82: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Example: Sequence diagram

: Computer : PrinterServer: Customer

Print(file)

: Printer : Queue

Print(file) [Printer free]Print(file) [Printer busy]

Print(file)

Lifeline

Message

Actor

If (printer == free) {…} else {…}

82

Page 83: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

ทาไมตอง Sequence Diagram?

• เมอมการออกแบบ Class และ Object แลวจะตองแสดงวา แตละ Object มการสง message ใหกนอยางไร

• Message ทสงใหกน คอการกระทาตางๆ ทเกดขนระหวาง Object หรอ function / Method(OOP) นนเอง

• Message แสดงใหเหนวา Object ตางๆ มการตดตอสอสารกนอยางไร ในชวงระยะเวลาหนง

ขอขอบคณ :: http://www2.lpc.rmutl.ac.th/wachira/oop/Sequence%20Diagram.pptx

Page 84: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

ʋǹ»ÃСͺ¢Í§ Sequence Diagram

ขอขอบคณ :: http://www2.lpc.rmutl.ac.th/wachira/oop/Sequence%20Diagram.pptx

Page 85: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

สญลกษณของ Object

:NameObject Name ชอของ Object เรยงซายไปขวา

Activationระยะเวลาการทางานของ Object

Lifelineระยะเวลาทงหมดของ Object

ขอขอบคณ :: http://www2.lpc.rmutl.ac.th/wachira/oop/Sequence%20Diagram.pptx

Page 86: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

สญลกษณ Message

Synchronous ตดตอแบบรอคาตอบ

Asynchronous ตดตอแบบไมรอคาตอบ

Return การตดตอกลบหากตนทางรอคาตอบ

ถาหากเปน message เงอนไข จะเขยนเงอนไขไวในวงเลบกามป [ ] โดยเมสเสจจะถก

สงกตอเมอเงอนไขนนเปนจรง เชน [กรอกรหสผด]แสดงขอความเตอน()

message จะตองอธบายถงสงทสงไปในเครองหมาย () เชน แสดงขอความเตอน() หาก

มการสงขอมลไปดวยใหใสคาลงในวงเลบ เชน แสดงขอความเตอน(error)

ขอขอบคณ :: http://www2.lpc.rmutl.ac.th/wachira/oop/Sequence%20Diagram.pptx

Page 87: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

: Salesman aProduct : Product

1 : getStock()

2 : return StockInfo

3 [password false] : showInfo

ตวอยางสญลกษณใน Sequence Diagram

Class Name

Object Name

Lifeline

Activation

Message

ขอขอบคณ :: http://www2.lpc.rmutl.ac.th/wachira/oop/Sequence%20Diagram.pptx

Page 88: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

เทคนคการสราง Sequence Diagram จาก Use Case และ Class Diagram

1) พจารณาทละ Use Case โดยยงไมตองคานงถงความสมพนธทแตละ Use Case มตอกน

2) พจารณาแตละ Use Case วาม Class/Object ใดรวมทาให เกดกจกรรมใน Use Case นนๆ บาง

3) นาเอา Class/Object ตางๆ มาเรยงตอกนในแนวนอน โดยนา Actor (ในกรณท Use Case นนม Actor ดวย) ไวทดานซายมอสดเสมอ แลวนา Class/Object ตางๆ เรยงตอกนจากซายไปขวาตามความเหมาะสม

ขอขอบคณ :: http://www2.lpc.rmutl.ac.th/wachira/oop/Sequence%20Diagram.pptx

Page 89: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Class diagram Use case diagram

Use case diagram

Sequence/Colllaboration

89

Page 90: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

เทคนคการสราง Sequence Diagram จาก Use Case และ Class Diagram (ตอ)

4) หาก Use Case นนม Actor โดยปกตแลวกจกรรมแรกทถกเรยกมกจะเกดจาก Actor กอนเสมอ ดงนนเมอเกดกจกรรมทไปยง Class/Object ใด ใหยาย Class/Object นนมาทางซาย ทาเชนนไปเรอยๆ จนกระทงกจกรรมทงหมดครบถวน

5) กรณทมกจกรรมเกดขนใหม แต Method ทเกดขนไมมใน Class/Object ทลกศรชไป ใหเขาไปเพม Method นนๆ ลงไปท Class นนใน Class Diagram

ขอขอบคณ :: http://www2.lpc.rmutl.ac.th/wachira/oop/Sequence%20Diagram.pptx

Page 91: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

เทคนคการสราง Sequence Diagram จาก Use Case และ Class Diagram (ตอ)

6) หากตองมการเพม Class ใหมเขาไปใน Sequence Diagram ตองเขาไปเพมเตม Class Diagram รวมทง Relationship ทมทงหมดใน Class Diagram ดวย

7) ทาขนตอน 1-6 จนครบทก Use Case8) การสรางความสมพนธของ Sequence Diagram จาก Use

Case ทมการ Include/Extends ทาไดโดยการนา Class และกจกรรมทเกดขนใน Use Case ทถก Include/Extends มาแทรกเขาไปใน Use Case ทเรยกใช และใชกจกรรมเพอเชอมโยง Sequence Diagram ทงสอง

ขอขอบคณ :: http://www2.lpc.rmutl.ac.th/wachira/oop/Sequence%20Diagram.pptx

Page 92: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

ตวอยางท 1 Sequence Diagram ของระบบATM

• ระบบ ATM ประกอบดวย Use Case ตางๆ ดงน– การถอนเงน

• ระบบประกอบดวย Class ตางๆ ดงน– เครอง ATM– เงนสด– บญชเงนฝาก– บตร ATM– ธนาคาร (Actor)– ผใชเครอง (Actor)

ขอขอบคณ :: http://www2.lpc.rmutl.ac.th/wachira/oop/Sequence%20Diagram.pptx

Page 93: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

1. จงสราง Sequence Diagram จาก Problem Domain ทกาหนดใหตอไปน

ในบรษทจดหางานแหงหนง จะใหบรการเปนสอกลางในการตดตอกนระหวาง นายจางทตองการลกจางและผสมครงานทตองการหางานทา โดยจะรบจดเกบขอมลเกยวกบคณสมบตของผสมครและคณสมบตของงานแตละตาแหนงทนายจางตองการ และเมอพบวามตาแหนงงานทเหมาะแกผสมคร บรษทจะจดทาจดหมายเพอตดตอใหนายจางและผสมครใหมาสมภาษณกนทบรษท (เปนระบบสารสนเทศ)

ขอขอบคณ :: http://www2.lpc.rmutl.ac.th/wachira/oop/Sequence%20Diagram.pptx

Page 94: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

จากรปเปนภาพของ Sequence Diagram ทแสดงภาพของกจกรรมใน Use Case การถอนเงนจากเครอง ATM ซงเมอเปรยบเทยบกบรปทผานมากอนหนาน จะพบวาม Class ทมสวนรวมใน Sequence Diagram นเพมขน ซงไดแกเครองจายเงน (Cash Dispenser) และเครองพมพถาสงเกตใหดจะพบวา จากเสนกจกรรมเสนบนสดจนกระทงถงเสนท 7 จากดานบน จะเหมอนกบใน Sequence Diagram ของการขอดยอดเงนฯ ทกประการ แตความแตกตางของกจกรรมจะเกดขนหลงจากนนคอหลง จากท Main Menu แสดงใหเหนผใช จะกดจานวนเงนทตองการถอนทป มหมายเลข (ซง Function กดอยใน Class ป มหมายเลขอยแลว) จากนนบญชจะถกสงใหตรวจสอบวามยอดคงเหลอในบญชเทาใด ซงถาหากวาเงนทมอยในบญชมจานวนมากกวาจานวนเงนทตองการถอน เครองจายเงนจะถกสงใหจายเงน ตอจากนนเครองพมพจะถกสงใหพมพ SLIP แสดงการถอนเงนออกมาในทางกลบกน ถาหากเงนในบญชมจานวนนอยกวาจานวนทระบวาจะถอน หนาจอจะถกสงใหแสดงขอความเตอนความผดพลาด (Error Message)

[condition]

94

Page 95: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

จากรปเปน Sequence Diagram เพอแสดงกจกรรมของ Use Case การคยโทรศพท และการมสายเรยกซอน โดย Class และ Objects ทมสวนรวมใน Sequence Diagram นเปนเชนเดยวกนกบ Sequence Diagram ของการตอโทรศพท

กจกรรม เรมตนขนเมอ ผตอสายโทรศพทคยไปยงเครองโทรศพทตนทาง จากนนเครองโทรศพทตนทางจงสงให เครองโทรศพทปลายทางรบสญญาณ เสยงทสงไป โดยสญญาณเสยงนนจะออกไปทางหโทรศพท ตอจากนนผรบโทรศพทคยไปยงโทรศพทปลายทาง หลงจากนนโทรศพทปลายทางจะสงใหโทรศพทตนทางรบสายสญญาณเสยงจากตน ซงเหตการณนจะเปนเชนนไปจนกวาจะจบการสนทนา หรอเกดมสายเรยกซอนขน

กจกรรม ทอาจจะเกดขนใน Use Case มสายเรยกซอน จะเรมเกดขนในเสนกจกรรมท 4 นบจาก เสนบนสด นนคอเมอเกดมสายเรยกซอนขน ถาผโทรกดเปลยนสาย Connection ทเกดขนในตอนแรก สายนนจะถกตดออกไปเพอรบสายใหมทเขามา ซงในจดนจะจบกจกรรมทอาจจะเกดขนใน Use Case มสายเรยกซอน 95

Page 96: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

การสงซอสนคา

96

Page 97: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Sequence Diagram สาหรบการส งซอสนคา มการทางานเรยงตามลาดบเวลาดงน1. Request Product Listing: จาก User Interface ทแสดงบนหนาจอ Actor จะทาการขอใหระบบแสดงรายการ

ของสนคาทงหมดออกมาทางหนาจอ2. Get Product List: Object User Interface จะทาการสงตอคาขอนนไปใหเจาของเรอง (Product)3. Return Product List: เจาของเรอง (Object Product) กจะทาการสงรายการสนคาทงหมดทมอยกลบคนมาให

Interface4. Display Product List: Object Interface เมอไดรบรายการสนคาแลว กจะทาการแสดงรายการของสนคาเหลานน

ออกมาทางหนาจอให Actor ด ซงจะเหนไดวาเปนการสงขอความเขาหาตวเอง5. Select Product: Actor จะทาการคลกทสนคาตวหนง (จากรายการสนคาทงหมดทแสดงบนหนาจอ) ซงลกคา

ตองการซอ6. Product Selected: Interface กจะทาการสงตอขอมลสนคาท Actor ทาการเลอกแลวนนไปยง Product7. Request to Creatr Order ID: เมอ Product ไดรบขอมลสนคานนแลว กจะสงคาขอไปยง Prder เพอขอใหสราง

ID ใหม ใหตวหนงสาหรบใบสงซอสนคาใบน8. Create Order ID: เจาของเรองคอ Order กจะทาการสราง ID ใหมขนมา ID หนง สาหรบใบสงซอน ซ งจะเหนได

วาเปนการสงขอความเขาหาตวเองเชนเดยวกบ Display Product List (เปน Reflexive Message)9. Create OK: หลงจากนน Object Order กสงขอความไปบอก Product วาคาขอเพอสราง ID นนไดทาสาเรจแลว10.Add Product to Order: หลงจากนน Product จงทาการสงขอมลของสนคา (ทลกคาตองการซอ) ไปให Order

เพอทาการลงบนทกในใบสงซอสนคานน11.Add OK: เมอเสรจสนการบนทกแลว Order จงบอกให Product รวาไดดาเนนการเสรจแลว12.Request to Display Order: พรอมกนนน Order กสงคาขอไปยง Interface เพอขอให Interface ทาการแสดง

ขอมลรายละเอยดทงหมดของใบสงซอนนออกมาทางหนาจอ เพอให Acter ด13.Display Order: Interface ทาการแสดงขอมลรายละเอยดของใบสงซอนออกทางหนาจอ (ตามคาขอจาก Order)14.Save Order: ตอจากนน โดย Interface Actor กจะทาการคลกป ม Save เพอทาการบนทกขอมลใบสงซอสนคานน15.Cancel Order: ใหสงเกต Diagram ทขอความ Save Order ทสงจากตวแทนฝายขาย จะมขอความอกอนหนงคอ

ขอความ Cancel Order แยกออกมาจากจดรวมเดยวกน จดทมการแยกออกดงกลาวเปนสญลกษณของการตดสนใจทจะเลอกทาอนใดอน หนงเทานน

97

Page 98: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

http://www.stjohn.ac.th/engineer/information%20technology/file/Download/UML/UML_10.ppt

ตวอยางจาก

98

Page 99: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Interaction & Collaboration Diagrams

x y z

Sequence Diagram

ab

c

Collaboration Diagram

x y

z

1.1: a1.2: c

1.1.1: b

99

Page 100: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

What is a collaboration?• Collaboration

– กาหนดบทบาท (role) ของกลมของวตถทกระทาตองานใดงานหนง เชนเดยวกบoperation หรอ use case

• Interaction– ปฏสมพนธทระบรปแบบการสอสาร

(communication pattern) ทกระทาโดยวตถทกาลงแสดงบทบาทของ collaboration

100

Page 101: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Content of Collabaration diagrams• วตถ (Objects)

– แลกเปลยน messages ใหแกกนและกน

• Messages

– Synchronous : “call events,” แทนดวย full arrow

– Asynchronous: “signals,” แทนดวย half arrow

– «create» และ «destroy» messages

• มการระบหมายเลข Message ตามลาดบทเกดกอน-หลง และการ

อาจม Loop ของ Message

101

Page 102: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Collaboration diagrams• หมายเลขกากบ แสดงลาดบของ messages ระบโดย

– 1, 2, 3, 4, …..– 1, 1.1, 1.2, 1.3, 2, 2.1, 2.1.1, 2.2, 3

(แสดง operation calls ทเปนสวนยอยของoperation อนๆ)

102

Page 103: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Collaboration diagram basics

: ProfessorCourseManager

Math 101 - Section 1 : CourseOffering

1 : Add professor (Professor)

103

Page 104: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Example : Collaboration diagram

: Registrar

course form : CourseForm

theManager : CurriculumManageraCourse : Course

4 : <<create>>

3 : add course

1 : set course info2 : process

104

Page 105: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Example : Collaboration diagram

: Customer

myComputer/PrintClient: Computer

ThePrintServer : Print Server

aPrinter : Printer

[printer free] 2.1 : Print(ps-file)

2 : Print(ps-file)

1 : Print(ps-file)

aQueue : Queue [printer busy] 2.1 : Print(ps-file)

105

Page 106: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Comparing sequence & collaboration diagrams

• collaboration diagrams อาจแสดง static connections ของวตถ เหมาะสาหรบการแสดงการไหลของการควบคมการทางาน

• Sequence diagrams เหมาะสาหรบการแสดง กระแสการไหลของเหตการณทเกดขนตามลาดบเวลา– อาจเขาใจไดยากกวาใน collaboration diagrams

• ปฏสมพนธทซบซอน ยากแกการทาความเขาใจ ไมวาจะใช diagram แบบใด

106

Page 107: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Interaction Modeling Tips• ใชเฉพาะสวนของวตถ Include only those features of the

instances that are relevant.• แสดง flow จากซายไปขวา และจากบนลงลาง• ใช sequence diagrams

– เพอแสดงลาดบระหวางสงทมากระตนใหเกดปฏสมพนธระหวางวตถ

– มกใชใน real-time modeling • ใช collaboration diagrams

– เมอโครงสรางของระบบ มความสาคญ

107

Page 108: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Example: A Booking System

108

Page 109: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Use Case Description: Change Flight Itinerary

• Actors – traveler, client account db, airline reservation system

• Basic course:– Traveler เลอก ‘change flight itinerary’ option– System ดงคา account และ flight itinerary ของ

traveler จาก client account database– System ถาม traveler ให traveler เลอกสวนของ

itinerary segment ทตองการเปลยนแปลง– ...

109

Page 110: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Use Case Description: Change Flt Itinerary

– ...– System ถาม traveler ขอมลเกยวกบเวลา departure และ

destination; traveler เปนคนใหขอมล– ถา flights ท traveler ตองการเปลยน ยงมทวาง ให…– …– System แสดงสรปรายการ transaction

• Alternative course:– ถา flights ท traveler ตองการเปลยน ไมมทวาง ให …

110

Page 111: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Sequence Diagram: Change Flight Itinerary

: Booking SystemTraveler Airline Reservation System

change flight itinerary

get customer account

get itinerarypresent itinerary

select segment

present detailed info

update informationavailable flight

::

Client Account DBMSClient Account DBMS

111

Page 112: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Collaboration Diagram: Change Flight Itinerary

Traveler Client Account DBMS

Airline Reservation System

: Booking System

7: update information

2: get customer account3: get itinerary

4: present itinerary

8: available flight

1: change flight itinerary5: select segment

6: present detailed info

112

Page 113: นัฐพงศ ส์งเนียม่ Dr.nattapong s ...siam2dev.net/E_Learning/OOAD/Lec09_OOAD_UML...OOAD. Interaction Diagrams. ... 15. สัญลักษณ ใน Sequence

Summary• UML Behavioral Diagrams

• Interaction Diagrams• Sequence Diagram• Collaboration Diagram

113