Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 71 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
71
Dung lượng
3,13 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƢỜNG ĐẠI HỌC BÁCH KHOA LÊ DUY TUẤN ỨNG DỤNG LOGIC MỜ GIẢI BÀI TOÁN ƢỚC LƢỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀM THEO MƠ HÌNH AGILE LUẬN VĂN THẠC SĨ Chuyên ngành: Khoa học máy tính Mã số: 8480101 Đà Nẵng – Năm 2019 ĐẠI HỌC ĐÀ NẴNG TRƢỜNG ĐẠI HỌC BÁCH KHOA LÊ DUY TUẤN ỨNG DỤNG LOGIC MỜ GIẢI BÀI TOÁN ƢỚC LƢỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀM THEO MƠ HÌNH AGILE Chuyên ngành: Khoa học máy tính Mã số: 8480101 LUẬN VĂN THẠC SĨ NGƢỜI HƢỚNG DẪN KHOA HỌC: TS LÊ THỊ MỸ HẠNH Đà Nẵng – Năm 2019 LỜI CAM ĐOAN Tơi cam đoan cơng trình nghiên cứu riêng Các số liệu, kết nêu luận văn hoàn toàn trung thực chƣa đƣợc cơng bố cơng trình khác Tác giả luận văn Lê Duy Tuấn MỤC LỤC DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ MỞ ĐẦU CHƢƠNG I: CƠ SỞ LÝ THUYẾT 11 CƠ SỞ LÝ THUYẾT ƢỚC LƢỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀM 11 1.1 Tổng quan ƣớc lƣợng phần mềm 11 1.2 Các bƣớc ƣớc lƣợng phần mềm 12 1.3 Các phƣơng pháp ƣớc lƣợng 14 1.4 Tổng quan mơ hình Agile 14 1.4.1 Mơ hình phát triển phần mềm Agile 14 1.4.2 Tuyên ngôn phát triển phần mềm Agile nguyên lý 15 1.4.3 Các đặc trƣng mơ hình Agile 16 1.5 Giới thiệu Scrum 18 1.5.1 Giới thiệu 18 1.5.2 Khung làm việc Scrum 19 1.5.3 Nguyên lý hoạt động scrum: 24 CHƢƠNG II LOGIC MỜ VÀ ỨNG DỤNG 25 2.1 Cơ sở lý thuyết 25 2.1.1 Cơ sở lý thuyết logic mờ 25 2.1.2 Cơ sở toán học logic mờ 25 2.1.3 Khái niệm tập mờ 26 2.1.4 Các phép toán tập mờ 28 2.2 Logic mờ 31 2.2.1 Khái niệm 31 2.2.2 Biến ngôn ngữ 32 2.2.3 Mệnh đề mờ 32 2.2.4 Các phép toán logic mờ 36 2.2.5 Biến ngôn ngữ 37 2.2.6 Các luật mơ hình logic mờ 37 2.2.7 Qui trình hoạt động Logic mờ 38 2.2.8 Một số ứng dụng 38 CHƢƠNG III: ỨNG DỤNG LOGIC MỜ VÀO BÀI TOÁN ƢỚC LƢỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀM THEO MƠ HÌNH AGILE 40 3.1 Mơ hình tổng quan 41 3.2 Bài toán ƣớc lƣợng nỗ lực phát triển phần mềm theo mơ hình Agile 41 3.3 Áp dụng logic mờ vào toán ƣớc lƣợng nỗ lực phát triển phần mềm 43 3.3.1 Xác định độ phức tạp (nỗ lực) 44 3.3.2 Xác định vận tốc 50 3.3 Tóm tắt bƣớc thực hiện: 53 3.4 Ví dụ minh họa 54 3.5 Chƣơng trình ứng dụng 56 KẾT LUẬN VÀ TRIỂN VỌNG 58 Kết đạt đƣợc 58 Hạn chế 58 Hƣớng phát triển 58 TÀI LIỆU THAM KHẢO 59 TÓM TẮT LUẬN VĂN ỨNG DỤNG LOGIC MỜ GIẢI BÀI TOÁN ƢỚC LƢỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀM THEO MƠ HÌNH AGILE Học viên: Lê Duy Tuấn Chuyên ngành: Khoa học máy tính Mã số: 8480101 Trƣờng: ĐH Bách Khoa – ĐH Đà Nẵng Khóa: K33 Tóm tắt: Mơ hình phát triển phần mềm linh hoạt (Agile Software Development) gọi tắt Agile trở nên phổ biến ngành phát triển phần mềm, mơ hình khắc phục đƣợc hạn chế phƣơng pháp phát triển phần mềm truyền thống, góp phần tạo phần mềm đáp ứng theo yêu cầu khách hàng thời gian ngắn với hiệu cao Cũng nhƣ mơ hình phát triển phần mềm khác, mơ hình phát triển phần mềm Agile khâu ƣớc lƣợng đóng vai trị định đến thành cơng hay thất bại dự án phần mềm Nghiên cứu nhằm mục đích ứng dụng logic mờ vào toán ƣớc lƣợng nỗ lực phát triển phần mềm theo mơ hình Agile để giảm thiểu đƣợc thời gian, chi phí cho q trình ƣớc lƣợng nỗ lực phát triển phần mềm, qua góp phần nâng cao hiệu cho dự án phần mềm Từ khóa: Mơ hình Agile, quy trình Scrum, ước lượng nỗ lực, cơng nghệ phần mềm, logic mờ FUZZY LOGIC APPLICATION SOLVES THE ESTIMATION PROBLEM OF AGILE SOFTWARE DEVELOPMENT EFFORTS Abstract: Agile Software Development model has become very popular in software development industry, this model overcomes the limitations of traditional software development methods, contribute to creating software that can meet customer requirements in the shortest time with the highest efficiency Like other software development models, in Agile software development model, the estimation also plays a decisive role in the success or failure of software projects This study aims to apply fuzzy logic to the estimation of Agile software development efforts to minimize time and cost for the process of estimating software development efforts, thereby contributing improve efficiency for software projects Keywords: Agile Software Development, Scrum, Software Effort Estimation, Software Engineering, Fuzzy Logic DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT STT Ký hiệu Diễn giải SLOC Source Line Of Code: Dòng mã nguồn FP Function Point: Điểm chức OP Object Point: Điểm đối tƣợng COCOMO Constructive Cost Model - Mơ hình giá cấu thành SP Story Point đại lƣợng độ lớn tƣơng đối user story FR Friction: Hệ số ma sát DF Dynamic Force: Yếu tố dao động ES User Story Effort DANH MỤC CÁC BẢNG Số hiệu Tên bảng Trang 2.1 Mô tả hoạt động máy sƣởi 38 3.1 Qui mơ, kích thƣớc Story 44 3.2 Độ phức tạp User Story 46 3.3 Trọng số User Story 47 3.4 Yếu tố thành phần nhóm 47 3.5 Giá trị độ phức tạp 49 3.6 Yếu tố ảnh hƣởng hệ số ma sát 50 3.7 Yếu tố ảnh hƣởng hệ số dao động 52 3.8 Minh họa yếu tố ảnh hƣởng đến hệ số ma sát 54 3.9 Minh họa yếu tố ảnh hƣởng đến hệ số dao động 55 DANH MỤC CÁC HÌNH VẼ Số hiệu hình vẽ Tên hình vẽ Trang 1.1 Đồ thị hình nón khơng chắn 12 1.2 Quy trình hoạt động Scrum 24 2.1 Hàm phụ thuộc tập kinh điển A 26 2.2 Hàm liên thuộc tập mờ 27 2.3 Độ cao, miền xác định, miền tin cậy tập mờ 27 2.4 Các dạng hàm liên thuộc tập mờ 28 2.5 Hợp hai tập mờ có sở theo qui tắc Max (a) theo Lukasiewiez (b 29 2.6 Giao hai tập mờ có sở theo qui tắc Min (a) theo tích đại số (b) 30 2.7 Bù tập mờ 31 2.8 Quy trình hoạt động hệ Logic mờ 38 3.1 Mơ hình đề xuất 41 3.2 Mơ hình xử lý liệu 43 3.3 Minh họa hàm phụ thuộc SP, ILF với Com 46 3.4 Minh họa giá trị Story Point Matlab 47 3.5 Minh họa giá trị ILF Matlab 48 3.6 Minh họa giá trị luật Matlab 48 3.7 Minh họa kết Matlab 49 3.8 Minh họa giá trị Hệ số ma sát 51 3.9 Giao diện xác định độ phức tạp 56 3.10 Giao diện xác định vận tốc 56 3.11 Giao diện dự đoán kết 57 MỞ ĐẦU I Lý chọn đề tài Trong quản lý dự án phần mềm, khâu ƣớc ƣớc lƣợng đƣợc xem vấn đề trực tiếp ảnh hƣởng đến thành công hay thất bại dự án phần mềm Thực tế có nhiều dự án thất bại thực dự án q trình ƣớc lƣợng khơng xác dẫn đến kế hoạch bị phá sản Trong q trình thực dự án ta khơng thể tính tốn, ƣớc lƣợng xác tuyệt đối đƣợc chi phí để phát triển phần mềm, nhiên số dự đốn nằm khoảng cho phép góp phần giảm rủi ro cho dự án phần mềm Do đó, ta có phƣơng pháp ƣớc lƣợng phần mềm hiệu hạn chế đƣợc thất bại dự án phần mềm Hiện mô hình phát triển phần mềm linh hoạt (Agile Software Development) gọi tắt Agile trở nên phổ biến ngành phát triển phần mềm, mơ hình khắc phục đƣợc hạn chế phƣơng pháp phát triển phần mềm truyền thống, góp phần tạo phần mềm đáp ứng theo yêu cầu khách hàng thời gian ngắn với hiệu cao Tuy nhiên, nhƣ phƣơng pháp truyền thống khác, khâu ƣớc lƣợng nỗ lực phát triển phần mềm theo mơ hình Agile đóng vai trị định đến thành công dự án phần mềm Dựa lý thuyết logic mờ xét thấy có liên quan trình ƣớc lƣợng nỗ lực đến logic mờ Do đó, tơi đề xuất chọn luận văn cao học: "Ứng dụng logic mờ giải toán ƣớc lƣợng nỗ lực phát triển phần mềm theo mô hình Agile" II Mục đích nghiên cứu Xây dựng đƣợc ứng dụng hỗ trợ ƣớc lƣợng nỗ lực phát triển phần mềm có ứng dụng logic mờ áp dụng vào mơ hình Agile để giảm thiểu đƣợc thời gian, chi phí cho q trình ƣớc lƣợng nỗ lực phát triển phần mềm, qua góp phần nâng cao hiệu cho dự án phần mềm III Mục tiêu nhiệm vụ nghiên cứu Mục tiêu: - Nắm vững lý thuyết công nghệ phần mềm kiến thức ƣớc lƣợng nỗ lực phát triển phần mềm - Nắm vững mơ hình phát triển phần mềm Agile - Nắm vững lý thuyết logic mờ áp dụng đƣợc logic mờ vào toán ƣớc lƣợng nỗ lực phát triển phần mềm Bình thƣờng Hơi cao Cao Rất cao Sự biến động nhóm 0.98 0.95 0.91 Sự thay đổi công cụ 0.99 0.97 0.96 Lỗi nhà cung cấp 0.98 0.94 0.90 Trách nhiệm thành viên 0.99 0.98 0.98 Các vấn đề cá nhân 0.99 0.99 0.98 Dự kiến chậm trễ bên liên quan 0.99 0.98 0.96 Sự mơ hồ chi tiết 0.98 0.97 0.95 Thay đổi môi trƣờng làm việc 0.99 0.98 0.97 Dự kiến di chuyển 0.99 0.99 0.98 Bảng 3.9 Minh họa yếu tố ảnh hƣởng đến hệ số dao động Kết - Tổng nỗ lực: 300 - Tốc độ ban đầu dự án: 5.1 - Hệ số ma sát: 0.7043 - Hệ số dao động: 0.7675 - Độ giảm tốc: 0.5405 - Vận tốc: 2.4 - Thời gian: 5.6 - Chi phí: 47755 55 3.5 Chƣơng trình ứng dụng Trong đề đề tài tơi minh họa ứng dụng ƣớc lƣợng nỗ lực phát triển phần mềm theo mơ hình Agile với chức sau: - Xác định độ phức tạp: Ngƣời dùng thêm Userstory kèm theo điều kiện Story Size thành phần nhóm, chƣơng trình ƣớc lƣợng tổng nỗ lực dự án Hình 3.9 Giao diện xác định độ phức tạp - Xác đinh tốc độ: ngƣời dùng chọn yếu tố tác động đế tốc độ dự án bao gồm yếu tố tác động đến hệ số dao động yếu tố tác động đến hệ số ma sát Hình 3.10 Giao diện xác định tốc độ 56 - Dự đoán kết quả: Sau có thơng số, chƣơng trình dự đoán giá trị nhƣ: vận tốc, thời gian, chi phí thực dự án Hình 3.11 Giao diện dự đốn Kết tính tốn, chƣơng trình chạy đƣa số liệu xác với số liệu minh họa mục (3.4) 57 KẾT LUẬN VÀ TRIỂN VỌNG Kết đạt đƣợc Qua đề tài ta ƣớc lƣợng nỗ lực chi phí để phát triển phần mềm gần xác dựa thông số đầu vào nhƣ: tốc độ dự án, độ phức tạp dự án phần mềm… Đề xuất đƣợc giải pháp áp dụng logic mờ vào giải toán thực tế ƣớc lƣợng nỗ lực phát triển phần mềm Xây dựng đƣợc chƣơng trình ứng dụng minh họa cho toán Hạn chế Để áp dụng đƣợc giải pháp sƣ dụng logic mờ vào toán thực tế phải phụ thuộc vào nhiều tham số đầu vào, nhiên việc lựa chọn liệu cho thơng số đầu vào gặp nhiều khó khăn dự án thực tế, dẫn đến chênh lệch số liệu nhƣ thông số đầu vào khơng đảm bảo Trong q trình phát triển phần mềm gặp nhiều yếu tố ảnh hƣởng đến tốc độ phát triển dự án, việc đề xuất áp dụng logic mờ để giải phần nhỏ toán lớn ƣớc lƣợng nỗ lực phát triển phần mềm Hƣớng phát triển Trong đề tài có sử dụng mẫu liệu để kiểm chứng giải pháp áp dụng logic mờ, cần phải làm việc tiếp xúc trực tiếp với dự án phần mềm để đƣa đƣợc thông số đầu vào cách khách quan xác hơn, điều góp phần vào việc đƣa xác ƣớc lƣợng nỗ lực dự án phần mềm Nghiên cứu thêm số thuật toán áp dụng vào việc ƣớc lƣợng nỗ lực phát triển phần mềm để có đối chiếu so sánh với phƣơng pháp từ đề xuất giải pháp ƣớc lƣợng xác cho mơ hình phát triển phần mềm nói chung mơ hình Agile nói riêng 58 TÀI LIỆU THAM KHẢO [1] Kent Beck, James Grenning, Robert C Martin, Mike Beedle, Jim Highsmith, Steve Mellor, Arie van Bennekum, Andrew Hunt, Ken Schwaber, Alistair Cockburn, Ron Jeffries, Jeff Sutherland, Ward Cunningham, Jon Kern, Dave Thomas, Martin Fowler, Brian Marick (2001) “Manifesto for Agile Software Development” Agile Alliance [2] A E D Hamouda, "Using Agile Story Points as an Estimation Technique in CMMI Organizations," in Agile Conference (AGILE), Kissimmee, Finland, pages 1623, 2014 [3] Atef Tayh Raslan, Nagy Ramadan Darwish, Hesham Ahmed Hefny, “Towards a Fuzzy based Framework for Effort Estimation in Agile Software Development”, (IJCSIS) International Journal of Computer Science and Information Security, Vol 13, No 1, 2015 [4] Atef Tayh Raslan, Nagy Ramadan Darwish, Hesham Ahmed Hefny, “Effort Estimation in Agile Software Projects using Fuzzy Logic and Story Points”, The 50thAnnual Conference on statistics, computer sciences, and operation research, 27-30 Dec 2015 [5] Aditi Panda, Shashank Mouli Satapathy, Santanu Kumar Rath, “Neural Network Models for Agile Software Effort Estimation based on Story Points”, Proc of the Intl Conf on Advances in Computing, Control and Networking - ACCN 2015 [6]Ken Schwaber and Jeff Sutherland, “Hƣớng dẫn Scrum (The Rules of the Game)”, 2016 [7] T T Khuat and M H Le, “A Novel Hybrid ABC-PSO Algorithm for Effort Estimation of Software Projects Using Agile Methodologies”, 2017 [8]Z K Zia, S K Tipu, "An Effort Estimation Model for Agile Software Development" Advances in Computer Science and its Applications, vol 2, no 1, pages 314-324, 2012 [9] Pankaj Jalote,” Software Project Management in Practice”, Addison-Wesley, 2012 [10] Vien CNTT – DHQG Hanoi, “GIÁO TRÌNH QUẢN LÝ DỰ ÁN” [11] Nguyễn Cát Hồ, Nguyễn Cơng Hào, “Giáo trình Logic mờ ứng dụng”, Trƣờng Đại học Khoa học Huế 2009 59