Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Kiến trúc xây dựng Luận văn thạc sĩ ước lượng nỗ lực phát triển phần mềm sử dụng thuật toán tối ưu ...

Tài liệu Luận văn thạc sĩ ước lượng nỗ lực phát triển phần mềm sử dụng thuật toán tối ưu dựa trên hành vi săn mồi của bầy sói

.PDF
53
15
87

Mô tả:

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN THỊ NGỌC NGÂN NGUYỄN THỊ NGỌC NGÂN * Ư C Ư NG N C PHÁT TRI N PH N SỬ DỤNG THUẬT TOÁN TỐI ƯU D A TRÊN HÀNH VI SĂN ỒI CỦA B Y SÓI KHOA HỌC ÁY TÍNH UẬN VĂN THẠC SĨ KHOA HỌC CHUYÊN NGÀNH KHOA HỌC * KHÓA K32 Đà Nẵng - Năm 2018 ÁY TÍNH ĐẠI HỌC ĐÀ NẴNG TRƢỜNG ĐẠI HỌC BÁCH KHOA ---------------------- NGUYỄN THỊ NGỌC NGÂN Ƣ C Ƣ NG NỖ C PHÁT TRIỂN PH N MỀM SỬ DỤNG THUẬT TOÁN TỐI ƢU D A TRÊN HÀNH VI SĂN MỒI CỦA B Y SÓI Chuyên ngành: Khoa học máy tính Mã số: 60.48.01 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 2018 i LỜI CAM ĐOAN Tôi cam đoan đây là công trình nghiên cứu của riêng tôi. Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác. Tác giả Nguyễn Thị Ngọc Ngân ii MỤC ỤC MỞ ĐẦU ......................................................................................................................... 1 CHƢƠNG 1 TỔNG QUAN VỀ Ƣ C LƢ NG NỖ L C PHÁT TRIỂN PHẦN MỀM THEO M H NH SHETA....................................................................................4 1.1. Tổng quan về ƣớc lƣợng nỗ lực phát triển phần mềm..........................................4 1.1.1. Khái niệm ......................................................................................................4 1.1.2. Bốn bƣớc cơ bản trong ƣớc lƣợng dự án phần mềm .....................................5 1.3. Mô hình ƣớc lƣợng nỗ lực phát triển phần mềm ................................................10 1.3.1. Mô hình COCOMO .....................................................................................11 1.3.2. Mô hình Sheta ..............................................................................................12 CHƢƠNG 2 THUẬT TOÁN TỐI ƢU D A TRÊN HÀNH VI SĂN MỒI CỦA BẦY SÓI .................................................................................................................................13 2.1. Giới thiệu ............................................................................................................13 2.1.1. Bài toán tối ƣu tổng quát và phân loại .........................................................13 2.1.2. Trí tuệ bầy đàn .............................................................................................15 2.2. Mô tả hành vi săn mồi của bầy sói .....................................................................15 2.3. Chi tiết thuật toán ...............................................................................................16 2.3.1. Hệ thống phân cấp xã hội ............................................................................16 2.3.2. Bao vây con mồi ..........................................................................................17 2.3.3. Săn bắt con mồi ...........................................................................................18 2.3.4. Tấn công con mồi ........................................................................................19 2.3.5. Tìm kiếm con mồi (thăm dò) .......................................................................20 2.4. Cài đặt thuật toán ................................................................................................21 2.4.1. Biểu diễn bằng mã giả .................................................................................21 2.4.2. Lƣu đồ thuật toán.........................................................................................22 CHƢƠNG 3 ỨNG DỤNG THUẬT TOÁN VÀO Ƣ C LƢ NG NỖ L C PHÁT TRIỂN PHẦN MỀM .....................................................................................................24 3.1. Giới thiệu ............................................................................................................24 3.1.1. iểu diễn c thể của thuật to n GWO và hàm th ch nghi cho bài to n dự đo n .......................................................................................................................25 3.1.2. Đo lƣờng chất lƣợng dự đo n ......................................................................26 3.2. Kết quả và thực nghiệm ......................................................................................27 3.2.1. Tập dữ liệu thực nghiệm ..............................................................................27 3.2.2. Thiết lập thực nghiệm ..................................................................................28 iii 3.2.3. Đ nh gi kết quả ..........................................................................................28 3.3. Đ nh gi hiệu quả ƣớc lƣợng của mô hình Sheta sử dụng thuật toán tối ƣu dựa trên hành vi săn mồi của bầy sói ...............................................................................33 KẾT LUẬN ................................................................................................................... 34 TÀI LIỆU THAM KHẢO ............................................................................................. 35 iv Ƣ C Ƣ NG NỖ C PHÁT TRIỂN PH N MỀM SỬ DỤNG THUẬT TOÁN TỐI ƢU D A TRÊN HÀNH VI SĂN MỒI CỦA B Y SÓI Học viên: Nguyễn Thị Ngọc Ngân. Chuyên ngành: Khoa học máy tính Mã số: 60.48.01. Khóa: 31. Trƣờng Đại học Bách khoa - ĐHĐN Tóm tắt – Ƣớc lƣợng nỗ lực phát triển phần mềm là một vấn đề quan trọng đối với hầu hết mọi ngƣời trong ngành công nghiệp phát triển phần mềm. Sự thành công hay thất bại của dự án phụ thuộc rất lớn vào độ chính xác của kết quả ƣớc lƣợng nỗ lực và tiến độ thực hiện. Để nâng cao tính chính xác của dự đo n, phƣơng ph p ƣớc lƣợng dựa trên các mô hình thuật toán đã đƣợc sử dụng rộng rãi. Tuy nhiên, vấn đề đ nh gi ch nh x c nỗ lực là một vấn đề đầy thách thức đối với các nhà nghiên cứu và việc khó khăn nhất là hiệu chuẩn các tham số. Nghiên cứu này nhằm mục đ ch đề xuất thuật toán tối ƣu dựa trên hành vi săn mồi của bầy sói (GWO – Grey Wolf Optimizer) để tối ƣu hóa c c thông số của công thức đã đƣợc đề xuất trƣớc đó dựa trên nỗ lực thực tế trong quá khứ. Các kết quả chỉ ra rằng phƣơng ph p tiếp cận của tôi đã vƣợt trội hơn c c phƣơng ph p trong c c nghiên cứu khác về tính chính xác của các kết quả ƣớc lƣợng. Từ khóa - Ƣớc lƣợng nỗ lực phát triển phần mềm; tối ƣu ho bầy đàn; thuật to n hành vi săn mồi của bầy sói; thuật toán tối ƣu hóa; mô hình ƣớc lƣợng. OPTIMIZING PARAMETERS OF SOFTWARE EFFORT ESTIMATION USING GREY WOLF OPTIMIZER Abstract – Software effort estimation has been an important issue for almost everyone in software industry. The success or failure of projects depends greatly on the accuracy of effort estimation and schedule results. To enhance the accuracy of predictions, estimation approaches based on algorithmic models have been widely used. However, the question of accurate estimation of effort has been a challenging issue with regards to researchers, and the most difficult is to calibrate the parameters. This study aims to use a Grey Wolf Optimizer (GWO) to optimize the parameters of the previously proposed estimation formula based on past actual effort. The results indicated that our proposal outperformed methods in other studies in terms of the accuracy of estimated results. Key words - Software effort estimation; particle swarm optimization; Grey Wolf Optimizer algorithm; swarm optimization algorithm; estimation models. v DANH MỤC CÁC TỪ VIẾT TẮT Ký hiệu Diễn giải LOC Line Of Code: Ứớc lƣợng kích cỡ của phần mềm đƣợc phát triển theo số dòng lệnh EP Function Point: Ƣớc lƣợng kích cỡ của phần mềm đƣợc phát triển theo chức năng, độ phức tạp COCOMO Constructive Cost Model: Mô hình giá cấu thành ME Methodology: Phƣơng ph p luận để nâng cao chất lƣợng của mô hình COCOMO GWO Grey Wolf Optimizer: thuật to n hành vi săn mồi của bầy sói MMRE Độ đo Mean Magnitude of Relative Error MdMRE Độ đo Median Magnitude of Relative Error PRED (N) Độ đo Prediction at level N vi DANH MỤC CÁC BẢNG BIỂU Số hiệu Tên bảng Trang bảng 3.1 Dữ liệu dự n phần mềm của NASA 27 3.2 Phạm vi các tham số của mô hình đề xuất 28 3.3 Gi trị nỗ lực ƣớc lƣợng và gi trị MRE của mô hình Sheta 1 và mô hình GWO 1 29 3.4 Gi trị nỗ lực ƣớc lƣợng và gi trị MRE của mô hình Sheta 2 và mô hình GWO 2 31 3.5 Kết quả của các mô hình dựa trên các tiêu chí 33 vii DANH MỤC CÁC HÌNH VẼ Số hiệu hình vẽ Tên hình vẽ Trang 1.1 Đồ thị hội tụ ƣớc lƣợng 5 1.2 Tiến trình cơ sở ƣớc lƣợng dự án 9 2.1 Hệ thống phân cấp của sói xám 15 2.2 Hành vi săn bắt của sói 17 2.3 Các vị tr vectơ trong 2D, 3D và vị trí tiếp theo có thể có của sói 18 2.4 Vị tr đƣợc cập nhật trong GWO 19 2.5 Tấn công con mồi và tìm kiếm con mồi 20 2.6 Lƣu đồ thuật toán 22 3.1 Sự hội tụ của GWO khi sử dụng hàm kiểm tra ngẫu nhiên (F1) và (F10) 25 3.2 So sánh nỗ lực thực tế với nỗ lực ƣớc lƣợng mô hình Sheta 1 và mô hình GWO 1 30 3.3 So sánh MRE của mô hình Sheta 1 và mô hình GWO 1 30 3.4 So sánh nỗ lực thực tế với nỗ lực ƣớc lƣợng mô hình Sheta 2 và mô hình GWO 2 32 3.5 So sánh MRE của mô hình Sheta 2 và mô hình GWO 2 32 1 MỞ Đ U 1. Lý do chọn đề tài Ƣớc lƣợng nỗ lực phát triển phần mềm hiệu quả là một trong những hoạt động quan trọng của ƣớc lƣợng dự án phần mềm, đồng thời cũng là th ch thức trong công nghệ phần mềm. Ƣớc lƣợng nỗ lực có thể đƣợc sử dụng nhƣ là dữ liệu đầu vào cho các kế hoạch dự án, phân t ch đầu tƣ, nguồn ngân sách, quy trình định giá dự án nên nó trở nên rất quan trọng để có đƣợc ƣớc lƣợng chính xác. Nhiều tổ chức phải chịu các tác động tài chính lên công việc của họ, bị mất lợi thế cạnh tranh, và chậm trễ trong việc hƣởng lợi từ kế hoạch và các sáng kiến do c c ƣớc lƣợng xấu. Ở giai đoạn phát triển ban đầu, những hạn chế trong c c mô hình ƣớc lƣợng nỗ lực của các dự án phát triển phần mềm là độ ch nh x c và độ chắc chắn chƣa cao. Một số kỹ thuật ƣớc lƣợng sử dụng dữ liệu thu thập từ các dự n đã hoàn thành từ nhiều tổ chức khác nhau cùng với công thức toán học để ƣớc lƣợng chi phí dự án đƣợc giới thiệu nhƣ COCOMO của Barry Boehm, SLIM của Putnam, mô hình điểm chức năng của Albrecht… Trong những năm gần đây, c c mô hình thuật toán và xử lý những khó khăn trong việc điều chỉnh các tham số nhằm cải tiến độ chính xác của ƣớc lƣợng nỗ lực phát triển phần mềm đƣợc phát triển rộng rãi. Các mô hình Sheta hay Uysal sử dụng thuật toán tối ƣu của bầy đàn đã đ p ứng đƣợc tiến độ của c c phƣơng ph p công nghệ phần mềm mới. Áp dụng một phƣơng ph p ƣớc lƣợng trong qu trình ph t triển phần mềm là một nhiệm vụ khó khăn mà chúng ta cần phải lƣờng trƣớc k ch thƣớc và độ phức tạp của các sản phẩm sẽ đƣợc xây dựng để x c định những việc cần làm tiếp theo. Phát triển phần mềm theo mô hình Sheta sử dụng thuật to n đã trở nên phổ biến trong ngành công nghiệp và thay thế c c phƣơng ph p tiếp cận thông thƣờng của phát triển phần mềm. Trí thông minh của bầy đàn là quy luật đƣợc tích góp từ c c hành vi tƣơng t c độc lập của c c c nhân và môi trƣờng sống của chúng. Gần đây, c c nhà ph t triển phần mềm đã nghiên cứu về trí tuệ của bầy đàn để tối ƣu hóa c c bài toán về ƣớc lƣợng nỗ lực phát triển phần mềm. Đa số c c phƣơng ph p đƣợc lấy cảm hứng từ hiện tƣợng sinh học hoặc các hành vi xã hội và chủ yếu là động vật, côn trùng. Trong đó, hành vi săn mồi của bầy sói cho thấy đƣợc kỹ năng và chiến lƣợc tuyệt vời của chúng. Ngoài sự phát triển của các thuật toán tối ƣu về bầy đàn nhƣ: đàn c , đàn ong nhân tạo, thuật to n đom đóm… thuật toán về bầy sói cũng đƣợc đề xuất để nâng cao hiệu quả cho ƣớc lƣợng nỗ lực của phát triển phần mềm. Chính vì vậy, tôi quyết định chọn đề tài: 2 “ Ước lượng nỗ lực phát triển phần mềm sử dụng thuật toán tối ưu dựa trên hành vi săn mồi của bầy sói”. 2. Mục đích nghiên cứu - Nghiên cứu thuật to n tối ƣu hành vi săn mồi của bầy sói. - Nghiên cứu lý thuyết về ƣớc lƣợng nỗ lực ph t triển phần mềm theo mô hình Sheta. - Áp dụng vào ƣớc lƣợng nỗ lực phần mềm theo mô hình Sheta nhằm tối ƣu c c gi trị trong ƣớc lƣợng phần mềm. 3. Đối tƣợng và phạm vi nghiên cứu 3.1. Đối tượng nghiên cứu - Nghiên cứu thuật toán tối ƣu bầy đàn. - Cơ sở lý thuyết về ƣớc lƣợng nỗ lực phát triển phần mềm. 3.2. Phạm vi nghiên cứu - Nghiên cứu thuật toán tối ƣu hành vi săn mồi của bầy sói. - Nghiên cứu ƣớc lƣợng nỗ lực phát triển phần mềm theo mô hình Sheta. 4. Phƣơng pháp nghiên cứu 4.1. Phương pháp nghiên cứu lý thuyết Tìm hiểu, tra cứu, phân tích và tổng hợp từ sách, các bài báo, tạp chí khoa học, các trang web, các bài luận văn thạc sĩ trong nƣớc và nƣớc ngoài. 4.2. Phương pháp thực nghiệm, mô phỏng - Đề xuất áp dụng thuật toán tối ƣu dựa trên hành vi săn mồi của bầy sói. - Cài đặt thực nghiệm và đ nh gi kết quả. 5. Dự kiến kết quả đạt đƣợc 5.1. Về mặt lý luận - Hiểu đƣợc đặc điểm, tính chất của thuật toán tối ƣu bầy đàn. - Hiểu đƣợc mô hình Sheta trong ƣớc lƣợng nỗ lực phát triển phần mềm. - Áp dụng thuật toán tối ƣu dựa trên hành vi săn mồi vào bài to n ƣớc lƣợng nỗ lực sử dụng tập dữ liệu trên NASA để đƣợc các tham số cần ƣớc lƣợng. 5.2. Về mặt 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 mô hình Sheta sử dụng thuật toán tối ƣu dựa trên hành vi săn mồi của bầy sói. - Đ nh gi hiệu quả của giải ph p đề xuất so với các thuật toán tối ƣu kh c. 3 6. Nội dung nghiên cứu và dự kiến cấu trúc luận văn 6.1. Nội dung nghiên cứu - Thu thập và tổng hợp các tài liệu liên quan đến thuật toán tối ƣu về hành vi săn mồi của bầy sói. - Thu thập, tổng hợp và 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 Sheta. - Áp dụng thuật to n tối ƣu dựa trên hành vi săn mồi của bầy sói để ƣớc lƣợng nỗ lực ph t triển phần mềm theo mô hình Sheta. - Thử nghiệm, phân tích các kết quả; từ đó đ nh gi hiệu quả của giải ph p đề xuất. 6.2. Bố cục luận văn Mở đầu - Tính cấp thiết của đề tài. - Mục tiêu của luận văn. - Ý nghĩa thực tiễn. Chƣơng 1: Tổng quan về ƣ c ƣợng nỗ ực phát triển ph n mềm theo m h nh Sheta - Tổng quan về ƣớc lƣợng nỗ lực phát triển phần mềm. C c phƣơng ph p ƣớc lƣợng nỗ lực. Ƣớc lƣợng nỗ lực cho dự án phát triển phần mềm theo mô hình Sheta. Mô hình ƣớc lƣợng nỗ lực phát triển phần mềm. Tiểu kết chƣơng 1 Chƣơng 2: Thuật toán tối ƣu dựa trên hành vi săn mồi của b y sói - Giới thiệu. Mô tả hành vi săn mồi của bầy sói. Chi tiết thuật toán. Cài đặt thuật toán. Tiếu kết chƣơng 2 Chƣơng 3: Ứng dụng thuật toán vào dự đoán nỗ lực phát triển ph n mềm - Giới thiệu. - Thu thập dữ liệu, phân tích mô hình. - Đ nh gi hiệu quả ƣớc lƣợng của mô hình Sheta sử dụng thuật toán tối ƣu dựa trên hành vi săn mồi của bầy sói. Tiểu kết chƣơng 3 Kết luận và hƣ ng phát triển 4 CHƢƠNG 1 - TỔNG QUAN VỀ Ƣ C Ƣ NG NỖ C PHÁT TRIỂN PH N MỀM THEO M H NH SHETA Khi nói đến vấn đề ph t triển phần mềm thì không thể không đề cập đến qu trình quản lý phần mềm, đƣợc bắt đầu và tiếp diễn bằng một chuỗi c c hoạt động ƣớc lƣợng phần mềm. Trong thực tế, để lấy đƣợc dự n phần mềm, c c công ty tham gia đấu thầu phải nộp hồ sơ dự thầu bao gồm cả chi ph , nhân lực và thời gian ph t triển phần mềm. C c công ty tham gia dự thầu rất cần phải đƣa ra một ƣớc lƣợng hợp lý phản nh đúng gi trị thật của đề n. 1.1. Tổng quan về ƣ c ƣợng nỗ lực phát triển ph n mềm 1.1.1. Khái niệm Ƣớc lƣợng là công việc t nh to n gần đúng một đại lƣợng nào đó dựa trên tập dữ liệu liên quan đến đại lƣợng đó. Tập dữ liệu này thƣờng đƣợc thu thập trong điều kiện thiếu, nhiễu hoặc chỉ có gi trị gần đúng. Khi tập dữ liệu ở trong điều kiện hoàn hảo hay đầy đủ thông tin thì ƣớc lƣợng trở thành t nh to n ch nh x c. Hình 1.1 (đƣợc tr ch từ tài liệu tham khảo [4]) thể hiện độ hội tụ của ƣớc lƣợng trong vòng đời ph t triển của c c dự n thực tế, ƣớc lƣợng chỉ đƣợc ch nh x c hóa dần trong qu trình làm mịn dần dự n. Từ hình 1.1 có thế nhận thấy rằng để đƣa ra đƣợc c c ƣớc lƣợng đ ng tin cậy và sớm trong vòng đời ph t triển của dự n là rất khó do đó chúng ta cần tập trung nhiều nỗ lực để giải quyết vấn đề này. Ƣớc lƣợng thiếu nỗ lực cho một dự n dẫn đến việc bố tr thiếu nhân sự cho dự n (điều mà thƣờng dẫn đến việc vƣợt qu khả năng làm việc), quản lý thiếu c c nỗ lực đảm bảo chất lƣợng (bỏ sót c c nguy cơ rủi ro của sản phẩm kém chất lƣợng) và tạo ra một lịch trình làm việc qu ngắn (dẫn đến sự mất uy t n do thời hạn thỏa thuận với kh ch hàng không đƣợc tôn trọng). Còn thêm nhiều yếu tố thừa vào ƣớc lƣợng thì ƣớc lƣợng thừa một dự n có thể chỉ làm tồi tệ thêm cho tổ chức. Nếu nhƣ đƣa cho một dự n với nhiều tài nguyên hơn mức nó thực sự cần mà không có những sự quản lý thì tài nguyên đó sẽ bị dùng hết. Dự n khi đó có khả năng phải chi ph nhiều hơn mức cần thiết (một t c động tiêu cực đến tài ch nh và có thể làm giảm lợi thế cạnh tranh), mất nhiều thời gian hơn để hoàn thành (dẫn đến đ nh mất c c cơ hội) và trì hoãn việc sử dụng tài nguyên ở c c dự n tiếp theo. 5 Hình 1.1 Đồ thị hội tụ ƣớc lƣợng. Nguồn tài liệu tham khảo[4] Ƣớc lƣợng dự n hiện là một vấn đề khó khăn trong thực tế sản xuất phần mềm. Không ƣớc lƣợng đƣợc thì dự n rất dễ vỡ kế hoạch về thời gian và tài ch nh. Mức ƣớc lƣợng có thể có nhiều sai sót trong c c giai đoạn kh c nhau do đó thực tế không dự n nào có thể ƣớc lƣợng ch nh x c. Ƣớc lƣợng chỉ có thể ch nh x c nếu phân rã đƣợc vấn đề lớn thành c c vấn đề nhỏ hơn, đó là kỹ thuật chia để trị. 1.1.2. Bốn bước cơ bản trong ước lượng dự án phần mềm Bốn bƣớc ch nh trong ƣớc lƣợng dự án phần mềm là: 1) Ƣớc lƣợng phạm vi của sản phẩm cần ph t triển. Thông thƣờng, điều này luôn yêu cầu một ƣớc lƣợng k ch cỡ của phần mềm đƣợc ph t triển theo số dòng lệnh (LOC – line of code) hoặc điểm chức năng (FP – Function Point). Trong khi k ch cỡ theo LOC là đơn vị k ch cỡ cơ sở đƣợc dùng bởi nhiều mô hình t nh to n ƣớc lƣợng hàng đầu, nhiều đội ph t triển lại không th ch những phép đo này và dùng những đơn vị t ch nh quy hơn (số đặc t nh, số yêu cầu thay đổi, số ca sử dụng/số kịch bản, số tƣờng thuật ngƣời dùng, số ph t biểu yêu cầu, …). 6 2) Ƣớc lƣợng nỗ lực theo đơn vị [ngƣời – th ng] hoặc [ngƣời – giờ] dùng một mô hình t nh to n liên hệ nỗ lực với k ch cỡ của phần mềm và năng suất của nhóm ph t triển. 3) Ƣớc lƣợng lịch trình theo lịch thời gian (th ng/tuần). Điều này có thể đƣợc t nh to n từ nỗ lực đƣợc ƣớc lƣợng và là một hàm số của k ch cỡ nhóm ph t triển. Điều quan trọng là phải nhận thức rõ rằng đây không phải là một quan hệ tuyến t nh và ở một số điểm trong lịch trình dự n không thể rút ngắn lịch trình bằng c ch thêm tài nguyên cho việc ph t triển. 4) Ƣớc lƣợng chi ph dự n theo đơn vị tiền tệ. Điều này là một kết hợp của gi nhân công (có thể đƣợc t nh to n từ ƣớc lƣợng nỗ lực) và gi phi nhân công (v dụ, gi khấu hao của c c phần cứng và phần mềm cần thiết đƣợc cung cấp cho dự n). 1.1.2.1. Ước lượng kích cỡ, phạm vi Một ƣớc lƣợng ch nh x c k ch cỡ của phần mềm đƣợc xây dựng là bƣớc đầu tiên cho một ƣớc lƣợng có hiệu quả. C c tài nguyên thông tin về phạm vi của dự n nên đƣợc thu thập bất cứ nơi nào có thể, bắt đầu với những mô tả ch nh x c của c c yêu cầu. V dụ, một đặc tả c c yêu cầu của kh ch hàng hoặc một đặc tả về hệ thống. Không nên để cho sự thiếu sót về đặc tả phạm vi làm cản trở việc thực hiện ƣớc lƣợng. Tài liệu ƣớc lƣợng cũng không nên chốt cứng. Trong mọi trƣờng hợp, chúng ta phải xem xét c c mức độ rủi ro và không chắc chắn trong một ƣớc lƣợng cho mọi kh a cạnh và phải thực hiện lại ƣớc lƣợng cho dự n ngay khi có thêm thông tin phạm vi đƣợc x c định. Nếu chúng ta thực hiện ƣớc lƣợng lại một dự n ở những pha sau của vòng đời dự n, c c tài liệu thiết kế có thể đƣợc sử dụng để cung cấp thêm thông tin chi tiết. Hai c ch để có thể ƣớc lƣợng k ch cỡ sản phẩm là: 1) Cách thứ nhất: ằng phép tƣơng tự. Nếu chúng ta đã hoàn thành một dự n tƣơng tự trong qu khứ và biết thông tin k ch cỡ sản phẩm đã đƣợc ph t triển, chúng ta có thể ƣớc lƣợng mỗi phần ch nh của dự n mới nhƣ là một phép t nh phần trăm về k ch cỡ phần tƣơng tự với dự n trƣớc. Ƣớc lƣợng k ch cỡ tổng thể dự n mới bằng c ch cộng lại c c k ch cỡ đƣợc ƣớc lƣợng của mỗi phần hoặc chia sản phẩm thành những phần cấu thành (c c đặc t nh, c c ca sử dụng/kịch bản, c c yêu cầu ngƣời dùng) và đếm chúng. Một số ngƣời dùng những phép đếm thô nhƣ là một ƣớc lƣợng trực tiếp của k ch cỡ phần mềm hoặc chúng ta có thể chuyển chúng thành một đơn vị đo k ch cỡ ch nh thức mà ta biết, theo một phép t nh trung bình, bao nhiêu LOC hoặc FP mà mỗi phần này yêu cầu trong những dự n trƣớc. Một ngƣời có kinh nghiệm có thể đƣa ra những ƣớc lƣợng k ch cỡ tốt, hợp lý bằng phép tƣơng tự nếu sẵn có c c gi trị k ch cỡ chuẩn x c cho dự n trƣớc và dự n mới là 7 gần giống với dự n trƣớc. 2) C ch thứ hai: ằng phép phân t ch. ằng c ch đếm c c đặc t nh của sản phẩm và dùng một phƣơng ph p nhƣ là điểm chức năng (FP) chúng ta có thể chuyển phép đếm thành một ƣớc lƣợng của k ch cỡ. C c đặc t nh sản phẩm ở cấp độ vĩ mô có thể chứa c c hệ thống con, c c lớp/mô đun, c c phƣơng thức/hàm. C c đặc t nh sản phẩm ở mức chi tiết hơn có thể gồm có số lƣợng c c màn hình, c c hộp thoại, c c tập tin, c c bảng cơ sở dữ liệu, các báo cáo và c c thông điệp,… 1.1.2.2. Ước lượng nỗ lực Một khi chúng ta có một ƣớc lƣợng k ch cỡ của sản phẩm, chúng ta có thể t nh to n ƣớc lƣợng nỗ lực từ nó. Việc chuyển đổi từ k ch cỡ phần mềm sang tổng nỗ lực dự n chỉ có thể làm đƣợc nếu chúng ta có một vòng đời ph t triển phần mềm x c định và tiến trình ph t triển mà ta sử dụng ổn định trên dự n để phân t ch, thiết kế, ph t triển và kiểm thử phần mềm. Một dự n ph t triển phần mềm đòi hỏi nhiều yêu cầu hơn công việc viết mã nguồn đơn thuần. Trên thực tế, việc mã hóa chỉ chiếm chƣa đến ¼ tổng thể nỗ lực dự n. Việc viết và thẩm định tài liệu, thi hành c c bản mẫu, thiết kế c c phiên bản có thể phân phối và thẩm định, kiểm thử mã chiếm phần lớn thời gian của nỗ lực dự n tổng thể. Ƣớc lƣợng nỗ lực dự n yêu cầu ta x c định và ƣớc lƣợng về thời gian, về nhân lực,… Sau đó tổng hợp lại tất cả c c hoạt động ta phải thực hiện để xây dựng sản phẩm từ k ch cỡ đƣợc ƣớc lƣợng. 1.1.2.3. Ước lượng lịch trình ƣớc thứ ba trong ƣớc lƣợng một dự n ph t triển phần mềm là ƣớc lƣợng lịch trình dự n. Điều này thƣờng đòi hỏi ƣớc lƣợng số lƣợng ngƣời sẽ làm việc trên dự n, c i gì họ sẽ làm (cấu trúc phân cấp chia nhỏ công việc), khi nào họ sẽ bắt đầu làm việc trên dự n và khi nào họ sẽ kết thúc. Một khi chúng ta có những thông tin này, chúng ta cần t nh to n để đƣa nó vào một lịch trình theo lịch thời gian. Ngoài ra, dữ liệu lịch sử từ c c dự n trong qu khứ của tổ chức hoặc c c mô hình dữ liệu công nghiệp có thể đƣợc sử dụng để dự đo n số lƣợng ngƣời mà chúng ta cần cho một dự n với k ch cỡ cho trƣớc và làm thế nào công việc có thể chia nhỏ vào lịch trình. Nếu chúng ta không có gì, một quy tắc ƣớc lƣợng lịch trình có thể đƣợc dùng để lấy c c ý tƣởng thô của lịch thời gian tổng cổng cần thiết: Lịch trình theo tháng = 3.0 * (nỗ lực [người – tháng])*1/3 V dụ, nếu chúng ta đã ƣớc lƣợng một dự n cần nỗ lực là 65 [ngƣời – tháng], biểu thức trên cho thấy rằng cần lịch trình 12 th ng, từ đó suy ra nhóm dự n có 5 hoặc 6 thành viên (65/12). 8 Trong [4], t c giả có nêu vấn đề nhiều đề xuất dùng 2.0, 2.5 hay ngay cả 4.0 để thay thế cho gi trị 3.0 – chỉ bằng thực nghiệm thì chúng ta mới có thể chọn đƣợc gi trị phù hợp. Ƣớc lƣợng lịch trình dự n là một chủ đề rắc rối bởi vì hầu hết c c dự n thƣờng bị chậm trễ và sự chậm trễ do nhiều nguyên nhân. C c yêu cầu đƣợc ph t hiện dần dần không đƣợc quản lý chủ động. Việc điều khiển chất lƣợng sản phẩm từ sớm thƣờng không đƣợc chú trọng, dẫn đến dự n sẽ bị chậm trễ khi pha kiểm thử bắt đầu. Ở những tổ chức chƣa có quy trình làm việc chuẩn thì những dự thảo lịch trình thƣờng bị bỏ qua ngay cả với những ngƣời điều hành cấp cao. Xem xét công việc quản trị dự n và công việc ƣớc lƣợng lịch trình, chúng ta thấy rằng công việc ƣớc lƣợng lịch trình sẽ quan tâm đến việc lên lịch trình ở mức độ cao của toàn dự n, còn những t nh to n chi tiết hơn đòi hỏi c c yếu tố phụ thuộc, đội ngũ nhân viên sẵn có, mức độ tài nguyên, phân công cho từng ngƣời sẽ đƣợc thực hiện bởi công việc quản trị dự n. Nếu ƣớc lƣợng theo biểu thức t nh lịch trình ở trên, ta ƣớc lƣợng thời gian lịch trình trƣớc sau đó mới chỉ định số nhân viên. Nhƣng nếu đƣợc chỉ định một đội/nhóm ph t triển trƣớc, một biểu thức cơ bản cho việc ƣớc lƣợng lịch trình của bất kỳ hoạt động quản lý là: Nỗ lực / Số nhân viên = Lượng thời gian Dùng biểu thức tổng qu t này, một hoạt động mà yêu cầu 8 [ngƣời – th ng] của nỗ lực và có 4 ngƣời đƣợc chỉ định tham gia có thể đƣợc hoàn thành trong thời gian 2 tháng. 8 [người – tháng] / 4 [người] = 2 [tháng] Thực tế thì việc ƣớc lƣợng lịch trình sẽ khó hơn rất nhiều. Nó liên quan đến nhiều yếu tố nhƣ:  C c phụ thuộc của một hoạt động với c c hoạt động trƣớc  C c hoạt động đan xen hay đồng thời  Đƣờng găng xuyên suốt chuỗi công việc  Số ca làm việc mỗi ngày, số giờ làm việc hiệu quả trong mỗi ca  Những gi n đoạn nhƣ là du lịch, hội nghị, đào tạo hay nghỉ ốm, …  Số lƣợng vùng thời gian cho c c dự n đối với c c công ty đa quốc gia Nhƣ vậy công việc quản trị dự n, công việc ƣớc lƣợng lịch trình có nhiều mối liên hệ và đƣợc thực hiện theo sự tinh tế của từng ngƣời quản lý. 9 1.1.2.4. Ước lượng chi phí Có nhiều yếu tố cần quan tâm khi ƣớc lƣợng chi ph tổng cộng của một dự n. Những yếu tố đó bao gồm gi nhân công, gi mua hay gi thuê phần cứng, phần mềm, chi ph đi lại cho mục đ ch gặp gỡ hay kiểm thử, c c giao tiếp (v dụ, c c cuộc gọi điện thoại đƣờng dài, hội thảo video từ xa, …), c c khóa đào tạo, không gian văn phòng, … Gi nhân công thì có thể đƣợc x c định một c ch đơn giản nhất bằng phép nhân giữa nỗ lực ƣớc lƣợng của dự n (t nh theo giờ) với lƣơng nhân công t nh trung bình tổng qu t. Một chi ph nhân công chuẩn x c hơn lấy kết quả từ việc sử dụng lƣơng nhân công rõ ràng cho mỗi vị tr (v dụ: vị tr kĩ thuật, quản lý chất lƣợng, quản lý dự n, ngƣời lập tài liệu, cộng t c viên, …). Chúng ra sẽ phải x c định xem bao nhiêu phần trăm của nỗ lực dự n tổng cộng cần đƣợc cấp ph t cho mỗi vị tr . Khi đó dữ liệu lịch sử hoặc c c mô hình dữ liệu công nghiệp lại có thể trợ giúp. Qua việc nghiên cứu 4 bƣớc trong phép ƣớc lƣợng nhƣ trên, đề xuất một tiến trình cơ sở cho việc ƣớc lƣợng nhƣ đƣợc mô tả trong sơ đồ ở hình 1.2. Hình 1.2. Tiến trình cơ sở ƣớc lƣợng dự án 10 - Ƣớc lƣợng dựa vào mô hình to n học: còn đƣợc gọi là c c mô hình tham số nhằm cố gắng thể hiện mối quan hệ giữa nỗ lực và đặc điểm của dự n. Chƣơng trình điều khiển chi ph ch nh của c c mô hình này là k ch thƣớc phần mềm, thƣờng đƣợc đo bằng c c dòng lệnh (Kilo Line of Code - KLOC) hoặc điểm chức năng. Đây vẫn là kỹ thuật phổ biến nhất trong lƣợc khảo tài liệu [5]. C c mô hình này bao gồm COCOMO I [6], COCOMO II [7], mô hình SLIM [8], và điểm chức năng [9]. Tuy nhiên, không có phƣơng ph p nào đƣợc đề cập ở trên là hoàn chỉnh và có thể phù hợp trong mọi tình huống. Nghiên cứu này tập trung vào c c mô hình thuật to n và giải quyết những khó khăn của chúng trong việc định chuẩn và điều chỉnh c c thông số để nâng cao t nh ch nh x c của ƣớc lƣợng nỗ lực phần mềm. 1.3. M h nh ƣ c ƣợng nỗ lực phát triển ph n mềm Phƣơng ph p ƣớc lƣợng dựa trên mô hình to n học là phổ biến. C c nhà nghiên cứu đã cố gắng tìm ra c c mô hình và công thức to n học để trình bày mối quan hệ giữa k ch thƣớc, chƣơng trình điều khiển chi ph , phƣơng ph p luận đƣợc sử dụng trong dự n và nỗ lực. Kết quả là một mô hình thuật to n có thể đƣợc biểu diễn nhƣ sau: Effort = f(x1, x2,…, xn) (1.1) Trong đó{x1, x2,…, xn} biểu thị c c yếu tố chi ph . Ngoài k ch thƣớc phần mềm, có rất nhiều yếu tố chi ph kh c đƣợc đề xuất và đƣợc sử dụng bởi oehm và cộng sự trong Mô hình Chi ph Xây dựng COCOMO II (Constructive Cost Model) [7]. Những yếu tố chi ph này có thể đƣợc chia thành bốn loại: - C c yếu tố sản phẩm: yêu cầu độ tin cậy phần mềm, k ch thƣớc cơ sở dữ liệu, độ phức tạp của sản phẩm. - C c yếu tố m y t nh: ràng buộc thời gian thực thi, bộ nhớ lƣu trữ, độ không ổn định của m y ảo và c c ràng buộc vòng quay m y t nh. - C c yếu tố nhân sự: khả năng phân t ch, kinh nghiệm ứng dụng, khả năng lập trình, kinh nghiệm về m y ảo và kinh nghiệm về ngôn ngữ. - C c yếu tố dự n: ph t triển đa trang web, công cụ phần mềm đƣợc sử dụng và tiến độ ph t triển cần thiết. C c mô hình thuật to n hiện nay kh c nhau giữa c c yếu tố chi ph đƣợc lựa chọn và hàm f đƣợc sử dụng. Công thức đơn giản nhất của mối quan hệ giữa nỗ lực và c c yếu tố đầu vào là một hàm tuyến t nh, có nghĩa là nếu k ch thƣớc tăng lên thì nỗ lực cũng tăng với tốc độ ổn định. C c mô hình tuyến t nh có dạng: 11 ∑ (1.2) Trong đó, c c hệ số a0, a1, ..., an đƣợc chọn để phù hợp nhất với dữ liệu toàn bộ dự án. Tuy nhiên, mô hình tuyến t nh không phù hợp với ƣớc lƣợng c c dự n có gi trị trong c c môi trƣờng lớn. Do đó, c c mô hình phức tạp hơn đã đƣợc ph t triển. Những điều này phản nh thực tế là chi ph thƣờng không tăng tuyến t nh với quy mô dự n. Một c ch tổng qu t nhất, ƣớc lƣợng thuật to n cho chi ph phần mềm có thể đƣợc biểu diễn nhƣ sau: Effort = A * SizeB * M (1.3) Trong đó: + A là một yếu tố không đổi phụ thuộc vào cơ chế hoạt động nội bộ và loại phần mềm đƣợc ph t triển. + Size là k ch thƣớc của phần mềm. + Gi trị của số mũ thƣờng từ 1 đến 1,5. + M là một cấp số nhân đƣợc xây dựng bằng c ch kết hợp c c quy trình, sản phẩm và c c thuộc t nh ph t triển. 1.3.1. Mô hình COCOMO COCOMO đƣợc oehm giới thiệu là một trong những mô hình ƣớc t nh nỗ lực ph t triển phần mềm rất nổi tiếng đƣợc sử dụng theo công thức chung đƣợc trình bày trong phƣơng trình 1.3. Mô hình COCOMO là một mô hình thực nghiệm thu đƣợc bằng c ch thu thập, phân t ch dữ liệu từ 63 dự n phần mềm. Những dữ liệu này đƣợc phân t ch để xây dựng một công thức phù hợp nhất với c c thông tin đã đƣợc ghi nhận. Công thức của COCOMO cơ bản đƣợc biểu diễn trong phƣơng trình 1.4: E = A * (KLOC)B (1.4) Trong đó: + E là nỗ lực ph t triển phần mềm t nh theo đơn vị ngƣời - tháng. + KLOC là số dòng lệnh (đơn vị = 1000) ƣớc t nh của sản phẩm dự n phần mềm. + C c gi trị của c c tham số A và mềm. phụ thuộc chủ yếu vào loại dự n phần Dựa trên sự phức tạp của dự n có thể phân ra làm ba lớp: - Lớp đơn (Organic): dành cho một đội nhỏ c c nhà ph t triển có kinh nghiệm và môi trƣờng quen thuộc. Đối với c c ứng dụng đơn giản này: A = 2.4, B = 1.05.
- Xem thêm -

Tài liệu liên quan