Tóm tắt Luận văn Thạc sĩ Khoa học máy tính: Nghiên cứu và ứng dụng mạng Nơ-ron nhân tạo 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
Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
1,06 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN NGỌC NHÂN NG N N C U VÀ NG NG ẠNG N -RON N TẠ VÀ À T N Ư C Ư NG N T TR N N T 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 T ẠC SĨ KHOA HỌC MÁY TÍNH Đà Nẵng – Năm 2017 C G Cơng trình hồn thành TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG Người hướng dẫn khoa học: TS LÊ THỊ MỸ HẠNH Phản biện : TS Ninh Khánh Duy Phản biện : TS Nguyễn Quang Thanh 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ĩ ngành Khoa học máy tính họp Trường Đại học Bách khoa Đà Nẵng vào ngày tháng năm 2017 Có thể tìm hiểu luận văn : - Trung tâm Thông tin - Học liệu, Đại học Đà Nẵng - Trung tâm học liệu truyền thông, trường Đại học Bách Khoa, Đại học Đà Nẵng MỞ Đ U Lý chọn đề tài Phần mềm sử dụng rộng rãi đời sống, công việc, nhiều lĩnh vực khoa học, kinh tế xã hội Vì vậy, việc đảm bảo phần mềm làm mang lại hiệu kinh tế kịp thời đáp ứng yêu cầu đặt cần thiết Trên thực tế có nhiều dự án phần mềm thất bại Mặc dù có nhiều lý do, lý quan trọng ước lượng nỗ lực, chi phí khơng xác Các lý làm cho dự án chệch khỏi tầm kiểm sốt mục tiêu khơng rõ ràng, ước lượng nỗ lực khơng xác, lập kế hoạch tồi, công nghệ mới, phương pháp quản lý dự án không phù hợp, không đủ nhân Ít ba sáu lý rõ ràng liên quan đến quản lý dự án Hai lý cịn lại khơng đủ nhân cơng nghệ - coi rủi ro mà để quản lý chúng phần quản lý dự án Trong việc chọn phương pháp quản lý dự án ước lượng nỗ lực phát triển phần mềm đóng vai trị nịng cốt việc thành bại dự án Agile phương thức phát triển phần mềm linh hoạt (Agile Software Development) vòng đời phát triển phần mềm trở nên phổ biến ngành phát triển phần mềm Agile bao gồm nhóm phương pháp phát triển phần mềm dựa phát triển xoay vòng tăng dần Các yêu cầu giải pháp phát triển thông qua hợp tác tự tổ chức, nhóm Nó thúc đẩy kế hoạch, phát triển tăng dần, bàn giao hợp lý khuyến khích phản ứng nhanh, linh hoạt để thích nghi với thay đổi Nhiều người cho ước tính hay lập kế hoạch kĩ khó khăn thực tiễn làm dự án phần mềm Dựa sở 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: “Nghiên cứu ứng dụng mạng Nơ-ron nhân tạo vào toán ước lượng nỗ lực phát triển phần mềm theo mơ hình Agile” Mục đích ý nghĩa đề tài a 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 mơ hì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ự toán phần mềm ước lượng, đưa kế hoạch chi tiêu hợp lý mặt nhân sự, sở vật chất, phần mềm cơng nghệ, đồng thời ước tính phải hội tụ chuyên gia lập trình đầu tư cho dự án nhiều tiềm Vì vậy, phần mềm với công cụ ước lượng thông minh chuyên sâu cần thiết cho kế hoạch dự tốn chi phí dự án b Ý 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 phần mềm Nắm vững ứng dụng tốt mạng Nơ-ron nhân tạo, thuật toán Artificial Bee Colony (ABC) Kết q 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 mơ hình Agile c Ý nghĩa thực tiễn Xây dựng thành công ứng dụng ước lượng nỗ lực phát triển phần mềm theo mô hì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 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 đến nhìn tổng quan tiến độ, chi phí khả thực thi dự án Dựa đó, dễ dàng phát cố rủi ro tiềm tàng, đồng thời, đưa điều chỉnh phù hợp Sự chuyên nghiệp: Bên cạnh việc ước lượng thời gian, chi phí với xác cao dẫn tới thành cơng hay thất bại dự án ước lượng nỗ lực phần mềm cịn cơng cụ thể chuyên nghiệp công ty Mục tiêu nhiệm vụ a Mục tiêu Mục tiêu đề tài ước lượng nỗ lực phát triển dự án phần mềm Để thoả mãn mục tiêu cần đạt mục tiêu cụ thể sau: Nắm vững mơ hình phát triển phần mềm Agile Nắm vững kiến thức ước lượng nỗ lực phát triển phần mềm Nắm vững kiến thức mạng Nơ-ron nhân tạo, thuật toán tối ưu ABC, Levenberg–Marquardt Áp dụng thành công mạng Nơ-ron nhân tạo vào ước lượng nỗ lực phát triển phần mềm mơ hình Agile b Nhiệm vụ Để đạt mục tiêu nhiệm vụ đặt đề tài là: Nghiên cứu mơ hình phát triển phần mềm linh hoạt Agile Nghiên cứu mạng Nơ-ron nhân tạo, tình hình thực tế việc áp dụng vào toán ước lượng nỗ lực Nghiên cứu thuật toán ABC, Levenberg–Marquardt, ứng dụng vào việc cải thiện tính hiệu Artificial Neural Network (ANN) Phát biểu, 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 phạm vi nghiên cứu Trong khuôn khổ luận văn thuộc loại nghiên cứu ứng dụng, giới hạn nghiên cứu vấn đề sau: Giới thiệu mơ hình phát triển phần mềm Agile Tìm hiểu ước lượng nỗ lực phát triển phần mềm nói chung theo qui trình Agile nói riêng Mạng Nơ-ron nhân tạo, thuật tốn ABC, Levenberg– Marquardt Xậy dựng chương trình ước lượng nỗ lực môi trường Windows với ngôn ngữ C# 5 hương pháp nghiên cứu a Phương pháp lý thuyết Tiến hành thu thập nghiên cứu tài liệu có liên quan đến đề tài Tìm hiểu nghiên cứu mơ hình phát triển phần mềm linh hoạt Agile Nghiên cứu lý thuyết ước lượng nỗ lực phát triển phần mềm nói chung kỹ thuật ước lượng nỗ lực mơ hình Agile nói riêng Nghiên cứu mạng Nơ-ron nhân tạo việc ứng dụng vào toán ước lượng nỗ lực phát triển phần mềm Nghiên cứu giải pháp xây dựng chương trình ngơn ngữ lập trình C để ước lượng nỗ lực phát triển phần mềm dựa sở lý thuyết tìm hiểu b Phương pháp thực nghiệm Nghiên cứu đề xuất giải pháp tối ưu việc ước lượng nỗ lực phát triển phần mềm sử dụng mạng Nơ-ron nhân tạo Cài đặt giải pháp thử nghiệm, so sánh đánh giá kết hương tiện, công cụ triển khai Hệ điều hành Windows Môi trường phát triển phần mềm Microsoft Visual Studio Thư viện aforge.net, accord.net C Ư NG 1: C SỞ LÝ THUYẾT 1.1 Mơ hình phát triển phần mềm Agile 1.1.1 Agile gì? Phương thức phát triển phần mềm Agile tập hợp phương thức phát triển lặp tăng dần yêu cầu giải pháp phát triển thông qua liên kết cộng tác nhóm tự quản liên chức 1.1.2 Các tuyên ngôn Agile “Cá nhân tương hỗ quan trọng quy trình cơng cụ” “Sản phẩm xài quan trọng tài liệu sản phẩm” “Cộng tác với khách hàng quan trọng đàm phán hợp đồng” “Phản hồi với thay đổi quan trọng bám theo kế hoạch” 1.1.3 Các nguyên tắc Agile Thỏa mãn yêu cầu khách hàng thông qua việc giao sản phẩm sớm liên tục Chào đón việc thay đổi yêu cầu, chí thay đổi yêu cầu muộn Giao phần mềm chạy cho khách hàng cách thường xuyên (giao hàng tuần hàng tháng) Nhà kinh doanh kỹ sư lập trình 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ọ để hồn thành cơng việc Trao đổi trực tiếp mặt đối mặt phương pháp hiệu để truyền đạt thông tin Phần mềm chạy thước đo tiến độ Phát triển bền vững trì nhịp độ phát triển liên tục Liên tục quan tâm đến kĩ thuật thiết kế để cải tiến linh hoạt Sự đơn giản cần thiết – nghệ thuật tối đa hóa lượng cơng việc chưa hồn thành Nhóm tự tổ chức Thích ứng thường xuyên với thay đổi 1.1.4 Các đặc trưng Agile Tính lặp (Iterative) Tính tăng trưởng (Incremental) tiến hóa Evolutionary) Tính thích ứng hay thích nghi – adaptive) Nhóm tự tổ chức liên chức Quản lý tiến trình thực nghiệm (Empirical Process Control) Giao tiếp trực diện (face-to-face communication) Phát triển dựa giá trị value-based development) 1.2 Ước lượng nỗ lực phát triển phần mềm 1.2.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 Thực tế khơng dự án ước lượng xác, ước lượng cần thực nhiều vòng Mức ước lượng có nhiều sai sót giai đoạn khá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ị (divide and conquer) 1.2.2 Ước lượng nỗ lực gì? Vì phải ước lượng? Cũng giống dự án khác, dự án phần mềm cần phải ước lượng đại lượng với mục đích : Dự tốn chi phí hợp lý Sự xác cao Đảm bảo tiến độ Kiểm soát dự án tốt Thể chuyên nghiệp 1.2.3 Ước lượng nỗ lực mơ hình Ước lượng chun gia: chuyên gia có kinh nghiệm triển khai dự án phần mềm, trả lời ước lượng khơng phải lúc độ xác đáng tin cậy Ước lượng kinh nghiệm khứ Phải có số liệu q khứ, phải hiểu tình hình Ước lượng mơ hình ước lượng thực nghiệm Phải có tham số dự án Một số phương pháp ước lượng nỗ lực phát triển phần mềm Phương pháp tương đồng Phương pháp Wide-band Delphi Mơ hình COCOMO 1.3 Mạng Nơ-ron nhân tạo 1.3.1 Mơ hình Nơ-ron nhân tạo Mạng Nơ-ron nhân tạo cho hình 1.1 Các Nơ-ron xếp theo cấu trúc liên kết lớp riêng biệt Lớp ngõ vào Nơ-ron thực: Nơ-ron hoạt động đơn giản giới thiệu giá trị biến vào Các Nơ-ron lớp ẩn lớp ngõ kết nối với tất Nơ-ron lớp trước Cũng có 11 Hình 1.2: Mơ hình mạng Nơ-ron nhân tạo Hai hay nhiều Nơ-ron kết hợp thành lớp hình 1.3, mạng riêng biệt chứa hay nhiều lớp Nơ-ron hình 1.4 Hình 1.3: Lớp mạng Nơ-ron Hình 1.4: Nhiều lớp mạng Nơ-ron 12 1.4.2 Cấu trúc liệu Cấu trúc định dạng liệu vào ảnh hưởng đến việc mô mạng Có hai loại mạng static network dynamic network Hai kiểu vector đầu vào kiểu xảy đồng thời (concurrently) kiểu xảy liên tục theo thời gian (sequentially) 1.4.3 Kiểu huấn luyện Trong phần mô tả hai kiểu huấn luyện khác Incremental training: trọng số ngưỡng mạng cập nhập có liệu vào mạng Kiểu ứng dụng hai mạng tĩnh động, nhiên thường dùng mạng động nhiều hơn, lọc thích ứng Batch training: trọng số ngưỡng mạng cập nhập sau tất liệu vào mạng, dùng hai mạng tĩnh động 1.5 Huấn luyện mạng ANN Các giải thuật huấn luyện mạng chia làm loại chính: Loại thứ sử dụng kỹ thuật thử kỹ thuật mở rộng từ việc phân tích hiệu suất thuật tốn giảm dốc chuẩn Kỹ thuật gồm giải thuật backpropagation tốc độ học thay đổi có hàm huấn luyện traingda giải thuật phục hồi mạng backpropagation với hàm huấn luyện trainrp Loại thứ hai sử dụng kỹ thuật tối ưu hóa số chuẩn Loại có ba kỹ thuật tối ưu hóa số dùng để huấn luyện mạng Neural Networks: conjugate gradient (traincgf, traincgb, traincgp, trainscg), quasi _ Newton (trainbfg, trainoss) Levenberg _ Marquardt (trainlm) 1.5.1 Giải thuật tốc độ học thay đổi (TRAINDA,TRAINDX) 1.5.2 Giải thuật phục hồi mạng backpropagation (TRAINRP) 1.5.3 Giải thuật conjugate_ gradient 13 1.5.4 Các thuật toán quasi – newton 1.5.5 Giải thuật Levenberg_Marquardt giảm nhớ (TRAINLM) 1.5.6 So sánh nhớ tốc độ giải thuật 1.6 Đánh giá mạng Nơ-ron nhân tạo Giống lĩnh vực trí tuệ nhân tạo nói chung, hai mục tiêu việc nghiên cứu mạng Nơ-ron nhân tạo là: Mơ hình hóa não: Mục đích khoa học việc xây dựng mơ hình mạng Nơ-ron nhân tạo tìm hiểu thực tế não làm việc Điều giúp hiểu chất thông minh người, xây dựng chiến lược dạy tốt, hoạt động chữa trị hiệu cho bệnh nhân bị thương tổn não Xây dựng hệ thống nhân tạo: Mục đích kỹ thuật việc xây dựng hệt thống mạng Nơ-ron nhân tạo nhằm đem lại hiệu tốt ứng dụng thực tế Điều làm cho máy móc hoạt động tốt hơ, thay người cơng việc nhàm chán chí cải thiện hiệu suất công việc C Ư NG 2: N Ư C Ư NG N L C PHÁT TRI N PH N M M THEO QUI TRÌNH AGILE 2.1 Mơ hình tổng quan tốn Để sử dụng ANN 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 lấy từ công việc Zia[6] Đầu toán thời gian hồn thành dự án Từ tính tốn chi phí phát triển dự án 14 Trong nghiên cứu đề xuất sử dụng mạng Nơ-ron nhân tạo để ước lượng nỗ lực phát triển phần mềm dựa kết hợp thuật toán Artificial Bee Colony (ABC)[2] thuật toán Levenberg– Marquardt (LM)[3] trình huấn luyện mạng Nơ-ron nhân tạo Đầu vào mơ hình ANN gồm tổng số story point vận tốc cuối dự án đầu thời gian hồn thành dự án mơ tả tổng quan theo hình 2.1 Trong cơng việc nghiên cứu để tăng độ xác nỗ lực lập dự toán, ABC LM thuật tốn sử dụng để tối ưu hóa trọng số ANN Các bước để ước lượng nỗ lực dự án phần mềm sau: Bước 1: Thu thập tổng số story point, vận tốc thực dự án, nỗ lực thực tế Trong nghiên cứu này, liệu lấy từ cơng việc Zia [6] Bước 2: Chuẩn hố liệu story point, vận tốc dự án, giá trị nỗ lực thực tế khoảng [0, 1] X liệu, x thành phần liệu trên, x' giá trị sau chuẩn hố cơng thức (8) – ( ) ( ) ( ) ( ) max(X) min(X) mức tối thiểu tối đa giá trị liệu X tương ứng Bước 3: Tách liệu thành tập liệu huấn luyện tập luyện thử nghiệm Trong nghiên cứu này, 15 dự án sử dụng để huấn luyện lại để thử nghiệm Bước 4: Huấn luyện mạng Nơ-ron nhân tạo: ABC LM sử dụng để tối ưu hóa trọng số ANN Bước 5: Kiểm tra đánh giá việc thực 15 Sau trải qua bước ANN xong, kết thu được so sánh với loại khác ANN đánh giá vai trò ABC việc tối ưu hóa trọng số ANN Hình 2.1: Mơ hình tổng quan tốn 16 2.2 Ước lượng mơ hình Agile 2.2.1 ác đ nh nỗ lực tory point Story Size Độ phức tạp 2.2.2 ác đ nh vận tốc dự án(Agile Velocity) Tối ưu hoá vận tốc Agile Sự giảm tốc Sự biến thiên lực lượng lao động C Ư NG 3: Ư NG N NG D NG NN VÀ À T NƯ C L C PHÁT TRI N PH N M M THEO MƠ HÌNH AGILE 3.1 h n tích ài tốn ước lượng nỗ lực phát triển phần mềm theo qui trình Agile Tại phải ước lượng nỗ lực phát triển phần mềm? Ước lượng kích cỡ Ước lượng nỗ lực Xác định chi phí dự án Sự sai sót ước lượng 3.2 Áp dụng NN ài toán ước lượng nỗ lực phát triển phần mềm th o q i tr nh gil 3.2.1 Thuật toán ABC Dựa theo hành vi tự nhiên bầy ong thật, thuật tốn ABC cố tìm giá trị tối ưu gần tối ưu cho toán tối ưu Thuật toán ABC thuật toán lặp lặp lại bao gồm giai đoạn theo : giai đoạn khởi tạo, ong thợ, ong quan sát 17 giai đoạn ong trinh sát Thuật toán kết thúc đạt đến số lần lặp lớn có lỗi xảy chương trình 3.2.2 Huấn luyện ANN sử dụng thuật toán ABC thuật toán Levenberq- Marquardt Các thuật toán ABC có khả mạnh mẽ để tìm kết tối ưu hố tồn cục thuật tốn LM có khả mạnh mẽ để tìm kết tối ưu hoá cục Kết hợp ABC với LM, tạo thuật toán lai (ABC-LM)[3] đề xuất nghiên cứu Ý tưởng thuật toán lai ABC sử dụng giai đoạn đầu việc tìm kiếm tối ưu[5] Sau đó, q trình huấn luyện tiếp tục với thuật tốn LM Mơ hình bước hoạt động chương trình mơ tả hình 3.1 Trong thuật toán kết hợp ABC-LM, giai đoạn thuật tốn ABC hồn thành việc huấn luyện, sau thuật toán LM bắt đầu huấn luyện với trọng số thuật toán ABC tối ưu thuật toán LM huấn luyện mạng 18 Hình 3.1: Quá trình huấn luyện 3.3 Đánh giá thực nghiệm 3.3.1 Mô tả thực nghiệm Để đánh giá hiệu suất phương pháp đề xuất có tiêu chí sau : Tiêu chí Mean Squared Error (MSE) tính cơng thức (21) 19 ∑( ) ( ) Trong giá trị nỗ lực thực tế dự đoán tưng ứng thử nghiệm thứ i Tiêu chí Mean Magnitude of Relative Error (MMRE) tỷ lệ phần trăm trị tuyệt đối sai số dự đoán toàn tập liệu Với liệu thử T MMRE tính theo cơng thức (22) : ( ∑ PRED(N) cho thấy tỉ lệ phần trăm ước lượng N phần trăm thực tế qua công thức (23) ( ) ) ∑{ ( ) Hệ số tương quan bình phương R2), cịn gọi hệ số xác định tính theo công thức (24): ∑ ( ) ∑ ( ̅) ̅ giá trị trung bình nỗ lực thực tế ( ) 20 Vậy nên giá trị R2 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.3.2 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 Thiết lập liệu gồm có: Tổng số Story Point thực dự án Vận tốc dự án Những nỗ lực thực tế cần thiết để hồn thành dự án Trong nghiên cứu này, mười lăm dự án sử dụng để huấn luyện ANN sáu liệu lại dùng để tiến hành thực nghiệm đánh giá kết đạt 3.3.3 Đánh giá kết đạt Bảng V cho thấy kết thực nghiệm Bảng V: So sánh kết ước lượng Effort 289 113 141 213 137 91 Velocity 2.8 2.8 2.8 2.8 2.7 2.7 Time 112 39 52 80 56 35 ABC-LM TLBO-LM 113.3 42.6 53.7 82.0 66.7 35.3 MSE 22.6866 MMRE PRED(7.19) R 6.0208 66.6677 0.9677 88 41.9 52.6 75.2 52.5 34.9 103.345 TLBABC-LM LM 98 43.1 54.1 80.3 54.4 36.1 94.8 45.9 55.8 80.8 54.3 40.4 36.8467 65.0967 7.0923 66.6677 5.5710 66.6667 9.9702 33.3333 0.8530 0.9476 0.9074 3.4 Thi t cài đ t chương tr nh 3.4.1 Mơ hình thực thể quan hệ ERD Hình 3.2 lược đồ thể cấu trúc trừu tượng hoá liệu ứng dụng, thể mối quan hệ thực thể ứng dụng 21 Hình 3.2: Mơ hình ERD 3.4.2 Biểu đồ Use Case 3.4.2.1 Biểu đồ Mơ hình 3.3 cung cấp nhìn trực quan nghiệp vụ hệ thống đại diện Use case) người dùng hệ thống đại diện người dùng) Hình 3.3: Mơ hình Use Case 22 3.4.3 Biểu đồ hoạt động Hình 3.4: Biểu đồ hoạt động 3.4.4 Thiết kế giao diện chức Màn hình Màn hình thêm dự án Màn hình cài đặt Màn hình kết 3.4.5 Cài đặt chương trình Cung cấp cho chương trình liệu ban đầu Trong nghiên cứu sử dụng dataset bao gồm 21 dự án từ công ty phần mềm khác lấy từ cơng việc Zia[6] Người dùng cung cấp thêm liệu từ việc phát triển ứng dụng thực tế, ứng dụng ước lượng ứng dụng mặt định làm dataset cho trọng số sau Ứng dụng phát triển môi trường windows 23 3.5 K t chương tr nh Hoàn thành chức giúp người dùng cung cấp thông tin cần thiết dự án để tiến hành ước lượng nỗ lực phát triển phần mềm theo mơ hình Agile Tính tốn giá trị vận tốc dự án tổng số story point dự án mà người dùng nhập thông tin vào Áp dụng ANN vào toán ước lượng nỗ lực phát triển phần mềm, kết đạt thời gian hoàn thành dự án chi phí để hồn thành dự án KẾT LUẬN VÀ Ư NG PHÁT TRI N K t đạt 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 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í trình phát triển Đầy đủ chức mà khách hàng yêu cầu Đề xuất giải pháp áp dụng mạng Nơ-ron nhân tạo, ABC, Levenberg–Marquardt vào toán ước lượng nỗ lực phát triển phần mềm mơ hình phát triển Agile Cài đặt chương trình sở giải pháp đề xuất tích hợp môi trường Windows Hạn ch Giải pháp đề dựa ANN, phụ thuộc nhiều vào tham số đầu vào, tham số đầu vào khơng xác dẫn đến kết xa mong muốn 24 Chỉ giải giải pháp nhỏ, 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 ướng phát triển Phải 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 Á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 mạng Nơ-ron áp dụng vào toán ước lượng cụ thể 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