นัฐพงศ ส์งเนียม่ dr.nattapong s...
TRANSCRIPT
โดย อ.ดร. นฐพงศ สงเนยม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]
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