1. Trang chủ
  2. » Giáo Dục - Đào Tạo

NGHIÊN CỨU MỘT SỐ THUẬT TOÁN LẤY CẢM HỨNG TỪ TỰ NHIÊN VÀ ỨNG DỤNG VÀO BÀI TOÁN TỐI ƯU NỖ LỰC, CHI PHÍ PHÁT TRIỂN PHẦN MỀM

30 9 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 30
Dung lượng 1,23 MB

Nội dung

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA BÁO CÁO TĨM TẮT ĐỀ TÀI KHOA HỌC VÀ CƠNG NGHỆ CẤP ĐẠI HỌC ĐÀ NẴNG NGHIÊN CỨU MỘT SỐ THUẬT TOÁN LẤY CẢM HỨNG TỪ TỰ NHIÊN VÀ ỨNG DỤNG VÀO BÀI TỐN TỐI ƯU NỠ LỰC, CHI PHÍ PHÁT TRIỂN PHẦN MỀM Mã số: B2016-ĐN02-06 Chủ nhiệm đề tài: TS Lê Thị Mỹ Hạnh Thành viên : KS Khuất Thanh Tùng KS Ngô Thành Phát Đà nẵng, 5/2018 Mục lục ii MỤC LỤC MỤC LỤC I DANH SÁCH HÌNH VẼ IV DANH SÁCH BẢNG IV CHƯƠNG CÁC THUẬT TOÁN TỐI ƯU LẤY CẢM HỨNG TỪ TỰ NHIÊN 1.1 Giới thiệu vấn đề 1.2 Tính phức tạp của tốn tới ưu 1.3 Phân lớp nguồn cảm hứng từ tự nhiên để xây dựng tḥt tốn tới ưu 1.4 Tổng quan về thuật tốn tới ưu từ tự nhiên 1.5 Giới thiệu chung về thuật toán sử dụng đề tài 1.6 Thuật toán đàn ong nhân tạo 1.7 Thuật toán dạy-học 1.8 Thuật toán đàn ong nhân tạo kết hợp dạy học 1.9 Tḥt tốn tới ưu bầy đàn 1.10 Tḥt tốn lai giữa đàn ong nhân tạo tới ưu bầy đàn (ABC-PSO) CHƯƠNG BÀI TOÁN ƯỚC LƯỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀM 2.1 Giới thiệu toán 2.2 Tổng quan về kỹ thuật ước lượng nỗ lực phần mềm 2.3 Các phương pháp ước lượng nỗ lực dựa phương tình toán học 2.3.1 Mô hình ước lượng giá cấu thành COCOMO 2.3.1.1 Các phương thức phát triển phần mềm mô hình COCOMO 2.3.1.2 Mô hình COCOMO sở 2.3.1.3 Mô hình COCOMO trung cấp 2.3.1.4 Mô hình COCOMO nâng cao 2.3.1.5 Mô hình COCOMO II 2.3.2 Phương pháp điểm chức 2.3.3 Kết hợp COCOMO II điểm chức để ước lượng nỗ lực 2.4 Phương pháp ước lượng nỗ lực cho quy trình phần mềm Agile 2.4.1 Quy trình phát triển phần mềm Agile 2.4.1.1 Các nguyên tắc của quy trình Agile 2.4.1.2 Các đặc trưng của quy trình Agile 2.4.2 Phương pháp ước lượng nỗ lực phát triển phần mềm sử dụng quy trình Agile8 2.4.2.1 Các yếu tố đầu vào của mô hình ước lượng 2.4.2.2 Xác định story point cho dự án 10 2.4.2.3 Xác định vận tốc của nhóm phát triển 11 2.4.2.4 Xác định thời gian và chi phí dự án 11 CHƯƠNG CÀI ĐẶT, THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 12 3.1 Đặt vấn đề 12 3.2 Các tiêu chuẩn đánh giá kết quả ước lượng nỗ lực 13 3.3 Tối ưu tham số mơ hình COCOMO tḥt tốn TLABC 13 3.3.1 Hàm thích nghi 13 3.3.2 Kết quả thực nghiệm 14 3.4 Phương trình toán học mới cho tốn ước lượng nỡ lực phát triển cho phần mềm sử dụng quy trình Agile 14 3.4.1 Phương trình toán học đề xuất 14 Mục lục iii 3.4.2 Tìm tham số tối ưu cho công thức ước lượng Agile sử dụng thuật toán ABCPSO 14 3.4.2.1 Biểu diễn cá thể của thuật toán và hàm thích nghi 15 3.4.2.2 Kết quả thực nghiệm 15 3.5 Phân tích chức của chương trình 15 3.6 Thiết kế chương trình 15 3.6.1 Biểu đồ ca sử dụng (Use case) 16 3.6.2 Biểu đồ tuần tự hoạt động 17 3.6.3 Biểu đồ lớp 18 3.7 Một số hình ảnh của hệ thống ước lượng nỗ lực 19 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 21 Danh sách hình vẽ bảng iv DANH SÁCH HÌNH VẼ Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình 10 Hình 11 Phân loại nguồn cảm hứng từ tự nhiên Phân loại kỹ thuật ước lượng nỗ lực phát triển phần mềm Biểu đồ Ca sử dụng (Use case) 16 Biểu đồ phân rã chức xem dự án 17 Biểu đồ tuần tự của chức ước lượng dự án 17 Biểu đồ hoạt động của chức thiết lập tham số mô hình ước lượng 18 Biểu đồ lớp của hệ thống ước lượng nỗ lực 18 Giao diện chức chính của phần mềm ước lượng nỗ lực 19 Giao diện dự án kết thúc 19 Giao diện chức tạo mới dự án COCOMO 20 Giao diện chức thiết lập cấu hình tham số 20 DANH SÁCH BẢNG Bảng Bảng Bảng Bảng Bảng Bảng Bảng Các yếu tố hiệu chính chi phí của mô hình COCOMO II Thang điểm yếu tố hiệu chỉnh chi phí mô hình COCOMO II Các nhân tố ảnh hưởng đến quy mô dự án Thang điểm nhân tố ảnh hưởng đến quy mô dự án Điểm quy mô cho user story 10 Kết quả ước lượng nỡ lực sử dụng tḥt tốn ABC, TLABC, COCOMO II 14 Kết quả ước lượng của thuật toán tối ưu tiêu chí đánh giá 15 Danh sách từ viết tắt v DANH SÁCH TỪ VIẾT TẮT Từ viết tắt ABC ABC-PSO CCNN CoBRA COCOMO D DF EAF Eff ES FP FR GMDHPNN GRNN KLOC MAR MdMRE ME MMRE MRE NE NP PNN PSO PRED(N) SF SP TCF TLBO TLABC UFP Vi V Ý nghĩa Artificial Bee Colony – Thuật toán đàn ong nhân tạo Hybrid Artificial Bee Colony and Particle Swarm Optimization – Thuật toán lai giữa đàn ong nhân tạo tối ưu bầy đàn Cascade-Correlation Neural Networks – Mạng nơ-ron tương quan xếp tầng Phương pháp ước lượng chi phí, chuẩn hóa phân tích rủi ro COnstructive COst MOdel – Mô hình ước lượng giá cấu thành Sớ chiều của tốn Hệ số giảm tốc của yếu tố hay biến động dự án Agile Effort adjustment factor – Yếu tố hiệu chỉnh nỗ lực Effort – Nỗ lực Điểm cho mỗi user story Function Point – Điểm chức Hệ số giảm vận tốc thường xuyên dự án Agile Group Method of Data Handling Polynomial Neural Network – Mạng nơ-ron với phương pháp nhóm xử lý dữ liệu tuyến tính General Regression Neural Networks – Mạng nơ-ron hồi quy tổng quát Ngàn dòng lệnh Mean Absolute Residual – số dư tuyệt đối trung bình Median Magnitude of Relative Error – Độ lớn trung vị của lỗi tương đối Methodology – Nhân tố phương pháp luận mô hình Sheta-Uysal Mean Magnitude of Relative Error – Độ lớn trung bình của lỗi tương đối Magnitude of Relative Error – Độ lớn của lỗi tương đối Số ong thợ tḥt tốn ABC Sớ cá thể tḥt tốn tới ưu bầy đàn Probabilistic Neural Networks – Mạng nơ-ron xác śt Particle Swarm Optimization – Tḥt tốn tới ưu bầy đàn Precision at level N – Độ chính xác ở mức lỗi dưới N% Nhân tố ảnh hưởng đến quy mô dự án Tổng điểm Story point của dự án Agile Độ phức tạp kỹ thuật của thệ thống sử dụng phân tích điểm chức Teaching-learning-based Optimization – Tḥt tốn tới ưu dạy học Teaching-learining based Artificial Bee Colony – Thuật toán đàn ong nhân tạo cải tiến sử dụng chế dạy học Điểm chức thô Vận tốc sở của nhóm phát triển Vận tốc sau hiệu chỉnh của nhóm phát triển Mở đầu vi MỞ ĐẦU Tối ưu hóa lĩnh vực tối quan trọng có tính ứng dụng cao nhiều lĩnh vực quy hoạch tài nguyên, thiết kế chế tạo máy, điều khiển tự động, quản trị kinh doanh, kiến trúc đô thị, công nghệ thông tin, xây dựng hệ hỗ trợ quyết định quản lý phát triển hệ thống lớn Các mục tiêu của tối ưu hóa cực tiểu tài nguyên chi phí sử dụng, cũng tối đa hóa lợi nhuận, hiệu tính chính xác Vì thời gian, tiền bạc tài nguyên bị giới hạn ứng dụng thực tế nên phải tìm giải pháp để sử dụng hiệu quả nguồn tài nguyên có giá trị điều kiện có số ràng buộc nhất định kèm theo Cùng với phát triển của khoa học công nghệ, tốn tới ưu phát sinh từ thực tế sớng ngày đa dạng phức tạp số chiều của toán thực tế ngày lớn Bởi vì tính liên hệ tương quan giữa biến với ngày gia tăng nên vấn đề giải quyết giới hạn thời gian hợp lý cho lời giải chính xác Kích thước độ phức tạp của toán thực tế yêu cầu phát triển của kỹ thuật mới có thể tìm kiếm lời giải chấp nhận khoảng thời gian cho phép Các thuật tốn tìm kiếm lời giải chính xác khơng thể giải quyết toán khoảng thời gian giới hạn Khi đó việc sử dụng thuật toán xấp xỉ lựa chọn phù hợp để tìm thấy lời giải gần tối ưu Qua nhiều thập kỷ, khái niệm, kỹ thuật ứng dụng tính toán lấy cảm hứng từ tự nhiên phát triển để giải quyết toán tới ưu cách hiệu quả Tính tốn lấy cảm hứng từ tự nhiên có thể giải quyết toán hầu hết lĩnh vực từ mạng cảm biến khơng dây, mạng máy tính, an tồn thơng tin, công nghiệp rô bốt, công nghệ y sinh, hệ thống điều khiển, xử lý song song, khai phá dữ liệu, hệ thống quản lý tiêu thụ lượng, xử lý ảnh nhiều lĩnh vực khác Thiết kế thuật toán lấy cảm hứng từ tự nhiên liên quan đến việc chọn phương pháp biểu diễn phù hợp cho toán, đánh giá chất lượng của lời giải thông qua hàm mục tiêu, định nghĩa phương pháp để sinh lời giải mới cho tốn Các tḥt tốn mơ phỏng cấu trúc hành vi của hệ thống phức tạp tự nhiên Vì nguồn cảm hứng từ tự nhiên rất đa dạng nên có nhiều thuật toán khác đề xuất Tuy nhiên, những cách phân loại nguồn cảm hứng nghiên cứu vẫn chưa thớng nhất bao phủ hết những tḥt tốn có Cùng với đó, vẫn chưa có nghiên cứu ở Việt Nam thực việc phân loại thuật toán lấy cảm hứng từ tự nhiên vẫn nghiên cứu mới mẻ nước Bởi thế, yêu cầu thiết phải có phương pháp phân loại nguồn cảm hứng cách phù hợp Trong nghiên cứu này, sẽ đề xuất hướng phân loại mới cho thuật toán lấy cảm hứng từ tự nhiên cũng giới thiệu tổng quan về số thuật toán mới lĩnh vực để đóng góp nguồn tài liệu tham khảo có giá trị phục vụ cho nghiên cứu về sau Quy trình ước lượng nỗ lực chi phí thành phần rất quan trọng dự án công nghệ phần mềm Sự thành công hay thất bại của dự án phụ thuộc rất nhiều vào tính xác của việc ước lượng nỗ lực tiến độ dự án Nếu chi phí ước lượng thấp so với chi phí thực tế sẽ có ảnh hướng bất lợi về chất lượng của sản phẩm phần mềm cuối cùng, làm ảnh hưởng đến uy tín tính cạnh tranh của doanh nghiệp Nếu chi phí ước lượng cao so với chi phí thực tế sẽ ảnh hưởng tới nguồn lực phân bổ cho dự án khác hoặc làm giảm doanh thu của doanh nghiệp không đủ nhân lực Mở đầu vii kế hoạch để đấu thầu dự án mới Tập đồn Standish tun bớ 44% của dự án phần mềm chuyển giao trễ hạn hoặc vượt ngân quỹ cho phép Điều cho thấy tầm quan trọng của việc quản trị dự án Hiệp hội quốc tế về phân tích đầu vào cho dự án (ISPA) nêu ba nguyên nhân chính dẫn đến thất bại của dự án bao gồm: thiếu hụt ước lượng về kỹ của nhân viên, thiếu hụt hiểu biết về yêu cầu của dự án, ước lượng kích cỡ dự án không chính xác Một nghiên cứu khác thực bởi tập đoàn Standish để xác định nhân tố chính dẫn đến thất bại của dự án tìm nguyên nhân sau: không chắc chắn yêu cầu của hệ thống, giới hạn về ngân quỹ, thiếu kỹ ước lượng dự án, ước lượng không chính xác nỗ lực cần phân bổ cho dự án, bỏ qua dữ liệu lịch sử về dự án phát triển Từ đó có thể thấy rằng, nguyên nhân chủ yếu dẫn đến thất bại của dự án phần mềm ước lượng không chính xác về kích cỡ phần mềm nỗ lực cần có để thực dự án Do vậy, việc áp dụng thuật tốn tới ưu lấy cảm hứng từ tự nhiên để nâng cao tính chính xác cho toán ước lượng dự án phần mềm có ý nghĩa đặt biệt quan trọng đối với doanh nghiệp nhà đầu tư Trong những năm gần đây, quy trình phần mềm Agile trở thành lựa chọn mới nhiều doanh nghiệp áp dụng để quản lý toàn quy trình phát triển phần mềm Tuy nhiên, nghiên cứu về lĩnh vực thế giới vẫn còn rất ít ở Việt Nam hầu chưa tìm thấy nghiên cứu Trong đó, việc sử dụng phương pháp truyền thống để ước lượng nỗ lực cho dự án Agile cho kết quả ước lượng không chính xác Trong thực tế, tính phức tạp kích thước của phần mềm ngày gia tăng, dự án vượt vài chục triệu dòng lệnh không còn xa lạ Các tổ chức phát triển phần mềm yêu cầu nhiều nhân viên kỹ thuật chi phí của phần mềm có thể lên tới hàng triệu đô la Sai sót ước lượng chi phí có thể dẫn đến những hậu quả rất nghiêm trọng Điều đó đòi hỏi phải phát triển kỹ thuật nhằm nâng cao tính hiệu quả của phương pháp ước lượng phần mềm truyền thống cũng đề xuất phương pháp ước lượng phần mềm mới cho quy trình Agile Đề tài hướng tới mục đích áp dụng tḥt tốn tới ưu hóa kỹ tḥt tính toán mềm để nâng cao tính chính xác của quy trình ước lượng nỗ lực phát triển phần mềm truyền thống phần mềm sử dụng quy trình Agile Các đóng góp mới nghiên cứu gồm có: - Phân lớp nguồn cảm hứng từ tự nhiên sử dụng để xây dựng nên thuật toán tối ưu - Đề xuất cải tiến quan trọng cho tḥt tốn tới ưu thường sử dụng bao gờm: tḥt tốn đàn ong nhân tạo, tḥt tốn dạy học, tḥt tốn tới ưu bầy đàn - Nghiên cứu tởng quan về tốn ước lượng nỡ lực phát triển phần mềm, khảo sát phương pháp sử dụng - Cải tiến mô hình ước lượng nỗ lực truyền thống COCOMO, Sheta-Uysal cách tối ưu tham số cho mô hình ước lượng sử dụng thuật toán cải tiến đề xuất Mở đầu viii - Xây dựng phương trình ước lượng nỗ lực mới dựa yếu tố cần thiết cho dự án phần mềm sử dụng quy trình Agile Các tham số của công thức ước lượng nỗ lực đề xuất xây dựng động sử dụng tḥt tốn tới ưu - Đánh giá, so sánh toàn diện phương pháp đề xuất với nghiên cứu khác - Xây dựng phần mềm hỗ trợ cho kết quả ước lượng dựa yếu tố đầu vào của mô hình Báo cáo chia thành phần chính sau: Chương 1: trình bày về thuật toán lấy cảm hứng từ tự nhiên Chương 2: giới thiệu mô hình ước lượng nỗ lực phát triển phần mềm truyền thống ước lượng nỗ lực cho phần mềm sử dụng quy trình phát triển Agile Chương 3: mô tả kết quả của việc áp dụng tḥt tốn tới ưu để nâng cao tính chính xác của kết quả ước lượng trình bày bước về phân tích thiết kế chương trình ước lượng nỗ lực mà xây dựng Những xuất bản trình nghiên cứu đề tài: [1] Thanh Tung Khuat, My Hanh Le, "A novel hybrid ABC-PSO algorithm for effort estimation of software projects using Agile methodologies," Journal of Intelligent Systems, 2017 (Online First), DOI: 10.1515/jisys-2016-0294, (Scopus and ESCI indexed) [2] Thanh Tung Khuat, My Hanh Le, "Optimizing Parameters of Software Effort Estimation Models using Directed Artificial Bee Colony Algorithm," Informatica, vol 40(4), 12/2016 (Scopus and ESCI indexed) [3] Thanh Tung Khuat, My Hanh Le, "Applying Teaching-Learning to Artificial Bee Colony for Parameter Optimization of Software Effort Estimation Model," Journal of Engineering Science and Technology (JESTEC), vol 12, no 5, 2017 (Scopus and ESCI indexed) [4] Thanh Tung Khuat and My Hanh Le, "A Novel Technique of Optimization for the COCOMO II Model Parameters using Teaching-Learning based Optimization Algorithm," Journal of Telecommunications and Information Technology, vol 1/2016, pp 84-89, 2016 (Scopus indexed) Chương 1: Các thuật toán tối ưu lấy cảm hứng từ tự nhiên Chương CÁC THUẬT TOÁN TỐI ƯU LẤY CẢM HỨNG TỪ TỰ NHIÊN Chương giới thiệu tổng quan về tḥt tốn tới ưu, độ phức tạp của nó từ đó hướng đến việc tìm hiểu thuật toán gần lấy cảm hứng từ tự nhiên để tìm lời giải xấp xỉ cho tốn tới ưu thực tế Các nguồn cảm hứng từ tự nhiên sẽ phân loại làm tiền đề để nhóm thuật tốn có lĩnh vực vào từng ng̀n cảm hứng cụ thể Ći cùng, ba tḥt tốn tới ưu phổ biến nghiên cứu đề tài mô tả cụ thể 1.1 Giới thiệu vấn đề Các tượng tự nhiên nguồn cảm hứng để thiết kế quy luật xây dựng hàm toán học cho thuật toán metaheuristic để hướng dẫn quy trình tìm kiếm hướng đến lời giải tớt cho tốn Nghiên cứu hướng đến việc phân loại nguồn cảm hứng, giới thiệu sớ tḥt tốn điểm hình mỡi ng̀n cảm hứng ứng dụng sớ tḥt tốn để giải quyết toán thực tế “Ước lượng nỗ lực cần cho quy trình phát triển sản phẩm phần mềm” 1.2 Tính phức tạp của bài toán tối ưu 1.3 Phân lớp các nguồn cảm hứng từ tự nhiên để xây dựng thuật toán tối ưu Trong nghiên cứu này, chia nguồn cảm hứng thành ba nhóm lớn: vật lý, hóa học sinh học Các nhóm của từng nhóm mô tả Hình Hình Phân loại các nguồn cảm hứng từ tự nhiên 1.4 Tổng quan về các thuật toán tối ưu từ tự nhiên 1.5 Giới thiệu chung về các thuật toán sử dụng đề tài Trong thuật toán trinh bày ở phần trước, có ba thuật toán thường ứng dụng rộng rãi để giải qút tốn tới ưu thực tế thuật toán đàn ong nhân tạo, thuật toán dạy học thuật toán trí tuệ bầy đàn Tuy nhiên những thuật toán vẫn Chương 1: Các thuật toán tối ưu lấy cảm hứng từ tự nhiên có điểm yếu của nó việc tìm lời giải có chất lượng cao Vì vậy, chúng tơi sẽ tập trung vào ba tḥt tốn chính giới thiệu thuật toán cải tiến của chúng để áp dụng vào toán cụ thể tối ưu nỗ lực phát triển phần mềm Chúng hướng đến việc đề xuất phiên bản cải tiến của thuật toán đàn ong nhân tạo ứng dụng nó vào việc nâng cao tính chính xác của mô hình ước lượng phần mềm cụ thể Đề tài cũng sẽ áp dụng nguyên lý thuật toán đàn ong nhân tạo để lai ghép với thuật tốn dạy học, tḥt tốn tới ưu bầy đàn để tạo thuật toán mới hiệu quả việc đưa dự đốn nỡ lực cần cung cấp cho dự án phần mềm Trong đề tài cũng đề xuất phương trình ước lượng nỗ lực mới dựa nhân tố cần thiết cho dự án phần mềm sử dụng phương pháp phát triển linh hoạt Agile Các tham số của phương trình toán học mới xây dựng cách sử dụng tḥt tốn tới ưu lấy cảm hứng từ tự nhiên cải tiến theo hướng hiệu quả Phần còn lại của chương sẽ tập trung mơ tả chi tiết về ba tḥt tốn sử dụng nghiên cứu 1.6 Thuật toán đàn ong nhân tạo 1.7 Thuật toán dạy-học 1.8 Thuật toán đàn ong nhân tạo kết hợp dạy học 1.9 Thuật toán tối ưu bầy đàn 1.10 Thuật toán lai giữa đàn ong nhân tạo và tối ưu bầy đàn (ABC-PSO) Chương 2: Bài toán ước lượng nỗ lực phát triển phần mềm TDEV = C  EffD + 0.002  SF đó: A = 2.94, B = 0.91, C = 3.67 D = 0.28 - Từ đó tính số người trung trình mà đội phát triển cần: NumPeople = Eff / TDEV Mặc dù COCOMO II mô hình ước lượng nỗ lực hiệu quả những hệ số công thức ước lượng Eff TDEV trình bày ở suy từ số dự án sử dụng phương pháp hồi quy nên chúng vẫn chưa tối ưu Do đó, đề tài này hướng đến sử dụng các thuật toán lấy cảm hứng từ tự nhiên để tối ưu bốn tham số A, B, C và D phương trình ước lượng này 2.3.2 Phương pháp điểm chức Các bước ước lượng nỗ lực sử dụng mô hình điểm chức sau: Xác định số lượng điểm chức thô: UFPs UFP = tổng điểm số của độ phức tạp Đánh giá độ phức tạp của kỹ thuật của hệ thống: TCF Tính độ phức tạp kỹ thuật theo công thức: TCF = 0.65 + 0.01 (tổng điểm của 14 yếu tố kỹ thuật) Tính tổng điểm chức cuối cùng: FPs = UFPs  TCF 2.3.3 Kết hợp COCOMO II điểm chức để ước lượng nỗ lực 2.4 Phương pháp ước lượng nỗ lực cho quy trình phần mềm Agile 2.4.1 Quy trình phát triển phần mềm Agile 2.4.1.1 Các nguyên tắc của quy trình Agile 2.4.1.2 Các đặc trưng của quy trình Agile 2.4.2 Phương pháp ước lượng nỗ lực phát triển phần mềm sử dụng quy trình Agile Trong nghiên cứu sử dụng nhân tố của mô hình ước lượng nỗ lực thời gian phát triển cho dự án phần mềm sử dụng quy trình Agile đề xuất bởi Zia cộng Tuy nhiên pháp sử dụng hồi quy tuyến tính để ước lượng nỗ lực từ yếu tố ảnh hưởng đến thời gian sản xuất phần mềm mô hình vẫn chưa cho kết quả tối ưu Vì vậy, nghiên cứu sẽ đề xuất công thức để ước lượng nỗ lực phát triển phần mềm sử dụng quy trình Agile dựa yếu tố đầu vào Những nội dung sẽ trình bày chương Trong phần giới thiệu yếu tố ảnh hưởng bước thực ước lượng sử dụng mô hình ước lượng nỗ lực Zia đề xuất Chương 2: Bài toán ước lượng nỗ lực phát triển phần mềm 2.4.2.1 Các yếu tố đầu vào của mô hình ước lượng Để phục vụ cho trình ước lượng nỗ lực cho sản phẩm phần mềm phát triển theo mô hình Agile cần phải có yếu tố sau: - Các user stories của dự án - Với mỗi user story cần phải xác định điểm chức của nó Để xác định điểm chức của mỗi user story cần phải xác định kích thước của user story độ phức tạp của nó - Xác định vận tốc thực của nhóm phát triển sản phẩm: o Xác định vận tốc sở của nhóm phát triển cách tính trung bình có product backlog (hiểu đơn giản chức yêu cầu hay user story) hoàn thành khoảng thời gian xác định (Sprint) cho dự án tương tự trước đó Nếu chưa có vận tốc thì lấy giá trị trung bình của tất cả dự án mà cách thành viên nhóm phát triển o Xác định tính chất nhân tố thường xuyên xuất làm ảnh hưởng đến tốc độ phát triển của toàn nhóm phát triển: thành phần của nhóm phát triển (đã chọn người với kỹ phù hợp cần cho dự án hay chưa), quy trình phát triển sản phẩm, nhân tố ảnh hưởng đến môi trường làm việc của nhóm, tính gắn kết của nhóm phát triển o Xác định tính chất nhân tố ảnh hưởng đến suất của mỗi thành viên nhóm phát triển: thay đổi thành viên nhóm (thêm, bớt thành viên, thay đổi vai trò trách nhiệm của thành viên), yêu cầu phải nghiên cứu sử dụng công cụ mới cho dự án, lỗi phần mềm của bên thứ ba, thành viên nhóm phải đảm nhận nhiều dự án cùng lúc, vấn đề cá nhân của thành viên nhóm, phản hồi từ khách hàng cho thắc mắc của nhóm phát triển, tính nhập nhằng yêu cầu của dự án, thay đổi đặc tả yêu cầu của sản phẩm, thay đổi nơi làm việc của nhóm phát triển o Xác định vận tốc cuối cùng của nhóm phát triển dưới ảnh hưởng của nhân tố - Xác định lương trung bình hàng tháng cho toàn nhóm phát triển - Xác định chi phí bên lương của nhóm phát triển Tính tỉ lệ của nó so với chi phí dành cho trả lương hàng tháng cho nhóm phát triển - Tính tốn thời gian chi phí cho tồn dự án o Dự đốn thời gian phát triển từ vận tớc story point (đơn vị ngày): T o Xác định mức độ tin cậy đối với ước lượng của nhân tố theo đơn vị phần trăm: CL o Từ đó max cho thời gian phát triển tính sau: Chương 2: Bài toán ước lượng nỗ lực phát triển phần mềm 𝑚𝑖𝑛 = [1 − (100 − 𝐶𝐿) ]×𝑇 100 𝑚𝑎𝑥 = [1 + (100 − 𝐶𝐿) ]×𝑇 100 10 o Xác định sớ ngày làm việc trung bình tháng của nhóm phát triển để quy đổi thời gian sang tháng Từ đó tính chi phí cho toàn dự án dựa thời gian phát triển, lương trung bình hàng tháng hệ sớ từ lương nhân tớ ngồi lương theo công thức: Cost = hệ số  Lương hàng tháng  Số tháng o Xác định max cho chi phí theo công thức sau: 𝑚𝑖𝑛 = [1 − (100 − 𝐶𝐿) ] × 𝐶𝑜𝑠𝑡 100 𝑚𝑎𝑥 = [1 + (100 − 𝐶𝐿) ] × 𝐶𝑜𝑠𝑡 100 hệ sớ = + tỉ trọng các yếu tố ngoài lương 2.4.2.2 Xác định story point cho dự án - Xác định điểm quy mô cho mỗi user story của dự án sử dụng Bảng Bảng Điểm quy mô cho các user story Mô tả Giá trị - Kích thước story cực kỳ lớn Quá lớn để ước lượng chính xác Có thể cần đến vài tháng để hoàn thành Cần phải chia nhỏ thành story nhỏ Có thể hình thành cả dự án mới từ story Kích thước story rất lớn Yêu cầu phát triển thời gian dài, có thể tuần làm việc Nên chia thành story nhỏ Kích thước story vừa phải Cần từ đến ngày để hoàn thành Cần đến ngày để hoàn thành Kích thước story nhỏ Chỉ cần vài để hoàn thành - Xác định điểm độ phức tạp cho mỗi user story - Xác định story point của mỗi user story theo công thức: ES = Độ phức tạp  Kích thước Để tính tổng điểm story point SP của cả dự án thì lấy tổng điểm của tất cả story cần phải thực cho toàn dự án Chương 2: Bài toán ước lượng nỗ lực phát triển phần mềm 11 2.4.2.3 Xác định vận tốc của nhóm phát triển Vận tốc ći cùng của nhóm phát triển tính tốn dựa vào cơng thức (16) 𝑉 = 𝑉𝑖𝐹𝑅×𝐷𝐹 (16) Với FR giá trị hệ số giảm tốc thường xuyên, DF giá trị độ lớn của yếu tố biến động 2.4.2.4 Xác định thời gian và chi phí dự án Từ hai yếu tố đầu vào story point của tồn dự án vận tớc của đội ngũ phát triển, Zia cộng sử dụng mô hình hồi quy tuyến tính cùng với những dữ liệu của dự án lịch sử để tính toán thời gian phát triển T của toàn dự án Sau có thời gian có thể xác định cận dưới cận cần thiết cho dự án Cũng có thể tính tốn chi phí phát triển áp dụng cơng thức yếu tố trình bày phần 2.4.2.1 Chương 3: Cài đặt, thử nghiệm và đánh giá kết quả 12 Chương CÀI ĐẶT, THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ Chương trình bày kết quả phân tích thiết kế chương trình ước lượng nỗ lực phát triển phần mềm, cũng ứng dụng của tḥt tốn tới ưu trình bày ở chương vào mô hình ước lượng nỗ lực phần mềm cụ thể bao gồm mô hình truyền thống phương trình ước lượng nỗ lực mới đề xuất cho dự án sử dụng quy trình Agile Các kết quả thu minh chứng cho tính hiệu quả của vệc áp dụng tḥt tốn tới ưu để nâng cao tính chính xác của kết quả ước lượng Trong chương cũng trình bày về bước phân tích thiết kế cho công cụ phần mềm mà xây dựng 3.1 Đặt vấn đề Trong mô hình ước lượng nỗ lực truyền thống thì mô hình dựa phương trình tốn học nỡi lên những phương pháp ước lượng hiệu quả dựa tập dữ liệu của dự án lịch sử COCOMO II những mô hình vậy Tuy nhiên mô hình vẫn có yếu điểm nó dựa bốn số cố định A= 2.94, B = 0.91, C = 3.67 D = 0.28 cho công thức ước lượng Các số suy luận từ tập của 93 dự án triển khai của NASA không thay đổi áp dụng vào dự án mới Đây nhược điểm lớn của mô hình Trong nghiên cứu hướng đến việc cải tiến mô hình cách sử dụng thuật tốn kết hợp giữa ABC dạy học để tới ưu tham số của mô hình tập dữ liệu dự án lịch sử Tất nhiên quy trình tối ưu để tìm tham số có thể thực liên tục tập dữ liệu lịch sử bị thay đổi cách thêm vào nhiều dự án mới Khi đó chỉ cần thực thuật toán thì nó sẽ cho giá trị tham số tối ưu mới Để ứng phó với tính hay thay đổi yêu cầu phần mềm, phương pháp phát triển phần mềm linh hoạt Agile sử dụng vì những ưu điểm vượt trội của nó tính lặp gia tăng, thời gian chuyển giao nhanh, giảm thiểu rủi ro, cho phép tổ chức thích ứng nhanh với những thay đổi yêu cầu trình phát triển Từ đó làm phát sinh vấn đề làm thế để ước lượng nỗ lực cho dự án sử dụng quy trình phát triển mới Số dòng mã nguồn phần mềm nhân tố chính sử dụng cho mô hình truyền thống Agile thì lại sử dụng user story làm nhân tố chính Bởi vậy, điểm chức story point trở thành phép đo để xác định kích thước của dự án cũng độ khó mỗi mỗi chức đặc tả yêu cầu Ngoài story point thì vận tốc của nhóm phát triển dự án cũng yếu tố ảnh hưởng đến nỗ lực Dựa vào story point vận tốc có thể tạo công thức để ước lượng nỗ lực cho dự án phần mềm sử dụng quy trình Agile Nghiên cứu tập trung vào việc đề xuất công thức ước lượng vậy tham số công thức sẽ tối ưu cách sử dụng tḥt tốn lai giữa tới ưu bầy đàn đàn ong nhân tạo Hiệu quả của phương pháp đề xuất sẽ trình bày chương Chương 3: Cài đặt, thử nghiệm và đánh giá kết quả 13 3.2 Các tiêu chuẩn đánh giá kết quả ước lượng nỗ lực - Độ lớn trung bình của lỗi tương đối (Mean Magnitude of Relative Error – MMRE) - Độ lớn trung vị của lỗi tương đối (Median Magnitude of Relative Error – MdMRE) - Độ chính xác ở mức N (PRED(N)) 𝑀𝑀𝑅𝐸 = × ∑𝐿𝑖=1 𝑀𝑅𝐸𝑖 (17) 𝐿 đó L tổng số dựa án, i chỉ số của dự án tập L dự án MRE độ lớn của lỗi tương đối diễn tả công thức (18) |𝐴𝑖 −𝑃𝑖 | 𝑀𝑅𝐸𝑖 = (18) 𝐴𝑖 với Ai Pi lần lượt giá trị nỗ lực thực giá trị nỡ lực dự đốn của dữ liệu thứ i tập dữ liệu dự án sử dụng mô hình ước lượng đó 𝑃𝑅𝐸𝐷 (𝑁) = 100 𝐿 × ∑𝐿𝑖=1 { 𝑁 nếu 𝑀𝑅𝐸𝑖 ≤ nếu ngược lai 100 (19) Hệ số tương quan bình phương (R2) tính tốn cơng thức (20) cũng phép đo tính tốt của mô hình ước lượng phần mềm Giá trị của R2 cao thì kết quả ước lượng chính xác ∑𝐿 𝑖=1(𝐴𝑖 −𝑃𝑖 ) 𝑅2 = − ∑𝐿 𝑖=1(𝐴𝑖 −𝐴𝑚𝑒𝑎𝑛 ) (20) ở Amean giá trị trung bình của nỗ lực thực Shepperd MacDonell đề xuất phép đo gọi số dư tuyệt đối trung bình (mean absolute residual – MAR) cho công thức (21) 𝑀𝐴𝑅 = ∑L i=1 |𝐴𝑖 −𝑃𝑖 | 𝐿 (21) 3.3 Tối ưu tham số mơ hình COCOMO tḥt toán TLABC 3.3.1 Hàm thích nghi Để đánh giá chất lượng của mỗi nguồn thức ăn (lời giải) tìm cần sử có hàm thích nghi Trong phần sẽ áp dụng thuật toán lai giữa thuật toán đàn ong nhân tạo tḥt tốn dạy học để tới ưu bốn giá trị tham số A, B, C, D của mô hình ước lượng COCOMO II Từ công thức ước lượng nỗ lực của mô hình COCOMO II, nhận thấy hai tham số A B nằm công thức liên quan đến nỗ lực, hai tham số còn lại nằm công thức liên quan đến giá trị thời gian có mối liên hệ với nỗ lực Vì vậy, xây dựng hàm thích nghi công thức (22) kết hợp của cả nỗ lực thời gian để đánh giá tính tốt của mỗi lời giải thu (bộ tham số A, B, C D) trình tìm kiếm lời giải Chương 3: Cài đặt, thử nghiệm và đánh giá kết quả 𝑓= 100 𝐿 × ∑𝐿𝑖=1[ 14 |𝐴𝐸𝑖 −𝑃𝐸𝑖 | 𝐴𝐸𝑖 + |𝐴𝑇𝑖 −𝑃𝑇𝑖 | 𝐴𝑇𝑖 ] (22) đó: L tổng số dự án sử dụng tập huấn luyện, AEi PEi lần lượt giá trị nỗ lực thực giá trị nỗ lực ước lượng của dự án thứ i tập huấn luyện, ATi PTi lần lượt giá trị thời gian thực giá trị thời gian ước lượng của dự án thứ i 3.3.2 Kết quả thực nghiệm Bảng Kết quả ước lượng nỗ lực sử dụng thuật toán ABC, TLABC, COCOMO II Tiêu chí đánh giá MMRE PRED(10) PRED(20) PRED(30) PRED(40) Nỗ lực ABC (%) TLABC (%) 21.68 42.86 62.29 75.00 82.14 Thời gian COCOMO II (%) 21.57 42.86 64.29 78.57 82.14 27.50 17.86 50.00 67.86 82.14 ABC (%) 8.66 64.29 96.43 99.10 100 TLABC (%) 8.29 71.43 96.43 100 100 COCOMO II (%) 14.71 17.86 50.00 67.86 82.14 Từ Bảng nhận thấy kết quả ước lượng nỗ lực của mô hình COCOMO II với tham số tối ưu tốt nhiều so với mô hình ban đầu về cả độ chính xác của nỗ lực thời gian Cụ thể, giá trị MMRE giảm khoảng 6% tham số của mơ hình tới ưu bởi tḥt tốn ABC TLABC Chúng ta cũng thấy kết quả sử dụng tḥt tốn TLABC tớt kết quả của ABC Điều nhận thấy rõ nhất tiêu chí đánh giá PRED(10) đối với thời gian 3.4 Phương trình toán học cho bài toán ước lượng nỗ lực phát triển cho các phần mềm sử dụng quy trình Agile 3.4.1 Phương trình toán học đề xuất Dựa vào hai yếu tố đầu vào đặc trưng của phần mềm sử dụng quy trình Agile vận tốc của nhóm phát triển tổng điểm story point, đề xuất công thức để ước lượng nỗ lực cho phần mềm (23) 𝐸𝑓𝑓 = 𝐴×𝑆𝑃 𝐵×𝑉 + 𝐶 × ln(𝑆𝑃 ) + 𝐷 × ln(𝑉 ) + 𝐸 (23) đó: Eff giá trị nỗ lực ước lượng đơn vị ngày, SP giá trị của tổng điểm story point, V vận tốc sau hiệu chỉnh của nhóm phát triển Mục đích của xác định giá trị A, B, C, D E kết quả ước lượng gần nhất với kết quả nỗ lực thực tế Dựa vào tập dữ liệu huấn luyện tḥt tốn tới ưu, có thể xác định giá trị cho tham số Sau có giá trị cho tham số, với dự án mới, chỉ cần nhập Story point vận tốc vào công thức (23) sẽ có kết quả ước lượng 3.4.2 Tìm tham sớ tối ưu cho công thức ước lượng Agile sử dụng thuật toán ABC-PSO Chương 3: Ứng dụng các thuật toán tối ưu vào bài toán ước lượng nỗ lực phát triển phần mềm 15 3.4.2.1 Biểu diễn cá thể của thuật toán và hàm thích nghi Trong nghiên cứu này, mỡi cá thể sử dụng tḥt tốn biểu diễn sau: Xi = {Ai, Bi, Ci, Di, Ei} Sau thuật toán kết thúc nó sẽ trả về cá thể tốt nhất chứa tham số mà kết quả ước lượng của công thức (23) gần nhất với nỗ lực thực tế tập dữ liệu huấn luyện Để đánh giá tính tốt của mỗi cá thể śt q trình thực thi tḥt tốn, sử dụng hàm thích nghi công thức (24) 𝑓 (𝑋𝑖 ) = 𝑀𝑀𝑅𝐸 (𝑋𝑖 ) + 𝑀𝐴𝑅(𝑋𝑖 ) (24) đó: MMRE(Xi) MAR(Xi) lần lượt độ lớn trung bình của lỗi tương đối số dư tuyệt đối trung bình của cá thể Xi L dự án tập huấn luyện Trong nghiên cứu sẽ sử dụng 21 dự án Agile nghiên cứu của Zia [31] để đánh giá tính hiệu quả của phương pháp đề xuất 3.4.2.2 Kết quả thực nghiệm Bảng Kết quả ước lượng của các thuật toán tối ưu các tiêu chí đánh giá MMRE (%) MdMRE (%) PRED(8) (%) R2 MAR ABC-PSO 5.69 3.33 66.67 0.9734 3.12 ABC 5.84 5.18 61.9 0.9732 3.15 PSO 6.69 7.14 61.9 0.9626 3.66 Hồi quy của Zia 7.19 7.14 57.14 0.9638 Thuật toán 3.5 Phân tích chức của chương trình Dựa những kết quả lý thuyết đạt được, tiến hành xây dựng phần mềm hỗ trợ ước lượng nỗ lực cho dự án phần mềm sử dụng quy trình truyền thống CoCoMo quy trình Agile Chương trình xây dựng có chức bản sau: + Xem thông tin dự án gồm cả CoCoMo Agile, dự án triển khai dự án kết thúc + Tìm kiếm dự án mới sử dụng tiêu chí lọc kết quả khác + Tạo mới dự án, thay đổi thông tin dự án hoặc xóa dự án khỏi sở dữ liệu + Ước lượng nỗ lực cần có của dự án dựa yếu tố đầu vào + Thiết lập cấu hình tham số cho mô hình ước lượng nỗ lực cách thủ công + Tối ưu tự động tham số của mô hình ước lượng.Thiết kế chương trình Chương 3: Cài đặt, thử nghiệm và đánh giá kết quả 3.5.1 Biểu đồ ca sử dụng (Use case) Hình Biểu đồ Ca sử dụng (Use case) 16 Chương 3: Cài đặt, thử nghiệm và đánh giá kết quả 3.5.2 Biểu đồ tuần tự hoạt động Hình Biểu đồ phân rã chức xem dự án Hình Biểu đồ tuần tự của chức ước lượng dự án 17 Chương 3: Cài đặt, thử nghiệm và đánh giá kết quả 18 Hình Biểu đồ hoạt động của chức thiết lập tham số mô hình ước lượng 3.5.3 Biểu đồ lớp CostDriver Project ScaleFactor 1 1 1 OtherExpense AgileProject CoCoMoProject InternalLogicalFile 1 FunctionTechnique 1 * 1 * ExternalInterfaceFile AgileTask * * ExternalInput * ExternalQuery * ExternalOutput Hình Biểu đồ lớp của hệ thống ước lượng nỗ lực Chương 3: Cài đặt, thử nghiệm và đánh giá kết quả 3.6 Một số hình ảnh của hệ thống ước lượng nỗ lực Hình Giao diện chức chính của phần mềm ước lượng nỗ lực Hình Giao diện dự án kết thúc 19 Chương 3: Cài đặt, thử nghiệm và đánh giá kết quả Hình 10 Giao diện chức tạo dự án COCOMO Hình 11 Giao diện chức thiết lập cấu hình tham số 20 Kết luận và hướng phát triển 21 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Nghiên cứu đạt những kết quả sau: - Đề xuất phương pháp phân loại mới cho thuật toán lấy cảm hứng từ tự nhiên khảo sát tởng quan tḥt tốn có cho mỗi nguồn cảm hứng Kết quả sẽ mở hướng nghiên cứu mới cho việc tiếp tục đề x́t tḥt tốn tới ưu mới dựa tư tưởng của mỗi nguồn cảm hứng từ vật lý, hóa học, sinh học - Chúng đề xuất những hướng cải tiến hiệu quả cho thuật tốn đàn ong nhân tạo tḥt tốn tới ưu bầy đàn, hai thuật toán sử dụng thường xuyên nhất lớp thuật toán metaheuristic Những cải tiến của đăng tạp chí quốc tế có uy tín Những hướng cải tiến mới nâng cao độ hội tụ chất lượng của lời giải so với tḥt tốn gớc thực nghiệm tốn tới ưu nỡ lực phát triển phần mềm - Chúng cũng giới thiệu tổng quan hầu hết mô hình ước lượng nỗ lực nghiên cứu lĩnh vực công nghệ phần mềm từ mô hình dựa cơng thức tốn học, tri thức chun gia đến phương pháp dựa học, suy luận phương pháp kết hợp Những khảo sát đặt nền móng cho những cải tiến tiếp theo của mô hình ước lượng cũng đóng góp nguồn tài liệu tham khảo cho nghiên cứu cùng lĩnh vực - Chúng tơi áp dụng những tḥt tốn tối ưu cải tiến để tối ưu tham số công thức ước lượng của những mô hình dựa phương trình tốn học COCOMO II Những mơ hình sau giá trị tham số tối ưu cho kết quả chính xác nhiều so với mô hình gốc Điều cho thấy tính hiệu quả tiềm ứng dụng to lớn của tḥt tốn tới ưu lấy cảm hứng từ tự nhiên vào lớp tốn ước lượng nỡ lực phát triển phần mềm - Quy trình phát triển phần mềm đại dần chuyển sang sử dụng phương pháp phát triển linh hoạt Agile để giảm rủi ro trình xây dựng phần mềm Điều đó cũng đặt đòi hỏi cần có mô hình ước lượng nỗ lực mới Chúng sử dụng hai yếu tố đầu vào cần có của quy trình Agile tổng điểm story point vận tốc của đội ngũ phát triển sản phẩm để đề x́t cơng thức mới tính tốn thời gian để hồn thành dự án Các tham sớ cơng thức đề xuất xây dựng động dựa dữ liệu của dự án lịch sử thuật toán tối ưu cải tiến Những kết quả trình bày cuối chương ba cho thấy những đề xuất của hợp lý có giá trị thực tiễn - Dựa sở những kiến thức tìm hiểu trình thực đề tài, cũng xây dựng công cụ để thực ước lượng nỗ lực cho dự án sử dụng mô hình ước lượng nỗ lực truyền thống COCOMO II mô hình ước lượng nỗ lực mới cho quy trình Agile Phần phân tích, thiết kế chương trình cũng số hình ảnh về công cụ trình bày cuối chương Kết luận và hướng phát triển 22 Hướng phát triển Trên sở những kết quả đạt được, dự định mở rộng đề tài theo số hướng sau: - Đề x́t sớ tḥt tốn tới ưu mới sở những nguồn cảm hứng phân loại hoặc lai ghép giữa thuật toán với để cải thiện tính hiệu quả của những thuật tốn có - Xây dựng mơ hình ước lượng nỗ lực mới cho phần mềm sử dụng quy trình Agile với nhiều tham số đầu vào số dòng mã mà nhóm phát triển chuyển giao cho khách hàng từng giai đoạn, tích hợp mã nguồn giữa thành phần với nhau, yêu cầu chức phi chức của dự án - Chúng cũng hướng đến việc sử dụng kỹ thuật học máy máy vec-tơ hỗ trợ, rừng ngẫu nhiên, mạng nơ-ron nhân tạo cải tiến để xây dựng phương pháp ước lượng nỗ lực mới cho cả dự án sử dụng quy trình phát triển truyền thống quy trình Agile - Chúng cũng muốn triển khai kết quả nghiên cứu đạt vào môi trường doanh nghiệp để từ đó có thêm liệu cho việc cải thiện phương pháp đề xuất cũng xây dựng tập dữ liệu dự án lịch sử phù hợp với môi trường phát triển phần mềm ở Việt Nam

Ngày đăng: 24/06/2021, 20:19

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

TÀI LIỆU LIÊN QUAN

w