Check safety

Một phần của tài liệu LUẬN VĂN:ĐẶC TẢ VÀ KIỂM CHỨNG CÁC PHẦN MỀM TƯƠNG TRANH pptx (Trang 34 - 41)

Check safety sẽ kiểm tra xem chương trình của bạn đã được thiết kế có an toàn hay không? Chương trình sẽ phân tích những tiến trình có trong thiết kế của bạn và phân tích xem trong quá trình các tiến trình đó hoạt động có xảy ra deadlock hay không?

Tại thực đơn Check chọn Safety

25

Trên hình vẽ, công cụ LTSA đã phân tích tất cả các máy trạng thái được tạo ra để kiểm tra xem thiết kế có an toàn không? Cụ thể trong bài toán này chúng ta có kết quả kiểm tra là “ No deadlock/errors” tức là thiết kế không có lỗi và không có deadlock.

3.3.3 Check Progress

Check progess có tác dụng tìm ra những hành động có vi phạm hay không, điển hình là hành động đó không có trạng thái kết thúc và không thể thực hiện được.

Tại thực đơn Check chọn Progress

Hình 3.3.3: Kết quả hiển thị khi check progress

Trong cửa sổ output, tất cả các máy trạng thái được phân tích để tìm các vi phạm có thể có. Cụ thể trong thiết kế này kết quả kiểm tra là “ No progress violations detected” nghĩa là không có progress nào vi phạm.

3.3.4 Compile

Chức năng Compile dùng để biên dịch đoạn mã LTS thành các máy trạng thái tương ứng, tại đó, ta có thể kiểm tra xem thiết kế có chính xác thieo yêu cầu không?

26

Muốn biên dịch đoạn mã tại cửa sổ của chương trình nhấn biển tượng chữ C (Compile) hoặc tại thực đơn Build chọn Compile.

Hình 3.3.4: Kết quả hiển thị khi biên dịch đoạn mã LTS

Sau khi chọn Compile khung nhìn Output sẽ hiện ra thông báo kết quả biện dịch, nếu đoạn mã không có lỗi, chương trình sẽ thông báo biên dịch thành công. Nếu đoạn mã có lỗi, cửa sổ sẽ thông báo có lỗi ở dòng bao nhiêu để sửa.

Trên màn hình hiển thị có 3 dòng chữ bắt đầu bằng “Conpiled” điều đó có nghĩa có 3 máy trạng thái được biên dịch và không có lỗi về cú pháp. Ba máy trạng được tạo ra thành công là CAR, NOPASS, và NOPASS2. Nếu cõ lỗi về cú pháp, chương trình sẽ không biên dịch được và sẽ báo lỗi đó là lỗi ở dòng bao nhiêu để ta có thể biết và sửa.

Các mô hình được tạo ra sẽ được hiển thị ở khung nhìn Draw mà được mô tả trong phần 3.3.5.

27

3.3.5 LTS Analiser

Kết quả phân tích ví dụ trên bằng LTSA:

Hình 3.3.5: LTS Analiser SingleLaneBridge

Mỗi mô tả FSP được mô tả bằng một mô hình tương ứng trong LTSA. Phần bên trái là danh sách các mô hình, phần bên phải hiển thị mô hình tương ứng được chọn ở danh sách bên trái.

Trên hình ta thấy một máy trạng thái với tên trạng thái ban đầu là red:CONVOY.NOPASS1. Máy trạng thái này tương ứng với đoạn mã sau trong LTS:

NOPASS1 = C[1],

28 NOPASS2 = C[1],

C[i:ID] = ([i].exit -> C[i%N+1]).

||CONVOY = ([ID]:CAR || NOPASS1 || NOPASS2).

||CARS = (red:CONVOY || blue:CONVOY).

3.3.6 LTSA Animator

LTSA Animator là chức năng để điều khiển cách hành động có thể xảy ra theo như thiết kế. Để sử dụng chức nằng này ta vào thực đơn Check chọn Run và chọn DEFAULT. Cửa sổ Animator sẽ hiện ra:

29

Hình 3.3.6: Animator SingleLandBridge

Các hành động trong Animator sẽ tương ứng với các hành động trong mô hình. Hành động được chọn trong Animator sẽ điều khiển hoạt động của mô hình trong LTSA. Khi một hành động được thực thi, mỗi mô hình có hành động được thự hiện sẽ chuyển thành màu đỏ ở phần bên trái của cửa sổ LTSA. Hành động được thực thi cũng được thể hiện bằng màu đỏ trong mô hình ở phần bên phải của cửa sổ LTSA.

Toàn bộ các hành động trong thiết kế sẽ được Animator ghi lại, nhờ đó LTSA có thể kiểm tra được toàn bộ các hành động có thể xảy ra trong thiết kế. Với cách kiểm tra bằng mô hình như vậy, chúng ta có thể dễ dàng kiểm tra xem thiết kế có đúng với yêu cầu bài toán đặt ra không?

Bằng việc lựa chọn tất cả các hành động có thể xảy ra trong animator chúng ta đã kiểm tra được toàn bộ hoạt động của hệ thống tương tranh trong thiết kế. Qua đó chúng ta kết luận được thiết kế có hoạt động chính xác hay không. Cụ thể trong thiết

30

kế đang được kiểm chứng này, em đã kiểm tra các hoạt động xảy ra trong thiết kế và thấy thiết kế hoạt động đúng theo yêu cầu.

3.4 Kết luận

Trong chương này, chúng ta đã tìm hiểu được cách đặc tả một thiết kế bằng FSP và dùng công cụ LTSA để kiểm chứng thiết kế đó. Đối với ví dụ cụ thể mà chúng ta sử dụng để kiểm chứng, thiết kế đã đáp ứng được yêu cầu đặt ra.

31

Chương 4: Kiểm chứng cài đặt

Trong chương này chúng ta sẽ tìm hiểu cách chuyển từ mã nguồn Java thành FSP để sử dụng công cụ LTSA kiểm chứng xem chương trình có lỗi và hoạt động đúng theo thiết kế hay không?

Một phần của tài liệu LUẬN VĂN:ĐẶC TẢ VÀ KIỂM CHỨNG CÁC PHẦN MỀM TƯƠNG TRANH pptx (Trang 34 - 41)

Tải bản đầy đủ (PDF)

(53 trang)