(Luận văn thạc sĩ) kiểm chứng các thành phần java tương tranh

143 29 0
(Luận văn thạc sĩ) kiểm chứng các thành phần java tương tranh

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Trịnh Thanh Bình KIỂM CHỨNG CÁC THÀNH PHẦN JAVA TƯƠNG TRANH LUẬN ÁN TIẾN SỸ CÔNG NGHỆ THÔNG TIN Hà Nội - 2011 Mục lục Lời cam đoan i Lời cảm ơn ii Từ viết tắt vii Danh mục hình vẽ viii Danh mục bảng biểu x Mở đầu 1.1 Bối cảnh 1.2 Một số nghiên cứu liên quan 1.2.1 Kiểm chứng thiết kế 1.2.2 Kiểm chứng mã nguồn 1.3 Nội dung nghiên cứu 1.4 Cấu trúc luận án 1 3 9 9 10 11 11 12 13 14 15 17 17 17 Kiến thức sở 2.1 Kiểm chứng phần mềm 2.1.1 Kiểm chứng hình thức 2.1.1.1 Kiểm chứng mơ hình 2.1.1.2 Chứng minh định lý 2.1.2 Kiểm chứng thời điểm thực thi 2.2 Một số vấn đề chương trình tương tranh 2.3 Sự tương tranh Java 2.3.1 Mơ hình lưu trữ (JMM-Java Memory Model) 2.3.2 Ngơn ngữ mơ hình hóa cho Java (JML-Java Modeling guage) 2.3.3 Công cụ kiểm chứng mã Java (JPF-Java PathFinder) 2.4 Phương pháp hình thức với Event-B 2.4.1 Máy Ngữ cảnh 2.4.2 Sự kiện iii Lan 2.4.3 Phân rã kết hợp 2.4.4 Sinh mệnh đề cần chứng minh 2.5 Ngơn ngữ mơ hình hóa UML 2.5.1 Biểu đồ 2.5.2 Máy trạng thái giao thức 2.5.3 Biểu đồ thời gian 2.6 Lập trình hướng khía cạnh 2.6.1 Thực thi cắt ngang 2.6.2 Điểm nối 2.6.3 Hướng cắt 2.6.4 Mã hành vi 2.6.5 Khía cạnh 2.7 Kết luận Ràng buộc thứ tự tiến trình tương tranh 3.1 Giới thiệu 3.2 Đặc tả kiểm chứng ràng buộc thứ tự tiến trình tương tranh 3.2.1 Mô tả phương pháp 3.2.2 Vùng xung đột 3.2.3 Cung cấp tiêu thụ 3.2.4 Vấn đề đọc-ghi 3.2.5 Kết chứng minh 3.3 Kết luận Sự 4.1 4.2 4.3 đồng thuận hệ thống đa thành phần Giới thiệu Một số định nghĩa bổ đề Phương pháp đặc tả kiểm chứng thiết kế đồng thuận hệ thống đa thành phần 4.3.1 Đặc tả kiến trúc hệ thống 4.3.2 Giao thức 4.3.3 Giao thức song song 4.3.4 Hệ thống đa thành phần thực phép toán tập số nhị phân 4.3.4.1 Mô tả hệ thống 4.3.4.2 Đặc tả hệ thống với Event-B 4.3.4.3 Kết chứng minh 4.4 Phương pháp kiểm chứng đồng thuận hệ thống đa thành phần mức mã nguồn 4.4.1 Mô tả phương pháp 4.4.2 Sinh mã kiểm chứng JPF 4.4.3 Hệ thống cung cấp tiêu thụ 4.5 Kết luận iv 19 20 21 21 22 23 25 26 27 27 28 29 30 31 31 33 33 34 36 41 42 45 46 46 48 50 50 51 53 54 54 55 58 60 60 61 61 62 Sự tuân thủ thực thi đặc tả giao thức tương tác 5.1 Giới thiệu 5.2 Bài toán kiểm chứng tuân thủ thực thi đặc tả giao thức tương tác 5.3 Phương pháp đặc tả kiểm chứng tuân thủ thực thi đặc tả giao thức tương tác 5.3.1 Mô tả phương pháp 5.3.2 Đặc tả giao thức tương tác 5.3.2.1 Biểu thức quy mở rộng cho biểu diễn giao thức tương tác 5.3.2.2 Biểu đồ PSM cho biểu diễn giao thức tương tác 5.3.3 Sinh mã aspect 5.3.4 Đan mã aspect 5.4 Thực nghiệm 5.5 Kết luận 65 65 66 67 67 67 Ràng buộc thời gian thành phần chương trình tương tranh 6.1 Giới thiệu 6.2 Bài toán kiểm chứng ràng buộc thời gian thành phần tương tranh 6.3 Phương pháp đặc tả kiểm chứng ràng buộc thời gian 6.3.1 Mô tả phương pháp 6.3.2 Đặc tả ràng buộc thời gian 6.3.2.1 Biểu thức quy thời gian 6.3.2.2 Biểu đồ thời gian 6.3.3 Sinh mã aspect 6.4 Thực nghiệm 6.5 Kết luận 67 69 70 73 73 76 78 78 79 80 80 81 82 83 84 85 86 Kết luận 88 7.1 Các đóng góp luận án 88 7.2 Hướng phát triển 91 A Đặc tả ràng buộc thứ tự A.1 Vấn đề vùng xung đột A.1.1 Mơ hình khởi tạo A.1.2 Mơ hình làm mịn A.2 Vấn đề cung cấp tiêu thụ A.2.1 Mơ hình khởi tạo A.2.2 Mơ hình làm mịn A.3 Vấn đề đọc ghi A.3.1 Mơ hình khởi tạo tiến trình v tương tranh 104 104 104 105 107 107 108 111 111 A.3.2 Mơ hình làm mịn 112 B Đặc tả hệ thống đa thành phần thực phép toán nhị phân116 B.1 Đặc tả phép dịch bit 116 B.1.1 Ngữ cảnh phép dịch bit 116 B.1.2 Máy thực thi phép dịch bit 116 B.2 Đặc tả phép nhân xâu nhị phân với bit 118 B.2.1 Ngữ cảnh phép nhân xâu nhị phân với bit 118 B.2.2 Máy thực thi phép nhân xâu nhị phân với bit 118 B.3 Đặc tả phép cộng xâu nhị phân 119 B.3.1 Ngữ cảnh phép cộng xâu nhị phân 119 B.3.2 Máy thực thi phép cộng hai xâu nhị phân 120 B.4 Đặc tả hệ thống đa thành phần thực phép nhân hai xâu nhị phân 121 B.4.1 Ngữ cảnh hệ thống đa thành phần thực phép nhân hai xâu nhị phân 121 B.4.2 Máy thực thi hệ thống đa thành phần thực phép nhân hai xâu nhị phân 122 C Công cụ sinh mã kiểm chứng PVG C.1 Giới thiệu C.2 Hướng dẫn sử dụng C.2.1 Các yêu cầu C.2.2 Các chức C.2.3 Hướng dẫn thực C.2.3.1 Đặc tả giao thức C.2.3.2 Lưu mã Aspect C.2.3.3 Đan mã aspect vi 125 125 126 126 127 127 127 129 129 Thank you for evaluating AnyBizSoft PDF Splitter A watermark is added at the end of each output PDF file To remove the watermark, you need to purchase the software from http://www.anypdftools.com/buy/buy-pdf-splitter.html Từ viết tắt Dạng viết tắt Dạng đầy đủ Diễn giải AOP Aspect Oriented Programming Lập trình hướng khía cạnh CTL Computation Tree Logic Logic tính tốn IPC Interaction Protocol Giao thức tương tác JMM Java memory model Mơ hình lưu trữ Java JML Java modeling language Ngôn ngữ đặc tả cho Java JPF Java PathFinder Công cụ kiểm chứng mã Java LTL Linear Temporal Logic Logic thời gian tuyến tính MCS Multi-Component System Hệ thống đa thành phần PSM Protocol State Machine Máy trạng thái giao thức RE Regular Expression Biểu thức quy TD Timing Diagram Biểu đồ thời gian UML Unified Modeling Language Ngơn ngữ mơ hình hóa thống vii Danh sách hình vẽ 1.1 Kiểm chứng mức thiết kế cài đặt chương trình 1.2 Cấu trúc luận án 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 Kiểm chứng chương trình Java với JPF Cấu trúc tổng quát máy ngữ cảnh Cấu trúc tổng quát kiện Sự phân rã kết hợp Sự kiện sinh mệnh đề chứng minh để bảo toàn bất biến Biểu đồ biểu diễn giao thức rút tiền hệ thống ATM Máy trạng thái biểu diễn giao thức tương tác truy cập sở liệu Dạng trạng thái biểu đồ thời gian Dạng giá trị biểu đồ thời gian Biểu đồ thời gian dạng kết hợp 15 18 19 20 20 22 23 24 25 25 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 Kiến trúc tổng quát đặc tả tương tranh với Event-B Máy truy cập vào vùng xung đột Máy làm mịn để truy cập vào vùng xung đột Giao thức tương tác vấn đề cung cấp tiêu thụ Máy trừu tượng cho vấn đề cung cấp-tiêu thụ Máy làm mịn thứ cho vấn đề cung cấp-tiêu thụ Máy làm mịn thứ hai cho vấn đề cung cấp-tiêu thụ Máy trừu tượng cho vấn đề đọc-ghi Máy làm mịn cho vấn đề đọc-ghi Đặc tả kiện producer mơ hình khởi tạo làm mịn 35 35 36 37 38 39 40 41 43 44 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Sự kết hợp máy trừu tượng ngữ cảnh Giao thức biểu diễn UML Giao thức song song biểu diễn UML Đặc tả phép dịch bit UML Máy ngữ cảnh hệ thống Đặc tả kiện ShiftLeftIf thành phần bitshift Phương pháp kiểm chứng đồng thuận mức mã nguồn Kiểm chứng mã nguồn hệ thống cung cấp-tiêu thụ với JPF 50 52 53 55 57 59 60 63 5.1 Sơ đồ hoạt động hệ thống 68 5.2 Ví dụ chương trình cài đặt sai 74 viii 6.1 Biểu đồ thời gian giao thức rút tiền 6.2 Sinh mã aspect từ đặc tả ràng buộc thời gian 6.3 Ví dụ ca kiểm thử sai phương thức withdraw buộc thời gian thực thi [726082, 143658 ] nano giây C.1 C.2 C.3 C.4 80 84 với ràng 85 Giao diện cơng cụ sinh mã kiểm chứng PVG Khởi động PVG từ NetBeans Đặc tả giao thức tương tác hàng đợi tương tranh với UML Đặc tả giao thức hàng đợi tương tranh textbox bên trái mã AspectJ sinh bên phải C.5 Lưu mã aspect sinh C.6 Đan xen mã aspect với mã Java Eclipse ix 126 127 128 129 130 131 Danh sách bảng 2.1 Chứng minh định lý 10 2.2 Luật sinh mệnh đề cần chứng minh để bảo toàn bất biến 21 3.1 Kết chứng minh đặc tả ràng buộc thứ tự tiến trình tương tranh với RODIN 42 3.2 Mệnh đề cần chứng minh để bảo toàn bất biến kiện Producer chứng minh tự động 44 3.3 Mệnh đề cần chứng minh để bảo toàn bất biến kiện Producer chưa chứng minh tự động 45 4.1 Kết chứng minh đồng thuận hệ thống đa thành phần với RODIN 58 4.2 Mệnh đề cần chứng minh để bảo đảm tính định nghĩa kiện BitShiftLeftIf chứng minh tự động 59 4.3 Mệnh đề cần chứng minh để bảo toàn bất biến kiện BitShiftLeftIf chưa chứng minh tự động 60 5.1 Thực nghiệm kiểm chứng tuân thủ thực thi đặc tả giao thức tương tác 75 6.1 Thực nghiệm kiểm chứng ràng buộc thời gian 87 x 119 Phụ lục begin act1 : modr := ∅ act2 : pp := ∅ act3 : jj := end Event MultiplyWithOneDigit = when grd1 : jj ≤ size aa then act1 : pp(jj) := digit·aa(jj) act2 : jj := jj+1 end Event MultiplyWithOneDigit result = when grd1 : jj = size aa+1 then act1 : modr := pp //Get the result end END B.3 Đặc tả phép cộng xâu nhị phân B.3.1 Ngữ cảnh phép cộng xâu nhị phân An Event-B Specification of Sumctx Creation Date: 14 Oct 2010 @ 09 :12 :11 AM CONTEXT Sumctx CONSTANTS aa bb size aa size bb size ar AXIOMS axm1 : axm2 : axm3 : axm4 : aa ∈ N1 → bb ∈ N1 → size aa > size bb > 120 Phụ lục axm5 : size aa < size ar axm6 : size bb < size ar axm7 : size ar < size aa+size bb THEOREMS thm1 : ran(aa) = ∅ thm2 : ran(bb) = ∅ END B.3.2 Máy thực thi phép cộng hai xâu nhị phân An Event-B Specification of Summch Creation Date: 14 Oct 2010 @ 09 :12 :04 AM MACHINE Summch SEES Sumctx VARIABLES cc // Get temprorary result ar // Result of the addition operation carry hh INVARIANTS inv1 : inv2 : inv3 : inv4 : cc ∈ N1 → ar ∈ N1 → hh ∈ N carry ∈ N EVENTS Initialisation begin act1 : act2 : act3 : act4 : cc := ∅ ar := ∅ hh := carry := end Event AdditionResult = when grd1 : hh = size ar+1 then act1 : ar := cc end Event AdditionIf = // Get result 121 Phụ lục when grd1 : hh ≤ size ar grd2 : hh = size ar∧carry = then act1 : cc(hh+1) := end Event AdditionElse = when grd1 : hh < size ar grd2 : hh = size ar∧carry = then act1 : cc(hh) := (aa(hh)+bb(hh)+carry)mod2 act2 : carry := (aa(hh)+bb(hh)+carry)/2 act3 : hh := hh+1 end END B.4 Đặc tả hệ thống đa thành phần thực phép nhân hai xâu nhị phân B.4.1 Ngữ cảnh hệ thống đa thành phần thực phép nhân hai xâu nhị phân An Event-B Specification of Masctx Creation Date: 14 Oct 2010 @ 11 :39 :32 AM CONTEXT Masctx CONSTANTS aa bb size aa size bb size res size pp numShift AXIOMS axm1 : aa ∈ N1 → axm2 : bb ∈ N1 → axm3 : size aa > 122 Phụ lục axm4 : axm5 : axm6 : axm7 : size bb > size aa < size res size bb < size res numShift < size pp THEOREMS thm1 : ran(aa) = ∅ thm2 : ran(bb) = ∅ END B.4.2 Máy thực thi hệ thống đa thành phần thực phép nhân hai xâu nhị phân An Event-B Specification of Masmch Creation Date: 14 Oct 2010 @ 11 :39 :36 AM MACHINE Masmch SEES Masctx VARIABLES ii jj cc res ppr kk modr slr hh carry INVARIANTS inv1 : ii ∈ N inv2 : jj ∈ N inv3 : cc ∈ N1 → inv4 : res ∈ N1 → inv5 : ppr ∈ N1 → inv6 : kk ∈ N inv7 : modr ∈ N1 → inv8 : slr ∈ N1 → inv9 : hh ∈ N inv10 : carry ∈ N EVENTS Initialisation 123 Phụ lục begin act1 : ii := act2 : jj := act3 : slr := ∅ act4 : kk := size pp act5 : cc := ∅ act6 : hh := act7 : ppr := ∅ act8 : carry := act9 : modr := ∅ act10 : res := ∅ end Event Multiply2BinaryNumbers = when grd1 : ii = size bb+1 then act1 : res := cc end Event MultiplyWithOneDigit = when grd1 : jj < size aa then act1 : ppr(jj) := bb(ii)·aa(jj) act2 : jj := jj+1 end Event MultiplyWithOneDigit result = when grd1 : jj < size aa+1 then act1 : modr := ppr act2 : kk := size pp //Activate shiftLeft end Event ShiftLeftIf = when grd1 : kk > 0∧kk ≤ size pp grd2 : kk > numShift then act1 : modr(kk) := modr(kk−numShift) act2 : kk := kk−1 Phụ lục end Event ShiftLeftElse = when grd1 : kk > 0∧kk ≤ size pp grd2 : kk ≤ numShift then act1 : modr(kk) := act2 : kk := kk−1 end Event ShiftLeftResult = when grd1 : kk = then act1 : slr := modr act2 : hh := //Activate the addition event end Event AdditionIf = when grd1 : hh ≤ size res grd2 : hh = size res∧carry = then act1 : cc(hh+1) := end Event AdditionElse = when grd1 : hh ≤ size res grd2 : ¬ (hh = size res∧carry = 0) then act1 : cc(hh) := (cc(hh)+slr(hh)+carry)mod2 act2 : carry := (cc(hh)+slr(hh)+carry)/2 act3 : hh := hh+1 end Event AdditionalResult = when grd1 : hh = size res+1 then act1 : res := cc act2 : jj := act3 : ii := ii+1 end END 124 Phụ lục C Công cụ sinh mã kiểm chứng PVG C.1 Giới thiệu PVG - Protocol Verification Generator công cụ sinh mã kiểm chứng AspectJ từ đặc tả biểu đồ UML biểu thức quy Mã kiểm chứng sau đan với chương trình Java để kiểm chứng tn thủ chương trình đặc tả Hiện PVG hỗ trợ kiểm chứng tuân thủ chương trình so với đặc tả giao thức tương tác thành phần (thứ tự thực phương thức lớp thành phần) Hoặc ràng buộc thời gian thành phần chương trình tương tranh Trong đó, giao thức tương tác đặc tả máy trạng thái giao thức, biểu đồ UML biểu thức quy mở rộng Ràng buộc thời gian đặc tả biểu đồ thời gian UML biểu thức quy 125 126 Phụ lục Hình C.1 – Giao diện cơng cụ sinh mã kiểm chứng PVG C.2 C.2.1 Hướng dẫn sử dụng Các yêu cầu Môi trường thực thi Java JRE phiên 1.5 cao hơn, Download địa http://java.sun.com Cơng cụ PVG Download địa : http://www.mediafire.com/?uz9sw1u9gl0hez7 Để khởi động công cụ PVG hệ điều hành Window cần nhắp đúp chuột vào file có phần mở rộng jar Trong Unix, sử dụng lệnh : java –jar PVG.jar PVG khởi động cách import mã nguồn từ mơi trường phát triển tích hợp IDE NetBeans hay Eclipse (có thể Download Netbeans, Eclipse địa http://netbeans.org/downloads/, http://www.eclipse.org/downloads/) sau chạy file ProtocolGeneratorApp.java (Hình C.2) Giao diện cơng cụ PVG sau khởi động Hình C.1 127 Phụ lục C.2.2 Các chức Phiên công cụ PVG gồm bốn chức (Hình C.1) – Open XMI : Đọc đặc tả từ biểu đồ UML biểu đồ máy trạng thái giao thức, biểu đồ biểu đồ thời gian, – Write protocol : Đặc tả trực tiếp giao thức tương tác ràng buộc thời gian biểu thức quy file dạng txt, – Generate Aspect : Sinh mã aspect từ đặc tả trên, – Save Aspect : Lưu mã aspect dạng file có phần mở rộng *.aj, file đan với chương trình Java để kiểm chứng tuân thủ chương trình đặc tả Hình C.2 – Khởi động PVG từ NetBeans C.2.3 Hướng dẫn thực C.2.3.1 Đặc tả giao thức Giả sử giao thức tương tác hàng đợi tương tranh (Concurrent Queue - CQ) với bốn phương thức cài đặt cho phép gọi lúc luồng Phụ lục 128 cung cấp Producer đẩy phần tử vào hàng đợi, nhiều luồng Consumer thao tác với phần tử hàng đợi (Hình 3.4 , Chương 5) Giao thức đặc tả máy trạng thái giao thức UML Hình C.3 Hình C.3 – Đặc tả giao thức tương tác hàng đợi tương tranh với UML Hình C.4 mơ tả giao thức tương tác hàng đợi tương tranh mã aspect sinh Trong đó, với phương thức đặc tả giao thức mã aspect sinh chứa biến trạng thái, pointcut tương ứng Trước phương thức thực câu lệnh before( ) pointcut kiểm tra trạng thái tiền điều kiện mà phải thỏa mãn Sau phương thức thực xong câu lệnh after( ) pointcut kiểm tra mệnh đề hậu điều kiện biến trạng thái gán trạng thái phương thức Mỗi có vi phạm giao thức hàm getSourceLocation() getSignature() aspect sinh thơng báo xác vị trí phương thức gọi gây vi phạm Một trạng thái đặc biệt ST START aspect sinh tương ứng với trạng thái phương thức thực giao thức Khi phương thức cuối giao thức thực 129 Phụ lục trạng thái gán trạng thái đặc biệt để bảo đảm giao thức kiểm chứng Hình C.4 – Đặc tả giao thức hàng đợi tương tranh textbox bên trái mã AspectJ sinh bên phải C.2.3.2 Lưu mã Aspect Sau sinh mã AspectJ từ đặc tả nó, chức save cho phép người sử dụng lưu lại mã aspect sinh file riêng để đan với chương trình Java cần kiểm chứng Các file có phần mở rộng *.aj, theo định dạng ngơn ngữ lập trình hướng khía cạnh với AOP (Hình C.5) C.2.3.3 Đan mã aspect AspectJ cho phép đan xen mã aspect với chương trình Java ba mức khác : mức mã nguồn, mã bytecode thời điểm nạp chương trình chương trình gốc chuẩn bị thực Đan mức mã nguồn, AspectJ nạp mã aspect Java mức mã nguồn (.aj java), sau thực biên dịch để sinh 130 Phụ lục Hình C.5 – Lưu mã aspect sinh mã đan xen bytecode, dạng class Đan xen mức mã bytecode, AspectJ dịch lại sinh mã dạng class từ các mã aspect Java biên dịch dạng (.class) Đan xen thời điểm nạp chương trình (load time weaving), mã aspect Java dạng class cung cấp cho máy ảo Java (JVM) Khi JVM nạp chương trình để chạy, nạp lớp AspectJ thực đan mã chạy chương trình Ví dụ đan xen mức mã nguồn eclipse NetBeans (Hình C.6) thực câu lệnh – Yêu cầu : – Mã nguồn : file chương trình nguồn (chương trình cần kiểm chứng) *.java file chứa mã aspect sinh dạng *.aj – Thiết lập môi trường : – PATH : /bin – CLASSPATH : /lib/aspectjrt.jar – Thực : – Dịch đan xen : – ajc ConcurrentQueueJ.java ConcurrentQueueA.aj 131 Phụ lục Hình C.6 – Đan xen mã aspect với mã Java Eclipse – Chạy kiểm tra : – aj ConcurrentQueueJ hoặc, – java ConcurrentQueueJ Thank you for evaluating AnyBizSoft PDF Splitter A watermark is added at the end of each output PDF file To remove the watermark, you need to purchase the software from http://www.anypdftools.com/buy/buy-pdf-splitter.html Thank you for evaluating AnyBizSoft PDF Merger! To remove this page, please register your program! Go to Purchase Now>> AnyBizSoft PDF Merger  Merge multiple PDF files into one  Select page range of PDF to merge  Select specific page(s) to merge  Extract page(s) from different PDF files and merge into one ... trình Java tương tranh Tuy nhiên phương pháp chưa kiểm chứng tương tác (giao thức tương tác) tiến trình (thành phần) tương tranh nhằm bảo đảm tính quán liệu chia sẻ liệu đầu vào-đầu Sự tương. .. pháp kiểm chứng tuân thủ cài đặt chương trình tương tranh so với đặc tả giao thức tương tác Chương trình bày phương pháp kiểm chứng ràng buộc thời gian thành phần song song chương trình tương tranh. .. phương pháp kiểm chứng phần mềm phương pháp kiểm chứng hình thức kiểm chứng thời điểm thực thi chương trình 2.1.1 Kiểm chứng hình thức 2.1.1.1 Kiểm chứng mơ hình Phương pháp kiểm chứng mơ hình (model

Ngày đăng: 05/12/2020, 11:16

Mục lục

  • Danh sách hình vẽ

  • 1.2 Một số nghiên cứu liên quan

  • 1.2.1 Kiểm chứng thiết kế

  • 1.2.2 Kiểm chứng mã nguồn

  • 1.3 Nội dung nghiên cứu

  • 1.4 Cấu trúc luận án

  • Chương 2. Kiến thức cơ sở

  • 2.1 Kiểm chứng phần mềm

  • 2.1.1 Kiểm chứng hình thức

  • 2.1.2 Kiểm chứng tại thời điểm thực thi

  • 2.2 Một số vấn đề trong chương trình tương tranh

  • 2.3 Sự tương tranh trong Java

  • .3.1 Mô hình lưu trữ (JMM-Java Memory Model)

  • 2.3.3 Công cụ kiểm chứng mã Java (JPF-Java PathFinder)

  • 2.4 Phương pháp hình thức với Event-B

  • 2.4.1 Máy và Ngữ cảnh

  • 2.4.3 Phân rã và kết hợp

  • 2.4.4 Sinh mệnh đề cần chứng minh

  • 2.5 Ngôn ngữ mô hình hóa UML

  • 2.5.1 Biểu đồ tuần tự

Tài liệu cùng người dùng

Tài liệu liên quan