Chương 26
Nhóm 13:
Huỳnh Ngọc Ân MSSV : 070003T
Ngô Thị Mỹ Hạnh MSSV : 070096T
Lê Thị Mỹ Hằng MSSV : 070078T
( Software cost estimation )
Mục Tiêu (Objectives )
Mục tiêu của chương này là để giới thiệu các kỹ thuật lập dự toán
chi phí và nỗ lực cần thiết cho sản xuất phần mềm:
a. Hiểu được nguyên tắc cơ bản của phần mềm chi phí và lý do tại sao
giá của phần mềm có thể không được trực tiếp liên quan đến chi phí
phát triển của nó.
b. Mô tả các số liệu để đánh giá năng suất phần mềm
c. Giải thích tại sao các kỹ thuật khác nhau nên được sử dụng để ước
lượng phần mềm
d. Hiểu các nguyên tắc của mô hình COCOMO II ,thuật toán dự toán
chi phí.
Nội Dung (Contents)
26.1 Năng suất (Productivity)
26.2 Các kỷ thuật ước lượng ( Estimation techniques)
26.3 Mô hình chi phí thuật toán ( Algorithmic cost
modelling )
26.4 Nhân lực và thời gian dự án (Project duration and
staffing)
Nội Dung (Contents)
Dự toán liên quan đến việc trả lời các câu hỏi sau đây:
1. Làm thế nào nhiều nỗ lực là cần thiết để hoàn thành từng hoạt
động?
2. Thời gian là cần thiết để hoàn thành một hoạt động?
3. Tổng chi phí của từng hoạt động?
Dự án dự toán và lập kế hoạch dự án thường được tiến hành xen kẽ
với nhau.
Tuy nhiên, bạn có thể phải làm một số dự toán chi phí trước khi kế
hoạch chi tiết được vẽ lên.
Những ước tính ban đầu có thể được sử dụng để thiết lập một ngân
sách cho dự án hoặc để thiết lập một mức giá của phần mềm cho
khách hàng.
Các Thành Phần Chi Phí Của Phần Mềm
Có ba thông số liên quan đến việc tính toán tổng chi phí của một dự án
phát triển phần mềm:
• Chi phí phần cứng và phần mềm
• Du lịch và chi phí đào tạo
• Chi phí nỗ lực (Mức lương của các kỹ sư tham gia dự án)
Chi phí chiếm ưu thế là chi phí công sức.
Chi phí du lịch phong phú, có thể cần thiết khi dự án được phát triển
tại các địa điểm khác nhau, các chi phí đi lại thường là một phần nhỏ
trong chi phí công sức.
Máy tính đủ mạnh để phát triển phần mềm là tương đối rẻ.
Các Thành Phần Chi Phí Của Phần Mềm
Các chi phí sau đây là một phần của tổng chi phí nổ lực:
1. Chi phí của việc cung cấp hệ thống sưởi ấm và chiếu sáng không
gian văn phòng
2. Chi phí của các nhân viên hỗ trợ như kế toán, quản trị, quản lý hệ
thống và kỹ thuật
3. Chi phí kết nối mạng và truyền thông
4. Chi phí của cơ sở trung ương như là một thư viện hoặc cơ sở giải trí
5. Chi phí an sinh xã hội lợi ích như lương hưu, bảo hiểm y tế.
Chi Phí Và Giá Cả
Một khi dự án được triển khai, quản lý dự án phải thường xuyên cập
nhật chi phí và dự toán kế hoạch. Điều này giúp quá trình lập kế hoạch
và sử dụng hiệu quả các nguồn lực.
Nếu chi phí thực tế lớn hơn nhiều so với dự toán, người quản lý dự án
phải áp dụng các nguồn lực bổ sung cho dự án, sửa chữa các công việc
phải làm.
Phần mềm định giá phải được tiến hành khách quan với mục đích dự
đoán chính xác các chi phí phát triển phần mềm. Tuy nhiên, mối quan
hệ giữa chi phí dự án và giá tính phí cho khách hàng thường không
đơn giản.
Các tổ chức kinh tế, chính trị và kinh doanh được xem xét ảnh hưởng
tới giá tính phí.
•
26.1 Năng suất (Productivity)
Năng suất là số đơn vị đầu ra trên số giờ làm việc
Hình 26.1 yếu tố ảnh hưởng phần mềm giá cả
Yếu Tố (Factor) Mô tả (Description)
-
Cơ hội thị trường
(Market
Opportunity)
- Một tổ chức phát triển có thể báo giá thấp
bởi vì nó muốn tiến xa hơn trong giai đoạn
mới của thị trường phần mềm
- Chi phí ước tính
không chắc chắn
(Cost estimate
uncertainty)
-
Điều kiện hợp
đồng (Cost estimate
uncertainty)
- Yêu cầu, biến
động (Requirement;
volatility)
Chấp nhận lợi nhuận thấp trên một dự án có thể
cho các tổ chức cơ hội để kiếm lợi nhuận lớn hơn
sau đó. Những kinh nghiệm thu được cũng có thể
cho phép sản phẩm mới được pháp triển
-
Nếu một tổ chức không chắc chắn về ước tính chi
phí của nó, nó có thể làm tăng giá của mình bằng
một số dự phòng trên và cao hơn lợi nhuận bình
thường.
-
Một khách hàng có thể sẵn sàng để cho phép các
nhà phát triển giữ lại quyền sở hữu của mã nguồn
và tái sử dụng nó trong các dự án khác.
-
Nếu các yêu cầu có khả năng thay đổi, một tổ
chức có thể hạ giá thấp hơn để giành được một hợp
đồng Sau khi nhận được hợp đồng, giá cao có thể
được tính phí cho các thay đổi đối với yêu cầu.
- Tài chính y tế
-
Phát triển trong tài chính khó khăn có thể thấp hơn
giá để đạt được một hợp đồng
Năng suất ước tính thường được đo lường dựa trên các thuộc tính của
phần mềm chia cho tổng số nỗ lực cần thiết để phát triển. Các loại số liệu
đã được sử dụng:
1. Số đo kích thước ( ví dụ: số dòng lệnh)
2. Số đo chức năng ( ví dụ: số chức năng được tạo ra trên một khoảng thời
gian)
26.1 Năng suất Phần mềm.
Tính tổng số điểm chức năng trong một chương trình bằng cách đo
hay đánh giá các tính năng chương trình sau đây:
Hình 26.2 Thời gian phát triển hệ thống
26.1 Năng suất Phần mềm.
Bạn có thể tính toán số điêm chức năng (UFC) bằng cách nhân mỗi
ước tính ban đầu của trọng lượng với tổng hợp tất cả các giá trị.
Số lượng điểm đối tượng trong một chương trình là một ước tính trọng
lượng của:
1. Số lượng màn hình riêng biệt đó là màn hình hiển thị đơn giản được
tính là 1 đối tượng điểm, màn hình phức tạp vừa phải tính là 2, và màn
hình rất phức tạp tính là 3 điểm đối tượng.
26.1 Năng suất Phần mềm.
2. Số lượng các báo cáo được sản xuất đối với báo cáo đơn giản là 2
điểm đối tượng, đối với báo cáo vừa phức tạp là 5, và cho các báo cáo
rằng có thể sẽ là khó khăn để sản xuất là 8 điểm đối tượng.
3. Số lượng module bằng các ngôn ngữ lập trình bắt buộc như Java,
C++ mà phải được phát triển để bổ sung mã lập trình cơ sở dữ liệu,
mỗi một module được tính là 10 điểm đối tượng.
Ưu điểm của điểm đối tượng trên điểm chức năng là được dễ dàng
hơn để ước tính từ một đặc điểm kỹ thuật phần mềm cấp cao, điểm đối
tượng chỉ quan tâm đến màn hình, báo cáo và các module bằng các
ngôn ngữ lập trình thông thường. Không quan tâm đến chi tiết thực
hiện, và các yếu tố phức tạp tính toán đơn giản hơn nhiều.
26.1 Năng suất Phần mềm.
Ước tính kích thước mã cho một ứng dụng được tính như sau:
AVC: số dòng mã trung bình
Giá trị của AVC khác nhau 200-300 LOC / FP trong ngôn ngữ lắp ráp,
2-40 LOC / FP cho một ngôn ngữ lập trình cơ sở dữ liệu như SQL.
Năng suất lập trình của các cá nhân làm việc trong một tổ chức bị ảnh
hưởng bởi một số yếu tố. Quan trọng nhất trong số này được tóm tắt
trong hình 26.3.
Code size = AVC x Number of function points
(Mã kích thước = AVC x Số điểm chức năng)
- Kinh nghiệm miền ứng dụng
(Application domain
experience)
- Chất lượng quy trình dự án
(Process quality )
- Kích thướt dự án (Project
size)
- Công nghệ hỗ trợ
(Technology support )
- Môi trường làm việc
(Working environment )
-
Kiến thức về các miền ứng dụng là rất
cần thiết cho các kỹ sư phát triển phần
mềm .
-
Quá trình phát triển có thể ảnh hưởng
đáng kể đến năng suất. (chương 28)
-
Các dự án lớn hơn, thời gian cần thiết
nhiều hơn . Ít thời gian có sẵn để phát
triển nên năng suất cá thể là giảm.
-
Công nghệ hỗ trợ tốt như các công cụ
CASE và hệ thống quản lý cấu hình có
thể cải thiện năng suất.
-
Một môi trường yên tĩnh làm việc với
khu vực làm việc tư nhân góp phần cải
thiện năng suất.
Hình 26.3 yếu tố ảnh hưởng đến năng suất công nghệ phần mềm
26.2 Các kỹ thuật ước lượng
(Estimation techniques)
Không có cách nào đơn giản để thực hiện một ước tính chính xác các
nỗ lực cần thiết để phát triển một hệ thống phần mềm
•
Ước tính ban đầu được dựa trên các thông tin không đầy đủ trong
yêu cầu người sử dụng.
•
Các phần mềm có thể chạy trên các máy tính không quen thuộc
hoặc sử dụng công nghệ mới.
•
Những người tham gia trong dự án này có thể chưa biết.
Tất cả những kỹ thuật dựa vào những đánh giá trên kinh nghiệm của
người quản lý dự án, sử dụng kiến thức của họ về các dự án trước đây
để đi đến ước tính của các nguồn lực cần thiết cho dự án.
26.2 Các kỹ thuật ước lượng
(Estimation techniques)
Tuy nhiên, có thể có sự khác biệt quan trọng giữa các dự án trong quá
khứ và tương lai. Nhiều phương pháp phát triển mới và kỹ thuật đã
được giới thiệu trong 10 năm qua. Một số ví dụ về những thay đổi có
thể ảnh hưởng ước tính dựa trên kinh nghiệm bao gồm:
1. Đối tượng được phân phối hệ thống hơn
2. Sử dụng dịch vụ web
3. Sử dụng hệ thống ERP hay cơ sở dữ liệu trung tâm
4. Sử dụng phần mềm off-the-shelf
5. Phát triển và tái sử dụng
Hình 26,4 Dự toán chi phí kỹ thuật
Kỹ thuật Mô tả
- Thuật toán xây dựng mô hình
chi phí (Algorithmic cost:
modelling)
- Ý kiến chuyên gia (Expert
judgement)
-
Một mô hình được phát triển bằng
cách sử dụng chi phí thông tin lịch sử
có liên quan một số phần mềm số liệu
(thường là kích thước) với ước tính chi
phí dự án được làm từ đó số liệu và mô
hình dự báo các nỗ lực cần thiết.
-
- Một số chuyên gia về phát triển kỹ
thuật phần mềm được đề xuất và được
giới thiệu để áp dụng các tên miền.
Ước tính Chi phí dự án được so sánh và
thảo luận. Quá trình lặp lại cho đến khi
đạt được thỏa thuận về dự toán ước tính
- Đánh giá tương tự
(Estimation by analogy)
- Luật Parkinson
(Parkinson's Law )
- Giá cả để thắng thầu
(Pricing to win)
-
Kỹ thuật này được áp dụng khi các dự án cùng
lĩnh vực. Chi phí của một dự án mới là ước
tính của tương tự với các dự án này hoàn
thành.
-
-Chi phí phụ thuộc vào thời gian và số nhân
công.Chi phí xác định bởi nguồn tài nguyên có
sẵn hơn là đánh giá khách quan. Nếu phần
mềm đã được giao trong 12 tháng và 5 người
có sẵn, các nỗ lực cần thiết được ước tính là 60
người-tháng.
-
- Phụ thuộc vào năng lực khách hàng.Những
nỗ lực phụ thuộc vào ngân sách của khách
hàng và không phải trên các chức năng phần
mềm.