1. Trang chủ
  2. » Thể loại khác

K17KHMT NguyenTrongKhanh LuanVan(1)

14 128 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 1,22 MB

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN TRỌNG KHÁNH HƯỚNG TIẾP CẬN THỜI GIAN THỰC CHO VIỆC TÍNH TỐN VÀ ƯỚC LƯỢNG TÀI NGUN SỬ DỤNG CỦA CHƯƠNG TRÌNH Ngành: Khoa học máy tính Chun ngành: Khoa học máy tính (hệ chuẩn) Mã Số: 60 48 01 01 LUẬN VĂN THẠC SĨ Ngành: Khoa học máy tính Hà Nội – 2015 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN TRỌNG KHÁNH HƯỚNG TIẾP CẬN THỜI GIAN THỰC CHO VIỆC TÍNH TỐN VÀ ƯỚC LƯỢNG TÀI NGUYÊN SỬ DỤNG CỦA CHƯƠNG TRÌNH Ngành: Khoa học máy tính Chuyên ngành: Khoa học máy tính (hệ chuẩn) Mã Số: 60480101 LUẬN VĂN THẠC SĨ Ngành: Khoa học máy tính NGƯỜI HƯỚNG DẪN KHOA HỌC: TS PHẠM NGỌC HÙNG ĐỒNG HƯỚNG DẪN: PGS TS NGUYỄN VIỆT HÀ Hà Nội – 2015 LỜI CẢM ƠN Trước tiên, xin dành lời cảm ơn chân thành sâu sắc đến thầy PGS TS Phạm Ngọc Hùng PGS TS Nguyễn Việt Hà – người hướng dẫn, khuyến khích, bảo tạo cho tơi điều kiện tốt từ bắt đầu hồn thành cơng việc Tơi xin dành lời cảm ơn chân thành tới thầy cô giáo khoa Công nghệ thông tin, trường Đại học Công nghệ, ĐH QGHN tận tình đào tạo, cung cấp cho kiến thức vô quý giá tạo điều kiện tốt cho suốt trình học tập, nghiên cứu trường Đồng thời tơi xin chân thành cảm ơn người thân gia đình tồn thể bạn bè ln giúp đỡ, động viên tơi lúc gặp phải khó khăn việc học tập nghiên cứu chương trình thạc sĩ Đại học Công nghệ, ĐHQGHN LỜI CAM ĐOAN Tôi xin cam đoan luận văn thạc sĩ công nghệ thông tin “Hướng tiếp cận thời gian thực cho việc tính tốn ước lượng tài ngun sử dụng chương trình” cơng trình nghiên cứu riêng tôi, không chép lại người khác Trong toàn nội dung luận văn, điều trình bày cá nhân tơi tổng hợp từ nhiều nguồn tài liệu Tất nguồn tài liệu tham khảo có xuất xứ rõ ràng hợp pháp Tơi xin hồn tồn chịu trách nhiệm chịu hình thức kỷ luật theo quy định cho lời cam đoan Hà Nội, ngày … tháng … năm 2015 Nguyễn Trọng Khánh MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN DANH MỤC HÌNH VẼ DANH MỤC BẢNG CHƯƠNG GIỚI THIỆU CHƯƠNG TỔNG QUAN VỀ PHÂN TÍCH CHƯƠNG TRÌNH 2.1 Tổng quan kĩ thuật kiểm thử hộp trắng dòng điều khiển 2.2 Quy trình chung kiểm thử hộp trắng dòng điều khiển theo hướng động 2.3 Quy trình chung kiểm thử hộp trắng dòng điều khiển theo hướng tĩnh 11 2.3.1 Các tiêu chí phủ kiểm thử 12 2.3.2 Đồ thị dòng điều khiển 13 2.3.3 Đường kiểm thử 14 2.4 So sánh kĩ thuật kiểm thử hộp trắng dòng điều khiển theo hướng tĩnh động 15 2.5 Tầm quan trọng tự động hóa quy trình kiểm thử hộp trắng dòng điều khiển 16 CHƯƠNG PHƯƠNG PHÁP TIẾP CẬN THỜI GIAN THỰC CHO VIỆC ƯỚC LƯỢNG TÀI NGUYÊN SỬ DỤNG CỦA CHƯƠNG TRÌNH 17 3.1 Các nghiên cứu liên quan 19 3.2 Công cụ đo đạc tập liệu đầu vào chương trình 21 3.2.1 Công cụ đo đạc 21 3.2.2 Tập liệu đầu vào 24 3.3 Thành phần xây dựng mơ hình 25 3.3.1 Phương pháp hồi qui 25 3.3.2 Đánh giá mơ hình tốn học 27 CHƯƠNG CÔNG CỤ QUAN SÁT VÀ ĐO ĐẠC TÀI NGUYÊN SỬ DỤNG CHƯƠNG TRÌNH 29 4.1 Công cụ cài đặt 29 4.1.1 Mục đích chương trình 29 4.1.2 Kiến trúc chương trình 29 4.1.3 Cài đặt chương trình 32 4.1.3 Hướng dẫn sử dụng chương trình 33 4.1.4 Ví dụ 34 4.2 Thực nghiệm 36 4.2.1 Thí nghiệm với thuật tốn thông thường 38 4.2.2 Thử nghiệm nguồn mở 42 4.2.3 Các hạn chế mô hình 43 CHƯƠNG KẾT LUẬN 45 TÀI LIỆU THAM KHẢO 47 DANH MỤC HÌNH VẼ STT Hình 2.1 Hình 2.2 Hình 2.3 Hình 2.4 Hình 3.1 Hình 3.2 Hình 4.1 Hình 4.2 Hình 4.3 Hình 4.4 Hình 4.5 Hình 4.6 Hình 4.7 Nội dung Quy trình chung kiểm thử hộp trắng dòng điều khiển theo hướng động Ví dụ luật chèn mã nguồn DMS/SRT Mã nguồn hàm triangle sau thêm khối mã nguồn Quy trình chung kiểm thử hộp trắng dòng điều khiển theo hướng tĩnh Mơ hình phương pháp với hai thành phần gồm công cụ đo đạc cơng cụ xây dựng mơ hình Trang 10 Thủ tục tính tốn ma trận xác định sau thêm vào đếm để đo đạc tài nguyên chương trình Cấu trúc chương trình 22 Cài đặt đếm cho thuật toán xếp bọtHướng dẫn sử dụng chương trình Cài đặt đếm cho thuật toán tháp hà nội Hướng dẫn sử dụng chương trình Độ phức tạp QuickSort mơ hình logarit tuyến tính Độ phức tạp thuật tốn Quick Sort mơ hình Logarit 32 So sánh phương pháp tiếp cận CF TrendProf 11 11 12 19 28 33 35 36 36 41 DANH MỤC BẢNG STT Nội dung Trang Bảng 4.1 Số liệu mơ hình hỗ trợ 29 Bảng 4.2 Các thuật toán tiêu chuẩn cho nghiên cứu 30 Bảng 4.3 Kết thí nghiệm thuật tốn tiêu chuẩn 33 Bảng 4.4 Nguồn mở cho nghiên cứu 33 Bảng 4.5 Kết thí nghiệm cho nguồn mở 36 CHƯƠNG GIỚI THIỆU Trong thời đại bùng nổ thông tin, mà tất lĩnh vực ngành công nghệ thông tin phát triển mạnh mẽ, điều dẫn đến việc tăng nhanh lượng liệu lưu trữ sử dụng Trong hầu hết tổ chức doanh nghiệp, lượng liệu lưu trữ sử dụng tăng trung bình từ 30% đến 50% năm Lượng thông tin mà tổ chức doanh nghiệp xử lý ngày lên tới 60 terabyte - tăng 1000 lần so với thập niên trước [1] Bởi vậy, việc phần mềm ngày phải có khả mở rộng để xử lý với lượng liệu ngày lớn điều hiển nhiên Ví dụ, chức phần mềm tìm kiếu, xếp hay so sánh, v.v phải làm việc với sở liệu lớn nhiều so với khứ Việc làm tăng độ phức tạp chương trình mà làm tăng nhiều thời gian xử lý chương trình Bởi vậy, việc nghiên cứu đo đạc khả mở rộng chương trình [14] để đảm bảo tính ổn định thời gian chạy hợp lý với người dùng trở thành mảng quan trọng trình phát triển phần mềm Ở thời điểm tại, có ba cách tiếp cận phổ biến cho việc phân tích đo đạc khả mở rộng chương trình dựa độ phức tạp tính tốn lượng tài ngun sử dụng chương trình Cách tiếp cận phân tích tĩnh [8, 17], việc phân tích dự tính tốn độ phức tạp chương trình cách xây dựng mơ hình chương trình dựa trạng thái chúng Hướng tiếp cận xác phù hợp với chương trình nhỏ độ phức tạp tính toán đo đạc lớn Hướng tiếp cận thứ hai hướng tiếp cận amortised mô tả [9,10,12] Hướng tiếp cận đánh giá lượng tài nguyên sử dụng trường hợp xấu chương trình cách quan sát phân tích tất trạng thái hành động chương trình Tương tự hướng tiếp cận đầu tiên, hướng tiếp cận khả thi chương trình nhỏ Hướng tiếp cận thứ ba hướng tiếp cận thời gian thực mô tả nghiên cứu [5, 6, 13] Hướng tiếp cận đo đạc chi phí tính tốn trung bình chương trình chạy Kết chi phí tính toan nghiên cứu [5, 6, 13] tương đồng với mơ hình tốn học đa thức hay lũy thừa Tuy nhiên, nghiên cứu đề có giới hạn liên quan đến số lượng mơ hình tốn học mà họ hỗ trợ thời gian chạy lâu Luận văn đề xuất hướng tiếp cận thời gian thực nhằm giải giới hạn hướng tiếp cận thời gian thực mô tả Hướng tiếp cận đề xuất tính tốn tài ngun sử dụng trung bình chương trình dựa liệu đầu vào thay dự đốn thời gian chạy thực chương trình cách thiếu chọn lọc So sánh với hướng tiếp cận thời gian thực khác, hướng tiếp cận hỗ trợ nhiều mơ hình tốn học có thời gian thực thi nhanh Cụ thể hơn, hướng tiếp cận nghiên cứu gồm hai thành phần Thành phần cơng cụ đo đạc (monitor instrumentation) thành phần thứ hai để xây dựng mơ hình tốn học tương đương (model construction) Đầu tiên, công cụ đo đạc theo dõi đo đạc lượng tài nguyên sử dụng chương trình dựa tập liệu đầu vào tương ứng Sau đó, thành phần xây dựng mơ hình tốn học tiến hành xây dựng để phù hợp liệu kết quan sát với mơ hình tốn học mà chúng tơi hỗ trợ Hiện tại, nghiên cứu luận văn hỗ trợ năm mơ hình tốn học phổ biến Nghiên cứu tập trung vào việc đo đạc ước lượng tài ngun tính tốn độ sâu sử dụng nhớ stack mà chương trình cần hai thước đo để đánh giá tài nguyên chương trình Hướng tiếp cận mở rộng để áp dụng với độ đo tài nguyên khác Tuy nhiên, khuôn khổ nghiên cứu luận văn này, nghiên cứu tập trung vào hai thước đo nêu Bằng cách so sánh kết hướng tiếp cận với kết dựa lý thuyết chúng tơi đánh giá khả mở rộng lỗi tiềm ẩn chương trình Luận văn xây dựng công cụ để mô hướng tiếp cận ngơn ngữ lập trình Java sử dụng công cụ để đo đạc thuật tốn chuẩn số chương trình mã nguồn mở nhằm minh chứng cho tính hiệu phương pháp đề xuất Phần lại luận văn cấu trúc sau Hướng tiếp cận đề xuất nhằm tính tốn ước lượng tài ngun sử dụng chương trình mơ tả chi tiết Chương Chương giới thiệu công cụ cài đặt hỗ trợ phương pháp đề xuất mô tả chi tiết trình thực nghiệm nhằm minh chứng cho tính hiệu phương pháp đề xuất Cuối cùng, kết luận định hướng phát triển tương lai luận văn trình bày Chương TÀI LIỆU THAM KHẢO [1] C Beath, I Becerra-Fernandez, J Ross, and J Short (2012) Finding value in the information explosion MIT Sloan Management Review, 53(4):18 [2] E A Brewer (1995) High-level optimization via automated statistical modeling In Proc of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming, PPOPP ’95, pages 80–91 ACM [3] T H Cormen, C E Leiserson, R L Rivest, and C Stein (2009) Introduction to Algorithms, Third Edition The MIT Press, 3rd edition [4] R Dara, S Li, W Liu, A Smith-Ghorbani, and L Tahvildari (2009) Using dynamic execution data to generate test cases In Software Maintenance ICSM 2009 IEEE International Conference on, pages 433–436 [5] S F Goldsmith (2009) Measuring empirical computational complexity PhD thesis AAI3426551 [6] S F Goldsmith, A S Aiken, and D S Wilkerson (2007) Measuring empirical computational complexity In Proc of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering, ESEC-FSE ’07, [7] pages 395–404 ACM [8] B S Gulavani and S Gulwani (2008) A numerical abstract domain based on expression abstraction and max operator with application in timing analysis In Proc of the 20th international conference on Computer Aided Verification, CAV ’08, pages 370–384 Springer-Verlag [9] S Gulwani, K K Mehra, and T Chilimbi (2009) Speed: precise and efficient static estimation of program computational complexity In Proc of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, POPL ’09, pages 127–139 ACM 47 [10] M Hofmann and S Jost (2003) Static prediction of heap space usage for first-order functional programs In Proc of the 30th ACM SIGPLANSIGACT symposium on Principles of programming languages, POPL ’03, pages 185–197 ACM [11] M Hofmann and S Jost (2006) Type-based amortised heap-space analysis In Proc of the 15th European conference on Programming Languages and Systems, ESOP’06, pages 22–37 Springer-Verlag [12] H Ince (2006) Non-parametric regression methods Computational Management Science, 3(2):161–174 [13] S Jost, H Wolfgang Loidl, K Hammond, N Scaife, and M Hofmann (2009) “carbon credits” for resource-bounded computations using amortised analysis In Formal Methods, NCS 5850, pages 354–36 Springer [14] M Kluge, A Knupfer, and W E Nagel (2005) Knowledge based automatic scalability analysis and extrapolation for mpi programs In Proc of the 11th international Euro-Par conference on Parallel Processing, Euro-Par’05, pages 176–184 Springer-Verlag [15] H H Liu (2009) Software Performance and Scalability: A Quantitative Approach Wiley Publishing [16] J Navas, E Mera, P Lopez-Garcia, and M.V.Hermenegildo (2007) Userdefinable resource bounds analysis for logic programs In Logic Programming, volume 4670 of Lecture Notes in Computer Science, pages 348–363 Springer Berlin Heidelberg [17] C S Pasareanu, P C Mehlitz, D H Bushnell, K Gundy-Burlet, M Lowry, S Person, and M Pape (2008) Combining unit-level symbolic execution and system-level concrete execution for testing nasa software In Proc of the 2008 international symposium on Software testing and analysis, ISSTA ’08, pages 15–26 ACM 48 [18] M Rosendahl (1989) Automatic complexity analysis In Proc of the fourth international conference on Functional programming languages and computer architecture, FPCA ’89, pages 144–156 ACM [19] V Sarkar (1989) Determining average program execution times and their variance In Proc of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, PLDI ’89, pages 298–312 ACM [20] E Ukkonen (1995) On-line construction of suffix trees Algorithmica, 14(3):249–260 [21] R Wilhelm and B Wachter (2008) Abstract interpretation with applications to timing validation In A Gupta and S Malik, editors, Computer Aided Verification, volume 5123 of lecture Notes in Computer Science, pages 22– 36 Springer Berlin Heidelberg, 2008 [22] Nicky Williams, Bruno Marre, Patricia Mouy and Muriel Roger, “PathCrawler: automatic generation of path tests by combining static and dynamic analysis”, In Proc 5th European Dependable Computing Conference (EDCC-5), 2005 [23] Manish Mishra, Shashi Mishra and Rabins Porwal, ”Basic Principle for testcase Generation Automatically”, VSRD-IJCSIT, Vol (9), 2012, pp.772781 [24] Ira D Baxter and CTO, “Branch Coverage for Arbitrary Languages Made Easy” [25] Danila Piatov, Andrea Janes, Alberto Sillitti and Giancarlo Succi, “Using the Eclipse C/C++ Development Tooling as a Robust, Fully Functional, Actively Maintained, Open Source C++ Parser” [26] Sangeeta Tanwer and Dr Dharmender Kumar, “Automatic testcase Generation of C Program Using CFG”, IJCSI International Journal of Computer Science Issues, Vol 7, Issue 4, No 8, July 2010 49 50

Ngày đăng: 18/12/2017, 10:05

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