Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 77 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
77
Dung lượng
0,96 MB
Nội dung
1 HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - ĐỖ ĐỨC TRUNG LUẬN VĂN THẠC SỸ KĨ THUẬT HÀ NỘI – 2016 HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - ĐỖ ĐỨC TRUNG NGHIÊN CỨU PHƯƠNG PHÁP DỰ ĐOÁN LỖI PHẦN MỀM LIÊN DỰ ÁN CHUYÊN NGÀNH : MÃ SỐ: KHOA HỌC MÁY TÍNH 60.48.01 LUẬN VĂN THẠC SĨ KỸ THUẬT NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS TỪ MINH PHƯƠNG HÀ NỘI – 2016 LỜI CAM ĐOAN Tôi cam đoan cơng trình nghiên cứu riêng tơi Các số liệu, kết nêu luận văn trung thực chưa công bố cơng trình khác TÁC GIẢ LUẬN VĂN ĐỖ ĐỨC TRUNG LỜI CẢM ƠN Trong suốt trình học tập thực luận văn, nhân nhiều quan tâm giúp đỡ, hướng dẫn tận tình thầy với lời động viên khuyến khích từ phía gia đình, bạn bè Tôi xin bày tỏ lời cảm ơn chân thành đến tất người Tơi xin tỏ lịng biết ơn sâu sắc đến thầy Từ Minh Phương tận tình hướng dẫn, định hướng cho tơi q trình thực đề tài Thầy cho tơi lời khuyên, dẫn, truyền đạt cho kiến thức, kinh nghiệm việc thực luận văn Tôi xin cảm ơn thầy cô khoa Quốc tế đào tạo sau đại học, học viện Công nghệ Bưu Viễn thơng tận tình dạy dỗ cho tơi kiến thức bổ ích suốt q trình hai năm học tập, giúp nâng cao chuyên mơn, làm tảng để tơi hồn thành luận văn, tự tin phát triển công việc sau Cuối cùng, muốn gửi lời cảm ơn tới gia đình bạn bè, người thân bên, cảm thông, hỗ trợ, giúp đỡ khó khăn cơng việc, sống trình học tập Hà Nội tháng 11 năm 2016 Đỗ Đức Trung MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC BẢNG BIỂU DANH MỤC HÌNH VẼ VÀ SƠ ĐỒ MỞ ĐẦU Chương 1: Tổng quan dự đoán lỗi liên dự án phần mềm 11 1.1 Bài toán dự đoán lỗi phần mềm 14 1.2 Các cách tiếp cận toán dự đoán lỗi 15 1.2.1 Tiếp cận dựa change log 16 1.2.2 Tiếp cận kiểu single-version 17 1.2.3 Các cách tiếp cận khác 18 1.3 Tổng quan dự đoán lỗi phần mềm sử dụng học máy 18 1.4 Giới thiệu vấn đề dự đoán lỗi liên dự án 20 1.5 Các phương pháp gần nghiên cứu để giải vấn đề 21 1.6 Kết luận chương 22 Chương 2: Phương pháp CCA áp dụng giải vấn đề dự đoán lỗi liên dự án 24 2.1 Các vấn đề phát sinh thực dự đoán lỗi liên dự án 24 2.2 Trích xuất đặc trưng từ mã nguồn dự án 25 2.3 Giới thiệu phương pháp CCA 29 2.3.1 Tổng quan phân tích tương quan tắc (Canonical Correlation Analysis) .29 2.3.2 Ứng dụng phân tích tương quan tắc việc giải vấn đề th ực tế 38 2.4 Xây dựng liệu chung cho dự án nguồn đích 41 2.5 Áp dụng phương pháp CCA cho dự đoán lỗi liên dự án 44 2.5.1 Áp dụng phương pháp CCA 44 2.5.2 Tổng quan phân loại knn với khoảng cách Euclidean 47 2.6 Kết luận chương 52 Chương 3: Thử nghiệm đánh giá 53 3.1 Thu thập liệu từ dự án khác 53 3.2 Các phép đánh giá 57 3.3 So sánh với phương pháp TCA 64 3.3.1 Tổng quan phương pháp TCA 65 3.3.2 So sánh TCA với CCA 65 3.4 Độ phức tạp thời gian thực 67 3.5 Kết luận chương 68 KẾT LUẬN 69 DANH MỤC TÀI LIỆU THAM KHẢO 70 DANH MỤC BẢNG BIỂU Bảng Bảng tổng quan liệu dự án sử dụng kiểm thử 54 Bảng Số đặc trưng tương đương công ti 56 Bảng Kết chạy cho trường hợp 1-1 62 Bảng Kết chạy cho trường hợp 1-n 63 Bảng So sánh phương pháp CCA TCA 66 Bảng So sánh kết thực nghiệm phương pháp CCA TCA .67 DANH MỤC HÌNH VẼ VÀ SƠ ĐỒ Hình Tam giác dự án 11 Hình Biểu đồ biểu thị quan hệ tỉ lệ thành công quy mơ dự án [1] 12 Hình Mơ hình dự đoán lỗi [28] 15 Hình Tiếp cận dựa change log [29] 17 Hình Các bước xây dựng mơ hình dự đốn lỗi sử dụng học máy 20 Hình Ví dụ tìm hình ảnh [30] 39 Hình Ví dụ computer vision [30] 40 Hình Ví dụ phân đoạn hình ảnh [30] 40 Hình Xây dựng cách biểu diễn thống 44 Hình 10 Áp dụng CCA tạo khơng gian chung cho liệu nguồn đích [31] 47 Hình 11 Ví dụ tốn k-nn [32] 49 Hình 12 Minh họa cho toán phân loại k-nn [32] 50 Hình 13.Minh họa với giá trị k [32] 51 Hình 14 Minh họa kết chạy thực nghiệm 61 MỞ ĐẦU Xây dựng dự án phần mềm thành công mối quan tâm hàng đầu tổ chức doanh nghiệp, doanh nghiệp công nghiệp công nghệ thông tin Đặc biệt quan trọng trình quản lý, kiểm soát tiến độ đảm bảo chất lượng dự án Lỗi phần phát sinh tất yếu phát triển vận hành phần mềm hệ thống Phần mềm hệ thống phức tạp xuất nhiều lỗi Lỗi tác động tới phần mềm hệ thống xây dựng vận hành theo nhiều cách khác nhau, nhẹ hệ thống hoạt động bình thường lỗi tồn tại, nặng hệ thống ngừng hoạt động xuất lỗi Do để giảm thiểu hậu lỗi gây tiết kiệm chi phí người ta cố gắng phát lỗi giai đoạn phát triển phần mềm phát sớm tốt, từ xuất phương pháp dự đoán lỗi phần mềm Một phương pháp dự đoán lỗi phần mềm quan tâm nhiều phương pháp dự đoán lỗi sử dụng học máy có giám sát sở mã nguồn liệu có trình phát triển phần mềm Cụ thể, file mã nguồn biểu diễn đặc trưng, sau huấn luyện mơ hình phân lớp (classification) hồi quy (regrestion) liệu huấn luyện file kiểm thử lỗi dùng mơ hình để dự đốn lỗi cho file chưa kiểm thử Việc xây dựng liệu huấn luyện dễ dàng liệu xây dựng dựa mã nguồn xác định lỗi dự án thực trước có tính đồng với mã nguồn dự án đích.Vấn đề đặt mã nguồn đồng với mã nguồn dự án đích có số lượng khơng nhiều dẫn tới việc mơ hình xây dựng nên hoạt động thiếu xác Chính vậy, việc đưa phương pháp cho phép xây dựng tập liệu tận dụng liệu sẵn có dự án với mã nguồn không đồng với mã nguồn dự án đích quan trọng Một cách tiếp cận với vấn đề phương pháp CCA (canonical correlation analysis) Đề tài em tập trung vào tìm hiểu cách tiếp cận nhằm nâng cao khả dự đoán lỗi phần mềm Hiện nay, có số cách tiếp cận cho phép trích xuất kiến thức chung từ dự án chuyển sang dự án khác kiến thức dùng để huấn luyện cho mơ hình dự đốn lỗi như: TCA (Transfer Component Analyst), TCA+, … Do tốn có ý nghĩa thực tiễn cao cá nhân, tổ chức thực dự án phát triển phần mềm, hệ thống nên phương pháp dùng liệu dự án để huấn luyện cho dự án khác tiếp tục nghiên cứu Trong luận văn em nghiên cứu phương pháp CCA so sánh với phương pháp TCA đề cập Phương pháp nghiên cứu luận văn phương pháp học chuyển đổi với mục đích làm cho liệu cơng ti đích giống với cơng ti nguồn CCA phương pháp hiệu tối đa hóa tương quan liệu nguồn đích giúp nâng cao xác suất dự đoán lỗi dự án - Đối tượng: Phương pháp tiếp cận CCA dự đoán lỗi, mã nguồn dự án - Phạm vi nghiên cứu: Dự đoán lỗi mã nguồn dự án sử dụng liệu dự án khác Phương pháp nghiên cứu: - Tìm hiểu vấn đề dự đoán lỗi dự án liên dự án, khó 61 Hình 14 Minh họa kết chạy thực nghiệm Dưới chi tiết thực nghiệm kết thu được: Bảng bên cho thấy giá trị Recall, F-Measure False positive trường hợp dự đoán lỗi liên dự án kiểu - với 28 số liệu thơng thường tồn liệu nguồn đích SOURCE=>TA RGET Apache 62 ar3 -> Apache CM1 Apache Apache CM1 AR3 -> CM1 -> AR3 EQ -> AR3 AR3 -> EQ Bảng Kết chạy cho trường hợp 1-1 Bảng thực nghiệm dự đoán lỗi liên dự án trường hợp - nhiều SOURCE=>TARG ET AR3 {CM1,PC1,MW1} {CM1,PC1,MW1} > AR3 63 AR4 {CM1,PC1,MW1} {CM1,PC1,MW1} > AR4 AR5 {CM1,PC1,MW1} {CM1,PC1,MW1} > AR5 CM1 AR5} MW1 AR4, AR5} PC1 AR5} 64 Từ hai bảng trên, thấy lượng liệu đầu vào tăng F-Measure tăng theo, ví dụ lấy từ là: ar3 => cm1: 0.33 xuống ar3 => {cm1, pc1, mw1} tăng lên 0.36 cm1 => ar3: 0.43 xuống {cm1, pc1, mw1} => ar3 tăng lên 0.62 Đi kèm với việc độ xác dự đoán tăng nhẹ gộp nhiều dự liệu dự án công ti làm thành liệu để huấn luyện 3.3 So sánh với phương pháp TCA Hầu hết kỹ thuật học tập chuyển đổi xây dựng nhằm mục đích để giải nén kiến thức chung từ miền chuyển đến miền khác, kiến thức chuyển đổi sử dụng để huấn luyện mơ hình dự đốn Phương pháp CCA đề xuất dựa sở trên, bên cạnh có phương pháp khác hướng tới mục tiêu học chuyển đổi, TCA [13] Phương pháp TCA phương pháp đề xuất cho kết tốt toán dự đoán lỗi chéo miền Chính vậy, TCA lựa chọn để so sánh với phương pháp CCA trình bày luận văn TCA phương pháp nhằm tìm khơng gian đặc trưng tiềm ẩn cho liệu dự án nguồn đích cách giảm thiểu khoảng cách liệu bảo toàn thuộc tính liệu gốc Khi có khơng gian tiềm ẩn này, chiếu liệu dự án nguồn đích vào Bằng cách này, TCA cố gắng khám phá tính cho liệu dự án nguồn đích, để biến đổi liệu dựa vào biểu diễn tính Kết là, khác biệt phân phối liệu 65 giảm Đây khía cạnh giống TCA CCA 3.3.1 Tổng quan phương pháp TCA Về mặt toán học, TCA cố gắng học biến đổi φ để chuyển đổi liệu gốc nguồn đích đến khơng gian tiềm ẩn nơi khác biệt miền Dist(φ (2"), φ (2$)) nhỏ^và {phương sai liệu sau chuyển đổi Var ( { φ (2"), φ (2$)}) lớn Giả sử chuyển đổi φ định nghĩa: ú ú chuyển đổi vector tính ban đầu vào khơng gian d-chiều Khi đó, mục tiêu TCA mức cao viết sau: 1\ù [ûü φ với ràng buộc φ (2") φ (2$) φ học cách giảm thiểu khác biệt domain thỏa mãn số ràng buộc để bảo toàn liệu sau chuyển đổi, R (φ) thuật ngữ quy φ để tránh overfitting, λ ≥ tham số cân để kiểm soát ảnh hưởng R (φ) hàm mục tiêu Nói tóm lại mục tiêu TCA là: xây dựng nên không gian chung cho liệu dự án nguồn đích, làm giảm khác biệt phân bố liệu hai dự án 3.3.2 So sánh TCA với CCA Trong phần trước luận văn trình bày nét phương pháp TCA, phần so sánh TCA với cách tiếp cận luận văn CCA lý thuyết thực nghiệm CCA TCA 66 Mụ c đích Làm cho phân bố liệu nguồn đích giống Chiếu liệu nguồn đích vào không gian khác thấp chiều Ý tưởng để giảm thiểu khác biệt Th ực thi Áp dụng CCA để học Giảm khoảng cách cặp chuyển đổi tương ứng với phân bố liệu bảo hai tập biến cho biến sau tồn thuộc tính gốc chuyển đổi có độ tương quan lớn Inp ut Các dự án đầu vào Dữ liệu nguồn đích phải khác metric, điều có xây dựng nghĩa metric nguồn metric đích khác hoàn toàn, giống hoàn toàn, tồn vài metric tương đương Out put Ma trận chuyển đổi giúp chuyển vector m chiều sang d chiều (d < m) Bảng So sánh phương pháp CCA TCA Nói tóm lại, TCA CCA có chung mục đích ý tưởng, khác mặt thực thi, đầu vào đầu ra, qua bảng so sánh trên, thấy CCA có 67 điểm TCA việc đồng liệu nguồn đích khác metric sử dụng Tiếp theo số so sánh thực nghiệm, thông số bảng bên độ đo F-Measure, kết TCA+ tham chiếu [], kết CCA lấy từ thực nghiệm thực tế: CM1=>Apache Apache=>CM1 AR3=>Apache Apache=>AR3 Bảng So sánh kết thực nghiệm phương pháp CCA TCA Có thể thấy CCA thực thi tốt TCA hầu hết trường hợp, nguyên nhân kể đến CCA sử dụng tất số liệu có dự án khơng sử dụng số liệu chung TCA 3.4 Độ phức tạp thời gian thực Với hỗ trợ matlab cộng với việc số lượng file thu thập chưa phải lớn nên thời gian thực thi nhanh - Đối với trường hợp dự đoán kiểu - một, thời gian trung bình chạy 0.35s / lần thực nghiệm - Đối với trường hợp dự đốn kiểu - nhiều, thời gian trung bình chạy 0.43s / lần thực nghiệm 68 - Với việc chạy 20 trường hợp kiểm thử bao gồm hai kiểu thời gian chạy là: 7.22s 3.5 Kết luận chương Chương ba đồ án trình bày trình thực nghiệm đánh giá kết quả, so sánh cách tiếp cận CCA đề xuất với cách tiếp cận TCA Quá trình thực nghiệm cho kết tích cực phương pháp CCA cho kết tốt tất độ đo Điều giúp luận văn khẳng định tính khả thi cách tiếp cận đề tính đắn vấn đề lý thuyết trình bày chương hai 69 KẾT LUẬN Dự đốn lỗi nói chung dự đốn lỗi liên dự án nói riêng vấn đề nhiều nhà nghiên cứu quan tâm thời gian gần Giải vấn đề giải phần toán chi phí thực phát triển dự án Dự đốn lỗi thực sớm đủ tốt góp phần giảm chi phí bảo trì phát sinh sau này, đồng thời giúp cải thiện tốt chất lượng hệ thống phần mềm Luận văn nêu tổng quan vấn đề liên quan đến toán dự đốn lỗi nói chung, dự đốn lỗi liên dự án nói riêng, cách tiếp cận Đặc biệt luận văn trọng trình bày vấn đề lý thuyết, giải thuật phương pháp CCA chi tiết bước để thực thi phương pháp Phương pháp cho thấy kết tích cực, điều trình bày chương cuối luận văn 70 DANH MỤC TÀI LIỆU THAM KHẢO [1] Humphrey, W., “Why big software projects fail: The 12 key questions.”, The Journal of Defense Software Engineering, Vol 18, pp 25–29, 2005 [2] The Standish Group, “Chaos Report”, 1995, http://www.cs.nmt.edu/ cs328/reading/Standish.pdf – last visited 15th of June, 2008 [3] Jones, C., “Patterns of Large Software Systems: Failure and Success”, Computer , Vol 28, No 3, pp 86–87, 1995 [4] Brooks, F P., Jr., The mythical man-month (anniversary ed.), Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1995 [5] Verner, J., J Sampson, and N Cerpa, “What factors lead to software project failure?”, Research Challenges in Information Science, 2008 RCIS 2008 Second International Conference on, pp 71 –80, june 2008 [6] N Nagappan and T Ball, “Use of relative code churn measures to predict system defect density,” in Proceedings of ICSE 2005 ACM, 2005, pp 284–292 [7] A E Hassan, “Predicting faults using the complexity of code changes,” in Proceedings of ICSE 2009, 2009, pp 78–88 [8] N Nagappan and T Ball, “Static analysis tools as early indicators of pre-release defect density,” in Proceedings of ICSE 2005 ACM, 2005, pp 580–586 [9] T Zimmermann and N Nagappan, “Predicting defects using network analysis on dependency graphs,” in Proceedings of ICSE 2008, 2008 71 [10] A Marcus, D Poshyvanyk, and R Ferenc, “Using the conceptual cohesion of classes for fault prediction in objectoriented systems,” IEEE Trans Software Eng., vol 34, no 2, pp 287–300, 2008 [11] Y Shi, Z Lan, W Liu, W Bi, Extending semi-supervised learning methods for inductive transfer learning, In: Ninth IEEE International Conference on Data Mining, 2009, pp 483–492 [12] T Kamishima, M Hamasaki, S Akaho, TrBagg:A Simple Transfer Learning Method and Its Application to Personalization in Collaborative Tagging, in: Proceedings of the IEEE International Conference on Data Mining (ICDM), 2009, pp 219–228 [13] Transfer Defect Learning Jaechang Nam , Sinno Jialin Pan†, and Sunghun Kim Department of Computer Science and Engineering, The Hong Kong University of Science and Technology, China [14] Jaechang Nam, Sinno Jialin Pan, and Sunghun Kim Transfer defect learning [15] Thomas Zimmermann, Nachiappan Nagappan, Harald Gall, Emanuel Giger, Brendan Murphy Cross-project Defect Prediction, 2009 [16] G Canfora, A De Lucia, M Di Penta, R Oliveto, A Panichella, and S Panichella Multi-objective cross-project defect prediction In IEEE 6th International Conference on Software Testing, Verification and Validation (ICST), pages 252-261, 2013 [17] S Herbold Training data selection for cross-project defect prediction In Proceedings of the 9th International Conference on Predictive Models in Software 72 Engineering (PROMISE), pages 6-16, 2013 [18] B Zhang and Z Z Shi Classification of big velocity data via cross-domain canonical correlation analysis In International Conference on Big Data, pages 493498, 2013 [19] B Turhan, A T Mısırlı, and A Bener Empirical evaluation of the effects of mixed project data on learning defect predictors Information and Software Technology, 55(6):1101-1118, 2013 [20] X.Y.Jing,R.M.Hu,Y.P.Zhu,S.S.Wu,C.Liang,andJ Y Yang Intra-view and inter-view supervised correlation analysis for multi-view feature learning In 28th AAAI Conference on Artificial Intelligence (AAAI), pages 1882- 1889, 2014 [21] P Baldi, S Brunak, Y Chauvin, C A Andersen, and H Nielsen Assessing the accuracy of prediction algorithms for classification: an overview Bioinformatics, 16(5):412-424, 2000 [22] W Li, L Duan, D Xu, and I W Tsang Learning with augmented features for supervised and semi-supervised heterogeneous domain adaptation IEEE Transactions on Pattern Analysis and Machine Intelligence, 36(6):1134-1148, 2014 [23] F Peters, T Menzies, and A Marcus Better cross company defect prediction In 10th IEEE Working Conference on Mining Software Repositories (MSR), pages 409-418, 2013 [24] WeiFoo HDP Dataset https://github.com/ai-se/HDP/tree/master/dataset 73 [25] M Shepperd, Q Song, Z Sun, and C Mair Data quality: some comments on the NASA software defect datasets IEEE Transactions on Software Engineering, 39(9):1208-1215, 2013 [26] R Wu, H Zhang, S Kim, and S C Cheung Relink: recovering links between bugs and changes In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering (ESEC/FSE), pages 15-25, 2011 [27] M D’Ambros, M Lanza, and R Robbes An extensive comparison of bug prediction approaches In 7th IEEE Working Conference on Mining Software Repositories (MSR), pages 31-41, 2010 [28] Personal Defect Prediction Link: http://www.slideshare.net/hunkim/personalized-defect-prediction-conference-1 [29] Proposed software defect prediction framework Link: https://www.researchgate.net/figure/220069857_fig1_Fig-1-Proposed-softwaredefect-prediction-framework [30] Chen Songcan In Canonical Correlation Analysis (CCA), íts variants with applications [31] Ming Cheng, Guoqing Wu, Min Jiang, Hongyan Wan , Guoan You and Mengting Yuan In Heterogeneous Defect Prediction via Exploiting Correlation Subspace [32] Data mining lecture 10B Link: 74 http://slideplayer.com/slide/9474616/ ... xác suất dự đoán lỗi dự án - Đối tượng: Phương pháp tiếp cận CCA dự đoán lỗi, mã nguồn dự án - Phạm vi nghiên cứu: Dự đoán lỗi mã nguồn dự án sử dụng liệu dự án khác Phương pháp nghiên cứu: - Tìm... vấn đề dự đoán lỗi liên dự án 24 CHƯƠNG 2: PHƯƠNG PHÁP CCA VÀ ÁP DỤNG GIẢI QUYẾT VẤN ĐỀ DỰ ĐOÁN LỖI LIÊN DỰ ÁN Dự đoán lỗi phần mềm (SDP) chủ đề nghiên cứu quan trọng cơng nghệ phần mềm, thu... VỀ DỰ ĐOÁN LỖI LIÊN DỰ ÁN TRONG CÁC PHẦN MỀM Giới thiệu chương: Giới thiệu vấn đề dự đoán lỗi phần mềm, khái niệm, phương pháp dùng dự đoán lỗi Giới thiệu vấn đề dự đoán lỗi liên dự án, đặt vấn