Quy tắc biểu diễn giao thức bằng biểu đồ trạng thái

Một phần của tài liệu KIỂM CHỨNG ĐẶT TẢ UML CHO TÁC TỬ PHẦN MỀM (Trang 43 - 44)

Ngoài cách vẽ biểu đồ trạng thái như trong UML đề cập, tôi xin đưa ra thêm một số quy tắc dùng biểu đồ trạng thái để biểu diễn giao thức. Công cụ PVG mà tôi xây dựng sẽ sử dụng các quy tắc này như là một chuẩn để nó có thể hiểu được giao thức

mà người dùng đặc tả bằng UML. Nếu người dùng không tuân thủ các quy tắc này,

chương trình sẽkhông đưa ra được kết quảnhư ý. Một số quy tắc:

- Trong một tài liệu UML, chỉ có một biểu đồ trạng thái thể hiện giao thức cần kiểm tra.

- Biểu đồ trạng thái bắt buộc phải có trạng thái bắt đầu và trạng thái kết thúc.

- Trạng thái bắt đẩu có tên bắt đầu bằng “Initial”, và chỉ có các cạnh đi ra

chứ không có cạnh đi vào trạng thái này.

- Trạng thái kết thúc có tên bắt đầu bằng “FinalState” và chỉ có cạnh đi vào,

36

- Các trạng thái khác phải có ít nhất một cạnh đi vào và một cạnh đi ra. Tên

của các trạng thái này không bắt đầu bằng “Initial” hoặc “FinalState”.

- Các cạnh là chữ ký (signature) của các hàm, phương thức sẽđược gọi dùng

để thay đổi trạng thái. Chữ ký này được định nghĩa gi ống như tên hàm

trong mã nguồn của chương trình cần kiểm chứng, bao gồm cả kiểu giá trị

trả về, tên hàm, danh sách các tham số truyền vào. Ví dụ:

o Trong mã nguồn, ta gọi hàm init() không có tham số truyền vào, kiểu trả về là void thì tên của cạnh trong biểu đồ UML sẽ là: void init().

o Hàm int setAge(int age) được gọi trong mã nguồn thì tên của cạnh

tương ứng sẽ là: int setAge(int age).Đối số age là không bỏđược. - Chú ý rằng tên của tham số truyền vào phải giống với tên biến đã khai báo

trong mã nguồn của chương trình cần kiểm chứng.

- Điều kiện tiên quyết (precondition) để hàm được gọi sẽ được mô tả trong “GuardCondition” của cạnh. Điều kiện này cũng phải giống với điều kiện trong mã nguồn của chương trình. Hoặc nó là đoạn code trả về giá trị boolean (ví dụnhư một phương thức tĩnh (static) boolean isTrue())

Sau đây là ví dụ mô tả một cạnh trong biểu đồ trạng thái UML: - Đoạn mã trong chương trình:

if(temp.isTrue()) {

init(); ... }

- Ta sẽ mô tả cạnh của biểu đồ trạng thái UML như sau:

Hình 4.1: UMLTransition

o Tên của cạnh (Name): void init().

o Điều kiện tiên quyết (GủadCondition): temp.isTrue()

Một phần của tài liệu KIỂM CHỨNG ĐẶT TẢ UML CHO TÁC TỬ PHẦN MỀM (Trang 43 - 44)