Tải bản đầy đủ (.pdf) (70 trang)

XÁC ĐỊNH tập dữ LIỆU HUẤN LUYỆN PHÙ hợp NHẰM HIỆU CHỈNH mô HÌNH COCOMO

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.43 MB, 70 trang )

LỜI CẢM ƠN
Viết lời cảm ơn không phải dễ đối với khối lƣợng tri thức, những mối quan hệ, lòng
biết ơn và hơn cả là sức nặng tình cảm. Thật vậy, một trang giấy tôi sợ không thể tải
hết những gì tôi muốn cảm ơn, không nêu lên hết những cái tên tôi muốn nhắc đến,
đặc biệt trong ngày 20/11 gần kề.
Để hoàn thành luận văn này, không chỉ là thủ tục luận văn mà còn là lời tri ân chân
thành của tôi đến:
-

TS. Nguyễn Văn Vũ đã trực tiếp hƣớng dẫn, tận tình trợ giúp cho tôi trong
suốt quá trình triển khai nghiên cứu và hoàn thành đề tài “Xác định tập dữ
liệu huấn luyện phù hợp nhằm hiệu chỉnh mô hình COCOMO”.

-

Quý Thầy Cô đã giảng dạy và truyền đạt những kiến thức bổ ích trong suốt
quá trình học tập tại Trƣờng Đại học Công nghệ Thông tin, ĐHQG.HCM.

-

Các Anh, Chị Phòng Đào tạo Sau Đại học luôn nhiệt tình hỗ trợ và tạo điều
kiện thuận lợi để học tập và nghiên cứu.

-

Và Gia đình tôi, đặc biệt là Chồng đã luôn bên cạnh, quan tâm và động viên
tôi những lúc khó khăn nhất để tôi có thể vƣợt qua và hoàn thành khóa học.

Mặc dù đã có nhiều cố gắng để thực hiện đề tài đƣợc hoàn chỉnh nhất, song do mới
buổi đầu làm quen với công việc nghiên cứu khoa học, tiếp cận với những tài liệu
bằng tiếng nƣớc ngoài cũng nhƣ những hạn chế về kiến thức và kinh nghiệm nên


không thể tránh khỏi những thiếu sót nhất định. Rất mong sự đóng góp, phê bình
chân thành của Quý Thầy Cô để đề tài đƣợc hoàn chỉnh hơn.
Sau cùng, xin kính chúc mọi ngƣời đƣợc dồi dào sức khỏe và có nhiều niềm vui
trong cuộc sống. Chúc Trƣờng Đại học Công nghệ Thông tin, ĐHQG.HCM ngày
càng phát triển.
Luận văn này một phần đƣợc tài trợ bởi Quỹ Phát triển Khoa học và Công nghệ
Quốc gia NAFOSTED qua đề tài “Cải tiến COCOMO dựa trên Phân tích Xu hƣớng
của Năng suất Dự án và các Nhân tố ảnh hƣởng theo thời gian” mã số 02.032014.34.


LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này do chính tôi thực hiện dƣới sự hƣớng dẫn khoa học
của TS. Nguyễn Văn Vũ, giảng viên Trƣờng Đại học Khoa học Tự nhiên TP.HCM.
Các số liệu và kết quả nghiên cứu trong luận văn là trung thực, do tôi lập trình, phân
tích, đánh giá.
Các thông tin trích dẫn trong luận văn này đều đã đƣợc chỉ rõ nguồn gốc.
Nếu sai, tôi xin chịu hoàn toàn trách nhiệm.

TP.Hồ Chí Minh, tháng 11 năm 2015
Học viên

Huỳnh Thị Phƣơng Thủy

2


MỤC LỤC
LỜI CẢM ƠN .............................................................................................................1
LỜI CAM ĐOAN .......................................................................................................2
MỤC LỤC ...................................................................................................................3

DANH MỤC CÁC BẢNG..........................................................................................5
DANH MỤC CÁC HÌNH VẼ.....................................................................................6
DANH MỤC CÁC BIỂU ĐỒ .....................................................................................7
MỞ ĐẦU .....................................................................................................................8
Chƣơng 1
1.1

TỔNG QUAN .......................................................................................10

Tình hình nghiên cứu ...................................................................................10

1.1.1

Tình hình nghiên cứu ngoài nƣớc ........................................................10

1.1.2

Tình hình nghiên cứu trong nƣớc .........................................................14

1.2

Tính khoa học và tính mới của đề tài ..........................................................15

1.3

Mục tiêu nghiên cứu ....................................................................................16

1.4

Đối tƣợng và phạm vi nghiên cứu ...............................................................17


Chƣơng 2
2.1

KHẢO SÁT HIỆN TRẠNG .................................................................18

Các phƣơng pháp ƣớc lƣợng công thực hiện phần mềm .............................18

2.1.1

Nhóm phƣơng pháp ƣớc lƣợng dựa vào chuyên gia .............................18

2.1.2

Nhóm phƣơng pháp ƣớc lƣợng dựa vào công thức ..............................19

2.1.3

Nhóm phƣơng pháp ƣớc lƣợng bằng máy học .....................................19

2.2

Mô hình ƣớc lƣợng công sức COCOMO II ................................................20

2.2.1

Kích thƣớc phần mềm ...........................................................................21

2.2.2


Các yếu tố ảnh hƣởng ...........................................................................21

2.2.3

Số mũ E .................................................................................................22

2.2.4

Thành phần nhân EM ............................................................................23

Chƣơng 3

CÁCH TIẾP CẬN ................................................................................24

3.1

Bộ dữ liệu COCOMO ..................................................................................24

3.1.1

Nguồn gốc bộ dữ liệu COCOMO .........................................................24

3.1.2

Mô tả bộ dữ liệu: ...................................................................................25

3.2

Hiệu chỉnh COCOMO .................................................................................27
3



3.3

Xác định tập huấn luyện để xây dựng mô hình ƣớc lƣợng .........................31

3.3.1

Cửa sổ phân tập .....................................................................................31

3.3.2

Xác định tập huấn luyện khi không dùng cửa sổ phân tập ...................31

3.3.3

Xác định tập huấn luyện khi có sử dụng cửa sổ phân tập .....................32

3.4

Thực hiện hiệu chỉnh A, B trên mỗi tập con ...............................................35

3.5

Đánh giá độ chính xác của mô hình COCOMO trên mỗi tập dữ liệu con ..39

3.5.1

Xác định các độ đo................................................................................39


3.5.2

Thực hiện so sánh và đánh giá mô hình COCOMO trên mỗi tập con ..41

Chƣơng 4

KẾT QUẢ .............................................................................................43

4.1

Phân tập theo số năm: ..................................................................................43

4.1.1

So sánh 3 phƣơng pháp ƣớc lƣợng .......................................................43

4.1.2

Chọn kích thƣớc cửa sổ (số năm) phù hợp nhất cho mỗi năm .............54

4.1.3

Chọn kích thƣớc cửa sổ (số năm) phù hợp nhất cho toàn bộ dữ liệu ...57

4.2

Phân tập theo số lƣợng dự án ......................................................................58

4.2.1


So sánh 3 phƣơng pháp ƣớc lƣợng .......................................................59

4.2.2

Chọn kích thƣớc cửa sổ (số lƣợng dự án) phù hợp nhất cho mỗi năm .64

4.2.3
liệu

Chọn kích thƣớc cửa sổ (số lƣợng dự án) phù hợp nhất cho toàn bộ dữ
...............................................................................................................65

Chƣơng 5

KẾT LUẬN và HƢỚNG PHÁT TRIỂN ..............................................67

TÀI LIỆU THAM KHẢO .........................................................................................69

4


DANH MỤC CÁC BẢNG
Bảng 1-1: So sánh mean MRE khi có và không có dùng cửa sổ (dữ liệu ISBSG) ..12
Bảng 2-1: Yếu tố chi phí COCOMO II .....................................................................21
Bảng 2-2: Các giá trị của SFi trong COCOMO II .....................................................22
Bảng 2-3: Các giá trị của EMi trong COCOMO II....................................................23
Bảng 3-1: Số các bộ dữ liệu theo Quốc gia và Loại dự án .......................................24
Bảng 3-2: Số liệu 8 dự án thực hiện hiệu chỉnh tham số A, B ..................................29
Bảng 3-3: Các cặp giá trị quan sát Xi , Yi .................................................................30
Bảng 3-4: So sánh MRE trƣớc và sau khi hiệu chỉnh A,B .......................................30

Bảng 3-5: Số liệu tập huấn luyện năm 2004, 2005 ...................................................36
Bảng 3-6: Các cặp giá trị quan sát Xi , Yi .................................................................37
Bảng 3-7: Kết quả ƣớc lƣợng cho Tập kiểm tra Năm 2006 ......................................39
Bảng 3-8: Đánh giá kết quả ƣớc lƣợng cho tập kiểm tra Năm 2006 ........................41
Bảng 4-1: So sánh MMRE.no, MMRE.yes (số năm ) và MMRE.old ......................45
Bảng 4-2: So sánh PRED30.no, PRED30.yes (số năm), PRED30.old .....................47
Bảng 4-3:Kích thƣớc cửa sổ (số năm) phù hợp nhất ................................................55
Bảng 4-4: So sánh MMRE.no, MMRE.yes (theo số lƣợng dự án) và MMRE.old ...60
Bảng 4-5: Kích thƣớc cửa sổ (số lƣợng dự án) phù hợp nhất ...................................64

5


DANH MỤC CÁC HÌNH VẼ
Hình 3-1: Mô tả file dữ liệu trƣớc khi xử lý .............................................................25
Hình 3-2: Các mức giá trị của tham số RESL ...........................................................26
Hình 3-3: Mô tả file dữ liệu sau khi xử lý.................................................................27
Hình 3-4: Số lƣợng dự án mỗi năm trong bộ dữ liệu COCOMO .............................27
Hình 3-5: Minh họa ƣớc lƣợng không sử dụng cửa sổ .............................................32
Hình 3-6: Minh họa ƣớc lƣợng có sử dụng cửa sổ....................................................32
Hình 3-7: Minh họa phân tập theo số năm ................................................................33
Hình 3-8: Minh họa phân tập theo số lƣợng dự án ...................................................35
Hình 4-1: Chia giai đoạn để phân tích ......................................................................50
Hình 4-2: Chia nhóm dự án để phân tích ..................................................................61

6


DANH MỤC CÁC BIỂU ĐỒ
Biểu đồ 1-1: Chệnh lệch về mức độ lỗi.....................................................................13

Biểu đồ 4-1: MMRE.no, MMRE.yes (số năm), MMRE.old : 1996-2009 ................47
Biểu đồ 4-2: PRED30.no, PRED30.yes (số năm), PRED30.old : 1996-2009 ..........49
Biểu đồ 4-3: MMRE.no, MMRE.yes (số năm), MMRE.old: 1987-1990 .................51
Biểu đồ 4-4: MMRE.no, MMRE.yes (số năm), MMRE.old: 1991-2000 .................52
Biểu đồ 4-5: MMRE.no, MMRE.yes (số năm), MMRE.old: 2001-2009 .................52
Biểu đồ 4-6: PRED30.no, PRED30.yes (số năm), PRED30.old: 1987-1990 ...........53
Biểu đồ 4-7: PRED30.no, PRED30.yes (số năm), PRED30.old: 1991-2000 ...........53
Biểu đồ 4-8: PRED30.no, PRED30.yes (số năm), PRED30.old: 2001-2009 ...........54
Biểu đồ 4-9: Kích thƣớc cửa sổ (số năm) phù hợp nhất cho mỗi năm .....................56
Biểu đồ 4-10: MMRE.yes theo từng năm (2001-2009) giữa các wsize khác nhau ..57
Biểu đồ 4-11: Kích thƣớc cửa sổ (số năm) phù hợp nhất cho bộ dữ liệu .................58
Biểu đồ 4-12: MMRE.no, MMRE.yes (số lƣợng dự án), MMRE.old : dự án 41-70 ...
.................................................................................................................................. 62
Biểu đồ 4-13: MMRE.no, MMRE.yes (số lƣợng dự án), MMRE.old : dự án 71-100
...................................................................................................................................62
Biểu đồ 4-14: MMRE.no, MMRE.yes (số lƣợng dự án), MMRE.old : dự án 101-341
...................................................................................................................................62
Biểu đồ 4-15:PRED.30.no, PRED.30.yes (số lƣợng dự án), PRED.30.old ..............63
Biểu đồ 4-16: Kích thƣớc cửa sổ (số lƣợng dự án) phù hợp nhất cho mỗi năm .......65
Biểu đồ 4-17: Kích thƣớc cửa sổ (số lƣợng dự án) phù hợp nhất cho bộ dữ liệu dựa
vào MMRE ................................................................................................................66
Biểu đồ 4-18:Kích thƣớc cửa sổ (số lƣợng dự án) phù hợp nhất cho bộ dữ liệu dựa
vào PRED.30 .............................................................................................................66

7


MỞ ĐẦU
Ngành công nghệ phần mềm đã và đang phát triển mạnh, cùng với các công
cụ hỗ trợ và kỹ thuật tiên tiến hơn, các mô hình phát triển phần mềm mới cũng liên

tục ra đời, kế thừa và phát triển hơn mô hình cũ. Cũng vì thế mà năng suất phần
mềm ngày càng đƣợc nâng cao hơn. Việc ƣớc lƣợng chi phí và thời gian phát triển
phần mềm đòi hỏi phải có sự điều chỉnh lại để cải thiện độ chính xác.
Ƣớc lƣợng hay dự đoán trƣớc một vấn đề nào đó luôn luôn cần thiết và quan
trọng. Trong kinh doanh, ƣớc lƣợng để từ đó có những quyết định đầu tƣ phù hợp
về tiền bạc, thời gian, con ngƣời, v.v… Tuy nhiên, nếu ƣớc lƣợng quá cao hay quá
thấp hơn mức thực tế đều có thể làm thiệt hại nhƣ không có đƣợc hợp đồng khi đấu
thầu, hoặc có đƣợc hợp đồng nhƣng bị thua lỗ về tài chính.
COCOMO là một trong những mô hình ƣớc lƣợng chi phí và thời gian phát
triển phần mềm. Mô hình này do Boehm là ngƣời đầu tiên xây dựng vào năm 1981,
kế đó là phiên bản COCOMO II vào năm 2000 và hiện đang đƣợc tiếp tục mở rộng
và phát triển một phiên bản COCOMO III. Mô hình ƣớc lƣợng COCOMO đã và
đang thu hút sự chú ý của cộng đồng nghiên cứu và đƣợc rất nhiều công ty áp dụng
trong thực tế. Mặc dù vậy, cải thiện mức độ chính xác vẫn luôn là bài toán quan
trọng đặt ra cho những ngƣời nghiên cứu và là mong đợi của các nhà phát triển
trong ngành công nghiệp phần mềm.
Đề tài này, chúng tôi nghiên cứu về mức độ ảnh hƣởng từ các bộ dữ liệu
khác nhau đƣợc rút trích theo thời gian và số lƣợng dự án lên độ chính xác của mô
hình COCOMO. Qua đó sẽ đánh giá độ chính xác của mô hình COCOMO đƣợc
hiệu chỉnh dựa trên bộ dữ liệu huấn luyện đƣợc rút trích thông qua cửa sổ di động
(moving window). Cửa sổ di động là một kỹ thuật di chuyển cửa sổ theo trục thời
gian hoặc trục số lƣợng dự án với một khoảng cách không đổi.
Mặc dù có một số thách thức nhƣng chúng tôi vẫn không ngại tiến hành
nghiên cứu. Nếu độ chính xác của mô hình ƣớc lƣợng đƣợc cải thiện hơn thì đó là
một thành công, ngƣợc lại cũng góp một phần số liệu minh chứng nhằm khẳng định
giá trị vốn có của mô hình ƣớc lƣợng COCOMO. Các thách thức đó là:

8



-

Ƣớc lƣợng hay dự đoán trƣớc một điều gì bao giờ cũng là một bài toán khó,
bởi mức độ chính xác phụ thuộc vào rất nhiều yếu tố. Ƣớc lƣợng phần mềm
cũng vậy, dựa vào bộ dữ liệu chỉ là một trong số các nghiên cứu làm ảnh
hƣởng đến độ chính xác của ƣớc lƣợng.

-

Càng khó khăn hơn khi bộ dữ liệu là các mẫu không ngẫu nhiên đƣợc thu
thập từ các tổ chức và các lĩnh vực kinh doanh cụ thể. Hơn nữa, đa phần các
tổ chức, công ty thƣờng không muốn chia sẻ dữ liệu của mình với cộng đồng
công nghệ phần mềm.

-

Từ bộ dữ liệu có sẵn, việc lựa chọn ra các tập dữ liệu con thích hợp cũng
không phải dễ. Các thuật toán khác nhau có thể mang lại các kết quả khác
nhau. Cũng có thể xảy ra là các tập con khác nhau có kích thƣớc bằng nhau
lại cho cùng kết quả.

Bên cạnh những thách thức cũng có những thuận lợi khi thực hiện đề tài, đó là:
-

Đề tài này là một phần nhỏ nội dung trong một công trình đang nghiên cứu
của TS. Nguyễn Văn Vũ, cùng với một nhóm đồng sự từ Trƣờng ĐH KHTN
TP.HCM. Đây là cơ hội để chúng tôi có những buổi thảo luận cho đề tài này.

-


COCOMO là mô hình ƣớc lƣợng phần mềm nổi tiếng mà Thầy Nguyễn Văn
Vũ, ngƣời trực tiếp hƣớng dẫn thực hiện đề tài này, đã từng nghiên cứu tại
ĐH Nam California và đang tiếp tục nghiên cứu.

-

Cuối cùng là sự nỗ lực của bản thân ngƣời thực hiện đề tài để hoàn thành tốt
hết mức có thể.

9


Chương 1. Tổng quan

Chƣơng 1

TỔNG QUAN

1.1 Tình hình nghiên cứu
Nghiên cứu về ƣớc lƣợng chi phí phần mềm đã có một lịch sử khá dài [4].
Tuy nhiên, rất ít công trình tập trung nghiên cứu đến ảnh hƣởng của miền dữ liệu
lên chi phí phần mềm.
Các mô hình ƣớc lƣợng chi phí phát triển phần mềm thƣờng đƣợc xây dựng
và đƣợc đánh giá từ các dự án trong quá khứ. Câu hỏi quan trọng đƣợc đặt ra là
chọn những dự án nào dùng làm bộ dữ liệu huấn luyện để xây dựng mô hình. Nên
chăng là dùng toàn bộ các dự án trong quá khứ hay là nên chọn một tập con các dự
án nào đó? Khoảng cách thời gian, tuổi của dự án hay số lƣợng dự án chính là một
trong các yếu tố để chọn lựa dự án nào đƣợc dùng cho bộ dữ liệu huấn luyện để
hiệu chỉnh mô hình ƣớc lƣợng.
1.1.1 Tình hình nghiên cứu ngoài nƣớc

Hầu hết các nghiên cứu về ƣớc lƣợng công sức phần mềm đều không xem
xét đến yếu tố thời gian khi lựa chọn các dự án để huấn luyện và kiểm tra. Khi ƣớc
lƣợng công sức cho bất kỳ dự án mới p nào cũng đều sử dụng bộ dữ liệu huấn luyện
là tất cả các dự án đã đƣợc hoàn thành trƣớc thời điểm khi dự án p bắt đầu. Bốn
công trình nghiên cứu gần đây đã nghiên cứu về việc chia nhỏ bộ dữ liệu bằng cách
sử dụng các cửa sổ di chuyển. Với cách này, chỉ có các dự án gần đây nhất, hoàn
thành trƣớc thời điểm khi dự án p bắt đầu, đƣợc sử dụng nhƣ là dữ liệu huấn luyện.
Ba nghiên cứu đầu tiên (S1-S3) dƣới đây tìm thấy một số bằng chứng có lợi của
việc sử dụng các cửa sổ. Cả ba công trình này đều xác định kích thƣớc cửa sổ nhƣ là
con số cố định các dự án gần đây.
Công trình S1 [6], Lokan và Mandes đã nghiên cứu về việc dùng moving
windows trên bộ dữ liệu 228 dự án của các tổ chức độc lập, đƣợc lấy từ kho dữ liệu
ISBSG. Bộ dữ liệu huấn luyện đƣợc xác định bởi N dự án đã hoàn thành gần đây
nhất. Họ nhận thấy N (kích thƣớc cửa sổ) có giá trị lớn sẽ ảnh hƣởng tốt hơn so với
N có giá trị nhỏ. Tốt nhất N nên trên dƣới 75 dự án.

10


Chương 1. Tổng quan

Công trình S2[2], Amasaki nghiên cứu dùng moving window với kích thƣớc
khác nhau trên bộ dữ liệu đƣợc lấy từ kho dữ liệu PROMISE. Kỹ thuật ƣớc lƣợng
dựa theo tính tƣơng đồng của dữ liệu. Họ cũng thấy rằng việc dùng moving window
có cải thiện độ chính xác của ƣớc lƣợng, mặc dù không nhiều.
Công trình S3 [3], Amasaki và Lokan đã nghiên cứu dùng moving window
trên bộ dữ liệu của S1 với cả hai kỹ thuật ƣớc lƣợng truy hồi tuyến tính (Liner
Regression - LR) và ƣớc lƣợng dựa theo tính tƣơng đồng (Estimation by Analogy EbA). Kết quả là có sự khác nhau về mức độ chính xác của ƣớc lƣợng khi có áp
dụng và không có áp dụng moving window đối với cả hai kỹ thuật ƣớc lƣợng LR và
EbA. Tuy nhiên mức độ ảnh hƣởng đối với EbA ít hơn so với LR.

Công trình nghiên cứu thứ tƣ (S4) [7], yếu tố thời gian đã đƣợc xem xét đến
và cho thấy rằng việc sử dụng các cửa sổ dựa trên thời gian cũng có thể cải thiện độ
chính xác khi ƣớc lƣợng. Lokan và Mendes tiếp tục nghiên cứu trên bộ dữ liệu của
S1 và S3 để nghiên cứu ảnh hƣởng của các kích thƣớc cửa sổ khác nhau lên độ
chính xác của ƣớc lƣợng. Họ chỉ ra rằng việc sử dụng các tập dữ liệu theo thời gian
có làm ảnh hƣởng đến độ chính xác của ƣớc lƣợng, nhƣng mức độ thấp hơn so với
các tập dữ liệu dựa trên số lƣợng dự án.
Mở rộng công trình nghiên cứu S4 [8], Lokan và Mendes đã sử dụng một tập
dữ liệu bổ sung, và tiếp tục nghiên cứu ảnh hƣởng của các khoảng thời gian khác
nhau lên độ chính xác nếu sử dụng moving window để ƣớc lƣợng công sức phần
mềm. Hồi quy đa biến từng bƣớc đƣợc sử dụng để xây dựng mô hình ƣớc lƣợng, sử
dụng tất cả các dữ liệu huấn luyện có sẵn, và cũng sử dụng các cửa sổ với những
khoảng thời gian khác nhau để lựa chọn dữ liệu huấn luyện. Độ chính xác đã đƣợc
so sánh dựa vào mức chênh lệch giữa công sức ƣớc lƣợng và công sức thực tế và
một số kỹ thuật nhằm xác định ý nghĩa thống kê giữa các kết quả. Trái ngƣợc với
trực giác, kết quả nghiên cứu cho thấy không phải là luôn luôn có lợi nếu loại bỏ
các dữ liệu cũ khi ƣớc lƣợng công sức cho các dự án mới.
Nghiên cứu của Chris Lokan [8.] trên bộ dữ liệu ISBSG1 đã chỉ ra rằng việc
có sử dụng cửa sổ để phân tập dữ liệu huấn luyện có thể cải thiện đƣợc độ chính xác

11


Chương 1. Tổng quan

của mô hình ƣớc lƣợng, và độ chính xác sẽ khác nhau khi kích thƣớc cửa sổ khác
nhau
Bảng 1-1: So sánh mean MRE khi có và không có dùng cửa sổ (dữ liệu ISBSG)

Kích

thƣớc
cửa sổ
(năm)

Tập
huấn
luyện

Có sử
sụng
window

Không
sử dụng
window

1.0
1.5
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
6.0
6.5
7.0


165
193
201
202
206
206
206
206
198
184
153
126
80

1.22
1.11
1.16
1.11
1.12
1.11
1.11
1.19
1.23
1.26
1.32
1.45
1.36

1.19
1.19

1.19
1.19
1.19
1.19
1.20
1.20
1.23
1.25
1.31
1.44
1.37

Chệnh
lệch

Phần
trăm
chênh
lệch

P-value

0.03
-0.08
-0.03
-0.08
-0.07
-0.08
-0.09
-0.01

0.00
0.01
0.01
0.01
-0.01

2.5
-6.7
-3.4
-6.7
-5.9
-6.7
-7.5
-1.7
0.0
0.8
0.8
0.7
-0.7

0.157
0.261
0.145
0.024
0.009
0.018
0.001
0.577
0.801
0.810

0.261
0.650
0.266

Chú thích: nguồn số liệu trích dẫn từ [7]

Cột đầu tiên chỉ kích thƣớc cửa sổ theo số năm. Cột thứ 2 chỉ số lƣợng dự án
thuộc cửa sổ tƣơng ứng, dùng để huấn luyện tạo mô hình ƣớc lƣợng (bộ huấn luyện
có ít nhất 12 dự án). Cột thứ 3 chỉ trung bình lỗi (Mean of MRE) của các dự án
kiểm tra trong trƣờng hợp có sử dụng window. Cột thứ 4 chỉ trung bình lỗi (Mean
of MRE) của cùng các dự án kiểm tra trong trƣờng hợp không có sử dụng window.
Cột thứ 5 là chệnh lệch giữa cột 3 và 4. (Số dƣơng có nghĩa trung bình lỗi khi có sử
dụng window lớn hơn khi không sử dụng window, tức là ƣớc lƣợng xấu hơn khi có
window. Số âm chỉ ngƣợc lại). Cột thứ 6 chỉ phần trăm chênh lệch giữa cột 3 và 4.
Cột 7 chỉ giá trị p-value cho biết ý nghĩa thống kê (nếu giá trị này nhỏ hơn 0.05 cho
biết sự chênh lệch này có ý nghĩa thống kê)

12


Percent difference in mean
of MRE

Chương 1. Tổng quan

10
5
0
1.0


1.5

2.0

2.5

3.0

3.5

4.0

4.5

5.0

5.5

6.0

6.5

7.0

-5
-10

Window size (years)

Biểu đồ 1-1: Chệnh lệch về mức độ lỗi


Từ bảng 1-1 chúng tôi vẽ biểu đồ 1-1 cho thấy có sự chênh lệch lớn về độ
chính xác khi ƣớc lƣợng có dùng window trong khoảng cửa sổ từ 2 đến 4 năm,
tƣơng ứng từ 4% đến 8%, trung bình là 6%.
Nghiên cứu của Chris Lokan [7] trên bộ dữ liệu ISBSG2 cũng chỉ ra tỉ lệ dự
án có mức lỗi nhỏ hơn 0.25 (PRED.25) và tỉ lệ dự án có mức lỗi nhỏ hơn 0.3
(PRED.30) của các dự án thuộc cửa sổ 1.5 năm đến 4.5 năm đều tăng lên:
PRED.25: tăng khoảng 15%
PRED.30: tăng khoảng 19%
Lefley và Shepperd [5], và Sentas [12] đã dựa vào yếu tố thời gian là cơ bản
khi phân chia bộ dữ liệu thành các tập dữ liệu huấn luyện và tập dữ liệu kiểm tra để
so sánh các mô hình ƣớc lƣợng phần mềm. Lokan và Mendes cũng so sánh các mô
hình mà tập dữ liệu huấn luyện và tập dữ liệu kiểm tra khi đƣợc chọn một cách ngẫu
nhiên và khi đƣợc chọn dựa trên yếu tố thời gian. Tuy nhiên họ vẫn chƣa tìm đƣợc
sự ảnh hƣởng đáng kể lên độ chính xác của ƣớc lƣợng.
MacDonell và Shepperd [9] cũng dùng moving windows trong nghiên cứu
làm cho dữ liệu ở các giai đoạn đầu của một dự án tốt hơn và có thể dùng nó để ƣớc
lƣợng cho các giai đọan sau. Họ nhận thấy độ chính xác đƣợc cải thiện hơn khi
dùng moving window với kích thƣớc là 5 dự án gần đây nhất, đƣợc dùng làm dữ
liệu huấn luyện hơn là dùng tất cả các dự án hoàn thành.

13


Chương 1. Tổng quan

1.1.2 Tình hình nghiên cứu trong nƣớc
Ở Việt Nam đã có một số đề tài, luận văn nghiên cứu về các mô hình ƣớc
lƣợng chi phí phần mềm, đa phần tập trung nghiên cứu để xây dựng mô hình ƣớc
lƣợng hoàn toàn mới hoặc đƣa ra phƣơng pháp ƣớc lƣợng mới rồi phát triển chƣơng

trình ứng dụng dựa trên phƣơng pháp mà họ trình bày.
“Ƣớc lƣợng dự án trên cơ sở các ca sử dụng” là nghiên cứu của Doãn Đình
Lƣơng, học viên cao học Trƣờng Đại học Công Nghệ đã bảo vệ năm 2010 [14].
Nghiên cứu này trình bày tổng quan về ƣớc lƣợng phần mềm, trình bày về các
phƣơng pháp ƣớc lƣợng dự án phần mềm truyền thống, trình bày về phƣơng pháp
điểm ca sử dụng dành riêng cho các dự án phần mềm phát triển hƣớng đối tƣợng,
phát triển chƣơng trình ứng dụng dựa trên phƣơng pháp đã trình bày và thử nghiệm
với một số ví dụ đã cho.
“Phƣơng pháp xây dựng mô hình ƣớc lƣợng công phần mềm bằng lập trình
di truyền” là nghiên cứu của Nguyễn Minh Huy, học viên cao học Trƣờng Đại học
Khoa học Tự Nhiên đã bảo vệ năm 2009 [15]. Đề tài đƣa ra giải pháp xây dựng mô
hình ƣớc lƣợng hoàn toàn mới dựa trên tập dữ liệu lịch sử của ngƣời dùng. Dùng
công cụ lập trình di truyền cho phép ngƣời dùng can thiệp vào quá trình phát sinh
công thức, thêm vào những tùy biến để thu đƣợc công thức tính công theo dạng
thức hay có những tính chất theo ý muốn chủ quan của mình.
Nhƣ vậy, ít có hoặc không có đề tài sử dụng cách thức hiệu chỉnh riêng cho
từng mô hình để cải thiện độ chính xác cho mô hình sẳn có, cụ thể là ít có đề tài
nghiên cứu về cách chọn tập dữ liệu lịch sử nào cho phù hợp để có thể cải thiện
đƣợc độ chính xác của mô hình ƣớc lƣợng nhƣ mô hình COCOMO.
Trong hiểu biết hạn hẹp của tôi thì nghiên cứu liên quan đến độ chính xác
của mô hình COCOMO đƣợc tìm thấy trên bài báo khoa học [10] công bố năm
2011 đăng trên kỷ yếu của Hội nghị quốc tế lần thứ 7 về các mô hình ƣớc lƣợng
phần mềm (PROMISE 2011), đƣợc nghiên cứu bởi TS.Nguyễn Văn Vũ là ngƣời
Việt Nam cùng 2 đồng sự là ngƣời nƣớc ngoài, ông LiGuo Huang và ông Barry
Boehm. Sau đó, đầu năm 2015, đề tài chính thức đƣợc Quỹ Phát triển Khoa học và
Công nghệ Quốc gia tài trợ thực hiện do TS.Nguyễn Văn Vũ làm chủ nhiệm. Mục
14


Chương 1. Tổng quan


tiêu nghiên cứu nhằm cải tiến COCOMO dựa trên Phân tích xu hƣớng của năng suất
dự án và các nhân tố ảnh hƣởng theo thời gian, trong đó có phân tích ảnh hƣởng của
các nhân tố khác, bao gồm lĩnh vực kinh doanh và quốc gia (nghĩa là phân tích theo
miền dự án), lên năng suất và xu hƣớng năng suất.
Tóm lại, hiện vẫn chƣa tìm thấy đề tài nào tập trung nghiên cứu về việc làm
tăng mức độ chính xác của mô hình COCOMO bằng cách phân chia tập dữ liệu vốn
có thành các tập con phù hợp hơn theo phƣơng pháp cửa sổ phân tập.
1.2 Tính khoa học và tính mới của đề tài
Nhƣ đã trình bày về tình hình nghiên cứu trong và ngoài nƣớc, các nghiên
cứu trên đều cho thấy việc dùng moving window để chọn các tập dữ liệu khác nhau
từ các nguồn khác nhau có thể ảnh hƣởng lên độ chính xác của ƣớc lƣợng. Tuy
nhiên vẫn chƣa có nghiên cứu về việc dùng moving window trên bộ dữ liệu
COCOMO để đánh giá mức độ ảnh hƣởng của miền dự án lên độ chính xác của mô
hình COCOMO vốn là mô hình ƣớc lƣợng chi phí phổ biến nhất trong lĩnh vực
công nghệ phần mềm.
COCOMO 81 là mô hình ƣớc lƣợng đầu tiên do Boehm xây dựng để ƣớc
tính chi phí và thời gian phát triển phần mềm dựa trên 17 yếu tố ảnh hƣởng. Sau đó,
mô hình COCOMO cần thiết phải đƣợc nâng cấp để thích ứng với những thay đổi
lớn trong ngành công nghệ phần mềm, Boehm và nhóm nghiên cứu của ông tại Đại
học Nam California (University of Southern California) đã phát triển, nâng cấp
mô hình này lên COCOMO II bằng cách bổ sung thêm 5 yếu tố chi phí nữa để
phản ánh tốt hơn việc phát triển phần mềm hiện tại. 22 yếu tố quan trọng nhất trong
COCOMO II có mức độ ảnh hƣởng khác nhau đến chi phí và thời gian phát triển
phần mềm, đƣợc rút ra từ việc phân tích dữ liệu của 161 dự án đã hoàn thành từ
năm 1970 đến năm 2009.
Đề tài này nghiên cứu về việc áp dụng cửa sổ phân tập để phân chia 341 dự
án của tập dữ liệu COCOMO và tập dữ liệu bổ sung đã thu thập đƣợc trong suốt
những năm 1970 đến 2009 thành các tập con phù hợp hơn (theo thời gian hoàn
thành, theo số lƣợng dự án, v.v..).


15


Chương 1. Tổng quan

Bộ dữ liệu 341 dự án mà tôi sử dụng trong đề tài này đƣợc cung cấp bởi 25
tổ chức từ 4 quốc gia bao gồm Mỹ, Brazil, Thái Lan và Việt Nam. (có14 dự án từ
các công ty phần mềm tại Việt Nam)
Kết quả của đề tài sẽ đƣa ra những bằng chứng thực nghiệm cho việc xác định
kích thƣớc window size, tạo ra các tập con phù hợp nhất dùng làm bộ dữ liệu huấn
luyện và kiểm tra. Các mô hình thu đƣợc sẽ phản ảnh tốt hơn thực tiễn phát triển
phần mềm nói chung và Việt Nam nói riêng, nhờ đó sẽ cung cấp các ƣớc lƣợng
chính xác hơn mô hình COCOMO tổng quát.
1.3 Mục tiêu nghiên cứu
Mục tiêu chung trong nghiên cứu về ƣớc lƣợng phần mềm là cải thiện độ
chính xác của ƣớc lƣợng, rút ngắn khoảng cách giữa giá trị ƣớc lƣợng và giá trị thật
của dự án.
Trong đề tài này, chúng tôi tập trung nghiên cứu khả năng tăng độ chính xác
của mô hình COCOMO thông qua việc áp dụng phƣơng pháp cửa sổ phân tập nhằm
chọn tập dữ liệu huấn luyện thích hợp. Mục tiêu này sẽ trả lời hai câu hỏi nghiên
cứu:
 RQ1: Độ chính xác của mô hình COCOMO có thể đƣợc cải thiện hay
không nếu dữ liệu huấn luyện đƣợc rút trích từ những dự án hoàn
thành trong khoảng N năm trƣớc đó?
 RQ2: Độ chính xác của mô hình COCOMO có thể đƣợc cải thiện hay
không nếu dữ liệu huấn luyện đƣợc rút trích từ K dự án hoàn thành
trƣớc đó?
Độ chính xác của mô hình ƣớc lƣợng cải thiện đƣợc hiểu là mức độ lỗi trung
bình (chỉ số MMRE) khi ƣớc lƣợng của các dự án sẽ giảm xuống hoặc số lƣợng dự

án ƣớc lƣợng với mức lỗi nằm trong giới hạn n nào đó tăng lên (chỉ số PRED.n).
Độ chính xác của mô hình ƣớc lƣợng không cải thiện đƣợc hiểu là chỉ số
MMRE tăng lên hoặc không thay đổi; (Hoặc chỉ số PRED.n giảm xuống hoặc
không thay đổi).

16


Chương 1. Tổng quan

Từ các kết quả thực nghiệm chúng tôi sẽ đƣa ra các đề xuất nhằm cải thiện
độ chính xác của mô hình COCOMO, cụ thể:
 Định nghĩa và xác định đƣợc kích thƣớc cửa sổ.
 Áp dụng phƣơng pháp cửa sổ phân tập tạo ra các tập dữ liệu con của
tập dữ liệu COCOMO.
 Xây dựng mô hình ƣớc lƣợng mới dựa vào mỗi tập dữ liệu con.
 Đánh giá mô hình mới thông qua chỉ số MRE và PRED.
 Rút ra các kết luận về độ chính xác của mô hình lên các miền dự án
khác nhau.
1.4 Đối tƣợng và phạm vi nghiên cứu
Nghiên cứu về các yếu tố ảnh hƣởng đến chi phí phát triển phần mềm,
nghiên cứu về ƣớc lƣợng kích thƣớc, công sức, thời gian cũng nhƣ về quy trình và
các công cụ phát triển phần mềm,… đều là các hƣớng nghiên cứu nhằm vào mục
tiêu cải thiện độ chính xác trong ƣớc lƣợng phần mềm. Tuy nhiên trong đề tài này,
chúng tôi giới hạn phạm vi nghiên cứu là ƣớc lƣợng công sức phát triển phần mềm
(effort).
Đối tƣợng nghiên cứu trong đề tài này là Công thức ƣớc lƣợng công sức
COCOMO II và Bộ dữ liệu COCOMO gồm 341 dự án.

17



Chương 2. Khảo sát hiện trạng

Chƣơng 2

KHẢO SÁT HIỆN TRẠNG

2.1 Các phƣơng pháp ƣớc lƣợng công thực hiện phần mềm
Ƣớc lƣợng công thực hiện phần mềm là tính toán gần đúng công sức và thời
gian để thực hiện hoàn thành một dự án phần mềm dựa trên tập dữ liệu liên quan
đến dự án phần mềm đó.
Hiện nay có 3 nhóm phƣơng pháp ƣớc lƣợng công thực hiện phần mềm là
Nhóm phƣơng pháp ƣớc lƣợng dựa vào chuyên gia; Nhóm phƣơng pháp ƣớc lƣợng
dựa vào công thức và Nhóm phƣơng pháp ƣớc lƣợng dựa vào máy học.
2.1.1 Nhóm phƣơng pháp ƣớc lƣợng dựa vào chuyên gia
Ƣớc lƣợng dựa vào chuyên gia là phƣơng pháp ƣớc lƣợng dựa trên cơ sở
phân tích, đánh giá và nhận định từ các chuyên gia. Ý kiến của các chuyên gia luôn
luôn đƣợc quan tâm và đánh giá cao nên phƣơng pháp ƣớc lƣợng này cho đến nay
vẫn đƣợc sử dụng khá phổ biến. Tuy nhiên, với phƣơng pháp này, ƣớc lƣợng chỉ
dựa vào kinh nghiệm, mang tính chủ quan, cảm tính, không đƣợc kiểm chứng một
cách khoa học. Một hạn chế nữa của phƣơng pháp này là rất tốn kém khi thuê
chuyên gia và thời gian ƣớc lƣợng khá lâu. Hai phƣơng pháp mà các chuyên gia sử
dụng đó là:
Phƣơng pháp tƣơng đồng là phƣơng pháp dựa vào tính tƣơng đồng của các
dự án phần mềm để tính công thực hiện. Họ cho rằng các dự án phần mềm tƣơng
đồng nhau sẽ có công thực hiện gần bằng nhau. Cái khó của phƣơng pháp này là ở
chỗ làm sao để nhận ra những dự án nào là tƣơng đồng nhau. Các chuyên gia phải
có thật nhiều kinh nghiệm cũng nhƣ phải am hiểu tình hình hoạt động của công ty
thì độ chính xác của ƣớc lƣợng mới cao. Việc đƣa ra các tiêu chí để so sánh tính

tƣơng đồng mang tính cảm tính và dễ tranh cãi. Đây cũng là một nhƣợc điểm của
phƣơng pháp này.
Phƣơng pháp Wide-band Delphi là phƣơng pháp do Barry Boehm và John
Faquahar đƣa ra từ quy trình ra quyết định Delphi. Phƣơng pháp này dựa vào kết
quả ƣớc lƣợng từ nhiều chuyên gia thay vì là một chuyên gia. Trên cơ sở đồng
thuận của một nhóm chuyên gia theo quy trình chuẩn bị, họp thảo luận, rồi bỏ
18


Chương 2. Khảo sát hiện trạng

phiếu. Lặp lại quy trình cho tới khi có sự đồng thuận. Hạn chế của phƣơng pháp này
là tốn kém, mất thời gian và thƣờng xảy ra tranh cãi.
2.1.2 Nhóm phƣơng pháp ƣớc lƣợng dựa vào công thức
Nhóm phƣơng pháp ƣớc lƣợng này dựa vào công thức là một phƣơng trình
toán học biểu diễn mối quan hệ giữa công thực hiện dự án phần mềm và các thông
số liên quan đến các dự án phần mềm đó. Các phƣơng trình này đƣợc xây dựng trên
một tập dữ liệu lịch sử đã hoàn thành 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. Hai trong số các mô hình ƣớc lƣợng phổ
biến hiện nay thuộc nhóm phƣơng pháp ƣớc lƣợng dựa vào công thức là mô hình
COCOMO sẽ đƣợc trình bày rõ ở mục 2.2, và mô hình SLIM.
Putnam đề xuất mô hình SLIM vào thập niên 1980, dựa trên những nghiên
cứu 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 SLIM sau khi phân tích số liệu của rất
nhiều dự án phần mềm đã hoàn thành.
Ƣu điểm của nhóm phƣơng pháp ƣớc lƣợng dựa vào công thức là tính khách
quan vì không phụ thuộc vào ngƣời thực hiện ƣớc lƣợng; chặt chẽ vì đƣợc xây dựng
bằng phƣơng pháp toán học. Ngoài ra phƣơng pháp này ít tốn kém và nhanh chóng
so với phƣơng pháp ƣớc lƣợng dựa vào chuyên gia.
Tuy nhiên với phƣơng pháp này, công thức đƣợc xây dựng từ tập dữ liệu lịch

sử. Độ chính xác của mô hình ƣớc lƣợng phụ thuộc vào tập dữ liệu này. Và đây
chính là nhƣợc điểm lớn nhất của nhóm phƣơng pháp ƣớc lƣợng dựa vào công thức.
2.1.3 Nhóm phƣơng pháp ƣớc lƣợng bằng máy học
Áp dụng máy học vào các mô hình ƣớc lƣợng phần mềm cũng là một hƣớng nghiên
cứu mới hiện nay. Ví dụ phƣơng pháp Case-based Reasoning có hƣớng tiếp cận
tƣơng tự nhƣ phƣơng pháp tƣơng đồng, trong đó vai trò của chuyên gia đƣơc thay
thế bằng máy học. Thông qua máy học, phƣơng pháp này khắc phục đƣợc những
hạn chế của phƣơng pháp tƣơng đồng là cảm tính, tốn thời gian và chi phí thuê
chuyên gia. Thách thức của phƣơng pháp này là công thức tính khoảng cách tƣơng
đồng giữa hai dự án và cách rút trích bộ luật suy luận từ tập dữ liệu lịch sử.

19


Chương 2. Khảo sát hiện trạng

2.2 Mô hình ƣớc lƣợng công sức COCOMO II
COCOMO là mô hình ƣớc lƣợng công sức hay chi phí sử dụng kích thƣớc
phần mềm và 22 yếu tố khác đƣợc cho là có liên quan và ảnh hƣởng nhất.
Trong COCOMO II, effort đƣợc gọi là công sức thực hiện phần mềm đƣợc
tính bằng person-months (PM), là số tháng mà một ngƣời phải làm việc để hoàn
thành dự án phần mềm đó. Ngoài đơn vị tính là person-months còn có đơn vị tính
cho công sức là person-hours (PH). COCOMO II dùng PH/PM nhƣ là một yếu tố
quy đổi về giá trị chuẩn là 152 hours/PM. Nói cách khác, 1 person-month tƣơng
đƣơng 152 person-hours. Số giờ hay số tháng mà một ngƣời phải làm việc để hoàn
thành dự án, con số này không bao gồm thời gian dành cho ngày lễ, ngày nghỉ và
nhƣ vậy, nó hoàn toàn khác với thời gian để hoàn thành dự án hay còn gọi là thời
gian phát triển dự án (schedule).
Ví dụ, ƣớc lƣợng công sức của một dự án là effort =50 PM, trong khi thời
gian thực hiện dự án đƣợc ƣớc lƣợng là schedule=11 tháng. Nếu dùng một giá trị

PH/PM khác, 160 thay vì 152 thì COCOMO II sẽ điều chỉnh ƣớc lƣợng lại cho phù
hợp (trong trƣờng hợp này, effort đƣợc ƣớc lƣợng giảm đi khoảng 5%)
Công thức tổng quát để ƣớc lƣợng công sức phần mềm theo mô hình
COCOMO là

(1)

Đối với COCOMO II. 2000: A=2.94, B=0.91
Đầu vào là kích thƣớc phần mềm, size; một hằng số, A; một số mũ, E; và
một số các giá trị đƣợc gọi là hằng số nhân, EM. Số lƣợng các hằng số nhân này
phụ thuộc vào mô hình.
Đầu ra là công sức ƣớc lƣợng, PM

20


Chương 2. Khảo sát hiện trạng

2.2.1 Kích thƣớc phần mềm
Việc xác định kích thƣớc phần mềm rất quan trọng để ƣớc lƣợng công thực
hiện phần mềm đó. Xác định kích thƣớc càng chính xác thì ƣớc lƣợng công sức
càng chính xác. Tuy nhiên, việc xác định chính xác kích thƣớc phần mềm cũng là
một vấn đề khó. Các dự án thông thƣờng gồm cả những dòng code mới và những
dòng code đƣợc sử dụng lại từ các phần mềm khác có và không có chỉnh sửa.
COCOMO II chỉ tính vào kích thƣớc phần mềm những dòng code mới và những
dòng code đƣợc sử dụng lại có chỉnh sửa.
Đơn vị kích thƣớc phần mềm trong công thức COCOMO (1) ở trên là số
nghìn dòng code – Thousands source line of code (KSLOC). Nhƣng định nghĩa thế
nào là một dòng code cũng rất khác nhau tùy quan niệm. Trong COCOMO II, một
dòng lệnh hợp lý, có tính logic đƣợc xem là một dòng code chuẩn[13]. Viện Công

nghệ phần mềm (SEI) đã đƣa ra một checklist nhằm xác định xem nhƣ thế nào là
câu lệnh hợp lý đƣợc tính là một dòng code đo kích thƣớc phần mềm [11]
Ngoài đơn vị đo là KSLOC, kích thƣớc phần mềm còn có thể đƣợc tính bằng
số điểm chức năng – Function Points (FP) [1]. Trong luận văn này, dữ liệu Size
đƣợc tính bằng KSLOC.
2.2.2 Các yếu tố ảnh hƣởng
Các yếu tố ảnh hƣởng đến công sức phần mềm đƣợc phân loại nhƣ Bảng 2-1:
Bảng 2-1: Yếu tố chi phí COCOMO II

Loại

Yếu tố chi phí

Yếu tố quy mô

PREC
FLEX
RESL
TEAM
PMAT
RELY
DATA
CPLX
RUSE
DOCU

Yếu tố sản phẩm

Precedentedness of Application
Development Flexibility

Risk Resolution
Team Cohension
Equivalent Process Maturity Level
Required Software Reliability
Database Size
Product Complexity
Developed for Reusability
Documentation Match to Lifecycle Needs

21


Chương 2. Khảo sát hiện trạng

TIME
STOR
PVOL
ACAP
PCAP
PCON
APEX
LTEX
PLEX
TOOL
SITE
SCED

Yếu tố nền tảng
Yếu tố nhân lực


Yếu tố dự án

Execution Time Constraint
Main Storage Constraint
Platform Volatility
Analyst Capabitity
Programmer Capability
Personnel Continuity
Application Experience
Language and Tool Experience
Platform Experience
Use of Software Tools
Multisite Development
Required Development Schedule

2.2.3 Số mũ E
E là một thành phần mũ trong công thức (1) đƣợc cấu thành từ 5 nhân tố về
quy mô nhƣ trong Bảng 1, thể hiện một cách tƣơng đối tính kinh tế và phi kinh tế
của quy mô dự án trƣớc sự khác biệt về dự án lớn và dự án nhỏ. E đƣợc định nghĩa
là hàm của các nhân tố quy mô, có dạng:
(2)

Trong đó, B là hằng số, SFi là một trong 5 yếu tố về quy mô nhƣ trong Bảng 2-2
Công thức (2) xác định số mũ E đƣợc dùng cho công thức (1)
Mỗi yếu tố quy mô SFi có một dải các mức từ “rất thấp” cho tới “rất cao” .
Mỗi mức có một trọng số gọi là giá trị của yếu tố. Giá trị của các SFi đƣợc cung cấp
nhƣ trong Bảng 2-2.
Bảng 2-2: Các giá trị của SFi trong COCOMO II
Scale
Factors Symbol

PREC
SF1
FLEX
SF2
RESL
SF3
TEAM
SF4
PMAT
SF5

Very Low
6.20
50.7
7.07
5.48
7.80

Low
4.96
4.05
5.65
4.38
6.24

Norminal
3.72
3.04
4.24
3.29

4.68

High
2.48
2.03
2.83
2.19
3.12

Very
High
1.24
10.1
1.41
1.10
1.56

Chú thích: nguồn số liệu trích dẫn từ [13, tr 172]

22

Extra
High
0.00
0.00
0.00
0.00
0.00



Chương 2. Khảo sát hiện trạng

2.2.4 Thành phần nhân EM
Thành phần nhân EM trong công thức (1) là các yếu tố chi phí dạng nhân tử.
COCOMO II có tất cả 17 nhân tử nhƣ liệt kê trong Bảng 2-3
Mỗi nhân tử EMi cũng có một dải các mức từ “rất thấp” cho tới “rất cao” .
Mỗi mức có một trọng số gọi là giá trị của nhân tử. Giá trị của các EMi đƣợc cung
cấp nhƣ trong Bảng 2-3.
Bảng 2-3: Các giá trị của EMi trong COCOMO II
Cost
Drivers

Symbol

Very Low

Low

Norminal

High

Very
High

RELY
DATA
CPLX
RUSE
DOCU

TIME
STOR
PVOL
ACAP
PCAP
PCON
APEX
PLEX
LTEX
TOOL
SITE
SCED

EM1
EM2
EM3
EM4
EM5
EM6
EM7
EM8
EM9
EM10
EM11
EM12
EM13
EM14
EM15
EM16
EM17


0.82

0.92
0.90
0.87
0.95
0.91

1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00

1.10
1.14
1.17

1.07
1.11
1.11
1.05
1.15
0.85
0.88
0.90
0.88
0.91
0.91
0.90
0.93
1.00

1.26
1.28
1.34
1.15
1.23
1.29
1.17
1.30
0.71
0.76
0.81
0.81
0.85
0.84
0.78

0.86
1.00

0.73
0.81

1.42
1.34
1.29
1.22
1.19
1.20
1.17
1.22
1.43

0.87
1.19
1.15
1.12
1.00
1.09
1.09
1.09
1.09
1.14

Chú thích: nguồn số liệu trích dẫn từ [13, tr 172]

23


Extra
High

1.74
1.24
1.63
1.46

0.80


Chương 3. Cách tiếp cận

Chƣơng 3

CÁCH TIẾP CẬN

Nhƣ vấn đề đƣợc đặt ra trong phần tình hình nghiên cứu cũng nhƣ dựa vào
khảo sát hiện trạng, các mô hình ƣớc lƣợng chi phí phát triển phần mềm thƣờng
đƣợc xây dựng và đƣợc đánh giá từ các dự án trong quá khứ. Dùng toàn bộ các dự
án trong quá khứ hay chọn một tập con các dự án nào đó làm bộ dữ liệu huấn luyện
để xây dựng mô hình.
Từ nghiên cứu của Lokal [7] cho thấy việc dùng cửa sổ di chuyển (moving
window) trên bộ dữ liệu ISBG để phân tập dữ liệu huấn luyện có thể cải thiện đƣợc
độ chính xác của mô hình ƣớc lƣợng, và độ chính xác sẽ khác nhau khi kích thƣớc
cửa sổ khác nhau.
Trên cơ sở lý luận là phƣơng pháp moving window và quá trình hiệu chỉnh
tham số của mô hình ƣớc lƣợng dựa vào công thức, đề tài này tiến hành nghiên cứu
thực nghiệm trên bộ dữ liệu COCOMO để xem xét mức độ ảnh hƣởng của các tập

huấn luyện khác nhau lên độ chính xác của mô hình ƣớc lƣợng. Kết quả thực
nghiệm sẽ trả lời các câu hỏi nghiên cứu nhƣ đã nêu ở mục 2.3
3.1 Bộ dữ liệu COCOMO
3.1.1 Nguồn gốc bộ dữ liệu COCOMO
Hầu hết các công ty, đặc biệt là các công ty trong lĩnh vực phần mềm đều
không muốn chia sẻ dữ liệu ra ngoài. TS. Nguyễn Văn Vũ đã và đang là một trong
những cộng sự nghiên cứu mô hình nổi tiếng COCOMO, là ngƣời trực tiếp hƣớng
dẫn khoa học cho đề tài này. Chúng tôi có đƣợc bộ dữ liệu COCOMO nhƣ là một
tài sản vô giá để tiến hành thực nghiệm. Bộ dữ liệu này bao gồm 341 dự án, thu
thập đƣợc từ 25 tổ chức của 4 quốc gia trong suốt những năm 1970 đến 2009.
Bảng 3-1: Số các bộ dữ liệu theo Quốc gia và Loại dự án

Quốc gia
Mỹ
Brazil
Việt Nam
Thái Lan

Phát triển mới
191
16
0
0

24

Bảo trì
116
0
14

4

Tổng
307
16
14
4


Chương 3. Cách tiếp cận

3.1.2 Mô tả bộ dữ liệu:
Bộ dữ liệu bao gồm 341 dự án, là các dự án phát triển mới (phát triển từ đầu)
hoặc các dự án bảo trì (bảo trì và nâng cấp). Các dự án này đã hoàn thành trong các
năm từ 1970 đến 2009. Các dự án thuộc nhiều loại lĩnh vực ứng dụng nhƣ quản lý
hệ thống thông tin (MIS), hệ thống điều hành - kiểm soát, xử lý tín hiệu và các hệ
thống khoa học. 161 dự án trong số 341 dự án đã đƣợc sử dụng để hiệu chỉnh các
hằng số và yếu tố chi phí của COCOMO II.2000.
Các thuộc tính cốt lõi của mỗi bộ dữ liệu là công sức thực, kích thƣớc thực
và các mức xếp hạng của các yếu tố chi phí (Bảng 2-1). Yếu tố chi phí là một biến
phân loại có miền giá trị chia làm 6 mức xếp hạng là VL – rất thấp, L – thấp, N –
bình thƣờng, HI – cao, VH – rất cao, XH – vô cùng cao. Trong nhiều trƣờng hợp,
một mức xếp hạng giữa 2 mức sẵn có có thể đƣợc sử dụng, cho phép sự gia tăng ở
mức chi tiết hơn trên thang xếp hạng, nhằm mô tả chính xác hơn giá trị thực của yếu
tố chi phí đang xem xét. Chẳng hạn giữa mức L và mức N, có thể có mức Nl (Nlow) tức là giá trị của tham số này thực tế lớn hơn mức L nhƣng lại nhỏ hơn mức N
có sẵn. Hoặc giữa mức N và mức H, có thể có mức Nh (N-high) tức là giá trị của
tham số này thực tế lớn hơn mức N nhƣng lại nhỏ hơn mức H có sẵn. Đây là cách
quy ƣớc của những ngƣời thu thập dữ liệu. Trƣờng hợp xếp hạng của một yếu tố chi
phí nằm giữa hai mức xếp hạng sẵn có, chúng tôi sẽ dùng ngoại suy tuyến tính trên
các giá trị đã xác định của các mức xếp hạng.

Nhƣ vậy, mỗi yếu tố trong số 22 yếu tố ảnh hƣởng đến công ƣớc lƣợng đƣợc
thể hiện trên 2 cột nhƣ Hình 3-1

Hình 3-1: Mô tả file dữ liệu trước khi xử lý

25


×