Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 53 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
53
Dung lượng
1,36 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Lê Hồng Phong ĐẶC TẢ VÀ KIỂM CHỨNG CÁC PHẦN MỀM TƯƠNG TRANH KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ thơng tin HÀ NỘI - 2010 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Lê Hồng Phong ĐẶC TẢ VÀ KIỂM CHỨNG CÁC PHẦN MỀM TƯƠNG TRANH Lê Hồng Phong KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Cơng nghệ thơng tin CÁC PHẦN MỀM ĐẶC Ngành: TẢ VÀ KIỂM CHỨNG TƯƠNG TRANH Cán hướng dẫn: Ts Phạm Ngọc Hùng Cán đồng hướng dẫn: Ths Đặng Việt Dũng KHÓA LUẬN TỐT NGHIỆP HỆ ĐẠI HỌC CHÍNH QUY HÀ NỘI - 2010 Ngành: công nghệ phần LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh LỜI CẢM ƠN Lời em xin bày tỏ lòng biết ơn sâu sắc đến thầy Phạm Ngọc Hùng thầy Đặng Việt Dũng tận tình hướng dẫn, bảo em trình thực đề tài Em xin chân thành cảm ơn thầy cô giáo Khoa Công nghệ Thông tin, trường Đại học Công Nghệ, Đại học Quốc Gia Hà Nội tận tình giảng dạy, trang bị cho em kiến thức quý báu suốt thời gian qua Con xin chân thành cảm ơn ông bà, cha mẹ động viên, ủng hộ suốt thời gian học tập thực khóa luận tốt nghiệp Tôi xin cảm ơn quan tâm, giúp đỡ ủng hộ anh chị em, bạn bè trình thực khóa luận Mặc dù cố gắng hồn thành khóa luận phạm vi khả cho phép chắn không tránh khỏi thiếu sót Em mong nhận thơng cảm, góp ý tận tình bảo q thầy cô bạn Hà Nội, ngày 15 tháng năm 2010 Sinh viên thực Lê Hồng Phong i LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh TÓM TẮT Phần mềm tương tranh, phần mềm ứng dụng rộng rãi hệ thống nhúng hệ thống điều khiển Chúng có vai trị vơ quan trọng việc điều khiển hệ thống Chỉ cần lỗi nhỏ phần mềm gây hậu vơ nghiêm trọng hệ thống trực tiếp gián tiếp ảnh hưởng đến sống người Chính phần mềm tương tranh phải kiểm chứng để giảm thiểu tối đa lỗi chương trình Vì lý đó, đề tài “Đặc tả kiểm chứng phần mềm tương tranh” đề cập tới phương pháp hình thức, lý thuyết máy hữu hạn trạng thái (Finite State Process, FSP) sử dụng máy hữu hạn trạng thái để đặc tả thiết kế mã nguồn phần mềm tương tranh Từ sử dụng cơng cụ phân tích máy hữu hạn trạng thái để kiểm chứng xem thiết kế mã nguồn phần mềm có lỗi chạy theo u cầu khơng Do thời gian có hạn nên phần thực nghiệm khóa luận em thực kiểm chứng applet viết Java Thiết kế toàn đặc tả sẵn FSP Nhiệm vụ em kiểm chứng xem thiết kế có lỗi xác hay không chuyển mã nguồn Java applet thành FSP để kiểm chứng xem mã nguồn có chạy theo thiết kế hay không ii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh MỤC LỤC Chương 1: Giới thiệu 1.1 Nhu cầu thực tế lý thực đề tài 1.2 Mục tiêu đề tài 1.3 Nội dung khóa luận Chương 2: Các khái niệm 2.1 Phương pháp mô hình hóa 2.2 FSP 2.2.1 Khái niệm FSP .5 2.2.2 Các thành phần FSP 2.2.3 Quy trình 2.3 LTS 11 2.3.1 LTS 11 2.3.2 Deadlock 13 2.3.2.1 Khái niệm 13 2.3.2.2 Phân tích Deadlock 14 2.3.3 Thuộc tính An toàn 14 2.3.4 Thuộc tính Liveness 15 2.4 Công cụ LTSA 15 2.5 Kết luận 16 Chương 3: Kiểm chứng thiết kế 17 3.1 Đặc tả thiết kế FSP 17 3.3 Kiểm chứng thiết kế LTSA .23 3.3.1 Giao diện công cụ LTSA 23 3.3.2 Check safety .24 3.3.3 Check Progress 25 3.3.4 Compile 25 3.3.5 LTS Analiser 27 3.3.6 LTSA Animator 28 3.4 Kết luận 30 Chương 4: Kiểm chứng cài đặt 31 vi LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh 4.1 Phương pháp để kiểm chứng cài đặt 31 4.2 Cách chuyển từ mã nguồn Java sang FSP 31 4.3 Ứng dụng để chuyển mã nguồn toán “SingleLandBridge” 34 4.5 Kiểm chứng cài đặt 36 4.6 Kết luận 41 Chương 5: Kết luận 42 Tài liệu tham khảo .43 vii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh Danh mục hình vẽ Hình 2.1: Nghiên cứu khí động học mơ hình tơ Hình 2.2.1a: Mơ hình hóa hành trình bay máy bay Hình 2.2.2a: Máy trạng thái DRINKS Hình 2.2.2b: Máy trạng thái Gate Hình 2.3.1c: Tiến trình BOMP .10 Hình 2.3.1d: Sự tổng hợp LOOP 10 Hình 2.3.1e : Sự tổng hợp song song hai tiến trình 11 Hình 2.3.1a: Máy trạng thái PHIN 12 Hình 2.3.1b: Máy trạng thái FORK 13 Hình 2.3.2.1a: Bữa tối triết gia 13 Hình 2.3.2.1b: Deadlock 14 Hình 2.4a: Mơ hình hành động tơ 16 Hình 2.4b: LTSA animator điều khiển hành động mô hình 2.4a 16 Hình 3.1: Mơ tả ô tô qua cầu hẹp 18 Hình 3.3.1: Giao diện cơng cụ LTSA 23 Hình 3.3.2: Kết hiển thị sau check safety .24 Hình 3.3.3: Kết hiển thị check progress .25 Hình 3.3.4: Kết hiển thị biên dịch đoạn mã LTS 26 Hình 3.3.5: LTS Analiser SingleLaneBridge 27 Hình 3.3.6: Animator SingleLandBridge 29 Hình 4.5a: Mở tệp SafeBridge công cụ LTSA 37 viii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh Hình 4.5b: Check safety phương thức redExit 38 Hình 4.5c: Check prgress phương thức redExit 39 Hình 4.5d: Máy trạng thái REDEXIT .40 Hình 4.5e: Máy trạng thái REDEXIT thiết kế 41 ix LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh Danh mục bảng biểu Bảng 4.3.2a Những toán tử tương đương FSP Java 32 Bảng 4.3.2b: Các thành phần chuyển từ Java sang FSP: 32 x LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh BẢNG KÝ TỰ VIẾT TẮT Ký tự viết tắt Ý nghĩa FSP (Finite State Process) Máy hữu hạn trạng thái LTS (Labelled Transition System) Máy dịch chuyển trạng thái có gán nhãn LTSA (LTS Analyzer) Cơng cụ hỗ trợ kiểm chứng với đặc tả LTS vii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh Hình 3.3.6: Animator SingleLandBridge Các hành động Animator tương ứng với hành động mơ hình Hành động chọn Animator điều khiển hoạt động mơ hình LTSA Khi hành động thực thi, mô hình có hành động thự chuyển thành màu đỏ phần bên trái cửa sổ LTSA Hành động thực thi thể màu đỏ mơ hình phần bên phải cửa sổ LTSA Toàn hành động thiết kế Animator ghi lại, nhờ LTSA kiểm tra tồn hành động xảy thiết kế Với cách kiểm tra mơ vậy, dễ dàng kiểm tra xem thiết kế có với yêu cầu tốn đặt khơng? Bằng việc lựa chọn tất hành động xảy animator kiểm tra toàn hoạt động hệ thống tương tranh thiết kế Qua kết luận thiết kế có hoạt động xác hay khơng Cụ thể thiết 29 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh kế kiểm chứng này, em kiểm tra hoạt động xảy thiết kế thấy thiết kế hoạt động theo yêu cầu 3.4 Kết luận Trong chương này, tìm hiểu cách đặc tả thiết kế FSP dùng công cụ LTSA để kiểm chứng thiết kế Đối với ví dụ cụ thể mà sử dụng để kiểm chứng, thiết kế đáp ứng yêu cầu đặt 30 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh Chương 4: Kiểm chứng cài đặt Trong chương 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 hoạt động theo thiết kế hay không? 4.1 Phương pháp để kiểm chứng cài đặt Từ trước tới quen với cách phương pháp kiểm thử quen thuộc như: kiểm thử hộp trắng, kiểm thử hộp đen… Các phương pháp chương trình có lỗi hay không Tuy nhiên chúng chương trình liệu có cịn lỗi hay khơng Hệ thống tương tranh có nhiều luồng xử lý lúc, có trường hợp xung đột luồng mà phương pháp kiểm thử không kiểm tra Chính địi hỏi phải có phương pháp kiểm chứng trực quan, phương pháp hình thức thể hoạt động nhỏ phần mềm cách đặc tả chi tiết câu chữ mã nguồn, nhờ kiểm chứng phần mềm cách trọn vẹn Khi có thiết kế đắn xác việc kiểm chứng phần mềm cần đối chiếu xem chương trình có hoạt động xác theo thiết kế hay không Cách đơn giản biên dịch chương trình thành ngơn ngữ mà thiết kế Cụ thể chuyển chương trình thành quy trình FSP sử dụng cơng cụ hỗ trợ phân tích LTSA Bằng việc kiểm tra xem quy trình có thỏa mãn thiết kế hay khơng? Chúng ta biết phần mềm có thỏa mãn thiết kế? Ở chương 3, nghiên cứu thiết kế toán “SingleLandBridge” Mã nguồn chương trình viết Java Chúng ta tìm hiểu phương pháp chuyển mã nguồn Java thành FSP thực hành chuyển mã nguồn toán “SingleLandBridge” thành FSP 4.2 Cách chuyển từ mã nguồn Java sang FSP Chúng ta tìm hiểu mối tương quan Java FSP để chuyển từ mã nguồn Java thành FSP 31 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh Bảng 4.3.2a Những toán tử tương đương FSP Java Java FSP ++ (cộng 1) inc (trừ 1) dec = (bằng) = | (hoặc) | ! (not) ! == (so sánh bằng) == > (lớn hơn) > < (nhỏ hơn) < & (và) & Tuy nhiên FSP thực phép toán với số nguyên Bảng 4.3.2b: Các thành phần chuyển từ Java sang FSP: ++a a.inc a a.dec a = true a.write[true] a = false a.write[false] if(a == 0) … a.read[v:Int] -> if v = then … if(a > 0) … a.read[v:Bool] -> if v > then … while (!a) … WHILE = (a.read[v:Bool] -> if(!v) then… 32 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh Bây giờ, lấy ví dụ để nghiên cứu cách chuyển từ Java sang FSP: Đây hàm mã nguồn Java tốn “SingleLandBridge” lấy từ trang web[3] thức sách Concurrency: State models and Java programes second edition[1]: synchronized void redExit(){ nred; if (nred==0) notifyAll(); } Phương pháp chuyển mã nguồn Java sang FSP chuyển câu, chữ mã Java thành FSP Tên hàm Java gán nhãn trạng thái bắt đầu FSP - Các phương thức Java trạng thái gán nhãn tương ứng với tên phương thức Java - Vòng lặp Java trạng thái gán nhãn tương ứng với tên vòng lặp Java - Các biến Java thành hành động FSP Đây FSP đặc tả mã nguồn Java trên: const N = range Int = N set VarAlpha = {read[Int],dec} REDEXIT 33 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh = (acquire -> redExit -> nred.dec // nred > nred.read[v:Int] // if (nred==0) notifyAll() -> if (v == 0) then (notifyAll -> CONTINUE) else CONTINUE ), CONTINUE = (release -> REDEXIT) 4.3 Ứng dụng để “SingleLandBridge” chuyển mã nguồn toán Chúng ta chuyển hàm lớp SafeBridge lớp SingleLandBridge lấy từ trang web[3] thức sách “Concurrency: State Models & Java Programs second edition[1]”, mã nguồn giải toán “SingleLandBridge” Đây mã nguồn Java lớp SafeBridge: class SafeBridge extends Bridge { private int nred = 0; private int nblue = 0; synchronized void redEnter() throws InterruptedException { while (nblue>0) wait(); ++nred; } synchronized void redExit(){ 34 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh nred; if (nred==0) notifyAll(); } synchronized void blueEnter() throws InterruptedException { while (nred>0) wait(); ++nblue; } synchronized void blueExit(){ nblue; if (nblue==0) notifyAll(); } Ví dụ đặc tả phương thức redExit LTS const N = range Int = N set VarAlpha = {read[Int],dec} REDEXIT = (acquire 35 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh -> redExit -> nred.dec -> nred.read[v:Int] -> if (v == 0) then (notifyAll -> CONTINUE) else CONTINUE ), CONTINUE = (release -> REDEXIT) 4.5 Kiểm chứng cài đặt Sau chuyển xong mã nguồn thành FSP, tiến hành kiểm tra FSP Các bước kiểm tra giống với cách kiểm tra thiết kế chương Chúng ta tiến hành kiểm chứng mẫu phương thức redExit: 36 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh Hình 4.5a: Mở tệp SafeBridge công cụ LTSA Chúng ta tiến hành kiểm chứng phương thức redExit: 37 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh Check safety: Hình 4.5b: Check safety phương thức redExit Phương thức khơng có lỗi khơng có deadlock 38 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh Check progress: Hình 4.5c: Check prgress phương thức redExit Phương thức khơng có progess vi phạm Như phương thức hồn tồn khơng chứa lỗi, tiến hành kiểm tra xem phương thức có với thiết kế không 39 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh Compile: Hình 4.5d: Máy trạng thái REDEXIT Mơ tả ngắn gọn ý nghĩa mơ hình: - Một xe đỏ rời cầu (redExit) số xe đỏ cầu giảm (nred.dec) - Nếu không cịn xe đỏ cầu (nred.read[0]) thơng báo cho xe khác biết (notifyAll) - Nếu xe đỏ cầu (nred.read[1 3]) xe sau lại tiếp tục rời cầu Ta tiến hành kiểm tra máy trạng thái REDEXIT với máy trạng thái tương ứng thiết kế: 40 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh Hình 4.5e: Máy trạng thái REDEXIT thiết kế Qua so sánh hai mơ hình ta thấy mơ hình phương thức redExit hoàn toàn thỏa mãn thiết kế Đối với phương thức lại ta tiến hành đặc tả kiểm chứng tương tự phương thức redExit Sau kiểm chứng toàn phương thức ta có kết kiểm chứng đầy đủ cài đặt applet 4.6 Kết luận Với việc biên dịch tỷ mỉ mã nguồn Java thành FSP trên, kiểm tra cách tồn diện chương trình cài đặt Từng hàm Java kiểm tra cách trực quan, nhờ tìm lỗi tiềm ẩn khó phát sai sót so với thiết kế 41 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh Chương 5: Kết luận Trong khóa luận, em tìm hiểu khái niệm phương pháp mơ hình hóa, máy hữu hạn trạng thái, máy dịch chuyển trạng thái có gán nhãn cách sử dụng công cụ LTSA Từ kiến thức thu được, thực kiểm chứng phần mềm tương tranh cách đặc tả thiết kế mã nguồn phần mềm FSP sử đụng công cụ LTSA để kiểm chứng Phương pháp cho kết kiểm chứng độ an toàn phần mềm cao Hiện tại, em ứng dụng để kiếm chứng applet chuyển mã nguồn phần mềm thành FSP phải chuyển xác câu chữ Tuy nhiên, với đội ngũ kiểm thử viên đông đảo chuyên nghiệp hồn tồn ứng dụng kiểm chứng phần mềm lớn có độ phức tạp cao 42 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh Tài liệu tham khảo Tài liệu tiếng Anh [1] Jeff Magee and Jeff Kramer: Concurrency: State Models & Java Programs second edition, sách điện tử, 2006 [2] Dr Richard S Hall, concurrent programing, slide, 2001 Websites: [3] http://www.doc.ic.ac.uk/~jnm/book/book_applets/concurrency.html [4] http://www.doc.ic.ac.uk/~jnm/book/ltsa/LTSA_applet.html 43 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... Hồng Phong ĐẶC TẢ VÀ KIỂM CHỨNG CÁC PHẦN MỀM TƯƠNG TRANH Lê Hồng Phong KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Cơng nghệ thơng tin CÁC PHẦN MỀM ĐẶC Ngành: TẢ VÀ KIỂM CHỨNG TƯƠNG TRANH Cán hướng... để đặc tả kiểm chứng phần mềm địi hỏi tính an tồn cao, phần mềm tương tranh Cách tiếp cận khóa luận là: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương. .. luanvanchat@agmail.com Đặc tả kiểm chứng phần mềm tương tranh 3.3 Kiểm chứng thiết kế LTSA Sau đặc tả xong thiết kế toán FSP tiến hành kiểm chứng thiết kế cách sử dụng công cụ hỗ trợ kiểm chứng LTSA để