Hướng tiếp cận thời gian thực cho việc tính toán và ước lượng tài nguyên sử dụng của chương trình

52 423 0
Hướng tiếp cận thời gian thực cho việc tính toán và ước lượng tài nguyên sử dụng của chương trình

Đ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

ĐẠ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 TOÁ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ố: 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 TOÁ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 điều kiện tốt từ bắt đầu hoà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 xin chân thành cảm ơn người thân gia đình toàn thể bạn bè giúp đỡ, động viên 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 toán ước lượng tài nguyên 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ổ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 hoàn toà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 toá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 toá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 toá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 toá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 toá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 toán lượng tài nguyên 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 toá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 toá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 toá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 toá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 toán tài nguyên sử dụng trung bình chương trình dựa liệu đầu vào thay dự đoá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 toá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 toá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 toá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 toán học mà hỗ trợ Hiện tại, nghiên cứu luận văn hỗ trợ năm mô hình toán học phổ biến Nghiên cứu tập trung vào việc đo đạc ước lượng tài nguyên tính toá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 đá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 toá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 toán ước lượng tài nguyên 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 Có thể nhận thấy, sai số lỗi mô hình Logarit đo độ phức tạp thuật toán xếp nhanh cao so với mô hình Linear log MRElog = 1.43 -MRElinearLog = 1.04 R2log = 0.39 R2linearLog = Như vậy, mô hình tuyến tính biểu diễn độ phức tạp thuật toán xếp nhanh tốt mô hình logarit 4.2 Thực nghiệm Chúng xây dựng công cụ phần mềm để mô hướng nghiên cứu ngôn ngữ Java Công cụ có hai chức chính: giám sát thiết bị đo đạc xây dựng mô hình Chức giám sát tự động chèn đếm vào chương trình quan sát việc sử dụng tài nguyên cách thực chương trình với đầu vào khác Chúng mô hình hóa việc sử dụng tài nguyên phương pháp hồi quy Bảng 4.1 Số liệu mô hình hỗ trợ Nói chung, cách tiếp cận cho kết xác phương pháp tiếp cận khác (Bảng 3.1) Nhờ hỗ trợ mô hình đa dạng, phương pháp ước tính xác việc sử dụng tài nguyên phần lớn chương trình Cách tiếp cận có thời gian chạy tốt so với phương pháp so sánh Thời gian để tính toán cách tiếp cận phút so với cách tiếp cận trình bày [5, 6] Trong phần lớn thí nghiệm, sử dụng đầu vào ngẫu nhiên tính đơn giản, hoàn thiện hiệu Bảng 4.2 Các thuật toán tiêu chuẩn cho nghiên cứu 36 Thứ nhất, nghiên cứu sinh yếu tố đầu vào thích hợp với chương trình [4], đầu vào ngẫu nhiên tạo số lượng lớn yếu tố đầu vào với độ phủ cao cho chương trình thực Thứ hai, hiệu suất đầu vào ngẫu nhiên tốt nhiều so với phương pháp khác cách đơn giản Có thể thấy phương pháp khác, ví dụ phương pháp [16], nhiều thời gian để tạo yếu tố đầu vào Mặc dù xác định lại kích thước đầu vào phạm vi giá trị tham số để tăng hiệu năng, đầu vào không phản ánh khả mở rộng Đặc biệt, trình bày hai loại thí nghiệm Đầu tiên, đánh giá chương trình thuật toán thông thường để ước tính tất trường hợp có 37 thể có việc sử dụng tài nguyên Thứ hai, chạy nguồn mở có sẵn để xác minh tính ứng dụng công cụ thí nghiệm 4.2.1 Thí nghiệm với thuật toán thông thường Chúng thực thí nghiệm với chương trình thuật toán thông thường liệt kê Bảng 3.2 Chúng lựa chọn phạm vi kích thước mảng từ đến 100.000 tạo mảng để thực thuật toán xếp bọt (Bubble sort), xếp chèn (Insertion sort) xếp nhanh (Quicksort) Trong chương trình tính định thức ma trận, khởi tạo ma trận vuông hai chiều Số lượng cột ma trận từ đến 10 Chương trình thuật toán KMP, có hai thông số: mã nguồn - khu vực tìm kiếm có từ đến 100.000 ký tự, mẫu - chìa khóa tìm kiếm mà đặt bên mã nguồn Cuối cùng, số lượng đĩa toán Tháp Hà Nội 1-20 Chúng chọn phạm vi chúng đủ rộng để bao phủ tất trường hợp có chương trình Đối với chương trình, để phân tích khả mở rộng chương trình, lựa chọn kích thước đầu vào Chúng thực thí nghiệm phép đo trình bày mục 2.1 Kết thực nghiệm trình bày bảng 3.5 Phương trình tính toán chương trình phù hợp với giá trị lý thuyết Thuật toán xếp nhanh có độ phức tạp thuật toán logarit tuyến tính (linearlog), thuật toán xếp bọt (Bubble sort) thuật toán xếp chèn (Insertion sort) có độ phức tạp bậc hai (O(n2)) Thuật toán so khớp chuỗi có độ phức tạp tuyến tính cho hai bước, tổng độ phức tạp tính toán thuật toán tuyến tính Việc sử dụng nhớ stack thuật toán xếp nhanh tính định thức hàm logarit nên việc triển khai chặn lỗi nhớ stack hết nhớ Stack Cuối cùng, tổng số khung stack sử dụng toán Tháp Hà Nội hàm số mũ, việc triển khai có hiệu suất thấp Kết nhận đáng 38 ghi nhận với giá trị cao R2 giá trị thấp MRE cột cuối bảng 3.3 39 Hình 4.7: So sánh phương pháp tiếp cận CF TrendProf Hình 4.7 cho thấy so sánh phương pháp tiếp cận CF TrendProf [5] việc thực thuật toán xếp nhanh (Quicksort) Hình biểu đồ phân tán chi phí tính toán thuật toán quick sort hai hướng tiếp cận Hướng tiếp cận sử dụng mô hình logarit tuyến tính để khớp với liệu quan sát CF-TrendProf sửa dụng mô hình powerlaw Biểu đồ bên độ dư thừa độ lớn mảng hướng tiếp cận hướng tiếp cận CF-TrendProf Cách tiếp cận phương pháp đề xuất trả kết mô hình logarit tuyến tính (linearlog) với phương trình x 1,52 * log (x) -86, tương tự giá trị lý thuyết O(N log (N)) CF-TrendProf hỗ trợ hai mô hình cụ thể powerlaw tuyến tính ép chi phí tính toán theo mô hình powerlaw với phương trình 4x1.13 Sự khác biệt hai kết hiển thị thể biểu đồ hình 3.5 Các thể cho thấy số dư phương pháp tiếp cận chúng tôi, số dư phương trình log tuyến tính phân bố đối xứng quanh đường sở y 40 = 0; Như vậy, kết ước tính xác số lượng chi phí tính toán chương trình Ngược lại, thể phía dưới, số dư CF-TrendProf cho thấy theo dõi chặt chẽ liệu Xu hướng cho thấy kích thước mảng cấp phát chậm so với mô hình powerlaw Các số dư lớn nhiều quan sát Bảng 4.3 Kết thí nghiệm thuật toán tiêu chuẩn Bảng 4.4 Nguồn mở cho nghiên cứu 41 Do đó, powerlaw rõ ràng mô hình phù hợp cho việc ước tính chi phí thuật toán xếp nhanh (Quicksort) Việc ước lượng sai CF-TrendProf thiếu mô hình hỗ trợ hạn chế hiển nhiên phương pháp 4.2.2 Thử nghiệm nguồn mở Chúng ta đánh giá cách tiếp cận nguồn mở liệt kê Bảng 3.4 Đầu tiên, zip4j mã nguồn mở Java cho việc nén giải nén tập tin Chúng giám sát tính toán chức Trong trường hợp trước đây, nhiều tập tin thu thập bao gồm văn bản, hình ảnh, v.v để nén Kích cỡ tập tin từ 10KB đến 50MB Một tập tin dạng nén có chứa tập tin Trong trường hợp sau, sử dụng lại tập tin zip tạo trường hợp trước để đánh giá chức giải nén Thứ hai, JArgs dòng lệnh tùy chọn phân tích toàn diện, để sử dụng lập trình viên Java Đầu vào chương trình chuỗi Đầu chương trình xét đối số có chấp nhận hay không với giá trị đối số chấp nhận Chúng chuẩn bị kích thước đầu vào lên tới 10.000 ký tự Thứ ba, thuật toán Ukkonen xây dựng cấu trúc liệu có tên hậu tố để tìm chuỗi chung Chúng chọn nguồn mở thuật toán để thực thử nghiệm Đầu vào chương trình chuỗi đầu số lượng nút cạnh hậu tố Tương tự JArgs, chuẩn bị kích thước đầu vào lên đến 10.000 ký tự Bảng 4.5 Kết thí nghiệm cho nguồn mở Kết thí nghiệm trình bày Bảng 3.5 Kết zip4j mô tả mối quan hệ chi phí tính toán chương trình kích thước tập tin Kilobyte Kết 42 cho thấy zip4j có chi phí tính toán tuyến tính hai chức năng, hiệu suất đầy hứa hẹn Với JArgs, hiệu khuyến khích nhờ tính toán tuyến tính Kết thuật toán Ukkonen cho thấy việc thực thuật toán tuyến tính phù hợp với chiều dài chuỗi Chi phí tính toán tuyến tính hiệu suất lý thuyết đề cập phần [19] So sánh với xu hướng phần [6], kết ước lượng hai cách tiếp cận tương tự thời gian chạy phương pháp tiếp cận 2.7 giây thời gian chạy xu hướng 3.7 [6] Lý khác biệt hai phương pháp cách tiếp cận sử dụng tiêu chí mục 2.2.2 để xác định kết ước lượng ổn định xác để dừng việc dự toán Ngược lại, xu hướng luôn chạy chương trình với toàn khối lượng công việc sử dụng tiêu chí để đánh giá độ xác dự toán với toàn khối lượng công việc 4.2.3 Các hạn chế mô hình Mặc dù hỗ trợ năm mô hình, phương pháp tiếp cận ước tính mức sử dụng tài nguyên tất chương trình Trong số trường hợp, mô hình hồi quy buộc quan sát mô hình cung cấp, làm kích hoạt tính thiếu xác không ổn định Ví dụ, mô hình phù hợp với mức sử dụng tổng khung ngăn xếp tính DET phương trình ^y = 1.15E7–9.3E6x+2.66E6x2 –3.22E6x3 +1.5E5x4 với R2 = 1.00, giá trị đầy hứa hẹn, MRE 75.68 7,468% lỗi, mức cao Chúng tăng đầu vào với 11 đầu vào có kích thước lớn hơn, đa thức phù hợp phương trình biến đổi thành ^y = 1.07E8–8.17E7x+2.2E7x2 +2.49E6x3 +1E5x4 Giải pháp cho vấn đề thực chương trình số lượng lớn đầu vào đầu phương trình ổn định với giá trị dương R2 MRE, ví dụ R2 [0.75,1] MRE [1] Nếu chương trình không lưu trữ phương trình ổn 43 định sau khoảng thời gian quy định, chương trình dừng lại mà kết Một hạn chế khác nghiên cứu số lượng tính lựa chọn Trong nghiên cứu chúng ta, chọn tính đầu vào không hỗ trợ hai nhiều tính Do đó, chương trình đánh giá khả mở rộng thủ tục tìm kiếm (mẫu, nguồn) mà có hai tính mô tả hai thông số đầu vào cụ thể mẫu nguồn 44 CHƯƠNG KẾT LUẬN Với phát triển bùng nổ ngành công nghệ thông tin, việc đánh giá khả mở rộng chương trình trở thành mảng quan trọng lĩnh vực kiểm chứng kiểm thử chương trình Chúng đề xuất hướng tiếp cận thời gian thực cho việc ước lượng tài nguyên sử dụng chương trình với hai mục đích: Mục đích thứ đánh giá khả mở rộng chương trình mục đích thứ hai tìm lỗi tiềm ẩn chương trình Với chương trình, hướng tiếp cận quan sát tài nguyên sử dụng dựa tập liệu đầu vào Sau liệu quan sát fit với mô hình toán học mà mô tả mối quan hệ tập liệu đầu vào tài nguyên sử dụng chương trình Trong phạm vi nghiên cứu này, tạm thời tập trung vào hai phép đo đạc phép đo chi phí tính toán phép đo khung stack sử dụng Để kiểm chứng hướng tiếp cận này, có xây dựng công cụ ngôn ngữ Java thực thí nghiệm chương trình thuật toán chuẩn chương trình mã nguồn mở Kết thí nghiệm cho thấy khả dự đoán xác hiệu tốt so với hướng tiếp cận thời gian thực khác Ví dụ, hướng tiếp cận dự đoán chi phí tính toán thuật toán xếp nhanh mô hình logarit tuyến tính - cho kết tương tự với giá trị chuẩn theo lý thuyết hướng tiếp cận khác dự đoán dựa mô hình powerlaw Trong tương lai, cải thiện mở rộng thêm nghiên cứu Đầu tiên, hướng tiếp cận bị giới hạn chương trình có đặc điểm đơn giản muốn mở rộng nghiên cứu với chương trình phức tạp Thứ hai, nghiên cứu dựa hướng tiếp cận thời gian thực, tập liệu đầu vào đầy đủ độ xác kết cao Về mặt lý thuyết, tập liệu đầu vào phải bao phủ tất trường hợp phát sinh trường hợp tốt xấu tin tưởng kết hợp phương pháp phân tích tĩnh để sinh tập liệu đầu vào Hiện áp dụng phần phương pháp phân tích tích để lựa chọn tập liệu đầu vào cho phù hợp với chương trình Trong tương lai muốn xây dựng công cụ đưa trường hợp xảy chương trình qua lựa chọn tập liệu 45 đầu vào phù hợp Qua đảm bảo hoàn toàn độ xác tính đắn hướng tiếp cận 46 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 [...]... có rất nhiều cách cài đặt và thực thi cho thuật toán này và lượng tài nguyên sử dụng cho mỗi cách cài đặt là khác nhau Bên cạnh đó, lượng dữ liệu đầu vào sử dụng càng lớn thì thời gian chạy của chương trình lại càng lâu hơn Để giải quyết những vấn đề trên, chúng tôi đề xuất hướng tiếp cận nhằm ước lượng tài nguyên sử dụng của chương trình như mô tả trong hình 2.1 Hướng tiếp cận này bao gồm hai thành... cụ đo đạc và xây dựng mô hình tài nguyên sử dụng Đầu vào của công cụ đo đạc sẽ là chương trình cần ước lượng tài nguyên sử dụng và tập dữ liệu đầu vào của chương trình đó Công cụ đo đạc sẽ tiến hành theo dõi và đo đạc tài nguyên sử dụng dựa trên tập dữ liệu đầu vào bằng cách chạy chương trình này Đầu ra của công cụ đo đạc sẽ là tập dữ liệu được sử dụng làm đầu vào cho phần xây dựng mô hình toán học... các chương trình thời gian thực Một nghiên cứu khác của V.Sarkar [18] mô tả một khuôn khổ chung cho việc xác định thời gian thực hiện chương trình Khuôn khổ mô hình hoá chương trình bằng đồ thị luồng điều khiển Thời gian thực hiện trung bình được ước tính bằng thời gian chạy trung bình của các chi nhánh của nó Ngược lại với [18, 20], phương pháp tiếp cận của chúng ta tập trung vào việc ước tính mức sử. .. [6] 28 CHƯƠNG 4 CÔNG CỤ QUAN SÁT VÀ ĐO ĐẠC TÀI NGUYÊN SỬ DỤNG CHƯƠNG TRÌNH 4.1 Công cụ cài đặt 4.1.1 Mục đích chương trình Chương trình được thiết kế nhằm mục đích do tài nguyên được sử dụng của các chương trình khác nhau Các loại tài nguyên được đo bao gồm: - Độ phức tạp tính toán - Số lượng khung stack được sử dụng, áp dụng đối với chương trình đệ quy - Độ sâu lớn nhất của bộ nhớ stack được sử dụng, ... để chọn bậc của hàm polynomial · -e exponential Sử dụng hàm exponential để mô hình tài nguyên sử dụng · -po power Sử dụng hàm power để mô hình tài nguyên sử dụng · -l logarithmic Sử dụng hàm logarithmic để mô hình tài nguyên sử dụng · -ll linearlog Sử dụng hàm linear log để mô hình tài nguyên sử dụng CLASS: tùy chọn class cần được đo tài nguyên sử dụng Với phiên bản hiện tại, chương trình chỉ hỗ... dữ liệu đầu vào và tài nguyên sử dụng của chương trình Hướng tiếp cận của luận văn sẽ dựa trên tập dữ liệu đầu vào để quan sát và đo đạc tài nguyên sử dụng của chương trình (F(n)) Sau đó áp dụng mô hình hồi qui dựa trên kết quả đo đạc được để sinh ra hàm RF(n) – Hàm xấp xỉ của F(n): F(n) → RF(n) Hướng tiếp cận đề xuất phải đối mặt với ba thách thức chính như sau Thứ nhất đó là hướng tiếp cận này cần... chất lượng cao nên pha kiểm thử luôn được chú trọng và không thể bỏ qua Hơn nữa, mỗi khi phần mềm được nâng cấp thì quá trình kiểm thử được tiến hành lại dẫn đến chi phí đã cao nay càng cao hơn CHƯƠNG 3 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 Giả sử rằng n là một đặc điểm của dữ liệu đầu vào của chương trình, ví dụ như kích cỡ của chương trình, và F(n)... định nghĩa và sử dụng nhiều quầy là các hạn chế của nghiên cứu Ngược lại, cách tiếp cận của chúng ta tự động giám sát việc sử dụng tài nguyên và được chứng minh là có hiệu quả trong cả hai chương trình của thuật toán chuẩn và nguồn lớn 20 J.Navas và đồng nghiệp [15] trình bày một phân tích tĩnh cho các chương trình logic để đo lường các giới hạn trên và dưới của mức sử dụng về kích thước đầu vào Các thông... lượng các chấp hành, thời gian và sử dụng bộ nhớ Mặc dù có những ý tưởng thú vị, cách tiếp cận này vẫn đòi hỏi nguồn tài nguyên người dùng định nghĩa và áp dụng cho các chương trình chuẩn 3.2 Công cụ đo đạc và tập dữ liệu đầu vào của chương trình 3.2.1 Công cụ đo đạc Trong nghiên cứu này, phương pháp đề xuất tiến hành quan sát lượng tài nguyên được sử dụng của chương trình Vì thế, phương pháp này sử. .. việc phải giảm thiểu thời gian chạy và theo dõi của chương trình Thời gian chạy chương trình của hướng tiếp cận này phụ thuộc chủ yếu vào tập dữ liệu đầu vào bởi vì phương pháp này đòi hỏi phải chạy chương trình dựa trên tập dữ liệu đầu vào đó Việc chạy chương trình với quá nhiều dữ liệu đầu vào có thể làm tăng thời gian chạy và đo đạc của nghiên cứu Tuy nhiên, nếu tập dữ liệu đầu vào không đủ thì có ... toá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 toán tài nguyên sử dụng. .. 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... NGHỆ NGUYỄN TRỌNG KHÁNH HƯỚNG TIẾP CẬN THỜI GIAN THỰC CHO VIỆC TÍNH TOÁ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ố:

Ngày đăng: 27/04/2016, 07:36

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan