1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Output file

92 6 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

Tiêu đề Nghiên Cứu Về Kiểm Chứng Bất Biến Của Đối Tượng Sử Dụng Lập Trình Hướng Khía Cạnh
Tác giả Phạm Đình Phong
Người hướng dẫn PGS. TS. Nguyễn Việt Hà, TS. Phạm Ngọc Hùng
Trường học Đại học Quốc gia Hà Nội
Chuyên ngành Công nghệ thông tin
Thể loại luận văn thạc sĩ
Năm xuất bản 2010
Thành phố Hà Nội
Định dạng
Số trang 92
Dung lượng 1,06 MB

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM ĐÌNH PHONG NGHIÊN CỨU VỀ KIỂM CHỨNG BẤT BIẾN CỦA ĐỐI TƯỢNG SỬ DỤNG LẬP TRÌNH HƯỚNG KHÍA CẠNH Ngành: Công nghệ thông tin Chuyên ngành: Công nghệ phần mềm Mã số: 60 48 10 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS Nguyễn Việt Hà Hà Nội – 2010 TIEU LUAN MOI download : skknchat@gmail.com ii Lời cảm ơn Với lòng biết ơn sâu sắc, em xin chân thành cảm ơn thầy giáo PGS TS Nguyễn Việt Hà, người trực tiếp định hướng đề tài tận tình hướng dẫn em hồn thành luận văn Em chân thành cảm ơn thầy TS Phạm Ngọc Hùng có nhận xét, đánh giá q trình hồn thiện luận văn Em xin bày tỏ lòng biết ơn thầy giáo, cô giáo Khoa Công nghệ thông tin Trường Đại học Cơng nghệ tận tình bảo, giảng dạy em suốt thời gian học trường việc hoàn thành luận văn Cuối cùng, xin bày tỏ tình cảm tới người thân gia đình, bạn bè tập thể lớp Cao học K15T2, K15T3 K15CNPM động viên, hỗ trợ em mặt Em xin chân thành cảm ơn! Hà Nội, tháng 09 năm 2010 Phạm Đình Phong TIEU LUAN MOI download : skknchat@gmail.com iii Lời cam đoan Tôi xin cam đoan rằng, ngoại trừ nội dung trích từ tài liệu tham khảo cơng trình khác ghi rõ luận văn, kết nêu luận văn tơi thực Hà Nội, tháng 09 năm 2010 Phạm Đình Phong TIEU LUAN MOI download : skknchat@gmail.com iv MỤC LỤC Lời cảm ơn ii Lời cam đoan iii MỤC LỤC iv Danh mục bảng biểu vi Danh mục hình vẽ vii Danh mục ký hiệu, từ viết tắt viii MỞ ĐẦU Chương – Lập trình hướng khía cạnh 1.1 Giới thiệu 1.2 Các vấn đề tồn lập trình hướng đối tượng 1.2.1 Các mối quan tâm hệ thống 1.2.2 Giải mối quan tâm cắt ngang OOP 1.2.3 Các vấn đề gặp phải thực thi mối quan tâm cắt ngang OOP8 1.3 Lập trình hướng khía cạnh 10 1.3.1 Lịch sử hình thành 10 1.3.2 Cú pháp AOP mơ hình lập trình 11 1.3.3 Quản lý mối quan tâm lập trình hướng khía cạnh 12 1.3.4 Đan kết 13 1.3.5 Phương pháp lập trình hướng khía cạnh 14 1.3.6 Lợi ích lập trình hướng khía cạnh 15 1.3.7 Nhược điểm phương pháp lập trình hướng khía cạnh 17 1.3.8 Các cơng cụ AOP 18 1.4 AspectJ 19 1.4.1 Thực thi cắt ngang 19 1.4.2 Joint Point 20 1.4.3 Pointcut 22 1.4.4 Advice 26 1.4.5 Introduction 29 1.4.6 Aspect 30 1.5 Kết luận 33 Chương - Cơng cụ kiểm chứng mơ hình Java PathFinder 34 2.1 Giới thiệu 34 2.2 Cơng cụ kiểm chứng mơ hình Java PathFinder 34 2.2.1 Lịch sử Java PathFinder 35 2.2.2 Các thành phần Java PathFinder 35 2.2.3 Những kiểm chứng Java PathFinder 37 2.2.4 Kiểm chứng mơ hình Java PathFinder 37 2.3 Các đề án mở rộng Java PathFinder 40 2.4 Kết luận 41 Chương – Kiểm chứng bất biến chương trình Java sử dụng lập trình hướng khía cạnh 42 3.1 Đặt vấn đề 42 3.2 Ngơn ngữ mơ hình hóa thống UML 43 3.2.1 Thuộc tính 43 TIEU LUAN MOI download : skknchat@gmail.com v 3.2.2 Liên kết 44 3.2.3 Thao tác 44 3.3 Ngôn ngữ ràng buộc đối tượng OCL 45 3.3.1 Biểu diễn biểu thức OCL 45 3.3.2 Bất biến (invariant) 46 3.4 Ví dụ minh họa 48 3.5 Kiểm chứng bất biến sử dụng AOP 50 3.6 Vấn đề kế thừa bất biến lớp 51 3.7 Kiểm chứng bất biến lớp có ràng buộc thay đổi so với lớp cha 55 3.8 Kiểm chứng bất biến liên quan đến thuộc tính thêm vào lớp 60 3.9 Thực nghiệm 62 3.10 Kết luận 64 Chương – Sinh tự động ca kiểm thử công cụ Java PathFinder 65 4.1 Tổng quan 65 4.2 Thực thi ký hiệu 65 4.3 Sinh tự động ca kiểm thử thực thi ký hiệu 67 4.4 Kiểm chứng bất biến việc chèn khẳng định 71 4.4.1 Khẳng định Java Java PathFinder 71 4.4.2 Xác định bất biến 72 4.4.2.1 Đặt khẳng định đoạn mã 72 4.4.2.2 Kiểm tra bất biến phương thức main 72 4.4.2.3 Bất biến tiến trình (Invariant as a Thread) 74 4.4.3 So sánh phương pháp AOP phương pháp chèn khẳng định 75 4.5 Kết thực nghiệm 76 4.5.1 Kết thực nghiệm sinh ca kiểm thử tự động 76 4.5.2 Kết thực nghiệm kiểm chứng bất biến chèn khẳng định 79 4.6 Kết luận 80 KẾT LUẬN 81 TÀI LIỆU THAM KHẢO 83 TIEU LUAN MOI download : skknchat@gmail.com vi Danh mục bảng biểu Bảng 1.1 So sánh aspect lớp Bảng 3.1 Một số kết thực nghiệm TIEU LUAN MOI download : skknchat@gmail.com vii Danh mục hình vẽ Hình 1.1 Các mối quan tâm hệ thống Hình 1.2 Thực thi mối quan tâm cắt ngang OOP Hình 1.3 Chồng chéo mã nguồn Hình 1.4 Dàn trải mã nguồn Hình 1.5 Sự khác biên dịch chương trình thơng thường có aspect Hình 1.6 Mối quan hệ thuật ngữ AOP Hình 1.7 Thực thi mối quan tâm cắt ngang AOP Hình 1.8 Các giai đoạn phát triển AOP Hình 1.9 Ví dụ định nghĩa pointcut Hình 2.1 Sự bố trí tầng JPF Hình 2.2 Các thành phần JPF Hình 2.3 Bùng nổ khơng gian trạng thái đan xen luồng Hình 3.1 Biểu diễn ràng buộc sơ đồ UML Hình 3.2 Ví dụ biểu đồ lớp hệ thống card ATM Hình 3.3 Quy trình kiểm chứng bất biến Hình 4.1 Thực thi ký hiệu TIEU LUAN MOI download : skknchat@gmail.com viii Danh mục ký hiệu, từ viết tắt Từ viết tắt AOP API ASCII Thuật ngữ Aspect-Oriented Programming Application Programming Interface American Standard Code for Information Interchange AWT Abstract Window Toolkit CTW JDK Compile-time Weaving Eclipse International Business Machines Corp Java Development Kit JPF Java PathFinder JVM LTW MJI OCL OOP RTW Java Virtual Machine Load-time Weaving Model Java Interface Object Constraint Language Object-Oriented Programming Run-time Weaving SPIN Simple Promela INterpreter SUT System Under Test IBM Syntropy UML VM XML Unified Modeling Language Virtual Machine eXtensible Markup Language Ý nghĩa Lập trình hướng khía cạnh Giao diện lập trình ứng dụng Bộ mã chuẩn cho trao đổi thông tin Mỹ Bộ công cụ đồ họa độc lập tảng Java Đan kết lúc biên dịch Bộ công cụ phát triển phần mềm Một nhà sản xuất máy tính lớn giới Bộ phát triển ứng dụng Java Bộ công cụ kiểm chứng mơ hình cho ngơn ngữ Java Máy ảo Java Đan kết lúc nạp chương trình Giao diện Java mẫu Ngơn ngữ ràng buộc đối tượng Lập trình hướng đối tượng Đan kết lúc thực thi Công cụ thông dịch ngôn ngữ Promela (trong kiểm chứng mơ hình) Hệ thống kiểm thử Một phương pháp phân tích thiết kế hướng đối tượng hệ thứ hai Ngôn ngữ mô hình hóa thống Máy ảo Ngơn ngữ đánh dấu mở rộng TIEU LUAN MOI download : skknchat@gmail.com MỞ ĐẦU Những năm gần nay, với phát triển phương pháp lập trình hướng đối tượng (OOP) [1, 2, 12] mang lại nhiều bước tiến cho lập trình nói chung đưa ngành Cơng nghệ phần mềm lên bước phát triển Ưu điểm lớn lập trình hướng đối tượng hệ thống phần mềm xây dựng tập lớp rời rạc Mỗi lớp có nhiệm vụ hồn tồn xác định, nhiệm vụ vạch cách rõ ràng Trong ứng dụng hướng đối tượng, lớp cộng tác với để đạt mục tiêu chung ứng dụng Tuy nhiên, có phần hệ thống không gánh nhiệm vụ giới hạn lớp, chúng cắt ngang toàn hệ thống ảnh hưởng đến nhiều lớp Đó đan phức tạp thành phần bên ứng dụng Bên cạnh đó, tính tĩnh cách tiếp cận hướng đối tượng khơng cho phép phần mềm thích ứng với thay đổi đáp ứng yêu cầu người dùng Một hướng tiếp cận việc phát triển phần mềm lập trình hướng khía cạnh (AOP: Aspect-Oriented Programming) [10, 22, 3] Hướng tiếp cận mẻ hứa hẹn lợi điểm giải u cầu có tính đan xen phức tạp, đồng thời mang lại cho phần mềm khả thay đổi bổ sung yêu cầu sau hồn chỉnh hay chí đưa vào sử dụng Ngơn ngữ mơ hình hóa thống (Unified Modelling Language - UML [4]) chấp nhận rộng rãi chuẩn cho phân tích thiết kế hướng đối tượng Việc biểu diễn mơ hình hóa cấu trúc tĩnh hệ thống hướng đối tượng dùng phổ biến sơ đồ lớp UML Tuy nhiên, khơng phải cấu trúc chi tiết biểu diễn cách dễ dàng sơ đồ lớp Ngôn ngữ ràng buộc đối tượng (Object Constraint Language - OCL [29]), phần UML, ngôn ngữ dùng cho việc mô tả ràng buộc thêm vào mơ hình hướng đối tượng Các ràng buộc OCL sử dụng để mô tả bất biến lớp kiểu, tiền điều kiện hậu điều kiện thao tác Các ràng buộc OCL luôn kết nối tới mơ hình hướng đối tượng UML Một bất biến (invariant) ràng buộc liên quan đến lớp, kiểu hay giao diện mơ hình UML Bất biến biểu diễn biểu thức lôgic giới hạn giá trị thuộc tính hay liên kết hay biểu diễn mối quan hệ giá trị thuộc tính, liên kết Kết biểu thức phải tất thể lớp tham chiếu Giai đoạn đảm bảo chất lượng phần mềm ngày trở nên quan trọng Trong giai đoạn này, đặc tả UML ràng buộc OCL tạo nhà thiết kế phần mềm, chương trình cài đặt nhà phát triển phần mềm dựa đặc tả UML Như làm để kiểm chứng bất biến đối tượng thể ràng buộc OCL có bị vi phạm thời điểm thực thi hay không Sau nghiên cứu phương pháp AOP, chúng tơi thấy sử dụng TIEU LUAN MOI download : skknchat@gmail.com phương pháp để cài đặt mã kiểm chứng để kiểm chứng bất biến phần mềm thiết kế theo phương pháp hướng đối tượng dựa ràng buộc OCL thiết kế Đã có nghiên cứu trước liên quan đến phương pháp [3, 23] Theo đó, cơng việc kiểm chứng tách biệt hoàn toàn khỏi chương trình cách tạo aspect chứa mã kiểm chứng Các aspect đan tự động vào chương trình chương trình thực thi, công việc kiểm chứng thực tự động Tuy nhiên nghiên cứu chưa xem xét việc kiểm chứng bất biến cho lớp kế thừa bên Chúng quan tâm tới việc xem xét bất biến đối tượng theo quan hệ kế thừa, cụ thể nghiên cứu kiểm chứng bất biến liên quan đến thuộc tính thêm vào lớp bất biến lớp có ràng buộc thay đổi so với lớp cha Việc kiểm thử tính đắn phương thức cần có liệu làm đầu vào cho phương thức cần kiểm thử Một liệu vào gọi ca kiểm thử (test case) Việc chọn liệu để phủ tồn đường thực thi (possible execution path) khó Nếu có cơng cụ sinh tự động ca kiểm thử phủ toàn đường thực thi ta chứng minh tính đắn phương thức thơng qua ca kiểm thử sinh Java PathFinder (JPF) [19, 25, 30, 31] với phần mở rộng thực thi ký hiệu dùng để sinh tự động ca kiểm thử phủ toàn đường thực thi cho phương thức đối tượng chương trình cài đặt ngôn ngữ Java Chúng sử dụng công cụ thực thi ký hiệu để sinh tự động ca kiểm thử nhằm kiểm tra lại phương pháp kiểm chứng bất biến AOP Nội dung nghiên cứu: Tìm hiểu nghiên cứu kiểm chứng phần mềm, lập trình hướng khía cạnh (Aspect Oriented Programming - AOP) sử dụng AOP để kiểm chứng bất biến đối tượng bao gồm: Nghiên cứu lý thuyết kiểm chứng phần mềm, phương pháp, công cụ kiểm chứng phần mềm Nghiên cứu phương pháp lập trình hướng khía cạnh AspectJ - đặc tả ngôn ngữ cho việc cài đặt aspect ngơn ngữ lập trình Java Mở rộng phương pháp sử dụng AOP để kiểm chứng bất biến đối tượng chương trình Java thời điểm thực thi đề xuất [23] bao gồm kiểm chứng bất biến liên quan đến thuộc tính thêm vào lớp bất biến lớp có ràng buộc thay đổi so với lớp cha Để kiểm tra tính đắn phương thức cần có ca kiểm thử làm liệu đầu vào Do chúng tơi nghiên cứu cơng cụ kiểm chứng mơ hình Java PathFinder phần mở rộng thực thi ký hiệu (Symbolic Execution) [15] để sinh tự động ca kiểm thử cho phương thức đối tượng chương trình hướng đối tượng Java TIEU LUAN MOI download : skknchat@gmail.com 70 s.withdrawMoney(2); break; case 2: g.withdrawMoney(3); break; } Verify.endAtomic(); } public static void main(String args[]) { testDriver(); Debug.printPC("Path Condition: "); } } Để thực sinh ca kiểm thử tự động, ta phải sửa tham số chạy JPF Eclipse sau: +vm.insn_factory.class=gov.nasa.jpf.symbc.SymbolicInstructionFactory +jpf.listener=gov.nasa.jpf.symbc.SymbolicListener +symbolic.method=withdrawMoney(sym) +search.multiple_errors=true +jpf.report.console.finished= Test Sau cho JPF thực chương trình, ca kiểm thử sinh bao gồm số tiền cần rút số âm Chúng ta hạn chế miền giá trị ca kiểm thử cách dùng phương thức Verify.ignoreIf() để ép quay lui điều kiện truyền vào hàm ignoreIf() thỏa mãn Trong toán trên, để loại bỏ ca kiểm thử với số tiền lần rút nhỏ 0, ta thêm lệnh Verify.ignoreIf(amount =0 withdrawalAmountPerDay + amount 0 Ca kiểm thử thứ hai ứng với nhánh (balanceAmount – amount) < withdrawalAmountPerDay + amount 0 TIEU LUAN MOI download : skknchat@gmail.com 77 Ca kiểm thử thứ ba ứng với nhánh (balanceAmount – amount) >= withdrawalAmountPerDay + amount > 2000 amount >0 Ca kiểm thử thứ tư ứng với (balanceAmount – amount) < withdrawalAmountPerDay + amount > 2000 amount >0 Ca kiểm thử thứ năm ứng với nhánh amount = -5000 withdrawalAmountPerDay + amount 0 Ca kiểm thử thứ hai ứng với nhánh (balanceAmount – amount) < -5000 withdrawalAmountPerDay + amount Ca kiểm thử thứ ba ứng với nhánh (balanceAmount – amount) >= -5000 withdrawalAmountPerDay + amount > 3000 amount > Ca kiểm thử thứ tư ứng với nhánh (balanceAmount – amount) < -5000 withdrawalAmountPerDay + amount > 3000 amount > Ca kiểm thử thứ năm ứng với nhánh amount = -10000 withdrawalAmountPerDay + amount 0 Ca kiểm thử thứ hai ứng với nhánh (balanceAmount – amount) < -10000 withdrawalAmountPerDay + amount Ca kiểm thử thứ ba ứng với nhánh (balanceAmount – amount) >= -10000 withdrawalAmountPerDay + amount > 5000 amount > Ca kiểm thử thứ tư ứng với nhánh (balanceAmount – amount) < -10000 withdrawalAmountPerDay + amount > 5000 amount > Ca kiểm thử thứ năm ứng với nhánh amount 0 balanceAmount>0 withdrawalAmountPerDay >0 cần thêm lệnh Verify.ignoreIf() vào đầu thủ tục withdrawMoney() Ví dụ, thêm ba lệnh sau vào đầu phương thức withdrawMoney() lớp ATMcard public void withdrawMoney(int amount) { Verify.ignoreIf(amount

Ngày đăng: 27/06/2022, 09:15

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Đoàn Văn Ban, Lập trình hướng đối tượng với Java, Nhà xuất bản khoa học kỹ thuật, 2003 Sách, tạp chí
Tiêu đề: Lập trình hướng đối tượng với Java
Nhà XB: Nhà xuất bản khoa học kỹ thuật
2. Lê Đăng Hưng, Tạ Tuấn Anh, Nguyễn Hữu Đức, Nguyễn Thanh Thủy, Lập trình hướng đối tượng với C++, Nhà xuất bản khoa học kỹ thuật, 1999 Sách, tạp chí
Tiêu đề: Lập trình hướng đối tượng với C++
Nhà XB: Nhà xuất bản khoa học kỹ thuật
3. Nguyễn Thị Thu Trang, Mô hình hóa và kiểm chứng Aspect, Luận văn Thạc sĩ, Đại học Bách khoa Hà Nội, 2007.Tiếng Anh Sách, tạp chí
Tiêu đề: Mô hình hóa và kiểm chứng Aspect
4. Sinan Si Alhir, Learning UML, O'Reilly Publisher, July 2003 Sách, tạp chí
Tiêu đề: O'Reilly Publisher
5. Christel Baier, Joost-Pieter Katoen, Principles of Model Checking, The MIT Press, May 2007 Sách, tạp chí
Tiêu đề: Principles of Model Checking
7. Steve Cook and John Daniels, Designing Object Systems: Object-Oriented Modelling with Syntropy, Prentice Hall International (UK) Ltd., 1994 Sách, tạp chí
Tiêu đề: Designing Object Systems: Object-Oriented Modelling with Syntropy
8. Massimiliano Dessì, Spring 2.5 Aspect-Oriented Programming, Packt Publishing, 2009 Sách, tạp chí
Tiêu đề: Spring 2.5 Aspect-Oriented Programming
10. Ian Gorton, Essential Software Architecture, Springer, 2006 Sách, tạp chí
Tiêu đề: Essential Software Architecture
11. Joseph D Gradecki, Niclolas Lesiecki, Mastering AspectJ – Aspect-oriented programming in Java, Wiley Publishing, Inc., 2003 Sách, tạp chí
Tiêu đề: Mastering AspectJ – Aspect-oriented programming in Java
12. Barry J. Holmes, Daniel T. Joyce, Object-Oriented Programming with Java, Second Edition, Jones and Bartlett Publishers, Inc., 2001 Sách, tạp chí
Tiêu đề: Object-Oriented Programming with Java
13. Ivan Kisilev, Aspect-oriented programming with AspectJ, SAMS Publishing, 2003 Sách, tạp chí
Tiêu đề: Aspect-oriented programming with AspectJ
14. B. H. Liskov and J. M. Wing, “A behavioral notion of subtyping”, ACM Trans. Prog. Lang. Syst., 16(6):1811–1841, Nov. 1994 Sách, tạp chí
Tiêu đề: A behavioral notion of subtyping”, "ACM Trans. "Prog. Lang. Syst
15. Kenneth L. McMillan, Symbolic Model Checking - An approach to the state explosion problem, Doctor of Philosophy in Computer Science thesis, Carnegie Mellon University, May 1992 Sách, tạp chí
Tiêu đề: Symbolic Model Checking - An approach to the state explosion problem
16. Bertrand Meyer, Applying "design by contract", Computer, 1992. 25(10): pages 40-51 Sách, tạp chí
Tiêu đề: design by contract
17. Bertrand Meyer, Ilinca Ciupa, Andreas Leitner, and Lisa Ling Liu, “Automatic Testing of Object-Oriented Software”, Chair of Software Engineering, ETH Zurich, Switzerland Sách, tạp chí
Tiêu đề: Automatic Testing of Object-Oriented Software”, "Chair of Software Engineering
18. Bertrand Meyer, Design By Contract - An Advances in Object-Oriented Software Engineering, Prentice Hall, 1991 Sách, tạp chí
Tiêu đề: Design By Contract - An Advances in Object-Oriented Software Engineering
19. Thomas Pressburger, Klaus Havelund, “Java PathFinder - A Translator from Java to Promela”, NASA Ames Research Center, Recom Technologies, Moffett, California, USA Sách, tạp chí
Tiêu đề: Java PathFinder - A Translator from Java to Promela”, "NASA Ames Research Center, Recom Technologies
20. M. Richters, A precise Approach to Validating UML Models and OCL Constraint”, Universitat Bremen, 2002 Sách, tạp chí
Tiêu đề: A precise Approach to Validating UML Models and OCL Constraint
21. Hiromasa Shin, Yusuke Endoh, and Yoshio Kataoka, “ARVE: Aspect-Oriented Runtime Verification Environment”, Corporate Research &amp; Development Center, Toshiba Corporation Sách, tạp chí
Tiêu đề: ARVE: Aspect-Oriented Runtime Verification Environment”, "Corporate Research & Development Center
30. Java PathFinder. http://javapathfinder.sourceforge.net/ Link

HÌNH ẢNH LIÊN QUAN

JPF JavaPathFinder Bộ công cụ kiểm chứng mô hình cho ngôn ngữ Java  - Output file
ava PathFinder Bộ công cụ kiểm chứng mô hình cho ngôn ngữ Java (Trang 8)
Hình 1.1. Các mối quan tâm trong một hệ thống. - Output file
Hình 1.1. Các mối quan tâm trong một hệ thống (Trang 14)
Hình 1.2. Thực thi các mối quan tâm cắt ngang bằng OOP. - Output file
Hình 1.2. Thực thi các mối quan tâm cắt ngang bằng OOP (Trang 15)
mô-đun client riêng lẻ. Tuy nhiên, trong cấu hình này, các client vẫn phải chứa các đoạn mã để gọi các API - Output file
m ô-đun client riêng lẻ. Tuy nhiên, trong cấu hình này, các client vẫn phải chứa các đoạn mã để gọi các API (Trang 16)
nhau. Hiện tượng này gọi là dàn trải mã nguồn. Hình 1.4 minh họa vấn đề dàn trải mã nguồn do đặt nhiều đoạn mã giống nhau trong nhiều mô-đun khác nhau nhằm thực thi  một chức năng nào đó - Output file
nhau. Hiện tượng này gọi là dàn trải mã nguồn. Hình 1.4 minh họa vấn đề dàn trải mã nguồn do đặt nhiều đoạn mã giống nhau trong nhiều mô-đun khác nhau nhằm thực thi một chức năng nào đó (Trang 17)
1.3.1. Lịch sử hình thành - Output file
1.3.1. Lịch sử hình thành (Trang 18)
Hình 1.6. Mối quan hệ giữa các thuật ngữ AOP - Output file
Hình 1.6. Mối quan hệ giữa các thuật ngữ AOP (Trang 20)
Hình 1.7. Thực thi các mối quan tâm cắt ngang bằng AOP. - Output file
Hình 1.7. Thực thi các mối quan tâm cắt ngang bằng AOP (Trang 21)
Hình 1.8. Các giai đoạn phát triển AOP - Output file
Hình 1.8. Các giai đoạn phát triển AOP (Trang 23)
Hình 1.9. Ví dụ về định nghĩa pointcut - Output file
Hình 1.9. Ví dụ về định nghĩa pointcut (Trang 32)
Bảng 1.1. So sánh giữa aspect và lớp - Output file
Bảng 1.1. So sánh giữa aspect và lớp (Trang 39)
2) Năm 2000: JPF2 là công cụ kiểm chứng mô hình được tùy biến có thể hiểu mã bytecode của Java và sử dụng mã bytecode một cách trực tiếp - Output file
2 Năm 2000: JPF2 là công cụ kiểm chứng mô hình được tùy biến có thể hiểu mã bytecode của Java và sử dụng mã bytecode một cách trực tiếp (Trang 43)
Hình 2.2. Các thành phần của JPF - Output file
Hình 2.2. Các thành phần của JPF (Trang 44)
Về lý thuyết, kiểm chứng mô hình trạng thái tường minh là phương pháp chính xác – tất cả các lựa chọn được duyệt, nếu có bất kỳ lỗi nào thì nó sẽ được phát hiện - Output file
l ý thuyết, kiểm chứng mô hình trạng thái tường minh là phương pháp chính xác – tất cả các lựa chọn được duyệt, nếu có bất kỳ lỗi nào thì nó sẽ được phát hiện (Trang 46)
Hình 3.1. Biểu diễn các ràng buộc trên sơ đồ UML và bằng các biểu thức OCL:  - Output file
Hình 3.1. Biểu diễn các ràng buộc trên sơ đồ UML và bằng các biểu thức OCL: (Trang 54)
Hình 3.2. Ví dụ biểu đồ lớp của hệ thống card ATM - Output file
Hình 3.2. Ví dụ biểu đồ lớp của hệ thống card ATM (Trang 57)
Hình 3.3. Quy trình kiểm chứng bất biến - Output file
Hình 3.3. Quy trình kiểm chứng bất biến (Trang 59)
Bảng 3.1. Một số kết quả thực nghiệm - Output file
Bảng 3.1. Một số kết quả thực nghiệm (Trang 71)
Hình 4.1. Thực thi ký hiệu - Output file
Hình 4.1. Thực thi ký hiệu (Trang 74)

TRÍCH ĐOẠN

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN