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

Nghiên cứu về đặc tả và kiểm chứng ràng buộc thời gian giữa các thành phần trong chương trình tương tranh

14 312 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 14
Dung lượng 327,75 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Phạm Thanh Hải NGHIÊN CỨU VỀ ĐẶC TẢ VÀ KIỂM CHỨNG RÀNG BUỘC THỜI GIAN GIỮA CÁC THÀNH PHẦN TRONG CHƯƠNG TRÌNH TƯƠNG TRANH LUẬN VĂN THẠC

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Phạm Thanh Hải

NGHIÊN CỨU VỀ ĐẶC TẢ VÀ KIỂM CHỨNG RÀNG BUỘC THỜI GIAN GIỮA CÁC THÀNH PHẦN TRONG

CHƯƠNG TRÌNH TƯƠNG TRANH

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Hà Nội - 2015

HÀ NỘI - 2011

Trang 2

Lời Cam Đoan

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Phạm Thanh Hải

NGHIÊN CỨU VỀ ĐẶC TẢ VÀ KIỂM CHỨNG RÀNG BUỘC THỜI GIAN GIỮA CÁC THÀNH PHẦN TRONG

CHƯƠNG TRÌNH TƯƠNG TRANH

Ngành: Công nghệ thông tin

Chuyên ngành : Kỹ thuật phần mềm

Mã số: 60480103

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Nguyễn Việt Hà

Hà Nội - 2015

Trang 3

LỜI CÁM ƠN

Đầu tiên tôi xin gửi lời cảm ơn sâu sắc tới thầy giáo PGS.TS Nguyễn Việt Hà, 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 và tận tình hướng dẫn chỉ bảo tôi trong suốt quá trình thực hiện luận văn tốt nghiệp này

Tôi cũng xin trân trọng cảm ơn quý thầy cô trong 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 những kiến thức quý báu trong suốt hai năm học làm nền tảng cho tôi thực hiện luận văn tốt nghiệp này

Tôi cũng xin được cảm ơn các tác giả của các công trình nghiên cứu, tài liệu đã được tôi sử dụng, trích dẫn trong luận văn vì đã cung cấp nguồn tư liệu quý báu và các kiến thức liên quan để tôi thực hiện luận văn

Con xin cảm ơn cha mẹ và gia đình đã sinh ra và nuôi dạy con khôn lớn, luôn bên cạnh động viên và ủng hộ con trên con đường mà con yêu thích và lựa chọn

Cám ơn các bạn học viên cao học Khoa công nghệ thông tin khóa K19 Các bạn đã giúp đỡ và ủng hộ tôi rất nhiều cũng như đóng góp nhiều ý kiến quý báu, qua đó giúp tôi hoàn thiện luận văn tốt hơn

Mặc dù đã rất nỗ lực, cố gắng nhưng chắc hẳn luận văn của tôi vẫn còn nhiều thiếu sót Tôi rất mong nhận được nhiều những ý kiến đánh giá quý, phê bình của quý thầy cô, của anh chị và các bạn

Một lần nữa tôi xin chân thành cảm ơn!

Hà Nội, tháng 11 năm 2015

Phạm Thanh Hải

Trang 4

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn tốt nghiệp “Nghiên cứu về đặc tả và kiểm chứng ràng buộc thời gian giữa các thành phần trong chương trình tương tranh” là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn của PGS.TS Nguyễn Việt Hà Các số liệu các kết quả được trình bày trong luận văn là hoàn toàn trung thực và chưa từng được công bố trong bất kỳ một công trình nào khác

Tôi đã trích dẫn đầy đủ các tài liệu tham khảo, công trình nghiên cứu liên quan ở trong nước và quốc tế Ngoại trừ các tài liệu tham khảo này, luận văn hoàn toàn là công việc của riêng tôi

Nếu có phát hiện nào về sự gian lận sao chép tài liệu, công trình nghiên cứu của tác giả khác mà không được ghi rõ trong phần tài liệu tham khảo, tôi sẽ chịu hoàn toàn trách nhiệm về kết quả luận văn của mình

Trang 5

MỤC LỤC

LỜI CÁM ƠN i

LỜI CAM ĐOAN ii

MỤC LỤC iii

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT v

DANH SÁCH BẢNG vi

DANH SÁCH HÌNH VẼ vii

Chương 1 Giới thiệu Error! Bookmark not defined 1.1 Bối cảnh Error! Bookmark not defined 1.2 Một số nghiên cứu liên quan Error! Bookmark not defined 1.3 Nội dung nghiên cứu Error! Bookmark not defined 1.4 Cấu trúc luận văn Error! Bookmark not defined Chương 2 Kiến thức cơ sở Error! Bookmark not defined 2.1 Kiểm chứng phần mềm Error! Bookmark not defined 2.1.1 Kiểm chứng hình thức Error! Bookmark not defined 2.1.1.1 Kiểm chứng mô hình Error! Bookmark not defined 2.1.1.2 Chứng minh định lý Error! Bookmark not defined 2.1.2 Kiểm chứng tại thời điểm thực thi Error! Bookmark not defined 2.2 Một số vấn đề trong chương trình tương tranh Error! Bookmark not defined 2.3 Sự tương tranh trong Java Error! Bookmark not defined 2.4 Lập trình hướng khía cạnh Error! Bookmark not defined 2.4.1 Thực thi cắt ngang Error! Bookmark not defined 2.4.2 Điểm nối Error! Bookmark not defined 2.4.3 Hướng cắt Error! Bookmark not defined 2.4.4 Mã hành vi Error! Bookmark not defined 2.4.5 Khía cạnh Error! Bookmark not defined 2.4.6 Cơ chế hoạt động của AspectJ Error! Bookmark not defined 2.5 Kết luận Error! Bookmark not defined.

Trang 6

Chương 3 Ràng buộc thời gian giữa các thành phần trong chương trình tương tranh

Error! Bookmark not defined 3.1 Giới thiệu Error! Bookmark not defined 3.2 Bài toán kiểm chứng ràng buộc thời gian giữa các thành phần tương tranh Error! Bookmark not defined.

3.3 Phương pháp đặc tả và kiểm chứng ràng buộc thời gianError! Bookmark not defined.

3.3.1 Mô tả phương pháp Error! Bookmark not defined 3.3.2 Đặc tả ràng buộc thời gian Error! Bookmark not defined 3.3.3 Biểu thức chính quy thời gian Error! Bookmark not defined 3.3.4 Phương pháp sinh mã aspect Error! Bookmark not defined 3.3.4.1 Đọc và phân tích biểu thức chính quy thời gianError! Bookmark not defined.

3.3.4.2 Sinh mã aspect Error! Bookmark not defined 3.4 Kết luận Error! Bookmark not defined Chương 4 Thực nghiệm Error! Bookmark not defined 4.1 Xây dựng công cụ TVG Error! Bookmark not defined 4.1.1 Đọc và phân tích biểu thức chính quy thời gian Error! Bookmark not defined 4.1.2 Sinh mã aspect Error! Bookmark not defined 4.2 Kiểm chứng một số chương trình Error! Bookmark not defined 4.2.1 Kiểm chứng chương trình tuần tự Error! Bookmark not defined 4.2.2 Kiểm chứng chương trình tương tranh Error! Bookmark not defined Chương 5 Kết luận Error! Bookmark not defined Phụ lục Error! Bookmark not defined Phụ lục A Công cụ sinh mã kiểm chứng TVG Error! Bookmark not defined A.1 Giới thiệu Error! Bookmark not defined A.2 Hướng dẫn sử dụng Error! Bookmark not defined A.2.1 Các yêu cầu cài đặt Error! Bookmark not defined A.2.2 Các chức năng chính Error! Bookmark not defined A.2.3 Hướng dẫn thực hiện Error! Bookmark not defined.

Trang 7

TÀI LIỆU THAM KHẢO 1 Tiếng Việt 1 Tiếng Anh 1

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ 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 CFG Context Free Grammar Văn phạm phi ngữ cảnh

IDE Integrated Development Môi trường pháp triển tích hợp

Environment MCS Method Call Sequence Tuần tự gọi phương thức

OOP Object Oriented Programming Lập trình hướng đối tượng

Trang 8

DANH SÁCH BẢNG

Bảng 2.1 - Ánh xạ giữa các loại điểm nối (joinpoint) và hướng cắt (pointcut) tương

ứng Error! Bookmark not defined.

Trang 9

DANH SÁCH HÌNH VẼ

Hình 1.1 – Kiểm chứng chương trình mức cài đặt sử dụng lập trình AOP Error! Bookmark not defined.

Hình 2.1 – Ví dụ sử dụng phương thức run Error! Bookmark not defined.

Hình 2.2 – Xung đột các tiến trình trong Java Error! Bookmark not defined.

Hình 2.3 – Sử dụng synchoronized để giải quyết tương tranhError! Bookmark not

defined.

Hình 2.4 – Xử lý cắt ngang trong lập trình OOP Error! Bookmark not defined Hình 2.5 – Xử lý cắt ngang trong lập trình AOP Error! Bookmark not defined Hình 2.6 – Biểu diễn một khía cạnh với mã hành vi trước và sauError! Bookmark not defined.

Hình 2.7 – Cấu trúc cơ bản của một khía cạnh Error! Bookmark not defined.

Hình 3.1 – Mã nguồn một chương trình bao gồm thành phần tuần tự và tương tranh

Error! Bookmark not defined Hình 3.2 – Mô tả quá trình chạy các phương thức Error! Bookmark not defined Hình 3.3 – Phương pháp kiểm chứng ràng buộc thời gian.Error! Bookmark not defined.

Hình 3.4 – Thuật toán đọc biểu thức chính quy thời gian.Error! Bookmark not defined.

Hình 3.5 – Ví dụ một mẫu aspect Error! Bookmark not defined Hình 3.6 – Thuật toán Sinh mã aspect Error! Bookmark not defined Hình 4.1 – Cài đặt công cụ TVG bằng Netbean 7.0.1 Error! Bookmark not defined Hình 4.2 – Một đoạn mã aspect sinh ra từ công cụ TVG.Error! Bookmark not defined.

Hình 4.3 – Pattern kiểm tra từng thành phần trong TREError! Bookmark not defined.

Hình 4.4 – Lớp TimingMethod Error! Bookmark not defined.

Trang 10

Hình 4.5 – Quá trình đọc và phân tích biểu thức TRE Error! Bookmark not defined Hình 4.6 – Tạo mã aspect từ các mẫu đã định nghĩa Error! Bookmark not defined Hình 4.7 – Template aspectHead Error! Bookmark not defined Hình 4.8 – Template aspectTail Error! Bookmark not defined Hình 4.9 – Mã nguồn một chương trình tuần tự Error! Bookmark not defined Hình 4.10 – Kết quả thực nghiệm ca kiểm thử đúng chương trình tuần tự Error! Bookmark not defined.

Hình 4.11 – Kết quả thực nghiệm ca kiểm thử sai chương trình tuần tự Error! Bookmark not defined.

Hình 4.12 – Mã nguồn một chương trình tương tranh Error! Bookmark not defined Hình 4.13 – Kết quả thực nghiệm ca kiểm thử đúng chương trình tương tranh Error! Bookmark not defined.

Hình 4.14 – Kết quả thực nghiệm ca kiểm thử sai chương trình tương tranh Error! Bookmark not defined.

Hình A.1 – Giao diện chính của công cụ sinh mã TVG Error! Bookmark not defined Hình A.2 – Đặc tả ràng buộc thời gian các thành phần bằng TREError! Bookmark not defined.

Hình A.3 – Đan mã aspect với mã chương trình Java viết bằng Eclipse Error! Bookmark not defined.

Trang 11

TÀI LIỆU THAM KHẢO

Tiếng Việt

[1] Trịnh Thanh Bình, Trương Ninh Thuận, và Nguyễn Việt Hà (2010) 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, Số 2 : 173-184

Tiếng Anh

[2] A Colyer and A Clement., "Aspect-oriented programming with AspectJ," IBM Syst J., 44(2), 2005, p 301–308

[3] Addison-Wesley (2005), in Aspect-Oriented Software Development, R Filman, T

Elrad, S Clarke and a M Ak¸sit, Eds., Boston

[4] Benveniste A (September 1998), "Safety critical embedded systems design: the

sacres approach," in In Formal Techniques in Real-Time and Fault Tolerant systems, FTRTFT’98 school, Lyngby, Denmark

[5] B Berard, M Bidoit, A Finkel, F Laroussinie, A Petit, L Petrucci and a P Schnoebelen (1999), Systems and software verification : model-checking

Trang 12

techniques and tools, New York, NY: Springer-Verlag New York, Inc

[6] B Long, P Strooper and a L Wildman (2007), "A method for verifying concurrent Java components based on an analysis of concurrency failures: Research articles," Concurr Comput : Pract Exper.,19, p 281–294

[7]

C Baier and J.-P Katoen (2008), Principles of Model Checking(Representation and Mind Series), The MIT Press

[8] C Yoonsik and A Perumandla (2005), "A Specifying and checking method call

sequences in JML," in In Software Engineering Research and Practice, CSREA

Press

[9] C Yoonsik and A Perumandla (2007), "Specifying and checking method call

sequences of Java programs," in Software Quality Control

[10] D Dymek and K Leszek (2008), "Estimation of system workload time

characteristic using uml timing diagrams," in In Proceedings of the 2008 Third International Conference on Dependability of Computer Systems, Washington,

DC, USA

[11] E Asarin, Maler and P C a Oded, "Timed regular expressions," Journal of the ACM,, no 49, Journal of the ACM

[12] E Bodden and K Havelund (2010), "Aspect-oriented race detection in Java," IEEE Trans Softw Eng., 36(4), p 509–527

[13] E Bodden (2004), A lightweight LTL runtime verification tool for Java, New York, NY: In Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, OOPSLA

’04

[14] E Bodden (2005), J-LO - A tool for runtime-checking temporal assertions, Diploma thesis

[15] E Clarke, O Grumberg and a D Long (1994), "Model checking and abstraction," ACM Trans Program Lang Syst., 16(5), pp 1512–1542

[16] E Hilsdale and J Hugunin (2004), "Advice weaving in AspectJ," in In Proceedings of the 3rd international conference on Aspect-oriented software

Trang 13

development, New York, NY, USA

[17] E Hajiyev, L Hendren, O d Moor, P Avgustinov, E B.- den, O Lhotak, N Ongkingco, D Sereni, G Sittampalam, J Tibble and a M Verbaere (2006),

"Aspects for Trace Monitoring," vol volume 4262 of Lecture Notes in Computer Science, Springer, In Klaus Havelund, Manuel Nunez, Grigore Rosu, and Burkhart Wolff, editors, Formal Approaches to Testing Systems and Runtime Verification (FATES/RV), p 20–39

[18] e Saddek Bensalem and Doron Peled (2009), Runtime Verification : 9th International Workshop, Grenoble: Selected Papers Springer-Verlag, Berlin, Heidelberg

[19] G Andrews (1991), Concurrent Programming : Principles and Practice, Addison- Wesley

[20] G Hui and J Woo (2007), "Compositional verification of timing constraints for

embedded real-time systems," in In Proceedings of the 6th Conference on WSEAS International Conference on Applied Computer Science, USA

[21] G Holzmann (2003), Spin model checker, the : primer and reference manual, 1st ed., Addison-Wesley Professional

[22] G Kiczales, E Hilsdale, J Hugunin, M Kersten, J Palm and a W G Griswold

(2001), "An Overview of AspectJ," in In ECOOP ’01 : Proceedings of the 15th European Conference on Object-Oriented Programming, London, UK

[23] G Kiczales, J Lamping, A Mendhekar, C Maeda, C Lopes, J m Loingtier and

a J Irwin (1997), Aspect-oriented programming, SpringerVerlag: In ECOOP

[24] I Sommerville (2007), Software Engineering, 9th ed., Addison-Wesley Pulishing Company, p 9780321493750

[25] J.-R Abrial (2006), "Formal methods in industry : achievements, problems, future," Swiss Federal Institute of Technology Zurich, In ICSE, p 761–768

[26] J.-R Abrial (2010), Modeling in Event-B : System and Software Engineering, New York, NY: Cambridge University Press

[27] J.-R Abrial (1996), The B-book : assigning programs to meanings, New York,

Trang 14

NY: Cambridge Uni- versity Press

[28] L Yang (2008), "The Automated Translation of Integrated Formal Specifications into Concurrent Programs," PhD thesis, University of Southampton, Southampton

[29] M Ben-Ari (2008), Principles of the Spin Model Checker, 1st ed

[30] Nixon P and Shi L (1996), "Concurrent semantics for structured design

methods," in In Proceedings of the First IFIP TC10 International Workshop on Software Engineering for Parallel and Distributed Systems, London, UK, UK

[31] P Strooper and L Wildman (2007), "Testing Concurrent Java Components," in In Companion to the proceedings of the 29th International Conference on Software Engineering, Washing- ton, DC, USA

[32] S Berezin (2002), Model checking and theorem proving : a unified framework, Pittsburgh, PA: PhD thesis

[33] Wegener J and Grochtmann M (1998), "Verifying timing constraints of real-time systems by meansof evolutionary testing," Real-Time Syst, p 275–298

[34] W Visser, K Havelund, G Brat and a S Park (2000), "Model checking

programs," in In ASE ’00 : Proceedings of the 15th IEEE international conference

on Automated software engineering, Washington, DC, USA

[35] Y Jin (2007), "Formal verification of protocol properties of sequential Java

programs," in In Proceedings of the 31st Annual International Computer Software and Applications, Washington

Ngày đăng: 27/08/2016, 22:41

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w