SlideShare a Scribd company logo
1 of 27
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
NGUYỄN NGỌC NHÂN
NG N C U VÀ NG NG ẠNG N -RON
N N TẠ VÀ À T N Ư C Ư NG N C
T TR N N T N G
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 T Ạ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 ĐÀ NẴNG
Người hướng dẫn khoa học: TS. LÊ THỊ MỸ HẠNH
Phản biện 1 : TS. Ninh Khánh Duy
Phản biện 2 : TS. Nguyễn Quang Thanh
Luận văn đượ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
Đà Nẵng vào ngày 8 tháng 1 năm 2017
Có thể tìm hiểu luận văn tại :
- Trung tâm Thông tin - Học liệu, Đại học Đà Nẵng
- Trung tâm học liệu truyền thông, trường Đại học Bách Khoa,
Đại học Đà Nẵng
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)
19
∑( ) ( )
Trong đó là các giá trị nỗ lực thực tế và dự đoán tưng ứng
của thử nghiệm thứ i.
 Tiêu chí Mean Magnitude of Relative Error (MMRE) là tỷ lệ
phần trăm của trị tuyệt đối sai số dự đoán trên toàn bộ tập dữ
liệu. Với bộ dữ liệu thử T các MMRE được tính theo công
thức (22) :
∑ ( )
 PRED(N) cho thấy tỉ lệ phần trăm của ước lượng trong N
phần trăm của thực tế qua công thức (23).
( ) ∑ { ( )
 Hệ số tương quan bình phương R2
), còn được gọi là hệ số
xác định được tính như theo công thức (24):
∑ ( )
∑ ( ̅)
( )
̅ là giá trị trung bình của các nỗ lực thực tế.
20
Vậy nên các giá trị R2
và PRED N) cao hơn thì kết quả ước
lượng tốt hơn. Ngược lại, các giá trị MSE và MMRE thấp hơn thì kết
quả ước lượng chính xác hơn.
3.3.2 Bộ dữ liệu thực nghiệm
Phương pháp đề xuất được kiểm tra bằng cách sử dụng bộ dữ liệu
gồm 21 dự án phát triển bởi 6 công ty phần mềm sử dụng của Zia.
Thiết lập bộ dữ liệu gồm có:
 Tổng số Story Point được thực hiện trong một dự án
 Vận tốc của dự án
 Những nỗ lực thực tế cần thiết để hoàn thành dự án đó.
Trong nghiên cứu này, mười lăm dự án đầu tiên được sử dụng để
huấn luyện ANN và sáu bộ dữ liệu còn lại dùng để tiến hành thực
nghiệm và đánh giá kết quả đạt được.
3.3.3 Đánh giá các kết quả đạt được.
Bảng V cho thấy các kết quả thực nghiệm
Bảng V: So sánh các kết quả ước lượng
Effort Velocity Time ABC-LM TLBO-LM TLBABC-LM LM
289 2.8 112 113.3 88 98 94.8
113 2.8 39 42.6 41.9 43.1 45.9
141 2.8 52 53.7 52.6 54.1 55.8
213 2.8 80 82.0 75.2 80.3 80.8
137 2.7 56 66.7 52.5 54.4 54.3
91 2.7 35 35.3 34.9 36.1 40.4
MSE 22.6866
103.345
0
36.8467 65.0967
MMRE 6.0208 7.0923 5.5710 9.9702
PRED(7.19) 66.6677 66.6677 66.6667 33.3333
R
2 0.9677 0.8530 0.9476 0.9074
3.4 Thi t và cài đ t chương tr nh
3.4.1 Mô hình thực thể quan hệ ERD
Hình 3.2 là lược đồ thể hiện cấu trúc trừu tượng hoá của dữ liệu
trong ứng dụng, thể hiện mối quan hệ của các thực thể trong ứng
dụng.
21
Hình 3.2: Mô hình ERD
3.4.2 Biểu đồ Use Case
3.4.2.1 Biểu đồ
Mô hình 3.3 cung cấp cái nhìn trực quan về nghiệp vụ của hệ
thống đại diện là Use case) và người dùng hệ thống đại diện là người
dùng).
Hình 3.3: Mô hình Use Case
22
3.4.3 Biểu đồ hoạt động
Hình 3.4: Biểu đồ hoạt động
3.4.4 Thiết kế giao diện và chức năng chính
 Màn hình chính
 Màn hình thêm dự án.
 Màn hình cài đặt
 Màn hình kết quả
3.4.5 Cài đặt chương trình.
Cung cấp cho chương trình bộ dữ liệu ban đầu. Trong bài
nghiên cứu này thì tôi sử dụng bộ dataset 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] . Người
dùng có thể cung cấp thêm các dữ liệu từ việc phát triển ứng dụng
thực tế, các ứng dụng đã được ước lượng trong ứng dụng sẽ mặt định
làm dataset cho các bộ trọng số sau này.
Ứng dụng được phát triển trên môi trường windows.
23
3.5 K t quả chương tr nh
 Hoàn thành các chức năng giúp người dùng cung cấp các
thông tin cần thiết của dự án để tiến hành ước lượng nỗ lực
phát triển phần mềm theo mô hình Agile.
 Tính toán các giá trị vận tốc dự án và tổng số story point của
dự án mà người dùng đã nhập thông tin vào.
 Áp dụng ANN vào bài toán ước lượng nỗ lực phát triển phần
mềm, kết quả đạt được là thời gian hoàn thành dự án và chi
phí để hoàn thành dự án đó.
KẾT LUẬN VÀ Ư NG PHÁT TRI N
1. K t quả đạt được
Qua đề tài này chúng ta có thể ước lượng được chi phí và nỗ lực
để phát triển phần mềm gần chính xác nhất. Giảm thời trong việc ước
lượng, đảm báo thời gian hoàn thành dự án kịp tiến độ, đảm bảo được
chi phí trong quá trình phát triển. Đầy đủ các chức năng mà khách
hàng yêu cầu.
Đề xuất được giải pháp áp dụng mạng Nơ-ron nhân tạo, ABC,
Levenberg–Marquardt vào bài toán ước lượng nỗ lực phát triển phần
mềm trên mô hình phát triển Agile.
Cài đặt chương trình trên cơ sở giải pháp đề xuất và tích hợp trên
môi trường Windows.
2. Hạn ch
Giải pháp đề ra dựa trên ANN, phụ thuộc nhiều vào tham số đầu
vào, nếu tham số đầu vào không chính xác dẫn đến kết quả đi xa
mong muốn.
24
Chỉ là một giải giải pháp nhỏ, bởi vì trong quá trình phát triển
phần mềm còn có rất nhiều trở ngại, nhiều yếu tố khác nhau ảnh
hưởng tới tốc độ phát triển dự án phần mềm.
3. ướng phát triển
Phải làm việc trực tiếp với các dự án phần mềm, đúc kết đưa ra
các tham số đầu vào chính xác, dựa trên thực tế để nắm bắt các yếu tố
ảnh hưởng tới tốc độ dự án. Áp dụng vào tất cả các mô hình phát
triển phần mềm trong tương lai
Nghiên cứu thêm một số thuật toán tối ưu để cải thiện hiệu quả
mạng Nơ-ron và áp dụng vào các bài toán ước lượng cụ thể.
Nghiên cứu, đề xuất các giải pháp để việc ước lượng mang lại kết
quả chính xác nhất cho mô hình phát triển phần mềm nói chung và
mô hình Agile nói riêng.
Ứng dụng mạng Nơ-ron nhân tạo phát triển phần mềm theo Agile

More Related Content

Similar to Ứng dụng mạng Nơ-ron nhân tạo phát triển phần mềm theo Agile

phan tich thiet ke he thong
phan tich thiet ke he thongphan tich thiet ke he thong
phan tich thiet ke he thongvantinhkhuc
 
Bài tập công nghệ phần mềm
Bài tập công nghệ phần mềmBài tập công nghệ phần mềm
Bài tập công nghệ phần mềmLượng Võ Đại
 
Giải Ngân Hàng Đảm Bảo Chất Lượng Phần Mềm PTIT - SQA
Giải Ngân Hàng Đảm Bảo Chất Lượng Phần Mềm PTIT - SQAGiải Ngân Hàng Đảm Bảo Chất Lượng Phần Mềm PTIT - SQA
Giải Ngân Hàng Đảm Bảo Chất Lượng Phần Mềm PTIT - SQAPopping Khiem - Funky Dance Crew PTIT
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmNguyễn Anh
 
Slide đồ án kiểm thử PM
Slide đồ án kiểm thử PMSlide đồ án kiểm thử PM
Slide đồ án kiểm thử PMNguyễn Anh
 
Giao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinGiao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinNguyen Patrick
 
Quan ly du an phuc tap
Quan ly du an phuc tapQuan ly du an phuc tap
Quan ly du an phuc tapPhuoc Hoai
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_umlMai Mit
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_umlAxnet Dung
 
Phan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umlPhan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umldlmonline24h
 
3-Requirements_VI.pdf
3-Requirements_VI.pdf3-Requirements_VI.pdf
3-Requirements_VI.pdfEllieHuynh3
 
Slide đồ án tốt nghiệp
Slide đồ án tốt nghiệpSlide đồ án tốt nghiệp
Slide đồ án tốt nghiệpToan Pham
 
Ch1 GioiThieu QLDA TMDung.pdf
Ch1 GioiThieu QLDA TMDung.pdfCh1 GioiThieu QLDA TMDung.pdf
Ch1 GioiThieu QLDA TMDung.pdfHuynhVanQuoi
 
[Cinnamon] Intelligence Program 2017
[Cinnamon] Intelligence Program 2017[Cinnamon] Intelligence Program 2017
[Cinnamon] Intelligence Program 2017dzungdo
 

Similar to Ứng dụng mạng Nơ-ron nhân tạo phát triển phần mềm theo Agile (20)

phan tich thiet ke he thong
phan tich thiet ke he thongphan tich thiet ke he thong
phan tich thiet ke he thong
 
Bài tập công nghệ phần mềm
Bài tập công nghệ phần mềmBài tập công nghệ phần mềm
Bài tập công nghệ phần mềm
 
Giải Ngân Hàng Đảm Bảo Chất Lượng Phần Mềm PTIT - SQA
Giải Ngân Hàng Đảm Bảo Chất Lượng Phần Mềm PTIT - SQAGiải Ngân Hàng Đảm Bảo Chất Lượng Phần Mềm PTIT - SQA
Giải Ngân Hàng Đảm Bảo Chất Lượng Phần Mềm PTIT - SQA
 
Lecture01
Lecture01Lecture01
Lecture01
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềm
 
Slide đồ án kiểm thử PM
Slide đồ án kiểm thử PMSlide đồ án kiểm thử PM
Slide đồ án kiểm thử PM
 
Giao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinGiao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tin
 
Quan ly du an phuc tap
Quan ly du an phuc tapQuan ly du an phuc tap
Quan ly du an phuc tap
 
Phân Tích Dữ Liệu Phân Hạng Tín Dụng Dựa Trên Bộ Dữ Liệu Xyz Bằng Phần Mềm Or...
Phân Tích Dữ Liệu Phân Hạng Tín Dụng Dựa Trên Bộ Dữ Liệu Xyz Bằng Phần Mềm Or...Phân Tích Dữ Liệu Phân Hạng Tín Dụng Dựa Trên Bộ Dữ Liệu Xyz Bằng Phần Mềm Or...
Phân Tích Dữ Liệu Phân Hạng Tín Dụng Dựa Trên Bộ Dữ Liệu Xyz Bằng Phần Mềm Or...
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_uml
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_uml
 
Phan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umlPhan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng uml
 
Đề tài: Xây dựng phần mềm quản lý bảo hiểm, HAY, 9đ
Đề tài: Xây dựng phần mềm quản lý bảo hiểm, HAY, 9đĐề tài: Xây dựng phần mềm quản lý bảo hiểm, HAY, 9đ
Đề tài: Xây dựng phần mềm quản lý bảo hiểm, HAY, 9đ
 
3-Requirements_VI.pdf
3-Requirements_VI.pdf3-Requirements_VI.pdf
3-Requirements_VI.pdf
 
Đề tài: Công cụ sinh dữ liệu thử tự động cho chương trình Java
Đề tài: Công cụ sinh dữ liệu thử tự động cho chương trình JavaĐề tài: Công cụ sinh dữ liệu thử tự động cho chương trình Java
Đề tài: Công cụ sinh dữ liệu thử tự động cho chương trình Java
 
Slide đồ án tốt nghiệp
Slide đồ án tốt nghiệpSlide đồ án tốt nghiệp
Slide đồ án tốt nghiệp
 
1 gioi thieu httt
1 gioi thieu httt1 gioi thieu httt
1 gioi thieu httt
 
Ch1 GioiThieu QLDA TMDung.pdf
Ch1 GioiThieu QLDA TMDung.pdfCh1 GioiThieu QLDA TMDung.pdf
Ch1 GioiThieu QLDA TMDung.pdf
 
Spiral model
Spiral modelSpiral model
Spiral model
 
[Cinnamon] Intelligence Program 2017
[Cinnamon] Intelligence Program 2017[Cinnamon] Intelligence Program 2017
[Cinnamon] Intelligence Program 2017
 

More from Dịch vụ viết bài trọn gói ZALO: 0909232620

Danh Sách 200 Đề Tài Tiểu Luận Chuyên Viên Chính Về Bảo Hiểm Xã Hội Mới Nhất
Danh Sách 200 Đề Tài Tiểu Luận Chuyên Viên Chính Về Bảo Hiểm Xã Hội Mới NhấtDanh Sách 200 Đề Tài Tiểu Luận Chuyên Viên Chính Về Bảo Hiểm Xã Hội Mới Nhất
Danh Sách 200 Đề Tài Tiểu Luận Chuyên Viên Chính Về Bảo Hiểm Xã Hội Mới NhấtDịch vụ viết bài trọn gói ZALO: 0909232620
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phòng, Chống Hiv, Mới Nhất, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phòng, Chống Hiv, Mới Nhất, Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phòng, Chống Hiv, Mới Nhất, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phòng, Chống Hiv, Mới Nhất, Điểm CaoDịch vụ viết bài trọn gói ZALO: 0909232620
 

More from Dịch vụ viết bài trọn gói ZALO: 0909232620 (20)

Danh Sách 200 Đề Tài Tiểu Luận Chuyên Viên Chính Về Bảo Hiểm Xã Hội Mới Nhất
Danh Sách 200 Đề Tài Tiểu Luận Chuyên Viên Chính Về Bảo Hiểm Xã Hội Mới NhấtDanh Sách 200 Đề Tài Tiểu Luận Chuyên Viên Chính Về Bảo Hiểm Xã Hội Mới Nhất
Danh Sách 200 Đề Tài Tiểu Luận Chuyên Viên Chính Về Bảo Hiểm Xã Hội Mới Nhất
 
Danh Sách 200 Đề Tài Luận Văn Thạc Sĩ Quản Trị Nguồn Nhân Lực, 9 Điểm
Danh Sách 200 Đề Tài Luận Văn Thạc Sĩ Quản Trị Nguồn Nhân Lực, 9 ĐiểmDanh Sách 200 Đề Tài Luận Văn Thạc Sĩ Quản Trị Nguồn Nhân Lực, 9 Điểm
Danh Sách 200 Đề Tài Luận Văn Thạc Sĩ Quản Trị Nguồn Nhân Lực, 9 Điểm
 
Danh Sách 200 Đề Tài Luận Văn Thạc Sĩ Quản Lý Văn Hóa Giúp Bạn Thêm Ý Tưởng
Danh Sách 200 Đề Tài Luận Văn Thạc Sĩ Quản Lý Văn Hóa Giúp Bạn Thêm Ý TưởngDanh Sách 200 Đề Tài Luận Văn Thạc Sĩ Quản Lý Văn Hóa Giúp Bạn Thêm Ý Tưởng
Danh Sách 200 Đề Tài Luận Văn Thạc Sĩ Quản Lý Văn Hóa Giúp Bạn Thêm Ý Tưởng
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Quản Lý Giáo Dục Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Quản Lý Giáo Dục Dễ Làm Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Quản Lý Giáo Dục Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Quản Lý Giáo Dục Dễ Làm Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Quan Hệ Lao Động Từ Sinh Viên Giỏi
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Quan Hệ Lao Động Từ Sinh Viên GiỏiDanh Sách 200 Đề Tài Báo Cáo Thực Tập Quan Hệ Lao Động Từ Sinh Viên Giỏi
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Quan Hệ Lao Động Từ Sinh Viên Giỏi
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Nuôi Trồng Thủy Sản Dễ Làm Nhất
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Nuôi Trồng Thủy Sản Dễ Làm NhấtDanh Sách 200 Đề Tài Báo Cáo Thực Tập Nuôi Trồng Thủy Sản Dễ Làm Nhất
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Nuôi Trồng Thủy Sản Dễ Làm Nhất
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Sư, Mới Nhất, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Sư, Mới Nhất, Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Sư, Mới Nhất, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Sư, Mới Nhất, Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phòng, Chống Hiv, Mới Nhất, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phòng, Chống Hiv, Mới Nhất, Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phòng, Chống Hiv, Mới Nhất, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phòng, Chống Hiv, Mới Nhất, Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phá Sản, Mới Nhất
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phá Sản, Mới NhấtDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phá Sản, Mới Nhất
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phá Sản, Mới Nhất
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Nhà Ở, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Nhà Ở, Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Nhà Ở, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Nhà Ở, Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Ngân Hàng, Mới Nhất
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Ngân Hàng, Mới NhấtDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Ngân Hàng, Mới Nhất
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Ngân Hàng, Mới Nhất
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Môi Trường, Mới Nhất
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Môi Trường, Mới NhấtDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Môi Trường, Mới Nhất
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Môi Trường, Mới Nhất
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hộ Tịch, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hộ Tịch, Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hộ Tịch, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hộ Tịch, Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hình Sự , Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hình Sự , Dễ Làm Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hình Sự , Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hình Sự , Dễ Làm Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hành Chính, Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hành Chính, Dễ Làm Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hành Chính, Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hành Chính, Dễ Làm Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Giáo Dục, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Giáo Dục, Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Giáo Dục, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Giáo Dục, Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đấu Thầu, Từ Sinh Viên Khá Giỏi
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đấu Thầu, Từ Sinh Viên Khá GiỏiDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đấu Thầu, Từ Sinh Viên Khá Giỏi
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đấu Thầu, Từ Sinh Viên Khá Giỏi
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đầu Tư, Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đầu Tư, Dễ Làm Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đầu Tư, Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đầu Tư, Dễ Làm Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đầu Tư Công, Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đầu Tư Công, Dễ Làm Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đầu Tư Công, Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đầu Tư Công, Dễ Làm Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đất Đai, Từ Sinh Viên Khá Giỏi
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đất Đai, Từ Sinh Viên Khá GiỏiDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đất Đai, Từ Sinh Viên Khá Giỏi
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đất Đai, Từ Sinh Viên Khá Giỏi
 

Recently uploaded

Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocVnPhan58
 
Nhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mạiNhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mạiTruongThiDiemQuynhQP
 
đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21nguyenthao2003bd
 
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập PLDC.pdfdong92356
 
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...Nguyen Thanh Tu Collection
 
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...Nguyen Thanh Tu Collection
 
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...Xem Số Mệnh
 
Gieo quẻ kinh dịch, xin xăm,Xin lộc thánh.pdf
Gieo quẻ kinh dịch, xin xăm,Xin lộc thánh.pdfGieo quẻ kinh dịch, xin xăm,Xin lộc thánh.pdf
Gieo quẻ kinh dịch, xin xăm,Xin lộc thánh.pdfXem Số Mệnh
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...Xem Số Mệnh
 
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hardBookoTime
 
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...PhcTrn274398
 
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptxCHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx22146042
 
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Xem Số Mệnh
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"syllabus for the book "Tiếng Anh 6 i-Learn Smart World"
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"LaiHoang6
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHThaoPhuong154017
 
Mạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdfMạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdfXem Số Mệnh
 
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
 
Nhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mạiNhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mại
 
đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21
 
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
 
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
 
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
 
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
 
Gieo quẻ kinh dịch, xin xăm,Xin lộc thánh.pdf
Gieo quẻ kinh dịch, xin xăm,Xin lộc thánh.pdfGieo quẻ kinh dịch, xin xăm,Xin lộc thánh.pdf
Gieo quẻ kinh dịch, xin xăm,Xin lộc thánh.pdf
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
 
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
 
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
 
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptxCHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
 
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"syllabus for the book "Tiếng Anh 6 i-Learn Smart World"
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
 
Mạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdfMạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdf
 
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
 

Ứng dụng mạng Nơ-ron nhân tạo phát triển phần mềm theo Agile

  • 1. ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN NGỌC NHÂN NG N C U VÀ NG NG ẠNG N -RON N N TẠ VÀ À T N Ư C Ư NG N C T TR N N T N G 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 T ẠC SĨ KHOA HỌC MÁY TÍNH Đà Nẵng – Năm 2017
  • 2. Công trình được hoàn thành tại TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG Người hướng dẫn khoa học: TS. LÊ THỊ MỸ HẠNH Phản biện 1 : TS. Ninh Khánh Duy Phản biện 2 : TS. Nguyễn Quang Thanh Luận văn đượ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 Đà Nẵng vào ngày 8 tháng 1 năm 2017 Có thể tìm hiểu luận văn tại : - Trung tâm Thông tin - Học liệu, Đại học Đà Nẵng - Trung tâm học liệu truyền thông, trường Đại học Bách Khoa, Đại học Đà Nẵng
  • 3. 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.
  • 4. 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)...
  • 5. 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.
  • 6. 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#.
  • 7. 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...
  • 8. 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
  • 9. 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)
  • 10. 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ó
  • 11. 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.
  • 12. 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:
  • 13. 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
  • 14. 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
  • 15. 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.
  • 16. 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.
  • 17. 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
  • 18. 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
  • 19. 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.
  • 20. 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)
  • 21. 19 ∑( ) ( ) Trong đó là các giá trị nỗ lực thực tế và dự đoán tưng ứng của thử nghiệm thứ i.  Tiêu chí Mean Magnitude of Relative Error (MMRE) là tỷ lệ phần trăm của trị tuyệt đối sai số dự đoán trên toàn bộ tập dữ liệu. Với bộ dữ liệu thử T các MMRE được tính theo công thức (22) : ∑ ( )  PRED(N) cho thấy tỉ lệ phần trăm của ước lượng trong N phần trăm của thực tế qua công thức (23). ( ) ∑ { ( )  Hệ số tương quan bình phương R2 ), còn được gọi là hệ số xác định được tính như theo công thức (24): ∑ ( ) ∑ ( ̅) ( ) ̅ là giá trị trung bình của các nỗ lực thực tế.
  • 22. 20 Vậy nên các giá trị R2 và PRED N) cao hơn thì kết quả ước lượng tốt hơn. Ngược lại, các giá trị MSE và MMRE thấp hơn thì kết quả ước lượng chính xác hơn. 3.3.2 Bộ dữ liệu thực nghiệm Phương pháp đề xuất được kiểm tra bằng cách sử dụng bộ dữ liệu gồm 21 dự án phát triển bởi 6 công ty phần mềm sử dụng của Zia. Thiết lập bộ dữ liệu gồm có:  Tổng số Story Point được thực hiện trong một dự án  Vận tốc của dự án  Những nỗ lực thực tế cần thiết để hoàn thành dự án đó. Trong nghiên cứu này, mười lăm dự án đầu tiên được sử dụng để huấn luyện ANN và sáu bộ dữ liệu còn lại dùng để tiến hành thực nghiệm và đánh giá kết quả đạt được. 3.3.3 Đánh giá các kết quả đạt được. Bảng V cho thấy các kết quả thực nghiệm Bảng V: So sánh các kết quả ước lượng Effort Velocity Time ABC-LM TLBO-LM TLBABC-LM LM 289 2.8 112 113.3 88 98 94.8 113 2.8 39 42.6 41.9 43.1 45.9 141 2.8 52 53.7 52.6 54.1 55.8 213 2.8 80 82.0 75.2 80.3 80.8 137 2.7 56 66.7 52.5 54.4 54.3 91 2.7 35 35.3 34.9 36.1 40.4 MSE 22.6866 103.345 0 36.8467 65.0967 MMRE 6.0208 7.0923 5.5710 9.9702 PRED(7.19) 66.6677 66.6677 66.6667 33.3333 R 2 0.9677 0.8530 0.9476 0.9074 3.4 Thi t và cài đ t chương tr nh 3.4.1 Mô hình thực thể quan hệ ERD Hình 3.2 là lược đồ thể hiện cấu trúc trừu tượng hoá của dữ liệu trong ứng dụng, thể hiện mối quan hệ của các thực thể trong ứng dụng.
  • 23. 21 Hình 3.2: Mô hình ERD 3.4.2 Biểu đồ Use Case 3.4.2.1 Biểu đồ Mô hình 3.3 cung cấp cái nhìn trực quan về nghiệp vụ của hệ thống đại diện là Use case) và người dùng hệ thống đại diện là người dùng). Hình 3.3: Mô hình Use Case
  • 24. 22 3.4.3 Biểu đồ hoạt động Hình 3.4: Biểu đồ hoạt động 3.4.4 Thiết kế giao diện và chức năng chính  Màn hình chính  Màn hình thêm dự án.  Màn hình cài đặt  Màn hình kết quả 3.4.5 Cài đặt chương trình. Cung cấp cho chương trình bộ dữ liệu ban đầu. Trong bài nghiên cứu này thì tôi sử dụng bộ dataset 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] . Người dùng có thể cung cấp thêm các dữ liệu từ việc phát triển ứng dụng thực tế, các ứng dụng đã được ước lượng trong ứng dụng sẽ mặt định làm dataset cho các bộ trọng số sau này. Ứng dụng được phát triển trên môi trường windows.
  • 25. 23 3.5 K t quả chương tr nh  Hoàn thành các chức năng giúp người dùng cung cấp các thông tin cần thiết của dự án để tiến hành ước lượng nỗ lực phát triển phần mềm theo mô hình Agile.  Tính toán các giá trị vận tốc dự án và tổng số story point của dự án mà người dùng đã nhập thông tin vào.  Áp dụng ANN vào bài toán ước lượng nỗ lực phát triển phần mềm, kết quả đạt được là thời gian hoàn thành dự án và chi phí để hoàn thành dự án đó. KẾT LUẬN VÀ Ư NG PHÁT TRI N 1. K t quả đạt được Qua đề tài này chúng ta có thể ước lượng được chi phí và nỗ lực để phát triển phần mềm gần chính xác nhất. Giảm thời trong việc ước lượng, đảm báo thời gian hoàn thành dự án kịp tiến độ, đảm bảo được chi phí trong quá trình phát triển. Đầy đủ các chức năng mà khách hàng yêu cầu. Đề xuất được giải pháp áp dụng mạng Nơ-ron nhân tạo, ABC, Levenberg–Marquardt vào bài toán ước lượng nỗ lực phát triển phần mềm trên mô hình phát triển Agile. Cài đặt chương trình trên cơ sở giải pháp đề xuất và tích hợp trên môi trường Windows. 2. Hạn ch Giải pháp đề ra dựa trên ANN, phụ thuộc nhiều vào tham số đầu vào, nếu tham số đầu vào không chính xác dẫn đến kết quả đi xa mong muốn.
  • 26. 24 Chỉ là một giải giải pháp nhỏ, bởi vì trong quá trình phát triển phần mềm còn có rất nhiều trở ngại, nhiều yếu tố khác nhau ảnh hưởng tới tốc độ phát triển dự án phần mềm. 3. ướng phát triển Phải làm việc trực tiếp với các dự án phần mềm, đúc kết đưa ra các tham số đầu vào chính xác, dựa trên thực tế để nắm bắt các yếu tố ảnh hưởng tới tốc độ dự án. Áp dụng vào tất cả các mô hình phát triển phần mềm trong tương lai Nghiên cứu thêm một số thuật toán tối ưu để cải thiện hiệu quả mạng Nơ-ron và áp dụng vào các bài toán ước lượng cụ thể. Nghiên cứu, đề xuất các giải pháp để việc ước lượng mang lại kết quả chính xác nhất cho mô hình phát triển phần mềm nói chung và mô hình Agile nói riêng.