Khai báo tập các khẳng định

Một phần của tài liệu Kiểm định đặc tả alloy sử dụng chứng minh định lý logic vị từ bậc 1 (Trang 69 - 74)

II. Triển khai cách thức sử dụng cụ thể

4.Khai báo tập các khẳng định

Tập các khẳng định là tập các điều kiện ta mong muốn hệ thống sẽ đạt được khi thực hiện mô hình hóa hệ thống. Các khẳng định được thỏa mãn chứng tỏ mô hình của chúng ta thực hiện không bị xung đột. Tập các khẳng định luôn được chạy sau khi thực hiện một vị từ để đảm bảo trạng thái đúng đắn của hệ thống sau khi thực hiện hành động. Sau đây chúng ta sẽ trình bày tập các khẳng định của hệ thống.

4.1. Thêm xóa tệp

Khi thực hiện thêm và xóa cùng một tệp tin thì trạng thái của thư mục không thay đổi. Nó đảm bảo sự toàn vẹn của hệ thống

assert addRemoveFile{ all a,b,c:DirectState, d:FileState|addFileInDirect[a,b,d]and removeFileInDirect[b,c,d]=>sameDirectState[a,c] } check addRemoveFile 4.2. Thêm xóa thƣ mục

Khi thực hiện xóa và thêm cùng một thư mục thì trạng thái của thư mục không thay đổi. assert addRemoveDirect{ all a,b,c:DirectState, d:DirectState|addDirectInDirect[a,b,d]and removeDirectInDirect[b,c,d]=>sameDirectState[a,c] } check addRemoveFile 4.3. Tệp trong thƣ mục

Cùng một thư mục không có hai tệp tin trùng nhau.

all b,c:FileState|(b.parentDirect = c.parentDirect)=>b.name!=c.name

}

check checkNameFileInDirect

Thêm một tệp tin thì tệp tin mới không trùng tên với tệp tin khác có trong thư mục

assert checkNameFileInDirectAdd{

all b,c:FileState,a:DirectState|b.parentDirect = a

and addFileInDirect[a,a,c]=>(b.name!=c.name and

b.path!=c.path) }

check checkNameFileInDirectAdd

Như vậy chúng ta đã mô hình hóa thành công hệ thống, mô tả được các hành động của hệ thống và kiểm tra được các ràng buộc có được thỏa mãn hay không. Đảm bảo tính đúng đắn của hệ thống. Sau khi chạy đánh giá mô hình của hệ thống. tất cả các vị từ đều chạy tốt. Không phát hiện ra phản ví dụ nào. Như vậy hệ thống thực tế của chúng ta không gặp vấn đề khi thực hiện quản lý phân quyền cho hệ thống.

KẾT LUẬN

1. Những việc đã làm đƣợc và những khó khăn gặp phải a. Kết quả đạt đƣợc

Sau khi hoàn thành các nội dung ớ trên chúng ta đã hoàn thành được mục tiêu ban đầu đặt ra.

 Hoàn thành việc nghiên cứu hệ thống quản lý truy cập tệp Windows.

 Hiểu được cách thức hoạt động của ACL. Từ đó tạo điều kiện cho việc mô hình hóa. Nghiên cứu thành công ngôn ngữ Alloy, hiểu các xây dựng một mô hình sử dụng ngôn ngữ Alloy. Từ đó, áp dụng vào xây dựng mô hình cho hệ thống quản lý truy cập tệp của Windows.

 Mô hình hóa được hệ thống quản lý truy cập tệp của Windows sử dụng ngôn ngữ Alloy. Từ mô hình đã mô hình hóa, chúng ta đã thực hiện phân tích, đánh giá sử dụng công cụ Alloy Analzer 4.2 để phân tích tự động mô hình. Kết quả chương trình chạy và không tìm được bấy cứ phản ví dụ nào, điều này chứng tỏ hệ thống thực tế là đáng tin cậy.

b. Những khó khăn hạn chế

Về bản chất thì luận văn cơ bản là hoàn thành được mục tiêu đề ra nhưng vẫn còn hạn chế như: đánh giá hệ thống còn chưa được chi tiết, đang còn sơ sài, mô hình đang còn dừng lại ở mức đơn giản

2. Mục tiêu phát triển

Ngôn ngữ mô hình hóa Alloy là một ngôn ngữ mô hình hóa mạnh mẽ, chúng ta có thể mở rộng và áp dụng sang các mô hình phân tích khác như: mô hình hóa và kiểm thử chính sách truy cập tệp hệ điều hành Linux. Hoặc chúng ta cũng có thể phát triển hệ thống theo hướng mô hình hóa và quản lý điều khiển tương tranh trong hệ điều hành Windows. Sử dụng tính năng phân tích tự động của bộ Alloy Analyzer 4.2 để phân tích mô hình và kiểm thử hệ thống điều khiển tương tranh của hệ điều hành Windows.

TÀI LIỆU THAM KHẢO

[1]. Software Abstractions: Logic, Language, and Analysis, Daniel Jackson, The MIT Press, Cambridge, Massachusetts, London, England, 2006

[2]. Mapping between Alloy specifications and database implementations, Alcino Cunha & Hugo Pacheco, DI-CCTC, Universidade do Minho

[3]. Russ o, A. Lecture Slid es of U ndergraduate Course Software E ngineering I t augh t at Imperial Col lege Lon don 20 07,

http://www .do c.ic.ac.uk/ ar3/le cture s/Sed/NewC ourse Struc ture.html (adsbygoogle = window.adsbygoogle || []).push({});

[4]. Alloy MIT Online Tutorial http://alloy.mit.e du/tutorial3/mainte xt-FSI.html [5]. Agnars son, G., Gree nlaw , R. Graph Theory: Mod eling, Applicat ion s, and

Algorithms, Pearson Education, 2006.

[6]. Frias, M.F., Pombo, C.L., Moscato, M.M.: Alloy Analyzer + PVS in the analysis and verification of Alloy specifications. In: TACAS. vol. 4424, pp. 587–601. Springer-Verlag (2007)

[7]. Frias, M.F.: Fork Algebras in Algebra, Logic and Computer Science, Advances in

Logic, vol. 2. World Scientific Publishing Co., Inc. (2002)

[8]. Daniel Jackson, Craig A. Damon, and Somesh Jha. Faster checking of software specifications. In Proceedings of ACM Conference on Principles of Programming Languages, St. Petersburg Beach, FL, January 1996, pp. 79–90.

[9]. Frias, M.F., Pombo, C.L., Moscato, M.M.: Alloy Analyzer + PVS in the analysis and verification of Alloy specifications. In: TACAS. vol. 4424, pp. 587–601. Springer-Verlag (2007)

[10]. Maddux, R.D.: Relation Algebras, Studies in Logic and the Foundations of Mathematics, vol. 150. Elsevier (2006)

[12]. Alloy MIT website, FAQ section: http://alloy.mit.edu/faq.php [13]. http://www.cs.bham.ac.uk/~bxb/UML2Alloy/

Một phần của tài liệu Kiểm định đặc tả alloy sử dụng chứng minh định lý logic vị từ bậc 1 (Trang 69 - 74)