Mô hình hoá hành vi hệ thống
Tất cả các hệ thống đều có cấu trúc tĩnh và hành vi động cần được mô hình hoá. UML cung cấp các biểu đồ để thể hiện được cả hai phương diện đó: Cấu trúc tĩnh được mô tả bởi: biểu đồ lớp, các đối tượng và các mối quan hệ của chúng. Hành vi ...
Tất cả các hệ thống đều có cấu trúc tĩnh và hành vi động cần được mô hình hoá. UML cung cấp các biểu đồ để thể hiện được cả hai phương diện đó:
- Cấu trúc tĩnh được mô tả bởi: biểu đồ lớp, các đối tượng và các mối quan hệ của chúng.
- Hành vi động được mô tả bởi: biểu đồ trạng thái, trình tự, cộng tác và biểu đồ hành động.
Các đối tượng trao đổi với nhau bằng cách gửi các thông điệp để thực hiện các nhiệm vụ trong hệ thống. Sự trao đổi hay còn gọi là sự tương tác trong hệ thống được thể hiện trong các biểu đồ:
(i) Biểu đồ trạng thái (StateDiagram): mô tả các trạng thái, hành vi của các đối tượng. Biểu đồ trạng thái bao gồm những thông tin về những trạng thái khác nhau của các đối tượng, thể hiện các đối tượng chuyển từ trạng thái này sang trạng thái khác như thế nào, hành vi ứng xử của mỗi đối tượng khi có các sự kiện xảy ra để làm thay đổi trạng thái.
(ii) Biểu đồ trình tự (Sequence Diagram): mô tả sự trao đổi, tương tác của các đối tượng với nhau theo trình tự thời gian. Biểu đồ trình tự bao gồm các phần tử biểu diễn cho các đối tượng, các thông điệp được gửi và nhận trình tự theo thời gian để thực hiện các ca sử dụng của hệ thống.
(iii) Biểu đồ cộng tác (Collaboration Diagram): mô tả sự tương tác của các đối tượng với nhau theo ngữ cảnh và không gian công việc.
(iv) Biểu đồ hành động (Activity Diagram): mô tả cách các đối tượng tương tác với nhau nhưng nhấn mạnh về công việc, xác định các hành động và thứ tự thực hiện những hành động đó.
Xây dựng biểu đồ tương tác là thực hiện việc gán trách nhiệm cho các đối tượng.
Từ biểu đồ tương tác, người thiết kế có thể phát hiện thêm các lớp, các thao tác cần thực hiện của mỗi lớp, v.v. Do vậy, biểu đồ tương tác trở thành nền tảng cho các bước còn lại của quá trình phát triển phần mềm.
Nhận xét: Không phải tất cả các hệ thống đều cần cả bốn biểu đồ trên để mô tả hành vi ứng xử của các đối tượng trong các ca sử dụng. Số các biểu đồ tương tác cần xây dựng hoàn toàn phụ thuộc vào mức độ khó, phức tạp của bài toán ứng dụng. Một số người sử dụng biểu đồ trình tự, biểu đồ trạng thái trong pha phân tích để mô tả hoạt động của hệ thống, sau đó xây dựng biểu đồ cộng tác, biểu đồ hành động để phục vụ cho việc thiết kế chi tiết các thành phần của hệ thống ([10], [15], [16]). Đối với những hệ thống tương đối đơn giản thì chỉ cần biểu đồ trình tự và biểu đồ trạng thái.
Trong quá trình tương tác với hệ thống, các tác nhân gây ra các sự kiện cho làm hệ thống hoạt động và yêu cầu hệ thống phải thực hiện một số thao tác để đáp ứng các yêu cầu của những tác nhân đó. Các sự kiện phát sinh bởi các tác nhân có liên quanchặt chẽ với những hoạt động mà hệ thống cần thực hiện. Điều này suy ra là chúng ta phải xác định được các hoạt động của hệ thống thông qua các sự kiện mà các tác nhân gây ra.
Vậy, sự kiện là một hành động kích hoạt hệ thống để nó hoạt động, hoặc tác động lên hệ thống để nó hoạt động tiếp theo một cách nào đó. Nói cách khác, sự kiện là cáigì đó xảy ra và kết quả là nó có thể gây ra một số hoạt động sau đó của hệ thống.
Sau khi nhập vào hết các mặt hàng mà khách đã chọn mua, người bán hàng nhấn phím “Kết thúc”(End Sale), thì hệ thống chuyển sang thực hiện chức năng thanh toán với khách mua hàng. Việc người bán hàng nhấn phím “Kết thúc” chính là sự kiện làm cho hệ thống chuyển sang trạng thái khác.
Các sự kiện có thể là độc lập hoặc có liên hệ với nhau.
Nhập thông tin về các mặt hàng và Thanh toán là hai sự kiện phụ thuộc, sự kiện sau phải xảy ra sau sự kiện thứ nhất, còn sự kiện Trả tiền mặt và trả bằng séc là độc lập với nhau.
Những sự kiện độc lập có thể là những sự kiện đồng thời. Bởi vì những sự kiện này không phụ thuộc vào nhau nên có thể xảy ra trong cùng một thời điểm.
Hiển thị số tiền dư trả lại cho khách và Cập nhật các mặt hàng trong hệ thống HBH là hai sự kiện độc lập với nhau và có thể xảy ra đồng thời.
Các sự kiện cũng có thể chia thành hai loại: các sự kiện bên trong và các sự kiện bên ngoài.
- Sự kiện bên trong là sự kiện xảy ra ngay bên trong hệ thống, ở trong một đối tượng và được kích hoạt bởi đối tượng khác.
- Sự kiện ngoài là sự kiện được tạo ra ở bên ngoài phạm vi của hệ thống. Sự kiện vào của hệ thống là những sự kiện ngoài tác động vào hệ thống và do các tác nhân tạo ra.
Hoạt động của hệ thống là những thao tác mà hệ thống phải thực hiện để trả lời, đáp ứng cho những sự kiện vào. Một số hoạt động của hệ thống có thể tạo ra những sự kiện ra cho các tác nhân để thông báo những sự kiện tiếp theo của hệ thống có thể xảy ra, hoặc nhắc các tác nhân phải hành động như thế nào để có những thông tin mong muốn.
Điều hiển nhiên là: Các sự kiện vào sẽ kích hoạt hệ thống hoạt động và hệ thống hoạt động là để trả lời cho các sự kiện vào mà các tác nhân tạo ra.
Các sự kiện và hoạt động của hệ thống thường được sử dụng để mô tả hình thức các kịch bản cho ca sử dụng.
Khảo sát kịch bản của ca sử dụng “Gọi điện thoại”, trong đó có hai tác nhân là người gọi và người nghe. Dãy các sự kiện của ca sử dụng này được mô tả như sau:
Các sự kiện vào | Các sự kiện ra |
1. Người gọi nhấc tai nghe | 2. Tiếng bíp bíp báo hiệu máy điện thoại sẵn sàng để bắt đầu trao đổi đàm thoại |
3. Người gọi quay số (ví dụ 5652 288) | 4. Tín hiệu điện thoại được nối với người nghe. |
5. Điện thoại của người được gọi rung chuông (nếu không bận đàm thoại) | |
6. Người nghe nhấc ống tai nghe và trả lời | 7. Chuông ngừng kêu. |
8. Đường dây điện thoại được kết nối để hai người đàm thoại với nhau. |
|
9. Người nghe đặt tai nghe xuống | 10. Đường dây bị ngắt. |
11. Người gọi đặt tai nghe xuống kết thúc cuộc gọi. |
Các sự kiện vào là do người gọi tạo ra, các sự kiện ra lại tác động đến người nghe.
Hệ thống điện thoại sẽ hoạt động để trả lời cho các sự kiện vào đồng thời phát sinh ra các sự kiện ra. Dãy các sự kiện và hoạt động của Hệ thống điện thoại được mô tả một cách trực quan hơn như sau:
Biểu đồ vết các sự kiện thực hiện sử dụng "Gọi điện thoại"
Trong các biểu đồ tương tác, các đối tượng trao đổi với nhau bằng các thông điệp. Các đối tượng thường được gửi, nhận theo:
- Các giao thức trao đổi tin (Communication Protocol),
- Hay các lời gọi hàm, một đối tượng gọi một hàm của đối tượng khác để xử lý các yêu cầu.
Có thể thực hịên việc trao đổi thông tin trên mạng, hoặc trong một máy tính và phần lớn thực hiện trong thời gian thực (Real-Time).
Các thông điệp có ba kiểu trao đổi chính:
1. Kiểu đơn giản: được ký hiệu là
Biểu diễn cho dòng điều khiển để chuyển thông điệp msg() từ đối tượng này sang đối tượng khác mà không cần biết chi tiết về sự trao đổi thông tin.
2. Kiểu đồng bộ: được ký hiệu là
Biểu diễn cho dòng điều khiển được đồng bộ hoá, nghĩa là khi có nhiều thông điệp gửi đến (nhận được) thì thông điệp trước (có mức độ ưu tiên cao) phải được xử lý xong và sau khi đã kết thúc công việc thì thông điệp tiếp theo mới được xử lý.
3. Kiểu dị bộ: được ký hiệu là
Biểu diễn cho dòng điều khiển thông điệp không cần đồng bộ, nghĩa là khi có nhiều thông điệp gửi đến (hay nhận được) thì các thông điệp đó được xử lý mà không cần biết những thông điệp khác đã kết thúc hay chưa và thứ tự thực hiện là không quan trọng.