Uớc lượng là công việc tính toán gần đúng một đại lượng nào đó dựa trên tập dữ liệu liên quan đến đại lượng đó. Tập dữ liệu này thường được thu thập trong điều kiện thiếu, nhiễu hoặc chỉ có giá trị gần đúng. Khi tập dữ liệu ở trong điều kiện hoàn hảo hay đầy đủ thông tin thì ước lượng trở thành tính toán chính xác.
                
              
                                            
                                
            
 
            
                 18 trang
18 trang | 
Chia sẻ: vietpd | Lượt xem: 3724 | Lượt tải: 1 
              
            Bạn đang xem nội dung tài liệu Các phương pháp ước lượng công thực hiện phần mềm, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
12 
PHẦN 2: HIỆN TRẠNG 
Chương 2: Các phương pháp ước lượng công thực hiện 
phần mềm 
2.1. Sơ lược về ước lượng công thực hiện phần mềm 
2.1.1. Khái niệm ước lượng công thực hiện phần mềm 
Uớc lượng là công việc tính toán gần ñúng một ñại lượng nào ñó dựa trên tập dữ 
liệu liên quan ñến ñại lượng ñó. Tập dữ liệu này thường ñược thu thập trong ñiều 
kiện thiếu, nhiễu hoặc chỉ có giá trị gần ñúng. Khi tập dữ liệu ở trong ñiều kiện 
hoàn hảo hay ñầy ñủ thông tin thì ước lượng trở thành tính toán chính xác. 
Trong bất cứ ngành nghề sản xuất nào làm ra sản phẩm có ñộ phức tạp cao, việc 
ước lượng những yếu tố liên quan ñến sản phẩm trước khi ñưa vào sản xuất ñều cần 
thiết. Những yếu tố này cung cấp cho nhà sản xuất một cái nhìn trước về sản phẩm, 
từ ñó giúp cho việc hoạch ñịnh ngân sách, lên kế hoạch sản xuất, phân bổ nhân lực 
và giảm thiểu rủi ro. Trong ngành công nghiệp sản xuất phần mềm, yếu tố ước 
lượng ñược quan tâm nhiều nhất là chi phí phần mềm. Chi phí ở ñây bao gồm hai 
loại: 
- Chi phí sản xuất: chi phí gốc ñể phát triển dự án phần mềm, chi phí này ñược 
tính dựa trên công thực hiện dự án của ñội ngũ phát triển phần mềm. 
- Chi phí môi trường: những chi phí phát sinh xung quanh quá trình phát triển, 
bao gồm: chi phí tài nguyên, chi phí ñi lại, chi phí bảo trì, chi phí ngoại giao, 
… 
Chi phí môi trường có thể chiếm ñến hơn 2/3 chi phí phần mềm và phụ thuộc vào 
nhiều yếu tố như: giá cả, lạm phát, xu hướng thị trường, kỹ năng ñàm phán, … 
Những yếu tố này nằm ngoài lĩnh vực phần mềm và thường xuyên biến ñộng, làm 
13 
cho việc ước lượng trước chi phí môi trường là ñiều không khả thi. Trong khi ñó, 
chi phí sản xuất ñược tính toán dựa trên công thực hiện là ñại lượng hoàn toàn có 
thể ước lượng ñược với ñộ chính xác tương ñối cao. Biết trước công thực hiện sẽ 
giúp cho việc lập kế hoạch và phân bố nhân lực tham gia vào quá trình phát triển 
phần mềm ñược tốt hơn. Vì những lý do này, ước lượng công thực hiện phần mềm 
là một công việc quan trọng ñược thực hiện ở hầu hết các dự án phần mềm nghiêm 
túc. 
Việc ước lượng công ñược tiến hành xuyên suốt quá trình thực hiện dự án, trãi qua 
từng giai ñoạn của quy trình phần mềm. Ở giai ñoạn ñầu, dự án còn ở dạng sơ khai, 
những thông tin xung quanh dự án còn chưa rõ ràng, công thực hiện ước lượng 
ñược trong giai ñoạn này có ñộ chính xác không cao và thường ñược dùng làm cơ 
sở ñể báo giá, ñấu thầu dự án phần mềm. Càng về những giai ñoạn sau, các chi tiết 
của dự án ñã ñược làm rõ dần, ñộ chính xác của ước lượng càng tăng, công thực 
hiện ñược dùng ñể ñiều chỉnh ngân sách, chỉnh sửa kế hoạch cho phù hợp với 
những giai ñoạn tiếp theo. 
Hình 2.1. Sai số của ước lượng qua từng giai ñoạn của dự án phần mềm [16]. 
14 
2.1.2. Các thông số ước lượng 
ðầu vào của quá trình ước lượng công thực hiện dự án phần mềm là các thông số 
ước lượng (Cost Driver). Mỗi thông số là một yếu tố ảnh hưởng ñến công thực hiện 
của dự án. Những thông số này chia làm ba loại 
- Thông số về sản phẩm (Product Factors): những yếu tố của sản phẩm phần 
mềm ảnh hưởng ñến công thực hiện dự án, như: ñộ lớn, ñộ phức tạp, loại 
phần mềm, … 
- Thông số về môi trường phát triển (Environment Factors): những yếu tố của 
môi trường phát triển phần mềm ít nhiều làm thay ñổi công thực hiện, như: 
ngôn ngữ lập trình, quy trình phát triển, công nghệ triển khai, công cụ, tài 
nguyên hỗ trợ quá trình phát triển, … 
- Thông số về ñội ngũ phát triển (People Factors): những yếu tố của cá nhân 
tham gia vào quá trình phát triển dự án, như: trình ñộ kỹ thuật, kinh nghiệm, 
mức ñộ quen thuộc, năng suất làm việc, kỹ năng làm việc nhóm, … 
Trước khi thực hiện việc ước lượng, giá trị các thông số ước lượng của dự án phần 
mềm ñược tính bằng cách cho ñiểm dựa vào kinh nghiệm của người thực hiện công 
tác ước lượng. Công việc này mang tính chủ quan, phụ thuộc rất nhiều vào yếu tố 
con người. Hiện nay, có những nghiên cứu áp dụng logic mờ (Fuzzy Logic) ñể mờ 
hóa các giá trị ñiểm số nhằm giảm mức ñộ cảm tính trong việc cho ñiểm [8]. 
Hình 2.2. Biểu diễn giá trị các thông số ước lượng bằng logic mờ. 
Một thông số ước lượng rất ñược quan tâm là yếu tố về ñộ lớn của phần mềm. Yếu 
tố này ñược cho là ảnh hưởng rất lớn ñến công thực hiện phần mềm. Thông thường, 
15 
ñộ lớn phần mềm ñược ño bằng ñơn vị dòng-mã-nguồn (SLOC - Source Line Of 
Code). Nhưng trong phần lớn các giai ñoạn của quy trình phát triển, khi phần mềm 
chưa ñược hoàn thành, thông số ñộ lớn ño bằng ñơn vị dòng-mã-nguồn thường phải 
phỏng ñoán nên không tránh khỏi những sai sót. ðể khắc phục hạn chế này, ñơn vị 
ñiểm-chức-năng (FP - Function Point) thường ñược dùng thay thế [7]. ðơn vị này 
ñược tính toán dựa trên các yêu cầu chức năng và phi chức năng của dự án phần 
mềm nên mang tính thực tế hơn. Trong vài năm trở lại ñây, một ñơn vị khác cũng 
ñược sử dụng là ñiểm-ñối-tượng (OP – Object Point) [7]. ðây là ñơn vị ñược tính 
toán dựa trên các yêu cầu về màn hình và báo biểu của phần mềm. Nó thường ñược 
dùng ñể ño ñộ lớn phần mềm trong giai ñoạn sơ khởi của dự án, khi những yêu cầu 
chi tiết dùng ñể tính ñiểm-chức-năng chưa ñược làm rõ. 
2.1.3. ðại lượng công thực hiện phần mềm 
Kết quả của quá trình ước lượng là công thực hiện dự án phần mềm. ðại lượng công 
thể hiện công sức cần thiết bỏ ra ñể ñội ngũ phát triển ñể hoàn thành dự án phần 
mềm. Hay nói cách khác, ñây là ñại lượng ñược dùng ñể ño khối lượng công việc 
cần thực hiện của dự án. ðại lượng công ñược tính bằng ñơn vị người-tháng 
(Person-Month) hoặc người-giờ (Person-Hour). 
Công thực hiện là tiền ñề ñể tính toán chi phí sản xuất phần mềm thông qua chi phí 
trung bình cho một ñơn vị công người-tháng. Một công ty phần mềm có thể dễ dàng 
tính toán ñược chi phí này thông qua phân tích thống kê số liệu trong quá khứ. Sau 
khi tính toán, chi phí sản xuất sẽ ñược dùng làm cơ sở ñể hoạch ñịnh ngân sách, báo 
giá sản phẩm cho khách hàng, ñấu thầu dự án, … 
Ngoài ra, công thực hiện cũng là tiền ñề ñể lên kế hoạch thời gian và nhân lực cho 
dự án. Một công thức kinh nghiệm thường ñược dùng ñể tối ưu hóa thời gian và 
nhân lực dựa vào công thực hiện. 
16 
ETP ≈≈ 
Công thức 2.1. Tính thời gian và nhân lực dự án từ ñại lượng công. 
Trong ñó: 
- E: công thực hiện dự án phần mềm ước lượng ñược, ñơn vị người-tháng. 
- P: nhân lực dự kiến thực hiện dự án, ñơn vị người. 
- T: thời gian dự kiến hoàn thành dự án, ñơn vị tháng. 
2.2. Nhóm phương pháp ước lượng dựa vào chuyên gia 
Là một nhánh trong ngành khoa học về dự báo, ước lượng là một công việc phức 
tạp và ẩn chứa nhiều rủi ro. Ước lượng công thực hiện phần mềm ñặc biệt phức tạp 
vì phần mềm là một sản phẩm trí tuệ, khó có thể cân ño ñong ñếm ñước. Vì vậy, 
những phương pháp ñầu tiên ñược sử dụng ñể ước lượng công thực hiện phần mềm 
là dựa vào con người, những chuyên gia có nhiều kinh nghiệm và am hiểu về lĩnh 
vực của dự án phần mềm. Kết quả ước lượng ñược ñưa ra dựa trên cơ sở phân tích, 
ñánh giá, và nhận ñịnh từ các chuyên gia này. Và ñến nay, mặc dù ñã xuất hiện 
nhiều phương pháp khác thay thế, việc tham khảo ý kiến chuyên gia ñể ñưa ra kết 
quả ước lượng vẫn ñược dùng khá phổ biến. Nhận ñịnh của các chuyên gia vẫn luôn 
ñáng ñược quan tâm xem xét. 
ðiểm yếu của các phương pháp ước lượng dựa vào chuyên gia là kết quả ước lượng 
thường là chủ quan và cảm tính, không thể kiểm chứng khi dự án chưa hoàn thành. 
Ngoài ra, thời gian ra quyết ñịnh thường kéo dài và giá thành thuê chuyên gia tốn 
kém cũng là một hạn chế không nhỏ của nhóm phương pháp này. 
Hai trong số những phương pháp thường ñược các chuyên gia sử dụng ñể ước lượng 
công thực hiện phần mềm là: phương pháp tương ñồng và phương pháp Wide-band 
Delphi sẽ ñược trình bày ở ñây. 
17 
2.2.1. Phương pháp tương ñồng [6][7] 
ðây là phương pháp ước lượng ñơn giản, ñược thực hiện dựa trên nguyên tắt 
“những dự án phần mềm tương ñồng nhau thường có công thực hiện gần giống 
nhau”. Theo ñó, công thực hiện dự án phần mềm mới sẽ ñược ước lượng dựa trên 
những dự án phần mềm cũ tương ñồng ñã ñược thực hiện trước ñó. 
Quy trình ước lượng của phương pháp tương ñồng bao gồm ba bước: 
- Bước 1 (Analysis): phân tích, ñánh giá những thông số của dự án phần mềm 
mới. 
- Bước 2 (Comparing): so sánh dự án phần mềm mới với những dự án phần 
mềm trong tập dữ liệu lịch sử ñể tìm ra dự án tương ñồng. 
- Bước 3 (Scaling): xem xét các thông số giữa hai dự án, từ ñó co giãn công 
thực hiện của dự án cũ ñể tìm ra công thực hiện dự án mới. 
ðể tăng tính chính xác của ước lượng, phương pháp tương ñồng phải ñược thực 
hiện bởi chuyên gia có nhiều kinh nghiệm trong lĩnh vực của dự án phần mềm mới 
sắp ñược thực hiện. Chuyên gia này cũng cần phải am hiểu về ñội ngũ phát triển và 
tình hình hoạt ñộng hiện tại của công ty. 
Hạn chế của phương pháp tương ñồng ñó là việc tìm ra dự án cũ tương ñồng với dự 
án mới là một công việc không hề dễ dàng. ðiều này ñòi hỏi phải ñề ra ñược những 
tiêu chí ñánh giá và công thức ñể tính toán mức ñộ tương ñồng giữa hai dự án phần 
mềm, từ ñó mới có thể xác ñịnh ñược dự án cũ nào trong tập dữ liệu lịch sử là tương 
ñồng với dự án mới cần ước lượng. 
Hơn nữa, sau khi ñã tìm ra ñược dự án tương ñồng với dự án mới, việc so sánh các 
thông số giữa hai dự án, rồi sau ñó co giãn công dự án cũ sao cho hợp lý ñể ñưa ra 
kết quả cuối cùng là một công việc ñầy cảm tính và dễ gây tranh cãi. ðiều này phụ 
18 
thuộc rất nhiều vào kinh nghiệm và khả năng phán ñoán của chuyên gia thực hiện 
công việc ước lượng. 
2.2.2. Phương pháp Wide-band Delphi [6][7][18] 
Dựa vào một cá nhân nào ñó ñể ñưa ra con số ước lượng là một quá trình ñầy cảm 
tính và rủi ro. Nhằm tăng tính khách quan và ñộ chính xác của kết quả ước lượng, 
quy trình Wide-band Delphi thường ñược áp dụng. 
Quy trình này do Barry Boehm và John Farquhar phát triển từ quy trình ra quyết 
ñịnh Delphi. Thay vì phụ thuộc vào một chuyên gia, kết quả ước lượng giờ ñây 
ñược ñưa ra dựa trên sự ñồng thuận của một nhóm các chuyên gia, và tuân theo một 
quy trình bài bản gồm năm bước: 
- Bước 1 (Preparation): trước hết, một nhóm chuyên gia ñược thành lập, ñiều 
phối viên có nhiệm vụ gởi ñến mỗi chuyên gia ñầy ñủ thông tin, dữ kiện của 
dự án phần mềm cần ước lượng. 
- Bước 2 (Meeting): ñiều phối viên tổ chức một cuộc họp, tại ñây các chuyên 
gia thảo luận với nhau về những vấn ñề liên quan ñến dự án phần mềm: 
những thông số dự án, môi trường phát triển, ñội ngũ phát triển, … 
- Bước 3 (Decision): mỗi chuyên gia ñược phát một phiếu ñể ghi nhận ñịnh và 
con số ước lượng của mình một cách ñộc lập. 
- Bước 4 (Summary): ñiều phối viên tổng hợp kết quả ước lượng thu ñược từ 
các chuyên gia. 
- Bước 5 (Loop): nếu kết quả ước lượng của các chuyên gia quá khác biệt, 
bước 2 ñược lặp lại cho ñến khi nào có ñược sự ñồng thuận. 
Phương pháp Wide-band Delphi tỏ ra khá hiệu quả trong việc ước lượng công thực 
hiện của những dự án phần mềm lớn, có nhiều ràng buộc phức tạp, và ñòi hỏi ñộ 
chính xác cao. Tuy nhiên, phương pháp này khá tốn kém và thường mất nhiều thời 
gian. Các chuyên gia không phải lúc nào cũng có tiếng nói chung. Và ñể tìm ñược 
19 
sự ñồng thuận giữa họ, quy trình trên có thể phải lặp lại rất nhiều lần. Hơn nữa, việc 
tập hợp ñược một nhóm các chuyên gia có kinh nghiệm là không dễ dàng chút nào. 
2.3. Nhóm phương pháp ước lượng dựa vào công thức 
Nhóm phương pháp này xem việc ước lượng công thực hiện phần mềm là quá trình 
tìm kiếm mối liên hệ giữa ñại lượng công và các thông số của dự án phần mềm cần 
ước lượng. Các phương pháp ước lượng dựa vào công thức biểu diễn mối liên hệ 
này bằng một phương trình toán học. ða số những phương trình này ở dạng hàm 
nhiều biến, với một bên là các biến số ñại diện cho các thông số của dự án phần 
mềm, một bên là ñại lượng công thực hiện dự án. 
Những hàm nhiều biến này có thể phân làm hai dạng: tuyến tính và phi tuyến. 
- Tuyến tính: ∑+= ii xaaE 0 . 
- Phi tuyến: ∏×= i
x
iaaE 0 . 
Trong ñó: 
- E: công thực hiện dự án phần mềm. 
- xi: thông số thứ i của dự án. 
- ai: hệ số của từng thông số. 
Những công thức này ñược xây dựng dựa trên việc khảo sát một tập dữ liệu lịch sử 
bao gồm các dự án phần mềm ñã ñược thực hiện trước ñó. Phương pháp dùng ñể 
khảo sát thường là phương pháp phân tích hồi quy (regression analysis). 
Ưu ñiểm của ước lượng dựa vào công thức là tính khách quan của nó. Các công 
thức ñược xây dựng bằng phương pháp toán học chặt chẽ. Với cùng một bộ thông 
số ñầu vào như nhau, các công thức luôn cho ñầu ra kết quả như nhau. Kết quả này 
không phụ thuộc vào người thực hiện công việc ước lượng và có thể dễ dàng ñược 
kiểm chứng. 
20 
Một ưu ñiểm nữa của ước lượng dựa vào công thức là thời gian ñưa ra kết quả ước 
lượng nhanh chóng và ít tốn kém hơn hẳn so với việc thuê chuyên gia. 
Tuy nhiên, do ñược xây dựng trên một tập dữ liệu lịch sử cục bộ của một ñội ngũ 
phát triển nào ñó, các công thức ước lượng thường không phải lúc nào cũng chính 
xác khi áp dụng vào từng công ty với từng loại dự án cụ thể. Trong trường hợp ñó, 
các công thức cần phải ñược tinh chỉnh lại cho phù hợp. 
2.3.1. Mô hình COCOMO [4][5][6] 
Mô hình ước lượng công thực hiện phần mềm COCOMO (COst COnstructive 
MOdel) do Barry Boehm ñề xuất vào ñầu thập niên 1980. Nó ñã nhanh chóng trở 
thành mô hình ước lượng ñược giới công nghiệp phần mềm sử dụng rộng rãi nhất 
thời bấy giờ [6]. Nhưng cùng với sự phát triển không ngừng của các quy trình công 
nghệ phát triển phần mềm, phiên bản ñầu tiên của mô hình là COCOMO 81 ñã dần 
bị lỗi thời, không còn chính xác khi áp dụng cho những dự án phát triển theo quy 
trình công nghệ mới. Vì vậy, từ năm 1994 cho ñến năm 2000, Boehm cùng các 
ñồng sự ở ñại học Nam California ñã tiếp tục nghiên cứu, phát triển và ñưa ra mô 
hình COCOMO II. 
Mô hình COCOMO II bao gồm 3 phiên bản (stage) áp dụng vào những thời ñiểm 
khác nhau trong quy trình phát triển phần mềm. Mỗi phiên bản ñược dùng với tính 
chất và mục ñích riêng. Ba phiên bản này gồm có: Application Composition, Early 
Design, và Post-Architecture. 
Phiên bản Application Composition ñược dùng ñể ước lượng công thực hiện phần 
mềm ở giai ñoạn khởi ñầu của dự án, khi phần mềm chỉ mới ở dạng prototype, chưa 
có gì rõ ràng. Kết quả ước lượng thường mang tính tham khảo, dùng trong thương 
lượng, ñàm phán hợp ñồng dự án. Công thực hiện ñược tính theo công thức 2.2. 
21 
PROD
SIZE
E = 
Công thức 2.2. Tính công thực hiện theo COCOMO 2000 Application Composition [5]. 
Trong ñó: 
- E: công thực hiện dự án phần mềm, ñơn vị người-tháng (person-month). 
- SIZE: kích thước phần mềm tính bằng ñơn vị ñiểm-ñối tượng (object 
point), ñược ño bằng cách cho ñiểm dựa trên ñộ phức tạp của từng màn 
hình, báo biểu trong phần mềm rồi cộng lại. 
- PROD: năng suất thực hiện một ñơn vị ñiểm-ñối tượng của ñội ngũ phát 
triển. 
Phiên bản Early Design ñược dùng ñể ước lượng công thực hiện phần mềm trong 
giai ñoạn ñầu của quá trình thiết kế dự án. Lúc này, các yêu cầu chức năng của dự 
án ñã rõ ràng nhưng các yếu tố về cài ñặt chưa ñược biết ñến. Kết quả ước lượng 
ñược dùng ñể ñiều chỉnh ngân sách, nhân lực và lên kế hoạch cài ñặt cho dự án. 
Công thực hiện ở phiên bản này ñược tính theo công thức 2.3. 
∏××= i
B EMSIZEAE 
Công thức 2.3. Tính công thực hiện theo COCOMO 2000 Early Design [5]. 
Trong ñó: 
- E: công thực hiện dự án phần mềm, ñơn vị người-tháng (person-month). 
- A, B: các hệ số ñiều chỉnh của công thức, phụ thuộc vào môi trường phát 
triển phần mềm ở mỗi công ty. Theo tính toán của Boehm, giá trị mặc 
ñịnh A = 2.94 và B dao ñộng từ 1.1 ñến 1.24. Tuy nhiên, ñể tăng ñộ chính 
xác, ông khuyến cáo người dùng công thức nên tinh chỉnh lại A, B theo 
tập dữ liệu lịch sử của riêng mình cho phù hợp. 
22 
- SIZE: kích thước phần mềm tính bằng ñơn vị ñiểm-chức năng (function 
point), ñược ño bằng cách cho ñiểm dựa trên ñộ phức tạp của từng chức 
năng trong phần mềm rồi cộng lại. 
- EMi: các hệ số của dự án, trong phiên bản Early Design, có 7 hệ số ñược 
sử dụng. 
Bảng 2.1. Các hệ số dự án dùng trong COCOMO 2000 Early Design [1]. 
STT Hệ số Ý nghĩa 
1 RCPX Product Reliability and Complexity 
2 RUSE Required Reuse 
3 PDIF Platform Difficulty 
4 PERS Personnel Capability 
5 PREX Personnel Experience 
6 FCIL Facilities 
7 SCED Required Development Schedule 
Phiên bản Post-Architecture là sự mở rộng của phiên bản Early Design. Nó ñược sử 
dụng sau khi giai ñoạn thiết kế của dự án ñã hoàn tất. Lúc này, những thông tin chi 
tiết về việc cài ñặt dự án ñã ñược biết rõ ràng và cặn kẽ. Kết quả ước lượng của 
phiên bản này ñược dùng ñể tham khảo cho những ñiều chỉnh cuối cùng về ngân 
sách và nhân lực của dự án. 
Công thức của phiên bản Post-Architecture tương tự phiên bản Early Design. Tuy 
nhiên, có một vài ñiểm khác biệt ở công thức 2.4. 
∏××= i
B EMSIZEAE 
Công thức 2.4. Tính công thực hiện theo COCOMO 2000 Post Architecture [5]. 
23 
Trong ñó: 
- SIZE: kích thước phần mềm tính bằng ñơn vị dòng mã nguồn (KSLOC), 
thông thường ñể tính ñược số dòng mã nguồn, người ta dựa vào bản tra số 
dòng mã nguồn trung bình trên một ñiểm-chức năng. 
- EMi: trong giai ñoạn này, khi các thông tin về dự án ñã ñược biết ñầy ñủ, 
có tất cả 17 hệ số ñược sử dụng như mô tả ở bảng 2.2. 
Bảng 2.2. Các hệ số dự án dùng trong COCOMO 2000 Post Architecture [1]. 
STT Hệ số Ý nghĩa 
1 RELY Required System Reliability 
2 CPLX Complexity of System Modules 
3 DOCU Extent of Documentation Required 
4 DATA Size of Database Used 
5 RUSE Required Percentage of Reusable Components 
6 TIME Execution Time Constraint 
7 PVOL Volatility of Development Platform 
8 STOR Memory Constraints 
9 ACAP Capability of Project Analysts 
10 PCON Personnel Continuity 
11 PCAP Programmer Capability 
12 PEXP Programmer Experience in Project Domain 
13 AEXP Analyst Experience in Project Domain 
14 LTEX Language and Tool Experience 
15 TOOL Use of Software Tool 
16 SCED Development Schedule Compression 
17 SITE Extent of Multisite Working and Quality of Intersite 
Communications 
24 
2.3.2. Mô hình SLIM [6] 
Mô hình SLIM ñược Putnam ñề xuất vào thập niên 1980, dựa trên những nghiên 
cứu của ông về ñường cong Norden/Rayleigh thể hiện sự phân bố nhân lực trong 
quá trình phát triển phần mềm. Putnam ñưa ra mô hình sau khi phân tích số liệu của 
rất nhiều dự án phần mềm ñã hoàn tất của Bộ Quốc phòng Mỹ. Công thức toán học 
chủ ñạo của mô hình SLIM ñược mô tả ở công thức 2.5. 
3
4
3
1
tEPRODSIZE ××= 
Công thức 2.5. Công thức chủ ñạo của mô hình SLIM [6]. 
Trong ñó: 
- SIZE: kích thước phần mềm, tính bằng ñơn vị dòng mã nguồn (SLOC). 
- PROD: năng suất của ñội ngũ phát triển phần mềm. 
- E: công thực hiện dự án phần mềm, ñơn vị người-năm (person-year). 
- t: thời gian thực hiện dự án, ñơn vị năm. 
Ưu ñiểm của mô hình SLIM là có công thức ñơn giản và khả năng tinh chỉnh lại 
công thức theo tập dữ liệu lịch sử một cách dễ dàng. Những thông số dự án như 
kích thước (SIZE), công thực hiện (E) và thời gian hoàn thành (t) là những dữ liệu 
mà ña số các công ty ñều lưu lại sau mỗi dự án. Dựa trên những dữ liệu lịch sử này, 
tham số PROD có thể ñược tinh chỉnh một cách dễ dàng. Sau ñó, tham số này ñược 
áp dụng lại vào công thức của mô hình ñể ước lượng cho những dự án tương lai. 
Tuy nhiên, SLIM không phải là một mô hình ñầy ñủ và công khai. Tập dữ liệu 
ñược dùng ñể xây dựng nên mô hình này tới nay vẫn còn ñược dấu kín. Những 
thông tin chi tiết về mô hình cũng không ñược cung cấp miễn phí. Hiện tại mô hình 
này do công ty QSM (Quality System Management) nắm giữ. Khách hàng của 
QSM ña số là những công ty thuộc Bộ Quốc phòng Mỹ. 
25 
2.4. Nhóm phương pháp ước lượng bằng máy học 
Ước lượng công thực hiện dự án phần mềm là một vấn ñề không ñơn giản. Nó vẫn 
ñang thu hút rất nhiều nghiên cứu trên thế giới. Hiện nay, các nghiên cứu ñang 
hướng ñến việc áp dụng những mô hình tính toán mềm (Soft Computing) hay trí tuệ 
nhân tạo vào trong các mô