Tổng quan v`ềtìm hiểu và ước lượng giá thành phần m`ân Tìm hiểu và ước lượng giá thành phần mềm là một bước quan trọng và không thê thiếu trong quá trình phát triển phần mềm, giúp đảm bả
Trang 1TIM HIEU VE UOC LUQNG
GIA THANH PHAN MEM
Giảng viên: Ths Đặng Hữu Nghị
Trang 2Stt | Công việc Người thựchiện Vai trò T¡ lệ
(trưởng công việc
nhóm/thành viên)
lượng phân mêm
Giới thiệu đề tài
giải thuật trong dự | Ngọc
Nhân viên và
khoảng thời gian
của dựa ân
Trang 3
MUC LUC MỤC LLỤC Án n1 SH TH SH TH ng T1 ng TH ng TH TT TH TT HT TT TH ngư 2 DANH MỤC CÁC HÌNH VẼ - -Ặ- LG c St TH TS ST TT TH TT HH kg ng ncrcrưếp 2
CHƯƠNG | TIM HIEU VE UGC LUONG GIÁ THÀNH PHẢN MÈM 5 1.1 Giới thiệu đề tài tìm hiểu ước lượng giá thành phần mềm . - 5
ID ¡(0o 00005 Ti iđi((dăä 6 1.2.1 Giới thiệu về ước lượng phần mềm . + 2+ +s+s++s+#+e£z£zszeszszz+zzs2 6
1.2.2 Nang 8o iu 0 dd 7
1.2.3 Kỹ thuật ước lượn - -c s11 SH to Hà 12 1.2.4 Mô hình chỉ phí thuật toán - HH HH nà 21
1 060) 0099995 22 1.2.6 Mô hình chi phí giải thuật trong dự án SH ve 29 1.2.7 Nhân viên và khoảng thời ø1an dự án -csẶSSSSSSSsnsnkrrtrrrxrrxkrre 31
tin gi 1 ((ÄdÄdQ||:ÄH)) 34
DANH MỤC CÁC HÌNH VẼ
Hình 1-2 Analogous EstimatiOIn - 1n nh nh non nh Hiếp 15
Hình 1-3 Function Point AnalWSiS cọ KH KH gi 16 Hình 1-4 Mô hình toán học như COCOMO cu nh re 17 Hình 1-5 Bottom-Úp Estimation HH HH HH HH KH 18 Hình 1-6 Top-Down EstimafiOn HH ok kh 19 Hình 1-7 Ba loại chính trong dự án COCOMO cà TQ HS HH nh nhe rre 23
Trang 4
MỞ ĐẦU
1 Tổng quan v`ềtìm hiểu và ước lượng giá thành phần m`ân
Tìm hiểu và ước lượng giá thành phần mềm là một bước quan trọng và không thê thiếu trong quá trình phát triển phần mềm, giúp đảm bảo rằng dự án
sẽ hoàn thành trong phạm vi ngân sách và thời gian đã đề ra Quá trình này bao gồm việc xác định chỉ phí, tài nguyên và thời gian cần thiết đề phát triển và triên khai một hệ thông phần mềm, từ giai đoạn lên ý tưởng ban đầu cho đến khi sản phẩm được bản giao hoàn thiện Một ước lượng chính xác không chỉ giúp kiểm soát chỉ phí mà còn hỗ trợ trong việc quản lý rủi ro, lập kế hoạch, và duy trì sự minh bạch với khách hàng cũng như các bên liên quan
Có nhiều phương pháp ước lượng giá thành phần mềm, mỗi phương pháp đều có ưu và nhược điểm riêng Phương pháp chuyên gia dựa trên kinh nghiệm và kiến thức của những người có kinh nghiệm trong lĩnh vực, tuy nhanh chóng nhưng lại phụ thuộc nhiều vào chuyên môn cá nhân Phương pháp mô hình hóa, chăng hạn như mô hình COCOMO, dựa vào các công thức và mô hình toán học để đưa ra dự đoán dựa trên các yếu tố như kích thước và độ phức tạp của phần mềm Ngoài ra, phương pháp phân tích điểm chức năng sẽ dựa vào
số lượng và mức độ phức tạp của các chức năng phần mềm cần phát triển dé ước lượng chị phí Phương pháp dựa trên lịch sử sẽ sử dụng đữ liệu tử các dự án tương tự trong quá khứ để đưa ra dự đoán, giúp ước lượng có cơ sở và thực tế hơn
Nhiều yếu tổ có thể ảnh hưởng đến việc ước lượng giá thành phần mềm, bao gồm kích thước và độ phức tạp của dự án, kỹ năng và kinh nghiệm của đội ngũ phát triển, yêu cầu chất lượng của sản phâm, cũng như thời hạn cần hoàn thành Đặc biệt, sự thay đổi yêu cầu của khách hàng trong quá trình phát triển cũng là một yếu tô gây khó khăn, làm cho việc ước lượng trở nên phức tạp hơn Ngoài ra, việc thiếu thông tin chỉ tiết ở giai đoạn đầu hoặc phải đối mặt với công nghệ mới chưa quen thuộc cũng làm tăng thách thức trong ước lượng Nhìn chung, ước lượng giá thành phần mềm không chỉ là một công việc mang tính kỹ thuật mà còn đòi hỏi sự nhạy bén, kinh nghiệm, và khả năng dự đoán Điều này đóng vai trò quan trọng trong việc đảm bảo rằng dự án được quản lý hiệu quả, hoàn thành đúng thời gian và trong phạm vi ngân sách, đồng thời đáp ứng được kỳ vọng của khách hàng Một quá trình ước lượng hiệu quả
Trang 5
sé giup toi uu hoa nguôn lực, giảm thiểu rủi ro, và tăng cường khả năng thành công của dự án phân mêm
Trang 6CHƯƠNG 1 TÌM HIỂU VỀ ƯỚC LƯỢNG GIÁ THÀNH PHAN
MỀM
1.1 Giới thiệu đ êtài tìm hiểu ước lượng giá thành phần m`ân
Ước lượng giá thành phần mềm là một khía cạnh cực kỳ quan trọng trong quản lý dự án phần mềm, đóng vai trò then chốt không chỉ trong việc lập
kế hoạch và phân bổ nguồn lực mà còn là yếu tố quyết định đến thành công của các dự án phát triên phần mềm Trong bối cảnh công nghệ thông tin không ngừng phát triển và thay đôi, các dự án phần mềm ngày càng trở nên phức tạp, với nhiều yếu tổ cần phải xem xét và đánh giá Từ kích thước và độ phức tạp của phần mềm, yêu cầu từ phía khách hàng, đến các yếu tổ liên quan đến môi trường phát triên và những rủi ro tiềm ấn, tất cả đều ảnh hưởng lớn đến quy trinh ước lượng chi phí Vì vậy, việc có một quy trình ước lượng chính xác vả hợp lý là điều kiện tiên quyết để đảm bảo các nguồn lực tài chính và nhân sự được phân bổ một cách hợp lý, đồng thời giúp tránh được các vấn đề phát sinh
do chi phí vượt dự kiến
Đề tài “Tìm hiểu về Ước lượng Giá thành Phần mềm” tập trung vào việc
nghiên cứu kỹ lưỡng các kỹ thuật, phương pháp và mô hình sử dụng để dự đoán và ước lượng chỉ phí trong các dự án phần mềm Đề tài không chỉ dừng lại ở việc giới thiệu các phương pháp ước lượng đơn giản mà còn ổi sâu vào việc phân tích các yếu tố ảnh hưởng trực tiếp và gián tiếp đến năng suất phát triển phần mềm, từ đó làm rõ tầm quan trọng của việc đánh giá toàn diện các khía cạnh liên quan Các kỹ thuật ước lượng phô biến như ước lượng dựa trên kinh nghiệm, ước lượng từ dưới lên, và ước lượng tử trên xuống sẽ được nghiên cứu chỉ tiết Ngoài ra, để tài cũng sẽ thảo luận về các mô hình chỉ phí thuật toàn hiện đại, chăng hạn như COCOMO (Constructive Cost Model), một trong những mô hình nỗi tiếng và được sử dụng rộng rãi để ước lượng chỉ phí phần mềm dựa trên nhiều yếu tố phức tạp
Mục tiêu chính của đề tài là cung cấp một cái nhìn toàn diện và sâu sắc
về quy trình ước lượng chỉ phí phần mềm, từ lý thuyết đến thực tiễn, nhằm giúp các nhà quản lý dự án, kỹ sư phần mềm, và những bên liên quan hiểu rõ hơn về tầm quan trọng của việc ước lượng chính xác Điều này không chỉ đảm bảo sự thành công của dự án mà còn giúp quản lý tốt hơn các nguồn lực tài chính, thời gian và nhân sự Hơn nữa, đề tài sẽ trình bày một cách chị tiết
Trang 7
những thách thức và hạn chế mà các nhà quản lý dự án thường phải đối mặt trong quá trình ước lượng chi phí, bao gồm việc đối phó với sự không chắc chăn và thay đối liên tục của yêu cầu phần mềm Đồng thời, những khuyến nghị về cách tiếp cận hiệu quả trong việc sử đụng các mô hình và kỹ thuật ước lượng khác nhau sẽ được đưa ra, nhằm giúp các nhà quản lý dự án có thể lựa chọn và áp dụng phù hợp theo từng tình huống cụ thể
Thông qua đề tài này, người nghiên cứu không chỉ có cơ hội nắm bắt và làm quen với các khái niệm cơ bản về ước lượng chi phí phần mềm mà còn tiếp cận với những xu hướng mới, những phương pháp tiên tiến trong lĩnh vực này Điều này sẽ giúp họ phát triển kỹ năng và kiến thức để áp dụng một cách linh hoạt và hiệu quả vào thực tiễn quản lý dự án phần mềm, giúp tối ưu hóa các nguồn lực, giảm thiêu rủi ro, và gia tăng khả năng thành công của dự án trong môi trường công nghệ thông tin đầy biến động ngày nay
1.2 Nội dung
1.2.1 Giới thiệu v ước lượng phì m`ần
° Ước lượng giá thành phần mềm là quá trình dự đoán chi phí cần thiết dé phát triển, triển khai, bảo trì và vận hành một dự án phần mềm từ đầu đến cuối
« - Đây là một trong những bước cốt lõi của quản lý dự án phần mềm, đóng vai trò quan trọng trong việc xác định phạm vi ngân sách, lập kế hoạch tài chính và phân bỗ nguồn lực một cách hợp lý để đảm bảo dự án diễn ra su6n sẻ và hiệu quả
* Ước lượng giá thành không chỉ bao gồm chỉ phí phát triển phần mềm như
chi phi nhân lực (lập trình viên, kiểm thử viên, nhà thiết kế), chi phí công
nghệ (phần cứng, phần mềm, giấy phép) mà còn phải tính đến các yếu tô phụ trợ như chỉ phí quản lý dự án, chi phi dao tao va hé trợ sau triển khai
« - Bên cạnh đó, các yếu tô khác như kích thước phần mềm, độ phức tạp kỹ thuật, rủi ro liên quan, và yêu cầu từ phía khách hàng cũng ảnh hưởng lớn đến quá trình ước lượng
* Qua trình này đòi hỏi sự phối hợp chặt chế giữa nhiều bên liên quan trong
dự án, bao gồm nhà phát triển phần mềm, nhà quản lý dự án, và khách hàng, để đảm bảo rằng các ước lượng phản ánh được nhu cầu thực tế và có tinh kha thi cao
° Mục tiêu chính của ước lượng giá thành phần mềm là đảm bảo dự án có thê hoàn thành trong giới hạn ngân sách đã định, đồng thời tối ưu hóa việc
6
Trang 8Tóm lại, Ước lượng giá thành phan mém là một quá trình quan trọng trong quản lý dự án phần mèm Nó giúp xác định nguồn lực, thời gian, và chỉ phi can thiết dé phát triên phản mềm Quy trình này không chỉ cần thiết cho việc lập kế hoạch và phân bỏ nguồn lực, mà còn quan trọng trong việc đảm bảo răng dự án hoàn thành đúng thời gian và trong phạm vi ngân sách
1.2.2 Năng suât phì m`ãn
Năng suất phân mềm là một chỉ só quan trọng để đánh giá hiệu quả của quá trình phát triền phần mềm, cung cáp cái nhìn rõ ràng vẻ khả năng hoàn thành công việc của nhóm phát triên trong một khoảng thời gian nhát định Đây là một công cụ hữu ích cho
các nhà quản lý dự án, giúp theo dõi tiến độ, đánh giá hiệu quả của các phương pháp phát triển, và đưa ra các điều chỉnh càn thiết đề tối ưu hóa quy trình Có hai phương pháp phô biến để đo lường năng suất phần mềm:
Lines of Code (LOC): Phương pháp này đo lường năng suất dựa trên số
lượng dòng mã mà nhóm phát triên đã viết Mặc dù dễ áp dụng và được Sử
dụng rộng rãi, nhưng LOC có hạn ché vì nó không phản ánh được độ phức
tạp của dự án Một dự án với số lượng dòng mã ít có thẻ rất phức tạp,
trong khi dự án có nhiều dòng mã có thê đơn giản hơn Do đó, LOC có thể
không phản ánh chính xác giá trị thực sự mà phan mém mang lai
Function Points (FP): Khac véi LOC, phuong phap Function Points đánh
giá năng suất dựa trên số lượng chức năng mà phần mềm cung cáp cho
người dùng FP tập trung vào giá trị của phần mềm, giúp đo lường chính xác hơn những gì phần mèm thực hiện Ngoài ra, FP không phụ thuộc vào ngôn ngữ lập trình, điều này giúp việc so sánh năng suất giữa các dự án sử
dụng ngôn ngữ lập trình khác nhau trở nên dễ dàng hơn Function Points thường được xem là phương pháp đo lường hiệu quả hơn LOC vì nó tập
trung vào khía cạnh chức năng và giá trị mà phan mém cung cáp
A Line of code (LOC)
a Cac loai LOC
Source LOC: Sé dong m4 nguàn thực tế được viết bởi lập trình viên, bao gồm các câu lệnh và cầu trúc của chương trình
7
Trang 9* Comment LOC: Sé dong ma duoc sử dụng để viết chú thích trong mã nguôn, không trực tiếp tham gia vào việc thực thi chương trình nhưng
cung cáp thông tin hữu ích cho người đọc mã
* Executable LOC: Số dòng mã có thê được thực thi bởi chương trình,
không bao gỏm các dòng chú thích hoặc các dòng mã trồng
* Logical LOC: Số dòng mã đại diện cho các phân của chương trình mà người lập trình viên đã nghĩ ra đề thực hiện các chức năng cụ thể, có thể
không tương ứng chính xác với số dòng thực tế trong mã nguồn
b Uu diém cia LOC
* Don gian va dé do hrong: LOC 1a mét chi sé dé do lwong va hiéu duge
Nó cung cấp một cách nhanh chóng để đánh giá quy mô của phan mém
* _ Tính toán dễ dàng: Các công cụ và kỹ thuật đơn giản có thê được sử
dụng đề đếm số dòng mã, làm cho việc thu thập dữ liệu dễ dàng và tiết
kiệm thời gian
» So sánh giữa các dự án: LOC có thể được sử dụng để so sánh kích thước
của các dự án phản mềm khác nhau, đặc biệt là khi sử dụng cùng một
ngôn ngữ lập trình
c Nhược điểm của LOC
‹ Không phản ánh chất lượng: LOC không cung cáp thông tin về chát lượng hoặc hiệu quả của mã nguàn Một chương trình có nhiều dòng mã
không nhát thiết phải tốt hơn hoặc hoàn c hinh hơn so với một chương trình với ít dòng mã hơn
* Phu thuéc vào ngôn ngữ lập trình: Số lượng dòng mã có thẻ khác nhau
rát nhiều giữa các ngôn ngữ lập trình Ví dụ, một chức năng tương tự CÓ thế yêu cầu nhiều dòng mã hơn trong một ngôn ngữ so với một ngôn ngữ
khác
»« - Khả năng gây hiểu làm: Việc tăng số lượng dòng mã không luôn đồng
nghĩa với Việc tăng chức năng Việc thêm các đoạn mã không cần thiết hoặc các chú thích cũng có thê làm tăng số LOC mà không tạo ra giá trị
thực sự
» Không phản ánh độ phức tạp: LOC không phản ánh mức dé phức tạp của
mã nguồn hoặc các vấn đề tiềm an trong thiét ké cua phan mém Mot
chương trình có ít dòng mã có thê vẫn rất phức tạp và khó bảo tri
d Công thức tính LOO
Công thức tính Lines of Code (LOC) khá đơn giản và không phức tạp về mặt toán học Đề tính LOC, ban chi can dém sé lượng dòng mã mà một chương trình hoặc một đoạn mã nguồn chứa Công thức cơ bản là:
Trang 10Lines of Code (LOO) = Tổng số dòng mã trong dự án ph*n mãn
Trong đó:
* Dong ma bao gém cac dong chứa mã thực thi của chương trình
« Không bao gòm các dòng nhận xét (comment), dong trang hoặc các dòng
chỉ chứa định nghĩa kiểu dữ liệu không thực thi
Lưu ý:
* LOC có thẻ được chia thành hai loại:
o Physical LOC: Dém téng sé dòng mã trong file, bao gồm cả dòng trống và dòng nhận xét
o Logical LOC: Dém sé lượng dòng mã thực sự có logic thực thị,
không tính các dòng trồng và commert
Ví dụ: Nếu bạn có một đoạn mã như sau:
// Ham tỉnh tong hai so
int tinhTong(int a, int b) {
return a +b;
}
* Tong sé dong ma (Physical LOC) = 4 (bao gém ca comment va dong trống)
* Dong ma thực thi (Logical LOC) = 2 (chi tinh các dòng có logic thực thì)
Tủy thuộc vào cách đếm (Physical LOC hoadec Logical LOC), LOC có thể khác nhau
._ Ví dụ v`ềviệc sử dụng LOC
° Ước lượng chỉ phí vả thời gian: LOC thường được sử dụng trong các mô hình chỉ phí thuật toán như COCOMO để ước lượng chỉ phí và thời gian
cần thiết đề phát triển phần mềm Ví dụ, nếu một dự án có 10.000 LOC va
sử dụng hệ số chỉ phí cơ bản, mô hình có thể tính toán số người-tháng cần
thiết để hoản thành dự án
° Đánh giá hiệu suất của nhóm: LOC có thể giúp đánh giá hiệu suất của nhóm phát triển phần mềm băng cách so sánh số lượng dòng mã được viết trong một khoảng thời gian nhất định Tuy nhiên, điều này cần phải được kết hợp với các yêu tô khác như chất lượng mã và tốc độ phát triển
9
Trang 11© Theo dõi tiến độ dự án: Theo dõi số lượng LOC đã hoàn thành so với kế hoạch có thể giúp theo dõi tiến độ của dự án và điều chỉnh kế hoạch khi cần thiết
Chỉ số FP không chỉ dùng để đo lường kích thước phần mềm mà còn có vai trò quan trọng trong việc ước lượng chỉ phí và thời gian phát triển của dự án phần mềm Bằng cách phân tích các chức năng mà phần mềm cung cấp, FP giúp xác định khối lượng công việc cần thực hiện, từ đó hỗ trợ các nhà quản lý dự án lập kế hoạch ngân sách, phân bỗ nguồn lực, và theo dõi tiến độ một cách chính xác hơn EP cũng có thê giúp đánh giá hiệu quả phát triển phần mềm, vì nó đo lường kích thước dựa trên giá trị thực tế mà người dùng nhận được, không phụ thuộc vào cách mã hóa hay số lượng
dòng mã
a Các thành phẦn của Function Points
* _ Inputs (Nhập dữ liệu): Số lượng các điểm dữ liệu mà người dùng nhập
vào hệ thông Các điểm dữ liệu có thẻ bao gồm các màn hình nhập liệu, biều mẫu, và các giao diện người dùng khác
« - Outputs (Xuất dữ liệu): Số lượng các điểm dữ liệu mà hệ thống tạo ra và cung cấp cho người dùng Các điểm dữ liệu có thẻ bao gỏm các báo cáo, màn hình hiển thị, và các kết quả đầu ra khác
* User Inquiries (Yéu cau của người dùng): Số lượng các yêu cầu mà người dùng gửi đến hệ thống đề truy vấn dữ liệu hoặc thực hiện các chức
nang cy thé
* Internal Logical Files (Tap tin logic néi bd): Sé hreng cac tap tin dữ liệu hoặc cơ sở dữ liệu mà hệ thống lưu trữ và quản lý
* External Interface Files (Tap tin giao diện bên ngoài): Số lượng các tập
tin hoặc dữ liệu mà hệ thống trao đổi với các hệ thống khác
b._ Ưu điểm của Fnction Points
« Độc lập với ngôn ngữ lập trình: FP đo lường kích thước của phản mém dựa trên chức năng và yêu cầu của hệ thống, không phụ thuộc vào ngôn
10
Trang 12ngữ lập trình cụ thẻ, giúp dễ dàng so sánh giữa các dự án sử dụng các
công nghệ khác nhau
» - Dự đoán chi phí và thời gian: FP cung cáp một cách tiếp cận hiệu qua dé
dự đoán chí phí và thời gian phát triển phan mèm dựa trên yêu cầu chức
năng, giúp các nhà quản lý lập kế hoạch dự án chính xác hơn
* _ Tập trung vào yêu câu người dùng: FP tập trung vào các chức năng và yêu cầu của người dùng, giúp đảm bảo rằng các yéu tố quan trọng đối
Với người dùng được xem xét và đo lường
s« Khả năng so sánh và phân tích: FP cho phép so sánh các dự án khác nhau
và phân tích hiệu quả phát triển phần mẻm dựa trên các chức năng đã được cung cáp
c Nhược điểm của Function Points
« - Đòi hỏi sự hiểu biết về hệ thống: Đề tính toán FP chính xác, cần phải có
sự hiểu biết rõ ràng về các chức năng của hệ thống và yêu cầu của người dùng, điều này có thẻ đòi hỏi thời gian và công sức đáng kẻ
° - Khó khăn trong việc áp dụng: Việc xác định trọng só và tính toán FP có
thế phức tạp và không phải lúc nào cũng phản ánh chính xác tất cả các yếu tô ảnh hưởng đến phát triên phần mèm
» - Thiếu thông tin về chát lượng mã: FP không cung cáp thông tin về chát lượng mã nguàn, độ phức tạp của thuật toán, hoặc các vấn đề bảo trì, điều này có thẻ làm giảm giá trị của chỉ số FP trong một só tình huống
* Kho khan trong viéc áp dụng cho các dự án mới: Đối với các dự án phần mém moi hoặc các sản phẩm chưa có sẵn, việc áp dụng FP có thẻ gặp khó khăn vì thiếu đữ liệu lịch sử đề so sánh và ước lượng
d Phương pháp tình Function Points
« - Xác định Các Yếu Tố: Đầu tiên, xác định các yéu tố chức năng chính
trong hệ thống phan mềm như inputs, outputs, inquiries, internal logical files, va external interface files
* Gan Trong Sé: Méi yéu té duoc gán một trọng số dựa trên mức độ phức tạp của nó Các yếu tố đơn giản, trung bình và phức tạp có trọng số khác nhau, thường từ 1 đến 15
* _ Tính Toán FP: Tổng hợp trọng só của các yếu tố đề tính toán số lượng Function Points Ví dụ, nếu một dự án có 10 inputs với trọng số trung bình là 4 và 5 outputs với trọng số trung bình là 5, tông số Function
Points sẽ là: FP=(10x4)+(5x5)+(rọng số cho các yếu tố khác)
»« - Điều Chinh theo Yếu Té Cau Hình: Áp dụng các yéu tó cấu hình đề điều chỉnh kết quả FP, dựa trên các yéu tố như độ phức tạp của môi trường, yêu cầu người dùng, và các yéu tố khác
e._ Năng suất phì mẫn phụ thuộc vào nhi `âi yếu tố
11
Trang 13* Ky nang cua nhom phat trién: Nnom phat trién cO ky nang va kinh
nghiệm cao có thẻ hoàn thành công việc nhanh hơn và với chất lượng tốt
hơn Họ cũng có khả năng giải quyết các vấn đề phức tạp một cách hiệu quả hơn
» Công nghệ và công cụ sử dụng: Sự lựa chọn công nghệ và công cụ phù hợp có thê tăng năng suất bằng cách tự động hóa các nhiệm vụ lặp đi lặp
lại, giảm thiêu lỗi, và cải thiện sự hợp tác trong nhóm
» - Độ phức tạp của dự án: Các dự án có độ phức tạp cao, với nhiều yêu cầu
kỹ thuật và chức năng đặc biệt, thường đòi hỏi nhiều thời gian và công
Sức hơn, từ đó ảnh hưởng đến năng suất
» - Quy trình phát triển: Các quy trình phát trién được tô chức tốt, như Agile
hoặc DevOps, có thẻ cải thiện năng suất bằng cách thúc đây sự hợp tác,
giảm thiểu các bước không cần thiết, và tăng cường khả năng phản hồi nhanh chóng với các thay đôi
» - Môi trường làm việc: Một môi trường làm việc hỗ trợ, với sự hợp tác tốt
giữa các thành viên, ít căng thăng và có sự hỗ trợ đây đủ từ phía quản lý,
cũng góp phản vào việc tăng năng suất
Việc đo lường và cải thiện năng suất phần mém là một quá trình liên tục, đòi hỏi Sự phân tích và điều chinh không ngừng đề đảm bảo rằng nhóm phát triển có thê đáp ứng được các yêu cầu ngày càng cao của các dự án phản mém
hiện đại
1.2.3 Kỹ thuật ước lượng
Kỹ thuật ước lượng là những phương pháp được sử dụng để dự đoán chỉ phí và
thời gian cần thiết cho việc phát triển một dự án phàn màm Những kỹ thuật này đóng
vai trò then chót trong việc lập kế hoạch và quản lý dự án, giúp các nhà quản lý dự án
đưa ra các quyết định chính xác và hợp lý về việc phân bỏ nguồn lực, quản lý thời gian
và đảm bảo răng dự án hoàn thành đúng tiến độ và trong phạm vi ngân sách đã được phê duyệt
A Vai trò của kỹ thuật ước lượng
a Lập kế hoạch ngân sách
« Kỹ thuật ước lượng là những phương pháp được sử dụng để dự đoán chỉ
phí và thời gian cần thiết cho việc phát triên một dự án phân mẻm Những
kỹ thuật này đóng vai trò then chốt trong việc lập kế hoạch và quản lý dự
án, giúp các nhà quản lý dự án đưa ra các quyết định chính xác và hợp lý
về việc phân bồ nguồn lực, quản lý thời gian và đảm bảo răng dự án hoàn
thành đúng tiến độ và trong phạm vi ngân sách đã được phê duyệt
b Phân bổ ngu ®n lực
12
Trang 14» - Việc ước lượng chính xác giúp phân bỏ nguồn lực một cách hiệu quả Cac nhà quản lý có thê xác định số lượng nhân sự càn thiết, các công cụ và
công nghệ cần sử dụng, cũng như phân chia công việc giữa các thành viên
trong nhóm dự án Điều này giúp tối ưu hóa việc sử dụng tài nguyên và tránh lãng phí
Quan ly thoi gian
« Kỹ thuật ước lượng cung cấp cơ sở đề lập kế hoạch thời gian dự án, bao
gồm việc ước lượng thời gian càn thiết cho từng giai đoạn phát triển và
các mốc thời gian quan trọng Điều này giúp đảm bảo rằng dự án có thê
hoàn thành đúng tiến độ, giảm thiêu các nguy cơ về trễ tiền độ và các vấn
đẻ liên quan
Giam rủi ro
* Viéc su dung các kỹ thuật ước lượng có thẻ giúp nhận diện và quản lý các
rủi ro tiềm ân trong dự án Dự đoán các vấn đề có thê phát sinh và chuẩn
bị kế hoạch ứng phó kịp thời giúp giảm thiêu các tác động tiêu cực đến dự
án
._ Đưa ra các quyết định chính xác
* Cac kỹ thuật ước lượng cung cáp thông tin cần thiết để các nhà quản lý
đưa ra các quyết định quan trọng, chăng hạn như việc lựa chọn các công
nghệ, kỹ thuật phát triển, và các phương án triển khai khác Quyết định
dựa trên dữ liệu ước lượng chính xác giúp tăng khả năng thành công của
dự án
Các kỹ thuật ước lượng phổ biến
Ước lượng dựa trên kinh nghiệm (Expert Judgment)
13
Trang 15Hinh 1-1 Expert Judgment
* Ky thuat nay dựa vào kinh nghiệm và kiến thức của các chuyên gia trong
lĩnh vực phát triển phần mềm đề ước lượng chỉ phí và thời gian Mặc dù
đây là phương pháp đơn giản và nhanh chóng, nhưng nó có thể bi anh hưởng bởi cảm tính và thiếu dữ liệu chính xác
« - Ví dụ, giả sử bạn đang phát trién một ứng dụng quản lý dự án và cần ước
lượng thời gian đề hoàn thành phân giao diện người dùng (UI) Bạn có thê tham khảo ý kiến của các lập trình viên có kinh nghiệm trong nhóm hoặc các chuyên gia đã thực hiện các dự án tương tự trong quá khứ Họ có thé đưa ra dự đoán dựa trên các dự án trước đây, chăng hạn như "Dựa trên kinh nghiệm của tôi, phản giao diện người dùng với các tính năng tương
tự thường mát khoảng 2 tuần đề hoàn thành."
* Uudiém:
o_ Nhanh chóng và đơn giản: Phương pháp này dễ áp dụng va không
yêu cầu các công cụ hoặc dữ liệu phức tạp
o_ Dựa trên kiến thức chuyên môn: Kinh nghiệm của các chuyên gia
có thế cung cấp dự đoán chính xác nếu các chuyên gia đã từng làm
việc trên các dự án tương tự
o Cé thé áp dụng cho các dự án mới hoặc chưa rõ ràng: Khi thiếu dữ
liệu lịch sử, kinh nghiệm của các chuyên gia có thê giúp đưa ra các
ước lượng ban đầu
°© Nhược điểm:
o_ Thiếu tính khách quan: Dự đoán có thê bị ảnh hưởng bởi cảm tính
và quan điểm cá nhân của các chuyên gia
o Kha nang sai sot cao: Kinh nghiệm cá nhân không phải lúc nào
cũng phản ánh chính xác yêu câu và phức tạp của dự án
14
Trang 16o Phụ thuộc vào chuyên gia: Nếu không có chuyên gia đủ kinh
nghiệm, dự đoán có thê không chính xác
b Ước lượng dựa trên lịch sử dự án (Analogous Estimation)
Hình 1-2 Analogous Estimation
° - Phương pháp này sử dụng dữ liệu từ các dự án tương tự đã hoàn thành để
ước lượng chỉ phí và thời gian cho dự án hiện tại Mặc dù có thẻ cung cấp
một cái nhìn chính xác nếu các dự án tương tự là đúng, nhưng nó cũng
phụ thuộc vào chất lượng và tính trơng đồng của dữ liệu lịch sử
°® - Ví dụ, ban dang làm việc trên một dự án phát triển phần mềm quản lý tài chính cá nhân và cần ước lượng thời gian để tích hợp một API thanh toán Bạn có dữ liệu từ một dự án tương tự trước đây, nơi tính năng tích hợp API thanh toán mất khoảng 3 tuần Dựa vào thông tin này, bạn ước lượng rằng tích hợp API trong dự án hiện tại sẽ mất thời gian tương tự, với một
số điều chỉnh nhỏ nếu có khác biệt về yêu cầu
* Ưu điểm:
o_ Dựa trên dữ liệu thực tế: Sử dụng thông tin từ các dự án tương tự
giúp dự đoán có cơ sở hơn
o_ Có thế nhanh chóng: Khi có dữ liệu lịch sử sẵn có, phương pháp
này có thê cung cấp ước lượng nhanh chóng
Trang 17o_ Có thê không phản ánh các thay đổi mới: Các yéu tố mới hoặc công nghệ mới có thê không được phản ánh trong dự đoán
c Ước dựa trên quy mô chức năng (Function Point Analysis)
Hình 1-3 Function Point Analysis
« - Đây là phương pháp đo lường kích thước phản mèm dựa trên các chức
năng mà phan mém cung cap Function Points cung cáp một cách đánh giá chính xác hơn về giá trị và khối lượng công việc cản thực hiện so với chỉ
số Lines of Code (LOC)
Ví dụ, bạn đang phát triển một hệ thống quản lý kho và muốn ước lượng
chi phí phát triển dựa trên các chức năng của hệ thống, chang han như
quản lý hàng tồn kho, tạo báo cáo, và quản lý đơn hàng Bạn sử dụng phân tích Function Points để xác định số lượng chức năng và mức độ phức tạp
của từng chức năng Sau khi tính toán các diém chire nang (Function
Points) cho mỗi yêu cầu, bạn có thẻ sử dụng một hệ thông ước lượng dé chuyền đổi số điểm chức năng thành ước lượng chỉ phí và thời gian phát triển
Ưu điểm:
o_ Tập trung vào giá trị chức năng: Phương pháp này đo lường kích
thước phản mèm dựa trên các chức năng thực tế, cung cấp cái nhìn
rõ ràng vẻ giá trị mà phản mèm mang lại
o_ Không phụ thuộc vào ngôn ngữ lập trình: Có thẻ so sánh giữa các
dự án sử dụng các ngôn ngữ lập trình khác nhau
o_ Có thê dùng cho ước lượng chỉ phí và thời gian: Cung cấp cơ sở đề
ước lượng chỉ phí và thời gian phát triển dựa trên các chức năng
16