Bài giảng Mô hình hóa phần mềm - Tuần 5: Sequence Diagram - Nguyễn Thị Minh Tuyền

pdf 36 trang Gia Huy 16/05/2022 3750
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Mô hình hóa phần mềm - Tuần 5: Sequence Diagram - Nguyễn Thị Minh Tuyền", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_mo_hinh_hoa_phan_mem_tuan_5_sequence_diagram_nguye.pdf

Nội dung text: Bài giảng Mô hình hóa phần mềm - Tuần 5: Sequence Diagram - Nguyễn Thị Minh Tuyền

  1. MÔ HÌNH HOÁ PHẦN MỀM TUẦN 5: SEQUENCE DIAGRAM GVLT: NGUYỄN THỊ MINH TUYỀN
  2. NỘI DUNG 1. Giới thiệu 2. Các tương tác và các bên tương tác 3. Thông điệp 4. Các combined fragment a. Branches and loops b. Concurrency and order c. Filters and assertions 5. Các thành phần khác 6. Các loại biểu đồ tương tác khác MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 2
  3. NỘI DUNG 1. Giới thiệu 2. Các tương tác và các bên tương tác 3. Thông điệp 4. Các combined fragment a. Branches and loops b. Concurrency and order c. Filters and assertions 5. Các thành phần khác 6. Các loại biểu đồ tương tác khác MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 3
  4. GIỚI THIỆU • Mô hình hoá hành vi giữa các đối tượng (inter-object behavior) • Tương tác • Chỉ ra cách các thông điệp (message) và dữ liệu (data) được trao đổi giữa các thành phần tương tác với nhau. • Các bên tương tác (interaction partners) • Human (student, lecturer, administrator, ) • Non-human (server, printer, executable software, ) • Ví dụ: • Conversation between persons • Message exchange between humans and a software system • Communication protocols • Sequence of method calls in a program • MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 4
  5. NỘI DUNG 1. Giới thiệu 2. Các tương tác và các bên tương tác 3. Thông điệp 4. Các combined fragment a. Branches and loops b. Concurrency and order c. Filters and assertions 5. Các thành phần khác 6. Các loại biểu đồ tương tác khác MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 5
  6. CÁC BIỂU ĐỒ TƯƠNG TÁC • Được dùng để chỉ ra các tương tác • Mô hình hoá các kịch bản cụ thể • Mô tả các chuỗi giao tiếp tại các mức chi tiết khác nhau • Các biểu đồ tương tác biểu diễn: • Tương tác của một hệ thống trong môi trường của nó • Tương tác giữa các phần hệ thống để biểu diễn cách mà một use case có thể được cài đặt • Giao tiếp giữa các tiến trình trong đó các thành phần tương tác phải tuân thủ một số giao thức nhất định • Giao tiếp tại mức lớp (triệu gọi thao tác, hành vi giữa các đối tượng) • Biểu đồ tuần tự là biểu đồ tương tác thông dụng nhất. MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 6
  7. BIỂU ĐỒ TUẦN TỰ • Sequence Diagram • Biểu đồ hai chiều • Tương tác = chuỗi các đặc tả sự kiện MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 7
  8. CÁC BÊN TƯƠNG TÁC • Các bên tương tác (Interaction partners) được mô tả dưới dạng vòng đời (lifeline) • Phần đầu của vòng đời: • Biểu thức chứa roleName:Class • Vai trò là khái niệm tổng quát hơn các đối tượng • Đối tượng có thể có nhiều vai trò khác nhau trong suốt vòng đời • Phần thân của vòng đời: • Chiều đứng, biểu diễn bằng đường nét đứt • Biểu diễn lifetime của đối tượng liên kết với nó Head of the lifeline Body of the Lifeline MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 8
  9. TRAO ĐỔI THÔNG ĐIỆP (1/2) • Tương tác được xem như môt chuỗi các đặc tả sự kiện • Đặc tả sự kiện bao gồm việc gởi và nhận thông điệp hoặc các sự kiện xảy ra dựa vào thời gian • Đặc tả việc thực thi (Execution specification) • Continuous bar • Được dùng để hiển thị khi một thành phần tương tác thực hiện một số hành vi Send event Receive event Execution specification MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 9
  10. TRAO ĐỔI THÔNG ĐIỆP (2/2) • Thứ tự của các thông điệp on one lifeline on different lifelines "Happens before" on different lifelines which exchange messages MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 10
  11. NỘI DUNG 1. Giới thiệu 2. Các tương tác và các bên tương tác 3. Thông điệp 4. Các combined fragment a. Branches and loops b. Concurrency and order c. Filters and assertions 5. Các thành phần khác 6. Các loại biểu đồ tương tác khác MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 11
  12. THÔNG ĐIỆP (1/3) • Thông điệp đồng bộ (Synchronous message) • Bên gởi thông điệp chờ cho tới khi nhận được một thông điệp trả lời trước khi tiếp tục • Cú pháp của tên thông điệp: msg(par1,par2) • msg: tên thông điệp • par: tham số cách nhau bởi dấu • Thông điệp bất đồng bộ (Asynchronous message) • Bên gởi thông điệp không cần chờ thông điệp trả lời • Cú pháp của tên thông điệp : msg(par1,par2) • Thông điệp trả lời (Response message) • Có thể bỏ qua nếu nội dung và điểm mà thông điệp trả về được gởi và nhận có ngữ cảnh rõ ràng • Cú pháp: att=msg(par1,par2):val • att: giá trị trả về có thể gán cho một biến nào đó • msg: tên thông điệp • par: các tham số cách nhau bởi dấu , • val: giá trị trả về MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 12
  13. VÍ DỤ MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 13
  14. THÔNG ĐIỆP (2/3) • Tạo đối tượng • Đường mũi tên nét đứt • Đầu mũi tên hướng từ đầu của lifeline của đối tượng được tạo • Từ khoá new • Huỷ đối tượng • Đối tượng bị xoá bỏ • Dấu chéo (×) tại điểm cuối của lifeline MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 14
  15. THÔNG ĐIỆP (3/3) • Found message • Bên gởi thông điệp không biết hoặc không liên quan • Lost message • Bên nhận thông điệp không biết hoặc không liên quan • Thông báo tiêu tốn thời gian (Time-consuming message) • "Thông điệp với một khoảng thời gian " • Thường các thông điệp được giả sử truyền đi mà không mất thời gian • Biểu diễn thời gian giữa gởi và nhận thông điệp MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 15
  16. NỘI DUNG 1. Giới thiệu 2. Các tương tác và các bên tương tác 3. Thông điệp 4. Các combined fragment a. Branches and loops b. Concurrency and order c. Filters and assertions 5. Các thành phần khác 6. Các loại biểu đồ tương tác khác MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 16
  17. COMBINED FRAGMENTS • Mô hình các cấu trúc điều khiển khác nhau • Có 12 loại toán tử (operator) được định nghĩa trước Combined Fragment Operator Operand Operand Operand MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 17
  18. CÁC LOẠI COMBINED FRAGMENTS Operator Purpose alt Alternative interaction opt Optional interaction loops loop Repeated interaction Branches and and Branches break Exception interaction seq Weak order strict Strict order Concurrent interaction order par critical Atomic interaction Concurrency and ignore Irrelevant interaction consider Relevant interaction assert Asserted interaction assertions Filters and neg Invalid interaction MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 18
  19. NỘI DUNG 1. Giới thiệu 2. Các tương tác và các bên tương tác 3. Thông điệp 4. Các combined fragment a. Branches and loops b. Concurrency and order c. Filters and assertions 5. Các thành phần khác 6. Các loại biểu đồ tương tác khác MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 19
  20. alt FRAGMENT • Biểu diễn các chuỗi thay thế • Tương tự câu lệnh switch statement trong Java • Guards được dùng để chọn một đường đi được thực thi • Guards • Được đặt giữa hai dấu [ ] • mặc định: true • đã định nghĩa trước: [else] • Nhiều toán hạng • Guards phải rời rạc để tránh hành vi không xác định MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 20
  21. MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 21
  22. opt FRAGMENT • Để mô hình hoá một chuỗi tuỳ chọn • Việc thực thi thực sự tại thời điểm chạy phụ thuộc vào guard • Có chính xác một toán hạng • Tương tự câu lệnh if mà không có nhánh else • Tương đương với alt fragment với hai toán hạng, một cái bỏ trống MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 22
  23. loop FRAGMENT • Để biểu diễn rằng một chuỗi được thực thi lặp lại • Chính xác một toán hạng • Từ khoá loop được theo sau bởi các số vòng lặp min và max (min max) hoặc (min,max) • mặc định: (*) không có giới hạn trên • Guard • Được ước lượng ngay khi số lần lặp tối thiểu được tiến hành • Được kiểm tra cho mỗi lần lặp trong giới hạn (min,max) • Nếu guard sai, việc thực thi sẽ bị kết thúc. Max Min Guard Các ký hiệu thay thế: loop is executed at least once, then loop(3,8) = loop(3 8) as long as a<1 is loop(8,8) = loop (8) true loop = loop (*) = loop(0,*) MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 23
  24. break FRAGMENT • Hình thức xử lý ngoại lệ đơn giản • Chính xác một toán hạng với một guard • Nếu guard đúng : • Các tương tác trong toán hạng được thực thi • Các thao tác còn lại quanh fragment bị bỏ qua • Tương tác tiếp tục ở fragment có level cao hơn • Hành vi khác với opt fragment Not executed if break is executed MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 24
  25. loop VÀ break FRAGMENT – VÍ DỤ MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 25
  26. NỘI DUNG 1. Giới thiệu 2. Các tương tác và các bên tương tác 3. Thông điệp 4. Các combined fragment a. Branches and loops b. Concurrency and order c. Filters and assertions 5. Các thành phần khác 6. Các loại biểu đồ tương tác khác MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 26
  27. seq FRAGMENT • Biểu diễn thứ tự mặc định • Trình tự yếu: 1. Thứ tự các sự kiện trong mỗi toán hạng được duy trì trong kết quả. 2. Các sự kiện trong các lifeline từ các toán hạng khác nhau có thể theo thứ tự bất kỳ. 3. Các sự kiện trong cùng lifeline từ các toán hạng khác nhau được sắp xếp sao cho một sự kiện của toán hạng thứ nhất sẽ xảy ra trước sự kiện của toán hạng thứ 2. MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 27
  28. seq FRAGMENT – VÍ DỤ MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 28
  29. strict FRAGMENT • Tương tác tuần tự với thứ tự • Thứ tự của sự kiện diễn ra trên các lifeline khác nhau giữa các toán hạng khác nhau là quan trọng. • Các thông điệp trong một toán hạng cao hơn trên trục tung luôn luôn được trao đổi trước khi các thông điệp của toán hạng ở thấp hơn MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 29
  30. strict FRAGMENT – VÍ DỤ MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 30
  31. par FRAGMENT • Cho phép bỏ qua thứ tự thời gian giữa các thông điệp khác nhau trong các toán hạng khác nhau. • Các đường thực thi của toán hạng khác nhau có thể đan xen nhau miễn là các ràng buộc của riêng mỗi toán hạng được tôn trọng • Thứ tự của các toán hạng khác nhau không liên quan nhau • Đồng thời, không song song thực sự, chỉ diễn tả sự đồng thời MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 31
  32. par FRAGMENT – VÍ DỤ MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 32
  33. COREGION • Để mô hình hoá các sự kiện đồng thời của một lifeline duy nhất • Thứ tự xảy ra sự kiện trong một coregion không bị hạn chế • Khu vực của lifeline được bao phủ bởi coregion được đánh dấu bởi hai dấu [ ] xoay ngang 90 độ Impact of coregion Coregion MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 33
  34. COREGION – VÍ DỤ MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 34
  35. critical FRAGMENT • Để đảm bảo rằng các phần nào đó của một tương tác không bị ngắt bởi các sự kiện không mong đợi • Đặt trong critical: thứ tự mặc định seq MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 35
  36. critical FRAGMENT – VÍ DỤ MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 36