1. Trang chủ
  2. » Luận Văn - Báo Cáo

Mô hình hóa và kiểm chứng các chương trình phần mềm hướng khía cạnh

54 571 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 54
Dung lượng 1,17 MB

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM NHƯ UYỂN MÔ HÌNH HÓA VÀ KIỂM CHỨNG CÁC CHƯƠNG TRÌNH PHẦN MỀM HƯỚNG KHÍA CẠNH LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN HÀ NỘI - 2016 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM NHƯ UYỂN MÔ HÌNH HÓA VÀ KIỂM CHỨNG CÁC CHƯƠNG TRÌNH PHẦN MỀM HƯỚNG KHÍA CẠNH Ngành: Công nghệ Thông tin Chuyên ngành: Kỹ thuật Phần mềm Mã số: 60480103 NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Trương Ninh Thuận HÀ NỘI - 2016 LỜI CAM ĐOAN Tôi xin cam đoan toàn nội dung luận văn tìm hiểu, nghiên cứu, tham khảo tổng hợp từ nguồn tài liệu khác làm theo hướng dẫn người hướng dẫn khoa học Các nguồn tài liệu tham khảo, tổng hợp có nguồn gốc rõ ràng trích dẫn theo quy định Tôi xin chịu hoàn toàn trách nhiệm lời cam đoan Nếu có điều sai trái, xin chịu hình thức kỷ luật theo quy định Hà Nội, tháng 05 năm 2016 Người cam đoan Phạm Như Uyển LỜI CẢM ƠN Đầu tiên xin gửi lời cảm ơn sâu sắc tới thầy PGS.TS Trương Ninh Thuận, Bộ môn Công nghệ Phần mềm, Khoa Công nghệ Thông tin, trường Đại học Công Nghệ, Đại học Quốc Gia Hà Nội – người định hướng đề tài tận tình hướng dẫn bảo suốt trình thực luận văn tốt nghiệp Tôi xin trân trọng cảm ơn quý thầy cô 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, truyền đạt kiến thức quý báu suốt trình học làm tảng cho thực luận văn Cám ơn anh, chị nghiên cứu sinh bạn học viên Khoa Công nghệ Thông tin Các anh chị bạn giúp đỡ, ủng hộ nhiều đóng góp nhiều ý kiến quý báu, qua đó, giúp hoàn thiện luận văn tốt Mặc dù nỗ lực, cố gắng hẳn luận văn nhiều thiếu sót Tôi mong nhận nhiều ý kiến đánh giá quý, phê bình quý thầy cô, anh chị bạn Một lần xin chân thành cảm ơn! Hà Nội, tháng năm 2016 Phạm Như Uyển MUC LỤC  MUC LỤC DANH SÁCH CÁC HÌNH VẼ DANH SÁCH CÁC THUẬT NGỮ VÀ KHÁI NIỆM CHƯƠNG 1: ĐẶT VẤN ĐỀ 1.1 Sự cần thiết đề tài 1.2 Nội dung đề tài 1.3 Đóng góp luận văn 10 1.4 Cấu trúc luận văn 10 CHƯƠNG EAOP VÀ EVENT-B 12 2.1 Các đặc điểm lập trình hướng khía cạnh 12  2.1.1 Quản lý concerns hệ thống 15  2.1.2 Phương pháp luận AOP 18  2.1.3 Ưu điểm AOP 19  2.1.4 Nhược điểm AOP 19 2.2 Lập trình hướng khía cạnh dựa kiện 20  2.3 2.2.1 Công cụ EAOP: Kiến trúc thực 21 Event-B 27  2.3.1 Máy ngữ cảnh 27  2.3.2 Sự kiện 30  2.3.3 Phân rã kết hợp 31 2.3.4 Công cụ 31  CHƯƠNG 3: MÔ HÌNH HÓA VÀ KIỂM CHỨNG CÁC PHẦN MỀM LẬP TRÌNH HƯỚNG KHÍA CẠNH 33 3.1 Trình bày EAOP Event-B 33 3.2 Mô hình hóa hệ thống EAOP sử dụng Event-B 34 3.3 Kiểm chứng thuộc tính hệ thống 34 CHƯƠNG 4: PHƯƠNG PHÁP THỰC NGHIỆM 36 KẾT LUẬN 45 TÀI LIỆU THAM KHẢO 47 PHỤ LỤC 49 DANH SÁCH CÁC HÌNH VẼ Hình 1: Mô hình ánh xạ từ concern hệ thống sang phương pháp lập trình truyền thống 16 Hình 2: Các mô đun yêu cầu logging phải nhúng đoạn mã để gọi logging API 17 Hình 3: Giải concern hệ thống bằng phương pháp AOP 18 Hình 4: Các giai đoạn phát triển sử dụng phương pháp AOP 19 Hình 5: Kiến trúc EAOP 20 Hình 6: Ví dụ đơn giản hóa việc thực chương trình 22 Hình 7: Cây khía cạnh kiện truyền 25 Hình 8: Cấu trúc máy ngữ cảnh 28 Hình 9: Mối quan hệ thành phần máy ngữ cảnh 28 Hình 10: Cấu trúc máy chi tiết 29 Hình 11: Cấu trúc ngữ cảnh chi tiết 30 Hình 12: Rodin GUI 31 Hình 13: Mô hình kiến trúc Rodin 32 Hình 14: Phương pháp mô hình hóa kiểm chứng chương trình hướng khía cạnh 37 Hình 15: Lớp Transaction 38 Hình 16: Lớp Exchange 38 Hình 17: Khía cạnh updatetr 39 Hình 18: Sự kiện chuyển tiền gửi máy ATM 39 Hình 19: Kết minh chứng 40 Hình 20: Lớp Exchange sửa đổi 40 Hình 21: Event-B đặc tả chương trình 42 Hình 22: Đặc tả Event-B khía cạnh 43 Hình 23: Kết thực 43 Hình 24: Kết bảng Statistics 44 DANH SÁCH CÁC THUẬT NGỮ VÀ KHÁI NIỆM THUẬT NGỮ AOP KHÁI NIỆM Aspect Oriented Programming – Lập trình hướng khía cạnh Event-based Khía cạnh Oriented EAOP Programming – Lập trình hướng khía cạnh dựa kiện ATM UML Automatic Teller Machine – Máy rút tiền tự động Unified Modeling Language – Ngôn ngữ mô hình hóa thống Rigorous Open Development RODIN Enviroment for Complex System Công cụ mã nguồn mở dựa tảng Eclipse OOP FSP LTSA Object-orented programming – Lập trình hướng đối tượng Finite State Processes – Quá trình hữu hạn trạng thái Labelled Transition System Anlyzer - Công cụ phân tích chuyển hệ thống CHƯƠNG 1: ĐẶT VẤN ĐỀ 1.1 Sự cần thiết đề tài Ngày nay, phát triển mạnh mẽ phần mềm ngày đóng vai trò quan trọng, ứng dụng vào tất lĩnh vực đời sống xã hội đại Làm cho tỷ trọng giá trị phần mềm hệ thống ngày lớn Tuy nhiên, nhiều hệ thống, lỗi phần mềm gây hậu đặc biệt nghiêm trọng, không thiệt hại nặng nề mặt kinh tế [14] Có nhiều công trình nghiên cứu tập trung vào kiểm chứng mô hình hướng khía cạnh sử dụng kỹ thuật khác UML [10], kiểm chứng mô hình (model checking) [9], Petri-net [4], B [7] không phù hợp để mô hình hóa kiểm chứng hệ thống dựa kiện Một số công trình nghiên cứu khai thác kí hiệu UML mở rộng kí hiệu UML để cụ thể hóa vấn đề thực thi cắt ngang (crosscutting) Tuy nhiên, nghiên cứu không giải kiểm chứng khía cạnh chất không hình thức bán hình thức UML Các tác giả Ubayashi Tamai [8] đề xuất phương pháp để kiểm chứng chương trình AOP sử dụng mô hình kiểm tra Phương pháp nhằm vào giai đoạn lập trình ứng dụng mô hình kiểm tra để có kết đan code lớp khía cạnh Phương pháp đảm bảo xác kiểm chứng, nhiên lại bỏ qua vấn đề kiểm chứng mô đun Điều có nghĩa khó sử dụng phương pháp để xác minh phần mềm lớn Tác giả Dianxiang Xu [9] đề xuất sử dụng máy trạng thái kiểm chứng chương trình hướng khía cạnh Các tác giả chuyển hóa đan mô hình lớp mô hình không bị ảnh hưởng bởi khía cạnh thành quy trình FSP, mà kiểm chứng bởi mô hình LTSA kiểm tra thuộc tính hệ thống muốn có Tuy nhiên, phương pháp cần phải chuyển hóa chương trình khía cạnh sang mô hình trạng thái trước khởi động mô hình FSP Tác giả dùng B [7] để kiểm chứng đan khía cạnh Tác giả báo trình bày lớp số khía 38 Hình 15: Lớp Transaction Lớp exchange mô tả chức chuyển tiền máy ATM minh họa hình 16: Hình 16: Lớp Exchange Khía cạnh updatetr mô tả crosscut chương trình máy ATM mô tả hình 17: 39 Hình 17: Khía cạnh updatetr Trong chương trình java mô tả máy ATM lớp Exchange lý người lập trình quên không kiểm tra điều kiện rút tiền amount < balance mã thực rút tiền làm cho số dư tài khoản nhỏ không trường hợp rút tiền nhiều số dư tài khoản amount>balance dẫn đến đặc tả thiếu mà áp dụng EAOP vào toán Tuân theo luật, tiến hành mô hình hệ thống hướng kiện Event-B Rồi kiểm chứng công cụ Rodin kết không chứng minh điều kiện kích hoạt kiện transfer thiếu mệnh đề grd3: amt sau: E = {withdraw, deposit, transfer}, V = { bal, amount}, balance (balance: số tiền cân bằng tài khoản) amount (số lượng) mà người dùng 41 muốn rút tiền gửi tiền, C ={ balance > 0, amount > 0} trạng thái yêu cầu bắt buộc, A = { withdraw_act, deposit_act} Tuân theo luật 1, đạt mô hình hệ thống hướng kiện Event-B minh họa hình 21 (inv2 inv3 xác định biến mà còn chắn ràng buộc chương trình luôn thỏa mãn) Có kiện máy tương ứng với kiện chương trình withdraw, deposit và transfer MACHINE M VARIABLES balance amount targetAccount sourceAccount INVARIANTS inv1 :balance ∈ ℕ inv2 :amount ∈ ℕ inv3 :balance ≥ inv4 :amount ≥ inv5 :sourceAccount ∈ ℕ inv6 :targetAccount ∈ ℕ EVENTS INITIALISATION ≙ STATUS ordinary BEGIN act1 :balance ≔ act2 :amount≔0 act3 :targetAccount≔0 act4 :sourceAccount≔0 END withdraw ≙ STATUS ordinary WHEN grd1 :amount < balance THEN act1 :balance≔ balance−amount END deposit ≙ 42 STATUS ordinary ANY amt WHERE grd1 :amt ∈ ℕ THEN act1 :balance≔balance+ amt END transfer ≙ STATUS ordinary ANY amt accountNo WHERE grd1 :amt∈ℕ grd2 :accountNo ∈ℕ grd3 :amt≤balance THEN act1 :balance ≔ balance−amt act2 :targetAccount≔accountNo END END Hình 21: Event-B đặc tả chương trình bản Chúng ta tạo khía cạnh để rút tiền gửi phải phí trả phí cho người dụng rút tiền lần Chúng cần thêm biến fee, bonus, bFirst để định lại giá trị tương ứng Trong trường hợp làm mịn kiện withdraw_c, mã hành vi bổ sung balance chuyển đổi thành act1 Sử dụng ProB [6], công cụ kiểm tra mô hình Event-B, tìm ví dụ chứng minh biến balance ∈ ℕ Điều có nghĩa vi phạm ràng buộc chương trình Để làm cho mô hình xác, bổ sung điều kiện kích hoạt kiện withdraw_c bằng cách thêm vào mệnh đề grd3: bonus > fee rằng bonus lớn fee khía cạnh cần kiểm tra điều kiện mã hành vi Sự kiện 43 mở rộng withdraw_c rút tiền máy ATM đặc tả Event-B khía cạnh mô tả hình 22 sau: withdraw_c ≙ extended STATUS ordinary REFINES withdraw WHEN grd1 :amount < balance grd2 :bFirst=TRUE grd3 :bonus>fee THEN act1 :balance≔balance−amount−fee+bonus END Hình 22: Đặc tả Event-B khía cạnh Hình 23 minh họa kết thực soạn thảo công cụ Rodin, sinh kiểm chứng tự động mệnh đề cần chứng minh Hình 23: Kết quả thực hiện Hình 24 minh họa kết trình mô hình hóa kiểm chứng tự động thể qua bảng Statistics, cho thấy toàn ràng buộc chứng minh đảm bảo đặt 44 Hình 24: Kết quả bảng Statistics 45 KẾT LUẬN Những đóng góp kết luận văn việc “Mô hình hóa kiểm chứng chương trình phần mềm hướng khía cạnh”, kết cụ thể sau:  Luận văn trình bày kiến thức sở liên quan đến việc toán kiểm chứng phần mềm cụ thể là: Lập trình hướng khía cạnh (Aspect Oriented Programming – AOP), lập trình hướng khía cạnh dựa kiện (Event-based Aspect Oriented Programming – EAOP) Event-B  Luận văn trình bày công cụ hỗ trợ Rodin, công cụ hỗ trợ cho phương pháp hình thức Event-B  Luận văn trình bày quy luật mô hình hóa ứng dụng lập trình hướng cạnh hệ thống hướng kiện dùng Event-B  Luận văn trình bày mô hình hóa cách tiếp cận thực tế bằng sử dụng công cụ Rodin để kiểm chứng thuộc tính chương trình có còn bảo tồn số thuộc tính sau thực đan chương trình, ràng buộc khác dựa công cụ chứng minh tự động Ưu điểm cách tiếp cận chương trình bao gồm khía cạnh, biến ràng buộc mô hình hóa dễ dàng bằng đặc tả logic Event–B invariants events Do đó, tính đắn hệ thống chứng minh bằng phương pháp hình thức Hơn nữa, cách tiếp cận luận văn gần với thực tế, triển khai công cụ theo ý tưởng để chuyển đổi mô hình EAOP từ Event–B sang công cụ Rodin tự động  Luận văn minh họa phương pháp mô hình hóa kiểm chứng chương trình ATM Lập trình hướng khía cạnh dựa kiện phương pháp tiếp cận mở rộng cho lập trình hướng khía cạnh Lập trình hướng khía cạnh dựa kiện kết hợp ưu điểm 46 hai lập trình hướng khía cạnh kiến trúc dựa kiện Đề xuất phương pháp, chuyển đổi chương trình lập trình hướng khía cạnh dựa kiện sang ngôn ngữ đặc tả Event-B Sử dụng Event-B để sinh mệnh đề cần chứng minh để kiểm tra lại ứng dụng ràng buộc ảnh hưởng bởi khía cạnh Do thời gian nghiên cứu lượng kiến thức có được, nên số vấn đề mà luận văn phải tiếp tục hoàn thiện phát triển thời gian tới như:  Tiếp tục phát triển cần phải mở rộng với crosscuts phức tạp vào mô hình lập trình hướng khía cạnh dựa kiện  Phát triển thử nghiệm cần tiến hành để đánh giá xác lợi ích hạn chế phương pháp tiếp cận 47 TÀI LIỆU THAM KHẢO [1] Event-B and the Rodin platform http://www.event-b.org, 2012 [2] J.R Abrial Modeling in Event-B: System and software engineering Cambridge University Press, New York, NY, USA 1st edition, 2010 [3] R Douence and M Sudholt A model and a tool for event-based aspect-oriented programming (eaop) Technical Report TR 02/11/INFO Ecole des Mines de Nantes, 2002 [4] L Guan, X Li, and H Hu A petri net-based approach for supporting khía cạnh oriented modeling In Theoretical Apects of Software Engineering, 2008, pages 83-90, June 2008 [5] Holzer, L Ziarek, K Jayaram, and P Eugster Putting events in context: Khía cạnhs for event-based distributed programming In Proceedings of the Tenth International Conference on Aspects-oriented Software Development, AOSD '11, pages 241-252, New York, NY, USA, 2011 ACM [6] O Ligot, J Bendisposto, and M Leuschel Debugging event-b models using the prob disprover plug-in Proceedings AFADL'07, Juni 2007 [7] T N Thuan and N V Ha Using b to verify the weaving of aspects In Software Engineering Conference, 2007 APSEC 2007 14th Asia-Pacifc, pages 199-205, Dec 2007 [8] N Ubayashi and T Tamai Khía cạnh-oriented programming with model checking In Proceedings of the 1st international conference on Aspect-oriented software development, AOSD '02, pages 148-154, New York, NY, USA, 2002 ACM [9] D.-X Xu, O El-Ariss, W.-F Xu, and L.-Z Wang Aspect-oriented modeling and verification with fnite state machines J Comput Sci Technol., 24(5):949961, Sept 2009 [10] J Zhang, Y Chen, and G Liu Modeling Aspect-oriented programming with uml profile In Education Technology and Computer Science, 2009 ETCS '09 First International Workshop on, volume 2, pages 242-245, March 2009 [11] Anh-Hoang Truong, Phuc Dinh Nguyen, Tuyen Luu, Checking implementations of UML 2.0 sequence diagrams 48 [12] Joseph D Gradecki, Nicholas Lesiecki, Mastering AspectJ Aspects-Oriented Programming in Java - Wiley, edition (March 7, 2003) [13] Ramnivas Landdad AspectJ in Action practical aspect-oriented programming Manning publishing -2004 [14] Visser W, et.al, Model Checking Programs, 15th IEEE International Conference on Automated Software Engineering, 2000 [15] R Douence, P.Fradet, and M Sudholt A framework for the detection and resolution of aspect interactions In Proc of the ACM SIGPLAN/SIGSOFT Conf on Generative Programming and Component Engineering (GPCE), October 2002 [16] R Douence, O Motelet, and M Sudholt A formal definition of crosscuts In Proc of the 3rd Int Conf on Metalevel Architectures and Separation of Crosscutting Concerns, volume 2192 of LNCS Springer Verlag, September 2001 [17] Trịnh Thanh Bình, Trương Anh Hoàng, Nguyễn Việt Hà, Kiểm chứng giao thức tương tác thành phần chương trình đa luồng sử dụng lập trình hướng khía cạnh, Chuyên san Các công trình nghiên cứu, phát triển ứng dụng CNTT-TT, Tạp chí Công nghệ thông tin & Truyền thông, T V-1, S (24), 36-45, 2010 [18] Trịnh Thanh Bình, Trương Ninh Thuận, Nguyễn Việt Hà, Kiểm chứng tuân thủ ràng buộc thời gian ứng dụng phần mềm, Tạp chí Tin học Điều khiển học, T 26, S 2, 173-184, 2010 [19] Trịnh Thanh Bình (2011) Kiểm chứng thành phần Java tương tranh Luận án tiến sỹ, Trường Đại học Công Nghệ, Đại học Quốc Gia Hà Nội, tr 6,7 49 PHỤ LỤC Chương trình đặc tả Event-B chương trình máy ATM MACHINE M VARIABLES balance amount targetAccount sourceAccount INVARIANTS inv1 inv2 inv3 inv4 inv5 inv6 EVENTS :balance ∈ ℕ :amount ∈ ℕ :balance ≥ :amount ≥ :sourceAccount ∈ ℕ :targetAccount ∈ ℕ INITIALISATION ≙ STATUS ordinary BEGIN act1 :balance ≔ act2 :amount≔0 act3 :targetAccount≔0 act4 :sourceAccount≔0 END withdraw ≙ STATUS ordinary WHEN grd1 :amount < balance THEN act1 :balance≔ balance−amount END deposit ≙ STATUS ordinary ANY 50 amt WHERE grd1 :amt ∈ ℕ THEN act1 :balance≔balance+ amt END transfer ≙ STATUS ordinary ANY amt accountNo WHERE grd1 :amt∈ℕ grd2 :accountNo ∈ℕ grd3 :amt≤balance THEN act1 :balance ≔ balance−amt act2 :targetAccount≔accountNo END END Chương trình đặc tả Event-B khía cạnh máy ATM MACHINE M1 REFINES M VARIABLES balance amount targetAccount sourceAccount fee bonus bFirst INVARIANTS inv1 :fee ∈ ℕ inv2 :bonus ∈ ℕ inv3 :bFirst∈ BOOL EVENTS 51 INITIALISATION ≙ extended STATUS ordinary BEGIN act1 :balance ≔ act2 :amount≔0 act3 :targetAccount≔0 act4 :sourceAccount≔0 act5 :fee ≔ act6 :bonus ≔ END withdraw ≙ extended STATUS ordinary REFINES withdraw WHEN grd1 :amount < balance THEN act1 :balance≔ balance−amount END deposit ≙ extended STATUS ordinary REFINES deposit ANY amt WHERE grd1 :amt ∈ ℕ THEN act1 :balance≔balance+ amt END transfer ≙ 52 extended STATUS ordinary REFINES transfer ANY amt accountNo WHERE grd1 :amt∈ℕ grd2 :accountNo ∈ℕ grd3 :amt≤balance THEN act1 :balance ≔ balance−amt act2 :targetAccount≔accountNo END withdraw_c ≙ extended STATUS ordinary REFINES withdraw WHEN grd1 :amount < balance grd2 :bFirst=TRUE grd3 :bonus>fee THEN act2 :balance≔balance−amount−fee+bonus END END [...]... cơ bản về mô hình kiến trúc EAOP Trình bày những kiến thức tổng quan về phương pháp hình thức Event-B, mô tả cấu trúc, các thành phần của Event-B Trình bày công cụ kiểm chứng tự động Rodin Chương 3: Mô hình hóa và kiểm chứng các phần mềm hướng khía cạnh 11 Trình bày các định nghĩa được ánh xạ của phương pháp hình thức Event-B, các luật chuyển đổi giữa mô hình chương trình phần mềm hướng khía cạnh dựa... platform Hình 13: Mô hình kiến trúc Rodin 33 CHƯƠNG 3: MÔ HÌNH HÓA VÀ KIỂM CHỨNG CÁC PHẦN MỀM LẬP TRÌNH HƯỚNG KHÍA CẠNH 3.1 Trình bày EAOP trong Event-B Trong phần này, giới thiệu phương pháp để mô hình hóa và kiểm chứng ứng dụng lập trình hướng khía cạnh dựa sự kiện Đầu tiên, giới thiệu các định nghĩa mới của các thành phần ứng dụng Dựa trên các định nghĩa mới, chúng tôi chi tiết hóa các ứng dụng và tính... khía cạnh dựa sự kiện sang mô hình Event-B Kiểm chứng hệ thống Chương 4: Áp dụng bài toán Áp dụng phương pháp đã trình bày ở trên để mô hình hóa và kiểm chứng bài toán máy ATM Kết luận Kết luận tổng thể các kết quả đạt được trong luận văn và hướng phát triển của luận văn 12 CHƯƠNG 2 EAOP VÀ EVENT-B 2.1 Các đặc điểm của lập trình hướng khía cạnh Lập trình hướng khía cạnh (Khía cạnh Oriented Programming... trúc và thực hiện Công cụ lập trình hướng khía cạnh dựa sự kiện bao gồm 5 thành phần (như hình 5 [3] mô tả): bộ tiền xử lý trước, bộ giám sát thực thi và ba thư viện (sự kiện, khía cạnh, và thành phần của khía cạnh) a Bộ tiền xử lý trước 22 Bộ tiền xử lý trước mã nguồn Java của chương trình cơ bản (cũng như các khía cạnh nếu muốn định nghĩa các khía cạnh của khía cạnh) để tạo ra các sự kiện và gọi... chỉnh sửa mô hình Event-B Event-B Core gồm có 3 thành phần: kiểm tra tĩnh (kiểm tra cú pháp trong mô hình Event-B), máy kiểm chứng (nơi thực hiện các kiểm chứng đơn giản làm cho dễ dàng tự động hóa) , và máy quản lý kiểm chứng (quản lý kiểm chứng và chứng cứ liên quan) Các Rodin Core bao gồm 2 thành phần: kho Rodin (quản lý kiên trì dữ liệu) và người xây dựng Rodin (công việc lập lịch tùy thuộc vào những... chương trình [19] 2.3.1 Máy và ngữ cảnh Các mô hình Event-B [2] được mô tả bởi 2 cấu trúc cơ bản là máy (machines) và ngữ cảnh (context) được mô tả ở hình 8 [2] Trong đó, máy dùng để mô tả phân 28 động của mô hình bao gồm biến, bất biến, định lý, và các sự kiện tương tác với môi trường Ngữ cảnh mô tả phần tĩnh của mô hình, chứa các tập hợp, hằng, tiên đề và định lý [19] Hình 8: Cấu trúc máy và. .. trong ngôn ngữ hướng sự kiện Event-B Cuối cùng, chúng tôi kiểm chứng các thuộc tính dựa trên các mệnh đề cần chứng minh EAOP là lập trình hướng khía cạnh hệ thống dựa trên các sự kiện thực hiện Nếu chương trình ban đầu phát ra một sự kiện hoặc dãy các sự kiện, các thành phần kiểm tra thực hiện các khía cạnh liên quan Sau đây, một số định nghĩa: Định nghĩa 3.1 (chương trình cơ bản) Mô t chương trình... tiên Hơn nữa, mô hình của chúng tôi cho phép việc ứng dụng các khía cạnh trên các khía cạnh khác Ví dụ, một khía cạnh logging áp dụng khía cạnh bảo mật có thể tạo ra một bản ghi log cho các quản trị viên hệ thống EAOP chú ý đến các sự kiện phát sinh ra trong quá trình thực hiện chương trình một cách độc lập với bất kỳ ngôn ngữ lập trình cụ thể nào Tính năng chính của mô hình là khía cạnh có thể xác... quá trình thực hiện chương trình cơ bản Đan khía cạnh được thực hiện trên bộ giám sát thực thi, cho phép phát hiện các dãy sự kiện Để giữ cho mô hình đơn giản và trực quan, chúng ta hãy xem xét một mô hình tuần tự cho các sự kiện đồng bộ: Đầu tiên, ngay sau khi một sự kiện được sinh ra, nó xử lý bởi tất cả các khía cạnh Thứ hai, xử lý các chương trình cơ bản và các khía cạnh tiến hành lần lượt: Chương. .. khía cạnh đang hoạt động e Các thành phần khía cạnh 25 Nếu sự kiện được truyền tuần tự cho tất cả các khía cạnh, bộ giám sát thực thi sẽ tương đương là biến lặp qua dãy của khía cạnh Các thành phần Khía cạnh quan trọng mở rộng được đưa ra Có thể hạn chế sự truyền của các sự kiện đến các khía cạnh nhất định, quyết định này là động: bộ giám sát thực thi một cây nhị phân trong đó khía cạnh là lá và các

Ngày đăng: 14/09/2016, 22:59

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2]. J.R. Abrial. Modeling in Event-B: System and software engineering. Cambridge University Press, New York, NY, USA 1 st edition, 2010 Sách, tạp chí
Tiêu đề: Modeling in Event-B: System and software engineering
[3]. R. Douence and M. Sudholt. A model and a tool for event-based aspect-oriented programming (eaop). Technical Report TR 02/11/INFO. Ecole des Mines de Nantes, 2002 Sách, tạp chí
Tiêu đề: A model and a tool for event-based aspect-oriented programming (eaop)
[4]. L. Guan, X. Li, and H. Hu. A petri net-based approach for supporting khía cạnh oriented modeling. In Theoretical Apects of Software Engineering, 2008, pages 83-90, June 2008 Sách, tạp chí
Tiêu đề: In Theoretical Apects of Software Engineering
[5]. Holzer, L. Ziarek, K. Jayaram, and P. Eugster. Putting events in context: Khía cạnhs for event-based distributed programming. In Proceedings of the Tenth International Conference on Aspects-oriented Software Development, AOSD '11, pages 241-252, New York, NY, USA, 2011. ACM Sách, tạp chí
Tiêu đề: In Proceedings of the Tenth International Conference on Aspects-oriented Software Development
[6]. O. Ligot, J. Bendisposto, and M. Leuschel. Debugging event-b models using the prob disprover plug-in. Proceedings AFADL'07, Juni 2007 Sách, tạp chí
Tiêu đề: Debugging event-b models using the prob disprover plug-in. Proceedings AFADL'07
[7]. T. N. Thuan and N. V. Ha. Using b to verify the weaving of aspects. In Software Engineering Conference, 2007. APSEC 2007. 14th Asia-Pacifc, pages 199-205, Dec 2007 Sách, tạp chí
Tiêu đề: In Software Engineering Conference, 2007. APSEC 2007. 14th Asia-Pacifc
[8]. N. Ubayashi and T. Tamai. Khía cạnh-oriented programming with model checking. In Proceedings of the 1st international conference on Aspect-oriented software development, AOSD '02, pages 148-154, New York, NY, USA, 2002.ACM Sách, tạp chí
Tiêu đề: In Proceedings of the 1st international conference on Aspect-oriented software development
[9]. D.-X. Xu, O. El-Ariss, W.-F. Xu, and L.-Z. Wang. Aspect-oriented modeling and verification with fnite state machines. J. Comput. Sci. Technol., 24(5):949- 961, Sept. 2009 Sách, tạp chí
Tiêu đề: Aspect-oriented modeling and verification with fnite state machines. J. Comput. Sci. Technol
[10]. J. Zhang, Y. Chen, and G. Liu. Modeling Aspect-oriented programming with uml profile. In Education Technology and Computer Science, 2009. ETCS '09.First International Workshop on, volume 2, pages 242-245, March 2009 Sách, tạp chí
Tiêu đề: In Education Technology and Computer Science, 2009. ETCS '09. "First International Workshop on
[12]. Joseph D. Gradecki, Nicholas Lesiecki, Mastering AspectJ Aspects-Oriented Programming in Java - Wiley, 1 edition (March 7, 2003) Sách, tạp chí
Tiêu đề: Mastering AspectJ Aspects-Oriented Programming in Java -
[13]. Ramnivas Landdad. AspectJ in Action practical aspect-oriented programming. Manning publishing -2004 Sách, tạp chí
Tiêu đề: AspectJ in Action practical aspect-oriented programming
[14]. Visser W, et.al, Model Checking Programs, 15th IEEE International Conference on Automated Software Engineering, 2000 Sách, tạp chí
Tiêu đề: International Conference on Automated Software Engineering
[15]. R. Douence, P.Fradet, and M. Sudholt. A framework for the detection and resolution of aspect interactions. In Proc. of the ACM SIGPLAN/SIGSOFT Conf. on Generative Programming and Component Engineering (GPCE), October 2002 Sách, tạp chí
Tiêu đề: In Proc. of the ACM SIGPLAN/SIGSOFT Conf. on Generative Programming and Component Engineering (GPCE)
[16]. R. Douence, O. Motelet, and M. Sudholt. A formal definition of crosscuts. In Proc. of the 3rd Int. Conf. on Metalevel Architectures and Separation of Crosscutting Concerns, volume 2192 of LNCS. Springer Verlag, September 2001 Sách, tạp chí
Tiêu đề: In Proc. of the 3rd Int. Conf. on Metalevel Architectures and Separation of Crosscutting Concerns, volume 2192 of LNCS. Springer Verlag
[17]. Trịnh Thanh Bình, Trương Anh Hoàng, Nguyễn Việt Hà, Kiểm chứng giao thức tương tác giữa các thành phần trong chương trình đa luồng sử dụng lập trình hướng khía cạnh, Chuyên san Các công trình nghiên cứu, phát triển và ứng dụng CNTT-TT, Tạp chí Công nghệ thông tin &amp; Truyền thông, T. V-1, S.4 (24), 36-45, 2010 Sách, tạp chí
Tiêu đề: Chuyên san Các công trình nghiên cứu, phát triển và ứng dụng CNTT-TT, Tạp chí Công nghệ thông tin & Truyền thông
[18]. Trịnh Thanh Bình, Trương Ninh Thuận, Nguyễn Việt Hà, Kiểm chứng sự tuân thủ về ràng buộc thời gian trong các ứng dụng phần mềm, Tạp chí Tin học và Điều khiển học, T. 26, S. 2, 173-184, 2010 Sách, tạp chí
Tiêu đề: Tạp chí Tin học và Điều khiển học
[19]. Trịnh Thanh Bình (2011). Kiểm chứng các thành phần Java tương tranh. Luận án tiến sỹ, Trường Đại học Công Nghệ, Đại học Quốc Gia Hà Nội, tr. 6,7 Sách, tạp chí
Tiêu đề: Kiểm chứng các thành phần Java tương tranh
Tác giả: Trịnh Thanh Bình
Năm: 2011
[11]. Anh-Hoang Truong, Phuc Dinh Nguyen, Tuyen Luu, Checking implementations of UML 2.0 sequence diagrams Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN