Tóm tắt Luận văn Nghiên cứu và ứng dụng mạng nơ-ron nhân tạo vào bài toán ước lượng nỗ lực phát triển phần mềm theo mô hình Agile

1
MỞ Đ U  
1. Lý do chọn đề tài  
Phần mềm hiện nay được sử dụng rộng rãi trong đời sống,  
công việc, nhiều lĩnh vực khoa học, kinh tế và xã hội. Vì vậy, việc  
đảm bảo rằng phần mềm làm ra mang lại hiệu quả kinh tế cũng như  
kịp thời đáp ứng được những yêu cầu đặt ra là cần thiết.  
Trên thực tế có quá nhiều dự án phần mềm thất bại. Mặc dù  
có rất nhiều lý do, một trong những lý do quan trọng nhất là ước  
lượng nỗ lực, chi phí không chính xác. Các lý do chính làm cho dự án  
chệch ra khỏi tầm kiểm soát là mục tiêu không rõ ràng, ước lượng nỗ  
lực không chính xác, lập kế hoạch tồi, công nghệ mới, phương pháp  
quản lý dự án không phù hợp, và không đủ nhân sự. Ít nhất ba trong  
sáu lý do này rõ ràng liên quan đến quản lý dự án. Hai lý do còn lại -  
không đủ nhân sự và công nghệ mới - có thể được coi như những rủi  
ro mà để quản lý chúng cũng là một phần của quản lý dự án. Trong  
đó việc chọn phương pháp quản lý dự án và ước lượng nỗ lực phát  
triển phần mềm đóng vai trò nòng cốt trong việc thành bại của một  
dự án.  
Agile là phương thức phát triển phần mềm linh hoạt (Agile  
Software Development) trong vòng đời phát triển phần mềm và đã  
trở nên phổ biến trong ngành phát triển phần mềm hiện nay. Agile  
bao gồm một nhóm các phương pháp phát triển phần mềm dựa trên  
sự phát triển xoay vòng và tăng dần. Các yêu cầu và các giải pháp  
phát triển thông qua sự hợp tác giữa tự tổ chức, các nhóm. Nó thúc  
đẩy kế hoạch, phát triển tăng dần, bàn giao hợp lý và khuyến khích  
phản ứng nhanh, linh hoạt để thích nghi với thay đổi.  
2
Nhiều người cho rằng ước tính hay lập kế hoạch là những kĩ năng  
khó khăn nhất trong thực tiễn làm dự án phần mềm.  
Dựa trên cơ sở của một số thuật toán lấy cảm hứng từ tự nhiên và  
bài toán ước lượng nỗ lực phát triển phần mềm trong mô hình Agile,  
tôi đề xuất chọn đề tài luận văn cao học:  
“Nghiên cứu và ứng dụng mạng Nơ-ron nhân tạo vào bài toán  
ước lượng nỗ lực phát triển phần mềm theo mô hình Agile”  
2. Mục đích và ý nghĩa đề tài  
a. Mục đích  
Xây dựng ứng dụng hỗ trợ ước lượng thời gian, nỗ lực phát  
triển của dự án phần mềm theo mô hình Agile  
Giảm thiểu được thời gian, chi phí cho quá trình ước lượng  
nỗ lực phát triển phần mềm  
Dựa trên mức dự toán của phần mềm ước lượng, sẽ đưa ra kế  
hoạch chi tiêu hợp lý về mặt nhân sự, cơ sở vật chất, phần  
mềm công nghệ, đồng thời sẽ ước tính phải hội tụ bao nhiêu  
chuyên gia lập trình và đầu tư cho một dự án nhiều tiềm  
năng. Vì vậy, một phần mềm với các công cụ ước lượng  
thông minh và chuyên sâu sẽ cần thiết cho kế hoạch dự toán  
chi phí của bất kỳ dự án nào  
b. Ý nghĩa khoa học  
Nắm vững và vận dụng tốt mô hình phát triển Agile trong  
việc quản lý dự án phần mềm.  
Nắm vững các thành phần và phương pháp ước lượng nỗ lực  
trong việc quản lý dự án phần mềm.  
Nắm vững và ứng dụng tốt mạng Nơ-ron nhân tạo, thuật toán  
Artificial Bee Colony (ABC)...  
3
Kết quả của quá trình nghiên cứu có thể làm tài liệu tham  
khảo cho việc ước lượng nỗ lực trong các dự án phát triển  
phần mềm theo mô hình Agile.  
c. Ý nghĩa thực tiễn  
Xây dựng thành công ứng dụng ước lượng nỗ lực phát triển  
phần mềm theo mô hình Agile, mang lại những ý nghĩa to lớn  
trong việc quản lý các dự án phần mềm thực tế :  
Dự toán chi phí hợp lý trong việc sử dụng nhân sự, tài  
nguyên của dự án phần mềm.  
Sự chính xác cao: Sự chính xác ở đây được đánh giá trên  
phương diện ước tính chi phí và các nguồn lực trong dự  
án.  
Đảm bảo tiến độ dự án theo kế hoạch ban đầu.  
Kiểm soát dự án tốt hơn: Ước lượng phần mềm mang  
đến một cái nhìn tổng quan về tiến độ, chi phí và khả  
năng thực thi của dự án. Dựa trên đó, sẽ dễ dàng phát  
hiện những sự cố và rủi ro tiềm tàng, đồng thời, đưa ra  
những điều chỉnh phù hợp nhất.  
Sự chuyên nghiệp: Bên cạnh việc ước lượng thời gian,  
chi phí với sự chính xác cao dẫn tới sự thành công hay  
thất bại của một dự án thì ước lượng nỗ lực phần mềm  
còn là công cụ thể hiện sự chuyên nghiệp công ty.  
3. Mục tiêu và nhiệm vụ  
a. Mục tiêu  
Mục tiêu chính của đề tài là ước lượng nỗ lực phát triển của một  
dự án phần mềm. Để thoả mãn mục tiêu này thì cần đạt được những  
mục tiêu cụ thể sau:  
Nắm vững mô hình phát triển phần mềm Agile.  
4
Nắm vững kiến thức về ước lượng nỗ lực phát triển phần  
mềm.  
Nắm vững kiến thức về mạng Nơ-ron nhân tạo, các thuật  
toán tối ưu ABC, Levenberg–Marquardt.  
Áp dụng thành công mạng Nơ-ron nhân tạo vào ước lượng  
nỗ lực phát triển phần mềm trên mô hình Agile  
b. Nhiệm vụ  
Để đạt được những mục tiêu trên thì nhiệm vụ đặt ra của đề tài  
là:  
Nghiên cứu mô hình phát triển phần mềm linh hoạt Agile.  
Nghiên cứu mạng Nơ-ron nhân tạo, tình hình thực tế trong  
việc áp dụng vào bài toán ước lượng nỗ lực.  
Nghiên cứu các thuật toán ABC, Levenberg–Marquardt, ứng  
dụng vào việc cải thiện tính hiệu quả của Artificial Neural  
Network (ANN)  
Phát biểu, phân tích và cài đặt các thuật toán cho bài toán  
ước lượng nỗ lực.  
Đánh giá kết quả theo yêu cầu của đề tài.  
4. Đối tượng và phạm vi nghiên cứu  
Trong khuôn khổ của luận văn thuộc loại nghiên cứu và ứng  
dụng, tôi chỉ giới hạn nghiên cứu các vấn đề sau:  
Giới thiệu mô hình phát triển phần mềm Agile.  
Tìm hiểu ước lượng nỗ lực trong phát triển phần mềm nói  
chung và theo qui trình Agile nói riêng.  
Mạng Nơ-ron nhân tạo, thuật toán ABC, Levenberg–  
Marquardt.  
Xậy dựng chương trình ước lượng nỗ lực trên môi trường  
Windows với ngôn ngữ C#.  
5
5.  hương pháp nghiên cứu  
a. Phương pháp lý thuyết  
Tiến hành thu thập và nghiên cứu các tài liệu có liên quan đến đề  
tài.  
Tìm hiểu nghiên cứu mô hình phát triển phần mềm linh hoạt  
Agile  
Nghiên cứu lý thuyết ước lượng nỗ lực phát triển phần mềm  
nói chung và kỹ thuật ước lượng nỗ lực trong mô hình Agile  
nói riêng.  
Nghiên cứu mạng Nơ-ron nhân tạo và việc ứng dụng nó vào  
bài toán ước lượng nỗ lực phát triển phần mềm.  
Nghiên cứu các giải pháp xây dựng chương trình bằng ngôn ngữ  
lập trình C  để ước lượng nỗ lực phát triển phần mềm dựa trên các cơ  
sở lý thuyết đã tìm hiểu.  
b. Phương pháp thực nghiệm  
Nghiên cứu đề xuất giải pháp tối ưu việc ước lượng nỗ lực  
phát triển phần mềm sử dụng mạng Nơ-ron nhân tạo.  
Cài đặt giải pháp thử nghiệm, so sánh và đánh giá kết quả.  
6.  hương tiện, công cụ triển khai  
Hệ điều hành Windows.  
Môi trường phát triển phần mềm Microsoft Visual Studio.  
Thư viện aforge.net, accord.net...  
6
C Ư NG 1: C  SỞ LÝ THUYẾT  
1.1 Mô hình phát triển phần mềm Agile  
1.1.1 Agile là gì?  
Phương thức phát triển phần mềm Agile là một tập hợp các  
phương thức phát triển lặp và tăng dần trong đó các yêu cầu và giải  
pháp được phát triển thông qua sự liên kết cộng tác giữa các nhóm tự  
quản và liên chức năng.  
1.1.2 Các tuyên ngôn của Agile  
“Cá nhân và sự tương hỗ quan trọng hơn quy trình và công  
cụ”  
“Sản phẩm xài được quan trọng hơn tài liệu về sản phẩm”  
“Cộng tác với khách hàng quan trọng hơn đàm phán hợp  
đồng”  
“Phản hồi với sự thay đổi quan trọng hơn bám theo kế  
hoạch”  
1.1.3 Các nguyên tắc của Agile  
Thỏa mãn yêu cầu của khách hàng thông qua việc giao sản  
phẩm sớm và liên tục  
Chào đón việc thay đổi yêu cầu, thậm chí là những thay đổi  
yêu cầu muộn  
Giao phần mềm chạy được cho khách hàng một cách thường  
xuyên (giao hàng tuần hơn là hàng tháng)  
Nhà kinh doanh và kỹ sư lập trình phải làm việc cùng  
nhau hàng ngày trong suốt dự án  
Các dự án được xây dựng xung quanh những cá nhân có  
động lực. Cung cấp cho họ môi trường và sự hỗ trợ cần thiết,  
và tin tưởng họ để hoàn thành công việc  
7
Trao đổi trực tiếp mặt đối mặt là phương pháp hiệu quả nhất  
để truyền đạt thông tin  
Phần mềm chạy được là thước đo chính của tiến độ  
Phát triển bền vững và duy trì được nhịp độ phát triển liên  
tục  
Liên tục quan tâm đến kĩ thuật và thiết kế để cải tiến sự linh  
hoạt  
Sự đơn giản là cần thiết – nghệ thuật tối đa hóa lượng công  
việc chưa hoàn thành  
Nhóm tự tổ chức  
Thích ứng thường xuyên với sự thay đổi  
1.1.4 Các đặc trưng của Agile  
Tính lặp (Iterative)  
Tính tăng trưởng (Incremental) và tiến hóa  Evolutionary)  
Tính thích ứng  hay thích nghi – adaptive)  
Nhóm tự tổ chức và liên chức năng  
Quản lý tiến trình thực nghiệm (Empirical Process Control)  
Giao tiếp trực diện (face-to-face communication)  
Phát triển dựa trên giá trị  value-based development)  
1.2 Ước lượng nỗ lực phát triển phần mềm  
1.2.1 Khái niệm  
Ước lượng dự án hiện là một vấn đề khó khăn trong thực tế  
sản xuất phần mềm. Không ước lượng được thì dự án rất dễ vỡ kế  
hoạch về thời gian và tài chính. Thực tế không dự án nào có thể ước  
lượng chính xác, ước lượng cần được thực hiện nhiều vòng. Mức ước  
lượng có nhiều sai sót trong các giai đoạn khác nhau. Ước lượng chỉ  
có thể chính xác nếu phân rã được vấn đề lớn thành các vấn đề nhỏ  
hơn, đó là kỹ thuật chia để trị (divide and conquer)  
8
1.2.2 Ước lượng nỗ lực là gì? Vì sao phải ước lượng?  
Cũng giống như bất cứ một dự án nào khác, dự án phần mềm  
cũng cần phải ước lượng các đại lượng trên với mục đích :  
Dự toán chi phí hợp lý  
Sự chính xác cao  
Đảm bảo tiến độ  
Kiểm soát dự án tốt hơn  
Thể hiện được sự chuyên nghiệp  
1.2.3 Ước lượng nỗ lực trong các mô hình  
Ước lượng chuyên gia: các chuyên gia đã có kinh nghiệm  
triển khai dự án phần mềm, có thể trả lời ngay các ước lượng  
tuy rằng không phải lúc nào độ chính xác cũng đáng tin cậy  
Ước lượng bằng kinh nghiệm quá khứ. Phải có số liệu quá  
khứ, phải hiểu được tình hình hiện tại  
Ước lượng bằng các mô hình ước lượng thực nghiệm. Phải  
có các tham số về dự án  
Một số phương pháp ước lượng nỗ lực của phát triển phần mềm  
Phương pháp tương đồng  
Phương pháp Wide-band Delphi  
Mô hình COCOMO  
1.3 Mạng Nơ-ron nhân tạo  
1.3.1 Mô hình Nơ-ron nhân tạo cơ bản  
Mạng Nơ-ron nhân tạo được cho như hình 1.1. Các Nơ-ron  
được sắp xếp theo cấu trúc liên kết lớp riêng biệt. Lớp ngõ vào không  
phải là Nơ-ron thực: các Nơ-ron này hoạt động đơn giản là giới thiệu  
các giá trị của các biến vào. Các Nơ-ron lớp ẩn và lớp ngõ ra được  
kết nối với tất cả các Nơ-ron lớp trước đó. Cũng như vậy chúng ta có  
9
thể định nghĩa mạng có các kết nối một phần với một vài Nơ-ron  
trong lớp trước đó, tuy nhiên trong hầu hết các ứng dụng mạng có kết  
nối đầy đủ vẫn tốt hơn.  
Hình 1.1: Cấu trúc mạng Nơ-ron nhân tạo  
Khi mạng hoạt động, các giá trị biến ngõ vào được đặt vào  
các Nơ-ron ngõ vào, và sau đó các Nơ-ron lớp ẩn và lớp ngõ ra lần  
lượt được kích hoạt. Mỗi Nơ-ron tính giá trị kích hoạt của chúng  
bằng cách lấy tổng các trọng số ngõ ra của các Nơ-ron lớp trước đó,  
và trừ cho ngưỡng. Giá trị kích hoạt truyền qua hàm kích hoạt tạo ra  
giá trị ngõ ra của Nơ-ron. Khi toàn bộ mạng đã hoạt động, các ngõ ra  
của lớp ngõ ra hoạt động như ngõ ra của toàn mạng.  
1.3.2 Sử dụng mạng Nơ-ron nhân tạo  
Một loạt vấn đề dẫn tới việc giải quyết bằng mạng Nơ-ron được  
định nghĩa bằng cách nó làm việc hoặc nó được huấn luyện. Mạng  
Nơ-ron nhân tạo làm việc từ những ngõ vào khác nhau, đưa ra những  
ngõ ra khác nhau. Do đó có thể sử dụng khi biết một vài thông tin và  
sẽ dự đoán những thông tin chưa biết.  
Điều kiện quan trọng trong việc sử dụng mạng Nơ-ron nhân tạo  
là phải biết trước mối liên hệ giữa ngõ vào và ngõ ra. Mối quan hệ  
này có thể kéo theo nhiều thứ nhưng nó nhất định phải tồn tại.  
10  
1.3.3 Thu thập dữ liệu cho mạng Nơ-ron nhân tạo  
Chọn những giá trị huấn luyện có tác dụng.  
Dữ liệu số và danh định có thể xử lý trực tiếp bằng mạng Nơ-  
ron nhân tạo. Chuyển những loại biến khác sang một trong  
các dạng này.  
Cần hàng trăm hoặc hàng ngàn trường hợp mẫu huấn luyện  
càng nhiều biến thì càng nhiều mẫu huấn luyện. mạng Nơ-  
ron nhân tạo có khả năng nhận ra những biến hữu dụng để  
huấn luyện.  
1.3.4 Perceptron nhiều lớp  
Ngày nay, Perceptron là cấu trúc mạng được dùng phổ biến  
nhất. Mỗi Nơ-ron lấy tổng trọng số và ngưỡng của ngõ vào, qua hàm  
truyền đến ngõ ra, các Nơ-ron được sắp xếp theo các lớp tới. Vì thế  
mạng có thể mô phỏng các hàm phức tạp tùy theo số lớp và số Nơ-  
ron mỗi lớp.  
Tùy theo vấn đề mà các Nơ-ron có số ngõ vào và ngõ ra khác  
nhau. Chúng ta không thể biết chính xác sẽ sử dụng bao nhiêu ngõ  
vào. Tuy nhiên, chúng ta giả sử rằng số ngõ vào có thể chọn lựa dễ  
dàng. Và để dễ dàng, thường ta chọn có một lớp ẩn và số Nơ-ron  
trong đó bằng một nửa tổng số ngõ vào và ngõ ra.  
Huấn luyện Perceptron nhiều lớp  
Thuật toán backpropagation.  
Học quá mức và tổng quát hóa  
Chọn lựa dữ liệu  
1.4 Mô hình mạng Nơ-ron nhân tạo  
1.4.1 Mô hình Nơ-ron và cấu trúc mạng  
1.4.1.1 Mô hình Nơ-ron  
Mô hình mạng Nơ-ron tổng quát có dạng như hình 1.2:  
11  
Hình 1.2: Mô hình mạng Nơ-ron nhân tạo  
Hai hay nhiều Nơ-ron kết hợp thành một lớp hình 1.3, và một  
mạng riêng biệt có thể chứa một hay nhiều lớp Nơ-ron hình 1.4.  
Hình 1.3: Lớp mạng Nơ-ron  
Hình 1.4: Nhiều lớp mạng Nơ-ron  
12  
1.4.2 Cấu trúc dữ liệu  
Cấu trúc định dạng của dữ liệu vào ảnh hưởng đến việc mô  
phỏng của mạng. Có hai loại mạng static network và dynamic  
network. Hai kiểu vector đầu vào cơ bản là kiểu xảy ra đồng thời  
(concurrently) và kiểu xảy ra liên tục theo thời gian (sequentially).  
1.4.3 Kiểu huấn luyện  
Trong phần này mô tả hai kiểu huấn luyện khác nhau.  
Incremental training: trọng số và ngưỡng của mạng được  
cập nhập mỗi khi có dữ liệu vào mạng. Kiểu này ứng dụng  
trong cả hai mạng tĩnh và động, tuy nhiên thường dùng trong  
mạng động nhiều hơn, như là những bộ lọc thích ứng.  
Batch training: trọng số và ngưỡng của mạng chỉ được cập  
nhập sau khi tất cả dữ liệu đã vào mạng, dùng trong cả hai  
mạng tĩnh và động.  
1.5 Huấn luyện mạng ANN  
Các giải thuật huấn luyện mạng chia làm 2 loại chính:  
Loại thứ nhất sử dụng kỹ thuật thử là kỹ thuật được mở rộng  
từ việc phân tích hiệu suất của thuật toán giảm dốc nhất  
chuẩn. Kỹ thuật này gồm giải thuật backpropagation tốc độ  
học thay đổi có hàm huấn luyện traingda và giải thuật phục  
hồi mạng backpropagation với hàm huấn luyện trainrp.  
Loại thứ hai sử dụng kỹ thuật tối ưu hóa số chuẩn. Loại này  
có ba kỹ thuật tối ưu hóa số dùng để huấn luyện mạng Neural  
Networks: conjugate gradient (traincgf, traincgb, traincgp,  
trainscg), quasi _ Newton (trainbfg, trainoss) và Levenberg _  
Marquardt (trainlm).  
1.5.1 Giải thuật tốc độ học thay đổi (TRAINDA,TRAINDX)  
1.5.2 Giải thuật phục hồi mạng backpropagation (TRAINRP)  
1.5.3 Giải thuật conjugate_ gradient  
13  
1.5.4 Các thuật toán quasi – newton  
1.5.5 Giải thuật Levenberg_Marquardt giảm bộ nhớ (TRAINLM)  
1.5.6 So sánh bộ nhớ và tốc độ các giải thuật  
1.6 Đánh giá mạng Nơ-ron nhân tạo  
Giống như các lĩnh vực trí tuệ nhân tạo nói chung, hai mục tiêu  
cơ bản của việc nghiên cứu mạng Nơ-ron nhân tạo là:  
Mô hình hóa bộ não: Mục đích khoa học của việc xây dựng  
các mô hình mạng Nơ-ron nhân tạo là tìm hiểu thực tế não  
làm việc như thế nào. Điều này có thể giúp chúng ta hiểu  
được bản chất sự thông minh của con người, xây dựng các  
chiến lược dạy tốt, hoặc là các hoạt động chữa trị hiệu quả  
cho các bệnh nhân bị thương tổn về não.  
Xây dựng hệ thống nhân tạo: Mục đích kỹ thuật của việc  
xây dựng hệt thống mạng Nơ-ron nhân tạo là nhằm đem lại  
hiệu quả tốt hơn đối với các ứng dụng thực tế. Điều này có  
thể làm cho máy móc hoạt động tốt hơ, thay thế con người  
những công việc nhàm chán và thậm chí có thể cải thiện hiệu  
suất công việc.  
C Ư NG 2:      N  Ư C  Ư NG N  L C PHÁT TRI N  
PH N M M THEO QUI TRÌNH AGILE  
2.1 Mô hình tổng quan của bài toán  
Để sử dụng ANN vào bài toán ước lượng nỗ lực phát triển phần  
mềm theo mô hình Agile thì cần các yếu tố sau:  
Đầu vào của bài toán là một bộ bao gồm 21 dự án từ 6 công  
ty phần mềm khác nhau được lấy từ công việc của Zia[6].  
Đầu ra của bài toán là thời gian hoàn thành dự án. Từ đó tính  
toán được chi phí phát triển dự án.  
14  
Trong nghiên cứu này tôi đề xuất sử dụng mạng Nơ-ron nhân tạo  
để ước lượng nỗ lực phát triển phần mềm dựa trên sự kết hợp giữa  
thuật toán Artificial Bee Colony (ABC)[2] và thuật toán Levenberg–  
Marquardt (LM)[3] trong quá trình huấn luyện mạng Nơ-ron nhân  
tạo. Đầu vào của các mô hình ANN gồm tổng số story point và vận  
tốc cuối cùng của dự án và đầu ra là thời gian hoàn thành của dự án  
được mô tả tổng quan theo hình 2.1  
Trong công việc chính của nghiên cứu là để tăng độ chính xác  
của các nỗ lực lập dự toán, ABC và LM là các thuật toán được sử  
dụng để tối ưu hóa bộ trọng số ANN. Các bước để ước lượng nỗ lực  
của một dự án phần mềm như sau:  
Bước 1: Thu thập tổng số story point, vận tốc thực của dự án,  
và các nỗ lực thực tế. Trong nghiên cứu này, các dữ liệu  
được lấy từ công việc của Zia [6].  
Bước 2: Chuẩn hoá các dữ liệu của các story point, vận tốc  
dự án, và các giá trị nỗ lực thực tế trong khoảng [0, 1]. X là  
bộ dữ liệu, x là 1 thành phần của bộ dữ liệu trên, x' là giá trị  
sau khi chuẩn hoá bằng công thức (8)  
(
)
  –      
 
    
( )  
(
)
           ( )  
max(X) và min(X) là mức tối thiểu và tối đa giá trị của bộ dữ  
liệu X tương ứng.  
Bước 3: Tách bộ dữ liệu thành tập dữ liệu huấn luyện và tập  
dữ luyện thử nghiệm. Trong nghiên cứu này, 15 dự án đầu  
tiên được sử dụng để huấn luyện và còn lại để thử nghiệm.  
Bước 4: Huấn luyện mạng Nơ-ron nhân tạo: ABC và LM  
được sử dụng cùng nhau để tối ưu hóa bộ trọng số ANN.  
Bước 5: Kiểm tra và đánh giá việc thực hiện.  
15  
Sau khi trải qua bước ANN là xong, kết quả thu được được so  
sánh với các loại khác của ANN cũng như đánh giá vai trò của ABC  
trong việc tối ưu hóa bộ trọng số của ANN.  
Hình 2.1: Mô hình tổng quan bài toán  
16  
2.2 Ước lượng trong mô hình Agile  
2.2.1  ác đ nh nỗ lực   tory point  
Story Size  
Độ phức tạp  
2.2.2  ác đ nh vận tốc dự án(Agile Velocity)  
Tối ưu hoá vận tốc Agile  
Sự giảm tốc  
Sự biến thiên lực lượng lao động  
C Ư NG 3:  NG D NG  NN VÀ   À  T  N Ư C  
 Ư NG N  L C PHÁT TRI N PH N M M THEO MÔ  
HÌNH AGILE  
3.1  h n tích  ài toán ước lượng nỗ lực phát triển phần mềm  
theo qui trình Agile  
Tại sao phải ước lượng nỗ lực phát triển phần mềm?  
Ước lượng kích cỡ  
Ước lượng nỗ lực  
Xác định chi phí dự án.  
Sự sai sót trong ước lượng.  
3.2 Áp dụng  NN  ài toán ước lượng nỗ lực phát triển phần  
mềm th o q i tr nh  gil  
3.2.1 Thuật toán ABC  
Dựa theo hành vi tự nhiên của bầy ong thật, thuật toán ABC  
cố tìm giá trị tối ưu hoặc gần như tối ưu cho những bài toán tối ưu.  
Thuật toán ABC là một thuật toán lặp đi lặp lại và bao gồm 4  
giai đoạn theo tuần tự là : giai đoạn khởi tạo, ong thợ, ong quan sát  
17  
và các giai đoạn ong trinh sát. Thuật toán kết thúc khi đã đạt đến số  
lần lặp lớn nhất hoặc có lỗi xảy ra trong chương trình.  
3.2.2 Huấn luyện ANN sử dụng thuật toán ABC và thuật toán  
Levenberq- Marquardt  
Các thuật toán ABC có một khả năng mạnh mẽ để tìm kết  
quả tối ưu hoá toàn cục và thuật toán LM có một khả năng mạnh mẽ  
để tìm kết quả tối ưu hoá cục bộ. Kết hợp ABC với các LM, sẽ tạo  
được một thuật toán lai mới (ABC-LM)[3] được đề xuất trong nghiên  
cứu này. Ý tưởng chính của thuật toán lai này là ABC được sử dụng  
ở giai đoạn đầu của việc tìm kiếm tối ưu[5]. Sau đó, quá trình huấn  
luyện được tiếp tục với các thuật toán LM.  
Mô hình các bước hoạt động của chương trình được mô tả  
như hình 3.1. Trong thuật toán kết hợp ABC-LM, giai đoạn đầu tiên  
thuật toán ABC hoàn thành việc huấn luyện, sau đó thuật toán LM  
bắt đầu huấn luyện với các trọng số của thuật toán ABC đã tối ưu và  
thuật toán LM huấn luyện mạng.  
18  
Hình 3.1: Quá trình huấn luyện  
3.3 Đánh giá thực nghiệm  
3.3.1 Mô tả thực nghiệm  
Để đánh giá hiệu suất của phương pháp đề xuất thì có các tiêu chí  
sau :  
Tiêu chí Mean Squared Error (MSE) được tính bằng công  
thức (21)  
Tải về để xem bản đầy đủ
pdf 27 trang yennguyen 18620 Free
Bạn đang xem 20 trang mẫu của tài liệu "Tóm tắt Luận văn Nghiên cứu và ứng dụng mạng nơ-ron nhân tạo vào bài toán ước lượng nỗ lực phát triển phần mềm theo mô hình Agile", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdftom_tat_luan_van_nghien_cuu_va_ung_dung_mang_no_ron_nhan_tao.pdf