1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Hệ thống thông tin quản lý: Áp dụng mô hình Cocomo II để ước lượng chi phí của dự án phần mềm

116 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Áp dụng mô hình COCOMO II để ước lượng chi phí của dự án phần mềm
Tác giả Khưu Quốc Bảo
Người hướng dẫn TS Nguyễn Hải Quân
Trường học Đại học Quốc gia TP. HCM
Chuyên ngành Hệ thống thông tin quản lý
Thể loại Luận văn thạc sĩ
Năm xuất bản 2012
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 116
Dung lượng 2,13 MB

Cấu trúc

  • CHƯƠNG 1: MỞ ĐẦU (18)
    • 1.1. Hình thành vấn đề (18)
    • 1.2. Lý do chọn đề tài (0)
    • 1.3. Những câu hỏi nghiên cứu (21)
    • 1.4. Phạm vi nghiên cứu (21)
      • 1.4.1. Đối tượng nghiên cứu (21)
      • 1.4.2. Không gian và thời gian thực hiện (21)
    • 1.5. Mục tiêu đề tài (21)
    • 1.6. Ý nghĩa đề tài (22)
    • 1.7. Tóm tắt chương một (23)
  • Chương 2: TỔNG QUAN CỞ SỞ LÝ THUYẾT (24)
    • 2.1. Phần mềm (24)
    • 2.2. Chi phí của dự án phần mềm (24)
      • 2.2.1. Chi phí (24)
      • 2.2.2. Quản lý chi phí dự án (24)
      • 2.2.3. Ước lượng chi phí dự án (24)
    • 2.3. Quản lý dự án phần mềm (24)
    • 2.4. Quy trình quản lý chi phí dự án (25)
    • 2.5. Ước lượng chi phí phần mềm (26)
      • 2.6.2. Phương pháp ước lượng từ trên xuống (28)
      • 2.6.3. Phương pháp ước lượng từ dưới lên (29)
      • 2.6.4. Phương pháp giá để thắng (29)
      • 2.6.5. Phương pháp Parkinson (30)
      • 2.6.6. Phương pháp ước lượng tương đương (30)
      • 2.6.7. Phương pháp ước lượng bằng công thức (31)
      • 2.6.8. Tổng kết ưu khuyết điểm của các phương pháp (32)
    • 2.7. Các bước ước lượng chi phí phần mềm (33)
    • 2.8. Số lượng dòng lệnh (36)
      • 2.8.1. Các phương pháp đếm số lượng dòng lệnh (36)
    • 2.9. Phân tích các điểm chức năng (37)
      • 2.9.1. Mục tiêu (38)
      • 2.9.2. Lợi ích (38)
      • 2.9.3. Quy trình (38)
      • 2.9.4. Phân loại (39)
    • 2.10. Phương pháp đổi điểm chức năng thành số lượng dòng lệnh (40)
    • 2.11. Khái niệm về mô hình COCOMO II (44)
      • 2.11.1. Công thức tính số người theo làm việc tháng (47)
      • 2.11.2. Các yếu tố quyết định quy mô (48)
      • 2.11.3. Các yếu tố điều khiển chi phí (59)
    • 2.12. Tóm tắt chương hai (67)
  • CHƯƠNG 3: PHƯƠNG PHÁP NGHIÊN CỨU (69)
    • 3.1. Quy trình nghiên cứu (69)
    • 3.2. Phương pháp nghiên cứu (69)
    • 3.3. Công cụ đếm số dòng lệnh (70)
    • 3.4. Phần mềm tính toán cho COCOMO II (71)
    • 4.1. Dự án StarSequel (74)
      • 4.1.1. Giới thiệu (74)
      • 4.1.2. Thông tin dự án (74)
      • 4.1.3. Đánh giá kết quả ước lượng (76)
    • 4.2. Dự án Equator (76)
      • 4.2.1. Giới thiệu (76)
      • 4.2.2. Thông tin dự án (77)
      • 4.2.3. Đánh giá kết quả ước lượng (79)
    • 4.3. Dự án Hawa (79)
      • 4.3.1. Giới thiệu (79)
      • 4.3.2. Thông tin dự án (79)
      • 4.3.3. Đánh giá kết quả ước lượng (81)
    • 4.4. Dự án Plevo (81)
      • 4.4.1. Giới thiệu (81)
      • 4.4.2. Thông tin dự án (82)
      • 4.4.3. Đánh giá kết quả ước lượng (84)
    • 4.5. Dự án Cartridge World (84)
      • 4.5.1. Giới thiệu (84)
      • 4.5.2. Thông tin dự án (84)
      • 4.5.3. Đánh giá kết quả ước lượng (86)
    • 4.6. Dự án GVillage (86)
      • 4.6.1. Giới thiệu (86)
      • 4.6.2. Thông tin dự án (87)
      • 4.6.3. Đánh giá kết quả ước lượng (89)
    • 4.7. Dự án Consultant Platform (89)
      • 4.7.1. Giới thiệu (89)
    • 4.8. Dự án Hr-Solution-Vn (92)
      • 4.8.1. Giới thiệu (92)
      • 4.8.2. Thông tin dự án (92)
      • 4.8.3. Đánh giá kết quả ước lượng (94)
    • 4.9. Tóm tắt chương bốn (94)
  • CHƯƠNG 5: KẾT LUẬN VÀ KIẾN NGHỊ (94)
    • 5.1. Kết quả khảo sát (95)
      • 5.1.1. Tìm độ sai lệch khi ước lượng (95)
      • 5.1.2. Khả năng ước lượng sai với một độ sai lệch cho trước (97)
      • 5.1.3. Hạn chế (97)
    • 5.2. Các yếu tố điều chỉnh chi phí quan trọng (97)
    • 5.3. Các điểm hạn chế của mô hình COCOMO II (98)
      • 5.3.1. Hạn chế về khách hàng (98)
      • 5.3.2. Hạn chế về quy trình (98)
      • 5.3.3. Hạn chế về rủi ro (98)
      • 5.3.4. Hạn chế về đánh giá trình độ (98)
    • 5.4. Cách khắc phục các hạn chế của COCOMO II đề nghị (99)
      • 5.4.1. Khắc phục hạn chế về khách hàng (99)
      • 5.4.2. Khắc phục hạn chế về quy trình (99)
      • 5.4.3. Khắc phục hạn chế về rủi ro (99)
      • 5.4.4. Khắc phục hạn chế về đánh giá trình độ (100)
    • 5.5. Hạn chế của đề tài và cách khắc phục (100)
    • 5.6. Hướng phát triển tiếp theo của đề tài (100)
    • 5.7. Tóm tắt chương năm (100)
  • TÀI LIỆU THAM KHẢO (61)
  • PHỤ LỤC (105)

Nội dung

Thông qua việc khảo sát tại công ty phần mềm được chọn trước để kiểm tra độ chính xác của mô hình COCOMO II đồng thời xác định một số các yếu tố có tầm ảnh hưởng quan trọng đến ước lượng

TỔNG QUAN CỞ SỞ LÝ THUYẾT

Phần mềm

Phần mềm hay còn gọi là phần mềm máy tính là một tập hợp những câu lệnh hoặc chỉ thị được viết bằng một hoặc nhiều ngôn ngữ lập trình theo một trật tự xác định, và các dữ liệu hay tài liệu liên quan nhằm tự động thực hiện một số nhiệm vụ hay chức năng hoặc giải quyết một vấn đề cụ thể nào đó.

Chi phí của dự án phần mềm

Là lượng tài nguyên phải tiêu tốn để đạt được một mục tiêu cụ thể rõ ràng nào đó

Chi phí thường được quy ra thành tiền

2.2.2 Quản lý chi phí dự án

Là quy trình yêu cầu đảm bảo dự án được hoàn thành trong giới hạn chi phí đã được dự tính trước

2.2.3 Ước lượng chi phí dự án

Là quy trình ước đoán tổng chi phí thực hiện của dự án trước khi dự án bắt đầu được thực hiện.

Quản lý dự án phần mềm

Quản lý dự án phần mềm là tập hợp các công việc được thực hiện bởi một tập thể (có thể có chuyên môn khác nhau, thực hiện công việc khác nhau, thời gian tham gia dự án khác nhau) nhằm đạt được một kết quả như dự kiến, trong thời gian dự kiến, với một kinh phí dự kiến Trong thuật ngữ của chuyên ngành Công nghệ phần mềm, Quản lý dự án phần mềm là các hoạt động trong lập kế hoạch, giám sát và điều khiển tài nguyên dự án (ví dụ như kinh phí, con người), thời gian thực hiện, các rủi ro và quy trình thực hiện dự án nhằm đảm bảo thành công cho dự án Quản lý dự án phần mềm cần đảm bảo cân bằng giữa ba yếu tố: thời gian, tài nguyên và chi phí, ba yếu tố này thường được gọi là tam giác dự án

Hình 1.2: Tam giác dự án

Quy trình quản lý chi phí dự án

Quản lý chi phí dự án bao gồm những quy trình bảo đảm cho dự án được hoàn tất trong sự cho phép của ngân sách Bao gồm:

 Lập kế hoạch: xác định nguồn tài nguyên cần thiết và số lượng cần thiết để thực hiện dự án

 Ước lượng các chi phí: từ số lượng nguồn tài nguyên cần thiết trên nhân với giá thành trên một đơn vị ta có thể ước tính chi phí cần thiết

 Dự toán chi phí: phân bổ chi phí ước từng danh mục

 Kiểm soát và điều chỉnh chi phí: điều chỉnh thay đổi chi phí của dự án khi có biến cố bất ngờ xảy ra

 Kết thúc dự án: tổng kết lại toàn bộ chi phí của dự án

Hình 1.3: Quy trình phát triển phần mềm

Lập kế hoặch Ước lượng các chi phí

Kiểm soát và đều chỉnh

Ước lượng chi phí phần mềm

Dự toán chi phí phần mềm là quá trình dự đoán nỗ lực cần thiết để phát triển một hệ thống phần mềm Đây là một trong những việc mà bất cứ công ty nào cũng phải thực hiện khi muốn nhận một dự án từ khách hàng

Hình 1.4: Sự chệnh lệch giữa khối lượng và chi phí giữa ước lượng và thực tế

(Nguồn: COCOMO II Model Definition Manual (Barry Boehm - năm 2000))

Sơ đồ của Barry Boehm ở trên cho thấy sự sai lệch giữa kết quả của việc ước lượng và thực tế.Ở giai đoạn bắt đầu thì những yêu cầu thực sự của phần mềm từ khách hàng chưa rõ ràng dẫn đến kết quả ước lượng và thực tế có thể khác nhau rất xa

Càng về các giai đoạn sau thì sự ước lượng ngày càng chính xác hơn do các yêu cầu của khách hàng đã trở nên rõ ràng hơn nhiều

2.6 Các phương pháp ước lượng chi phí phổ biến

Trải qua nhiều năm phát triển cùng ngành công nghiệp phần mềm, có rất nhiều phương pháp ước lượng chi phí phần mềm được sử dụng cho đến ngày nay Mỗi phương pháp đều có ưu và nhược điểm riêng nên thường được sử dụng chung với nhau để có thể tận dụng ưu điểm và giảm bớt các khuyết điểm

2.6.1 Phương pháp ước lượng chuyên gia

Phương pháp ước lượng chuyên gia (Expert judgment method) là một kĩ thuật sử dụng kinh nghiệm của một chuyên gia hoặc một nhóm chuyên gia để ước lượng chi phí của dự án sử dụng kinh nghiệm có sẵn của họ Phương pháp thường được dùng là kĩ thuật Delphi để thu thập ý kiến của những chuyên gia trong dự án hoặc những người có kiến thúc chuyên môn tốt

Các bước sử dụng phương pháp Delphi:

1 Một người gọi là điều phối viên sẽ có vai trò trình bày với tất cả các chuyên gia trong nhóm từng người một về một vấn đề cần ước lượng và đưa ra một mẫu điền kết quả ước lượng đã soạn sẵn

2 Người đó sẽ tổ chức một cuộc họp nhóm, trong đó các chuyên gia sẽ thảo luận về vấn đề ước lượng với những người khác

3 Các chuyên gia sẽ điền kết quả ước lượng theo ý mình vào các phiếu kết quả ước luợng đã được phát trước đó

4 Điều phối viên sẽ tổng hợp lại các kết quả ước lượng của các chuyên gia

5 Điều phối viên sau đó sẽ tổ chức một cuộc họp với các chuyên gia để tìm hiểu lý do nếu như có những chuyên gia có ước lượng quá cao hoặc quá thấp so với những người khác Kết quả cuối cùng là kết quả được nhất trí trong cuộc họp này Ưu điểm:

 Tận dụng được kinh nghiệm của những người đã tham gia vào nhiều dự án có chức năng tương tự trong quá khứ

 Các chuyên gia có thể ước đóan được những tác động gây ra do việc ứng dụng những công nghệ hay kĩ thuật mới trong tương lai

 Việc sử dụng bảng câu hỏi và lấy kết quả có thể thực hiện thông qua email và các công cụ đàm thoại qua Internet giúp lấy được ý kiến của nhiều chuyên gia ở xa

 Việc tạo ra bảng câu hỏi để các chuyên gia điền vào rất khó khăn và tốn nhiều thời gian để thực hiện

Một số chuyên gia trong một số trường hợp có thể có những thành kiến hoặc kinh nghiệm chưa chính xác, phụ thuộc vào kinh nghiệm thực tế của họ trong quá khứ về vấn đề đó.

2.6.2 Phương pháp ước lượng từ trên xuống

Phương pháp ước lượng từ trên xuống (Top-down method) còn được gọi là mô hình vĩ mô (Macro Model) Khi sử dụng phương pháp này, chúng ta cần phải có ước lượng một mức chi phí lớn nhất có mà công ty có thể chấp nhận để thực hiện dự án đó Sau đó, từ chi phí lớn nhất đó có thể phân chia thành những phần chi phí nhỏ ứng với những phần nhỏ hơn trong dự án Phương pháp này thường được sử dụng khi không có nhiều thông tin về dự án, hoặc các thông tin về dự án chưa được chắc chắn Phương pháp này thường sử dụng chi phí thực tế hoặc các dự án tương tự trước đó để làm nền tảng cơ bản cho ước tính mới Ưu điểm:

 Thích hợp để ước lượng khi những thông tin về dự án không đầy đủ và không thể dùng các phương pháp khác vốn đòi hỏi nhiều yếu tố đầu vào

 Đây là một phương pháp nhanh và dễ thực hiện do không đòi hỏi phải thu thập nhiều thông tin về dự án trước khi thực hiện ước lượng

 Hầu hết các dự án, đặc biệt là các dự án về lĩnh vực phần mềm thường có đặc điểm chung là thay đổi nhanh về mặt công nghệ và yêu cầu của khách hàng nên phương pháp này không đáp ứng tốt

 Do không cần nhiều các yếu tố đầu vào khi tiến hành ước lương, chỉ tập trung vào những phần lớn mà bỏ qua những phần nhỏ nên có thể làm cho ước lượng có độ chính xác không cao

2.6.3 Phương pháp ước lượng từ dưới lên

Phương pháp ước lượng từ dưới lên (Bottom-up method) này có cách thực hiện trái ngược với phương pháp ước lượng từ trên xuống (Top-down method) Phương pháp này ước lượng chi phí của dự án phần mềm bằng cách ước lượng chi phí của từng phần trong dự án rồi sau đó tính tổng của các thành phần đó để ra chi phí ước lượng cho toàn bộ dự án Ưu điểm:

 Cho phép ước lượng từng thành phần nhỏ nhất của dự án, do đó làm giảm đi độ sai lệch do ước lượng một thành phần nhỏ thì chính xác hơn là ước lượng các thành phần lớn

Phương pháp này chú trọng giải quyết từng phần nhỏ lẻ mà chưa tính đến toàn hệ thống, tức là chưa có sự phối hợp giữa các phần nhỏ để tạo thành một hệ thống hoàn chỉnh khi vận hành.

 Các thông tin chi tiết có thể chưa được ngay ban đầu nên làm việc ước lượng thiếu chính xác

 Việc ước lượng nhiều thành phần nhỏ làm tốn nhiều thời gian ước lượng

 Nếu có một giới hạn nếu thời gian và ngân sách bị giới hạn trước.

2.6.4 Phương pháp giá để thắng

Các bước ước lượng chi phí phần mềm

Để có thể ước lượng chi phí của một sản phẩm phần mềm một cách dễ dàng chính xác ta có thể chia quá trình ước lượng này ra làm mười bước nhỏ hơn Ở mỗi bước cần xác định rõ những gì cần làm, ai có trách nhiệm thực hiện việc đó và kết quả đạt được sẽ là gì Các bước được mô tả lần lượt trong bảng bên dưới

Bước Mô tả Người thực hiện Kết quả

Bước 1: Thu thập và phân tích các yêu cầu về phần mềm

Tiếp nhận các yêu cầu từ phía khách hàng, phân tích tính khả thi, thiết kế kiến trúc hệ thống và những yêu cầu về lập trình

Quản lý dự án, các trưởng nhóm lập trình, những người phân tích yêu cầu

Các yêu cầu bắt buộc phải thực hiện theo hợp đồng

Cách thức và thời gian thực hiện

Kiến trúc của hệ thống

Cách thức tiến hành thực hiện

Bước 2: Xác định và phân chia các yêu cầu của dự án thành các phần công việc nhỏ hơn

Chia các yêu cầu lớn thành các yêu cầu nhỏ hơn để có thể thực hiện đồng thời hoặc theo thứ tự nhất định Đánh giá các nguy

Quản lý dự án, các trưởng nhóm lập trình

Sử dụng sơ đồ chia nhỏ công việc

Danh sách các nguy cơ có thể xảy ra của dự án cơ có thể xảy ra khi thực hiện

Bước 3: Ước lượng khối lượng của dự án

Sử dụng phương pháp tính điểm chức năng Function Point

Sử dụng phương pháp đếm số lượng mã dòng lệnh (SLOC)

Quản lý dự án, những chuyên gia có kinh nghiệm ước lượng

Sử dụng các phương thức ước lượng ở cấp thấp

Ra được ước lượng cơ bản dựa trên số lượng dòng lệnh

Bước 4: Ước lượng công sức cần thiết phải bỏ ra để hoành thành dự án

Sử dụng số lượng dòng mã lệnh để tính nỗ lực cần thiết phải có để hoàn thành dự án đúng thời hạn

Quản lý dự án, những chuyên gia có kinh nghiệm ước lượng

Sử dụng các phương thức chuyển đổi

Chỉ có thể ước lượng ở mức độ chính xác thấp

Phải đặt ra nhiều giả thuyết do chưa có nhiều thông tin

Bước 5: Lên kế hoạch để thực hiện

Sử dụng ước lượng về nỗ lực cần thiết để hoàn thành dự án từ đó ước tính lượng thời gian và nhân lực để có thể hoàn thành dự án

Quản lý dự án, những chuyên gia có kinh nghiệm ước lượng Ước lượng phải đảm bảo hoàn thành tất cả các yêu cầu của khách hàng Đảm bảo các phiên bản được giao cho khách hàng đúng thời hạn để khách hàng có thể kiểm tra Điều chỉnh lại các ước lượng nếu cần thiết

Bước 6: Ước lượng tổng chi phí cần thiết Ước lượng tổng chi phí cần thiết để hoàn thành dự án

Quản lý dự án, những chuyên gia có kinh nghiệm ước lượng

Bản chi tiết tổng hợp chi phí cần thiết

Bước 7: Xác định Tìm ra các yếu tố Quản lý dự án, Bản mô tả chi tiết các yếu tố nguy cơ gây ảnh hưởng đế dự án nguy cơ có thể làm ảnh hưởng đến dự án Xác định nguyên nhân và các phòng tránh những chuyên gia có kinh nghiệm ước lượng và những người đầu tư các yếu tố nguy cơ

Phương pháp phòng tránh Điều chỉnh lại ước lượng nếu cần thiết để làm tăng độ chính xác của ước lượng

Bước 8: Điều chỉnh lại ước lượng dựa trên chi phí và thời gian

Kiểm tra lại tất cả các ước lượng có hợp lý về thời gian cũng như chi phí hay chưa nếu không thì cần phải điều chỉnh lại cho hợp lý

Quản lý dự án, những chuyên gia có kinh nghiệm ước lượng và những người đầu tư

Giải quyết và điều chỉnh lại các ước lượng sai

Bước 9: Chấp thuận ước lượng giữa các bên

Các ước lượng trên chuyển thành các bảng kế hoạch và được sự đồng ý nhất trí cao giữa các bên

Quản lý dự án, những chuyên gia có kinh nghiệm ước lượng và những người đầu tư

Kí kết hợp đồng của dự án

Bước 10: Tiến hành thực hiện dự án

Việc tiến hành dự án cần luôn đi đôi với quá trình kiểm tra, theo dõi và báo cáo thường xuyên Điều này giúp các bên liên quan đánh giá được tiến độ, kết quả và những vấn đề phát sinh trong quá trình thực hiện Từ đó, có thể kịp thời thực hiện những điều chỉnh cần thiết để đảm bảo dự án được hoàn thành đúng mục tiêu, chất lượng và hiệu quả.

Quản lý dự án, những chuyên gia có kinh nghiệm ước lượng và những người đầu tư

Giải quyết và điều chỉnh lại các ước lượng sai

Bước 11: Kết thúc dự án Đánh giá kết quả đạt được và kết thúc hợp đồng

Quản lý dự án, khách hàng

Thu thập dữ liệu của dự án để sử dụng cho các ước lượng sau

Bảng 2.2: Các bước ước lượng chi phí dự án

Số lượng dòng lệnh

Số lượng dòng lệnh (Source Line Of Code) của dự án phần mềm là được sử dụng để xác định quy mô của của phần mềm bằng cách đếm số lượng dòng lệnh trong mã nguồn dự án Phương pháp này thường được sử dụng để đo lường khối lượng công việc mà các lập trình viên cần thiết phải thực hiện để phát triển một phần mềm Nó cũng được sử dụng để ước lượng hiệu quả công việc của các lập trình viên hoặc ước lượng khối lượng công việc cần thiết phải bỏ ra để bảo trì phần mềm

2.8.1 Các phương pháp đếm số lượng dòng lệnh

Có hai phương pháp đếm số lượng dòng lệnh: phương pháp vật lý (physical SLOC) và phương pháp luận lý (logical SLOC)

Phương pháp vật lý đếm số lượng dòng lệnh trong các tập tin của chương trình bao gồm cả những dòng chú thích của chương trình Số lượng dòng trống cũng được nhưng không vượt quá 25% [3] tổng số dòng lệnh

Phương pháp luận lý đếm số lượng dòng lệnh thực tế Điều này là một vấn đề khó vì các ngôn ngữ lập trình chưa theo một hệ chuẩn thống nhất (ví dụ trong Java một lệnh kết thúc bằng dấu ; trong khi các lệnh trong Python thì không cần) Do đó phương pháp luận lý cho ta một kết quả chính xác hơn do không chịu ảnh hưởng của cách viết lệnh mà chỉ căn cứ vào số dòng lệnh thực tế Tuy vậy việc tạo ra một công cụ đếm số lượng dòng lệnh theo phương pháp luận lý thì khó khăn hơn phương pháp vật lý nhiều do số lượng ngôn ngữ lập trình tương đối nhiều và sự thay đổi của chúng qua các phiên bản

Xét dòng lệnh sau for (i = 0; i < 100; i += 1) println(i); //Print numbers

Theo phương pháp vật lý: 1 Theo phương pháp luận lý: 2 (1 cho for và 1 cho println)

Số lượng dòng ghi chú: 1 Cùng một ví dụ như trên nhưng nếu ta viết theo cách trình bày khác

Theo phương pháp vật lý: 3 Theo phương pháp luận lý: 2 (1 cho for và 1 cho println) Số lượng dòng ghi chú: 1

Về phương pháp đếm số lượng dòng lệnh theo phương pháp vật lý cũng có nhiều tiêu chuẩn khác nhau Trong phạm vi luận văn sẽ sử dụng phương pháp của Samuel Conte dựa vào bảng checklist

Theo quy ước của Samuel Conte thì chỉ những dòng lệnh thực sự tham gia vào làm cho chương trình hoạt động mới được tính, các dòng trống và các dòng ghi chú đều không được tính khi đếm số dòng lệnh của chương trình.

Phân tích các điểm chức năng

Khi bắt tay vào việc thực hiện một dự án, đầu tiên là cần phải xác định được khối lượng công việc, từ đó có thể tính toán được chi phí về tài nguyên (con người, thời gian, tiền bạc…) Để tính được khối lượng công việc cho một dự án phần mềm, ngoài phương pháp tính số dòng lệnh (SLOC) còn có thể sử dụng phương pháp phân tích các điểm chức năng (Function Point Analysis - FPA)

Phân tích các điểm chức năng là một phương pháp được ISO chấp nhận, dùng để xác định kích thước về mặt chức năng của một hệ thống thông tin Functional size phản ánh số lượng chức năng liên quan tới và được chấp nhận bởi người dùng trong doanh nghiệp Nó hoàn toàn độc lập với công nghệ được sử dụng để triển khai hệ thống Đơn vị dùng để đo lường được gọi là điểm chức năng (Function points - FPs) Phương pháp FPA biểu diễn độ lớn của hệ thống bằng số lượng các FPs Khái niệm FP được đưa ra bởi Allan Albrecht[16] vào giữa những năm 1970 nhằm thay thế cho phương pháp đo lường kích thước phần mềm bằng cách đếm số dòng mã lệnh, sau đó được IBM xuất bản vào năm 1979, và sau đó là IEEE tái bản vào năm 1981

1 Tính toán số chức năng dựa trên góc nhìn của người sử dụng về các chức năng của hệ thống

2 Giảm thiểu hóa công sức, chi phí dùng cho việc tính toán, đo đạc

3 Thiết lập nên một phương pháp đo đạc thống nhất giữa các tổ chức

1 Có thể xác định được kích thước của phần mềm từ sớm trong quy trình phát triển khi chỉ có các yêu cầu của khách hàng

2 Giữ vai trò như một phương pháp đo lường căn bản

3 Độc lập với công cụ và môi trường phát triển vì chỉ căn cứ vào số lượng chức năng của chương trình

4 Cung cấp phương pháp đo lường kích thước thống nhất giữa các nhóm và tổ chức

5 Là công cụ quan trọng để xác định năng suất, ước lượng chi phí, công sức

1 Xác định loại dự án (phát triển dự án mới, nâng cấp dự án hay chỉ đánh giá một dự án đã có)

2 Xác định phạm vi của dự án

3 Xác định số lượng Function Points chưa điều chỉnh (Unadjusted Function Points)

4 Xác định hệ số cân đối (Value Adjusted Factors)

5 Xác định số lượng Function Points cân đối

Có năm loại điểm chức năng khác nhau thường thấy trong một dự án, năm loại điểm này được chia làm hai nhóm là nhóm liên quan đến nhập xuất dữ liệu và nhóm liên quan đến các thao tác xử lí dữ liệu

 Nhóm liên quan đến nhập xuất dữ liệu

Các chức năng nhập vào (External Input - EI) dùng để thu thập dữ liệu từ người dùng dưới các hình thức như gõ bàn phím hoặc tự động nhập dữ liệu từ các tập tin được cung cấp sẵn.

 Các chức năng xuất ra (External Output - EO) được tính từ các chức năng cho phép ghi lại các dữ liệu đã được thu nhận và xử lý xuống các tập tin hoặc cơ sở dữ liệu hoặc xuất ra cho người dùng có thể nhìn thấy.

 Nhóm liên quan đến các thao tác xử lí dữ liệu

 Các thao tác có sử dụng các tập tin chương trình (Internal Logical File - ILF) được tính từ các chức năng bắt buộc phải sử dụng các tập tin của chương trình để co thể hoạt động

 Các thao tác có xuất ra các tập tin cho các chương trình khác (External Logical File - ELF) được tính từ các chức năng có liên quan đến việc xuất dữ liệu ra giao diện chương trình để người dùng nhìn thấy

 Các thao tác có liên quan đến các tập tin do người dùng tạo ra (External Inquiry - EQ) được tính từ các chức năng có liên quan đến các thao tác do người dùng tự thao tác để nhập và xuất dữ liệu để khai thác thông tin.

Hình 1.5: Các điểm chức năng

(Nguồn: http://www.softwarems.com/consulting/whatarefp.shtml)

Phương pháp đổi điểm chức năng thành số lượng dòng lệnh

Do ước lượng số lượng dòng lệnh ở đầu dự án khá khó khăn, tốn thời gian và độ chính xác không cao, phương pháp cầu bắc trong COCOMO II ra đời để giải quyết vấn đề này Bằng cách sử dụng bảng chuyển đổi đơn vụ, người ta có thể chuyển đổi các điểm chức năng thành số lượng dòng lệnh, giúp việc ước lượng trở nên dễ dàng và nhanh chóng hơn.

Có rất nhiều bảng chuyển đổi khác nhau được đề nghị như bảng của Jones vào năm 1991 tuy nhiên bảng chuyển đổi này đã cũ và không còn phù hợp với hiện nay do có rất ít ngôn ngữ còn được sử dụng để phát triển các phần mềm hiện đại

Ngôn ngữ lập trình SLOC/UFP

Assemply (Macro) 213 ANSI/Quick/Turbo Basic 64 Basic – Complied 91

Bảng 2.3: Bảng chuyển đổi SLOC/UFP 1

(Nguồn: COCOMO II Model Definition Manual v1.4 – Barry Boehm)

Bảng chuyển đổi thứ hai được đề nghị tại trang www.qsm.com QSM là một tổ chức lớn và uy tính chuyện về ước lượng dự án Bảng số liệu chuyển đổi do họ đưa ra được tổng kết từ cơ sở dữ liệu gồm 2786dự án đã hoàn thành dùng điểm chức năng để làm phương pháp ước lượng

Ngôn ngữ lập trình QSM SLOC/FP Data

Trung bình - Avg Trung bình - Median Thấp Cao

Bảng 2.4: Bảng chuyển đổi SLOC/UFP 2

(Nguồn tham khảo: http://www.qsm.com/resources/function-point-languages-table)

Khái niệm về mô hình COCOMO II

COCOMO lần đầu tiên được công bố trong Boehm 1981 cuốn sách Software Engineering Economics như là một mô hình để ước tính, chi phí và tiến độ cho các dự án phần mềm Được xây dựng trên một nghiên cứu về 63 dự án tại TRW Aerospace mà Boehm là giám đốc nghiên cứu phần mềm và công nghệ Nghiên cứu đã xem xét các dự án khác nhau, kích thước từ 2.000 đến 100.000 dòng mã, và các ngôn ngữ lập trình khác nhau, từ Assembly đến PL/I Các dự án này phát triển theo mô hình thác nước (Waterfall) là quy trình phát triển phần mềm phổ biến nhất vào năm 1981

COCOMO còn được gọi là COCOMO 81 Năm 1995 COCOMO II đã được phát triển và cuối cùng được công bố vào năm 2000 COCOMO II là sự kế thừa các đặc tính của COCOMO 81 và phù hợp hơn với ước tính các dự án phát triển phần mềm

Nó cung cấp nhiều sự hỗ trợ cho quá trình phát triển phần mềm hiện đại

Ngoài COCOMO II và COCOMO còn có rất nhiều các phiên bản khác nhau phục vụ cho các mục đích ước lượng khác nhau

Hình 1.6: Các dạng mô hình liên quan đến COCOMO (Nguồn tham khảo: COCOMO Suite Methodology and Evolution[22])

Ba mô hình COCOMO II, COINCOMO và DBA COCOMO có những điểm tương đồng như nhau nhưng phục vụ những mục đích khác nhau

Những dạng thông dụng khác bao gồm:

 COQUALMO được sử dụng để ước lượng các lỗi còn lại trong sản phẩm phần mềm

 iDave dùng để ước tính và theo dõi lợi nhuận có được dựa trên mức đầu tư

 COPLIMO hỗ trợ ước lượng dự đoán chi phí và lợi nhuận dựa trên việc phân tích đầu tư

 COPSEMO hỗ trợ việc ước tính phân phối theo từng giai đoạn và thường được sử dụng với CORADMO

 COPROMO dự báo việc phân bổ chi phí sao cho hiệu quả nhất các nguồn lực đầu tư vào các công nghệ mới nhằm nâng cao năng suất

COCOMO II được đánh giá là một trong những phương pháp hiệu quả nhất để ước lượng chi phí dự án Nó cung cấp thêm 17 yếu tố điều chỉnh chi phí (Cost Drivers) giúp cho việc ước lượng chi phí hiệu quả và chính xác hơn

Hình 1.7: Mô hình COCOMO II

(Nguồn: A Winsor Brown, COCOMO + COCOTS Tutorial 2010)

2.11.1 Công thức tính số người theo làm việc tháng

= × ( ) (Nguồn: COCOMO II Model Definition Manual [15])

PM là số lập trình viên làm việc trong một thời gian tính theo tháng

Size là số lượng dòng lệnh được tính theo đơn vị hàng ngàn (KSLOC) Nó có thể được tính bằng cách chuyển từ các điểm chức năng qua số lượng dòng lệnh và chia cho 1000

B là con số đại diện cho các yếu tố điều chỉnh có ảnh hưởng đến dự án

A là con số đại diện cho nỗ lực để hoàn thành một ngàn dòng lệnh Con số này sẽ thay đổi theo các dạng dự án khác nhau

Công thức trên của COCOMO II được sử dụng trong dạng hai dự án:

 Mới bắt đầu (Early Design Model): ở dạng này chỉ mới khởi động dự án, mọi yêu cầu của khách hàng cũng như cách thực hiện chưa rõ ràng

 Đang thực hiện (Post Architecture): ở dạng này mọi yêu cầu của khách hàng cũng như cách thực hiện đã rõ ràng

William Roetzheim thuộc tổ chức Cost Xpert Group [25]đã nghiên cứu 20000 dự án phần mềm trong 18 năm và đã đưa ra số liệu cho một số dạng dự án khác ngoài con số chuẩn của mô hình COCOMO II giúp cho việc ước lượng dễ dàng và chính xác hơn Số liệu được liệt kê trong bảng sau:

Phần mềm thương mại điện tử 3.08 1.030 Ứng dụng web 2.51 1.030

Phần mềm dành cho quân đội 3.97 1.072

Bảng 2.5: Các tham số đề nghị theo dạng dự án

(Nguồn: Project Cost Adjustments, Cost Xpert Group[25])

2.11.2 Các yếu tố quyết định quy mô

Các yếu tố xác định quy mô (Scaling Factors) đại diện bởi B trong công thức ước lượng chính của mô hình COCOMO II Mỗi loại yếu tố sẽ có sáu cấp độ khác nhau từ rất thấp cho đến rất cao Mỗi ấp độ có một trọng số W khác nhau và một giá trị tương ứng với trọng số đó gọi là Tổng tất cả các giá trị sẽ có B theo công thức

= 1.01 + 0.01 × ∑ (Nguồn: COCOMO II Model Definition Manual [15])

2.11.2.1 Yếu tố quen thuộc và khả năng hoạt động linh hoạt

Yếu tố quen thuộc (Precedentedness (PREC)) được sử dụng để ước lượng một dự án giống với nhiều dự án đã được phát triển trước đây Nếu dự án mới có nhiều đặc điểm giống dự án cũ thì yếu tố quen thuộc sẽ có giá trị cao Đặc điểm Rất thấp Bình thường/Cao Rất cao

Mức độ hiểu biết về tính năng sản phẩm phần mềm

Bình thường Đáng kể Hoàn toàn

Kinh nghiệm làm việc với những phần mềm tương tự

Vừa phải Đáng kể Lớn

Sự phát triển của các phần cứng và hệ điều hành

Sự cần thiết cải tiến quá trình xử lý dữ liệu và thuật toán Đáng kể Ít Rất nhỏ

Bảng 2.6: Yếu tố quen thuộc

(Nguồn: COCOMO II Model Definition Manual v1.4 – Barry Boehm)

Khả năng hoạt động một cách linh hoạt (Development Flexibility (FLEX)) là khả năng đáp ứng đầy đủ các yêu cầu của người dùng về chức năng và về giao diện chương trình cũng như khả năng hoàn thành đúng thời hạn Đặc điểm Rất thấp Bình thường/Cao Rất cao

Yêu cầu phần mềm phải đúng với những yêu cầu đã được quy định trước

Hoàn toàn Đáng kể Cơ bản

Yêu cầu phần mềm phải đúng với những đặc tả về giao diện

Hoàn toàn Đáng kể Cơ bản

Sự kết hợp hai yếu tố trên và hoàn thành dự án đúng thời hạn

Bảng 2.7: Khả năng hoạt động linh hoạt

(Nguồn: COCOMO II Model Definition Manual v1.4 – Barry Boehm)

2.11.2.2 Các yếu tố nguy cơ

Các yếu tố nguy cơ (Architecture / Risk Resolution (RESL)) là các yếu tố có thể xảy ra và làm ước lượng không chính xác Bao gồm hai loại là PDR (Product Design Review) và LCA (Life Cycle Architecture) Đặc điểm Rất thấp

Xác định rõ tất cả các nguy cơ bất lợi và ước lượng thời gian giải quyết

Không xác định Ít Một số Trung bình

Lập kế hoạch, xác định chi phí và những bản phát hành nội bộ

Không xác định Ít Một số Trung bình

Phần trăm khối lượng công việc dùng cho việc tạo ra kiến trúc hệ thống

Phần trăm khối lượng công việc dùng cho việc tìm kiếm những phần mềm thích hợp cho dự án

Những công cụ sử dụng cho việc phát triển phần mềm và giải quyết các rủi ro

Không xác định Ít Đơn giản

Tốt Rất tốt Xuất sắc

Mức độ không nắm chắc về: mục tiêu,

Hơi thấp Thấp Ít Rất ít giao diện, phần cứng, phần mềm và tốc độ xử lý

Số lượng của các yếu tố nguy cơ

Bảng 2.8: Các yếu tố nguy cơ

(Nguồn: COCOMO II Model Definition Manual v1.4 – Barry Boehm)

2.11.2.3 Khả năng hoạt động nhóm

Khả năng làm việc nhóm Team Cohesion (TEAM) đo lường sự bất đồng của những người có liên quan đến dự án như: người sử dụng, người phát triển, người bảo trì, khách hàng v.v… Những bất đồng này chủ yếu là do mức độ hiểu biết khác nhau về phần mềm hay quy trình làm việc, đôi khi cũng do những khác biệt về cách làm việc Đặc điểm Rất thấp Thấp Bình thường

Cao Rất cao Tuyệt đối

Sự ổn định về mục tiêu và cách làm việc của những người có liên quan đến dự án

Thấp Ít Trung bình Đáng kể Cao Tốt

Khả năng và sự hài lòng của những người liên quan đến dự án

Thấp Ít Trung bình Đáng kể Cao Tốt

Không có Thấp Ít Trung bình Đáng kể Tốt

Sự chia sẻ viễn cảnh, mục tiêu

Không có Thấp Ít Trung bình Đáng kể Tốt

Bảng 2.9: Khả năng hoạt động nhóm

(Nguồn: COCOMO II Model Definition Manual v1.4 – Barry Boehm)

2.11.2.4 Phát triển theo quy trình

Phát triển theo quy trình Process Maturity (PMAT) đo lường về tiêu chuẩn, sự cẩn thận trong phát triển phần mềm.Tiêu chuẩn để đánh giá dựa trên tiêu chuẩn CMM (Software Engineering Institute’s Capability Maturity Model) Đánh giá này cần được thực hiện ngay từ khi dự án bắt đầu thực hiện

Mô hình trưởng thành năng lực (Institute’s Capability Maturity Model - CMM) được thay thế bằng Mô hình trưởng thành năng lực tích hợp (Institute’s Capability Maturity Model Integration- CMMI) và là khuôn khổ cho cải tiến qui trình phần mềm Nó dựa trên khái niệm về các thực hành tốt nhất về kĩ nghệ phần mềm và giải thích kỉ luật mà các công ty có thể dùng để cải tiến các qui trình của họ

CMM có 5 mức đánh giá chuẩn Bao gồm:

CMM bao gồm 18 vùng quy trình quan trọng (Key Procress Areas - KPAs) 18 vùng quy trình quan trọng này thuộc vào các mức khác nhau

 Mức 1: không có vùng quy trình quan trọng

 Mức 2: có 6 vùng quy trình quan trọng

 Mức 3: có 7 vùng quy trình quan trọng

 Mức 4: có 2 vùng quy trình quan trọng

 Mức 5: có 3 vùng quy trình quan trọng

Vùng quy trình quan trọng

Luôn luôn Thường xuyên Khoảng một Đôi khi Hiếm khi Không sử dụng Không biết

1 Lấy và quản lý yêu cầu của khách hàng

A1 Yêu cầu hệ thống được xác định rõ rang

A2 Kế hoạch, sản phẩm và những hoạt động phát triển được đảm bảo phù hợp với yêu cầu hệ thống

2 Lập kế hoạch cho dự án

B1 Những uớc lượng được ghi lại bằng văn bản và sử dụng khi lên kế hoạch và theo dõi tiến độ dự án

B2 Những hoạt động phát triển phần mềm được lên kế hoạch và ghi lại bằng văn bản

B3 Các nhóm và cá nhân có liên quan đến dự án thực hiện đúng như kế hoạch

3 Theo dõi kiểm tra tiến độ dự án

C1 Kết quả thực tế và chất lượng được ghi nhận và so sánh với bản kế hoạch

C2 Thực hiện việc sửa chữa khi kết quả kiểm tra không đạt như trong kế hoạch

C3 Những thay đổi liên quan đến phần mềm cần được sự thống nhất của các nhóm và các cá nhân có liên quan

4 Quản trị hợp đồng phụ phần mềm

D1 Nhà sản xuất lựa chọn những nhà thầu phụ có chất lượng tốt

D2 Nhà sản xuất và những nhà thầu phụ tuân thủ các cam kết của họ với nhau

D3 Nhà sản xuất và những nhà thầu phụ duy trì liên lạc một cách thường xuyên

D4 Nhà sản xuất thường xuyên kiểm tra chất lượng công việc của các nhà thầu phụ

5 Đảm bảo chất lượng sản phẩm

E1 Những kế hoạch quản lý chất lượng phần mềm được lên kế hoạch một cách đầy đủ

E2 Tuân thủ đầy đủ các tiêu chuẩn sản xuất phần mềm và các yêu cầu được kiểm tra một cách khách quan

E3 Các nhóm phát triển và các cá nhân được thông báo đầy đủ về hoạt động và kết quả kiểm tra chất lượng phần mềm

E4 Những vi phạm không tuân thủ các nguyên tắc đảm bảo chất lượng được giải quyết bởi những nhà quản lý có đủ thẩm quyền và trách nhiệm

6 Quản trị cấu hình sản phẩm

F1 Kế hoạch quản trị cấu hình sản phẩm được lên kế hoạch đầy đủ

F2 Sản phẩm phần mềm được xác định, có thể điều khiển được và sẵn sàng hoạt động

F3 Những thay đổi có liên quan đến sản phẩm phải được kiểm soát một cách chặt chẽ

F4 Những nhóm và cá nhân được thông báo về tình trạng và nội dung về giới hạn của phần mềm

7 Tập trung tiến trình tổ chức

G1 Quy trình phát triển và cải tiến phần mềm được hợp tác xuyên suốt tổ chức

G2 Các điểm mạnh và yếu của quy trình phát triển phần mềm được so sánh với các quy trình chuẩn

G3 Có kế hoạch nhằm cải tổ và nâng cấp quy trình phát triển

8 Định nghĩa quy trình tổ chức

H1 Tổ chức có một quy trình làm việc được phát triển và bảo trì

H2 Những tài liệu có liên quan đến quy trình làm việc của tổ chức được thu thập, xem xét và luôn sẵn sàng được sử dụng

I1 Những kế hoạch huấn luyện đã được lên kế hoạch

I2 Cung cấp những khóa huấn luyện về phát triển kĩ năng và kiến thức để quản lý dự án và công nghệ

I3 Các cá nhân và những nhóm phát triển phần mềm được huấn luyện một cách đầy đủ để có thể thực hiện công việc

10 Quản trị phần mềm tích hợp

J1 Quy trình phát triển phần mềm phải thích hợp với quy trình tiêu chuẩn của dự án

J2 Dự án được lên kế hoạch và phát triển theo tiêu chuẩn theo quy trình phát triển phần mềm

11 Sản xuất sản phẩm phần mềm

K1 Những công việc được định nghĩa, có quan hệ với nhau và thống nhất với nhau trong một phần mềm

K2 Những sản phẩm phần mềm cần phải được giữ cho đồng nhất với nhau

12 Phối hợp nhóm làm việc

L1 Những yêu cầu của khách hàng cần phải được tất cả các nhóm phát triển hiểu rõ và thống nhất ý kiến thực hiện

L2 Tất cả các cam kết giữa nhóm lập trình được thỏa thuận và được sự đồng thuận của những người có liên quan

L3 Nhóm phát triển phần mềm cần theo dõi, phát hiện và sửa chữa các lỗi phát sinh

M1 Tất cả các hoạt động đều được lên kế hoạch

M2 Những lỗi trong sản phẩm phần mềm cần phải được phát hiện và sửa chữa

14 Quản lý quá trình định lượng

N1 Những hoạt động của quy trình định lượng được lên kế hoạch

N2 Các hoạt động phát triển phần mềm được kiểm soát về mặt số lượng

N3 Tiêu chuẩn khả năng xử lý quá trình phát triển phần mềm của tổ chức được định lượng

15 Quản lý chất lượng phần mềm

O1 Kế hoạch kiểm tra chất lượng của phần mềm được lên kế hoạch trước

O2 Những tiêu chuẩn về chất lượng và độ ưu tiên được xác định

O3 Quá trình kiểm tra chất lượng phần mềm được kiểm soát và đánh giá

P1 Kế hoạch phòng ngừa lỗi được lên kế hoạch

P2 Nguyên nhân của các lỗi phổ biến được xác định

P3 Nguyên nhân của các lỗi phổ biến được ưu tiên phát hiện và loại bỏ một các có hệ thống

17 Quản lý thay đổi công nghệ

Q1 Kế hoạch sử dụng và thay đổi các ông nghệ có liên quan đến dự án được lân kế hoạch trước

Q2 Những công nghệ mới được đánh giá hiệu quả và tác động lên chất lượng và khối lượng công việc

Q3 Những công nghệ mới được sử dụng trong tổ chức một các bình thường

18 Quản lý thay đổi quy trình

R1 Việc cải tiến các quy trình được lên kế hoạch liên tục

R2 Các hoạt động cải tiến quy trình được thực hiện trên diện rộng

R3 Các quá trình phát triển phần mềm cần được nâng cấp một cách liên tục

Bảng 2.10: Các vùng quy trình quan trọng

(Nguồn: COCOMO II Model Definition Manual v1.4 – Barry Boehm)

2.11.3 Các yếu tố điều khiển chi phí

Có 17 loại yếu tố điều chỉnh chi phí (Cost Drivers) được sử dụng trong COCOMO II trong mô hình Post Architecture để điều chỉnh công thức tính nỗ lực của người làm theo tháng Personal Months, những yếu tố này phản ánh những ảnh hưởng khác có thể làm ảnh hưởng đến việc tính chi phí phát triển sản phẩm phần mềm

Các yếu tố này được chia ra làm bốn loại:

 Các yếu tố liên quan đến sản phẩm

 Các yếu tố liên quan đến nền tảng

 Các yếu tố liên quan đến con người

 Các yếu tố liên quan đến dự án

2.11.3.1 Các yếu tố liên quan đến sản phẩm

2.11.3.1.1 Độ tin cậy của phần mềm (RELY – Required Software Reliability)

Yếu tố này nhằm đo lường sự ổn định của sản phẩm phần mềm trong một thời gian

Mức độ Rất thấp Thấp Trung bình

Cao Rất cao Tuyệt đối Đánh giá Ổn định, đáp ứng yêu cầu sử dụng Độ ổn định ít hơn , có thể khôi phục lại Độ ổn định trung bình, có thể khôi phục lại

Có thể gây ra thiệt hại

Làm ảnh hưởng đến cuộc sống con người

Bảng 2.11: Độ tin cậy của phần mềm

(Nguồn: COCOMO II Model Definition Manual v1.4 – Barry Boehm)

2.11.3.1.2 Kích thước của dữ liệu (Data – Data Base Size)

Yếu tố này đo lường độ lớn của dữ liệu ảnh hưởng đến quá trình phát triển phần mềm.Kích thước dữ liệu sẽ ảnh hưởng đến phát triển phần mềm do cần phải tốn thời gian và công sức để tạo ra những dữ liệu giả để phát triển và kiểm thử chương trình

Sử dụng tỷ lệ D/P để xác định

D là kích thước của data tính bằng byte P là kích thước của chương trình tính bằng SLOC

Rất thấp Thấp Trung bình

Cao Rất cao Tuyệt đối Đánh giá Không xác định

Bảng 2.12: Kích thước của dữ liệu

(Nguồn: COCOMO II Model Definition Manual v1.4 – Barry Boehm)

2.11.3.1.3 Độ phức tạp của dự án (CPLX – Product Complexity)

Tóm tắt chương hai

Chương này giới thiệu về các phương pháp ước lượng cũng như nêu ra ưu khuyết điểm của từng phương pháp Nêu ra các bước ước lượng chi phí cho một phần mềm từ ban đầu cho đến khi kết thúc

Nêu ra hai phương pháp dùng để tính khối lượng của phần mềm là sử dụng số dòng mã lệnh và điểm chức năng, cách chuyển đổi từ điểm chức năng ra số lượng dòng mã lệnh để có thể sử dụng COCOMO II

Giải thích chi tiết về mô hình COCOMO II cùng các yếu tố quy mô và các yếu tố điều chỉnh chi phí sử dụng trong chương trình nhằm làm tăng hiệu quả ước lượng.

PHƯƠNG PHÁP NGHIÊN CỨU

Quy trình nghiên cứu

Nghiên cứu mô hình COCOMO II và các yếu tố điều chỉnh của mô hình từ đó áp dụng để ước lượng chi phí cho các dự án của công ty phần mềm Xác định một số yếu tố có ảnh hưởng nhiều hơn so với các yếu tố khác

Tìm ra các điểm mạnh và điểm yếu của mô hình COCOMO II để từ đó đề ra một số phương pháp cải tiến

Nghiên cứu quá trình ước lượng chi phí của dự án thông qua việc chuyển đổi các chức năng của hệ thống sử dụng Unadjusted Function Points (UFPs) và sau đó là thành dòng mã lệnh (SLOC) để làm tham số đầu vào cho COCOMO II Quá trình này không những giúp đơn giản quá trình ước lượng mà còn làm tăng độ chính xác của việc ước lượng

Sử dụng một số dự án phần mềm để kiểm định độ chính xác của mô hình COCOMO II

Cuối cùng là kết luận và kiến nghị những giải pháp từ kết quả nghiên cứu, đồng thời nêu lên những hạn chế của nghiên cứu cùng với hướng nghiên cứu trong tương lai.

Phương pháp nghiên cứu

Từ chi phí dự đoán của COCOMO II so sánh với chi phí thực tế phát sinh của một phần mềm được phát triển ở công ty để so sánh độ chính xác của mô hình khi áp dụng trong điều kiện của công ty Edge-Works Software Ltd Đề tài sẽ khảo sát trên những yếu tố cốt lõi ảnh hưởng đến việc ước lượng chi phí cho dự án như: a Độ phức tạp của dự án b Số lượng các chức năng cần phải có c Khả năng của các thành viên trong dự án d Kinh nghiệm của các thành viên đối với các công nghệ được sử dụng trong dự án e Sự thay đổi yêu cầu của người sử dụng f Ngôn ngữ lập trình và hệ cơ sở dữ liệu được sử dụng g Số lượng các thành viên trong nhóm h Mức độ đầy đủ của các tài liệu mô tả của dự án i Mức độ thành thạo của các thành viên đối với phần cứng và phần mềm được sử dụng.

Công cụ đếm số dòng lệnh

Công cụ được sử dụng để đếm số lượng dòng lệnh có tên là cloc phiên bản 1.5.5 được cung cấp miễn phí tại trang web http://cloc.sourceforge.net/ của Al Danial. Đây là một công cụ nguồn mở miễn phí (Giấy phép GNU General Public License v2) Công cụ này có khả năng đếm số lượng dòng mã thuộc nhiều ngôn ngữ khác nhau, ngoài ra nó còn có khả năng đếm số lượng các dòng trống và các dòng chú thích Công cụ này được phát triển bằng ngôn ngữ lập trình Perl

Lý do chọn công cụ cloc là vì:

 Có kích thước nhỏ gọn, dễ dàng sử dụng

 Là một phần mềm dạng không cần cài đặt sử dụng trong môi trường dòng lệnh (Window Command Line – Linux Terminal)

 Có thể đếm mã dòng lệnh trong rất nhiều loại file khác nhau như: SQL, XML …

 Hỗ trợ những loại file nén nhu zip, tar

 Có nhiều tùy chọn để cho kết quả chính xác hơn Để sử dụng chương trình, từ cửa sổ dòng lệnh ta gõ dòng lệnh cloc-1.55.exe [options] | |

Các tham số Giải thích

[options] Là những tùy chọn điều chỉnh sự hoạt động của chương trình theo ý muốn

| Chỉ định các thư mục và các tập tin cần đếm số lượng dòng lệnh chứa bên trong

Chỉ định nơi kết xuất kết quả

Bảng 3.1: Các tham số cơ bản của chương trình cloc

Tham số tùy chọn (options)

extract-with= Dùng tham số này để chương trình tự động giải nén những tập tin có dạng nén (zip, tar)

list-file= Chỉ dịnh một số tập tin nằm ngoài thư mục được chỉ định unicode Kiểm tra các tập tin chứa các kí tự Unicode

Bảng 3.2: Các tham số tùy chọn

Hình 3.1: Giao diện chương trình cloc

Phần mềm tính toán cho COCOMO II

Công cụ dùng để áp dụng mô hình COCOMO II cho công ty phần mềm Edge-Work là một công cụ trên nền web Công cụ này rất dễ sử dụng, cho kết quả tính toán nhanh và đơn giản Chỉ cần nhập vào số lượng dòng mã lệnh và các yếu tố điều chỉnh chi phí Công cụ được cung cấp tại trang web http://diana.nps.edu/~madachy/tools/COCOMOII.php

Hình 3.2: Giao diện chương trình COCOMO II

Chương này giới thiệu về quy trình cũng như phương pháp nghiên cứu của luận văn cũng như nêu ra hai công cụ đếm số lượng dòng mã lệnh cloc phiên bản 1.5.5 và một công cụ trên web nhằm hỗ trợ việc ước lượng bằng COCOMO II nhanh chóng và tiện lợi hơn

CHƯƠNG 4: THU THẬP VÀ PHÂN TÍCH DỮ

Edge-works Software Ltd là một công ty phần mềm có vốn đầu tư 100% của Đức

Công ty chuyên gia công các sản phẩm phầm mềm cho thị trường châu Âu và Mỹ

Công ty được thành lập vào năm 2007 tại công viên phần mềm Quang Trung quận 12 TP.HCM Công ty chuyên về sản xuất và gia công các sản phẩm phần mềm dựa trên các công nghệ mã nguồn mở nhằm giảm giá thành sản phẩm tăng tính cạnh tranh và hưởng ứng chủ trương sử dụng mã nguồn mở rộng rãi của chính phủ

Việc khảo sát các yếu tố có ảnh hưởng nhiều đến việc ước lượng hơn các yếu tố khác dựa trên việc khảo sát các dự án tại công ty Edge-works Software Ltd Công ty có nhiều dự án vừa và nhỏ thích hợp cho việc nghiên cứu

Khảo sát dựa trên dữ liệu sẵn có của 8 dự án đã hoàn thành sau:

1 StartSequel 2 Equator 3 Hawa 4 Plevo 5 Cartridge Card 6 GVillage 7 Consulting Platform 8 Hr-Solution-Vn Dữ liệu về những dự án trên được thu thập bằng cách khảo sát và phỏng vấn những người quản lý dự án và lập trình viên trong dự án đó Những người được chọn phỏng vấn là những người có hiểu biết về công nghệ thông tin cũng như hiểu rõ về dự án Với mỗi dự án, người phỏng vấn sử dụng bảng câu hỏi để thu thập các thông tin từ những người được phỏng vấn trên đồng thời sử dụng thêm những câu hỏi trợ giúp tại chỗ để giúp họ trả lời các câu hỏi khảo sát một cách dễ dàng hơn Có một số câu hỏi không được trả lời do các yếu tố bảo mật về dự án và những người được khảo sát không nhớ hoặc không chắc chắn do thời gian hoàn thành đã lâu Từ kết quả của khảo sát có thể rút ra được các yếu tố điều chỉnh chi phí của dự án Sau đó sử dụng công cụ cloc 1.5.5 để đếm số lượng dòng lệnh của dự án

Kết hợp các dữ liệu về các yếu tố điều chỉnh chi phí và số lượng dòng lệnh, ta sử dụng một phần mềm tính toán theo mô hình COCOMO II được cung cấp tại trang http://diana.nps.edu/~madachy/tools/COCOMOII.php

Dự án StarSequel

StarSequel là dự án quản lý đội tàu dùng để chuyên chở hàng hóa trên biển cho khách hàng Chương trình lập lịch và theo dõi hoạt động của từng con tàu để biết tình trạng nhằm đảm bảo hàng hóa được chuyên chở đến chỗ khách hàng một cách nhanh nhất mà vẫn đảm bảo chất lượng của hàng hóa

Chương trình còn đảm bảo quản lý chất lượng của các con tàu nhằm hạn chế những rủi ro có thể xảy ra trong quá trình hoạt động tránh tổn thất

Nhân sự tham gia Ba lập trình viên

Số lượng dòng mã lệnh 49.507

Ngôn ngữ sử dụng PHP

Cơ sở dữ liệu MySQL

Thời gian hoàn thành thực tế 20 tháng Kết quả ước lượng bằng COCOMO II 65.2 Person-months

Yếu tố điều chỉnh quy mô Kết quả khảo sát Chi tiết

PREC Bình thường Đây là dự án đầu tiên làm về lĩnh vực này

FLEX Bình thường Đã từng làm qua các dự án có một số chức năng tương tự

RESL Ít Dự án đơn giản và hầu như không có nguy cơ, khách hàng không yêu cầu về thời gian và chi phí

TEAM Rất cao Các thành viên làm việc rất tốt trong nhóm

PMAT Không biết Không áp dụng

Bảng 4.1: Các yếu tố đều chỉnh quy mô của dự án StarSequel

Yếu tố điều chỉnh chi phí Kết quả khảo sát Chi tiết

RELY Bình thường Phần mềm được yêu cầu họat động ổn định để đảm bảo hiệu quả kinh doanh nhưng có khả năng khôi phục khi có sự cố xảy ra

RUSE Cao Do viết theo thành phần nên tái sử dụng được

DOCU Rất thấp Không viết các tài liệu cho dự án

TIME Rất cao Hỗ trợ hoạt động 24/24

STOR Thấp Chỉ chiếm dụng một lượng bộ nhớ và đĩa cứng lưu trữ không đáng kể

ACAP Rất cao Có khả năng hiểu và phân thích yêu cầu từ khách hàng dễ dàng

PCAP Rất cao Có thể hiểu và phân tích hơn 90% yêu cầu từ khách hàng

PCON Rất cao Thời gian làm việc ngắn do các thành viên thay đổi để chuyển sang các dự án khác trong công ty

APEX Rất cao Kinh nghiệm với dạng phần mềm được khoảng một năm

PLEX Rất cao Kinh nghiệm với nền tảng được một năm

LTEX Trung bình Kinh nghiệm với công cụ được một năm

TOOL Rất thấp Chỉ sử dụng với những mục đích cơ bản như bẩy lỗi hoặc sửa lỗi

SITE Trung bình Chỉ sử dụng email, điện thoại, máy fax

Bảng 4.2: Các yếu tố đều chỉnh chi phí của dự án StarSequel

4.1.3 Đánh giá kết quả ước lượng

Dự án này trong thực tế cần ba người làm việc liên tục trong vòng 20 tháng Kết quả ước lượng cho thấy cần 65.2 PM tương đương ba người làm trong vòng 21.73 tháng Trong trường hợp này kết quả ước lượng cao hơn thực tế gần 2 tháng.

Dự án Equator

Equator là dự án quản lý hàng tồn kho ở bến cảng tàu biển Hệ thống quản lý việc xuất nhập các loại hàng hóa khác nhau

Nhân sự tham gia Hai lập trình viên

Số lượng dòng mã lệnh 47.366

Ngôn ngữ sử dụng PHP

Cơ sở dữ liệu MySQL

Thời gian hoàn thành thực tế 30 tháng Kết quả ước lượng bằng COCOMO II 62.2 Person-months

Yếu tố điều chỉnh quy mô Kết quả khảo sát Chi tiết

PREC Bình thường Đây là dự án đầu tiên làm về lĩnh vực này

FLEX Bình thường Đã từng làm qua các dự án có một số chức năng tương tự

RESL Ít Dự án đơn giản và hầu như không có nguy cơ, khách hàng không yêu cầu về thời gian và chi phí

TEAM Rất cao Các thành viên trong nhóm làm việc rất tốt

PMAT Không biết Không áp dụng

Bảng 4.3: Các yếu tố đều chỉnh quy mô của dự án Equator

Yếu tố điều chỉnh chi phí Kết quả khảo sát Chi tiết

Phần mềm doanh nghiệp cần đảm bảo tính ổn định để duy trì hoạt động kinh doanh hiệu quả, đồng thời phải có khả năng phục hồi nhanh chóng khi xảy ra sự cố Điều này giúp giảm thiểu gián đoạn kinh doanh, bảo vệ dữ liệu quan trọng và duy trì sự tin tưởng của khách hàng.

RUSE Cao Do viết theo thành phần nên tái sử dụng được

DOCU Rất thấp Không viết các tài liệu cho dự án

TIME Rất cao Hỗ trợ hoạt động 24/24

STOR Thấp Chỉ chiếm dụng một lượng bộ nhớ và đĩa cứng lưu trữ không đáng kể

ACAP Rất cao Có khả năng hiểu và phân thích yêu cầu từ khách hàng dễ dàng

PCAP Rất cao Có thể hiểu và phân tích hơn 90% yêu cầu từ khách hàng

PCON Rất cao Các thành viên luân chuyển giữa các dự án

APEX Rất cao Kinh nghiệm với dạng phần mềm được khoảng một năm

PLEX Rất cao Kinh nghiệm với nền tảng được một năm

LTEX Trung bình Kinh nghiệm với công cụ được một năm

TOOL Thấp Chỉ sử dụng với những mục đích cơ bản như bẩy lỗi hoặc sửa lỗi, có thể thiết kế giao diện

SITE Trung bình Chỉ sử dụng email, điện thoại, máy fax

Bảng 4.4: Các yếu tố đều chỉnh chi phí của dự án Equator

4.2.3 Đánh giá kết quả ước lượng

Dự án này trong thực tế cần hai người làm việc liên tục trong vòng 30 tháng Kết quả ước lượng cho thấy cần 62.2 PM tương đương hai người làm trong vòng 31.1 tháng Trong trường hợp này kết quả ước lượng tương cao hơn thực tế 1 tháng.

Dự án Hawa

Hawa là dự án quản lý danh mục sản phẩm các hàng hóa làm bằng gỗ

Nhân sự tham gia Ba lập trình viên

Số lượng dòng mã lệnh 50344

Ngôn ngữ sử dụng PHP, Perl, C

Cơ sở dữ liệu MySQL

Thời gian hoàn thành thực tế 20 tháng Kết quả ước lượng bằng COCOMO II 66.4 Person Months

Yếu tố điều chỉnh quy mô Kết quả khảo sát Chi tiết

PREC Bình thường Đây là dự án đầu tiên làm về lĩnh vực này

FLEX Bình thường Đã từng làm qua các dự án có một số chức năng tương tự

RESL Ít Dự án đơn giản và hầu như không có nguy cơ, khách hàng không yêu cầu về thời gian và chi phí

TEAM Rất cao Khản năng làm việc nhóm tốt, các thông tin luôn được chia sẻ trong nhóm một cách đầy dủ và chính xác nhất

PMAT Không biết Không áp dụng

Bảng 4.5: Các yếu tố đều chỉnh quy mô của dự án Hawa

Yếu tố điều chỉnh chi phí Kết quả khảo sát Chi tiết

RELY Bình thường Phần mềm được yêu cầu họat động ổn định để đảm bảo hiệu quả kinh doanh nhưng có khả năng khôi phục khi có sự cố xảy ra

RUSE Cao Do viết theo thành phần nên tái sử dụng được

DOCU Trung bình Có tài liệu tuy không đầy đủ

TIME Rất cao Hỗ trợ hoạt động 24/24

STOR Thấp Chỉ chiếm dụng một lượng bộ nhớ và đĩa cứng lưu trữ không đáng kể

ACAP Rất cao Có khả năng hiểu và phân thích yêu cầu từ khách hàng dễ dàng

PCAP Rất cao Có thể hiểu và phân tích hơn 90% yêu cầu từ khách hàng

PCON Rất thấp Hơn 48% của một năm

APEX Rất cao Kinh nghiệm với dạng phần mềm được khoảng một năm

PLEX Trung bình Kinh nghiệm với nền tảng được một năm

LTEX Trung bình Kinh nghiệm với công cụ được một năm

TOOL Thấp Chỉ sử dụng với những mục đích cơ bản như bẫy lỗi hoặc sửa lỗi, có thể thiết kế giao diện người dùng

SITE Trung bình Chỉ sử dụng email, điện thoại, máy fax

Bảng 4.6: Các yếu tố đều chỉnh chi phí của dự án Hawa

4.3.3 Đánh giá kết quả ước lượng

Dự án này trong thực tế cần ba người làm việc liên tục trong vòng 20 tháng Kết quả ước lượng cho thấy cần 66.4 PM tương đương ba người làm trong vòng 22 tháng Trong trường hợp này kết quả ước lượng cao hơn thực tế 2 tháng.

Dự án Plevo

Plevo là một hệ thống ERP dùng để quản lý một nhà máy sản xuất lớn theo tiêu chuần ISO – 14000 Hệ thống được triển khai cho các tập đoàn công nghiệp lớn tại Đức

Nhân sự tham gia Năm lập trình viên

Số lượng dòng mã lệnh 139.306

Ngôn ngữ sử dụng PHP, ASP, Perl

Cơ sở dữ liệu MySQL

Thời gian hoàn thành thực tế 36 tháng Kết quả ước lượng bằng COCOMO II 199.5 Person-months

Yếu tố điều chỉnh quy mô Kết quả khảo sát Chi tiết

PREC Bình thường Đây là dự án đầu tiên làm về lĩnh vực này

FLEX Bình thường Đã từng làm qua các dự án có một số chức năng tương tự

RESL Ít Dự án đơn giản và hầu như không có nguy cơ, khách hàng không yêu cầu về thời gian và chi phí

TEAM Rất cao Khản năng làm việc nhóm tốt, các thông tin luôn được chia sẻ trong nhóm một cách đầy dủ và chính xác nhất

PMAT Không biết Không áp dụng

Bảng 4.7: Các yếu tố đều chỉnh quy mô của dự án Plevo

Yếu tố điều chỉnh chi phí Kết quả khảo sát Chi tiết

RELY Bình thường Phần mềm được yêu cầu họat động ổn định để đảm bảo hiệu quả kinh doanh nhưng có khả năng khôi phục khi có sự cố xảy ra

RUSE Cao Do viết theo thành phần nên tái sử dụng được

DOCU Trung bình Có tài liệu tuy không đầy đủ

TIME Rất cao Hỗ trợ hoạt động 24/24

STOR Thấp Chỉ chiếm dụng một lượng bộ nhớ và đĩa cứng lưu trữ không đáng kể

ACAP Rất cao Có khả năng hiểu và phân thích yêu cầu từ khách hàng dễ dàng

PCAP Rất cao Có thể hiểu và phân tích hơn 90% yêu cầu từ khách hàng

PCON Rất thấp Hơn 48% của một năm

APEX Rất cao Kinh nghiệm với dạng phần mềm được khoảng một năm

PLEX Rất cao Kinh nghiệm với nền tảng rất tốt do đã thực hiện nhiều dự án tương tự

LTEX Trung bình Kinh nghiệm với công cụ được một năm

TOOL Thấp Chỉ sử dụng với những mục đích cơ bản như bẩy lỗi hoặc sửa lỗi, có thể thiết kế giao diện

SITE Trung bình Email, điện thoại, trao đổi có hình ảnh (Microsoft Skype, Yahoo).

Bảng 4.8: Các yếu tố đều chỉnh chi phí của dự án Plevo

4.4.3 Đánh giá kết quả ước lượng

Dự án này trong thực tế cần năm người làm việc liên tục trong vòng 36 tháng Kết quả ước lượng cho thấy cần 199.5 PM tương đương 5 người làm trong vòng 40 tháng Trong trường hợp này kết quả ước lượng lệch cao hơn thực tế khoảng 4 tháng.

Dự án Cartridge World

4.5.1 Giới thiệu Đây là một phần mềm chạy trên nền web thực hiện theo đơn đặt hàng của một công ty Phầm mềm này dùng để quản lý xuất nhập và tồn kho Đồng thời quản lý quy trình sản xuất các loại vật tư để sản xuất thành phẩm Xuất ra các báo cáo doanh thu, dự báo tồn kho

Nhân sự tham gia Một lập trình viên

Số lượng dòng mã lệnh 8220

Ngôn ngữ sử dụng PHP, HTML, JavàScript

Cơ sở dữ liệu MySQL

Thời gian hoàn thành thực tế 9 tháng Kết quả ước lượng bằng COCOMO II 9.3 Person-months

Yếu tố điều chỉnh quy mô Kết quả khảo sát Chi tiết

PREC Bình thường Đây là dự án đầu tiên làm về lĩnh vực này

FLEX Bình thường Đã từng làm qua các dự án có một số chức năng tương tự

RESL Ít Dự án đơn giản và hầu như không có nguy cơ, khách hàng không yêu cầu về thời gian và chi phí

TEAM Không biết Do chỉ có một người

PMAT Không biết Không áp dụng

Bảng 4.9: Các yếu tố đều chỉnh quy mô của dự án Cartrige World

Yếu tố điều chỉnh chi phí Kết quả khảo sát Chi tiết

RELY Rất thấp Phần mềm được yêu cầu họat động ổn định

RUSE Rất cao Do viết theo thành phần nên tái sử dụng được

DOCU Rất thấp Không viết các tài liệu cho dự án

TIME Rất cao Hỗ trợ hoạt động 24/24

PVOL Rất cao Có sự thay đổi nhanh chóng trong thời gian rất ngắn.

ACAP Bình thường Có khả năng hiểu và phân thích yêu cầu từ khách hàng dễ dàng

PCAP Rất cao Có thể hiểu và phân tích hơn 90% yêu cầu từ khách hàng

PCON Thấp Thời gian thực hiện từ 3 đến 6 tháng

APEX Trung bình Kinh nghiệm với dạng phần mềm được khoảng một năm

PLEX Trung bình Kinh nghiệm với nền tảng được một năm

LTEX Trung bình Kinh nghiệm với công cụ được một năm

TOOL Rất thấp Chỉ sử dụng với những mục đích cơ bản như bẩy lỗi hoặc sửa lỗi

SITE Rất cao Email, điện thoại, skype, trao đổi có hình ảnh có tính tương tác cao (Team Viewer)

Bảng 4.10: Các yếu tố đều chỉnh chi phí của dự án Cartrige World

4.5.3 Đánh giá kết quả ước lượng

Dự án này trong thực tế cần một người làm việc liên tục trong vòng 9 tháng Kết quả ước lượng cho thấy cần 9.3 PM tương đương một người làm trong vòng 9 tháng và khoảng một tuần Trong trường hợp này kết quả ước lượng tương đối chính xác Độ lệch hầu như không đáng kể.

Dự án GVillage

GVillage là một mạng xã hội thu nhỏ cho phép người dùng đăng các câu chuyện hoặc hình ảnh để những người khác tham gia tương tác Những tương tác này có thể bao gồm bình luận, chia sẻ và đóng góp tài chính, thường được gọi là "tiền boa" Khi một người dùng nhận được tiền boa, họ sẽ nhận được điểm thưởng có giá trị trên nền tảng Nhờ cơ chế này, GVillage khuyến khích sự tương tác và hỗ trợ cộng đồng, cho phép người dùng ghi nhận và tôn vinh những đóng góp có giá trị của nhau.

Nhân sự tham gia Hai lập trình viên

Số lượng dòng mã lệnh 14044

Ngôn ngữ sử dụng Javà, HTML, JavàScript

Cơ sở dữ liệu MySQL

Thời gian hoàn thành thực tế 6 tháng Kết quả ước lượng bằng COCOMO II 10.2 Person - Months

Yếu tố điều chỉnh quy mô Kết quả khảo sát Chi tiết

PREC Bình thường Đây là dự án đầu tiên làm về lĩnh vực này

FLEX Bình thường Đã từng làm qua các dự án có một số chức năng tương tự

RESL Ít Dự án đơn giản, khách hàng không yêu cầu về thời gian và chi phí

TEAM Rất cao Làm việc nhóm, hỗ trợ nhau tốt trong công việc

PMAT Không biết Không áp dụng

Bảng 4.11: Các yếu tố đều chỉnh quy mô của dự án GVillage

Yếu tố điều chỉnh chi phí Kết quả khảo sát Chi tiết

RELY Rất thấp Phần mềm được yêu cầu họat động ổn định và chính xác do có thực hiện giao dịch chuyển tiền trực tuyến

RUSE Rất cao Do viết theo thành phần nên tái sử dụng được

DOCU Rất thấp Không viết các tài liệu cho dự án

TIME Rất cao Hỗ trợ hoạt động 24/24

PVOL Rất thấp Nền tảng công nghệ sử dụng rất ít khi thay đổi do được chính khách hàng chỉ định

ACAP Rất cao Có khả năng hiểu và phân thích yêu cầu từ khách hàng dễ dàng

PCAP Rất cao Có thể hiểu và phân tích hơn 90% yêu cầu từ khách hàng

PCON Rất cao Thời gian thực hiện từ 3 đến 6 tháng

APEX Rất cao Kinh nghiệm với dạng phần mềm được khoảng một năm

PLEX Rất cao Kinh nghiệm với nền tảng được một năm

LTEX Cao Kinh nghiệm với công cụ được một năm

TOOL Rất thấp Chỉ sử dụng với những mục đích cơ bản như bẩy lỗi hoặc sửa lỗi

SITE Rất cao Email, điện thoại, skype, trao đổi có hình ảnh có tính tương tác cao (Team Viewer)

Bảng 4.12: Các yếu tố đều chỉnh chi phí của dự án GVillage

4.6.3 Đánh giá kết quả ước lượng

Dự án này trong thực tế cần hai người làm việc liên tục trong vòng 6 tháng Kết quả ước lượng cho thấy cần 10.2 PM tương đương hai người làm trong vòng hơn 5 tháng Độ lệch trong trường hợp này ước lượng thấp hơn thực tế 1 tháng.

Dự án Consultant Platform

Consultant Service là một trang web nơi người có nhu cầu tư vấn sẽ tìm đến các chuyên gia khi gặp các vần đề trong cuộc sống hoặc trong công việc Các chuyên gia sẽ liên lạc với họ và cho họ giải pháp Nếu họ đồng ý với giải pháp của chuyên gia đưa ra thì họ sẽ tiến hành thanh toán để trả tiền cho giải pháp đó

Nhân sự tham gia Hai lập trình viên

Số lượng dòng mã lệnh 18.952

Ngôn ngữ sử dụng Javà, HTML, JavàScript

Cơ sở dữ liệu MySQL

Thời gian hoàn thành thực tế 7 tháng Kết quả ước lượng bằng COCOMO II 14.2 Person Months

Yếu tố điều chỉnh quy mô Kết quả khảo sát Chi tiết

PREC Bình thường Đây là dự án đầu tiên làm về lĩnh vực này

FLEX Bình thường Đã từng làm qua các dự án có một số chức năng tương tự

RESL Ít Dự án đơn giản và hầu như không có nguy cơ, khách hàng không yêu cầu về thời gian và chi phí

TEAM Rất cao Làm việc nhóm, hỗ trợ nhau tốt trong công việc

PMAT Không biết Không áp dụng

Bảng 4.13: Các yếu tố đều chỉnh quy mô của dự án Consultant Platform

Yếu tố điều chỉnh chi phí Kết quả khảo sát Chi tiết

RELY Rất thấp Phần mềm được yêu cầu họat động ổn định và chính xác do có thực hiện giao dịch chuyển tiền trực tuyến

RUSE Rất cao Do viết theo thành phần nên tái sử dụng được

DOCU Rất thấp Không viết các tài liệu cho dự án

TIME Rất cao Hỗ trợ hoạt động 24/24

PVOL Rất thấp Nền tảng công nghệ sử dụng rất ít khi thay đổi do được chính khách hàng chỉ định

ACAP Rất cao Có khả năng hiểu và phân thích yêu cầu từ khách hàng dễ dàng

PCAP Rất cao Có thể hiểu và phân tích hơn 90% yêu cầu từ khách hàng

PCON Rất cao Thời gian thực hiện từ 3 đến 6 tháng

APEX Rất cao Kinh nghiệm với dạng phần mềm được khoảng một năm

PLEX Rất cao Kinh nghiệm với nền tảng được một năm

LTEX Cao Kinh nghiệm với công cụ được một năm

TOOL Rất thấp Chỉ sử dụng với những mục đích cơ bản như bẩy lỗi hoặc sửa lỗi

SITE Rất cao Email, điện thoại, skype, trao đổi có hình ảnh có tính tương tác cao (Team Viewer)

Bảng 4.14: Các yếu tố đều chỉnh chi phí của dự án Consultant Platform

4.7.3 Đánh giá kết quả ước lượng

Dự án này trong thực tế cần hai người làm việc liên tục trong vòng 7 tháng Kết quả ước lượng cho thấy cần 14.2 PM tương đương hai người làm trong vòng hơn 7 tháng và một tuần Độ lệch trong trường hợp này là ước lượng nhiều hơn khoản một tuần so với thực tế.

Dự án Hr-Solution-Vn

Hr-Solution-Vn là dự án về một trang web quản trị hồ sơ nhân sự để phục vụ cho một công ty môi giới việc làm

Nhân sự tham gia Hai lập trình viên

Số lượng dòng mã lệnh 19930

Ngôn ngữ sử dụng Javà, HTML, JavàScript

Cơ sở dữ liệu MySQL

Thời gian hoàn thành thực tế 7 tháng Kết quả ước lượng bằng COCOMO II 14.9 Personal Months

Yếu tố điều chỉnh quy mô Kết quả khảo sát Chi tiết

PREC Bình thường Đây là dự án đầu tiên làm về lĩnh vực này

FLEX Bình thường Đã từng làm qua các dự án có một số chức năng tương tự

RESL Ít Dự án đơn giản và hầu như không có nguy cơ, khách hàng không yêu cầu về thời gian và chi phí

TEAM Rất cao Làm việc nhóm, hỗ trợ nhau tốt trong công việc

PMAT Không biết Không áp dụng

Bảng 4.15: Các yếu tố đều chỉnh quy mô của dự án HrSolutionVn

Yếu tố điều chỉnh chi phí Kết quả khảo sát Chi tiết

RELY Rất thấp Phần mềm được yêu cầu họat động ổn định và chính xác do có thực hiện giao dịch chuyển tiền trực tuyến

RUSE Rất cao Do viết theo thành phần nên tái sử dụng được

DOCU Rất thấp Không viết các tài liệu cho dự án

TIME Rất cao Hỗ trợ hoạt động 24/24

PVOL Rất thấp Nền tảng công nghệ sử dụng rất ít khi thay đổi do được chính khách hàng chỉ định

ACAP Rất cao Có khả năng hiểu và phân thích yêu cầu từ khách hàng dễ dàng

PCAP Rất cao Có thể hiểu và phân tích hơn 90% yêu cầu từ khách hàng

PCON Rất cao Thời gian thực hiện từ 3 đến 6 tháng

APEX Rất cao Kinh nghiệm với dạng phần mềm được khoảng một năm

PLEX Rất cao Kinh nghiệm với nền tảng được một năm

LTEX Cao Kinh nghiệm với công cụ được một năm

TOOL Rất thấp Chỉ sử dụng với những mục đích cơ bản như bẩy lỗi hoặc sửa lỗi

SITE Rất cao Email, điện thoại, skype, trao đổi có hình ảnh có tính tương tác cao (Team Viewer)

Bảng 4.16: Các yếu tố đều chỉnh chi phí của dự án HrSolutionVn

4.8.3 Đánh giá kết quả ước lượng

Dự án này trong thực tế cần hai người làm việc liên tục trong vòng 7 tháng Kết quả ước lượng cho thấy cần 14.9 PM tương đương hai người làm trong vòng khoảng 8 tháng Độ lệch trong trường hợp này là ước lượng nhiều một tháng so với thực tế.

Tóm tắt chương bốn

Chương này tập trung vào việc tổng hợp các dữ liệu thu được từ 8 dự án của công ty Edge-works Software Ltd bằng cách sử dụng bảng câu hỏi và phỏng vấn trực tiếp đối với những người quản lý hoặc những người tham gia trong dự án Những người này cần phải có hiểu biết chắc chắn về lĩnh vực phần mềm nói chung và dự án nói riêng Các dữ liệu thu được sau đó được chuyển thành các tham số đầu vào cho việc ước lượng bằng mô hình COCOMO II thông qua công cụ hỗ trợ

Bằng cách so sánh kết quả ước lượng bằng COCOMO II và kết quả thực tế ta có thể thấy được độ chính xác của phương pháp này.

Ngày đăng: 24/09/2024, 14:45

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[17]. Boehm, B. (1981), Software Engineering Economics, Prentice Hall Sách, tạp chí
Tiêu đề: Software Engineering Economics
Tác giả: Boehm, B
Năm: 1981
[18]. Boehm, B. (2000), COCOMO II Model Definition Manual, University of Southern California Sách, tạp chí
Tiêu đề: COCOMO II Model Definition Manual
Tác giả: Boehm, B
Năm: 2000
[21]. Barry Boehm, Bradford Clack, Ellis Horiwtz, Chris Westland, Cost Models for Future Software Life Cycle Processes: COCOMO 2.0, USC Center for Software Engineering Sách, tạp chí
Tiêu đề: Cost Models for Future Software Life Cycle Processes: COCOMO 2.0
[22]. Hareton Leung and Zang Fan, Software Cost Estimation, Department of Computing The HongCong Polytechnic University Sách, tạp chí
Tiêu đề: Software Cost Estimation
[23]. Barry Boehm, Chris Abts, Software Development Cost Estimation Approaches – A Survey, University of Southern California Sách, tạp chí
Tiêu đề: Software Development Cost Estimation Approaches – A Survey
[24]. Barry Boehm (1996), Tutorial: Software Cost Estimation with COMOMO 2.0, University of Southern California Sách, tạp chí
Tiêu đề: Tutorial: Software Cost Estimation with COMOMO 2.0
Tác giả: Barry Boehm
Năm: 1996
[25]. Karen Lum, Michael Bramble, Jairus Hihn, John Hackney, Mori Khorrami, Erik Monson (2003), Handbook of Software Cost Estimation, Jet Propulsion Laboratory, Pasadena, California Sách, tạp chí
Tiêu đề: Handbook of Software Cost Estimation
Tác giả: Karen Lum, Michael Bramble, Jairus Hihn, John Hackney, Mori Khorrami, Erik Monson
Năm: 2003
[26]. Barry Boehm, Ricardo Velerdi, Jo Ann Land and A. Winsor Brown, COCOMO Suite Methodology and Evolution, University of Southern California Sách, tạp chí
Tiêu đề: COCOMO Suite Methodology and Evolution
[29]. William Roetzheim, Estimating Software Costs, Cost Xpert Group, Inc Sách, tạp chí
Tiêu đề: Estimating Software Costs
[30]. Ali Idri, Alain Abbrain, COCOMO Cost Model Using Fuzzy Logic, Research Lab in Software Engineering Sách, tạp chí
Tiêu đề: COCOMO Cost Model Using Fuzzy Logic
[1]. Wikipedia, http://en.wikipedia.org/wiki/COCOMO, xem lần cuối ngày 1/12/2011 Link
[2]. Sprinroot, http://spinroot.com/spin/Doc/course/Standish_Survey.htm, xem lần cuối ngày 1/12/2011 Link
[3]. Wikipedia, http://en.wikipedia.org/wiki/Source_lines_of_code, xem lần cuối ngày 1/1/2012 Link
[4]. Infoq, http://www.infoq.com/news/2012/01/it-project-success-2011, xem lần cuối ngày 3/3/2012 Link
[5]. Sprinroot, http://www.spinroot.com/spin/Doc/course/Standish_Survey.htm , xem lần cuối ngày 1/5/2012 Link
[6]. Wikipedia, http://en.wikipedia.org/wiki/Software, xem lần cuối ngày 10/4/2012 Link
[7]. Wikipedia, http://en.wikipedia.org/wiki/Cost_estimation_models, xem lần cuối ngày 1/2/2012 Link
[8]. Wikipedia, http://vi.wikipedia.org/wiki/Phần_mềm, xem lần cuối ngày 1/4/2012 Link
[9]. Wikipedia, http://vi.wikipedia.org/wiki/Quản_lý_dự_án_phần_mềm, xem lần cuối ngày 1/4/2012 Link
[10]. Wikipedia, http://en.wikipedia.org/wiki/Software_project_management , xem lần cuối ngày 1/4/2012 Link

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

TÀI LIỆU LIÊN QUAN

w