Ước lượng giá thành phần mềm khảo sát các mô hình phổ biến và phân tích khả năng ứng dụng tại Việt Nam Ước lượng giá thành phần mềm khảo sát các mô hình phổ biến và phân tích khả năng ứng dụng tại Việt Nam luận văn tốt nghiệp thạc sĩ
BÙI NGỌC HỒNG – NGÀNH CƠNG NGHỆ THƠNG TIN – KHÓA 2007-2009 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI BÙI NGỌC HOÀNG ƯỚC LƯỢNG GIÁ THÀNH PHẦN MỀM: KHẢO SÁT CÁC MƠ HÌNH PHỔ BIẾN VÀ PHÂN TÍCH KHẢ NĂNG ỨNG DỤNG TẠI VIỆT NAM LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN HÀ NỘI - 2009 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI BÙI NGỌC HOÀNG ƯỚC LƯỢNG GIÁ THÀNH PHẦN MỀM: KHẢO SÁT CÁC MƠ HÌNH PHỔ BIẾN VÀ PHÂN TÍCH KHẢ NĂNG ỨNG DỤNG TẠI VIỆT NAM NGÀNH: CƠNG NGHỆ THÔNG TIN LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN Người hướng dẫn khoa học: TS NGUYỄN KHANH VĂN HÀ NỘI - 2009 i LỜI CẢM ƠN Trước tiên, em xin chân thành cảm ơn TS Nguyễn Khanh Văn, trưởng môn Công Nghệ Phần Mềm trường đại học BKHN, nhiệt tình hướng dẫn cung cấp cho em nhiều tài liệu quý giá để hoàn thành luận văn Xin cảm ơn anh chị trung tâm quản lý chất lượng QA công ty CMCSoft giúp đỡ em nhiều thu thập số liệu thực nghiệm Cuối cùng, em xin cảm ơn gia đình bạn bè ủng hộ, động viên em hoàn thành tốt luận văn Học viên thực ii MỤC LỤC LỜI CẢM ƠN i MỤC LỤC ii DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT v DANH MỤC CÁC BẢNG BIỂU vii DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ ix MỞ ĐẦU Chương TỔNG QUAN 1.1 Tổng quan thực trạng vấn đề lượng giá phần mềm Việt Nam 1.1.1 Lượng giá phần mềm ảnh hưởng đến phát triển dự án CNTT Việt Nam nào? 1.1.2 Những kiến nghị giải pháp nhà quản lý CNTT 1.1.3 Những đặc trưng ngành CNPM Việt Nam ảnh hưởng đến trình lượng giá phần mềm 1.1.4 Những bất cập công văn hướng dẫn lượng giá phần mềm 3364 1.2 Giới thiệu kiến thức tổng quan lượng giá phần mềm 1.2.1 Giải thích thuật ngữ 1.2.2 Vai trò lượng giá phần mềm 1.2.3 Cơ sở xây dựng mơ hình lượng giá chi phí 1.2.3.1 Đếm số dòng lệnh SLOC 1.2.3.2 Điểm chức chưa hiệu chỉnh UFP 1.2.3.3 Điểm Use-case chưa hiệu chỉnhUUCP 1.2.4 Các phương pháp mơ hình lượng giá dự án phần mềm 1.2.4.1 Mơ hình tốn học 1.2.4.2 Mơ hình chun gia 1.2.4.3 Mơ hình tương tự 1.2.4.4 Lượng giá Parkinson 1.2.4.5 Mơ hình Price-to-Win 1.2.4.6 Lượng giá Top-Down 1.2.4.7 Lượng giá Bottom-Up 1.2.4.8 Đánh giá so sánh mơ hình lượng giá 1.2.5 Quy trình lượng giá dự án phần mềm 10 Chương CÁC MƠ HÌNH LƯỢNG GIÁ THỰC NGHIỆM 14 2.1 Mô hình COCOMO 14 2.1.1 Giới thiệu tổng quan mơ hình COCOMO 14 2.1.2 Mơ hình COCOMO 14 2.1.3 Mơ hình COCOMO trung bình 16 2.1.4 Mơ hình COCOMO chi tiết 18 2.2 Mơ hình COCOMO II 20 2.2.1 Đặc điểm COCOMO II 21 2.2.2 Ước lượng kích thước dự án 21 2.2.2.1 Hệ số thay đổi yêu cầu REVL 22 2.2.2.2 Ước lượng kích thước cho dự án tái sử dụng mã nguồn 22 2.2.2.3 Ước lượng kích thước cho dự án bảo trì phần mềm 24 2.2.3 Ước lượng công sức phát triển 25 2.2.3.1 Mã dịch tự động 25 2.2.3.2 Ước lượng phạm vi cho kết đầu mơ hình 26 2.2.4 Mơ hình tổng hợp ứng dụng AC 27 2.2.4.1 Tiếp cận mơ hình AC 27 iii 2.2.4.2 Tính điểm đối tượng OP 27 2.2.4.3 Tính tốn cơng sức dựa OP 28 2.2.5 Mơ hình thiết kế sớm ED 29 2.2.5.1 Tiếp cận mơ hình ED 29 2.2.5.2 Ước lượng công sức 29 2.2.5.3 Ước lượng thời gian thực dự án 31 2.2.6 Mơ hình hậu kiến trúc 32 2.2.6.1 Tiếp cận mơ hình PA 32 2.2.6.2 Ước lượng công sức 32 2.2.6.3 Ước lượng thời gian dự án 35 2.2.7 Quản lý rủi ro chi phí 35 2.2.8 Đánh giá tổng qt mơ hình COCOMO 37 2.3 Mơ hình lượng giá điểm chức FPA 38 2.3.1 Giới thiệu mơ hình FPA 38 2.3.2 Đặc điểm mơ hình FPA 38 2.3.3 Các bước tiếp cận xây dựng mơ hình 39 2.3.3.1 Xác định loại dự án cần tính điểm chức 40 2.3.3.2 Xác định phạm vi tính toán biên ứng dụng 41 2.3.3.3 Tính số điểm chức chưa hiệu chỉnh UFP 41 2.3.3.4 Xác định hệ số hiệu chỉnh giá trị VAF 45 2.3.3.5 Tính số điểm chức hiệu chỉnh AFP 50 2.3.4 Ước lượng công sức dự án 52 2.3.5 Kết luận đánh giá mơ hình FPA 55 2.4 Mơ hình UCP 56 2.4.1 Giới thiệu mơ hình 56 2.4.2 Mơ hình lượng giá theo UCP 56 2.4.2.1 Tính giá trị UAW Actor 57 2.4.2.2 Tính giá trị UUCW Use-case 58 2.4.2.3 Tính giá trị Use-case chưa hiệu chỉnh UUCP 58 2.4.2.4 Tính hệ số phức tạp kỹ thuật TCF 58 2.4.2.5 Tính hệ số mơi trường EF 60 2.4.2.6 Tính tổng số điểm AUCP 61 2.4.2.7 Ước lượng công sức 61 2.4.3 So sánh mơ hình FPA mơ hình UCP 62 2.4.3.1 Sự giống 62 2.4.3.2 Sự khác 62 2.4.4 Kết luận, nhận xét mơ hình UCP 63 2.5 Mơ hình UCP Việt Nam 64 2.5.1 Giới thiệu mơ hình UCP Việt Nam 64 2.5.2 So sánh mơ hình UCP Việt Nam mơ hình UCP chuẩn 64 2.5.3 Phân tích điểm bất hợp lý mơ hình UCP Việt Nam 65 2.5.3.1 Tính điểm cho Use-case không dựa vào độ lớn Use-case 65 2.5.3.2 Phức tạp hóa mơ hình biểu thức tính tốn 66 2.5.3.3 Các số thêm vào khơng có sở 66 2.5.3.4 Xác định chi phí nhân công chưa hợp lý 67 2.5.4 Ý kiến đóng góp cho xây dựng mơ hình 67 Chương ÁP DỤNG CÁC MƠ HÌNH LƯỢNG GIÁ VÀO THỰC NGHIỆM 68 3.1 Tổng hợp phương pháp mơ hình lượng giá thực nghiệm 68 3.2 Lượng giá dự án phần mềm: BVPROP 69 iv 3.2.1 Giới thiệu tổng quan dự án 69 3.2.2 Sử dụng mô hình FPA 69 3.2.3 Sử dụng mơ hình COCOMOII 71 3.2.4 Sử dụng mơ hình UCP 73 3.3 Lượng giá dự án phần mềm: LKNHCK 75 3.3.1 Giới thiệu dự án 75 3.3.2 Sử dụng mơ hình FPA 75 3.3.3 Sử dụng mơ hình COCOMOII 77 3.3.4 Sử dụng mơ hình UCP 78 3.4 Lượng giá dự án phần mềm: BHXH 2008 Resale 80 3.4.1 Giới thiệu dự án 80 3.4.2 Sử dụng mơ hình FPA 81 3.4.3 Sử dụng mơ hình COCOMOII 83 3.4.4 Sử dụng mơ hình UCP 84 3.5 Đối chiếu nhận xét kết ước lượng 86 Chương CÁC ĐÁNH GIÁ NHẬN XÉT VÀ ĐỀ XUẤT CẢI TIẾN 88 4.1 Đánh giá nhận xét chung cho mơ hình lượng giá 88 4.2 Những đề xuất cải tiến quy trình ước lượng 89 4.3 Những đề xuất cải tiến cho mơ hình 89 4.3.1 Mơ hình COCOMOII 89 4.3.2 Mơ hình FPA 91 4.3.3 Mơ hình UCP 92 4.4 Đề xuất mơ hình tổng hợp 93 KẾT LUẬN 94 TÀI LIỆU THAM KHẢO 95 PHỤ LỤC A - CHECKLIST SLOC 98 PHỤ LỤC B – BẢNG QUY ĐỔI GIỮA FP VÀ SLOC 99 PHỤ LỤC C - CÁC CHUẨN ISO CỦA MƠ HÌNH FPA 100 PHỤ LỤC D – QUY TRÌNH RUP 101 PHỤ LỤC F – MỘT SỐ PHƯƠNG PHÁP ƯỚC LƯỢNG BỔ TRỢ 103 TÓM TẮT LUẬN VĂN 104 ABSTRACT 105 v DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT Từ viết tắt Từ viết đầy đủ Mô tả AC Applications Composition Mơ hình tổng hợp ứng dụng AFP Adjusted Function Point Số điểm chức hiệu chỉnh AUCP Adjusted Use Case Point Tổng số điểm Use-case hiệu chỉnh BVPROP Dự án xây dựng phần mềm quản lý bảo hiểm phi nhân thọ Là dự án phần mềm quản lý nghiệp vụ bảo hiểm phi nhân thọ ký kết tập đồn Bảo Việt cty phần mềm CMCSoft CNPM Cơng Nghiệp Phần Mềm Công Nghiệp Phần Mềm CNTT Công Nghệ Thông Tin Công Nghệ Thông Tin COCOMO Constructive Cost Model Là mơ hình chi phí xây dựng dự án phần mềm GS Boehm đại học Southern California đề xuất năm 1981 COCOMOII Constructive Cost Model II Là mô hình cải tiến mơ hình COCOMO năm 1981 GS Boehm cộng ông trung tâm nghiên cứu CSSE xây dựng nên CSDL Cơ sở liệu Cơ sở liệu DF Data Funciton Điểm chức liệu EAF Effort Adjustment Factor Là hệ số điều chỉnh cơng sức ED Early Design Mơ hình thiết kế sớm EF Environment Factor Hệ số phức tạp môi trường EIF External Interface File Các thông tin liệu tham chiếu từ bên ứng dụng ER Effort Rate Hệ số tỷ lệ công sức FP Function Point Đơn vị đo kích thước phần mềm FPA FPA Function Point Analysis Mơ hình lượng giá phân tích điểm chức GSC General System Characterisrics Các đặc trưng chung hệ thống IFPUG International Function Point Users Group Một tổ chức phi lợi nhuận, họat động với mục đích thúc đẩy việc sử dụng phương pháp phân tích điểm chức độ đo phần mềm khác ILF Internal Logic File Các thông tin liệu sử dụng bên ứng dụng ISBSG International Software Benchmarking Standard Group Là tổ chức cung cấp số liệu thống kê suất làm việc nguồn nhân lực Số nghìn dịng lệnh bàn giao KDSI Thousand Delivered Source Instructions KSLOC Thousands of Source Lines Số nghìn dịng lệnh mã nguồn vi of Code Man-Months Là công sức xây dựng dự án (người-tháng) mơ hình COCOMO OP Object Point Điểm đối tượng đơn vị đo kích thước phần mềm mơ hình tổng hợp ứng dụng PA Post Architecture Mơ hình hậu kiến trúc PM Person-Man Là công sức xây dựng dự án (người-tháng) mô hình COCOMO II PMAUTO Person-Man (Automatic Translation) Cơng sức tính theo người-tháng từ việc dịch tự động PMNS Person-Man (Nominal) Cơng sức danh nghĩa dự án tính theo người-tháng Requirements Evolution and Volatility Hệ số thay đổi yêu cầu REVL MM RUP Rational Unified Process Là quy trình phát triển phần mềm thống đề xuất Rational Software (nay thuộc IBM Rational) SF Scale Factor Hệ số tỷ lệ SLOC Source Lines Of Code Số dòng mã lệnh TCF Technical Complex Factor Hệ số phức tạp kỹ thuật TDEV Development Schedule Là thời gian thực dự án (tháng) TF Transactional Function điểm chức giao tác TT&TT Bộ Thông tin Truyền thông Bộ Thông tin Truyền thông UAW Unadjusted Actor Weight Giá trị Actor UCP Use-case Point Mơ hình lượng giá dựa điểm Use-case UFP Unadjusted Function Point Điểm chức chưa điều chỉnh UML Use-case Point Ngôn ngữ mô hình hóa thống UUCP Unadjusted Use Case Points Số điểm Use-case chưa hiệu chỉnh UUCW Unadjusted Use Case Weight Giá trị Use-case VAF Value Adjustment Factor Hệ số hiệu chỉnh giá trị WBS Work Breakdown Structure Cấu trúc phân chia công việc vii DANH MỤC CÁC BẢNG BIỂU Bảng 1.1: So sánh mơ hình lượng giá (nguồn Boehm 1981) 10 Bảng 1.2: Các bước quy trình ước lượng (nguồn Kathleen 1999 ) 12 Bảng 2.1.1: Hằng số phụ thuộc mơ hình COCOMO (nguồn Boehm81) 14 Bảng 2.1.2: Các dạng mơ hình dự án phát triển COCOMO (nguồn Boehm81) 15 Bảng 2.1.3: Các số phụ thuộc COCOMO trung bình (nguồn Boehm81) 16 Bảng 2.1.4: Các yếu tố điều khiển giá mơ hình COCOMO (nguồn Boehm81) 17 Bảng 2.15: Hệ số điều chỉnh công sức EAF dự án BVPROP 18 Bảng 2.1.6: COCOMO chi tiết: ước lượng công sức mức mô đun BVPROP 20 Bảng 2.1.7: COCOMO chi tiết: kết ước lượng công sức dự án BVPROP 20 Bảng 2.2.1: Hệ số tỷ lệ cho số gia AA (nguồn Boehm 2000) 23 Bảng 2.2.2: Giá trị số gia hiểu biết phần mềm SU (nguồn Boehm 2000) 23 Bảng 2.2.3: Giá trị hệ số UNFM (nguồn Boehm 2000) 24 Bảng 2.2.4: Bảng giá trị hệ số AT (nguồn Boehm 2000) 26 Bảng 2.2.6: Ước lượng phạm vi mơ hình COCOMOII (Nguồn Boehm 2000) 26 Bảng 2.2.5: Độ phức tạp OP dựa vào số lượng screen report (Boehm2000) 27 Bảng 2.2.6: Tính giá trị OP từ độ phức tạp (nguồn Boehm2000) 28 Bảng 2.2.7: Thống kê số lượng Screen Report dự án BVPROP 28 Bảng 2.2.8 : Mơ hình AC: Giá trị suất làm việc PROD (Nguồn Boehm 2000) 28 Bảng 2.2.9: Mơ hình ED: Hệ số nhân công sức EM (nguồn Boehm 2000) 30 Bảng 2.2.10: Mơ hình ED: hệ số tỷ lệ SF dự án BVPROP 31 Bảng 2.2.11: Mơ hình ED: hệ số nhân công sức EM dự án BVPROP 31 Bảng 2.2.12: Mức độ yêu cầu lịch trình phát triển 32 Bảng 2.2.13: Mơ hình PA: hệ số điều khiển chi phí (Nguồn Boehm 2000) 34 Bảng 2.2.14: Mơ hình PA: Hệ số nhân cơng sức EM dự án BVPROP 34 Bảng 2.2.15: Mơ hình PA: Hệ số EM có tính rủi ro dự án BVPROP 36 Bảng 2.2.16: Kết ước lượng mơ hình COCOMO (nguồn Boehm 2000) 37 Bảng 2.3.1: Ma trận độ phức tạp ILF/EIF (nguồn IFPUG) 42 Bảng 2.3.3: độ phức tạp EI 43 Bảng 2.3.4: độ phức tạp EO/EQ (nguồn IFPUG) 43 Bảng 2.3.5: Tỷ lệ % loại điểm chức dự án (GalEva06) 44 Bảng 2.3.5: Số RET DET chức lập đơn hàng BVPROP 45 Bảng 2.3.6: Giá trị ảnh hưởng 14 đặc trưng chung GSC (IFPUG) 49 Bảng 2.3.7: Giá trị ảnh hưởng đặc trưng dự án BVPROP 50 Bảng 2.3.8: Hiệu suất công việc dự án: Web không dựa Web (ISBSG, 2008) 53 Bảng 2.3.9: Thống kê hiệu suất cơng việc theo ngơn ngữ lập trình 53 Bảng 2.3.10: Thống kê hiệu suất công việc theo platform (ISBSG, 2002) 53 Bảng 2.3.11: Tthống kê hiệu suất công việc theo loại dự án (Shepperd, 2006) 54 Bảng 2.3.12: Hiệu suất công việc (FP/người-tháng) phụ thuộc vào quy mô lĩnh vực phát triển ứng dụng (Capers Jones,2008) 54 Bảng 2.4.1: Độ phức tạp trọng số Actor ( Schneider& Winters 2001) 57 Bảng 2.4.2: Giá trị UAW chức cấp đơn chuyến Hàng nhập 58 Bảng 2.4.3: Độ phức tạp trọng số Use-case ( Schneider& Winters 2001) 58 Bảng 2.4.4: Giá trị UUCW chức cấp đơn chuyến Hàng nhập 58 Bảng 2.4.5: Giá trị trọng số hệ số kỹ thuật TCF 59 Bảng 2.4.6: Giá trị hệ số kỹ thuật dự án BVPROP 60 Bảng 2.4.7: Giá trị hệ số môi trường EF 60 Bảng 2.4.8: Giá trị hệ số môi trường EF dự án BVPROP 61 Bảng 2.5.1: Bảng so sánh bước ước lượng UCP Việt Nam UCP chuẩn 64 viii Bảng 2.5.2: UCP Việt Nam: bảng giá trị Use-case (nguồn công văn 3364) 65 Bảng 2.5.3: UCP Việt Nam: giá trị Use-case ( không phụ thuộc vào độ phức tạp) 65 Bảng 2.5.4: UCP Việt Nam: giá trị nội suy cho hệ số ES (nguồn công văn 3364) 66 Bảng 3.1: Tổng hợp đối chiếu kết lượng giá dự án 86 Bảng 3.2: Đối chiếu kết lượng giá dự án (sau cộng thêm 10% chi phí quản trị dự án 15% chi phí chất lượng dự án) 87 Bảng A.1: Checklist SLOC 98 91 Ngồi ra, sử dụng mơ hình COCOMOII, kết tùy biến ước lượng phạm vi (phần 5.3.2) thu mức độ tương ứng: Ước lượng lạc quan, bi quan gần giống Vì vậy, cải thiện kết ước lượng cách sử dụng phương pháp ước lượng PERT (phụ lục E) cho kết đầu mơ hình Ví dụ: kết ước lượng dự án BVPROP phần sau: Hình 4.3: Kết ước lượng dự án BVPROP COCOMOII Áp dụng phương pháp PERT cho ước lượng cơng sức: (453.3+4×566.6+708.3)/6 ≈ 571,3 (người-tháng) thời gian phát triển dự án: (29,5+4×31,6+33,9)/6 ≈26,61 (tháng) 4.3.2 Mơ hình FPA Để tính tốn cơng sức dự án, ta phải có số liệu hiệu suất cơng việc (người-giờ/FP) Do số liệu thống kê từ nhiều dự án thực khứ nên gây khó khăn cho cơng ty nhỏ thành lập Hơn nữa, cơng ty có mức tính hiệu suất khác dẫn đến khơng có thống kết định giá Trên giới, công ty phần mềm lớn thông qua tổ chức tin cậy để lấy số liệu ví dụ tổ chức ISBSG Tuy nhiên, số liệu hồn cảnh Việt Nam khơng phù hợp Vì vậy, giải vấn đề theo hai hướng sau: + Thành lập trung tâm liệu quốc gia để thu thông tin liệu dự án công ty để cung cấp số liệu chuẩn chung cho mơ hình lượng giá dự án (giống tổ chức ISBSG) + Nghiên cứu để xây dựng biểu thức tính hiệu suất cơng việc (người-giờ/FP) từ công thức Albrecht and Gaffney (biểu thức 2.3.7), Kemerer (biểu thức 2.3.8), Matson, Barnett Mellichamp (biểu thức 2.3.9) Ngồi ra, mơ hình FPA chưa đề cập đến ước lượng thời gian thực dự án, nên áp dụng phương pháp ước lượng thời gian dựa đề xuất Mcconnell [Mcconnell96]: Thời gian thực dự án = 3,0 × (số người-tháng)1/3 (tháng) Ví dụ: dự án BVPROP ước lượng công sức mô hình FPA phần 3.2.1 666,91 (người-tháng) Vậy thời gian thực = 3,0×(666,91)1/3 =26,21 (tháng) 92 Đây phương pháp sử dụng công ty CMCSoft để ước lượng thời gian dự án dựa vào mơ hình FPA Ngồi ra, phương pháp áp dụng cho mơ hình UCP để ước lượng thời gian cần thực dự án 4.3.3 Mô hình UCP Giá trị hệ số ER = 20 ÷ 28 người-giờ/UCP cao so với lực sản xuất phần mềm Việt Nam nên số liệu cần điều chỉnh cho phù hợp Số liệu phải điều chỉnh dựa liệu thống kê từ dự án thực trước Tại cơng ty CMCSoft, với sở liệu thống kê dự án thời gian 10 năm trở lại đây, giá trị ER điều chỉnh từ 20 ÷ 46 người-giờ/UCP với mức chia: - Nếu CE ≤ ER=20 người-giờ/UCP - Nếu CE = ER=28 người-giờ/UCP - Nếu CE = ER=32 người-giờ/UCP - Nếu CE = ER=46 người-giờ/UCP - Nếu CE > điều chỉnh lại thành viên đội dự án giá trị CE ≤ nhằm tránh rủi ro ảnh hưởng đến chất lượng tiến độ phát triển dự án Hiện nay, ta có bảng quy đổi UFP SLOC Vì vậy, ta nên nghiên cứu để đưa bảng quy đổi UUCP SLOC tương ứng cho loại ngơn ngữ lập trình Bảng quy đổi sở để sử dụng UCP mơ hình ước lượng kích thước đầu vào cho mơ hình COCOMOII Ý tưởng LalSingh nghiên cứu xây dựng công cụ RASS Estimate hoạt động dựa mô hình tổng hợp UCP COCOMOII [Rass09] Hiện nay, LalSingh thu thập liệu để xây dựng bảng quy đổi UUCP SLOC: Hình 4.4: Bảng quy đổi UUCP SLOC (Nguồn: RASS TOOLS 2009) 93 4.4 Đề xuất mơ hình tổng hợp Mơ hình tổng hợp đề xuất mơ hình kết hợp mơ hình COCOMOII, FPA UCP Trong đó, FPA UCP mơ hình ước lượng kích thước dự án cho tham số đầu vào mơ hình COCOMOII Việc kết hợp có ý nghĩa lớn cho mơ hình COCOMOII để kế thừa ưu điểm hai mơ hình FPA UCP + Đầu vào: u cầu người dùng + Xử lý đầu vào: qua mô hình FPA/mơ hình UCP để thu số điểm UFP/ UUCP Kết đưa qua bảng quy đổi sang SLOC để đưa vào mơ hình COCOMOII xử lý + Đầu ra: kết ước lượng mơ hình COCOMOII Các yêu cầu khách hàng phân tích View, Report Mơ hình COCOMOII Mơ hình FPA AFP UFP người-giờ /FP Cơng sức (người-giờ) Mơ hình Use-case SLOC SLOC Mơ hình UCP SLOC Bảng quy đổi UFP SLOC UUCP Bảng quy đổi UUCP SLOC Công sức (người-tháng) Thời gian (tháng) Hình 4.5: Mơ hình ước lượng tổng hợp Cơng sức (người-tháng) 94 KẾT LUẬN Luận văn trình bày mơ hình thực nghiệm lượng giá dự án phần mềm sử dụng phổ biến Sau nghiên cứu mơ hình thực nghiệm, luận văn tiến hành phân tích, so sánh mơ hình UCP Việt Nam với mơ hình UCP chuẩn để điểm điều chỉnh bất hợp lý mơ hình Sau đó, luận văn tiến hành kiểm nghiệm thực tế mơ hình lượng giá cho dự án thực nghiệm thực công ty CMCSoft Qua trình đối chiếu so sánh kết qủa thực nghiệm thu được, luận văn tiến hành đánh giá nhận xét đưa đề xuất cải tiến mơ hình cho phù hợp với bối cảnh ngành CNPM Việt Nam Hướng nghiên cứu luận văn hiệu chỉnh số cho mơ hình dựa phương pháp phân tích thống kê số liệu dự án thực công ty phần mềm Việt Nam Sử dụng phương pháp phân tích Bayes dự đốn hiệu suất cơng việc cho mơ hình FPA UCP Hướng phân tích Bayes phát triển dựa theo hướng nghiên cứu luận văn Tiến sĩ SEOKJUNYUN (đại học TexasA&M) [Yun03] Hơn nữa, thời gian tới, cần tiếp tục nghiên cứu hoàn thiện mơ hình ước lượng tổng hợp hồn thiện bảng quy đổi UUCP SLOC cho loại ngôn ngữ lập trình khác Vì đề tài rộng cần có nhiều nghiên cứu chuyên sâu Do thời gian luận văn có giới hạn nhiều nội dung luận văn chưa đề cập đến đề cập chưa sâu Vì vậy, tác giả luận văn mong nhận ý kiến đóng góp q báu từ phía thầy bạn để luận văn hoàn thiện 95 TÀI LIỆU THAM KHẢO Tài liệu sách tiếng Việt [uml2] Nguyễn Văn Ba (2005), Phát triển hệ thống hướng đối tượng với UML 2.0 C++, NXB ĐH Quốc Gia Hà Nội [gtqldapm01] Trương Mỹ Dung, Giáo trình quản lý dự án phần mềm, Khoa Công nghệ Thông tin, Đại học Khoa học tự nhiên – HCM [PPL2002] Ngô Trung Việt, Nguyễn Kim Ánh, Phạm Ngọc Khôi (2002), Phương pháp luận quản lý dự án CNTT, NXB Khoa học Kỹ thuật Tài liệu báo tạp chí tiếng Việt [cnpmvn09] Vũ Tiến Chung, Báo cáo vài khía cạnh tranh CNTT, CNPM Việt Nam 2009, Hội Tin Học TP HCM [Vinasa07] Trương Gia Bình (2007), Cơng nghiệp phần mềm CNTT Việt Nam thực trạng hội đột phá phát triển, VINASA [Vnnet01] Bùi Dũng, 05/2006, “Giá phần mềm: Tù mù khó định!”, VietNamNet, http://vietnamnet.vn/cntt/2006/05/571304/ [Vnnet02] Bùi Dũng, 05/2006, “Định giá phần mềm để không 'đục nước béo cị'?”, VietNamNet, http://vietnamnet.vn/cntt/2006/05/573591/ [Vnnet03] Nguyễn Bích, 05/2006, “Định giá phần mềm: Loay hoay đến bao giờ?”, VietNamNet, http://vietnamnet.vn/cntt/2006/05/566933/ [Pcworld06] Lệnh Lỗi Dương, 01/2006, “Dự án ứng dụng CNTT: Vì bế tắc?”, TGVT B - Giải pháp ứng dụng CNTT, VietNamNet, www.pcworld.com.vn [VNMed06] H.Sáu - L.Quang, 07/2006, “Pháp lý cho định giá phần mềm - sớm tốt”, VNMedia, www6.vnmedia.vn [Efinace08] Hà Tuấn, 08/2008, “Giải ngân cho CNTT: Bao hết gian nan, trắc trở?”, eFinance, www.taichinhdientu.vn [NDan09] Lâm Thảo , 07/2009, “Định giá phần mềm: nên từ đơn giản”, Báo Nhân Dân, http://www.nhandan.com.vn/tinbai/?top=41&sub=76&article=153266 [TBVTSG08] Theo TBVTSG , 08/2009, “Định giá phần mềm: tư cũ cho vấn đề mới?”, www.dinhgia.com.vn [Pcworld09] Phạm Trí Dũng , 09/2009, “Định giá phần mềm - Dễ hay khó?”, TGVT B Giải pháp ứng dụng CNTT, www.pcworld.com.vn [Vtv09] Theo vtv, 08/2009, “Định giá phần mềm: Càng gỡ rối?”, www.dinhgia.com.vn [Vnnet04] Hải Phương, 07/2009, “Định giá phần mềm: Chuyên gia kêu khó”, VietNamNet, http://vietnamnet.vn/cntt/2009/07/860232/ [Tcktpt06] Theo TCKTPT , 06/2006, “Một số vấn đề xác định giá thành giá bán sản phẩm phần mềm”, www.tapchiketoan.com [Vnnet05] Bùi Dũng, 06/2006, “Xây dựng Database - Lời giải cho định giá phần mềm?”, VietNamNet, http://vietnamnet.vn/cntt/2006/06/577844/ 96 Tài liệu tiếng Anh [cocomo81] Barry W Boehm (1981), Software Engineering Economics, Prentice Hall [cocomoII] Barry W Boehm (2000), Software Cost Estimation with Cocomo II, Prentice Hall [Itmesure2008] Manfred Bundschuh, Carol Dekkers, Bergisch Gladbach & Tampa (2008), The IT Measurement Compendium: Estimating and Benchmarking Success with Functional Size Measurement, Springer Publication [uml98] Murray Cantor (1998), Object-Oriented Project Management with UML, John Wiley & Sons [ibm09] Remi-Armand Collaris & Eef Dekker (2009), Software cost estimation using use case points: Getting use case transactions straight, IBM, www.ibm.com [GalEva06] Daniel D Galorath, Michael W Evans (2006), Software Sizing, Estimation, and Risk Management when Performance is Measured Performance Improves, Auerbach Publications [Paul2004] Paul Goodman (2004), Software Metrics: Best Practices for Successful IT Management, Rothstein Associates [ifpug4.1] International Function Point Users Group (IFPUG), Function Point Counting Practices Manual, Release 4.1 [ifpug4.2] International Function Point Users Group (IFPUG), Function Point Counting Practices Manual, Release 4.2 [jones2008] Capers Jones (2008), Applied Software Measurement McGraw-Hill [rup2003] Per Kroll, Philippe Kruchten (2003) Rational Unified Process Made Easy: A Practitioner's Guide to the RUP, Addison Wesley [rup2000]Philippe Kruchten (2000), The Rational Unified Process An Introduction, Second Edition, Addison Wesley [LaiBre06] Linda M Laird (2006), M Carol Brennan, Software Measurement and Estimation: A Practical Approach, A John Wiley & Sons, Inc Publication [Rass09] AshokKumar LalSingh (2009), Use Case Sizing based Estimation Model, Rass Tools, http://rasstools.com [FundFPA] David Longstreet, Fundamentals of Function Point Analysis, www.SoftwareMetrics.Com [hbookSCE], Karen Lum, Michael Bramble, Jairus Hihn, John Hackney,Mori Khorrami & Erik Monson (2003), Handbook for Software Cost Estimation, Jet Propulsion Laboratory, California Institute of Teachnology [Mcconnell96] Steve McConnell (1996), Rapid Development: Taming Wild Software Schedules, Microsoft Press [Pam03] Pam Morris (2003), Project tracking using functional size measurement, www.totalmetrics.com [Kathleen99] Kathleen Peters (1999), Software Project Estimation, Software Productivity Centre Inc (SPC), www.spc.ca 97 [Pressman2001] Roger S Pressman (2001), Software Engineering: A practitioner’s Approach, McGraw-Hill Companies [rup1998] Rational Software (1998), Rational Unified Process: Best Practices for Software Development Teams, www.ibm.com [Ribu] Kirsten Ribu(2001), Estimating Object-Oriented Software Projects with Use Cases, Master of ScienceThesis, Department of Informatics, University of Oslo [IntroFP] Carlos Colon Riollano, Introduction to Function Points, MBA, PMP, CPM, MSPC, Capella University, www.pmipr.org [appUC] Geri Schneider, Jason P Winters (2001) Applying User Cases: A practical Guide, Second Editor, John Wiley & Sons [SEPO99] Software Engineering Process Office - SEPO (1999), Software Estimation Process, California [Yun03] Seok Jun Yun (2003), Productivity prediction model based on bayesian analysis and productivity console, Doctorof philosophy, Texas A&M University Website: [fpafund] http://www.softwaremetrics.com/fpafund.htm [ifpugroup] http://www.ifpug.org [isbsgroup] www.isbsg.org [chao2009] www.standishgroup.com [wiki] http://en.wikipedia.org/wiki/Function_point_analysis [iso] www.iso.org [odu] http://www.cs.odu.edu/ 98 PHỤ LỤC A - CHECKLIST SLOC Bảng A.1: Checklist SLOC (Nguồn Boehm 2000) 99 PHỤ LỤC B – BẢNG QUY ĐỔI GIỮA FP VÀ SLOC Vì cơng việc đếm SLOC vừa phức tạp tốn nhiều chi phí hướng tiếp cận cho ước lượng kích thước dự án sử dụng phương pháp tính số điểm chức chưa hiệu chỉnh UFP phần 2.3.2 Bước sử dụng bảng chuyển đổi UFP sang SLOC Bảng B.1: Chuyển đổi SLOC UFP (Nguồn Boehm 2000) 100 PHỤ LỤC C - CÁC CHUẨN ISO CỦA MƠ HÌNH FPA Hiện có chuẩn ISO cho mơ hình phân tích điểm chức FPA Các chuẩn công ty tổ chức nghiên cứu FP đưa quy chuẩn cách thức tính tốn kích thức dự án phần mềm Đó chuẩn: ISO/IEC 19761, ISO/IEC 20926, ISO/IEC 20968, ISO/IEC 24570, ISO/IEC 29881 ISO/IEC 14143 [iso] - ISO/IEC 14143 chuẩn nhóm WG12 (Working Group 12) ISO/IEC (International Organization for Standardization / International Electrotechnical Commission) đưa từ năm 1997 [GalEva06] Đây chuẩn tính tốn kích thước phần mềm dựa vào điểm chức Chuẩn khắc phục khuyết điểm phương pháp ước lượng sớm, cách tập trung vào đo kích thước yêu cầu người dùng - ISO/IEC 19761 hay phương pháp COSMIC-FFP, chuẩn tính điểm chức COSMIC (Common Software Measurement International Consortium) đưa từ năm 1999 để tính tốn kích thước dự án phần mềm dựa vào điểm chức [GalEva06] Chuẩn áp dụng cho loại dự án ứng dụng: quản trị doanh nghiệp thời gian thực - ISO/IEC 20926 tổ chức IFPUG đưa 2003 Nó tài liệu hướng dẫn tính tốn điểm chức version 4.1 Trong phần trình bày mơ hình FPA luận văn dựa chủ yếu vào tài liệu version 4.1 IFPUG Chuẩn mô tả rõ ràng chi tiết cách xác định tính điểm chức cho dự án phần mềm - ISO/IEC 20968 chuẩn MkII FPA đưa vào 2002 Chuẩn áp dụng tính kích thức chức cho dự án phần mềm từ phần mềm địi hỏi tính tốn phức tạp đến phần mềm thời gian thực Hơn nữa, phương pháp không phục thuộc vào phương pháp quản lý phát triển dự án Nó tiến hành đo yêu cầu chức nghiệp vụ phân tích mà khơng quan tâm đến trình thực yêu cầu - SO/IEC 24570 NESMA đưa vào 2005 Cũng giống chuẩn trên, chuẩn đưa phương pháp để tính tốn kích thước dự án phần mềm dựa chức Đồng thời đưa hướng dẫn cụ thể để xác định thành phần để tính kích thước chức - ISO/IEC 29881 FiSMA đưa năm 2008 Chuẩn dựa cở sở đánh giá yêu cầu chức người dùng, đo kích thước chức từ góc độ người dùng 101 PHỤ LỤC D – QUY TRÌNH RUP RUP gì? - RUP (Rational Unified Process) quy trình phát triển phần mềm thống đề xuất Rational Software (nay thuộc IBM Rational) Nó cung cấp phương pháp, nguyên tắc phân công nhiệm vụ trách nhiệm tổ chức phát triển phần mềm Nó cho sản phẩm phần mềm có chất lượng cao, đảm bảo phù hợp ước lượng thời gian kinh phí với khách hàng [rup2000] - Là quy trình phát triển theo vịng lặp phát triển từ mơ hình xoắn ốc (spiral model) Barry Boehm RUP áp dụng cho dự án khác khối lượng, độ phức tạp môi trường phát triển RUP hỗ trợ hoạt động nhóm, phân chia cơng việc cho thành viên nhóm, giai đoạn khác trình phát triển phần mềm [rup1998] - RUP sử dụng hệ thống ký hiệu trực quan UML RUP phát triển song song với UML Quy trình RUP Hình E.1: Biểu đồ mơ tả quy trình RUP - Nhìn vào biểu đồ ta thấy cấu trúc quy trình RUP, thể theo hai chiều [rup2003]: + Trục hoành: chiều biểu diễn thời gian vịng đời quy trình: thể mặt động chu kì (cycles), biểu diễn dạng giai đoạn, vòng lặp (interations) mốc thời gian (milestones) + Trục tung: chiều biểu diễn pha quy trình, cơng việc nhóm lại cách logic theo chất chúng - Các giai đoạn quy trình RUP: 102 + Giai đoạn khởi đầu (Inception): mục tiêu giai đoạn Khởi đầu chuẩn bị thiết lập môi trường hoạt động cho dự án Giai đoạn đóng vai trò quan trọng dự án phát triển mới, nghiệp vụ quan trọng rủi ro yêu cầu xác định xem xét trước dự án thực Trong dự án bảo trì, nâng cấp sản phẩm, giai đoạn sơ lược + Giai đoạn phác thảo (Elaboration): mục tiêu phân tích vấn đề nghiệp vụ, xác định kiến trúc hợp lý, xây dựng kế hoạch cho dự án, giới hạn yếu tố rủi ro cao Đưa định mặt kiến trúc tồn hệ thống, đồng thời mơ tả chi tiết yêu cầu hệ thống +Giai đoạn xây dựng (Contruction): Mục tiêu giai đoạn đưa yêu cầu thành phần mềm hoàn thiện việc phát triển hệ thống dựa vào kiến trúc thiết lập Giai đoạn xây dựng nằm trình sản xuất, trình sản xuất diễn quản lý nguồn lực, kiểm soát hoạt động để tối ưu hóa chi phí, thời gian chất lượng + Giai đoạn chuyển giao (Deployment): mục tiêu giai đoạn chuyển giao đảm bảo phần mềm sẵn sàng để chuyển tới người dùng cuối Ở giai đoạn này, thông tin phản hồi người dùng thường tập trung vào việc điều chỉnh sản phẩm, cấu hình, cài đặt vấn đề độ ổn định sản phẩm Quy trình RUP xây dựng sở q trình lặp pha hoạt động: mơ hình hóa yêu cầu nghiệp vụ (business modeling), tiếp nhận yêu cầu (requirement), phân tích thiết kế (anlysis & design), thực thi (implementation), kiểm thử (test) triển khai (deployment) với mức độ lặp khơng giống nhau, tùy theo vị trí cụ thể vịng phát triển Q trình lặp thực chu trình phát triển từ ý tưởng ban đầu có sản phẩm phần mềm hồn thiện, ổn định có chất lượng chuyển giao tới người dùng cuối Việc sử dụng quy trình lặp mang lại lợi ích thiết thực sau [rup2000]: - Các rủi ro sớm phát giảm nhẹ tích hợp hệ thống xây dựng dần dự án - Các thay đổi quản lý cách tốt Cho phép thay đổi yêu cầu, phương thức phát triển cho thích hợp - Có tính kế thừa mức cao, tăng khả tái sử dụng - Nâng cao chất lượng sản phẩm 103 PHỤ LỤC F – MỘT SỐ PHƯƠNG PHÁP ƯỚC LƯỢNG BỔ TRỢ Phương pháp WBS Là phương pháp chia nhỏ công việc dự án thành công việc nhỏ theo cấu trúc phân cấp công việc WBS (Work Breakdown Structure), ước lượng cơng việc nhỏ cách riêng biệt sau cộng dồn lại để đưa số tổng toàn dự án Khi phân rã nhóm cơng việc mức WBS sử dụng tiêu chí sau: - Dựa vào kiến trúc hệ thống (theo phân chia Use-Case, Logical, Process, Deployment, Implementation Views) - Dựa vào qui trình theo qui định cơng ty (Ví dụ: Quản lý cấu hình, xác định u cầu, lập trình, kiểm tra, quản trị dự án…) - Dựa vào giai đoạn, điểm mốc chu trình dự án (Ví dụ: xác định yêu cầu, phát triển, triển khai,… điểm mốc làm việc với khách hàng, lần release) - Dựa vào vị trí (cho dự án triển khai) - Các tiêu chí khác tùy theo người phân rã công việc Mức độ chi tiết cơng việc phụ thuộc vào độ xác cần thiết ước lượng công sức khoảng thời gian thực Nói chung chi tiết mức xác cao tốt nên chia nhỏ công việc đến mức nhỏ để không người-ngày (nếu có thể) [EstCMC] Phương pháp Wideband Delphi Phương pháp Delphi phương pháp ước lượng chuyên gia Nguyên tắc phương pháp là: nhiều ước lượng tốt ước lượng Delphi sử dụng nhóm nhỏ chuyên gia để ước lượng riêng biệt dự án qua nhiều vòng lặp để đạt đến kết cuối [LaiBre06] Phương pháp Wideband Delphi: phương pháp Delphi cải tiến với nhiều tương tác thành viên đội ước lượng dự án [EstCMC] Phương pháp PERT (Program Evaluation and Review Technique) PERT cách thức ước lượng sử dụng nghiên cứu phát triển mơi trường với mục đích ước lượng khoảng thời gian thực công việc Tuy nhiên, sử dụng phương pháp để ước lượng giá trị khác độ lớn cơng việc, dự án chi phí tài dự án [PPL2002] Phương pháp PERT yêu cầu giá trị mức độ ước lượng khác nhau: lạc quan MO (Optimistic), bi quan MP (Pessimistic) gần giống ML (Most Like), tổng hợp lại thành ước lượng trông đợi ET (Expected): ET = (MO + x ML + MP) / 104 TÓM TẮT LUẬN VĂN ƯỚC LƯỢNG GIÁ THÀNH PHẦN MỀM: KHẢO SÁT CÁC MƠ HÌNH THỰC NGHIỆM PHỔ BIẾN VÀ PHÂN TÍCH KHẢ NĂNG ỨNG DỤNG TẠI VIỆT NAM Học viên thực : Bùi Ngọc Hoàng Người hướng khoa học : TS Nguyễn Khanh Văn Lượng giá (ước lượng giá thành) phần mềm giai đoạn quan trọng trình quản trị dự án phần mềm Mục tiêu lượng giá để xác định quy mô dự án, công sức, thời gian ngân sách cần thiết để thực dự án Lượng giá xác khả thành cơng dự án lớn Luận văn tiến hành tìm hiểu nêu tác động lượng giá đến tiến độ triển khai dự án CNTT Việt Nam Để giải vấn đề này, đơn vị ứng dụng CNTT công ty phần mềm Việt Nam có chế lượng giá phần mềm chung cho định giá ký hợp đồng giải ngân cho dự án Nhận thấy vai trò quan trọng định giá phần mềm phát triển ngành CNTT nói chung ngành Cơng nghệ Phần mềm nói riêng, đề tài tập trung vào nghiên cứu, tìm hiểu mơ hình thực nghiệm định giá phần mềm Trong đó, tác giả tập trung vào mơ hình thực nghiệm chính: COCOMO, COCOMOII, FPA UCP Qua đó, giúp cho người đọc cá nhân người viết hiểu chi tiết mơ hình ước lượng sử dụng giới khả vận dụng giải toán lượng giá phần mềm cho Việt Nam Thông qua nghiên cứu mơ hình thực nghiệm, luận văn tiến hành phân tích tìm hiểu điểm bất cập khơng phù hợp mơ hình UCP Bộ TT&TT đưa Sau đó, luận văn tiến hành kiểm nghiệm thực tế mơ hình lượng giá cho dự án thực nghiệm thực công ty CMCSoft Dựa sở nghiên cứu vấn đề, với việc đối chiếu so sánh kết qủa thực nghiệm thu được, luận văn đưa nhận xét đánh giá đề xuất cải tiến phù hợp với ngành Công nghiệp Phần mềm Việt Nam Cuối cùng, luận văn đưa định hướng phát triển đề tài thời gian tới Từ khóa: ước lượng phần mềm, ước lượng giá thành, định giá phần mềm, mơ hình chi phí phần mềm, phương pháp ước lượng phần mềm Hoàn Hoàntấttất ước ướclượng lượng (Dự án án phát nângtriển) cấp) 105 ABSTRACT SOFTWARE COST ESTIMATION: RESEARCH SOME POPULAR MODELS AND ANALYSE ABILITY TO APPLY THESE MODELS IN VIETNAM Student : Bùi Ngọc Hoàng Thesis director : Phd Nguyen Khanh Van Software Cost Estimation is one of the import phase in the process of software project management Cost estimation objective is to determine project size, effort, schedule and budget for project development The more estimation result is accurate, the more success project ability is growing The thesis research and present some affect of cost estimation in progress of Viet Nam software project development To solve this problem, software application organizations and software companies should have a general cost estimation model to approve the contract and disbursement of project Realizing the important role of the software cost estimation for the development of IT technology, especial software engineering, the thesis focuses on research, find out the experimental models in software cost estimation In particular, the authors focus on four main experimental models: COCOMO, COCOMOII, FPA and UCP Thereby, it will help the reader and the writer can understand more details about the estimation models have been used on the world and the ability to manipulate solution of problems of cost software for Vietnam Through the study of experimental models, the thesis analyses and finds out the inappropriate point in the UCP model of MIC Then, thesis has conducted testing three models of practice for three experimental projects have been implemented in the CMCSoft Based on these research models and the comparison of cost estimation results of these projects, the thesis gives the comments and proposes improvements in accordance with Vietnam industry software Finally, the thesis sends out development orientations of this topic in the future Keyword: Software Estimation, Cost Estimation, Estimate Software Cost, Software Cost model, Software Estimation Method ... GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI BÙI NGỌC HOÀNG ƯỚC LƯỢNG GIÁ THÀNH PHẦN MỀM: KHẢO SÁT CÁC MƠ HÌNH PHỔ BIẾN VÀ PHÂN TÍCH KHẢ NĂNG ỨNG DỤNG TẠI VIỆT... ngành CNPM Việt Nam (mơ hình UCP Việt Nam) Đây mơ hình lượng giá phần mềm “hiện đại” sử dụng phổ biến thời gian gần Tuy nhiên, việc định sử dụng mô hình UCP cho lượng giá dự án phần mềm lại gây... viết hiểu chi tiết mơ hình ước lượng sử dụng giới khả vận dụng giải toán lượng giá phần mềm cho Việt Nam Mặt khác, để lượng giá dự án phần mềm không sử dụng phương pháp, mơ hình (như cơng văn hướng