Đă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 Tối ưu tham số trong mô hình cocomo để ước lượng phát triển phần mềm...

Tài liệu Tối ưu tham số trong mô hình cocomo để ước lượng phát triển phần mềm

.PDF
71
27
55

Mô tả:

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA --------------------------------------- ĐẶNG QUANG VĂN TỐI ƯU THAM SỐ TRONG MÔ HÌNH COCOMO ĐỂ ƯỚC LƯỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀM Chuyên ngành : KHOA HỌC MÁY TÍNH Mã số: 60.48.01.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 2017 i LỜI CẢM ƠN Trước hết em xin gửi lời cảm ơn chân thành đến toàn thể các thầy cô giáo trong Khoa Công nghệ Thông tin – Trường Đại học Bách khoa – Đại học Đà Nẵng đã tận tình dạy dỗ chúng em trong suốt quá trình học tập và nghiên cứu tại trường. Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc đến Cô giáo TS. Lê Thị Mỹ Hạnh Khoa Công nghệ Thông tin – Trường Đại học Bách khoa – Đại học Đà Nẵng đã quan tâm hướng dẫn và đưa ra những gợi ý, góp ý, chỉnh sửa vô cùng quý báu cho em trong quá trình làm luận văn tốt nghiệp. Cuối cùng xin chân thành cảm ơn những người bạn, đồng nghiệp, gia đình đã tạo điều kiện giúp đỡ, chia sẽ với em trong suốt quá trình làm luận văn. Đà Nẵng, ngày 11 tháng 11 năm 2017 HỌC VIÊN Đặng Quang Văn GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn ii LỜI CAM ĐOAN Tôi cam đoan rằng, luận văn thạc sĩ : Tối ưu các tham số trong mô hình CoCoMo để ước lượng nỗ lực phát triển phần mềm” 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. Đà Nẵng, Ngày 11 tháng 11 năm 2017 TÁC GIẢ LUẬN VĂN Đặng Quang Văn GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn iii MỤC LỤC LỜI CAM ĐOAN......................................................................................................ii CÁC LOẠI DANH MỤC ........................................................................................vii 1. Danh mục các ký hiệu, các chữ viết tắt...........................................................vii 2. Danh mục các bảng...........................................................................................ix 3. Danh mục các hình vẽ........................................................................................x MỞ ĐẦU.....................................................................................................................1 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI.....................................................................1 2. MỤC ĐÍCH NGHIÊN CỨU..............................................................................2 3. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU...................................................2 4. PHƯƠNG PHÁP NGHIÊN CỨU .....................................................................2 5. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN CỦA ĐỀ TÀI................................2 6. CẤU TRÚC LUẬN VĂN...................................................................................2 CHƯƠNG 1.................................................................................................................4 TỔNG QUAN VỀ ƯỚC LƯỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀMTRONG MÔ HÌNH COCOMO II .....................................................................................................4 I. ƯỚC LƯỢNG NỖ LỰC VÀ CÁC MÔ HÌNH ƯỚC LƯỢNG NỖ LỰC TRONG PHÁT TRIỂN PHẦN MỀM ......................................................................4 1. Ước lượng nỗ lực................................................................................................4 1.1 Tiếp cận ước lượng từ dưới lên (Bottom-up estimation approach)...............5 1.2 Tiếp cận ước lượng từ trên xuống (The top-down estimation approach) .....7 2. Các mô hình ước lượng nỗ lực phát triển phần mềm ......................................8 II. TIẾP CẬN MÔ HÌNH ƯỚC LƯỢNG NỖ LỰC PHÁT TRIỂN PHẦN MÊM COCOMO II ..............................................................................................................9 III. CẤU TRÚC MÔ HÌNH COCOMO II............................................................11 1. Các yếu tố quy mô của dự án ..........................................................................13 1.1 Tính tiên phong (PREC) và Tính linh hoạt trong phát triển (FLEX).........14 1.2 Kiến trúc giải quyết rủi ro (RESL) ..............................................................15 1.3 Sự gắn kết đội (TEAM) ...............................................................................17 1.4 Quy trình trưởng thành (PMAT).................................................................18 2. Các nhân tố nỗ lực của trình điều khiển chi phí ............................................18 2.1 Yếu tố sản phẩm phần mềm ........................................................................18 2.1.1 Độ tin cậy phần mềm...........................................................................18 GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn iv 2.1.2 Kích thước dữ liệu (DATA) .................................................................19 2.1.3 Tính phức tạp của sản phẩm (CPLX) .................................................19 2.1.4 Yêu cầu khả năng sử dụng lại (RUSE) ...............................................22 2.1.5 Tài liệu phù hợp với nhu cầu của vòng đời (DOCU) ..........................22 2.2 Yếu tố nền tảng............................................................................................22 2.2.1 Hạn chế thời gian thực hiện (TIME) ..................................................22 2.2.2 Hạn chế lưu trữ chính (STOR) ...........................................................23 2.2.3 Nền tảng biến động (PVOL)................................................................23 2.3 Yếu tố Nhân sự............................................................................................24 2.3.1 Khả năng phân tích (ACAP) ...............................................................24 2.3.2 Khả năng lập trình (PCAP).................................................................24 2.3.3 Kinh nghiệm ứng dụng (AEXP)..........................................................25 2.3.4 Kinh nghiệm về ngôn ngữ và công cụ (LTEX) ...................................25 2.3.5 Nhân sự liên tục (PCON) ...................................................................25 2.4 Yếu tố dự án ................................................................................................26 2.4.1 Sử dụng công cụ phần mềm (TOOL)..................................................26 2.4.2 Phát triển đa chiều (SITE) ..................................................................26 2.4.3 Lịch phát triển bắt buộc (SCED).........................................................27 IV. TIỂU KẾT CHƯƠNG I .....................................................................................27 CHƯƠNG 2...............................................................................................................28 THUẬT TOÁN TÌM KIẾM CUCKOO SEARCH (CS).............................................28 I. GIỚI THỆU ........................................................................................................28 II. HÀNH VI SINH SỐNG CỦA LOÀI CHIM CUCKOO VÀ CHUYẾN BAY LÉVY 28 1. Hành vi sinh sống của loài chim cuckoo .........................................................28 2. Chuyến bay Lévy .............................................................................................29 III. THUẬT TOÁN TÌM KIẾM CUCKOO SEARCH (CS) ................................32 1. Kiến trúc thuật toán tìm kiếm Cuckoo search(cs) .........................................32 2. Thiết kế và cài đặt thuật toán..........................................................................33 3. Một số ứng dụng của thuật toán CS ...............................................................35 IV. TIỂU KẾT CHƯƠNG 2.....................................................................................36 CHƯƠNG 3...............................................................................................................37 GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn v ÁP DỤNG THUẬT TOÁN CUCKOOS SEARCH (CS) TỐI ƯU CÁC THAM SỐ TRONG MÔ HÌNH COCOMO II ĐỂ ƯỚC LƯỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀM 37 I. GIỚI THIỆU ......................................................................................................37 II. THU THẬP DỮ LIỆU, PHÂN TÍCH, MÔ HÌNH ĐÁNH GIÁ .......................37 1. Thu thập dữ liệu ..............................................................................................37 2. Phân tích mô hình CoCoMoII.........................................................................40 3. Mô hình đánh giá chất lượng ước tính ...........................................................42 III. ÁP DỤNG THUẬT TOÁN CUCKOO SEARCH (CS) ĐỂ TỐI ƯU CÁC THAM SỐ TRONG MÔ HÌNH COCOMO II.......................................................43 1. Thuật toán cuckoo search(CS) ........................................................................43 2. Hàm chất lượng ước tính (fitness)...................................................................44 3. Ứng dụng thuật toán Cuckoo search (CS) tối ưu các tham số trong mô hình CoCoMo II............................................................................................................44 IV. KẾT QUẢ VÀ ĐÁNH GIÁ HIỆU QUẢ CỦA THUẬT TOÁN, SO SÁNH VỚI MỘT SỐ THUẬT TOÁN KHÁC ...........................................................................47 1. Kết quả thuật toán ...........................................................................................47 2. Đánh giá hiệu quả của thuật toán và so sánh với một số thuật toán khác ....47 V. TIỂU KẾT CHƯƠNG 3.....................................................................................49 TÀI LIỆU THAM KHẢO..........................................................................................50 GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn vi TỐI ƯU CÁC THAM SỐ TRONG MÔ HÌNH COCOMO ĐỂ ƯỚC LƯỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀM Học viên: Đặng Quang Văn. Chuyên ngành: Khoa Học Máy Tính Mã số: ………Khóa: K32 Trường Đại học Bách khoa - ĐHĐN Tóm tắt - Ước lượng nỗ lực, chi phí phần mềm là một hoạt động quan trọng trong chu trình phát triển để kiểm soát rủi ro và lập kế hoạch lịch trình dự án. Chính xác dự toán của chi phí trước khi bắt đầu một dự án là điều cần thiết cho cả hai nhà phát triển và khách hàng. Do đó, nhiều mô hình đã được đề xuất để giải quyết vấn đề này, trong đó COCOMO II đã được sử dụng rộng rãi trong các dự án phần mềm hiện đại. Mô hình này là một trong những mô hình ước lượng nỗ lực đã đem lại kết quả ước lượng tốt nhất trong mọi dự án phần mềm, đảm bảo tính khả thi cao cho dự án. Tuy nhiên, các thông số này chưa được ước tính và kết quả không gần với kết quả thực tế. Trong luận văn này, một phương pháp mới để tối ưu hóa các tham số cho mô hình COCOMO II bằng cách sử dụng thuật toán CS được đề xuất lấy từ nguồn cảm hứng của thiên nhiên để tối ưu hóa. Hiệu suất của mô hình đã được thử nghiệm trên dữ liệu dự án phần mềm NASA. Các kết quả báo cáo rằng việc cải thiện các thông số được cung cấp bởi mô hình COCOMO II. Từ khóa - COCOMO II, dự toán chi phí, phần mềm NASA, tối ưu hóa, thuật toán CS. OPTIMIZATION OF PARAMETERS IN COCOMO MODEL II TO ESTIMATE THE SOFTWARE DEVELOPMENT Summary - Estimating effort, software costs are an important activity in the development cycle for risk control and project scheduling. Accurate estimation of costs before starting a project is essential for both developers and clients. Therefore, many models have been proposed to solve this problem, in which COCOMO II has been widely used in modern software projects. This model is one of the effort estimation models that has yielded the best estimate of all software projects, ensuring high feasibility for the project. However, these parameters have not been estimated and the results are not close to the actual results. In this essay, a new method for optimizing parameters for the COCOMO II model using the proposed CS algorithm is derived from the inspiration of nature for optimization. The performance of the model was tested on NASA software project data. The results reported that the improvement of parameters was provided by the COCOMO II model. Keywords - COCOMO II, cost estimation, NASA software, optimization, CS algorithm GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn vii CÁC LOẠI DANH MỤC 1. Danh mục các ký hiệu, các chữ viết tắt Các chữ viết tắt LTEX Kinh nghiệm về ngôn ngữ và công cụ PCAP Khả năng lập trình PCON Nhân sự liên tục PEXP Nền tảng Kinh nghiệm PM Nỗ lực (Người - tháng) PVOL Nền tảng biến động RELY Yêu cầu Phần mềm Độ tin cậy RUSE Yêu cầu khả năng sử dụng lại SCED Lịch phát triển bắt buộc SITE Phát triển đa chiều SLOC Dòng mã nguồn STOR Hạn chế lưu trữ chính TIME Hạn chế thời gian thực hiện TOOL Sử dụng các công cụ phần mềm TDEV Xác định thời gian để phát triển (tháng) DATA Kích thước dữ liệu DATA CPLX Tính phức tạp của sản phẩm DOCU Tài liệu phù hợp với nhu cầu của vòng đời ACAP Khả năng phân tích AEXP Kinh nghiệm ứng dụng PREC Tính tiên tiến FLEX Tính linh hoạt trong phát triển RESL Kiến trúc / Giải quyết Rủi ro TEAM Sự gắn kết đồng đội PMAT Quy trình trưởng thành SF Yếu tố quy mô EM Yếu tố điều khiển chi phí SIZE Kích thước mã nguồn CS Thuật toán Cuckoo search KLOC Đơn vị ngàn dòng lệnh MMRE Độ lớn trung bình của lỗi tương đối PRED (N) Dự đoán ở mức N TLBO Thuật toán dạy và học COCOMO Mô hình ước lượng, nỗ lực phát triển phần mềm GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn viii Các ký hiệu A B C C F E T f Hệ số Hệ số Hệ số Hệ số Hệ số mũ Hệ số mũ Các dự án Giải pháp Giải pháp mới Hàm chất lượng ước tính GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn ix 2. Danh mục các bảng Số Tên bảng Trang hiệu bảng 1.1 Các yếu tố quy mô cho các mô hình COCOMO II và các mô hình 14 hậu kiến trúc một giao diện mô đun đáng kể, % xác định, % rủi ro đáng kể được loại bỏ 1.2 Các yếu tố quy mô liên quan đến các phương thức phát triển 15 COCOMO II 1.3 Các thành phần đánh giá RESL 16 1.4 Thành phần đánh giá của đội 17 1.5 Yêu cầu độ tin cậy phần mềm 18 1.6 Kích thước số liệu DATA 19 1.7 Tính phức tạp của sản phẩm CPLX 20 1.8 Yêu cầu khả năng sử dụng lại 22 1.9 Tài liệu phù hợp với nhu cầu của vòng đời (DOCU) 22 1.10 Hạn chế thời gian thực hiện (TIME) 23 1.11 Hạn chế lưu trữ chính (STOR) 23 1.12 Nền tảng biến động (PVOL) 24 1.13 Khả năng phân tích (ACAP) 24 1.14 Kinh nghiệm lập trình (PCAP) 25 1.15 Kinh nghiệm ứng dụng (AEXP) 25 1.16 Kinh nghiệm về ngôn ngữ và công cụ (LTEX) 25 1.17 Nhân sự liên tục (PCON) 26 1.18 Sử dụng công cụ phần mềm (TOOL) 26 1.19 Phát triển đa chiều (SITE) 27 1.20 Lịch phát triển bắt buộc (SCED) 27 3.1 Bảng giá trị về các nhân tố nỗ lực của trình điều khiển chi phí dự án 38 3.2 Bảng giá trị các yếu tố về quy mô của dự án 38 3.3 Dữ liệu dự án phần mềm của NASA 39 3.4 Bảng các giá trị PRED cho ước tính sử dụng CS, COCOMO II và 48 TLBO 3.5 Bảng các giá trị MRE cho ước tính sử dụng CS, COCOMO II và 48 TLBO GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn x 3. Danh mục các hình vẽ Số hiệu bảng vẽ Tên bảng Trang 1.1 Chi phí phần mềm và xác định độ chính xác so với giai đoạn 12 2.1 Sơ đồ thuật toán tìm kiếm cuckoo search (CS) 34 GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn 1 MỞ ĐẦU 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI Ngày nay, với nhu cầu sử dụng phần mềm và sự cạnh tranh giữa các cá nhân tổ chức danh nghiệp phát triển phần mềm ngày một phức tạp. Vì vậy để đảm bảo tính khả thi và hiệu quả cho một dự án phần mềm, việc ước lượng nỗ lực dự án phần mềm là một trong những vấn đề then chốt và quan trọng nhất trước khi bắt đầu triển khai dự án và đưa đến người sử dụng. Một loạt các kỹ thuật ước lượng sử dụng dữ liệu thu thập được từ các dự án trước đó cộng với công thức toán học để dự đoán chi phí cho dự án được giới thiệu như mô hình COCOMO II, SLIM, ... Kỹ thuật ước lượng được phân bố vào các mô hình hồi quy, phương pháp chuyên gia dựa trên các phương pháp học tập theo định hướng và phương pháp Bayesian .Nhưng những phương pháp trên khó có thể đưa ra được một sự ước lượng chính xác tốt nhất so với thực tế và sự thành công hay thất bại của một dự án điều phụ thuộc rất lớn vào độ chính xác của kết quả ước lượng chi phí và tiến độ. Do đó, bài toán được đặt ra là cần phải tìm ra một phương pháp tối ưu hơn để ước lượng chi phí dự án phần mềm. Mô hình COCOMO II được phát triển vào năm 1995, là một mô hình cho phép ước tính chi phí, nỗ lực và tiến độ lập kế hoạch cho một hoạt động phát triển phần mềm mới. Trong COCOMO II, nỗ lực này được thể hiện như Người-tháng (PM). Một tháng là khoảng thời gian được tính cho một người dành khoảng thời gian đó làm việc cho dự án phát triển phần mềm. Qua việc giới thiệu mô hình COCOMO II đã góp phần đáng kể vào việc nâng cao độ chính xác trong ước lượng chi phí phần mềm và hiện nay đây là một trong những mô hình được sử dụng phổ biến nhất. Tuy nhiên, mô hình này dựa trên một số giá trị không đổi của các phương trình ước lượng dựa trên tham số. Những hằng số này đã không được tối ưu hóa, và do đó tính chính xác của ước lượng đối với các dự án không cao so với nỗ lực và thời gian thực tế. Trong khi đó, Các thuật toán hiện đại ngày càng được lấy cảm hứng từ tự nhiên đang nổi lên và chúng ngày càng trở nên phổ biến. Thuật toán Cuckoo là một thuật toán siêu dữ liệu mới, được gọi là Cuckoo Search (CS), để giải quyết các vấn đề tối ưu hoá. Thuật toán này dựa trên hành vi ký sinh trùng bắt buộc của một số loài chim cu cùng với sự di chuyển được phân phối bởi Le'vy của một số loài chim và ruồi giấm. Vì những lý do như trên, tôi quyết định chọn đề tài: “ Tối ưu tham số trong mô hình CoCoMo để ước lượng nỗ lực phát triển phần mềm”. GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn 2 2. MỤC ĐÍCH NGHIÊN CỨU Áp dụng thuật toán CS vào bài toán tối ưu tham số trong mô hình COCOMO II để ước lượng nỗ lực phát triển phần mềm. 3. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU Đối tượng nghiên cứu: Nghiên cứu các ước lượng nỗ lực phát triển phần mềm và mô hình ước lượng COCOMO II, thuật toán tối ưu CS. Phạm vi nghiên cứu: Nghiên cứu về ước lượng nỗ lực phát triển phần mềm trong mô hình COCOMO II, phương pháp tối ưu các tham số trong mô hình COCOMO II sử dụng thuật toán CS. 4. PHƯƠNG PHÁP NGHIÊN CỨU Tôi sử dụng kết hợp nhiều phương pháp, trong đó chủ yếu là nghiên cứu lý thuyết và nghiên cứu thực nghiệm. 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. Phương pháp thực nghiệm: Cài đặt thuật toán CS để tối ưu các tham số trong mô hình COCOMO II trên công cụ MATLAB, đánh giá kết quả tối ưu qua kỹ thuật đánh giá MMRE, PRED. 5. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN CỦA ĐỀ TÀI Ý nghĩa khoa học: Đề xuất phương pháp tối ưu mới bằng cách áp dụng thuật toán CS để tối ưu tham số trong mô hình CoCoMo II. Ý nghĩa thực tiễn của đề tài: Kết quả nghiên cứu giúp cho việc ước lượng nỗ lực, chi phí, thời gian phát triển phần mềm trong mô hình CoCoMo II một cách chính xác nhất, đảm bảo tính khả thi cho dụ án. 6. CẤU TRÚC LUẬN VĂN Luận văn được trình bày gồm 3 chương. Chương 1: Tổng quan về ước lượng nỗ lực phát triển phần mềm trong mô hình COCOMO II. Nội dung chương này sẽ trình bày chi tiết về tầm quan trọng của việc ước lượng trong dự án phát triển phần mềm, ước lượng nỗ lực và mô hình ước lượng nỗ lực phát triển phần mềm, tiếp cận ước lượng nỗ lực phát triển phần mềm trong mô hình GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn 3 CoCoMo II và cấu trúc của nó và đưa ra phương trình tổng quát về ước lượng nỗ lực, thời gian phát triển phần mềm trong mô hình CoCoMo II. Chương 2: Thuật toán tìm kiếm Cuckoo Search (CS) Trong nội dung chương này, giới thiệu và mô tả chi tiết về thuật toán tìm kiếm cuckoos search (CS), là một trong những thuật toán lấy cảm hứng từ thiên nhiên, dựa vào hành vi ký sinh trùng của một số loài chim Cuckoos. Chương 3: áp dụng thuật toán CUCKOO SEARCH (CS) tối ưu các tham số trong mô hình COCOMO II để ước lượng nỗ lực phát triển phần mềm Trong chương 3 này sẽ trình bày chi tiết về cách tối ưu các tham số trong mô hình CoCoMo II sử dụng thuật toán CS để ước lượng nỗ lực, chi phí và thời gian trong phát triển dự án phần mềm. Trong đó, giới thiệu lý do tối ưu, các mô hình đánh giá và phân tích mô hình tuyến tính trong mô hình CoCoMo II. Giới thiệu sơ lược về thuật toán CS và ứng dụng thuật toán này vào việc tối ưu các tham số A, B, C và D trong mô hình CoCoMo II. GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn 4 CHƯƠNG 1 TỔNG QUAN VỀ ƯỚC LƯỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀMTRONG MÔ HÌNH COCOMO II Trên thế giới, số lượng dự án phần mềm được sản xuất để phục vụ cho nhu cầu xã hội mỗi năm là rất lớn. Tuy nhiên nhiều dự án trong số này có chất lượng không như kỳ vọng của khách hàng hoặc không cung cấp các phần mềm trong phạm vi ngân sách và thời gian hoàn thành. Tại sao quá nhiều dự án phần mềm thất bại? Mặc dù có rất nhiều lý do, một trong những lý do quan trọng nhất là quản lý, ước lượng dự án phần mềm không phù hợp. Ví dụ, các lý do chính làm cho việc ước lượng dự án phần mềm có sự chênh lệch rất lớn so với thực tế là mục tiêu và lập kế hoạch không rõ ràng, không làm chủ công nghệ mới, thiếu phương pháp quản lý dự án, và không quản lý được rủi ro trong dự án..v..v. Chính vì lẽ đó, việc ước lượng là một trong những nhiệm vụ rất quan trọng và phức tạp nhất trong quản lý dự án. Với mục tiêu là để chính xác các nguồn lực cần thiết và lịch trình yêu cầu cho các dự án phát triển phần mềm. Quá trình ước lượng phần mềm bao gồm ước tính kích cỡ của sản phẩm phần mềm sẽ được tạo ra, ước tính các nỗ lực cần thiết, xây dựng sơ đồ dự án ban đầu, và cuối cùng là ước tính toàn bộ chi phí của dự án. Trong vài năm nghiên cứu gần đây, có nhiều phương pháp, mô hình ước lượng chi phí, nỗ lực phần mềm có sẵn bao gồm các phương pháp thuật toán, ước tính bằng phương pháp tương tự, phương pháp đánh giá chuyên gia, mô hình AGILE, CoCoMo..v.v, đã góp phần đưa ra một kết quả ước lượng chính xác so với thực tế. I. ƯỚC LƯỢNG NỖ LỰC VÀ CÁC MÔ HÌNH ƯỚC LƯỢNG NỖ LỰC TRONG PHÁT TRIỂN PHẦN MỀM 1. Ước lượng nỗ lực Ước lượng thường diễn ra sau giai đoạn phân tích, tức là khi người quản lý dự án ước lượng nỗ lực, các yêu cầu đã được hiểu rõ ràng. Các quy trình nghiệp vụ được tổ chức để hỗ trợ phương pháp này. Ví dụ, giai đoạn yêu cầu đôi khi được thực hiện như một dự án riêng biệt với dự án phát triển phần mềm. Với nhiều phương pháp ước lượng đã được đề xuất, người quản lý dự án có thể lựa chọn bất kỳ phương pháp ước lượng nào miễn là nó thích hợp với tính chất công việc. Đôi khi, người quản lý dự án có thể thực hiện ước lượng bằng cách sử dụng nhiều GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn 5 phương pháp khác nhau, để xác nhận độ chính xác của một ước lượng được làm bởi một phương pháp chính nào đó hoặc để giảm rủi ro, đặc biệt là khi không có nhiều dữ liệu quá khứ của dự án tương tự. Có 2 phương pháp cơ bản để ước lượng nỗ lực. 1.1 Tiếp cận ước lượng từ dưới lên (Bottom-up estimation approach) Đa số các dự án phát triển phần mềm được thực hiện thì rất khác nhau, sự tiếp cận từ dưới lên cũng được ưa thích và được khuyến khích. Với phương pháp này sử dụng đơn vị công việc, mặc dù một số hạn chế của chiến lược này đã được khắc phục thông qua việc sử dụng các dữ liệu quá khứ và cơ sở về khả năng của quy trình. Trong phương pháp đơn vị công việc, người quản lý dự án đầu tiên chia phần mềm sắp được phát triển ra thành các chương trình chính hoặc đơn vị chương trình. Mỗi đơn vị chương trình sau đó được phân loại là trung bình, đơn giản hoặc phức tạp dựa trên các tiêu chí nhất định. Đối với mỗi đơn vị phân loại, người quản lý dự án xác định một nỗ lực tiêu chuẩn cần thiết để cài đặt mã và tự kiểm thử (cả hai công việc này được gọi chung là nỗ lực xây dựng. Nỗ lực xây dựng chuẩn này có thể được xác định từ dữ liệu quá khứ của một dự án tương tự, từ các hướng dẫn nội bộ có sẵn, hoặc kết hợp những khả năng này. Một khi số lượng các đơn vị trong ba loại phức tạp được biết và nỗ lực xây dựng đã được ước lượng cho mỗi chương trình được chọn, số nỗ lực tổng thể cho giai đoạn xây dựng của dự án sẽ được biết. Từ nỗ lực xây dựng, nỗ lực được cần cho các giai đoạn và các hoạt động khác sẽ được xác định bằng một tỷ lệ phần trăm của nỗ lực cài đặt mã. Dựa vào cơ sở về khả năng của quy trình hoặc cơ sở dữ liệu quy trình, phân phối nỗ lực trong dự án được biết. Nhà quản lý dự án sử dụng tỷ lệ phân phối này để xác định các nỗ lực cho giai đoạn và các hoạt động khác nhau. Từ những ước lượng này, nỗ lực tổng thể cho dự án được biết. Phương pháp này đã sử dụng một hỗn hợp của kinh nghiệm và dữ liệu một cách hợp lý. Nếu không có sẵn dữ liệu phù hợp (ví dụ, nếu bạn đang bắt đầu một kiểu dự án mới), bạn có thể ước lượng nỗ lực xây dựng dựa theo kinh nghiệm sau khi bạn phân tích dự án xong và khi bạn biết số lượng các đơn vị chương trình khác nhau. Với các ước lượng đã có sẵn, có thể ước lượng cho các hoạt động khác nhau bằng cách sử dụng dữ liệu về tỷ lệ phân phối nỗ lực của các dự án trong quá khứ. Chiến lược này có khả năng tính đến các hoạt động mà chúng thường khó được liệt kê ra ở giai đoạn đầu của dự án, khi thực hiện phân phối nỗ lực cho một dự án, loại khác thường được sử dụng để thực hiện các công việc hoặc nhiệm vụ linh tinh. Quy trình (thủ tục) ước lượng có thể được tóm tắt theo trình tự các bước như sau:  Xác định các chương trình trong hệ thống và phân loại chúng là đơn giản, trung bình, hoặc phức tạp (S/M/C). Càng nhiều càng tốt, hãy sử dụng các định nghĩa chuẩn đã được cung cấp hoặc các định nghĩa của các dự án trong quá khứ. GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn 6  Nếu một cơ sở riêng của dự án tồn tại, hãy tính ra nỗ lực xây dựng trung bình cho các chương trình S/M/C từ cơ sở này.  Nếu cơ sở riêng của dự án chưa tồn tại, hãy sử dụng: loại dự án, công nghệ, ngôn ngữ, và các thuộc tính khác để tìm kiếm các dự án tương tự trong cơ sở dữ liệu quy trình. Hãy sử dụng dữ liệu từ các dự án này để xác định nỗ lực xây dựng cho các chương trình S/M/C.  Nếu không có dự án tương tự tồn tại trong cơ sở dữ liệu quy trình và cũng không có cơ sở riêng của dự án, hãy sử dụng nỗ lực xây dựng trung bình cho các chương trình S/M/C từ cơ sở chung về khả năng quy trình.  Sử dụng các yếu tố riêng của dự án để tinh chỉnh các nỗ lực xây dựng cho chương trình S/M/C.  Tính ra tổng nỗ lực xây dựng bằng cách sử dụng nỗ lực xây dựng của các chương trình S/M/C và đếm chúng.  Sử dụng tỷ lệ phân phối nỗ lực được đưa ra trong cơ sở về khả năng hoặc trong các dự án tương tự trong cơ sở dữ liệu quy trình, ước lượng nỗ lực cho các công việc/nhiệm vụ khác và nỗ lực tổng.  Tinh chỉnh lại các ước lượng dựa trên các yếu tố riêng của dự án. Thủ tục này sử dụng cơ sở dữ liệu quy trình và cơ sở về khả năng quy trình. Nếu nhiều dự án có cùng một loại đang được thực hiện, bạn có thể xây dựng một cơ sở về khả năng của dự án. Một cơ sở như vậy là tương tự như các cơ sở chung nhưng chỉ sử dụng dữ liệu từ vài dự án cụ thể. Các cơ sở này đã được nhận thấy là tốt nhất để ước lượng nỗ lực cho một dự án mới có cùng loại đó. Vì thế, chúng được ưa thích khi được sử dụng cho ước lượng. Bởi vì nhiều yếu tố khác nhau có thể ảnh hưởng đến lượng nỗ lực cần thiết cho một dự án, điều quan trọng khi làm ước lượng là phải xác định được các yếu tố riêng của dự án. Thay vì phân loại các tham số ra thành các mức khác nhau và sau đó xác định mức độ ảnh hưởng lên lượng nỗ lực được cần, phương pháp được nêu ra ở đây cho phép người quản lý dự án xác định tác động của các yếu tố riêng của dự án lên ước lượng. Người quản lý dự án có thể thực hiện điều chỉnh bằng cách sử dụng kinh nghiệm của họ, kinh nghiệm của các thành viên trong nhóm, hoặc dữ liệu từ các dự án được tìm thấy trong cơ sở dữ liệu quy trình. Lưu ý rằng phương pháp phân loại các chương trình ra thành vài loại và sử dụng số nỗ lực xây dựng trung bình cho mỗi loại được áp dụng để thực hiện ước lượng nỗ lực tổng thể. Tuy nhiên, khi lập kế hoạch chi tiết, người quản lý dự án phân công mỗi đơn vị kích thước cho một thành viên của nhóm để cài đặt mã, và thời gian cho các hoạt động đặc trưng của một đơn vị kích thước sẽ được ghi nhận xem nó có cần thời gian nhiều hơn hoặc ít hơn so với trung bình. GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn 7 1.2 Tiếp cận ước lượng từ trên xuống (The top-down estimation approach) Giống như tiếp cận từ dưới lên, ở phương pháp tiếp cận này bắt đầu với một ước lượng kích thước mã nguồn của các phần mềm dùng các điểm chức năng. Các điểm chức năng có thể được đếm bằng cách sử dụng các quy tắc đếm điểm chức năng chuẩn. Ngoài ra, nếu kích thước được ước lượng bằng LOC, nó có thể được chuyển đổi thành các điểm chức năng. Ngoài ước lượng kích thước mã nguồn, tiếp cận từ trên xuống đòi hỏi phải ước lượng năng suất. Các tiếp cận cơ bản là bắt đầu với các mức năng suất của các dự án tương tự (dữ liệu đã có sẵn trong cơ sở dữ liệu quy trình) hoặc với số liệu năng suất chuẩn (mà dữ liệu về nó đã có sẵn trong baseline về khả năng của quy trình), sau đó phải điều chỉnh lại các mức này nếu cần thiết, để phù hợp với dự án đang được ước lượng. Ước lượng năng suất sau đó được sử dụng để tính ra nỗ lực tổng thể. Từ nỗ lực tổng thể, nỗ lực cho các giai đoạn khác nhau được ước lượng bằng cách sử dụng các bảng phân phối tỷ lệ phần trăm. Như trong tiếp cận từ dưới lên, những phân phối này có thể thu được từ cơ sở dữ liệu quy trình hoặc cơ sở về khả năng quy trình. Tóm tắt tiếp cận tổng thể để thực hiện ước lượng từ trên xuống bao gồm các bước sau đây:  Ước lượng kích thước tổng cộng của phần mềm bằng các điểm chức năng.  Sử dụng các dữ liệu về năng suất từ cơ sở về khả năng của dự án, từ cơ sở về khả năng của quy trình, hoặc từ các dự án tương tự, sửa chữa lại các mức năng suất cho phù hợp với dự án đang được ước lượng.  Có được nỗ lực tổng thể của dự án từ năng suất và kích thước.  Tinh chỉnh lại ước lượng, có xem xét đến mức độ ảnh hưởng của các yếu tố riêng của dự án.  Sử dụng dữ liệu về phân phối nỗ lực từ cơ sở về khả năng của quy trình hoặc từ các dự án tương tự để ước lượng nỗ lực cho các giai đoạn khác nhau. Cũng giống như tiếp cận từ dưới lên, tiếp cận từ trên xuống cũng cho phép tinh chỉnh lại kết quả ước lượng bằng cách sử dụng các yếu tố riêng của dự án. Sự cho phép này (không thực sự định nghĩa các yếu tố nào) báo hiệu rằng mỗi dự án là duy nhất và có thể có vài yếu tố đặc trưng có thể không có mặt trong các dự án khác. Không thể liệt kê ra những yếu tố đặc trưng này hoặc lập mô hình một cách hình thức về sự ảnh hưởng của chúng lên năng suất. Do đó, hãy để cho người quản lý dự án quyết định các yếu tố nào cần được xem xét và chúng sẽ ảnh hưởng lên dự án thế nào. GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn 8 2. Các mô hình ước lượng nỗ lực phát triển phần mềm Một mô hình ước lượng phần mềm định nghĩa các đặc trưng của dự án mà giá trị của những đặc trưng này được dùng để tính nỗ lực (effort). Một mô hình ước lượng không thể hoạt động trong chân không, nó cần các yếu tố đầu vào để tạo ra nỗ lực ở đầu ra. Ở lúc bắt đầu dự án, khi các chi tiết của phần mềm chưa được biết đến, mô hình ước lượng sẽ đòi hỏi các giá trị của các yếu tố đặc trưng có thể được xác lập ở giai đoạn này. Kích thước mã nguồn (SIZE) của phần mềm là yếu tố quan trọng nhất trong việc xác định bao nhiêu nỗ lực là cần thiết để xây dựng nó. Tuy nhiên, SIZE cuối cùng thì không được biết khi dự án vẫn còn đang được hình thành, và phần mềm chưa thực sự tồn tại. Do đó, nếu SIZE được sử dụng cho một mô hình ước lượng nỗ lực thì nó phải được ước lượng ngay từ lúc đầu. Tiếp cận phổ biến thông thường sử dụng một phương trình đơn giản để có được một ước lượng nỗ lực tổng thể từ ước lượng kích thước mã nguồn. Phương trình này có thể được xác định thông qua phân tích hồi quy các dữ liệu quá khứ về nỗ lực (effort) và SIZE. Sau đó, một khi nỗ lực tổng thể của dự án được biết, nỗ lực phân bổ cho các giai đoạn hoặc các hoạt động khác nhau có thể được xác định bằng một tỷ lệ phần trăm của nỗ lực tổng thể. Nhiều mô hình đã đề xuất sử dụng tiếp cận từ trên xuống (top-down approach) để ước lượng, ví dụ như mô hình nổi tiếng COCOMO. Các mô hình sử dụng điểm chức năng thay vì LOC làm đơn vị kích thước mã nguồn cũng đã được xây dựng. Trong các mô hình này, được xác định thêm các yếu tố khác (có ảnh hưởng đến nỗ lực) để điều chỉnh lại các ước lượng dựa trên các yếu tố này. Đây là tiếp cận được thực hiện trong mô hình COCOMO model . Một tiếp cận khác là điều chỉnh kích thước mã nguồn của hệ thống dựa trên các thông số (parameters), như đã được thực hiện trong điểm chức năng (Function points). Trong tiếp cận từ dưới lên (bottom-up approach), trước tiên thực hiện các ước lượng cho các phần của dự án và sau đó ước tính cho tổng thể dự án. Tức là, ước lượng tổng thể của dự án được suy ra từ các ước lượng của các bộ phận của nó. Một tiếp cận từ dưới lên được gọi là ước lượng dựa trên các hoạt động. Trong chiến lược này, trước hết các hoạt động chính được liệt kê ra, và sau đó nỗ lực cho từng hoạt động được ước lượng. Từ những ước lượng này, bạn thu được nỗ lực cho toàn bộ dự án. Tiếp cận ước lượng từ dưới lên là ước lượng trực tiếp (ước lượng ngay) nỗ lực, một khi dự án được phân chia thành các công việc hoặc nhiệm vụ nhỏ hơn thì việc ước lượng trực tiếp nỗ lực cần thiết cho chúng là điều có thể. Mặc dù kích thước đóng một vai trò quan trọng trong việc xác định các nỗ lực cho các hoạt động trong một dự án, GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn 9 nhưng lợi thế của tiếp cận từ dưới lên là nó không cần ước lượng kích thước cho phần mềm. Thay vào đó, nó đòi hỏi một danh sách các công việc hoặc nhiệm vụ trong dự án có thể được chuẩn bị dễ dàng hơn. Một rủi ro của tiếp cận từ dưới lên là có thể bỏ qua một số hoạt động quan trọng trong danh sách các công viêc hoặc nhiệm vụ. Khi nỗ lực được ước lượng trực tiếp cho các công việc hoặc nhiệm vụ, khó có thể ước lượng cho các công việc hoặc nhiệm vụ về quản lý, chẳng hạn như quản lý dự án trong suốt chu kỳ sống, đây là các công việc không được xác định rõ ràng như cài đặt mã hoặc kiểm thử. Cả hai tiếp cận từ trên xuống và từ dưới lên điều cần các thông tin về dự án: kích thước (đối với tiếp cận từ trên xuống) và một danh sách các công viêc hoặc nhiệm vụ (đối với tiếp cận từ dưới lên). Bằng nhiều cách, những tiếp cận này có thể bổ sung cho nhau. Cả hai loại ước lượng sẽ cho kết quả chính xác hơn nếu thông tin về dự án có được biết nhiều hơn. Ví dụ, ước lượng kích thước từ các yêu cầu ở mức cao (high level requirements) thì khó hơn nhiều so với ước lượng kích thước khi đã thiết kế (design) xong, và thậm chí sẽ dễ dàng hơn và chính xác hơn khi mã (code) đã được phát triển. Như vậy, độ chính xác của ước lượng phụ thuộc vào thời điểm mà tại đó nỗ lực ước lượng, và độ chính xác sẽ tăng khi có thêm thông tin về dự án được biết. II. TIẾP CẬN MÔ HÌNH ƯỚC LƯỢNG NỖ LỰC PHÁT TRIỂN PHẦN MÊM COCOMO II Mô hình CoCoMo II là một trong những mô hình ước lượng chi phí, nỗ lực sử dụng phương pháp tiếp cận ước lượng từ trên xuống. Trong mô hình này, đơn vị tính của ước lượng nỗ lực(PM) là người-tháng. Một người tháng là thời gian mà một người dành thời gian đó làm việc cho dự án phát triển phần mềm trong một tháng. Thời gian này là không kể các ngày lễ và ngày nghỉ mà chỉ tính đến thời gian nghỉ cuối tuần. Số tháng người khác với số tháng thời gian nó sẽ mất để hoàn thành dự án, đây được gọi là tiến độ phát triển. Phương trình tổng quát của mô hình CoCoMo II: PM = A * * (1.1) Trong đó: PM : ước lượng nỗ lực A: là một hằng số, bắt nguồn từ dữ liệu dự án lịch sử (hiện tại là A = 2.94 ) SIZE: Kích thước là trong KSLOC (nghìn dòng mã nguồn), hoặc chuyển đổi từ các điểm chức năng hoặc điểm đối tượng. GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn
- Xem thêm -

Tài liệu liên quan