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

Preview:

Citation preview

โดย อ.ดร. นฐพงศ สงเนยมhttp://www.siam2dev.comDr.nattapong_s@hotmail.com

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

Last Update : 08/02/2561

Lec09 : UML Behavioral Modeling

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

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

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

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

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

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

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

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

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

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

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

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

พฒนา

7

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

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

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

10

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

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

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

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

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

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

ขนอยกบระบบท

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

พฒนาระบบ

12

จาก Interaction diagrams

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

13

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

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

14

จากตวอยาง 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

สญลกษณใน Sequence Diagram

จากรปท 1 แสดง

ลกษณะ

ของ Sequence

Diagram โดยทวไป

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

สญลกษณตางๆ

ดงน

16

สญลกษณใน Sequence Diagram

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

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

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

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

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

Class, Boundary Class แ ล ะ Control

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

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

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

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

17

สญลกษณใน Sequence Diagram

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

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

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

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

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

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

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

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

18

วธการสราง 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

วธการสราง 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

Sequence & Collaboration Diagrams

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

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

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

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

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

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

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

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

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

21

Message ?

22

Sequence & Collaboration Diagrams

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

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

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

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

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

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

23

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

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

• ลาดบเวลา

• การจดการ

10 usecase

24

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

วตถ

• Actor• Classes/Objects

เพม

รายวชา

สไมเกยว

Use case diagram

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

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

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

26

Interaction diagram

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

– กอน-หลง sequence

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

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

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

27

• Object• Message• function

trigger

Use case

28

Life line / Time Line

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

activationnew

destroy29

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

:Student

สมชาย:Student

Object

Student

Class

31

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

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

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

33

b1:button t1:textbox

1 : append(1)

15211ปมใดๆ

Button b1 = new Button();

new button();

ป ม b1

1 : Settext(1)

1

:button

:student

สมชาย:student34

button1:Button TxtResult

1 : append(1)

15211

35

• C# , java,c++

private void button1_click() {

Button b1 = new Button()}

• Vb.net

class Operation/function

36

java , c++ , c#

Button b1 = new Button();

b1.append(“1”);

37

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

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

จงเขยน 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

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

1 : ถามอาย()

นาย ก. นาง ข.

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

Lifeline

41

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

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

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

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

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

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

3. กรอกขอมล

4. ยนแบบฟอรม

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

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

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

รายวชาทเปด

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

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

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

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

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

43

หลกการเขยน

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

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

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

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

44

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

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

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

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

45

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

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

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

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

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

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

49

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

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

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

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

ระหวางวตถ

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

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

ของวตถน นๆ

Function()

50

:นกเรยน :วชา

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

Message ?

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

class , objects diagram

51

submit

server client

Reponse Request52

Message : id , GPA

Login

Student System/staffCheck GPA

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

53

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

-ชอ- รน- OS

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

+ พมพ()

Has a

client Server

Message = file

word

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

54

Lifeline ของ button

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

Formb1

Aggregate /composite

55

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

• }

Class A

Class bClass C

Car

doorhand

56

57

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

1. ถามอาย()

นาย ก. นาง ข.

เสนชวต

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

activation58

?

?

?

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

59

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

A{..}

B{..

void b() {}}

Call – Message

A{..

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

}

Create message

Sender Reciever

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

A

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

}

java class B {

}Create message

B

+setName()

62

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

Message Notation

Simple

Synchronous

Asynchronous

(Message return)

64

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

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

Message1 Message2

Message3

65

ชนดของ Message

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

message

recursive

66

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

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

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

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

67

OOP

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

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

w.advise(boss);

}

68

Create message

Worker o1 = new Worker();

Boss b1 = new Boss();

69

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

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

โปรแกรมหลก71

public class Universe {

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

w.Advise(b);

}

activation

finalize

Java , C# , VB : Garbage collection

72

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

73

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

Sequence Diagrams ใน UML 2.0 (alt )

75

Sequence Diagrams ใน UML 2.0 (Recursion )

76

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

77

Notation : Sequence Diagram

name : Classobject symbol

lifeline

activation

other

stimulus

[condition]name (…)

return

: Class

create

new (…)

deletemessage

Return Function

78

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

Nested Flow

If() {if() {

if() { } else {}

} elseif() { } else{}

}

80

Example: Sequence diagram

Objectcreation

course form :CourseForm

theManager :CurriculumManager

aCourse :Course

: Registrar

Set Course Info

processAdd Course

<<create>>

81

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

ทาไมตอง Sequence Diagram?

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

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

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

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

ʋǹ»ÃСͺ¢Í§ Sequence Diagram

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

สญลกษณของ Object

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

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

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

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

สญลกษณ Message

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

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

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

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

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

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

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

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

: 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

เทคนคการสราง 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

Class diagram Use case diagram

Use case diagram

Sequence/Colllaboration

89

เทคนคการสราง 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

เทคนคการสราง 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

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

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

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

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

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

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

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

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

[condition]

94

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

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

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

การสงซอสนคา

96

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

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

ตวอยางจาก

98

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

What is a collaboration?• Collaboration

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

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

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

100

Content of Collabaration diagrams• วตถ (Objects)

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

• Messages

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

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

– «create» และ «destroy» messages

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

อาจม Loop ของ Message

101

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

Collaboration diagram basics

: ProfessorCourseManager

Math 101 - Section 1 : CourseOffering

1 : Add professor (Professor)

103

Example : Collaboration diagram

: Registrar

course form : CourseForm

theManager : CurriculumManageraCourse : Course

4 : <<create>>

3 : add course

1 : set course info2 : process

104

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

Comparing sequence & collaboration diagrams

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

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

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

106

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

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

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

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

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

107

Example: A Booking System

108

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

Use Case Description: Change Flt Itinerary

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

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

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

110

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

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

Summary• UML Behavioral Diagrams

• Interaction Diagrams• Sequence Diagram• Collaboration Diagram

113

Recommended