You are on page 1of 29

ĐẠI HỌC ĐÀ NẴNG

TRƯỜNG ĐẠI HỌC BÁCH KHOA


---------------------------------------

ĐẶNG QUANG VĂN

TỐI ƯU THAM SỐ TRONG MÔ HÌNH COCOMO ĐỂ


ƯỚC LƯỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀM

Chuyên ngành : KHOA HỌC MÁY TÍNH


Mã số: 60.48.01.01

TÓM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Đà Nẵng Năm 2017


Công trình được hoàn thành tại
TRƯỜNG ĐẠI HỌC BÁCH KHOA

Người hướng dẫn khoa học: TS. Lê Thị Mỹ Hạnh

Phản biện 1: TS. Đặng Hoài Phương

Phản biện 2: PGS.TS. Lê Mạnh Thạnh

Luận văn sẽ được bảo vệ trước Hội đồng chấm Luận văn tốt
nghiệp thạc sĩ ngành Khoa học máy tính, họp tại Trường Đại
học Bách khoa vào ngày 06 tháng 01 năm 2018
Có thể tìm hiểu luận văn tại:
 Trung tâm Học liệu, Đại học Đà Nẵng tại Trường Đại học
Bách khoa
 Thư viện Khoa CNTT, Trường Đại học Bách khoa - ĐHĐN
1

MỞ ĐẦU

1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI


Ngày nay, với nhu cầu sử dụng phần mềm và sự cạnh tranh giữa các cá
nhân tổ chức danh nghiệp phát triển phần mềm ngày một phức tạp. Vì vậy
để đảm bảo tính khả thi và hiệu quả cho một dự án phần mềm, việc ước
lượng nỗ lực dự án phần mềm là một trong những vấn đề then chốt và quan
trọng nhất trước khi bắt đầu triển khai dự án và đưa đến người sử dụng.
Một loạt các kỹ thuật ước lượng sử dụng dữ liệu thu thập được từ các dự án
trước đó cộng với công thức toán học để dự đoán chi phí cho dự án được
giới thiệu như mô hình COCOMO II, SLIM, ... Kỹ thuật ước lượng được
phân bố vào các mô hình hồi quy, phương pháp chuyên gia dựa trên các
phương pháp học tập theo định hướng và phương pháp Bayesian .Nhưng
những phương pháp trên khó có thể đưa ra được một sự ước lượng chính
xác tốt nhất so với thực tế và sự thành công hay thất bại của một dự án điều
phụ thuộc rất lớn vào độ chính xác của kết quả ước lượng chi phí và tiến
độ. Do đó bài toán được đặt ra là cần phải tìm ra một phương pháp tối ưu
hơn để ước lượng chi phí dự án phần mềm. Mô hình COCOMO II được
phát triển vào năm 1995, là một mô hình cho phép ước tính chi phí, nỗ lực
và tiến độ lập kế hoạch cho một hoạt động phát triển phần mềm mới.Trong
COCOMO II, nỗ lực này được thể hiện như người-tháng (PM). Một tháng
là khoảng thời gian được tính cho một người dành khoảng thời gian đó làm
việc cho dự án phát triển phần mềm.
Qua việc giới thiệu mô hình COCOMO II đã góp phần đáng kể vào
việc nâng cao độ chính xác trong ước lượng chi phí phần mềm và hiện nay
đây là một trong những mô hình được sử dụng rất phổ biến. Tuy nhiên, mô
hình này dựa trên một số giá trị tham số không đổi của các phương trình
ước lượng. Những hằng số này chưa được tối ưu hóa, và do đó tính chính
xác của việc ước lượng đối với các dự án không cao so với nỗ lực và thời
gian thực tế.
Trong khi đó, các thuật toán hiện đại được lấy cảm hứng từ tự nhiên
đang nổi lên và chúng ngày càng trở nên phổ biến. Thuật toán Cuckoo là
một thuật toán siêu dữ liệu mới, được gọi là Cuckoo Search (CS), để giải
quyết các vấn đề tối ưu hoá. Thuật toán này dựa trên hành vi ký sinh trùng

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


2

bắt buộc của một số loài chim cu cùng với sự di chuyển được phân phối bởi
Le'vy của một số loài chim và ruồi giấm.
Vì những lý do như trên, tôi quyết định chọn đề tài:
“ Tối ưu tham số trong mô hình CoCoMo để ước lượng nỗ lực phát
triển phần mềm” sử dụng thuật toán Cuckoo Search

2. MỤC ĐÍCH NGHIÊN CỨU


Nghiên cứu và ứng dụng thuật toán CS vào bài toán tối ưu các
tham số trong mô hình COCOMO II để ước lượng nỗ lực phát triển
phần mềm.
3. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
Đối tượng nghiên cứu: Nghiên cứu các phương pháp ước lượng nỗ
lực phát triển phần mềm và mô hình ước lượng COCOMO II, thuật toán tối
ưu CS.
Phạm vi nghiên cứu: Nghiên cứu về ước lượng nỗ lực phát triển phần
mềm theo mô hình COCOMO II, thuật toán CS.
4. PHƯƠNG PHÁP NGHIÊN CỨU
Tôi sử dụng kết hợp nhiều phương pháp, trong đó chủ yếu là nghiên
cứu lý thuyết và nghiên cứu thực nghiệm.
Phương pháp nghiên cứu lý thuyết: Tìm hiểu, tra cứu, phân tích và
tổng hợp từ sách, các bài báo, tạp chí khoa học, các trang web, các bài luận
văn thạc sĩ trong nước và nước ngoài.
Phương pháp thực nghiệm: Cài đặt thuật toán CS để tối ưu các tham
số trong mô hình COCOMO II trên công cụ MATLAB, đánh giá kết quả
tối ưu qua các độ đo đánh giá MMRE, PRED.
5. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN CỦA ĐỀ TÀI
Ý nghĩa khoa học: Đề xuất giải pháp ứng dụng thuật toán CS để tối ưu
tham số trong mô hình CoCoMo II.
Ý nghĩa thực tiễn của đề tài: Kết quả nghiên cứu giúp cho việc ước
lượng nỗ lực, chi phí, thời gian phát triển phần mềm trong mô hình
CoCoMo II một cách chính xác nhất, đảm bảo tính khả thi cho dụ án.
6. CẤU TRÚC LUẬN VĂN
Luận văn được trình bày gồm 3 chương.
Chương 1: Tổng quan về ước lượng nỗ lực phát triển phần mềm
trong mô hình COCOMO II.

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


3

Chương 2: Thuật toán tìm kiếm Cuckoo Search (CS)


Chương 3: áp dụng thuật toán CUCKOO SEARCH (CS) tối ưu
các tham số trong mô hình COCOMO II để ước lượng nỗ lực phát
triển phần mềm
CHƯƠNG 1
TỔNG QUAN VỀ ƯỚC LƯỢNG NỖ LỰC PHÁT TRIỂN PHẦN
MỀMTRONG MÔ HÌNH COCOMO II
I. ƯỚC LƯỢNG NỖ LỰC VÀ CÁC MÔ HÌNH ƯỚC LƯỢNG NỖ
LỰC TRONG PHÁT TRIỂN PHẦN MỀM
1. Ước lượng nỗ lực
Ước lượng thường diễn ra sau giai đoạn phân tích, tức là khi người
quản lý dự án ước lượng nỗ lực, các yêu cầu đã được hiểu rõ ràng. Các quy
trình nghiệp vụ được tổ chức để hỗ trợ phương pháp này. Ví dụ, giai đoạn
yêu cầu đôi khi được thực hiện như một dự án riêng biệt với dự án phát
triển phần mềm.
Với nhiều phương pháp ước lượng đã được đề xuất, người quản lý dự
án có thể lựa chọn bất kỳ phương pháp ước lượng nào miễn là nó thích hợp
với tính chất công việc. Đôi khi, người quản lý dự án có thể thực hiện ước
lượng bằng cách sử dụng nhiều phương pháp khác nhau, để xác nhận độ
chính xác của một ước lượng được làm bởi một phương pháp chính nào đó
hoặc để giảm rủi ro, đặc biệt là khi không có nhiều dữ liệu quá khứ của dự
án tương tự. Có 2 phương pháp cơ bản để ước lượng nỗ lực đó là phương
pháp ước lượng từ trên xuống và phương pháp ước lượng từ dưới lên.
2. Các mô hình ước lượng nỗ lực phát triển phần mềm
Một mô hình ước lượng phần mềm định nghĩa các đặc trưng của dự án
mà giá trị của những đặc trưng này được dùng để tính nỗ lực (effort). Một
mô hình ước lượng không thể hoạt động trong chân không, nó cần các yếu
tố đầu vào để tạo ra nỗ lực ở đầu ra. Ở lúc bắt đầu dự án, khi các chi tiết
của phần mềm chưa được biết đến, mô hình ước lượng sẽ đòi hỏi các giá trị
của các yếu tố đặc trưng có thể được xác lập ở giai đoạn này. Kích thước
mã nguồn (SIZE) của phần mềm là yếu tố quan trọng nhất trong việc xác
định bao nhiêu nỗ lực là cần thiết để xây dựng nó. Tuy nhiên, SIZE cuối
cùng thì không được biết khi dự án vẫn còn đang được hình thành, và phần
mềm chưa thực sự tồn tại. Do đó, nếu SIZE được sử dụng cho một mô hình
ước lượng nỗ lực thì nó phải được ước lượng ngay từ lúc đầu.

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


4

Tiếp cận phổ biến thông thường sử dụng một phương trình đơn giản để có
được một ước lượng nỗ lực tổng thể từ ước lượng kích thước mã nguồn.
Phương trình này có thể được xác định thông qua phân tích hồi quy các dữ
liệu quá khứ về nỗ lực (effort) và SIZE. Sau đó, một khi nỗ lực tổng thể của
dự án được biết, nỗ lực phân bổ cho các giai đoạn hoặc các hoạt động khác
nhau có thể được xác định bằng một tỷ lệ phần trăm của nỗ lực tổng thể.
Nhiều mô hình đã đề xuất sử dụng tiếp cận từ trên xuống (top-down
approach) để ước lượng, ví dụ như mô hình nổi tiếng COCOMO. Các mô
hình sử dụng điểm chức năng thay vì LOC làm đơn vị kích thước mã nguồn
cũng đã được xây dựng. Trong các mô hình này, được xác định thêm các
yếu tố khác (có ảnh hưởng đến nỗ lực) để điều chỉnh lại các ước lượng dựa
trên các yếu tố này. Đây là tiếp cận được thực hiện trong mô hình
COCOMO model . Một tiếp cận khác là điều chỉnh kích thước mã nguồn
của hệ thống dựa trên các thông số (parameters), như đã được thực hiện
trong điểm chức năng (Function points).
Trong tiếp cận từ dưới lên (bottom-up approach), trước tiên thực hiện
các ước lượng cho các phần của dự án và sau đó ước tính cho tổng thể dự
án. Tức là, ước lượng tổng thể của dự án được suy ra từ các ước lượng của
các bộ phận của nó. Một tiếp cận từ dưới lên được gọi là ước lượng dựa
trên các hoạt động. Trong chiến lược này, trước hết các hoạt động chính
được liệt kê ra, và sau đó nỗ lực cho từng hoạt động được ước lượng. Từ
những ước lượng này, bạn thu được nỗ lực cho toàn bộ dự án.
Tiếp cận ước lượng từ dưới lên là ước lượng trực tiếp (ước lượng ngay) nỗ
lực, một khi dự án được phân chia thành các công việc hoặc nhiệm vụ nhỏ
hơn thì việc ước lượng trực tiếp nỗ lực cần thiết cho chúng là điều có thể.
Mặc dù kích thước đóng một vai trò quan trọng trong việc xác định các nỗ
lực cho các hoạt động trong một dự án, nhưng lợi thế của tiếp cận từ dưới
lên là nó không cần ước lượng kích thước cho phần mềm. Thay vào đó, nó
đòi hỏi một danh sách các công việc hoặc nhiệm vụ trong dự án có thể
được chuẩn bị dễ dàng hơn.
Cả hai tiếp cận từ trên xuống và từ dưới lên điều cần các thông tin về dự
án: kích thước (đối với tiếp cận từ trên xuống) và một danh sách các công
viêc hoặc nhiệm vụ (đối với tiếp cận từ dưới lên). Bằng nhiều cách, những
tiếp cận này có thể bổ sung cho nhau. Cả hai loại ước lượng sẽ cho kết quả
chính xác hơn nếu thông tin về dự án có được biết nhiều hơn. Ví dụ, ước

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


5

lượng kích thước từ các yêu cầu ở mức cao (high level requirements) thì
khó hơn nhiều so với ước lượng kích thước khi đã thiết kế (design) xong,
và thậm chí sẽ dễ dàng hơn và chính xác hơn khi mã (code) đã được phát
triển. Như vậy, độ chính xác của ước lượng phụ thuộc vào thời điểm mà tại
đó nỗ lực ước lượng, và độ chính xác sẽ tăng khi có thêm thông tin về dự
án được biết.
II. TIẾP CẬN MÔ HÌNH ƯỚC LƯỢNG NỖ LỰC PHÁT TRIỂN
PHẦN MÊM COCOMO II
Mô hình CoCoMo II là một trong những mô hình ước lượng chi phí, nỗ
lực sử dụng phương pháp tiếp cận ước lượng từ trên xuống. Trong mô hình
này, đơn vị tính của ước lượng nỗ lực(PM) là người tháng . Một người
tháng là thời gian mà một người dành thời gian đó làm việc cho dự án phát
triển phần mềm trong một tháng. Thời gian này là không kể các ngày lễ và
ngày nghỉ mà chỉ tính đến thời gian nghỉ cuối tuần. Số tháng người khác
với số tháng thời gian nó sẽ mất để hoàn thành dự án, đây được gọi là tiến
độ phát triển. Phương trình tổng quát của mô hình CoCoMo II:
PM = A * ( ) *∏ (1.1)
Trong đó:
PM : ước lượng nỗ lực
A: là một hằng số, bắt nguồn từ dữ liệu dự án lịch sử (hiện tại là
A = 2.94 )
SIZE: Kích thước là trong KSLOC (nghìn dòng mã nguồn),
hoặc chuyển đổi từ các điểm chức năng hoặc điểm đối tượng.
E: là số mũ, cho phép phân chia quy mô phụ thuộc vào năm
trình điều khiển quy mô dự án theo công thức (1.2).
: Là nhân tố nỗ lực của trình điều khiển chi phí.
Phương trình (1.1) là mô hình tổng quát nhất cho mô hình ước lượng
nỗ lực, chi phí thiết kế và hậu thiết kế. Đầu vào là kích thước mã nguồn,
một hằng số A, B và các yếu tố quy mô , kích thước mã nguồn (SIZE)
có nguồn gốc từ ước tính kích thước của module phần mềm sẽ tạo thành
chương trình ứng dụng. Nó cũng có thể được ước tính từ các điểm chức
năng không điều chỉnh (UFP), được chuyển đổi sang SLOC sau đó chia cho
1000. Và cuối cùng là các nhân tố nỗ lực của trình điều khiển chi phí ,
bao gồm 17 nhân tố nỗ lực về sản phẩm phần mềm, nền tảng, nhân sự, và
dự án. Trong phương trình (1.1), hệ số mũ E được tính theo công thức sau:

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


6

E = B + 0.01 * ∑ (1.2)
Trong đó
B = 0,91. (B là hằng số)
: Các yếu tố quy mô.
Ngoài ước lượng nỗ lực, chi phí cho dự án thì việc ước lượng thời gian
phát triển dự án cũng rất quan trọng, được các nhà quản lý dự án quan tâm
rất nhiều. Bởi vì, việc ước lượng thời gian phát triển để kết thúc dự án đúng
thời hạn thì được xem như đảm bảo tiến độ hoàn thành dự án mà khách
hàng mong đợi, hạn chế được rủi ro ngoài ý muốn. Ngược lại, nếu không
ước lượng thời gian phát triển dự án thì không có cơ sở để lập lịch cho dự
án dẫn đến việc kết thúc dự án không đúng thời hạn, rủi ro và phát sinh chi
phí tăng cao, sức ép về tiến độ gây căng thẳng và có thể phá vỡ những quy
định trong dự án..v.v. Đó là một trong những nguyên nhân dẫn đến dự án
thất bại, không có khả thi. Vì vậy, ước lượng thời gian để kết thúc dự án
đúng hạn là một trong những thách thức lớn. Trong mô hình CoCoMo II,
công thức ước lượng thời gian được tính từ nỗ lực của dự án.
TDEV = C * (1.3)
Trong đó:
TDEV: Thời gian phát triển dự án.
C = 3,67. (C là hằng số)
F = D + 0.2 * 0.01 * ∑
D = 0,28. (D là hằng số)
Trong công thức (1.3), việc ước tính thời gian để phát triển dự án
(TDEV) phụ thuộc rất lớn vào nhân lực và các yếu tố về quy mô của dự án.
Với C, D là các hệ số lần lược là C=3.67, D=0.28. Đơn vị tính của TDEV
là tháng.
III. CẤU TRÚC MÔ HÌNH COCOMO II
Mô hình CoCoMo II được phát triển vào năm 1995, là một mô hình cho
phép ước tính chi phí, nỗ lực và tiến độ lập kế hoạch cho một hoạt động
phát triển mới phần mềm. Được kế thừa và khắc phục những hạn chế của
mô hình CoCoMo ban đầu ra đời 1981. Mô hình CoCoMo II cung cấp ba
giai đoạn tương ứng với ba mô hình phụ để ước lượng chi phí, nỗ lực trong
phát triển phần mềm như Mô hình Applications Composition, Mô hình
Early Design và Mô hình Post-Architecture.

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


7

1. Các yếu tố quy mô của dự án


Trong công thức (1.2) dùng để tính toán hệ số mũ E được sử dụng
trong phương trình 1.1. Việc lựa chọn các yếu tố quy mô dự án dựa trên cơ
sở lý luận rằng chúng là một nguồn đáng kể biến thể hàm mũ trên một nỗ
lực của dự án hoặc biến thể năng suất. Mỗi yếu tố quy mô có một loạt các
cấp độ đánh giá, từ rất thấp đến cao nhất. Mỗi cấp độ đánh giá có trọng
lượng SF, và giá trị cụ thể của trọng lượng đó được gọi là một yếu tố quy
mô. Một yếu tố quy mô của dự án là tổng của tất cả các yếu tố, được sử
dụng để xác định số mũ E thông qua công thức (1.2). Các yếu tố quy mô SF
được thể hiện trong bảng sau:
1.1 Tính tiên phong (PREC) và Tính linh hoạt trong phát triển
(FLEX)
Hai yếu tố quy mô này thể hiện được sự khác biệt của mô hình
COCOMO gốc [Boehm 1981]. Bảng 1.1 trên, được tổ chức lại [Boehm
1981, Bảng 6.3] để lập bản đồ các đặc trưng của dự án lên tính tiên phong
và tính linh hoạt.
1.2 Kiến trúc giải quyết rủi ro (RESL)
Yếu tố này kết hợp hai yếu tố quy mô trong Ada COCOMO đó là thiết
kế toàn vẹn bởi PDR và xoá bỏ rủi ro bởi PDR.
1.3 Sự gắn kết đội (TEAM)
Hệ số cân bằng nhóm cho các nguồn của sự bất ổn của dự án do những
khó khăn trong đồng bộ hóa các bên liên quan của dự án như người sử
dụng, khách hàng, nhà phát triển, người duy trì, giao diện, những người
khác. Những khó khăn này có thể phát sinh từ sự khác biệt về mục tiêu và
văn hoá của các bên liên quan, khó khăn trong việc đối chiếu các mục tiêu,
sự thiếu hụt của các bên liên quan kinh nghiệm và sự quen thuộc trong hoạt
động như một nhóm.
1.4 Quy trình trưởng thành (PMAT)
Thủ tục xác định PMAT được tổ chức xung quanh mô hình trưởng
thành năng lực của viện kỹ thuật phần mềm (CMM). Khoảng thời gian để
xếp hạng quá trình trưởng thành là thời gian bắt đầu dự án. Có hai cách
đánh giá quá trình trưởng thành. Kết quả đầu tiên ghi lại kết quả của một
đánh giá có tổ chức dựa trên CMM. Nhìn chung mức độ trưởng thành được
tính từ mức độ 1 đến mức độ 5. Kết quả thứ hai được tổ chức xung quanh
18 tiêu chí về quy trình chính (KPAs) trong mô hình trưởng thành năng lực

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


8

SEI [Paulk et al. 1993, 1993a]. Thủ tục xác định PMAT là quyết định tỷ lệ
tuân thủ của mỗi KPA. Nếu dự án đã trải qua một đánh giá CMM gần đây
thì tỷ lệ tuân thủ cho KPA tổng thể (dựa trên KPA Key Practice Dữ liệu
đánh giá tuân thủ) được sử dụng. Nếu đánh giá chưa được thực hiện thì
mức độ tuân thủ các mục tiêu của KPA là được sử dụng
%
PMAT = 5 – ∑ ( ∗ ) (1.4)
2. Các nhân tố nỗ lực của trình điều khiển chi phí
Đây là 17 nhân tố nỗ lực được sử dụng trong mô hình COCOMO II
Post Architecture, để điều chỉnh nỗ lực ước lượng người tháng, được phản
ánh trên các sản phẩm phần mềm đang phát triển. Chúng được chia thành
bốn loại: sản phẩm phần mềm, nền tảng, nhân sự và dự án. Bất cứ khi nào
đánh giá của trình điều khiển chi phí là giữa các cấp xếp hạng luôn luôn
đúng với xếp hạng ước lượng.
2.1 Yếu tố sản phẩm phần mềm
2.1.1 Độ tin cậy phần mềm
Yêu cầu độ tin cậy của phần mềm (RELY) đây là thước đo mức độ mà
phần mềm phải thực hiện chức năng dự định trong một khoảng thời gian.
Nếu kết quả thất bại của phần mềm nhỏ thì RELY là thấp và nếu sự thất
bại có nguy cơ cao thì RELY là rất cao.
2.1.2 Kích thước dữ liệu (DATA)
Yếu tố về kích thước dữ liệu (DATA) được xây dựng để nắm bắt các
yêu cầu về số liệu lớn đối với việc phát triển sản phẩm. Bởi vì, kích thước
cơ sở dữ liệu rất quan trọng để xem xét nó và những nỗ lực cần thiết để tạo
ra dữ liệu thử nghiệm sẽ được sử dụng để thực hiện chương trình Xếp hạng
được xác định bởi tính D / P.
ố ượ ( )
= (1.5)
ươ ì ( )
2.1.3 Tính phức tạp của sản phẩm (CPLX)
Tính phức tạp được chia thành năm lĩnh vực: hoạt động kiểm soát, các
hoạt động tính toán, các hoạt động phụ thuộc vào thiết bị, các hoạt động
quản lý dữ liệu và người sử dụng hoạt động quản lý giao diện. Việc chọn
lĩnh vực hoặc kết hợp các lĩnh vực đặc trưng cho sản phẩm hoặc một hệ
thống con của sản phẩm. Xếp hạng phức tạp là tỷ lệ trung bình các trọng số
của hoạt động kiểm soát, tính toán các hoạt động, phụ thuộc vào các hoạt
động của thiết bị, quản lý dữ liệu các hoạt động, giao diện người dùng.

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


9

2.1.4 Yêu cầu khả năng sử dụng lại (RUSE)


Yêu cầu khả năng sử dụng lại là một yếu tố được bổ sung cần thiết để
xây dựng các thành phần dự định để sử dụng lại trên hiện tại hoặc tương lai
dự án. RUSE được sử dụng với việc tạo ra thiết kế chung chung hơn của
phần mềm, tài liệu phức tạp hơn, và nhiều hơn nữa thử nghiệm rộng rãi để
đảm bảo các thành phần đã sẵn sàng để sử dụng trong các ứng dụng khác.
2.1.5 Tài liệu phù hợp với nhu cầu của vòng đời (DOCU)
Một số mô hình ước tính chi phí phần mềm có xây dựng tài liệu phù
hợp với nhu cầu của vòng đời. Trong COCOMO II, thang điểm đánh giá
của DOCU được đánh giá dựa trên sự phù hợp của tài liệu dự án với nhu
cầu chu kỳ sống của nó. Đánh giá quy mô từ Very Low (rất thấp nhu cầu
của chu kỳ sống) đến Very High (rất cao đối với nhu cầu của chu kỳ sống).
2.2 Yếu tố nền tảng
Yếu tố này được đề cập đến máy tính, mục tiêu của phần cứng và phần
mềm cơ sở hạ tầng. Các yếu tố đã được sửa đổi để phản ánh đến các đề cập
trên như đã được mô tả trong phần dưới đây. Một số yếu tố nền tảng bổ
sung là xem xét, chẳng hạn như phân phối, song song, nhúng, và các hoạt
động thời gian thực.
2.2.1 Hạn chế thời gian thực hiện (TIME)
Đây là một biện pháp của thời gian để thực hiện hạn chế áp đặt cho
một hệ thống phần mềm. Đánh giá được thể hiện dưới dạng phần trăm thời
gian thực hiện có sẵn dự kiến sẽ được sử dụng bởi hệ thống hoặc hệ thống
con tiêu tốn thời gian thực hiện tài nguyên. Mức đánh giá từ ước lượng, ít
hơn 50% thời gian thực hiện tài nguyên sử dụng, đến mức cao, 95% tài
nguyên thời gian thực hiện được sử dụng.
2.2.2 Hạn chế lưu trữ chính (STOR)
Yếu tố này thể hiện mức độ hạn chế về lưu trữ chính đối với hệ thống
phần mềm hoặc hệ thống con. Đáng chú ý tăng thời gian thực hiện bộ xử lý
có sẵn và lưu trữ chính, người ta có thể đặt câu hỏi liệu các biến ràng buộc
này vẫn còn liên quan, thích hợp. Tuy nhiên, nhiều ứng dụng tiếp tục mở
rộng để tiêu thụ bất kỳ nguồn nào có sẵn, làm cho những chi phí này trình
điều khiển vẫn còn có liên quan. Xếp hạng dao động từ ước lượng, ít hơn
50%, đến mức cao 95%.

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


10

2.2.3 Nền tảng biến động (PVOL)


Nền tảng biến động (PVOL) là phức hợp phần cứng và phần mềm (OS,
DBMS, ...) mà sản phẩm phần mềm gọi đến thực hiện nhiệm vụ của mình.
Nếu phần mềm được phát triển là một hệ điều hành thì nền tảng này là phần
cứng máy tính. Nếu một hệ thống quản lý cơ sở dữ liệu sẽ được phát triển
sau đó nền tảng này là phần cứng và hệ điều hành. Nếu một văn bản mạng
trình duyệt sẽ được phát triển sau đó nền tảng là mạng, phần cứng máy
tính, hệ điều hành và phân phối kho thông tin. Nền tảng này bao gồm bất
kỳ trình biên dịch hoặc lắp ráp nào hỗ trợ phát triển phần mềm hệ thống.
Xếp hạng này dao động từ mức thấp khi có sự thay đổi lớn đến 12 tháng,
còn xếp hạng ở mức rất cao khi có sự thay đổi khoảng hai tuần
2.3 Yếu tố nhân sự
2.3.1 Khả năng phân tích (ACAP)
Khả năng phân tích là những nhân viên làm việc theo yêu cầu, thiết kế
cấp cao và thiết kế chi tiết. Các thuộc tính chính cần được được đánh giá
trong đánh giá này là khả năng phân tích và thiết kế, hiệu quả và sự toàn
diện, và khả năng giao tiếp và hợp tác. Xếp hạng không nên xem xét mức
độ kinh nghiệm của nhà phân tích, đó là đánh giá với AEXP. Các nhà phân
tích rơi vào phần trăm thứ 15 được đánh giá là rất thấp và những phần nằm
trong phần trăm thứ 95 được đánh giá là rất cao.
2.3.2 Khả năng lập trình (PCAP)
Khả năng lập trình (PCAP) đề cập đến tầm quan trọng của các nhà phân
tích có năng lực cao. Tuy nhiên, vai trò ngày càng phức tạp bởi COTS, sự
đòn bẩy năng suất đáng kể liên quan đến khả năng của các lập trình để đối
phó với những COTS gói đã cho thấy một xu hướng tầm nhìn quan trọng
hơn của khả năng lập trình là tốt. Đánh giá nên dựa trên khả năng của các
lập trình viên như một đội chứ không phải là các cá nhân. Các yếu tố chính
cần được xem xét trong đánh giá là khả năng, hiệu quả và triệt để, khả năng
giao tiếp và hợp tác. Các kinh nghiệm của các lập trình viên không nên
được xem xét ở đây, nó được đánh giá cao với AEXP. Một đội lập trình
đánh giá cao được đánh giá rất thấp phần trăm thứ 15 và một đội lập trình
được xếp hạng rất cao nằm trong phần trăm thứ 95.
2.3.3 Kinh nghiệm ứng dụng (AEXP)
Kinh nghiệm ứng dụng (AEXP) được đề cập về trình độ kinh nghiệm
ứng dụng của nhóm dự án phát triển hệ thống phần mềm hoặc hệ thống

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


11

con. Các xếp hạng được xác định dựa trên mức độ kinh nghiệm tương
đương của nhóm dự án với loại ứng dụng này. Đánh giá rất thấp cho trải
nghiệm ứng dụng dưới 2 tháng. Đánh giá rất cao là kinh nghiệm từ 6 năm
trở lên.
2.3.4 Kinh nghiệm về ngôn ngữ và công cụ (LTEX)
LTEX một thước đo mức độ ngôn ngữ lập trình và kinh nghiệm công
cụ phần mềm của nhóm dự án phát triển phần mềm hoặc hệ thống con. Phát
triển phần mềm bao gồm việc sử dụng các công cụ thực hiện các yêu cầu và
thiết kế đại diện và phân tích, quản lý cấu hình, trích xuất tài liệu, quản lý
thư viện, phong cách chương trình và định dạng, kiểm tra tính nhất quán,
..v..v. Ngoài kinh nghiệm trong lập trình với một ngôn ngữ cụ thể công cụ
hỗ trợ thiết lập cũng có hiệu lực thời gian phát triển. Đánh giá thấp cho
LTEX là ít hơn 2 tháng và đánh giá rất cao cho LTEX là từ 6 năm trở lên.
2.3.5 Nhân sự liên tục (PCON)
PCON là doanh thu hàng năm của dự án: từ 3%, rất cao, đến 48%, rất
thấp.
2.4 Yếu tố dự án
2.4.1 Sử dụng công cụ phần mềm (TOOL)
Các công cụ phần mềm đã được đề xuất cho những dự án từ năm
1970 và được sử dụng để hiệu chỉnh mô hình COCOMO. Xếp hạng công
cụ này nằm trong khoảng từ việc đơn giản chỉnh sửa mã ở mức rất thấp đến
việc tích hợp các công cụ quản lý vòng đời ở mức rất cao.
2.4.2 Phát triển đa chiều (SITE)
Với tần suất ngày càng tăng của sự phát triển đa trung tâm, các dấu hiệu
cho thấy hiệu quả phát triển đa quốc gia là rất lớn, yếu tố SITE đã được
thêm vào CoCoMo II để xác định mức đánh giá chi phí bao gồm việc đánh
giá và tính trung bình, có hai yếu tố đó là sự sắp xếp địa điểm và hỗ trợ
truyền thông (từ việc sử dụng Email và điện thoại vào phần mềm một cách
đầy đủ).
2.4.3 Lịch phát triển bắt buộc (SCED)
Yếu tố SCED được xây dựng để ràng buộc lịch biểu đối với nhóm dự
án phát triển phần mềm. Xếp hạng được xác định trong các điều khoản của
tỷ lệ phần trăm của lịch biểu kéo dài ra cho một dự án yêu cầu một cho số
tiền của nỗ lực. Giai đoạn tăng tốc có xu hướng tạo ra nhiều nỗ lực hơn
trong các giai đoạn phát triển sau này bởi vì vấn đề còn lại sẽ được xác định

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


12

do thiếu thời gian để giải quyết chúng sớm hơn. Nếu tỉ lệ này giảm xuống
74% thì được đánh giá rất thấp. Việc kéo dài thời gian biểu sẽ tạo ra nhiều
nỗ lực hơn trong các giai đoạn phát triển trước đó, khi đó có nhiều thời gian
để làm việc kỹ lưỡng hơn quy hoạch, đặc điểm kỹ thuật và xác nhận.
Ngược lại tỉ lệ này tăng lên 160% được đánh giá rất cao.
IV. TIỂU KẾT CHƯƠNG I
Tóm lại, trong chương một tôi đã trình bày một cách khái quát và chi
tiết nhất về tầm quan trọng của việc ước lượng trong dự án phát triển phần
mềm, ước lượng nỗ lực và mô hình ước lượng nỗ lực phát triển phần mềm,
tiếp cận ước lượng nỗ lực phát triển phần mềm trong mô hình CoCoMo II
và cấu trúc của nó.
Đưa ra phương trình tổng quát về ước lượng nỗ lực phát triển phần
mềm trong mô hình CoCoMo II, nỗ lực (PM) = A * ( ) *∏
đơn vị tính của nỗ lực trong mô hình CoCoMo II này là người-tháng. Và
cách ước tính thời gian phát triển dự án dựa vào nỗ lực PM, các yếu tố quy
mô. TDEV = C * . Đơn vị tính (TDEV) là tháng.

CHƯƠNG 2
THUẬT TOÁN TÌM KIẾM CUCKOO SEARCH (CS)
I. GIỚI THỆU
Các thuật toán tối ưu hiện đại ngày càng được lấy cảm hứng từ tự nhiên
đang nổi lên và chúng ngày càng trở nên phổ biến. Ví dụ, thuật toán tối ưu
bầy đàn (PSO) được lấy cảm hứng từ trí thông minh của cá và chim, trong
khi Firefly Algorithm lấy cảm hứng từ mô hình phát sáng của đom đóm
nhiệt đới. Các thuật toán tối ưu lấy cảm hứng tự nhiên này đã được sử dụng
trong một loạt các vấn đề tối ưu hóa, bao gồm các vấn đề như người bán
hàng, đi du lịch...v.v.
Sức mạnh của hầu hết các thuật toán học hiện đại bắt nguồn từ thực tế là
chúng bắt chước tính chất tốt nhất trong tự nhiên, đặc biệt là hệ thống sinh
học phát triển từ sự lựa chọn tự nhiên trong hàng triệu năm. Hai đặc điểm
quan trọng là lựa chọn thích hợp và thích ứng với môi trường. Về phương
diện tối ưu hóa, chúng có thể được tượng trưng cho hai đặc tính quan trọng
của thuật toán hiện đại: tăng cường và đa dạng hóa. Tăng cường sự tìm
kiếm các giải pháp tốt nhất hiện tại và lựa chọn giải pháp tốt nhất, trong khi

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


13

đa dạng hóa đảm bảo rằng thuật toán có thể khám phá không gian tìm kiếm
một cách hiệu quả.
Trong chương này nhằm mục đích giới thiệu một thuật toán mới, gọi là
Cuckoo Search (CS) và được phát triển gần đây bởi Xin-She Yang và
Suash Deb vào năm 2009. Thuật toán này dựa trên các nghiên cứu sinh học
thú vị như nghiên cứu ký sinh trùng của một số loài chim Cuckoos. Trước
tiên, tôi sẽ giới thiệu về các loài bò sát và các đặc tính của các chuyến bay
Le'vy của một số loài chim, sau đó xây dựng thuật toán CS và trình bày
một số ứng dụng của nó.
II. HÀNH VI SINH SỐNG CỦA LOÀI CHIM CUCKOO VÀ
CHUYẾN BAY LÉVY
1. Hành vi sinh sống của loài chim cuckoo
Chim Cuckoo là những con chim hấp dẫn, không chỉ có những âm thanh
đẹp mà chúng có thể tạo ra mà còn bởi vì chiến lược sinh sản của chúng.
Có nhiều loài chim Cuckoo, như một trong số đó là chim Cuckoo Guira đẻ
trứng vào tổ yến, chúng có thể loại bỏ trứng của chim chủ nhà để tăng khả
năng nở trứng. Một số loài chim chủ có thể gây xung đột trực tiếp với
những con chim cu xâm nhập. Nếu một con chim chủ nhà khám phá ra rằng
trứng không phải là của chúng, chúng sẽ ném những quả trứng xa lạ này
hoặc chỉ đơn giản là từ bỏ tổ của nó và xây dựng một tổ mới ở nơi khác.
Một số loài chim chủ đã được phát hiện theo cách mà chim Cuckoo ký sinh
trên chúng đó là việc bắt chước màu sắc và mô hình trứng trong tổ. Điều
này làm giảm xác suất trứng của họ bị bỏ rơi và do đó làm tăng khả năng
sinh sản của họ.
Thêm vào đó, thời điểm đẻ trứng của một số loài chim cuckoo cũng rất
đáng kinh ngạc. Các loài chim này thường chọn một cái tổ của chim chủ
nhà để đẻ trứng riêng. Nói chung, trứng chim Cuckoo nở sớm hơn trứng
chủ của chúng. Khi con chim Cuckoo đầu tiên được nở, hành động bản
năng đầu tiên nó cần là loại bỏ trứng chủ bằng cách mù quáng đẩy trứng ra
khỏi tổ, làm tăng lượng thức ăn của chim Cuckoo con trong tổ. Các nghiên
cứu cũng chỉ ra rằng một chú chim cuckoo con có thể bắt chước hành động
và tiếng kiêu của chim chủ để có thể tiếp cận được nhiều cơ hội được ăn.
2. Chuyến bay Lévy
Các chuyến bay Lévy, được đặt tên theo nhà toán học người Pháp Paul
Lévy, là một lớp đi bộ, hay di chuyển một cách ngẫu nhiên, trong đó độ dài

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


14

bước được rút ra từ phân bố xác suất với đuôi theo định luật hàm số mũ.
Những phân bố xác suất này được gọi là phân phối Lévy hoặc phân phối ổn
định. Các độ dài s của các bước hoặc bước nhảy của các bước đi được phân
phối như là một luật hàm số mũ. L(s) ~ | | với 0 <β ≤ 2 là một hằng
số. Nhiều kiểu di chuyển ngẫu nhiên khác nhau đã được mô tả và phân tích,
chuyển động của nâu có lẽ là sự nổi tiếng nhất trong tất cả các bước đi ngẫu
nhiên. Đây là trường hợp đặc biệt của một bước đi ngẫu nhiên mà độ dài
bước được phân bố theo sự phân bố xác suất Gaussian, hoặc khi ≥3
(Viswanathan và cộng sự, 1999. Việc tạo ra các số ngẫu nhiên bởi Chuyến
bay của L'evy bao gồm hai bước: lựa chọn hướng ngẫu nhiên và tạo ra các
bước tuân thủ phân phối của L'evy. Việc tạo ra một hướng nên được rút ra
từ một sự phân bố đều đặn, trong khi các bước tạo ra các bước là khá phức
tạp. Có một vài cách để đạt được điều này, nhưng một trong những cách
hiệu quả nhất và đơn giản nhất là sử dụng thuật toán Mantegna để phân
phối ổn định L'evy đối xứng. Ở đây 'đối xứng' có nghĩa là các bước có thể
là tích cực và tiêu cực. Trong thuật toán của Mantegna, độ dài bước của có
thể được tính bằng
S= (2.11)
| |

III. THUẬT TOÁN TÌM KIẾM CUCKOO SEARCH (CS)


1. Kiến trúc thuật toán tìm kiếm Cuckoo search(cs)
Để đơn giản trong mô tả tìm kiếm Cuckoo search (CS), bây giờ chúng ta
sử dụng ba quy tắc lý tưởng sau:
1) Mỗi con chim cuckoo chỉ đẻ mỗi lần một trứng và ném quả
trứng này vào tổ ngẫu nhiên.
2) Tổ tốt nhất với chất lượng trứng cao sẽ mang lại cho các thế hệ
kế tiếp.
3) Số lượng tổ có sẵn được xác định, trứng của chim cuckoo được
chim chủ mái phát hiện có xác suất ∈ [0, 1]. Trong trường hợp
này, chim chủ có thể ném trứng đi hoặc bỏ tổ, và xây dựng một
cái tổ hoàn toàn mới.
Đối với vấn đề tối ưu hoá, chất lượng của một giải pháp thông thương
là tỷ lệ thuận với giá trị của hàm mục tiêu. Để đơn giản hơn, chúng ta có
thể sử dụng các biểu diễn đơn giản sau đây để cho mỗi quả trứng trong tổ

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


15

yến(tổ của chim chủ nhà) tượng trưng cho một giải pháp, và một trứng
chim cuckoo là một giải pháp mới, mục tiêu là sử dụng các giải pháp mới
và có tiềm năng tốt hơn (chim cuckoo) giải pháp tốt trong tổ. Tất nhiên,
thuật toán này có thể được mở rộng đến trường hợp phức tạp hơn, khi mỗi
tổ có nhiều trứng đại diện cho một bộ các giải pháp. Đối với công việc hiện
tại, tôi sẽ sử dụng cách tiếp cận đơn giản nhất mà mỗi tổ chỉ có một quả
trứng duy nhất. Khi tạo ra các giải pháp mới ta nói rằng, một con
chim cuckoo i, và một hành động Lévy được thực hiện.
= + ⊕ levy( ) (2.15)
Trong đó α> 0 là bước kích thước cần liên quan đến quy mô của vấn đề
lợi ích. Trong hầu hết các trường hợp, ta có thể sử dụng α = 1. Phương trình
(2.15) nói trên cơ bản là phương trình ngẫu nhiên để di chuyển ngẫu nhiên.
Nói chung, về mặt toán học một cuộc di chuyển ngẫu nhiên là một chuỗi
Markov có trạng thái mà địa điểm tiếp theo chỉ phụ thuộc vào vị trí hiện tại
và xác suất chuyển tiếp từ vị trí này sang vị trí tiếp theo không phụ thuộc
vào giá trị của thời điểm. Ký hiệu ⊕ tương tự như phần được sử dụng
trong thuật toán PSO, nhưng ở đây việc di chuyển ngẫu nhiên thông qua
phân phối L'evy có hiệu quả hơn trong việc khám phá không gian tìm kiếm
vì chiều dài bước của nó dài hơn nhiều.
2. Thiết kế và cài đặt thuật toán
Dựa trên sự mô tả ba quy tắc trên và các bước cơ bản của tìm kiếm
Cuckoo (CS) có thể được tóm tắt theo thuật toán sau đây.
Objective function f(x), x = ( , … )
Generating initial population of n host nests , (i=1,2,…n)
While (t<MaxGenerations) and (! termin.condit.)
Move a cuckoo randomly via Lévy flights ,Evaluate its fitness Fi
Randomly choose nest among n available nest (for example j)
If(Fi > Fj)
Replace j by the new solution;
Fraction of worse nests are abandoned and new nests are being
built;
Keep the best solutions or nests with quality solutions;
Rank the solutions and find the current best
End while
Post process and visualize results End ;

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


16

IV. TIỂU KẾT CHƯƠNG 2


Tóm lại, trong chương này tôi đã giới thiệu về thuật toán tìm kiếm
cuckoos search (CS) là một trong những thuật toán lấy cảm hứng từ thiên
nhiên, dựa vào hành vi ký sinh trùng của một số loài chim cuckoo. Thuật
toán CS đã đóng vai trò quan trọng trong lĩnh vực tối ưu hóa, với mục đích
là tìm ra một giải pháp mới tốt hơn giải pháp ban đầu = +
⊕ levy( ). Ở đây chuyến bay Lévy là một cách di chuyển ngẫu nhiên,
trong đó độ dài bước được rút ra từ phân bố xác suất với theo định luật hàm
số mũ, L(s) ~ | | với 0 <β ≤ 2 là một hằng số.

CHƯƠNG 3
ÁP DỤNG THUẬT TOÁN CUCKOOS SEARCH (CS) TỐI ƯU CÁC
THAM SỐ TRONG MÔ HÌNH COCOMO II ĐỂ ƯỚC LƯỢNG NỖ
LỰC PHÁT TRIỂN PHẦN MỀM
I. GIỚI THIỆU
Ngày nay, có nhiều mô hình ước lượng nỗ lực, chi phí phát triển phần
mềm, cung cấp cho các nhà quản lý dự án nhiều thông tin hữu ích để đưa ra
các quyết định một cách đúng đắn và hợp lý. Như đã được giới thiệu trong
chương 1 của luận văn này, mô hình CoCoMo II được phát triển vào năm
1995, là một mô hình cho phép ước tính chi phí, nỗ lực và tiến độ lập kế
hoạch cho một hoạt động phát triển phần mềm mới. Được kế thừa và khắc
phục những hạn chế của mô hình CoCoMo ban đầu ra đời 1981 và được sử
rộng rãi cho đến ngày hôm nay. Tuy nhiên hầu hết các mô hình ước lượng
nói chung và mô hình CoCoMo II nói riêng điều là tuyến tính, và các hệ số
trong mô hình này chưa được tối ưu hóa. Nên việc ước lượng nỗ lực, chi
phí cho một dự án phát triển phần mềm hiện đại là không chính xác. Do đó,
mục đích của luận văn trong chương 3 này là để tối ưu hóa hệ số của mô
hình CoCoMoII dựa vào những dữ liệu của các dự án trước đó. Trong việc
tối ưu hóa, thông thường sử dụng thuật toán tối ưu được phổ biến rất nhiều,
đặc biệt hơn nữa là gần đây có nhiều thuật toán lấy cảm hứng từ thiên nhiên
được các nhà khoa học quan tâm như thuật toán đàn ong, đàn kiến,..v..v.
Với thuật toán Cuckoo search(CS) đã được trình bày trong chương 2 của
luận văn này, là một trong những thuật toán tối ưu được lấy từ cảm hứng
thiên nhiên, nó là một phương pháp tối ưu nhằm tạo ra các giải pháp mới
tốt nhất một cách ngẫu nhiên. Đây cũng là phương pháp tối ưu hệ số của

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


17

mô hình CoCoMoII mới mẽ nhất từ trước đến nay mà chưa ai sử dụng.


Trong các phần tiếp theo của chương này tôi sẽ trình bày chi tiết về phần
thu thập dữ liệu, phân tích đánh giá mô hình, sau đó áp dụng thuật toán
Cuckoo search (CS) để tối ưu hệ số trong mô hình CoCoMoII. Và cuối
cùng là đánh giá hiệu quả của thuật toán, so sánh thuật toán này với một số
thuật toán khác.
II. THU THẬP DỮ LIỆU, PHÂN TÍCH, MÔ HÌNH ĐÁNH GIÁ
1. Thu thập dữ liệu
Trong mô hình CoCoMo II, đầu vào ước lượng là bộ 22 tham số về
các yếu tố chi phí và quy mô của dự án. Các giá trị của bộ tham số này
được trình bày trong bảng 3.1 và bảng 3.2.
Bảng 3.1: Bảng giá trị về các nhân tố nỗ lực của trình điều khiển chi phí dự
án
Ký Rất Thấp Trung Cao Rất Quá
hiệu thấp Bình cao cao
RELY 0.82 0.92 1.00 1.10 1.26 -
DATA - 0.90 1.00 1.14 1.28 -
CPLX 0.73 0.87 1.00 1.17 1.34 1.74
RUSE - 0.95 1.00 1.07 1.15 1.24
DOCU 0.81 0.91 1.00 1.11 1.23 -
TIME - - 1.00 1.11 1.29 1.63
STOR - - 1.00 1.05 1.17 1.46
PVOL - 0.87 1.00 1.15 1.30 -
ACAP 1.42 1.19 1.00 0.85 0.71 -
PCAP 1.34 1.15 1.00 0.88 0.76 -
PCON 1.29 1.12 1.00 0.90 0.81 -
APEX 1.22 1.10 1.00 0.88 0.81 -
PLEX 1.19 1.09 1.00 0.91 0.85 -
LTEX 1.20 1.09 1.00 0.91 0.84 -
TOOL 1.17 1.09 1.00 0.90 0.78 -
SITE 1.22 1.09 1.00 0.93 0.86 0.80
SCED 1.43 1.14 1.00 1.00 1.00 -

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


18

Bảng 3.2: Bảng giá trị các yếu tố về quy mô của dự án


Ký Rất Thấp Trung Cao Rất Quá
hiệu thấp Bình cao cao
PREC 6.20 4.96 3.72 2.48 1.24 0.00
FLEX 5.07 4.05 3.04 2.03 1.01 0.00
RESL 7.07 5.65 4.24 2.83 1.41 0.00
TEAM 5.48 4.38 3.29 2.19 1.10 0.00
PMAT 7.80 6.24 4.68 3.12 1.56 0.00

Tập dữ liệu thử nghiệm trong việc tối ưu mô hình CoCoMoII ở luận
văn này đã được tiến hành trên bộ dữ liệu gồm 93 dự án phần mềm của
NASA, được trích dẫn từ
link http://openscience.us/repo/effort/cocomo/nasa93.html, trong file
nasa93-dem.arff. Tập dữ liệu này gồm các giá trị về kích thước dữ
liệu(KLOC – đơn vị ngàn dòng lệnh), các yếu tố quy mô của dự án(SF) và
trình điều khiển chi phí dự án (ME) được trình bày trong bảng 3.3
Bảng 3.3: Dữ liệu dự án phần mềm của NASA
Dự KLOC SF EM Nỗ lực Thời
án (PM) gian(TDEV)
1 25.9 11.56 1.045 117.6 15.3
2 24.6 11.56 1.045 117.6 15
3 7.7 11.56 1.045 31.2 10.1
4 66.6 11.56 1.045 352.8 21
5 7.5 11.56 1.469 72 13.6
6 20 13.12 0.538 72 14.4
7 6 13.12 0.623 24 9.9
8 100 13.12 0.538 360 25.2
9 11.3 13.12 0.848 36 12.8
10 100 13.12 0.702 215 30.1
11 20 13.12 0.623 48 15.1
12 150 13.12 0.786 324 32.5
13 31.5 13.12 0.575 60 17.6
14 15 13.12 0.623 48 13.6
15 100 13.12 0.822 360 28
16 165 11.56 2.743 4178 47.3
17 41 11.56 1.507 599 23
18 29.5 11.56 0.950 120 16
19 15.4 11.56 1.578 70 14.5
20 12.8 11.56 1.578 62 13.6

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


19

21 14 11.56 1.045 60 12.4


22 8 13.12 1.17 42 12.5
23 282.1 11.56 0.872 1368 37.3
24 78 14.68 1.171 571.4 30.5
25 19.3 14.68 1.171 155 18.6
26 60 11.56 1.052 409 24.9
27 70 11.56 2.743 1645.9 35.4
28 227 11.56 1.292 1181 33.8
29 111 14.68 0.646 600 23.5
30 100 11.56 1.052 703 29.6

Trong bảng (3.3) trên, tôi sẽ sử dụng dữ liệu của 15 các dự án đầu tiên
như là một bộ huấn luyện, và 15 dự án còn lại được sử dùng để thử nghiệm
sau khi tối ưu hóa các tham số A, B, C và D trong mô hình CoCoMo II.
2. Phân tích mô hình CoCoMoII
Phương pháp ước lượng dựa trên mô hình thuật toán là phổ biến. Các
nhà khoa học đã nghiên cứu về thuật toán các mô hình và công thức để
trình bày mối quan hệ giữa kích thước mã nguồn, trình điều khiển chi phí
được sử dụng vào việc ước lượng chi phí, nỗ lực và thời gian phát triển dự
án. Kết quả là một mô hình thuật toán có thể được biểu diễn bằng như sau:
Effort= f( , , ……, ) (3.1)
TDEV =f( , ,……. ) (3.2)
Trong đó { , ,….., } tượng trưng cho các yếu tố chi phí và kích
thước mã nguồn và nỗ lực. Trong mô hình COCOMO II, những yếu tố chi
phí được chia thành bốn loại sau: Yếu tố sản phẩm phần mềm, yếu tố nền
tảng, yếu tố nhân sự và yếu tố dự án.
Trong các mô hình thuật toán, mối quan hệ giữa nỗ lực và đầu vào các
yếu tố là một chức năng tuyến tính, có nghĩa là nếu kích thước tăng lên thì
nỗ lực cũng tăng với tốc độ ổn định. Do đó, thời gian phát triển dự án cũng
tăng theo. Các mô hình tuyến tính có dạng:
Effort = + ∑ ∗ (3.3)
TDEV = + ∑ ∗ (3.4)
Trong đó, các hệ số , ,…, , , ,…, được chọn để phù hợp
nhất dữ liệu dự án hoàn thành. Tuy nhiên mô hình tuyến tính không phù
hợp với ước tính các dự án không tầm thường trong môi trường lớn và phức
tạp. Do đó, các mô hình phức tạp hơn đã được phát triển. Những cái này

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


20

phản ánh thực tế là chi phí không bình thường tăng tuyến tính với quy mô
dự án.
Trong COCOMO II đã được giới thiệu bởi Boehm là một mô hình ước
tính nỗ lực phần mềm rất nổi tiếng bằng cách sử dụng công thức chung
được trình bày trong phương trình sau đây.
PM = A * ( ) *∏ (3.5)
Trong đó:
PM : ước tính nỗ lực (đơn vị tính là Người-tháng)
A = 2.94 ( A là hằng số)
SIZE: Kích thước là trong KSLOC (nghìn dòng mã nguồn), hoặc
chuyển đổi từ các điểm chức năng hoặc điểm đối tượng.
E: là số mũ, cho phép phân chia quy mô phụ thuộc vào năm trình điều
khiển quy mô dự án.
: Là nhân tố nỗ lực của trình điều khiển chi phí.
Phương trình trên có một yếu tố hàm mũ E để tính toán cho các nền
kinh tế tương đối hoặc phi kinh tế của quy mô gặp phải trong các dự án
phần mềm kích thước khác nhau. Các giá trị của số mũ E thường từ 1 đến
1,5. Công thức được tính như sau:
E = B + 0.01 * ∑ (3.6)
Trong đó :
B = 0,91. (B là hằng số)
: Các yếu tố quy mô dự án
Trong mô hình CoCoMo II, công thức ước lượng thời gian được tính từ nỗ
lực của dự án.
TDEV = C * (3.7)
F = D + 0.2 * 0.01 * ∑ ( 3.8)
Trong đó:
TDEV: Thời gian phát triển dự án (đơn vị là tháng)
C = 3,67. (C là hằng số)
D = 0,28. (D là hằng số)
F : Hệ số mũ
Như đã được trình bày trong chương 1, trong mô hình CoCoMo II, các
công thức (3.5), (3.6), (3.7), (3.8) điều là tuyến tính, dựa trên mô hình toán
học, đầu ra là các ước lượng nỗ lực, chi phí và thời gian điều phụ thuộc vào
các giá trị đầu vào như kích thước mã nguồn, các yếu tố về trình điều khiển

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


21

chi phí và quy mô của dự án. Đối với đầu vào là các hệ số A, B, C và D
hiện tại lần lược mang giá trị, A= 2.4, B = 0.91, C=3.67, D=0.28. Tuy
nhiên trong thực tế có nhiều kiểu dự án khác nhau và tùy thuộc vào từng
khu vực phát triển dự án phần mềm nên các hệ số này sẽ thay đổi. Do đó
đầu ra ước lượng của dự án sẽ thay đổi theo. Vì vậy, các hệ số này được
xem như là các tham số.

3. Mô hình đánh giá chất lượng ước tính


Các phương pháp được sử dụng rộng rãi để đánh giá chất lượng các mô
hình ước lượng phần mềm bao gồm:
Độ lớn trung bình của lỗi tương đối (MMRE)
Dự đoán ở mức N (PRED (N))
Mức độ trung bình của lỗi tương đối là tiêu chuẩn đánh giá được sử
dụng rộng rãi nhất để thẩm định hiệu suất của các mô hình dự báo phần
mềm. Các MMRE được định nghĩa là
MMRE = ∗∑ (3.9)
Trong đó T là số lần quan sát, i thể hiện mỗi lần quan sát cho những nỗ lực
được dự đoán và MRE là tầm quan trọng của lỗi tương đối, được tính như
sau:
| (ướ ượ ) ( ự ế) |
= (3.10)
( ự ế)
Nếu MMRE ≤ 0,25 là chấp nhận được đối với các mô hình đánh giá nỗ
lực. Với hai tập dữ liệu A và B, giả sử rằng tập dữ liệu A bao gồm các dự
án nhỏ trong khi B chứa các dự án lớn. Với mọi thứ khác là như nhau và
MMRE (B) nhỏ hơn MMRE (A). Kết quả là mô hình dự báo được đánh giá
trên tập dữ liệu B sẽ được coi là tốt hơn so với mô hình cạnh tranh được
đánh giá trên tập dữ liệu A.
Một phương pháp khác thường được sử dụng là dự đoán ở cấp N, ký
hiệu là PRED (N). Đó là phần trăm dự án mà các giá trị dự đoán nằm trong
N% giá trị thực tế của họ. Ví dụ, nếu PRED (25) = 85, điều này có nghĩa
chỉ ra rằng 85% các dự án nằm trong phạm vi 25% lỗi. Các nhà khoa học
cũng khẳng định rằng N nên được chọn là 25% và một hệ thống ước tính
tốt nên cung cấp độ chính xác này đạt đến 75% nỗ lực. Công thức sau đây,
minh họa cách để tính giá trị PRED (N):

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


22

1 ế ≤
PRED (N) = *∑ (3.11)
0 ượ ạ
Trên đây, tôi đã giới thiệu và sử dụng các mô hình trên để đánh giá độ
chính xác của các mô hình ước lượng nỗ lực phần mềm. Phần tiếp theo tôi
sẽ sử dụng thuật toán Cuckoo search (CS) để tối ưu hóa các tham số của
mô hình CoCoMoII.
III. ÁP DỤNG THUẬT TOÁN CUCKOO SEARCH (CS) ĐỂ TỐI ƯU
CÁC THAM SỐ TRONG MÔ HÌNH COCOMO II
1. Hàm chất lượng ước tính (fitness)
Trong quá trình phát triển phần mềm thực tế, các nhà phát triển thường
ước tính yêu cầu nỗ lực, thời gian cho các dự án. Nếu ước tính đúng sẽ
cung cấp cho một MRE từ 0% cho công sức, thời gian. Thêm vào đó, giá trị
của các tham số cho kết quả ước tính trên các dự án T gần đúng với kết quả
thực tế sẽ như mong muốn. Do đó, giá trị thấp hơn của MMRE trên các dự
án T là kết quả tốt hơn. Tổng nỗ lực MMRE được sử dụng để đánh giá chất
lượng (f) của các trong số các giải pháp theo phương trình sau:
fitness = ( ỗ ự ) + ( ờ ) (3.13)
2. Ứng dụng thuật toán Cuckoo search (CS) tối ưu các tham số
trong mô hình CoCoMo II
Trong luận văn này, tôi đề xuất phương pháp dùng thuật toán Cuckoo
search (CS) để tối ưu hóa các tham số A, B, C và D của COCOMO II bằng
cách dựa vào các dự án phần mềm trong quá khứ. Bài toán tối ưu cần đặt ra
là làm sao cho phương trình (3.13) mang giá trị nhỏ nhất nghĩa là giá trị
MMRE thấp nhất trên các dự án T là tốt nhất. Trong thuật toán CS này, con
chim cuckoo tượng trưng cho nỗ lựcvà thời gian, còn quả trứng tượng trưng
cho các giải pháp. Việc tối ưu được thực hiện qua các bước sau:

Input : Tập dữ liệu dùng để huấn luyện (các dự án trong quá khứ).
Bộ tham số T cần tối ưu T= {A, B, C, D}.
Hàm mục tiêu fitness= ( ỗ ự ) + ( ờ )
| (ướ ượ ) ( ự ế) | (ướ ượ ) ( ự ế) |
f= ∑ + ∑
( ự ế) ( ự ế)
Output : Giá trị tối ưu của bộ tham số T = {A, B, C, D}.

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


23

 Bước 1: Khởi tạo số lượng n dự án ngẫu nhiên (với n = 15 dự án )


và các giải pháp ban đầu A, B, C và D trong dự án.
 Bước 2: Qúa trình tìm kiếm dự án, giải pháp một cách ngẫu nhiên bởi
phân phối LéVy.
 Bước3: Đánh giá hàm mục tiêu fitness
 Bước 4: Chọn một dự án trong n dự án ngẫu nhiên j
 Bước 5: Nếu > thì thay thế j bằng giải pháp mới, ngược lại để j
như là giải pháp.
 Bước 6: Gọi k là xác xuất được phát hiện các dự án, giải pháp không
có chất lượng. Nếu k < 0.25 thì thực hiện loại bỏ các dự án, giải pháp
kém chất lượng và xây dựng giải pháp mới thông qua phân phối
Lévy.
 Bước 7: Cập nhật các giải pháp tốt nhất và quay lại bước 2
 Bước 8: Tìm mục tiêu tốt nhất của dự án, đó là các tham số A, B, C
và D đã được tối ưu qua các bước trên.

IV. KẾT QUẢ VÀ ĐÁNH GIÁ HIỆU QUẢ CỦA THUẬT TOÁN, SO
SÁNH VỚI MỘT SỐ THUẬT TOÁN KHÁC
1. Kết quả thuật toán
Thuật toán tối ưu CS trên, được cài đặt thông qua các công cụ phần
mềm. Matlab là một môi trường tính toán số và lập trình, được thiết kế bởi
công ty MathWorks. MATLAB cho phép tính toán số với ma trận, vẽ đồ thị
hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người
dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ
lập trình khác. Việc cài đặt thuật toán tối ưu này trên công cụ Matlab cho ra
giá trị tối ưu các tham số A, B, C và D trong mô hình CoCoMo II, sau khi
chạy thuật toán nhiều lần và tìm được giá trị tối ưu tốt nhất. Giá trị cụ thể
của từng tham số như sau: A = 4.4019; B = 0.9332; C = 2.5334; D =
0.3505.
2. Đánh giá hiệu quả của thuật toán và so sánh với một số
thuật toán khác
Các hệ số của mô hình CoCoMo II sau khi được tối ưu bằng thuật toán
CS cho ra kết quả như đã trình bày ở trên. Trong khi đó các hệ số của mô
hình này được tối ưu bằng nhiều thuật toán khác nhau.Thuật toán dạy và
học (TLBO) là một trong số thuật toán sử dụng để tối ưu hóa các tham số

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


24

trong mô hình CoCoMo II được đề xuất gần đây bởi tác giả TS. Lê Thị Mỹ
Hạnh và Khuất Thanh Tùng “Thanh Tung Khuat, My Hanh Le, "Applying
Teaching-Learning to Artificial Bee Colony for Parameter Optimization
of Software Effort Estimation Model," Journal of Engineering Science
and Technology, 2016”. Kết quả tối ưu sử dụng thuật toán này cho ra giá trị
tham số: A = 4.062 B = 0.857; C = 2.938; D = 0.357. Từ giá trị của các
tham số đã được tối ưu trên, dựa vào các công thức (3.5), (3.6), (3.7), (3.8),
bảng dữ liệu được thu thập từ các dự án của NASA và các mô hình đánh
giá MMRE, PRED để tính toán, đánh giá hiệu quả của việc tối ưu dùng
thuật toán CS. Kết quả được trình bày trong bảng 3.4 và bảng 3.5.
Trong bảng 3.5 cho thấy rằng giá trị MMRE của CS rất thấp hơn nhiều
so với CoCoMo II và TLBO. Cụ thể là đối với nỗ lực (PM), giá trị MMRE
của CS so với CoCoMo II thấp hơn 19.46%, so với TLBO thấp hơn
6.46%. Còn đối với thời gian (TDEV), giá trị MMRE của CS so với
CoCoMo II thấp hơn 16,01%, so với TLBO thấp hơn 1.62%
Tương tự trong bảng 3.4 cũng cho thấy rằng giá trị PRED(N) của CS rất
lớn hơn nhiều so với CoCoMo II và TLBO cùng mức dự đoán. Ở đây, N là
mức dự đoán và giá trị N được chọn từ 10 đến 40 để đánh giá. Cụ thể đối
với nỗ lưc, số phần trăm các dự án nằm trong 20% ước lượng không chính
xác của CS so với TLBO cao hơn 13.34%, so với CoCoMo II cao hơn
26.67%. Còn đối với thời gian(TDEV) CS so với TLBO cao hơn 20%, so
với CoCoMo II cao hơn 66.67%, việc phân tích đánh giá các mức dự đoán
tiếp theo cũng tương tự như trên.
Như vậy, với việc sử dụng thuật toán CS để tối ưu các tham số trong
mô hình CoCoMo II thì chính xác và gần với thực tế hơn so với sử dụng
thuật toán TLBO và việc tối ưu các tham số này đã cải thiện rất nhiều về
ước lượng nỗ lực, chi phí và thời gian so với mô hình CoCoMo II ban đầu
Bảng 3.4: Bảng các giá trị PRED sử dụng thuật toán CS, CoCoMo II và
TLBO
PRED Nỗ lực (PM) PRED Thời gian (TDEV)
CoCoMoII TLBO CS % CoCoMo II TLBO CS
% % % % %
PRED(10) 6.66 6.66 13.33 6.66 73.33 66.66
PRED(20) 13.33 26.66 40 33.33 80 100
PRED(30) 13.33 40 66.66 66.66 100 100
PRED(40) 33.33 60 73.33 100 100 100

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


25

Bảng 3.4: Bảng các giá trị MRE sử dụng thuật toán CS, CoCoMo II và
TLBO
Dự án MRE Nỗ lực (PM) MRE Thời gian (TDEV)
COCOMO II TLBO CS COCOMO II TLBO CS
16 0.703 0.617 0.388 0.328 0.025 0.004
17 0.727 0.621 0.455 0.252 0.003 0.043
18 0.388 0.134 0.212 0.156 0.071 0.017
19 0.106 0.309 0.747 0.113 0.103 0.052
20 0.165 0.235 0.624 0.108 0.123 0.043
21 0.374 0.078 0.220 0.112 0.088 0.016
22 0.417 0.116 0.121 0.218 0.061 0.135
23 0.501 0.373 0.043 0.288 0.026 0.024
24 0.508 0.339 0.003 0.311 0.046 0.075
25 0.586 0.400 0.186 0.285 0.090 0.148
26 0.315 0.438 0.167 0.320 0.068 0.101
27 0.624 0.577 0.368 0.165 0.246 0.040
28 0.588 0.130 0.424 0.303 0.213 0.202
29 0.687 0.504 0.232 0.312 0.128 0.125
30 0.595 0.463 0.175 0.313 0.054 0.078
MMRE 48.60 % 35.61 29.14 23.94 % 9.01 % 7.39 %

V. TIỂU KẾT CHƯƠNG 3


Như vậy, Trong chương 3 này đã trình bày chi tiết về cách tối ưu các
tham số trong mô hình CoCoMo II sử dụng thuật toán Cuckoos search (CS)
để ước lượng nỗ lực, chi phí và thời gian trong phát triển dự án phần mềm.
Trong đó, giới thiệu lý do tối ưu, các mô hình đánh giá và phân tích mô
hình tuyến tính trong mô hình CoCoMo II. Giới thiệu sơ lược về thuật toán
CS và ứng dụng thuật toán này vào việc tối ưu các tham số A, B, C và D
trong mô hình CoCoMo II.
Kết quả tối ưu là các giá trị của các tham số lần lược là A = 4.4019;
B = 0.9332; C = 2.5334; D = 0.3505. Dựa vào các dữ liệu đã thu thập từ
các dự án của NASA, các công thức (3.5), (3.6), (3.7), (3.8) và các kỹ thuật
đánh giá để tính toán, đánh giá kết quả tối ưu sử dụng thuật toán CS so với
một số thuật toán khác như thuật toán TLBO. Việc đánh giá trên đã chỉ ra
rằng, sử dụng thuật toán CS để tối ưu các tham số trong mô hình CoCoMo
II tốt hơn nhiều so với sử dụng thuật toán TLBO và việc tối ưu các tham số

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


26

này đã cải thiện rất nhiều về ước lượng nỗ lực, chi phí và thời gian so với
mô hình CoCoMo II ban đầu.

KẾT LUẬN VÀ KIẾN NGHỊ


Ước tính chính xác chi phí phần mềm là một hoạt động quan trọng
trong việc lập kế hoạch dự án. Qua việc áp dụng thuật toán CS vào việc tối
ưu hóa các tham số của mô hình COCOMO II đã dẫn đến sự ước lượng nỗ
lực, chi phí và thời gian gần sát với thực tế. Do đó, thuật toán đề xuất đã
giải quyết vấn đề tối ưu hóa và đạt được kết quả chính xác hơn bằng cách
tối ưu hoá các hệ số của mô hình COCOMO II. Các kết quả thu được sẽ
góp phần vào việc phát triển các dự án phần mềm trong thời gian và ngân
sách. Tuy nhiên, vẫn còn tồn tại một số nhược điểm trong nghiên cứu trình
bày. Các thí nghiệm chỉ được thực hiện trên các dự án NASA được đặc
trưng bởi các dòng mã, một số yếu tố quy mô và các nhân tố nỗ lực của
trình điều khiển chi phí. Kết quả thu được chỉ ra rằng mô hình được cải
thiện chính xác hơn so với mô hình COCOMO II ban đầu trên các dự án
của NASA. Do sự thu thập dữ liệu trong bộ sưu tập dữ liệu của các dự án
trên NASA, nên chưa được chứng minh bằng các thí nghiệm. Do đó, tôi dự
định sẽ áp dụng mô hình cải tiến cho các nghiên cứu thực nghiệm về các dự
án không phải của NASA trong tương lai.

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn


27

TÀI LIỆU THAM KHẢO

[1]. Abts, C.; Clark, B.; Devnani-Chulani, S.; Horowitz, E.; Madachy, R.;
Reifer, D.; Selby, R.; and Steece, B. (1998). COCOMO II model definition
manual. Center for Software Engineering, University of Southern
California.
[2]. Thanh Tung Khuat, My Hanh Le, "Applying Teaching-Learning to
Artificial Bee Colony for Parameter Optimization of Software Effort
Estimation Model," Journal of Engineering Science and Technology, 2016
[3]. J. Kaur and R. Sindhu, “Parameter estimation of COCOMO II using
tabu search”, Int. J. Comp. Sci. Inform. Technol., vol. 5, no. 3, pp. 4463–
4465, 2014.
[4] B. Boehm, B. Clark, E. Horowitz, C. Westland, R. Madachy, and
R. Selby, “Cost Models for Future Software Life Cycle Processes:
COCOMO 2.0”, Annals of Softw. Engin., vol. 1, no. 1, pp. 57–94, 1995.
[5] Shilane D., Martikainen J., Dudoit S., Ovaska S. J., A general frame-
work for statistical performance comparison of evolutionary computation
algorithms, Information Sciences: an Int. Journal, 178, 2870-2879 (2008).
[6] Shlesinger M. F., Zaslavsky G. M. and Frisch U. (Eds), Le´vy
Flights and Related Topics in Phyics, Springer, (1995).
[7] Shlesinger M. F., Search research, Nature, 443, 281-282 (2006).
[8] Yang X. S., Nature-Inspired Metaheuristic Algorithms, Luniver Press,
(2008).
[9] Yang X. S., Biology-derived algorithms in engineering optimizaton
(Chapter 32), in Handbook of Bioinspired Algorithms and Applications
(eds Olarius & Zomaya), Chapman & Hall / CRC (2005).
[10] Chen, Z.; Menzies, T.; Port, D.; and Boehm, B. (2005). Feature subset
selection can improve Software Cost Estimation Accuracy. Proceedings of
the 2005 workshop on Predictor Models in Software Engineering. New
York, USA, 1-6.
[11] H. Zheng and Y. Zhou, “A Novel Cuckoo Search Optimization
Algorithm Base on Gauss Distribution”, Journal of Computational
Information Systems 8: 10, 4193–4200, 2012.
[12] Tập dữ liệu thử nghiệm gồm 93 dự án phần mềm của NASA, được
trích dẫn từ link http://openscience.us/repo/effort/cocomo/nasa93.html.

GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn

You might also like