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

Nghiên cứu mô hình và giải thuật lựa chọn đối tác tiềm năng cho bài toán thương lượng tự động trong hệ đa tác tử (tt)

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 (332.48 KB, 19 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
---------------------------------------

ĐỖ ĐỨC TRUNG

Nghiên cứu phương pháp dự đoán lỗi phần mềm liên dự
án
CHUYÊN NGÀNH :

MÃ SỐ:

KHOA HỌC MÁY TÍNH

60.48.01

TĨM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT

NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TS. TỪ MINH PHƯƠNG

HÀ NỘI – 2016


Luậnvănđượchồnthànhtại:
HỌCVIỆNCƠNGNGHỆBƯUCHÍNHVIỄNTHƠNG


Ngườihướngdẫnkhoahọc:PGS.TS.TừMinhPhương

Phảnbiện1:………………………………………………………………………….
Phảnbiện2:………………………………………………………………………….




LuậnvănsẽđượcbảovệtrướchộiđồngchấmluậnvănthạcsĩtạiHọcviệnCơngnghệBưu
chínhViễnthơng
Vàolúc:……..giờ…….ngày……tháng……năm……….

Cóthểtìmhiểuluậnvăntại:
THƯ VIỆN CỦA HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THÔNG.




1

MỞ ĐẦU
Xây dựng các dự án phần mềm thành công luôn là mối quan tâm hàng đầu đối với mọi
tổ chức doanh nghiệp, nhất là doanh nghiệp công nghiệp công nghệ thơng tin. Đặc biệt quan
trọng là q trình quản lý, kiểm soát tiến độ và đảm bảo chất lượng dự án.
Lỗi là một phần phát sinh tất yếu khi phát triển cũng như vận hành bất cứ phần mềm
hoặc hệ thống nào. Phần mềm hoặc hệ thống càng phức tạp thì càng xuất hiện nhiều lỗi. Lỗi có
thể tác động tới phần mềm hoặc hệ thống đang xây dựng hoặc vận hành theo nhiều cách khác
nhau, nhẹ thì hệ thống vẫn hoạt động bình thường khi lỗi vẫn tồn tại, nặng thì hệ thống ngừng
hoạt động do xuất hiện lỗi. Do vậy để giảm thiểu các hậu quả do các lỗi gây ra cũng như tiết
kiệm chi phí thì người ta cố gắng phát hiện lỗi trong giai đoạn phát triển phần mềm và phát
hiện càng sớm càng tốt, từ đó xuất hiện các phương pháp dự đốn lỗi trong phần mềm.
Một trong các phương pháp dự đoán lỗi phần mềm được quan tâm nhiều hiện nay là
phương pháp dự đốn lỗi sử dụng học máy có giám sát trên cơ sở mã nguồn và các dữ liệu có
được trong quá trình phát triển phần mềm. Cụ thể, các file mã nguồn sẽ được biểu diễn bằng
các đặc trưng, sau đó huấn luyện các mơ hình phân lớp (classification) hoặc hồi quy
(regrestion) bằng các dữ liệu huấn luyện là các file đã được kiểm thử lỗi và dùng các mơ hình

này để dự đốn lỗi cho các file chưa được kiểm thử.
Việc xây dựng dữ liệu huấn luyện sẽ dễ dàng hơn nếu bộ dữ liệu này được xây dựng dựa

trên mã nguồn đã xác định lỗi của các dự án đã thực hiện trước đó có tính đồng nhất với mã
nguồn của dự án đích.
Vấn đề đặt ra là mã nguồn đồng nhất với mã nguồn của dự án đích có số lượng khơng nhiều
dẫn tới việc mơ hình xây dựng nên hoạt động thiếu chính xác.
Chính vì vậy, việc đưa ra một phương pháp cho phép xây dựng tập dữ liệu tận dụng những
dữ liệu sẵn có của các dự án với mã nguồn không đồng nhất với mã nguồn của dự án đích là rất
quan trọng. Một trong những cách tiếp cận với vấn đề này là phương pháp CCA (canonical
correlation analysis). Đề tài của em tập trung vào tìm hiểu cách tiếp cận này nhằm nâng cao
khả năng dự đoán lỗi phần mềm.


2



Mục đích nghiên cứu:
Hiện nay, đã có một số cách tiếp cận cho phép trích xuất các kiến thức chung từ một dự
án và chuyển nó sang một dự án khác và những kiến thức đó được dùng để huấn luyện cho một
mơ hình dự đốn lỗi như: TCA (Transfer Component Analyst), TCA+, … Do bài tốn có ý
nghĩa thực tiễn rất cao đối với những cá nhân, tổ chức đã và đang thực hiện các dự án phát triển
phần mềm, hệ thống nên những phương pháp dùng dữ liệu của dự án này để huấn luyện cho dự
án khác vẫn tiếp tục được nghiên cứu. Trong luận văn em nghiên cứu phương pháp CCA và so
sánh với phương pháp TCA đã được đề cập.
Phương pháp được nghiên cứu trong luận văn là phương pháp học các sự chuyển đổi với
mục đích làm cho dữ liệu ở cơng ti đích giống với công ti nguồn. CCA là phương pháp hiệu
quả có thể tối đa hóa sự tương quan giữa dữ liệu nguồn và đích giúp nâng cao xác suất dự đoán
lỗi trong dự án.

NỘI DUNG
Chương 1: TỔNG QUAN VỀ DỰ ĐOÁN LỖI LIÊN DỰ ÁN TRONG CÁC PHẦN
MỀM
Giới thiệu chương: Giới thiệu về vấn đề dự đoán lỗi phần mềm, khái niệm, các phương
pháp đã được dùng trong dự đoán lỗi. Giới thiệu về vấn đề dự đoán lỗi liên dự án, đặt vấn
đề, những khó khăn của vấn đề, những phương pháp tiếp cận đã được áp dụng, những hạn
chế của các phương pháp này.
Nội dung chương 1 sẽ có các phần sau:
1.1. Giới thiệu bài tốn dự đốn lỗi phần mềm.
1.2. Các cách tiếp cận trong bài toán dự đoán lỗi.
1.3. Tổng quan về dự đoán lỗi phần mềm sử dụng học máy.
1.4. Giới thiệu vấn đề dự đoán lỗi liên dự án.
1.5. Các phương pháp gần đây đã được nghiên cứu để giải quyết vấn đề.
1.6. Kết luận chương.


3



Chương 2: PHƯƠNG PHÁP CCA VÀ ÁP DỤNG GIẢI QUYẾT VẤN ĐỀ DỰ ĐỐN
LỖI LIÊN DỰ ÁN
Giới thiệu chương: Trình bày tổng quan về phương pháp CCA, đưa ra đề xuất hướng tiếp
cận mới là phương pháp CCA+ dựa trên phương pháp CCA và áp dụng vào dự đoán lỗi liên
dự án nhằm tăng hiệu quả dự đoán lỗi.
Nội dung chương 2 sẽ bao gồm các phần sau:
2.1. Các vấn đề phát sinh khi thực hiện dự đoán lỗi liên dự án.
2.2. Trích xuất các đặc trưng từ mã nguồn dự án.
2.3. Giới thiệu phương pháp CCA.
2.4. Xây dựng các bộ dữ liệu chung cho dự án nguồn và đích.

2.5. Áp dụng phương pháp CCA cho việc dự đoán lỗi liên dự án.
2.6. Kết luận chương.
Chương 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ
Giới thiệu chương: Sử dụng các tập dữ liệu của các dự án: Apache, Safe, Zxing cùng
phương pháp CCA đã được trình bày trong chương 2 để xây dựng lên bộ dữ liệu đã được
chuyển đổi từ dữ liệu gốc và dùng phân loại láng giềng gần nhất cùng khoảng cách
Euclidean để thực hiện dự đoán lỗi. Đánh giá kết quả so với các phương pháp học máy khác
như TCA.
Nội dung chương 3 gồm các mục sau:
3.1. Thu thập dữ liệu từ các dự án khác nhau.
3.2. Các phép đánh giá.
3.3. So sánh với phương pháp TCA.
3.4. Độ phức tạp và thời gian thực hiện.
3.5. Kết luận chương.


4



CHƯƠNG 1: TỔNG QUAN VỀ DỰ ĐOÁN LỖI LIÊN DỰ ÁN
TRONG CÁC PHẦN MỀM
Dựđốnlỗicácmodulephầnmềm(hoặcfile)làrấtquantrọng,đểlậpkếhoạchvàquảnlý
việckiểmthửvàbảotrìcácgiaiđoạncủamộtdựántốthơn.Dựđốnlỗisẽlàcơhộichonhóm
pháttriểnkiểmtralạicácmodulehoặccáctậptincóxácsuấtlỗicao.Đầutiên,tronggiaiđoạn
thửnghiệm,cóthểtậptrungvàonhữngmoduledễlỗihoặcmodulecónhiềulỗitươngđối.Khả
năngsửachữanhữnglỗicịnlạisẽtăngvàsảnphẩmphầnmềmcóchấtlượnghơnsẽđượcgửi
đếnngườidùngcuối.Thứhai,vìnhiềulỗisẽđượccốđịnhtrongsuốtthờigiankiểmthử,chiphí
bảotrìdựánsẽgiảmdẫntớisựsụtgiảmtrongtổngchiphícủadựán


1.1. Giới thiệu bài tốn dự đốn lỗi phần mềm
Dựđoá nlo• ipha‚ nme‚ mlà phươngphá pđá nhgiá cá clớptronghệ tho† ngpha‚ nme‚ mđe‡ xá c
địnhnhữnglớpcó khả nă ngcó lo• idựavà ocá cdữliệ ulịchsửquacá cla‚ nthayđo‡ icủ ahệ tho† ng.

1.2. Các cách tiếp cận trong bài toán dự đoán lỗi
1.2.1.Tiếpcậndựatrênchangelog
1.2.2.Tiếpcậnkiểusingle-version
1.2.3.Cáccáchtiếpcậnkhác

1.3. Tổng quan về dự đoán lỗi phần mềm sử dụng học máy
Các thuật toán học máy đã được chứng minh là thiết thực trong việc giải quyết các vấn
đề chưa rõ ràng. Do các vấn đề phần mềm có thể được xây dựng trong q trình học và phân
loại theo các đặc điểm của lỗi, các thuật tốn máy học thơng thường có khả năng được áp dụng
để chuẩn bị một phân bố xác suất và phân tích các lỗi. Các thuật tốn học máy có thể được sử
dụngthơngquaviệcthựcthichươngtrìnhđểpháthiệnsốlượnglỗi,từđócóthểtìmracáclỗi
tiềmẩn.


5



Hình1.Cácbướcxâydựngmơhìnhdựđốnlỗisửdụnghọcmáy

1.4. Giới thiệu vấn đề dự đốn lỗi liên dự án
Dự đoán lỗi liên dự án là sử dụng dữ liệu của dự án này để dự đoán lỗi cho dự án khác.
1.5. Các phương pháp gần đây đã được nghiên cứu để giải quyết vấn đề
Có nhiều phương pháp đã được nghiên cứu và hoạt động hiệu quả trong việc giải quyết
bài toán dự đoán lỗi trong cùng dự án, tuy vậy, các phương pháp này lại không phù hợp hoặc
có hiệu suất kém khi áp dụng vào bài toán dự đoán lỗi liên dự án. Từ thực tế đó, một số cách

tiếp cận đã được đề xuất, một trong số đó là tiếp cận dự đốn lỗi dựa trên việc học các sự
chuyển đổi (transfer learning).
1.6. Kết luận chương


6



CHƯƠNG 2: PHƯƠNG PHÁP CCA VÀ ÁP DỤNG GIẢI QUYẾT
VẤN ĐỀ DỰ ĐOÁN LỖI LIÊN DỰ ÁN
2.1. Các vấn đề phát sinh khi thực hiện dự đoán lỗi liên dự án
Mỗi dự án phần mềm đều có các đặc trưng riêng về nghiệp vụ, về cấu trúc, tổ chức các
thành phần, về quy trình xây dựng, kiểm thử, cũng như khác nhau về ngơn ngữ xây dựng.
2.2. Trích xuất các đặc trưng từ mã nguồn dự án
Số liệu phần mềm được phân loại theo ba nhóm chính, cụ thể là số liệu sản phẩm, số
liệu quá trình và số liệu tài nguyên. Số liệu sản phẩm liên quan đến đo lường của tính năng
khác nhau của tài liệu và các chương trình được tạo ra trong quá trình phát triển phần mềm. số
liệu quá trình liên quan đến đo lường các hoạt động xảy ra trong suốt vòng đời phần mềm phát
triển, chẳng hạn như thiết kế phần mềm, thực hiện, kiểm tra, bảo trì. Số liệu tài nguyên biện
pháp hỗ trợ tài nguyên như các lập trình viên, và chi phí của sản phẩm và quy trình, vv...
Các dặc trưng cơ bản thường được sử dụng:
-

Maintainability Index
Cylomatic complexity
Depth of Inheritance
Class Coupling
Line of code


2.3. Giới thiệu phương pháp CCA
Phân tích tương quan chính tắc là một phương pháp để khám phá mối quan hệ giữa hai
bộ đa biến của các biến (vector).
Xem xét một vector đa biến ngẫu nhiên có dạng (x, y). Giả sử có một mẫu S = ((𝑥" ,
𝑦" ),..., (𝑥$ , 𝑦$ )) của (x, y), và sử dụng để 𝑆& biểu thị (𝑥" ,..., 𝑥$ ) và tương tự 𝑆' để biểu thị
(𝑦" ,..., 𝑦$ ). Chúng ta có thể xem xét xác định một kết hợp mới cho x bằng cách chọn một 𝑤&
hướng và chiếu x vào hướng đó.
x → < 𝑤& , x >
làm tương tự đối với y bằng cách lựa chọn một hướng 𝑤' chúng ta có được một mẫu của các
phối hợp mới của x như


7



𝑆&,+, = ( <𝑤& , 𝑥" >, . . . , <𝑤& , 𝑥$ >)
với các giá trị phối hợp tương ứng của y là
𝑆',+- = ( <𝑤' , 𝑦" >, . . . , <𝑤' , 𝑦$ >)
Giai đoạn đầu của tương quan chính tắc là chọn 𝑤& và 𝑤' để tối đa hóa mối tương quan
giữa hai vectơ. Nói cách khác, chức năng được tối đa hóa là
p = 𝑚𝑎𝑥+, ,+- 𝑐𝑜𝑟𝑟(𝑆& 𝑤& , 𝑆' 𝑤' )
= 𝑚𝑎𝑥+, ,+-

(5, +, ,5- +- )
||5, +, ||||5- +- ||

2.4. Xây dựng các bộ dữ liệu chung cho dự án nguồn và đích
Cụ thể, với bất kì mẫu nguồn 𝑥 7 và mẫu đích 𝑥 8 , các hàm mapping chức năng 𝜑7 và 𝜑8
được định nghĩa như sau:

𝜑7 (𝑥 7 ) = [𝑃𝑥 7 ; 𝑥 7 ; 0?@ ]
𝜑8 (𝑥 8 ) = [𝑄𝑥 8 ; 0?C ; 𝑥 8 ]
trong đó P và Q là các ma trận chiếu, 𝑑7 , 𝑑8 lần lượt là chiều của dữ liệu nguồn và đích. Kết
quả mong muốn đã được chứng minh bởi kết hợp các tính năng ban đầu vào tính năng tăng
thêm để tăng cường những điểm tương đồng giữa các dữ liệu từ cùng một tên miền. Từ kết quả
mong muốn đó, em giới thiệu cách biểu diễn thống nhất cho dữ liệu lỗi khơng đồng nhất của dự
án nguồn và đích.
Giả sử rằng dữ liệu nguồn và đích được biểu diễn như sau:
𝑋7 = 𝑥7" , 𝑥7F , . . . , 𝑥7H
𝑋I = 𝑥I" , 𝑥IF , . . . , 𝑥IJ
L

trong đó 𝑥5K biểu diễn module thứ i trong 𝑋5 , 𝑥I biểu diễn module thứ j trong 𝑋I , N, M lần lượt
là số module của 𝑋5 và 𝑋I . Mỗi module trong dữ liệu nguồn và đích được biểu diễn tương ứng
như sau:
K?C

𝑥5K = 𝑎5K" , 𝑎5KF , . . . , 𝑎5

K?

KF
@
𝑥IK = 𝑎K"
I , 𝑎I , . . . , 𝑎I


8



KL

KL

trong đó 𝑎5 biểu diễn giá trị của số liệu thứ j của 𝑥5K , 𝑎 I biểu diễn giá trị của số liệu thứ j
của 𝑥IK , 𝑑7 , 𝑑8 lần lượt là số các số liệu trong dữ liệu nguồn và đích, thường thì hai giá trị
này là khác nhau 𝑑7 ≠ 𝑑8 .
Chọn các vector hàng có liên quan đến các số liệu chung từ 𝑋5 và 𝑋I để xây dựng nên
𝑋5N ∈ ℝ?P ∗H và 𝑋IN ∈ ℝ?P ∗J . Lưu ý rằng hàng thứ k trong 𝑋5N và 𝑋IN tương ứng với cùng một
số liệu chung. Để làm cho dữ liệu không đồng nhất từ các cơng ty nguồn và đích có thể so sánh
được với nhau, chúng ta định nghĩa cách biểu diễn thống nhất như sau:

𝑋5 =

𝑋5N
𝑋55

0(?@STP )∗H

𝑋IN

0
𝑋I = (?CSTP )∗J
𝑋I5
trong đó 𝑋55 là các dữ liệu trong 𝑋5 chứa các số liệu riêng (không phải các số liệu chung)
của công ty nguồn và 𝑋I5 là các dữ liệu trong 𝑋I chứa các số liệu riêng (không phải các số
liệu chung) của cơng ty đích.
2.5. Áp dụng phương pháp CCA cho việc dự đốn lỗi liên dự án
CCA tìm cách để có được hai hướng chiếu 𝑤5 và 𝑤I , một cho mỗi dữ liệu công ty, để
tối đa hóa các hệ số tương quan tuyến tính sau đây:

𝑐𝑜𝑣(𝑤5I 𝑋5 , 𝑤II 𝑋I )
𝑣𝑎𝑟(𝑤5I 𝑋5 )𝑣𝑎𝑟(𝑤II 𝑋I )

=

𝑤II 𝐶5I 𝑤I
(𝑤5I 𝐶55 𝑤5 ) (𝑤II 𝐶II 𝑤I )

Trong công thức trên, 𝐶55 và 𝐶II biểu thị ma trận hiệp phương sai đối với trường hợp
trong cùng công ty của 𝑋5 và 𝑋I , 𝐶5I biểu thị ma trận hiệp phương sai với trường hợp khác
công ty của 𝑋5 và 𝑋I , 𝑚7 , 𝑚 I là các trung bình các module của 𝑋5 và 𝑋I .
Giả sử chúng ta tìm được p cặp các vector chiếu (𝑤5 , 𝑤I ) tương ứng với các giá trị riêng
lớn nhất, từ đó, chúng ta có thể xây dựng nên ma trận chuyển đổi
𝑊5 = 𝑤5" , 𝑤5F , . . . , 𝑤5X
𝑊I = 𝑤I" , 𝑤IF , . . . , 𝑤IX


9



Bằng cách chiếu 𝑋5 và 𝑋I qua các ma trận chuyển đổi này, ta sẽ được các mẫu mới:
𝑊5I 𝑋5 và 𝑊II 𝑋I . Các mẫu mới này sẽ được dùng trong một số thuật tốn học máy để có thể dự
đốn lỗi cho dữ liệu đích.
2.6. Kết luận chương


10




CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ
3.1. Thu thập dữ liệu từ các dự án khác nhau
Thử nghiệm được tiến hành dựa trên 14 bộ dữ liệu đã được công bố công khai và thường
được sử dụng từ bốn công ty khác nhau bao gồm : NASA, SOFTLAB, ReLink và AEEEM làm
dữ liệu thử nghiệm. Dưới đây là chi tiết về bộ dữ liệu được sử dụng trong luận văn.

Công ti

Dự án
CM1

NASA

MW1
PC1
AR3

SOFTLAB

AR4
AR5

ReLink

ApacheHTTP
Server
(Apache)
OpenIntents
Safe (Safe)

ZXing
Equinox (EQ)
Eclipse JDT
Core (JDT)

AEEEM

Apache
Lucene (LC)
Mylyn (ML)
Eclipse PDE
UI (PDE)

Số đặc
trưng

Số
module

Số
module
lỗi

37

327

42

37


253

27

37

705

61

29

63

8

29

107

20

Điểu khiển
nhúng

29

36


8

Web server

26

194

98

Bảo mật

26

56

22

26

399

118

61

324

129


61

977

206

61

691

64

61

1862

245

61

1497

209

Mô tả
Dự án tàu vũ
trụ
Thử nghiệm
không trọng
lượng

Phần mềm hỗ
trợ bay
Điểu khiển
nhúng
Điểu khiển
nhúng

Thư viện đọc
BarCode
OSGi
framework
Dự án phục vụ
cho phát triển
phần mềm
Thư viện tìm
kiếm văn bản
Quản lý task
Dự án phục vụ
cho phát triển
phần mềm


11



3.2. Các phép đánh giá
Recall rate
False positive rate
F -measure =


F×Z[\[ồ^×_[ía[bá_
Z[\[ồ^d_[ía[bá_

Cụ thể các bước tiến hành thử nghiệm bao gồm:
Bước 1: Xử lý dữ liệu
Bước 2:
-

Bỏ nhãn của các module.

-

Tiến hành xây dựng cách biểu diễn thống nhất cho các dự án nguồn và đích.

-

Áp dụng phân tích tương quan chính tắc trên cách biểu diễn thống nhất đã xây dựng để
lấy được các vector chuyển đổi, từ đó xây dựng nên ma trận chuyển đổi.

-

Áp dụng phân loại nn để xác định nhãn cho các module của dự án đích, so sánh với nhãn
gốc để tính ra được các thơng số: recall, false positive, F-measure.

Kết quả:
Trường hợp 1-1:
SOURCE=>TARGET RECALL

F-MEASURE


FALSEPOSITIVE

Apache->ar3

0.88

0.48

0.25

ar3->Apache

0.40

0.53

0.10

CM1->Apache

0.54

0.68

0.06

Apache->CM1

0.76


0.42

0.26

AR3->CM1

0.33

0.33

0.10

CM1->AR3

0.38

0.43

0.05

EQ->AR3

0.25

0.40

0.10

AR3->EQ


0.58

0.53

0.41

Trường hợp 1-n:
SOURCE=>TARGET

RECALL

F-MEASURE

FALSEPOSITIVE

AR3->{CM1,PC1,MW1}

0.38

0.36

0.08

{CM1,PC1,MW1}->AR3

0.50

0.62


0.02

AR4->{CM1,PC1,MW1}

0.52

0.31

0.19


12


{CM1,PC1,MW1}->AR4

0.35

0.39

0.10

AR5->{CM1,PC1,MW1}

0.60

0.30

0.26


{CM1,PC1,MW1}->AR5

0.50

0.67

0.01

{AR3,AR4,AR5}->CM1

0.38

0.36

0.10

CM1->{AR3,AR4,AR5}

0.42

0.53

0.04

{AR3,AR4,AR5}->MW1

0.33

0.38


0.05

MW1->{AR3,AR4,AR5}

0.33

0.42

0.05

{AR3,AR4,AR5}->PC1

0.46

0.39

0.08

PC1->{AR3,AR4,AR5}

0.33

0.48

0.01

3.3. So sánh với phương pháp TCA
CCA

TCA


Mục đích

Làm cho phân bố dữ liệu của nguồn và đích giống nhau nhất có thể.

Ý tưởng

Chiếu dữ liệu nguồn và đích vào một không gian khác thấp chiều hơn để
giảm thiểu sự khác biệt

Thực thi

Áp dụng CCA để học một cặp các

Giảm khoảng cách giữa các phân

chuyển đổi tương ứng với hai tập

bố dữ liệu trong khi vẫn bảo toàn

biến sao cho các biến sau khi

các thuộc tính gốc.

chuyển đổi có độ tương quan lớn
nhất.
Input

Các dự án đầu vào có thể khác nhau Dữ liệu nguồn và đích phải được
về bộ metric, điều này có nghĩa là


xây dựng trên cùng một bộ metric

bộ metric của nguồn và đích có thể
khác nhau hồn tồn, hoặc giống
nhau hoàn toàn, hoặc tồn tại một
vài metric tương đương nhau.
Output

Các cặp vector chuyển đổi cho dữ

Ma trận chuyển đổi giúp chuyển

liệu nguồn và đích: 𝑊5 , 𝑊I

các vector m chiều sang d chiều (d
< m)


13



3.4. Độ phức tạp và thời gian thực hiện
3.5. Kết luận chương


14




KẾT LUẬN
Dự đốn lỗi nói chung và dự đốn lỗi liên dự án nói riêng là những vấn đề được rất
nhiều nhà nghiên cứu quan tâm trong thời gian gần đây. Giải quyết được vấn đề này cũng là
giải quyết được một phần bài tốn về chi phí khi thực hiện phát triển dự án. Dự đoán lỗi nếu
được thực hiện sớm và đủ tốt sẽ góp phần giảm các chi phí bảo trì phát sinh sau này, đồng thời
giúp cải thiện khá tốt chất lượng của hệ thống phần mềm.
Luận văn đã nêu tổng quan những vấn đề liên quan đến bài tốn dự đốn lỗi nói chung,
dự đốn lỗi liên dự án nói riêng, các cách tiếp cận. Đặc biệt luận văn chú trọng và trình bày các
vấn đề lý thuyết, giải thuật của phương pháp CCA cũng như chi tiết các bước để thực thi
phương pháp đó. Phương pháp đã cho thấy những kết quả tích cực, điều này được trình bày
trong chương cuối cùng luận văn.


15



DANH MỤC TÀI LIỆU THAM KHẢO
[1] Humphrey, W., “Why big software projects fail: The 12 key questions.”, The Journal of
Defense Software Engineering, Vol. 18, pp. 25–29, 2005.
[2] The Standish Group, “Chaos Report”, 1995, />cs328/reading/Standish.pdf – last visited 15th of June, 2008.
[3] Jones, C., “Patterns of Large Software Systems: Failure and Success”, Computer , Vol.
28, No. 3, pp. 86–87, 1995.
[4] Brooks, F. P., Jr., The mythical man-month (anniversary ed.), Addison-Wesley
Longman Publishing Co., Inc., Boston, MA, USA, 1995.
[5] Verner, J., J. Sampson, and N. Cerpa, “What factors lead to software project failure?”,
Research Challenges in Information Science, 2008. RCIS 2008. Second International
Conference on, pp. 71 –80, june 2008.
[6] N. Nagappan and T. Ball, “Use of relative code churn measures to predict system defect

density,” in Proceedings of ICSE 2005. ACM, 2005, pp. 284–292.
[7] A. E. Hassan, “Predicting faults using the complexity of code changes,” in Proceedings
of ICSE 2009, 2009, pp. 78–88
[8] N. Nagappan and T. Ball, “Static analysis tools as early indicators of pre-release defect
density,” in Proceedings of ICSE 2005. ACM, 2005, pp. 580–586.
[9] T. Zimmermann and N. Nagappan, “Predicting defects using network analysis on
dependency graphs,” in Proceedings of ICSE 2008, 2008.
[10] A. Marcus, D. Poshyvanyk, and R. Ferenc, “Using the conceptual cohesion of classes
for fault prediction in objectoriented systems,” IEEE Trans. Software Eng., vol. 34, no. 2,
pp. 287–300, 2008.
[11] Y. Shi, Z. Lan, W. Liu, W. Bi, Extending semi-supervised learning methods for
inductive transfer learning, In: Ninth IEEE International Conference on Data Mining, 2009,
pp. 483–492.
[12] T. Kamishima, M. Hamasaki, S. Akaho, TrBagg:A Simple Transfer Learning Method
and Its Application to Personalization in Collaborative Tagging, in: Proceedings of the
IEEE International Conference on Data Mining (ICDM), 2009, pp. 219–228.


16



[13] Transfer Defect Learning Jaechang Nam∗, Sinno Jialin Pan†, and Sunghun Kim∗
∗Department of Computer Science and Engineering, The Hong Kong University of Science
and Technology, China
[14] Jaechang Nam, Sinno Jialin Pan, and Sunghun Kim. Transfer defect learning.
[15] Thomas Zimmermann, Nachiappan Nagappan, Harald Gall, Emanuel Giger, Brendan
Murphy. Cross-project Defect Prediction, 2009.
[16] G. Canfora, A. De Lucia, M. Di Penta, R. Oliveto, A. Panichella, and S. Panichella.
Multi-objective cross-project defect prediction. In IEEE 6th International Conference on

Software Testing, Verification and Validation (ICST), pages 252-261, 2013. 

[17] S. Herbold. Training data selection for cross-project defect prediction. In Proceedings
of the 9th International Conference on Predictive Models in Software Engineering
(PROMISE), pages 6-16, 2013. 

[18] B. Zhang and Z. Z. Shi. Classification of big velocity data via cross-domain canonical
correlation analysis. In International Conference on Big Data, pages 493-498, 2013. 

[19] B. Turhan, A. T. Mısırlı, and A. Bener. Empirical evaluation of the effects of mixed
project data on learning defect predictors. Information and Software Technology,
55(6):1101-1118, 2013 

[20] X.Y.Jing,R.M.Hu,Y.P.Zhu,S.S.Wu,C.Liang,andJ. Y. Yang. Intra-view and inter-view
supervised correlation analysis for multi-view feature learning. In 28th AAAI Conference on
Artificial Intelligence (AAAI), pages 1882- 1889, 2014. 

[21] P. Baldi, S. Brunak, Y. Chauvin, C. A. Andersen, and H. Nielsen. Assessing the
accuracy of prediction algorithms for classification: an overview. Bioinformatics,
16(5):412-424, 2000 

[22] W. Li, L. Duan, D. Xu, and I. W. Tsang. Learning with augmented features for
supervised and semi-supervised heterogeneous domain adaptation. IEEE Transactions on
Pattern Analysis and Machine Intelligence, 36(6):1134-1148, 2014.
[23] F. Peters, T. Menzies, and A. Marcus. Better cross company defect prediction. In 10th
IEEE Working Conference on Mining Software Repositories (MSR), pages 409-418, 2013
[24] WeiFoo. HDP. Dataset. />

17



[25] M. Shepperd, Q. Song, Z. Sun, and C. Mair. Data quality: some comments on the
NASA software defect datasets. IEEE Transactions on Software Engineering, 39(9):12081215, 2013. 

[26] R. Wu, H. Zhang, S. Kim, and S. C. Cheung. Relink: recovering links between bugs
and changes. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European

Conference on Foundations of Software Engineering (ESEC/FSE), pages 15-25, 2011. 

[27] M. D’Ambros, M. Lanza, and R. Robbes. An extensive comparison of bug prediction
approaches. In 7th IEEE Working Conference on Mining Software Repositories (MSR),
pages 31-41, 2010. 

[28] Personal Defect Prediction. Link:
/>[29] Proposed software defect prediction framework. Link:
/>[30] Chen Songcan. In Canonical Correlation Analysis (CCA), íts variants with
applications.
[31] Ming Cheng, Guoqing Wu, Min Jiang, Hongyan Wan , Guoan You and Mengting
Yuan. In Heterogeneous Defect Prediction via Exploiting Correlation Subspace.
[32] Data mining lecture 10B. Link:
/>


×