Sơ đồ tương tác, cộng tác và trình tự kèm ví dụ
Sơ đồ tương tác là gì?
Sơ đồ tương tác được sử dụng trong UML để thiết lập giao tiếp giữa các đối tượng. Nó không thao tác dữ liệu liên quan đến đường dẫn truyền thông cụ thể. Sơ đồ tương tác chủ yếu tập trung vào việc truyền thông điệp và cách những thông điệp này tạo nên một chức năng của hệ thống. Sơ đồ tương tác được thiết kế để hiển thị cách các đối tượng sẽ nhận ra các yêu cầu cụ thể của hệ thống. Thành phần quan trọng trong sơ đồ tương tác là huyết mạch và thông điệp.
Nhiều thành phần UML thường có sơ đồ tương tác. Chi tiết tương tác có thể được hiển thị bằng nhiều ký hiệu như sơ đồ trình tự, sơ đồ thời gian, sơ đồ giao tiếp/hợp tác. Sơ đồ tương tác nắm bắt hành vi động của bất kỳ hệ thống nào.

Sau đây là các loại sơ đồ tương tác khác nhau được định nghĩa trong UML:
- Biểu đồ trình tự
- Sơ đồ cộng tác
- Sơ đồ thời gian
Mục đích của sơ đồ trình tự trong Sơ đồ UML là trực quan hóa trình tự của luồng tin nhắn trong hệ thống. Sơ đồ trình tự trong Kỹ thuật phần mềm hiển thị sự tương tác giữa hai vòng đời dưới dạng một chuỗi sự kiện được sắp xếp theo thời gian.
Sơ đồ cộng tác trong UML còn được gọi là sơ đồ giao tiếp. Mục đích của sơ đồ cộng tác là nhấn mạnh các khía cạnh cấu trúc của một hệ thống, tức là cách các đường dây huyết mạch khác nhau trong hệ thống kết nối với nhau.
Sơ đồ thời gian tập trung vào trường hợp tin nhắn được gửi từ đối tượng này sang đối tượng khác.
Mục đích của sơ đồ tương tác
Sơ đồ tương tác giúp bạn hình dung hành vi tương tác của một hệ thống. Sơ đồ tương tác được sử dụng để thể hiện cách một hoặc nhiều đối tượng trong hệ thống kết nối và giao tiếp với nhau.
Sơ đồ tương tác tập trung vào hành vi động của một hệ thống. Sơ đồ tương tác cung cấp cho chúng ta bối cảnh tương tác giữa một hoặc nhiều dây cứu sinh trong hệ thống.
In UML, sơ đồ tương tác được sử dụng cho các mục đích sau:
- Sơ đồ tương tác được sử dụng để quan sát hành vi động của một hệ thống.
- Sơ đồ tương tác trực quan hóa quá trình giao tiếp và trình tự tin nhắn được truyền trong hệ thống.
- Sơ đồ mô hình tương tác thể hiện các khía cạnh cấu trúc của các đối tượng khác nhau trong hệ thống.
- Sơ đồ tương tác thể hiện trình tự tương tác được sắp xếp trong một hệ thống.
- Sơ đồ tương tác cung cấp phương tiện trực quan hóa dữ liệu thời gian thực thông qua UML.
- Biểu đồ tương tác UML có thể được sử dụng để giải thích kiến trúc của hệ thống hướng đối tượng hoặc hệ thống phân tán.
Thuật ngữ quan trọng
Sơ đồ tương tác chứa các đường dây hỗ trợ, thông báo, toán tử, trạng thái bất biến và ràng buộc.
Lifeline
Lifeline đại diện cho một người tham gia duy nhất trong một tương tác. Nó mô tả cách một thể hiện của một trình phân loại cụ thể tham gia vào tương tác.
Một đường dây cứu sinh biểu thị vai trò mà một thể hiện của trình phân loại có thể đóng trong tương tác. Sau đây là các thuộc tính khác nhau của một đường dây cứu sinh,
- Họ tên
- Nó được sử dụng để chỉ huyết mạch trong một tương tác cụ thể.
- Tên của dây cứu sinh là tùy chọn.
- Kiểu
- Đó là tên của một bộ phân loại mà đường dây cứu sinh đại diện cho một thể hiện.
- Chọn
- Đó là điều kiện Boolean được sử dụng để chọn một phiên bản cụ thể thỏa mãn yêu cầu.
- Thuộc tính selector cũng là tùy chọn.
Ký hiệu của dây cứu sinh được giải thích trong phần ký hiệu.
Tin nhắn
Một thông điệp là một loại giao tiếp cụ thể giữa hai đường dây cứu sinh trong một tương tác. Một thông điệp bao gồm các hoạt động sau,
- Một tin nhắn cuộc gọi được sử dụng để gọi một hoạt động.
- Một thông báo để tạo một phiên bản.
- Một thông báo để hủy một instance.
- Để gửi tín hiệu.
Khi đường dây cứu sinh nhận được tin nhắn cuộc gọi, nó hoạt động như một yêu cầu gọi ra một thao tác có chữ ký tương tự như được chỉ định trong tin nhắn. Khi dây cứu sinh đang thực hiện một tin nhắn, nó có trọng tâm kiểm soát. Khi sự tương tác tiến triển theo thời gian, trọng tâm kiểm soát sẽ di chuyển giữa các đường dây cứu sinh khác nhau. Chuyển động này được gọi là luồng điều khiển.
Sau đây là các thông điệp được sử dụng trong Sơ đồ tương tác hệ thống:
Tên tin nhắn | Ý nghĩa |
---|---|
Synctin nhắn đồng thời | Người gửi tin nhắn tiếp tục chờ người nhận trả lại quyền kiểm soát từ việc thực thi tin nhắn. |
Tin nhắn không đồng bộ | Người gửi không đợi phản hồi từ người nhận; thay vào đó, nó tiếp tục thực hiện tin nhắn tiếp theo. |
Trả lại tin nhắn | Người nhận tin nhắn trước đó sẽ trả lại trọng tâm điều khiển cho người gửi. |
Tạo đối tượng | Người gửi tạo một phiên bản của trình phân loại. |
Phá hủy đối tượng | Người gửi hủy phiên bản đã tạo. |
Đã tìm thấy tin nhắn | Người gửi tin nhắn nằm ngoài phạm vi tương tác. |
Tin nhắn bị mất | Tin nhắn không bao giờ đến đích và bị mất trong quá trình tương tác. |
Trạng thái bất biến và ràng buộc
Khi một phiên bản hoặc đường dây cứu sinh nhận được tin nhắn, nó có thể khiến nó thay đổi trạng thái. Trạng thái là một điều kiện hoặc một tình huống trong suốt vòng đời của một đối tượng mà tại đó nó thỏa mãn một số ràng buộc, thực hiện một số thao tác và chờ đợi một số sự kiện.
Trong sơ đồ tương tác, không phải tất cả các thông báo đều làm thay đổi trạng thái của một thể hiện. Một số thông báo không có giá trị của một số thuộc tính. Nó không có tác dụng phụ lên trạng thái của một đối tượng.
Operator
Một toán tử chỉ định một thao tác về cách các toán hạng sẽ được thực thi. Các toán tử trong UML hỗ trợ các thao tác trên dữ liệu dưới dạng phân nhánh cũng như lặp lại. Có thể sử dụng nhiều toán tử khác nhau để đảm bảo việc sử dụng phép lặp và phân nhánh trong mô hình UML. Toán tử opt và alt được sử dụng cho các hoạt động phân nhánh. Toán tử vòng lặp được sử dụng để đảm bảo các hoạt động lặp trong đó một điều kiện được thực hiện lặp đi lặp lại cho đến khi tạo ra kết quả thỏa mãn. Toán tử ngắt được sử dụng bên trong các phép toán vòng lặp hoặc lặp. Nó đảm bảo rằng vòng lặp sẽ kết thúc bất cứ khi nào gặp phải toán tử break. Nếu điều kiện ngắt không được chỉ định thì vòng lặp sẽ thực hiện vô số lần, dẫn đến chương trình bị hỏng.
Sau đây là các toán tử được sử dụng trong sơ đồ tương tác:
Operator | Họ tên | Ý nghĩa |
---|---|---|
Opt | Tùy chọn | Một toán hạng được thực thi nếu điều kiện đúng. ví dụ: Nếu khác |
Khác | Thay thế | Toán hạng có điều kiện đúng sẽ được thực thi. ví dụ: chuyển đổi |
Vòng lặp | Vòng lặp | Nó được sử dụng để lặp một lệnh trong một khoảng thời gian xác định. |
Nghỉ giải lao | Nghỉ giải lao | Nó ngắt vòng lặp nếu điều kiện đúng hoặc sai và lệnh tiếp theo được thực thi. |
ref | Tài liệu tham khảo | Nó được sử dụng để chỉ sự tương tác khác. |
qua | Song song | Tất cả các toán hạng được thực hiện song song. |
Lặp lại
Trong sơ đồ tương tác, chúng ta cũng có thể hiển thị phép lặp bằng biểu thức lặp. Một biểu thức lặp bao gồm một bộ xác định phép lặp và một mệnh đề lặp tùy chọn. Không có cú pháp xác định trước cho phép lặp UML.
Trong phép lặp để chỉ ra rằng các tin nhắn đang được gửi song song, bộ xác định phép lặp song song được sử dụng. Công cụ xác định vòng lặp song song được ký hiệu là *//. Việc lặp lại trong UML đạt được bằng cách sử dụng toán tử vòng lặp.
Chi nhánh
Trong sơ đồ tương tác, chúng ta có thể biểu diễn phân nhánh bằng cách thêm các điều kiện bảo vệ vào tin nhắn. Điều kiện bảo vệ được sử dụng để kiểm tra xem tin nhắn có thể được gửi tiếp hay không. Một thông điệp chỉ được gửi đi khi điều kiện bảo vệ của nó là đúng. Một thông báo có thể có nhiều điều kiện bảo vệ hoặc nhiều thông báo có thể có cùng một điều kiện bảo vệ. Việc phân nhánh trong UML đạt được nhờ sự trợ giúp của các toán tử alt và opt.
Đây là một số quan trọng nhất thuật ngữ được sử dụng trong sơ đồ tương tác UML.
Các loại sơ đồ tương tác và ký hiệu
Sau đây là các loại sơ đồ tương tác khác nhau được định nghĩa trong UML:
- Biểu đồ trình tự
- Sơ đồ cộng tác
- Sơ đồ thời gian
Ký hiệu cơ bản của tương tác là một hình chữ nhật có hình ngũ giác ở góc trên bên trái của một hình hộp chữ nhật.
Sơ đồ trình tự là gì?
A Sơ đồ trình tự chỉ mô tả sự tương tác giữa các đối tượng theo thứ tự tuần tự. Mục đích của sơ đồ trình tự trong UML là trực quan hóa trình tự của luồng thông báo trong hệ thống. Sơ đồ trình tự cho thấy sự tương tác giữa hai dây cứu sinh dưới dạng một chuỗi sự kiện được sắp xếp theo thời gian.
- Sơ đồ tuần tự cho thấy việc triển khai một kịch bản trong hệ thống. Các dây an toàn trong hệ thống tham gia vào quá trình thực hiện hệ thống.
- Trong sơ đồ tuần tự, dây cứu sinh được thể hiện bằng một thanh dọc.
- Luồng thông báo giữa hai hoặc nhiều đối tượng được thể hiện bằng đường chấm dọc kéo dài đến cuối trang.
- Trong sơ đồ trình tự, các loại thông báo và toán tử khác nhau được sử dụng như đã mô tả ở trên.
- Trong sơ đồ trình tự, phép lặp và phân nhánh cũng được sử dụng.
Biểu đồ trình tự ở trên chứa các ký hiệu đường dẫn và ký hiệu của nhiều thông báo khác nhau được sử dụng trong biểu đồ trình tự như thông báo tạo, trả lời, thông báo không đồng bộ, v.v.
Ví dụ về biểu đồ trình tự
Ví dụ về sơ đồ trình tự sau đây thể hiện hệ thống đặt hàng của McDonald's:
Trình tự các sự kiện được sắp xếp theo sơ đồ tuần tự cho trước như sau:
- Đặt hàng.
- Trả tiền cho quầy thu ngân.
- Xác nhận đơn hàng.
- Chuẩn bị đơn hàng.
- Phục vụ đơn hàng.
Nếu thay đổi thứ tự thực hiện các thao tác thì có thể dẫn đến chương trình bị treo. Nó cũng có thể dẫn đến việc tạo ra kết quả không chính xác hoặc có lỗi. Mỗi trình tự trong sơ đồ trình tự nêu trên được biểu thị bằng một loại thông báo khác nhau. Người ta không thể sử dụng cùng một loại thông báo để biểu thị tất cả các tương tác trong sơ đồ vì nó tạo ra sự phức tạp trong hệ thống.
Bạn phải cẩn thận khi chọn ký hiệu của tin nhắn cho bất kỳ tương tác cụ thể nào. Ký hiệu phải phù hợp với trình tự cụ thể bên trong sơ đồ.
Lợi ích của sơ đồ trình tự
- Sơ đồ trình tự được sử dụng để khám phá bất kỳ ứng dụng hoặc hệ thống thực tế nào.
- Sơ đồ tuần tự được sử dụng để thể hiện luồng thông điệp từ đối tượng này sang đối tượng khác.
- Sơ đồ trình tự dễ bảo trì hơn.
- Sơ đồ trình tự dễ tạo ra hơn.
- Sơ đồ trình tự có thể được cập nhật dễ dàng theo những thay đổi trong hệ thống.
- Sơ đồ trình tự cho phép kỹ thuật đảo ngược cũng như chuyển tiếp.
Hạn chế của sơ đồ trình tự
- Biểu đồ trình tự có thể trở nên phức tạp khi có quá nhiều đường liên kết trong hệ thống.
- Nếu thứ tự của chuỗi thông báo bị thay đổi thì kết quả sẽ không chính xác.
- Mỗi chuỗi cần được biểu diễn bằng cách sử dụng ký hiệu thông điệp khác nhau, có thể hơi phức tạp.
- Loại thông báo quyết định loại trình tự bên trong sơ đồ.
Sơ đồ cộng tác là gì?
Sơ đồ cộng tác mô tả các mối quan hệ và tương tác giữa các đối tượng phần mềm. Chúng được sử dụng để hiểu kiến trúc đối tượng trong một hệ thống thay vì luồng thông điệp như trong sơ đồ trình tự. Chúng cũng được gọi là "Sơ đồ truyền thông".
Theo Lập trình hướng đối tượng (OOP), một thực thể đối tượng có nhiều thuộc tính liên kết với nó. Thông thường, có nhiều đối tượng hiện diện bên trong một hệ thống hướng đối tượng, trong đó mỗi đối tượng có thể được liên kết với bất kỳ đối tượng nào khác bên trong hệ thống. Biểu đồ cộng tác được sử dụng để khám phá kiến trúc của các đối tượng bên trong hệ thống. Luồng thông điệp giữa các đối tượng có thể được biểu diễn bằng biểu đồ cộng tác.
Lợi ích của sơ đồ cộng tác
- Nó còn được gọi là sơ đồ truyền thông.
- Nó nhấn mạnh các khía cạnh cấu trúc của sơ đồ tương tác – cách kết nối huyết mạch.
- Cú pháp của nó tương tự như sơ đồ trình tự ngoại trừ việc lifeline không có đuôi.
- Các tin nhắn được truyền qua trình tự được chỉ định bằng cách đánh số từng tin nhắn theo thứ bậc.
- So với sơ đồ trình tự, sơ đồ truyền thông là yếu về mặt ngữ nghĩa.
- Sơ đồ đối tượng là trường hợp đặc biệt của sơ đồ truyền thông.
- Nó cho phép bạn tập trung vào các phần tử thay vì tập trung vào luồng thông điệp như được mô tả trong sơ đồ trình tự.
- Sơ đồ trình tự có thể dễ dàng chuyển đổi thành sơ đồ cộng tác vì sơ đồ cộng tác không mang tính biểu cảm cao.
- Trong khi lập mô hình sơ đồ cộng tác viết sơ đồ trình tự, một số thông tin có thể bị mất.
Ký hiệu sơ đồ cộng tác ở trên chứa các đường dây cứu trợ cùng với các đầu nối, vòng tự lặp, thông báo chuyển tiếp và đảo ngược được sử dụng trong sơ đồ cộng tác.
Hạn chế của sơ đồ cộng tác
- Biểu đồ cộng tác có thể trở nên phức tạp khi có quá nhiều đối tượng trong hệ thống.
- Thật khó để khám phá từng đối tượng bên trong hệ thống.
- Sơ đồ cộng tác tốn nhiều thời gian.
- Đối tượng bị hủy sau khi kết thúc chương trình.
- Trạng thái của một đối tượng thay đổi trong giây lát, điều này gây khó khăn cho việc theo dõi từng thay đổi xảy ra trong một đối tượng của hệ thống.
Sơ đồ cộng tác Ví dụ
Sơ đồ sau đây thể hiện trình tự của hệ thống quản lý sinh viên:
Sơ đồ cộng tác trên thể hiện một hệ thống quản lý thông tin sinh viên. Luồng giao tiếp trong sơ đồ trên được đưa ra bởi,
- Một sinh viên yêu cầu đăng nhập thông qua hệ thống đăng nhập.
- Cơ chế xác thực của phần mềm sẽ kiểm tra yêu cầu.
- Nếu mục nhập sinh viên tồn tại trong cơ sở dữ liệu thì quyền truy cập được cho phép; nếu không, lỗi sẽ được trả về.
Sơ đồ thời gian là gì?
Sơ đồ thời gian là dạng sóng hoặc biểu đồ được sử dụng để mô tả trạng thái của dây cứu sinh tại bất kỳ thời điểm nào. Nó được dùng để biểu thị sự biến đổi của một đối tượng từ dạng này sang dạng khác. Sơ đồ thời gian không chứa các ký hiệu theo yêu cầu trong sơ đồ trình tự và cộng tác. Luồng giữa chương trình phần mềm tại các thời điểm khác nhau được biểu diễn bằng dạng sóng.
- Nó là sự thể hiện thích hợp các tương tác tập trung vào thời gian cụ thể của các tin nhắn được gửi giữa các đối tượng khác nhau.
- Sơ đồ thời gian được sử dụng để giải thích quá trình xử lý thời gian chi tiết của một đối tượng cụ thể.
- Biểu đồ thời gian được sử dụng để giải thích sự thay đổi của một đối tượng trong vòng đời của nó.
- Sơ đồ thời gian chủ yếu được sử dụng với các hệ thống phân tán và nhúng.
- Trong UML, sơ đồ thời gian được đọc từ trái sang phải theo tên của dây cứu sinh được chỉ định ở cạnh trái.
- Biểu đồ thời gian được sử dụng để thể hiện những thay đổi khác nhau thỉnh thoảng xảy ra trong vòng đời.
- Sơ đồ thời gian được sử dụng để hiển thị biểu diễn đồ họa của các trạng thái khác nhau của dây cứu sinh trên một đơn vị thời gian.
- UML cung cấp nhiều ký hiệu khác nhau để đơn giản hóa trạng thái chuyển tiếp giữa hai vòng đời trên một đơn vị thời gian.
Sơ đồ thời gian Ví dụ
Biểu đồ thời gian đưa ra dưới đây thể hiện một vài giai đoạn của một Chu trình phát triển phần mềm.
Trong sơ đồ trên, trước tiên, phần mềm trải qua giai đoạn yêu cầu sau đó là giai đoạn thiết kế và sau đó là giai đoạn phát triển. Đầu ra của giai đoạn trước tại thời điểm đó được đưa vào giai đoạn thứ hai như một đầu vào. Do đó, sơ đồ thời gian có thể được sử dụng để mô tả SDLC (Vòng đời phát triển phần mềm) trong UML.
Lợi ích của sơ đồ thời gian
- Sơ đồ thời gian được sử dụng để thể hiện trạng thái của một đối tượng tại một thời điểm cụ thể.
- Sơ đồ thời gian cho phép kỹ thuật đảo ngược cũng như chuyển tiếp.
- Sơ đồ thời gian có thể được sử dụng để theo dõi mọi thay đổi bên trong hệ thống.
Hạn chế của sơ đồ thời gian
- Biểu đồ thời gian rất khó hiểu.
- Sơ đồ thời gian rất khó để duy trì.
Làm thế nào để vẽ sơ đồ tương tác?
Sơ đồ tương tác được sử dụng để thể hiện hành vi tương tác của một hệ thống. Sơ đồ tương tác tập trung vào hành vi động của một hệ thống. Sơ đồ tương tác cung cấp cho chúng ta bối cảnh tương tác giữa một hoặc nhiều dây cứu sinh trong hệ thống.
Để vẽ một sơ đồ tương tác, trước tiên bạn phải xác định kịch bản mà bạn phải vẽ sơ đồ tương tác. Sau khi quyết định tình huống, hãy xác định các đường dây cứu sinh khác nhau sẽ tham gia vào tương tác. Phân loại tất cả các yếu tố đường dây cứu sinh và khám phá chúng để xác định các kết nối có thể có và cách các đường dây cứu sinh liên quan đến nhau. Để vẽ một sơ đồ tương tác, cần có những điều sau:
- Tổng số dây cứu sinh sẽ là một phần của sự tương tác
- là một chuỗi các luồng thông điệp trong các đối tượng khác nhau của hệ thống.
- Các toán tử khác nhau để giảm bớt chức năng của sơ đồ tương tác.
- Nhiều loại tin nhắn khác nhau để hiển thị sự tương tác rõ ràng và chính xác hơn.
- Thứ tự sắp xếp của các tin nhắn.
- Tổ chức và cấu trúc của một đối tượng.
- Cấu trúc thời gian khác nhau của một đối tượng.
Sử dụng sơ đồ tương tác
Biểu đồ tương tác bao gồm biểu đồ trình tự, biểu đồ cộng tác và biểu đồ thời gian. Sau đây là mục đích cụ thể của biểu đồ tương tác:
- Sơ đồ trình tự được sử dụng để khám phá bất kỳ ứng dụng hoặc hệ thống thực tế nào.
- Sơ đồ tương tác được sử dụng để khám phá và so sánh việc sử dụng sơ đồ trình tự, cộng tác và thời gian.
- Sơ đồ tương tác được sử dụng để nắm bắt hành vi của một hệ thống. Nó hiển thị cấu trúc động của một hệ thống.
- Sơ đồ tuần tự được sử dụng để thể hiện luồng thông điệp từ đối tượng này sang đối tượng khác.
- Biểu đồ cộng tác được sử dụng để hiểu kiến trúc đối tượng của một hệ thống thay vì luồng thông điệp.
- Sơ đồ tương tác được sử dụng để mô hình hóa một hệ thống như một chuỗi các sự kiện được sắp xếp theo thời gian.
- Sơ đồ tương tác được sử dụng trong kỹ thuật đảo ngược cũng như kỹ thuật chuyển tiếp.
- Sơ đồ tương tác được sử dụng để tổ chức cấu trúc của các phần tử tương tác.
Tổng kết
- Các tương tác chỉ đơn giản là đơn vị hành vi của một bộ phân loại.
- Các yếu tố quan trọng trong sơ đồ tương tác là huyết mạch và thông điệp.
- Sơ đồ tương tác chủ yếu tập trung vào việc truyền thông điệp.
- Sơ đồ tương tác nắm bắt hành vi động của bất kỳ hệ thống nào.
- Sơ đồ tương tác chứa sơ đồ trình tự, sơ đồ thời gian, sơ đồ giao tiếp/cộng tác.
- Sơ đồ UML trình tự là để trực quan hóa trình tự của luồng thông báo trong hệ thống.
- Mục đích của sơ đồ cộng tác là nhấn mạnh các khía cạnh cấu trúc.
- Sơ đồ thời gian tập trung vào trường hợp tin nhắn được gửi từ đối tượng này sang đối tượng khác.