Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
1,13 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA TRẦN THÁI BẢO DỰ ĐOÁN NỖ LỰC PHÁT TRIỂN PHẦN MỀM THEO QUY TRÌNH AGILE SỬ DỤNG THUẬT TỐN TỐI ƯU BẦY ĐÀN Chuyên ngành: Khoa học máy tính Mã số: 60.48.01.01 TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT Đà Nẵng, Năm 2017 Cơng trình hồn thành TRƯỜNG ĐẠI HỌC BÁCH KHOA Người hướng dẫn khoa học: TS LÊ THỊ MỸ HẠNH Phản biện 1: TS TRƯƠNG NGỌC CHÂU Phản biện 2: TS NGUYỄN THIỆN NGHĨA Luận văn bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ chuyên ngành Khoa học máy tính họp Trường Đại học Trà Vinh vào ngày 16 tháng năm 2017 Có thể tìm hiểu luận văn tại: Trung tâm Học liệu, Đại học Đà Nẵng Trường Đại học Bách khoa Thư viện Khoa Công nghệ Thông tin, Trường Đại học Bách khoa – ĐHĐN MỞ ĐẦU LÝ DO CHỌN ĐỀ TÀI Ước lượng nỗ lực phần mềm có vai trị quan trọng trình phát triển phần mềm Sự thành công hay thất bại dự án phụ thuộc lớn vào độ xác kết ước lượng nỗ lực tiến độ Do đó, đề tài dự kiến để tìm phương pháp để ước lượng nỗ lực phát triển phần mềm xác Kỹ thuật ước lượng chia làm ba loại dựa hàm toán học, kinh nghiệm chuyên gia phương pháp học máy Sự đa dạng phương pháp phát triển phần mềm dẫn đến hạn chế phương pháp truyền thống Trong năm gần đây, xuất trình phát triển phần mềm linh hoạt (Agile) đáp ứng tiến độ phương pháp công nghệ phần mềm Việc sử dụng phương pháp linh hoạt cho phép tổ chức đáp ứng biến động chu trình phát triển phần mềm Áp dụng phương pháp ước lượng trình phát triển phần mềm nhiệm vụ khó khăn mà cần phải lường trước kích thước độ phức tạp sản phẩm xây dựng để xác định việc cần làm Phát triển phần mềm theo quy trình Agile trở nên phổ biến ngành công nghiệp thay phương pháp tiếp cận thông thường phát triển phần mềm Phát triển phần mềm linh hoạt nhóm phương pháp phương pháp luận phát triển phần mềm dựa nguyên tắc phát triển phân đoạn lặp (Iterative) tăng trưởng (Incremental), theo nhu cầu giải pháp tiến hóa thơng qua hợp tác nhóm tự quản liên chức Trí thơng minh bầy đàn trở thành quan tâm nghiên cứu nhiều nhà khoa học lĩnh vực liên quan năm gần Một loạt khái niệm mới, kỹ thuật ứng dụng tính tốn lấy cảm hứng từ thiên nhiên đề xuất, sử dụng để giải với loạt vấn đề tối ưu hóa lĩnh vực đa dạng chứng minh có hiệu trong việc xử lý vấn đề tính tốn phức tạp nhiều thành cơng công nhận Đa số phương pháp lấy cảm hứng từ tượng sinh học hành vi xã hội chủ yếu động vật, côn trùng Dựa sở thuật toán lấy cảm hứng từ tự nhiên toán ước lượng nỗ lực phát triển phần mềm mơ hình Agile, tơi đề xuất chọn đề tài luận văn cao học: “Dự đoán nỗ lực phát triển phần mềm theo quy trình Agile sử dụng thuật toán tối ưu bầy đàn” MỤC ĐÍCH VÀ Ý NGHĨA CỦA ĐỀ TÀI 2.1 Mục đích Xây dựng ứng dụng hỗ trợ ước lượng thời gian, nỗ lực phát triển dự án phần mềm theo quy trình Agile Giảm thiểu thời gian, chi phí cho q trình ước lượng nỗ lực phát triển phần mềm Dựa mức dự đoán phần mềm ước lượng, đưa kế hoạch hợp lý mặt nhân sự, sở vật chất, công nghệ, đồng thởi phải ước tính cần chuyên gia, kỹ sư lập trình,… đầu tư cho dự án có nhiều tiềm Vì vậy, phần mềm có khả ước lượng thơng minh chun sâu nỗ lực cần có cho dự án phần mềm cần thiết cho việc lập kế hoạch dự tốn chi phí dự án 2.2 Ý nghĩa khoa học Nắm vững vận dụng tốt mơ hình phát triển Agile việc quản lý dự án phần mềm Nắm vững thành phần phương pháp ước lượng nỗ lực việc quản lý dự án Nắm vững ứng dụng tốt thuật toán tối ưu bầy đàn để tối ưu ước lượng nỗ lực cần cho dự án phần mềm Kết trình nghiên cứu làm tài liệu tham khảo cho việc ước lượng nỗ lực dự án phát triển phần mềm theo quy trình Agile 2.3 Ý nghĩa thực tiển Đề xuất giải pháp ước lượng nỗ lực phát triển phần mềm theo quy trình Agile mang lại ý nghĩa to lớn việc quản lý dự án phần mềm thực tế: Dự tốn chi phí hợp lý việc sử dụng nhân sự, tài nguyên cho dự án phần mềm Sự xác cao: Sự xác đánh giá phương diện ước tính chi phí nguồn lực dự án Đảm báo tiến độ dự án theo kế hoạch ban đầu Kiểm soát dự án tốt hơn: Ước lượng phần mềm mang nhìn tổng quát tiến độ, chi phí khả thực thi dự án Dựa đó, đễ dàng phát khắc phục cố, rủi ro triển khai dự án MỤC TIÊU VÀ NHIỆM VỤ 3.1 Mục tiêu Mục tiêu đề tài ước lượng nỗ lực phát triển phần mềm Để thực mục tiêu cần đạt được: Nắm vững kiến thức mơ hình phát triển phần mềm Agile Hiểu biết ước lượng nỗ lực phát triển phần mềm Nắm vững kiến thức thuật toán tối ưu bầy đàn (PSO) Áp dụng thuật tốn PSO để tối ưu hóa tham số vào việc ước lượng nỗ lực phát triển phần mềm theo mơ hình Agile 3.2 Nhiệm vụ Nghiên cứu thuật toán PSO Nghiên cứu lý thuyết ước lượng nỗ lực phát triển phần mềm theo quy trình Agile Sử dụng thuật tốn PSO để tối ưu tham số sử dụng công thức ước lượng nỗ lực phát triển phần mềm theo quy trình Agile Phân tích cài đặt thuật toán cho toán ước lượng nỗ lực Đánh giá kết theo yêu cầu đề tài ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 4.1 Đối tượng nghiên cứu Nghiên cứu thuật toán tối ưu bầy đàn (PSO) Cơ sở lý thuyết phát triển phần mềm theo quy trình Agile 4.2 Phạm vi nghiên cứu Nghiên cứu thuật toán dựa hành vi kiếm mồi đàn chim Nghiên cứu ước lượng nỗ lực phát triển phần mềm theo mô hình Agile PHƯƠNG PHÁP NGHIÊN CỨU Sử dụng kết hợp nhiều phương pháp, chủ yếu nghiên cứu lý thuyết nghiên cứu thực nghiệm 5.1 Phương pháp nghiên cứu lý thuyết: Tìm hiểu, tra cứu, phân tích tổng hợp từ sách, báo, tạp chí khoa học, trang web, luận văn thạc sĩ nước nước ngồi có liên quan đến đề tài 5.2 Phương pháp thực nghiệm: Cài đặt áp dụng thuật toán tối ưu bầy đàn để dự đoán nỗ lực phát triển phần mềm theo quy trình Agile So sánh đánh giá kết PHƯƠNG TIỆN VÀ CÔNG CỤ TRIỂN KHAI Máy tính cài đặt hệ điều hành Windows Môi trường phát triển phần mềm Matlab DỰ KIẾN KẾT QUẢ ĐẠT ĐƯỢC 7.1 Về lý thuyết Hiểu khái niệm, tính chất thuật tốn tối ưu bầy đàn Hiểu cách phát triển phần mềm theo quy trình Agile Hiểu triển khai việc ước lượng nỗ lực phát triển phần mềm theo quy trình Agile 7.2 Về thực nghiệm Đề xuất giải pháp ước lượng nỗ lực phát triển phần mềm theo quy trình Agile sử dụng thuật tốn tối ưu bầy đàn Đánh giá hiệu giải pháp đề xuất NỘI DUNG NGHIÊN CỨU VÀ DỰ KIẾN CẤU TRÚC LUẬN VĂN 8.1 Nội dung nghiên cứu Thu thập tổng hợp tài liệu liên quan đến thuật tốn bầy đàn nói chung thuật tốn đàn chim kiếm mồi nói riêng Thu thập, tổng hợp phân tích kỹ thuật ước lượng nỗ lực phát triển phần mềm theo mơ hình Agile Ứng dụng thuật toán đàn chim kiếm mồi để ước lượng nỗ lực phát triển phần mềm theo mơ hình Agile Thu thập, phân tích kết quả; từ đánh giá hiệu giải thuật 8.2 Dự kiến bố cục luận văn Báo cáo luận văn thể chương CHƯƠNG CƠ SỞ LÝ THUYẾT Trong quy trình phát triển phần mềm đại, ước lượng nỗ lực phát triển phần mềm đóng vai trị quan trọng Sự thành cơng hay thất bại dự án phụ thuộc lớn vào độ xác kết ước lượng nỗ lực tiến độ thực Công việc người quản lý dự án ước lượng - ước lượng kích cỡ, chi phí, thời gian tiến hành dự án Việc thông thường tiến hành cách phân rã phần mềm cần phát triển thành khối nhỏ áp dụng kinh nghiệm (các thơng số kích cỡ, chi phí, lực nhân viên, ) phần mềm phát triển trước đó, đánh giá cơng việc Ngày nay, nhiều nghiên cứu tập trung vào việc đề xuất mơ hình để nâng cao tính xác kết dự đốn Trong chương này, tơi trình bày sở lý thuyết ước lượng nỗ lực mô hình phát triển phần mềm Agile 1.1 ƯỚC LƯỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀM 1.1.1 Khái niệm Ước lượng dự án vấn đề khó khăn thực tế sản xuất phần mềm Không ước lượng dự án dễ vỡ kế hoạch thời gian tài Mức ước lượng có nhiều sai sót giai đoạn khác thực tế khơng dự án ước lượng xác Ước lượng xác phân rã vấn đề lớn thành vấn đề nhỏ hơn, kỹ thuật chia để trị 1.1.2 Bốn bước ước lượng dự án phần mềm 1.1.2.1 Ước lượng kích cỡ, phạm vi 1.1.2.2 Ước lượng nỗ lực 1.1.2.3 Ước lượng lịch trình 1.1.2.4 Ước lượng chi phí 1.1.3 Các phương pháp ước lượng nỗ lực Ước lượng chuyên gia Ước lượng đánh giá kinh nghiệm khứ Ước lượng đánh giá mơ hình ước lượng thực nghiệm 1.2 MƠ HÌNH PHÁT TRIỂN PHẦN MỀM AGILE 1.2.1 Sự cần thiết mô hình phát triển phần mềm 1.2.2 Tìm hiểu chung về Agile 1.2.2.1 Tuyên ngôn Agile Cá nhân tương tác quy trình cơng cụ Phần mềm chạy tốt tài liệu sản phẩm Cộng tác với khách hàng đàm phán hợp đồng Phản hồi với thay đổi bám sát kế hoạch 1.2.2.2 Các quy tắc Agile Ưu tiên cao phát triển phần mềm thỏa mãn khách hàng thông qua việc chuyển giao sớm liên tục phần mềm có giá trị Chào đón việc thay đổi u cầu, chí muộn q trình phát triển Các quy trình Agile tận dụng thay đổi cho lợi cạnh tranh khách hàng Chuyển giao phần mềm chạy tốt tới khách hàng cách thường xuyên (từ vài tuần đến vài tháng ưu tiên cho khoảng thời gian ngắn hơn) Nhà kinh doanh nhà phát triển (lập trình, thiết kế, …) phải làm việc hàng ngày suốt dự án Các dự án xây dựng xung quanh cá nhân có động lực Cung cấp cho họ môi trường, hỗ trợ cần thiết tin tưởng để hồn thành cơng việc Phương pháp tốt để truyền đạt thông tin tới nhóm phát triển nội nhóm phát triển trao đổi trực tiếp Phần mềm chạy tốt thước đo tiến độ Các quy trình linh hoạt thúc đẩy phát triển bền vững Các nhà tài trợ, nhà phát triển người dùng trì nhịp độ liên tục khơng giới hạn Liên tục quan tâm đến kỹ thuật thiết kế tốt để gia tăng linh hoạt Sự đơn giản nghệ thuật tối đa hóa lượng cơng việc chưa xong Các kiến trúc tốt, yêu cầu thiết kế tốt tạo nhóm tự tổ chức Nhóm phát triển thường xuyên suy nghĩ việc để trở nên hiệu Sau họ điều chỉnh thay đổi hành vi nhóm cho phù hợp 1.2.2.3 Các đặc trưng Agile Tính lặp Tính tăng trưởng tiến hóa Tính thích nghi Nhóm tự tố chức liên chức Kiểm sốt quy trình thực nghiệm Giao tiếp trực diện Phát triển dựa giá trị Hội tụ Hướng chất lượng 1.2.3 Quy trình vận hành Agile 1.2.3.1 Lập kế hoạch 1.2.3.2 Phân tích 10 CHƯƠNG THUẬT TỐN TỐI ƯU BẦY ĐÀN PSO (Particle Swarm Optimization) xây dựng dựa việc mơ hình hóa việc đàn chim bay tìm kiếm thức ăn, sử dụng tương tác cá thể quần thể để khám phá khơng gian tìm kiếm Phương pháp tối ưu bầy đàn này, giới thiệu vào năm 1995 hội nghị IEEE James Kennendy kỹ sư Russell C Eberhart [5] Thuật tốn có nhiều ứng dụng lĩnh vực cần giải toán tối ưu hóa với khơng gian tìm kiếm rộng, thuật toán đơn giản, ước lượng giá trị tối ưu toàn cục bền vững 2.1 GIỚI THIỆU 2.1.1 Bài toán tối ưu tổng quát phân loại 2.1.1.1 Giới thiệu toán tối ưu tổng quát 2.1.1.2 Phân loại tốn tối ưu 2.1.2 Trí tuệ bầy đàn Trí tuệ bầy đàn hay trí thơng minh bầy đàn cách thức liên lạc cá thể tập thể tổ chức khổng lồ Trí tuệ bầy đàn thể qua hành vi tập thể hệ thống (tự nhiên nhân tạo) tổ chức phân cấp Nhờ trí tuệ bầy đàn, cá thể hành động tuân theo quy tắc chung đàn mà không cần lệnh Như vậy, đàn không cần lãnh đạo hành động phức tạp hình thành cách phối hợp nhiều tương tác đơn giản Việc sử dụng trí tuệ bầy đàn vào lĩnh vực từ công nghiệp, khoa học lẫn thương mại có nhiều ứng dụng đặc sắc đa dạng Nghiên cứu trí tuệ bầy đàn giúp người quản lý hệ thống phức tạp, từ việc vận hành chuyến xe robot qn Ngồi ra, trí tuệ bầy đàn ứng dụng rộng 11 rãi việc lập kế hoạch, tìm đường tối ưu, tìm kiếm bảo mật thông tin, hỗ trợ định, giải trí cơng nghệ cao, … 2.2 MƠ PHỎNG HÀNH VI KIẾM MỒI CỦA ĐÀN CHIM Giả sử đàn chim tìm kiếm thức ăn vùng Tất chim (cá thể) thức ăn đâu Tuy nhiên, chúng biết thức ăn cách xa chúng sau lần bay bay lại bầu trời (lặp n lần) Cách tốt để tìm kiếm thức ăn theo sau cá thể gần chỗ thức ăn Bằng cách điều chỉnh hướng bay vận tốc hướng nơi có nhiều nguồn thức ăn 2.3 KIẾN TRÚC THUẬT TỐN PSO PSO kết mơ hình hóa việc đàn chim bay tìm kiếm thức ăn thường xếp vào loại thuật tốn có sử dụng trí tuệ bầy đàn Thuật toán giới thiệu vào năm 1995 hội nghị IEEE James Kennedy kỹ sư Russell C Eberhart [5] Sự thay đổi điểm tìm kiếm thuật giải PSO biểu diễn hình 2.3 Hình 2.3 Sự thay đổi điểm tìm kiếm PSO 12 Trong đó: Xik+1: Vị trí cá thể thứ i hệ thứ k Xik+1: Vị trí cá thể thứ i hệ thứ k+1 Vik: Vận tốc cá thể thứ i hệ thứ k Vik+1: Vận tốc cá thể thứ i hệ thứ k+1 ViPbest: Vận tốc theo Pbest ViGbest: Vận tốc theo Gbest Pbest: Vị trí tốt cá thể thứ i Gbest: Vị trí tốt tất cá thể quần thể PSO khởi tạo nhóm ngẫu nhiên cá thể, sau tìm kiếm giải pháp tối ưu việc cập nhật hệ (lần lặp) Trong hệ, cá thể cập nhật hai giá trị: giá trị thứ nhất, gọi Pbest (là nghiệm tốt đạt thời điểm tại) giá trị thích nghi cá thể tốt hệ thời Giá trị thứ hai, gọi Gbest (là nghiệm tốt mà cá thể lân cận cá thể đạt thời điểm tại) giá trị thích nghi cá thể tốt tất hệ từ trước đến Quá trình cập nhật cá thể dựa hai công thức sau [5]: 𝑉𝑖𝑘+1 = ω*𝑉𝑖𝑘 + c1*r1*(Pbest – 𝑋𝑖𝑘 ) + c2*r2*(Gbest – 𝑋𝑖𝑘 ), ∀𝑖 (2.3) 𝑋𝑖𝑘+1 = 𝑋𝑖𝑘 + 𝑉𝑖𝑘+1 , ∀𝑖 (2.4) Trong đó: k: hệ ω: hệ số quán tính c1, c2: hệ số gia tốc r1, r2: Các số ngẫu nhiên nhận giá trị khoảng [0, 1] Giá trị trọng số quán tính ω giảm tuyến tính từ đến tùy thuộc vào số lần lặp xác định trước 13 2.4 TRIỂN KHAI VÀ CÀI ĐẶT THUẬT TOÁN 2.4.1 Biểu diễn mã giả 2.4.2 Lưu đồ thuật toán Hình 2.4 Lưu đồ thuật tốn 14 2.4.3 Quy trình thực Bước 1: Thiết lặp thông số: ω, c1, c2 Bước 2: Khởi tạo quần thể, cá thể với vị trí vận tốc ngẫu nhiên X, V Bước 3: Thiết lập giá trị lặp bắt đầu với k=1 Bước 4: Tính tốn giá trị thích nghi 𝐹𝑖𝑘 = f(𝑋𝑖𝑘 ), ∀𝑖 tìm số b cá thể có giá trị thích nghi tốt quần thể Bước 5: Chọn P𝑏𝑒𝑠𝑡𝑖𝑘 = 𝑋𝑖𝑘 , ∀𝑖 Gbest = 𝑋𝑏𝑘 Bước 6: Cập nhật vị trí vận tốc cá thể: Cập nhật vận tốc 𝑉𝑖𝑘+1 sử dụng công thức (2.3) Cập nhật vị trí 𝑋𝑖𝑘+1 sử dụng cơng thức (2.4) Bước 7: Đánh giá giá trị thích nghi: 𝐹𝑖𝑘+1 = 𝑓(𝑋𝑖𝑘+1), ∀𝑖 và tìm số b1 cá thể có giá trị thích nghi tốt quần thể Bước 8: Cập nhật Pbest quần thể ∀𝑖 theo công thức (2.7) Bước 9: Cập nhật Gbest quần thể theo công thức (2.8) Bước 10: Nếu k chưa đủ số lần tìm kiếm tăng k lên giá trị quay lại bước Bước 11: In kết Trong đó: Trọng lượng quán tính: 0.25 Hệ số gia tốc (c1 c2): Từ 2.0 đến 2.5 Kích thước quần thể: 10 đến 100 Số lần lặp: 500 đến 10000 15 CHƯƠNG ỨNG DỤNG THUẬT TOÁN TỐI ƯU BẦY ĐÀN ƯỚC LƯỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀM THEO QUY TRÌNH AGILE Phần mềm sử dụng rộng rãi đời sống, khoa học xã hội Vì vậy, việc đảm bảo phần mềm làm mang lại hiệu kinh tế đáp ứng yêu cầu đặt cần thiết Để đạt hiệu cần phải có phương pháp ước lượng để nâng cao tính xác kết dự đoán, bao gồm phương pháp như: hệ chun gia, liệu lịch sử, mơ hình, … cách tiếp cận đề tài sử dụng phương pháp ước lượng theo mơ hình Ngày này, nhiều nghiên cứu tập trung vào việc đề xuất mơ hình để nâng cao tính xác kết dự đốn; Tuy nhiên, vấn đề đánh giá xác nỗ lực vấn đề đầy thách thức nhà nghiên cứu, đặc biệt nói đến dự án sử dụng phương pháp linh hoạt (Agile) Nghiên cứu nhằm mục đích đề xuất thuật toán tối ưu bầy đàn để tối ưu hóa thơng số cơng thức đề xuất trước [9] dựa tốc độ nhóm yếu tố Story Point 3.1 PHÂN TÍCH BÀI TOÁN ƯỚC LƯỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀM THEO QUY TRÌNH AGILE 3.1.1 Mơ hình tổng quan toán Để sử dụng thuật toán PSO vào toán ước lượng nỗ lực phát triển phần mềm theo mô hình Agile cần yếu tố sau: Đầu vào toán bao gồm 21 dự án từ công ty phần mềm khác thu thập từ Zia [7] Đầu tốn thời gian hồn thành dự án Từ tính tốn chi phí phát triển dự án 16 Các bước đề xuất để tăng độ xác nỗ lực dự đoán cách sử dụng thuật toán tối ưu bầy đàn sau: Bước 1: Thu thập tổng số Story Point, vận tốc dự án nỗ lực thực tế Trong nghiên cứu này, liệu thu thập từ Zia [7] Bước 2: Chia liệu thành tập liệu huấn luyện tập liệu thử nghiệm Trong nghiên cứu này, 15 dự án sử dụng để huấn luyện dự án lại để thử nghiệm Bước 3: Huấn luyện cá thể: Huấn luyện cá thể để xác định tham số với giá trị tối ưu toán Bước 4: Thử nghiệm đánh giá hiệu suất mô hình 3.1.2 Ước lượng mơ hình Agile 3.1.2.1 Các khái niệm 3.1.2.2 Xác định nỗ lực (Story point) 3.1.2.3 Story Size Độ phức tạp Xác định vận tốc dự án (Agile Velocity) Tối ưu hóa vận tốc Agile Sự giảm tốc Các yếu tố thay đổi 3.2 ÁP DỤNG THUẬT TOÁN BẦY ĐÀN ĐỂ ƯỚC LƯỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀM 3.2.1 Đề xuất giải pháp ước lượng nỗ lực phát triển phần mềm theo quy trình Agile Dựa vào vận tốc cuối Story Point, đề tài sử dụng công thức đề xuất báo [9] “A Novel Hybrid ABCPSO Algorithm for Effort Estimation of Software Projects Using 17 Agile Methodologies” để dự đoán nỗ lực dự án phần mềm linh hoạt sau: 𝐴∗𝑆 Eff = 𝐵∗𝑉𝑝 + 𝐶 ∗ ln(𝑆𝑝 ) + 𝐷 ∗ ln(𝑉) + 𝐸 (3.6) Trong Eff nỗ lực dự đoán đo đơn vị ngày, SP giá trị Story Point dự án V vận tốc cuối nhóm Mục đích đề tài xác định giá trị A, B, C, D E để dự đoán cho dự án xác so với giá trị thực tế Trong nghiên cứu này, sử dụng thuật toán tối ưu hóa bầy đàn để tìm kiếm giá trị tham số sử dụng liệu lịch sử từ dự án trước Khi có mơ hình dự đốn với tham số thích hợp, sử dụng để dự đốn nỗ lực dự án Hình 3.1 Sơ đồ giải pháp triển khai đề tài 18 3.2.2 Đo lường chất lượng dự đoán Để đánh giá hiệu suất phương pháp sử dụng, tiêu chi đánh giá xem xét [7]: Tiêu chí Mean Squared Error (MSE – Sai số tồn phương) tính cơng thức (3.7) MSE = 𝑇 ∗ ∑𝑇𝑖=1(𝐴𝑖 − 𝑃𝑖 )2 (3.7) Trong đó: 𝐴𝑖 𝑃𝑖 giá trị nỗ lực thực tế dự đoán liệu thử nghiệm thứ i tương ứng Tiêu chí Mean Magnitude of Relative Error (MMRE) tỷ lệ phần trăm trị tuyệt đối sai số dự đốn tồn tập liệu Với liệu thử T MMRE tính theo cơng thức (3.8) MMRE = 100 ∗ 𝑇 ∑𝑇𝑖=1 |𝑃𝑖 − 𝐴𝑖 | 𝐴𝑖 (3.8) PRED(N) cho thấy tỷ lệ phần trăm ước tính trung bình phạm vi N phần trăm giá trị thực thông qua công thức (3.9) PRED(N) = 𝑖𝑓 100 𝑇 ∑𝑖=1 { 𝑇 |𝑃𝑖 − 𝐴𝑖 | 𝐴𝑖 < 𝑛𝑔ượ𝑐 𝑙ạ𝑖 𝑁 100 (3.9) Hệ số tương quan bình phương (R2), cịn gọi hệ số xác định tính cơng thức (3.10) R2 = - ∑𝑇 𝑖=1(𝐴𝑖 − 𝑃𝑖 ) 𝑇 ̅ ∑𝑖=1(𝐴𝑖 − 𝐴) (3.10) Trong 𝐴̅ giá trị trung bình nỗ lực thực tế Vậy nên giá trị R PRED(N) cao kết ước lượng tốt Ngược lại, giá trị MSE, MMRE thấp kết ước lượng xác 3.2.3 Biểu diễn cá thể tḥt tốn PSO hàm thích nghi cho toán dự đoán 19 Trong nghiên cứu này, cá thể thuật toán tối ưu bầy đàn biểu diễn sau: 𝑋𝑖 = {𝐴𝑖 , 𝐵𝑖 , 𝐶𝑖 , 𝐷𝑖 , 𝐸𝑖 } Sau thuật toán kết thúc trả kết cá thể tốt chứa tham số cho nỗ lực dự đốn cách sử dụng cơng thức (3.6) gần với giá trị nỗ lực thực tế Để đánh giá độ thích nghi cá thể thuật tốn PSO, sử dụng hàm thích nghi cơng thức (3.11): 𝑓(𝑋𝑖 ) = 𝑀𝑀𝑅𝐸(𝑋𝑖 ) (3.11) Trong đó: 𝑀𝑀𝑅𝐸(𝑋𝑖 ) 𝑀𝑀𝑅𝐸 cá thể 𝑋𝑖 T tập liệu huấn luyện 3.2.4 Bộ liệu thực nghiệm Phương pháp đề xuất kiểm tra cách sử dụng liệu gồm 21 dự án phát triển công ty phần mềm sử dụng Zia [7] Các thành phần liệu gồm có: Tổng số Story Point thực dự án, vận tốc dự án, nỗ lực thực tế cần thiết để hoàn thành dự án 3.2.5 Thực nghiệm 3.2.5.1 Thiết lập thông số Để đánh giá hiệu thuật tốn, tơi thiết lập kích cỡ quần thể số lần lặp, hệ số quán tính sau: Số lần lặp: Iteration = 10000 Kích thước quần thể: Np = 100 w = 0.25 c1 = c2 = 2.0 Các tham số mơ hình ước tính đề xuất phạm vi từ -20 đến 20 3.2.5.2 Huấn luyện 20 Sử dụng 15 dự án 21 dự án phát triển công ty phần mềm sử dụng Zia [7] Bảng 3.7: Kết nỗ lực ước lượng huấn luyện từ 15 dự án Stt Story Point Vi D V Sprint Size Nỗ lực thực tế Nỗ lực ước lượng 10 11 12 13 14 15 156 202 173 331 124 339 97 257 84 211 131 112 101 74 62 4.2 3.7 4.5 4.9 4.1 4.2 3.8 3.9 4.6 4.6 3.9 3.9 3.9 3.9 0.687 0.701 0.878 0.886 0.903 0.903 0.859 0.833 0.646 0.758 0.758 0.773 0.773 0.773 0.773 2.7 2.5 3.3 3.8 4.2 3.6 3.4 2.4 3.2 3.2 2.9 2.9 2.9 2.9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 63 92 56 86 32 91 35 93 36 62 45 37 32 30 21 60.4247 84.7081 55.4812 93.0353 32.0780 100.3813 30.2257 90.6010 35.7536 69.7721 43.1453 40.3119 36.2884 26.4430 22.0877 Sau áp dụng thuật tốn PSO, tham số mơ hình ước lượng đề xuất tối ưu có giá trị cụ thể sau: A = - 16.3787; B = - 15.2336; C = -0.5297; D = 4.3219; E = -3.3140 3.2.5.3 Đánh giá kết đạt Để đánh giá xác kết dự đốn nỗ lực phát triển phần mềm, phương pháp đề xuất báo [8] họ sử dụng mạng Nơ-ron nhân tạo (ANN - Artificial Neural Network) kết hợp thuật toán Levenberg Marquardt (LM) với thuật toán khác bao gồm: Thuật toán tối ưu dạy học (TLBO - Teaching Learning Based Optimization), thuật 21 toán bầy ông nhân tạo rời rạc (DABC - Discrete Artificial Bee Colony) phiên cải tiến thuật toán bầy ong nhân tạo (ABC - Artificial Bee Colony), thuật tốn dạy học dựa bầy ơng nhân tạo (TLBABC - Teaching Learning Based Artificial Bee Colony) thuật tốn (LM - Levenberg Marquardt) để tối ưu hóa thông số mạng Nơ-ron [8] Trong nghiên cứu này, tơi sử dụng thuật tốn tối ưu bầy đàn (PSO) để dự đoán nỗ lực phát triển phần mềm Nhưng để đánh giá độ xác kết ước lượng nghiên cứu tơi so sánh kết thuật toán đề xuất với kết phương pháp báo [8], dựa tiêu chí đánh giá: MSE, MMRE, PRED(7.19) R2 Bảng 3.8 Kết thực nghiệm so sánh kết ước lượng Nỡ lực dự đốn Nỡ Sp V lực thực PSO tế ANN với ANN với ANN với TLBO - DABC- TLBABC- LM LM LM ANN với LM 289 2.8 112 109.1074 88 99.0 98 94.8 113 2.8 39 42.0225 41.9 43.4 43.1 45.9 141 2.8 52 52.6570 52.6 54.3 54.1 55.8 213 2.8 80 80.0858 75.2 80.1 80.3 80.8 137 2.7 56 52.9275 52.5 54.5 54.4 54.3 91 35 34.8265 34.9 36.2 36.1 40.4 2.7 MSE 4.5687 103.3450 32.8917 36.8467 MMRE 2.9476 7.0923 5.5907 5.5710 9.9702 PRED(7.19) 83.3333 66.6667 66.6667 66.6667 33.3333 R2 0.9935 0.8530 0.9532 0.9074 0.9476 65.0967 22 Từ Bảng 3.8, thấy thuật toán PSO cho kết với giá trị MSE, MMRE, PRED (7.19) R2 tốt tất tiêu chí đánh giá so với thuật toán ANN với TLBOLM, ANN với DABC-LM, ANN với TLBABC-LM ANN với LM Thực nghiệm phương pháp đề xuất cho thấy kết đánh giá nỗ lực xác thuật tốn hiệu để tối ưu hóa 3.3 KẾT LUẬN Phương pháp Story Point kỹ thuật ước tính nỗ lực phần mềm sử dụng cho dự án phần mềm linh hoạt Trong nghiên cứu này, tổng số Story Point vận tốc dự án sử dụng để đào tạo, để cung cấp cho nỗ lực việc phát triển sản phẩm phần mềm linh hoạt Độ xác kết ước lượng tăng cường cách sử dụng thuật tốn PSO để tối ưu hóa tham số Các kết thực nghiệm PSO thuật toán hiệu để nâng cao độ xác dự đốn nỗ lực phát triển phần mềm theo quy trình Agile so với thuật toán khác ANN với TLBO-LM, ANN với DABC-LM, ANN với TLBABC-LM ANN với LM 23 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN KẾT QUẢ ĐẠT ĐƯỢC Qua đề tài ước lượng chi phí nỗ lực để phát triển phần mềm gần xác Giảm thời gian việc ước lượng, đảm bảo thời gian hoàn thành dự án kịp tiến độ, đảm bảo chi phí q trình phát triển Đề xuất giải pháp áp dụng thuật toán tối ưu bầy đàn vào toán ước lượng nỗ lực phát triển phần mềm theo quy trình Agile HẠN CHẾ Giải pháp đề xuất đựa thuật toán tối ưu bầy đàn, phụ thuộc nhiều vào thàm số đầu vào, tham số đầu vào khơng xác dẫn đến kết xa so với mong muốn Một hạn chế khác cách tiếp cận đề xuất độ phức tạp User Story đánh giá phạm vi từ đến khơng bao gồm tất đặc tính đa dạng dự án linh hoạt thực tế Chỉ giải pháp nhỏ q trình phát triển phần mềm cịn có nhiều trở ngại, nhiều yếu tố khác ảnh hưởng tới tốc độ phát triển dự án phần mềm HƯỚNG PHÁT TRIỂN Làm việc trực tiếp với dự án phần mềm, đúc kết đưa tham số đầu vào xác, dựa thực tế để nắm bắt yếu tố ảnh hưởng tới tốc độ dự án cần làm rõ phương pháp để đánh giá mức độ phức tạp User Story Áp dụng vào tất mơ hình phát triển phần mềm tương lai Nghiên cứu thêm số thuật toán tối ưu để cải thiện hiệu toán 24 Nghiên cứu, đề xuất giải pháp để việc ước lượng mang lại kết 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 Trong tương lai, tơi dự định áp dụng thuật tốn đề xuất cho dự án cơng nghiệp đánh giá cách toàn diện Áp dụng kỹ thuật máy học hỗ trợ máy vector, rừng ngẫu nhiên độ dốc ngẫu nhiên thúc đẩy cho vấn đề ước lượng nỗ lực dự án phần mềm linh hoạt ... ước lượng nỗ lực phát triển phần mềm theo quy trình Agile 7.2 Về thực nghiệm Đề xuất giải pháp ước lượng nỗ lực phát triển phần mềm theo quy trình Agile sử dụng thuật toán tối ưu bầy đàn Đánh... cứu thuật toán PSO Nghiên cứu lý thuyết ước lượng nỗ lực phát triển phần mềm theo quy trình Agile Sử dụng thuật toán PSO để tối ưu tham số sử dụng công thức ước lượng nỗ lực phát triển phần. .. q trình phát triển Đề xuất giải pháp áp dụng thuật toán tối ưu bầy đàn vào toán ước lượng nỗ lực phát triển phần mềm theo quy trình Agile HẠN CHẾ Giải pháp đề xuất đựa thuật toán tối ưu bầy đàn,