Báo cáo tóm tắt Đề tài Nghiên cứu một số thuật toán lấy cảm hứng từ tự nhiên và ứng dụng vào bài toán tối ưu nỗ lực, chi phí phát triển phần mềm
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
BÁO CÁO TÓM TẮT
ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP ĐẠI HỌC ĐÀ NẴNG
NGHIÊN CꢀU MỘT SỐ THUꢁT TOÁN LẤY CꢂM HꢀNG
Tꢃ Tꢄ NHIÊN VÀ ꢀNG DꢅNG VÀO BÀI TOÁN
TỐI ƯU Nꢆ LꢄC, CHI PHÍ PHÁT TRIꢇN PHꢈN MỀM
Mã số: B2016-ĐN02-06
Chủ nhiệm đề tài: TS. Lê Thị Mỹ Hạnh
Thành viên : KS. Khuất Thanh Tùng
KS. Ngô Thành Phát
Đà nẵng, 5/2018
Mꢀc lꢀc
ii
MỤC LỤC
MỤC LỤC..................................................................................................................................I
DANH SꢀCH HꢁNH Vꢂ ........................................................................................................IV
DANH SꢀCH BꢃNG .............................................................................................................IV
1.1. Giꢊi thiệu vꢋn đꢌ....................................................................................................... 1
1.2. Tꢍnh phức tạp cꢎa bài toán tꢏi ưu.............................................................................. 1
1.4. Tꢔng quan vꢌ các thuꢓt toán tꢏi ưu tꢒ tự nhiên......................................................... 1
1.5. Giꢊi thiệu chung vꢌ các thuꢓt toán được sử dụng trong đꢌ tài.................................. 1
1.6. Thuꢓt toán đàn ong nhân tạo ..................................................................................... 2
1.7. Thuꢓt toán dạy-học.................................................................................................... 2
1.8. Thuꢓt toán đàn ong nhân tạo kꢕt hợp dạy học........................................................... 2
1.9. Thuꢓt toán tꢏi ưu bꢖy đàn.......................................................................................... 2
2.1. Giꢊi thiệu bài toán..................................................................................................... 3
2.2. Tꢔng quan vꢌ các kỹ thuꢓt ưꢊc lượng nꢟ lực phꢖn mꢌm .......................................... 3
2.3.1.2. Mô hꢆnh COCOMO cơ sꢇ........................................................................ 4
2.3.1.3. Mô hꢆnh COCOMO trung cꢈp................................................................. 4
2.3.1.4. Mô hꢆnh COCOMO nâng cao.................................................................. 4
2.3.1.5. Mô hꢆnh COCOMO II.............................................................................. 4
Phương pháp điểm chức năng ....................................................................... 8
2.4.1. Quy trꢠnh phát triển phꢖn mꢌm Agile............................................................ 8
2.4.1.1. Cꢁc nguyên tꢉc cꢊa quy trꢆnh Agile......................................................... 8
2.4.1.2. Cꢁc đꢋc trưng cꢊa quy trꢆnh Agile .......................................................... 8
2.4.2.2. Xꢁc đꢑnh story point cho dꢒ ꢁn.............................................................. 10
2.4.2.4. Xꢁc đꢑnh thꢕi gian vꢎ chi phꢖ dꢒ ꢁn ...................................................... 11
3.1. Đꢡt vꢋn đꢌ................................................................................................................ 12
3.2. Các tiêu chuꢢn đánh giá kꢕt quꢑ ưꢊc lượng nꢟ lực ................................................. 13
Hàm thích nghi............................................................................................ 13
Kꢕt quꢑ thực nghiệm ................................................................................... 14
Mꢀc lꢀc
iii
3.4.2.2. Kꢌt quꢘ thꢒc nghiꢙm.............................................................................. 15
3.5. Phân tꢍch chức năng cꢎa chương trꢠnh .................................................................... 15
3.6. Thiꢕt kꢕ chương trꢠnh.............................................................................................. 15
Biểu đꢐ ca sử dụng (Use case) .................................................................... 16
Biểu đꢐ tuꢖn tự và hoạt động ...................................................................... 17
Biểu đꢐ lꢊp .................................................................................................. 18
3.7. Một sꢏ hꢠnh ꢑnh cꢎa hệ thꢏng ưꢊc lượng nꢟ lực..................................................... 19
KẾT LUꢄN Vꢘ HƯꢙNG PHꢀT TRIꢜN .............................................................................. 21
Danh sꢁch hꢆnh vꢚ và bꢘng
iv
DANH SꢀCH HꢁNH Vꢂ
Biểu đꢐ Ca sử dụng (Use case) ....................................................................... 16
Giao diện khi một dự án đã kꢕt thúc ............................................................... 19
Hꢠnh 11. Giao diện chức năng thiꢕt lꢓp cꢋu hꢠnh tham sꢏ.............................................. 20
DANH SꢀCH BꢃNG
Điểm quy mô cho các user story..................................................................... 10
Danh sꢁch từ viꢌt tꢉt
Tꢆ viꢇt tꢈt
v
DANH SꢀCH Tꢄ VIꢅT TẮT
ꢉ nghꢊa
ABC
ABC-PSO
Artificial Bee Colony – Thuꢓt toán đàn ong nhân tạo
Hybrid Artificial Bee Colony and Particle Swarm Optimization – Thuꢓt toán
lai giꢗa đàn ong nhân tạo và tꢏi ưu bꢖy đàn
CCNN
CoBRA
COCOMO
D
Cascade-Correlation Neural Networks – Mạng nơ-ron tương quan xꢕp tꢖng
Phương pháp ưꢊc lượng chi phꢍ, chuꢢn hꢥa và phân tꢍch rꢎi ro
COnstructive COst MOdel – Mô hꢠnh ưꢊc lượng giá cꢋu thành
Sꢏ chiꢌu cꢎa bài toán
DF
EAF
Eff
Hệ sꢏ giꢑm tꢏc cꢎa các yꢕu tꢏ hay biꢕn động trong dự án Agile
Effort adjustment factor – Yꢕu tꢏ hiệu chꢣnh nꢟ lực
Effort – Nꢟ lực
ES
Điểm cho mꢟi user story
FP
Function Point – Điểm chức năng
FR
Hệ sꢏ giꢑm vꢓn tꢏc thường xuyên trong dự án Agile
GMDHPNN Group Method of Data Handling Polynomial Neural Network – Mạng nơ-ron
vꢊi phương pháp nhꢥm xử lꢦ dꢗ liệu tuyꢕn tꢍnh
GRNN
KLOC
MAR
MdMRE
ME
MMRE
MRE
NE
General Regression Neural Networks – Mạng nơ-ron hꢐi quy tꢔng quát
Ngàn dꢧng lệnh
Mean Absolute Residual – sꢏ dư tuyệt đꢏi trung bꢠnh
Median Magnitude of Relative Error – Độ lꢊn trung vị cꢎa lꢟi tương đꢏi
Methodology – Nhân tꢏ phương pháp luꢓn trong mô hꢠnh Sheta-Uysal
Mean Magnitude of Relative Error – Độ lꢊn trung bꢠnh cꢎa lꢟi tương đꢏi
Magnitude of Relative Error – Độ lꢊn cꢎa lꢟi tương đꢏi
Sꢏ ong thợ trong thuꢓt toán ABC
NP
Sꢏ cá thể trong thuꢓt toán tꢏi ưu bꢖy đàn
PNN
PSO
PRED(N)
SF
Probabilistic Neural Networks – Mạng nơ-ron xác suꢋt
Particle Swarm Optimization – Thuꢓt toán tꢏi ưu bꢖy đàn
Precision at level N – Độ chꢍnh xác ꢤ mức lꢟi dưꢊi N%
Nhân tꢏ ꢑnh hưꢤng đꢕn quy mô dự án
SP
Tꢔng điểm Story point cꢎa một dự án Agile
TCF
TLBO
TLABC
Độ phức tạp kỹ thuꢓt cꢎa thệ thꢏng sử dụng phân tꢍch điểm chức năng
Teaching-learning-based Optimization – Thuꢓt toán tꢏi ưu dạy học
Teaching-learining based Artificial Bee Colony – Thuꢓt toán đàn ong nhân
tạo cꢑi tiꢕn sử dụng cơ chꢕ dạy học
UFP
Vi
Điểm chức năng thô
Vꢓn tꢏc cơ sꢤ cꢎa nhꢥm phát triển
V
Vꢓn tꢏc sau hiệu chꢣnh cꢎa nhꢥm phát triển
Mꢇ đꢄu
vi
MỞ ĐꢋU
Tꢏi ưu hꢥa là một lĩnh vực tꢏi quan trọng cꢥ tꢍnh ứng dụng cao trong nhiꢌu lĩnh vực
như quy hoạch tài nguyên, thiꢕt kꢕ chꢕ tạo máy, điꢌu khiển tự động, quꢑn trị kinh doanh,
kiꢕn trúc đô thị, công nghệ thông tin, xây dựng các hệ hꢟ trợ ra quyꢕt định trong quꢑn lꢦ
và phát triển các hệ thꢏng lꢊn. Các mục tiêu cꢎa tꢏi ưu hꢥa là cực tiểu tài nguyên và chi
phꢍ sử dụng, cꢨng như tꢏi đa hꢥa lợi nhuꢓn, hiệu năng và tꢍnh chꢍnh xác. Vꢠ thời gian,
tiꢌn bạc và tài nguyên luôn bị giꢊi hạn trong các ứng dụng thực tꢕ nên chúng ta phꢑi tꢠm
ra giꢑi pháp để sử dụng hiệu quꢑ các nguꢐn tài nguyên cꢥ giá trị này trong điꢌu kiện cꢥ
một sꢏ ràng buộc nhꢋt định kꢩm theo. Cꢪng vꢊi sự phát triển cꢎa khoa học và công nghệ,
các bài toán tꢏi ưu phát sinh tꢒ thực tꢕ cuộc sꢏng ngày càng đa dạng và phức tạp khi sꢏ
chiꢌu cꢎa các bài toán thực tꢕ ngày càng lꢊn. Bꢤi vꢠ tꢍnh liên hệ và tương quan giꢗa các
biꢕn vꢊi nhau ngày một gia tăng nên các vꢋn đꢌ này không thể được giꢑi quyꢕt trong giꢊi
hạn thời gian hợp lꢦ và cho ra lời giꢑi chꢍnh xác. Kꢍch thưꢊc và độ phức tạp cꢎa các bài
toán thực tꢕ yêu cꢖu sự phát triển cꢎa các kỹ thuꢓt mꢊi cꢥ thể tꢠm kiꢕm lời giꢑi chꢋp nhꢓn
được trong một khoꢑng thời gian cho phꢫp. Các thuꢓt toán tꢠm kiꢕm lời giꢑi chꢍnh xác
không thể giꢑi quyꢕt được các bài toán này trong một khoꢑng thời gian giꢊi hạn. Khi đꢥ
việc sử dụng các thuꢓt toán xꢋp xꢣ là một lựa chọn phꢪ hợp để tꢠm thꢋy các lời giꢑi gꢖn
tꢏi ưu. Qua nhiꢌu thꢓp kꢬ, các khái niệm, kỹ thuꢓt và các ứng dụng tꢍnh toán được lꢋy
cꢑm hứng tꢒ tự nhiên đã được phát triển để giꢑi quyꢕt các bài toán tꢏi ưu một cách hiệu
quꢑ. Tꢍnh toán lꢋy cꢑm hứng tꢒ tự nhiên cꢥ thể giꢑi quyꢕt các bài toán trong hꢖu hꢕt các
lĩnh vực tꢒ mạng cꢑm biꢕn không dây, mạng máy tꢍnh, an toàn thông tin, công nghiệp rô
bꢏt, công nghệ y sinh, các hệ thꢏng điꢌu khiển, xử lꢦ song song, khai phá dꢗ liệu, các hệ
thꢏng quꢑn lꢦ và tiêu thụ năng lượng, xử lꢦ ꢑnh và nhiꢌu lĩnh vực khác. Thiꢕt kꢕ các
thuꢓt toán lꢋy cꢑm hứng tꢒ tự nhiên liên quan đꢕn việc chọn các phương pháp biểu diꢭn
phꢪ hợp cho bài toán, đánh giá chꢋt lượng cꢎa các lời giꢑi thông qua hàm mục tiêu, và
định nghĩa các phương pháp để sinh ra lời giꢑi mꢊi cho bài toán. Các thuꢓt toán này mô
phꢮng các cꢋu trúc và hành vi cꢎa các hệ thꢏng phức tạp trong tự nhiên. Vꢠ các nguꢐn
cꢑm hứng tꢒ tự nhiên rꢋt đa dạng nên cꢥ nhiꢌu thuꢓt toán khác nhau đã được đꢌ xuꢋt. Tuy
nhiên, nhꢗng cách phân loại nguꢐn cꢑm hứng trong các nghiên cứu vꢯn chưa thꢏng nhꢋt
và bao phꢎ hꢕt nhꢗng thuꢓt toán hiện cꢥ. Cꢪng vꢊi đꢥ, hiện nay vꢯn chưa cꢥ nghiên cứu
nào ꢤ Việt Nam thực hiện việc phân loại này và các thuꢓt toán lꢋy cꢑm hứng tꢒ tự nhiên
vꢯn là một nghiên cứu khá mꢊi mꢰ trong nưꢊc. Bꢤi thꢕ, một yêu cꢖu bức thiꢕt là phꢑi cꢥ
một phương pháp phân loại các nguꢐn cꢑm hứng này một cách phꢪ hợp. Trong nghiên
cứu này, chúng tôi sꢱ đꢌ xuꢋt một hưꢊng phân loại mꢊi cho các thuꢓt toán lꢋy cꢑm hứng
tꢒ tự nhiên cꢨng như giꢊi thiệu tꢔng quan vꢌ một sꢏ thuꢓt toán mꢊi trong lĩnh vực này để
đꢥng gꢥp một nguꢐn tài liệu tham khꢑo cꢥ giá trị phục vụ cho các nghiên cứu vꢌ sau.
Quy trꢠnh ưꢊc lượng nꢟ lực và chi phꢍ là một thành phꢖn rꢋt quan trọng trong các dự
án công nghệ phꢖn mꢌm. Sự thành công hay thꢋt bại cꢎa dự án phụ thuộc rꢋt nhiꢌu vào
tính chính xác cꢎa việc ưꢊc lượng nꢟ lực và tiꢕn độ dự án. Nꢕu chi phꢍ ưꢊc lượng quá
thꢋp so vꢊi chi phꢍ thực tꢕ sꢱ cꢥ ꢑnh hưꢊng bꢋt lợi vꢌ chꢋt lượng cꢎa sꢑn phꢢm phꢖn mꢌm
cuꢏi cꢪng, làm ꢑnh hưꢤng đꢕn uy tꢍn và tꢍnh cạnh tranh cꢎa doanh nghiệp. Nꢕu chi phꢍ
ưꢊc lượng quá cao so vꢊi chi phꢍ thực tꢕ sꢱ ꢑnh hưꢤng tꢊi nguꢐn lực được phân bꢔ cho
các dự án khác hoꢡc làm giꢑm doanh thu cꢎa doanh nghiệp khi không đꢎ nhân lực trong
Mꢇ đꢄu
vii
kꢕ hoạch để đꢋu thꢖu các dự án mꢊi. Tꢓp đoàn Standish đã tuyên bꢏ rằng 44% cꢎa các dự
án phꢖn mꢌm được chuyển giao trꢭ hạn hoꢡc vượt quá ngân quỹ cho phꢫp. Điꢌu này cho
thꢋy tꢖm quan trọng cꢎa việc quꢑn trị dự án. Hiệp hội quꢏc tꢕ vꢌ phân tꢍch đꢖu vào cho
các dự án (ISPA) đã nêu ra ba nguyên nhân chꢍnh dꢯn đꢕn sự thꢋt bại cꢎa các dự án bao
gꢐm: thiꢕu hụt các ưꢊc lượng vꢌ kỹ năng cꢎa nhân viên, thiꢕu hụt các hiểu biꢕt vꢌ yêu
cꢖu cꢎa dự án, và ưꢊc lượng kꢍch cꢲ dự án không chꢍnh xác. Một nghiên cứu khác được
thực hiện bꢤi tꢓp đoàn Standish để xác định các nhân tꢏ chꢍnh dꢯn đꢕn sự thꢋt bại cꢎa các
dự án đã tꢠm ra các nguyên nhân sau: sự không chꢳc chꢳn trong yêu cꢖu cꢎa hệ thꢏng, sự
giꢊi hạn vꢌ ngân quỹ, thiꢕu kỹ năng ưꢊc lượng dự án, ưꢊc lượng không chꢍnh xác nꢟ lực
cꢖn phân bꢔ cho dự án, bꢮ qua các dꢗ liệu lịch sử vꢌ các dự án đã phát triển. Tꢒ đꢥ cꢥ thể
thꢋy rằng, nguyên nhân chꢎ yꢕu dꢯn đꢕn sự thꢋt bại cꢎa các dự án phꢖn mꢌm là do ưꢊc
lượng không chꢍnh xác vꢌ kꢍch cꢲ phꢖn mꢌm và nꢟ lực cꢖn cꢥ để thực hiện dự án. Do
vꢓy, việc áp dụng các thuꢓt toán tꢏi ưu lꢋy cꢑm hứng tꢒ tự nhiên để nâng cao tꢍnh chꢍnh
xác cho bài toán ưꢊc lượng dự án phꢖn mꢌm cꢥ ꢦ nghĩa đꢡt biệt quan trọng đꢏi vꢊi doanh
nghiệp và nhà đꢖu tư.
Trong nhꢗng năm gꢖn đây, quy trꢠnh phꢖn mꢌm Agile trꢤ thành một lựa chọn mꢊi
được nhiꢌu doanh nghiệp áp dụng để quꢑn lꢦ toàn bộ quy trꢠnh phát triển phꢖn mꢌm. Tuy
nhiên, các nghiên cứu vꢌ lĩnh vực này trên thꢕ giꢊi vꢯn cꢧn rꢋt ꢍt và ꢤ Việt Nam hꢖu như
chưa tꢠm thꢋy một nghiên cứu nào. Trong khi đꢥ, việc sử dụng các phương pháp truyꢌn
thꢏng để ưꢊc lượng nꢟ lực cho các dự án Agile cho kꢕt quꢑ ưꢊc lượng không chꢍnh xác.
Trong thực tꢕ, tꢍnh phức tạp và kꢍch thưꢊc cꢎa các phꢖn mꢌm ngày một gia tăng, các dự
án vượt quá vài chục triệu dꢧng lệnh đã không cꢧn xa lạ. Các tꢔ chức phát triển phꢖn
mꢌm yêu cꢖu nhiꢌu nhân viên kỹ thuꢓt hơn và các chi phꢍ cꢎa phꢖn mꢌm cꢥ thể lên tꢊi
hàng triệu đô la. Sai sꢥt trong ưꢊc lượng chi phꢍ cꢥ thể dꢯn đꢕn nhꢗng hꢓu quꢑ rꢋt nghiêm
trọng. Điꢌu đꢥ đꢧi hꢮi phꢑi phát triển một kỹ thuꢓt nhằm nâng cao tꢍnh hiệu quꢑ cꢎa các
phương pháp ưꢊc lượng phꢖn mꢌm truyꢌn thꢏng cꢨng như đꢌ xuꢋt một phương pháp ưꢊc
lượng phꢖn mꢌm mꢊi cho quy trꢠnh Agile. Đꢌ tài này hưꢊng tꢊi mục đꢍch áp dụng các
thuꢓt toán tꢏi ưu hꢥa như một kỹ thuꢓt tꢍnh toán mꢌm để nâng cao tꢍnh chꢍnh xác cꢎa quy
trꢠnh ưꢊc lượng nꢟ lực phát triển phꢖn mꢌm truyꢌn thꢏng và phꢖn mꢌm sử dụng quy trꢠnh
Agile.
Các đꢥng gꢥp mꢊi trong nghiên cứu này gꢐm cꢥ:
- Phân lꢊp các nguꢐn cꢑm hứng tꢒ tự nhiên được sử dụng để xây dựng nên các thuꢓt
toán tꢏi ưu.
- Đꢌ xuꢋt các cꢑi tiꢕn quan trọng cho các thuꢓt toán tꢏi ưu thường được sử dụng bao
gꢐm: thuꢓt toán đàn ong nhân tạo, thuꢓt toán dạy học, và thuꢓt toán tꢏi ưu bꢖy đàn.
- Nghiên cứu tꢔng quan vꢌ bài toán ưꢊc lượng nꢟ lực phát triển phꢖn mꢌm, khꢑo sát
các phương pháp đang được sử dụng.
- Cꢑi tiꢕn các mô hꢠnh ưꢊc lượng nꢟ lực truyꢌn thꢏng như COCOMO, Sheta-Uysal
bằng cách tꢏi ưu các tham sꢏ cho các mô hꢠnh ưꢊc lượng này sử dụng các thuꢓt
toán cꢑi tiꢕn đꢌ xuꢋt.
Mꢇ đꢄu
viii
- Xây dựng một phương trꢠnh ưꢊc lượng nꢟ lực mꢊi dựa trên các yꢕu tꢏ cꢖn thiꢕt cho
một dự án phꢖn mꢌm sử dụng quy trꢠnh Agile. Các tham sꢏ cꢎa công thức ưꢊc
lượng nꢟ lực đꢌ xuꢋt được xây dựng động sử dụng các thuꢓt toán tꢏi ưu.
- Đánh giá, so sánh toàn diện các phương pháp đꢌ xuꢋt vꢊi các nghiên cứu khác.
- Xây dựng một phꢖn mꢌm hꢟ trợ cho ra các kꢕt quꢑ ưꢊc lượng dựa trên các yꢕu tꢏ
đꢖu vào cꢎa các mô hꢠnh.
Báo cáo này được chia thành các phꢖn chꢍnh như sau:
Chương 1: trꢠnh bày vꢌ các thuꢓt toán lꢋy cꢑm hứng tꢒ tự nhiên.
Chương 2: giꢊi thiệu các mô hꢠnh ưꢊc lượng nꢟ lực phát triển phꢖn mꢌm truyꢌn thꢏng
và ưꢊc lượng nꢟ lực cho các phꢖn mꢌm sử dụng quy trꢠnh phát triển Agile.
Chương 3: mô tꢑ các kꢕt quꢑ cꢎa việc áp dụng các thuꢓt toán tꢏi ưu để nâng cao tꢍnh
chꢍnh xác cꢎa các kꢕt quꢑ ưꢊc lượng và trꢠnh bày các bưꢊc vꢌ phân tꢍch và thiꢕt kꢕ
chương trꢠnh ưꢊc lượng nꢟ lực mà chúng tôi đã xây dựng.
Nhꢗng xuꢋt bꢑn trong quá trꢠnh nghiên cứu đꢌ tài:
[1] Thanh Tung Khuat, My Hanh Le, "A novel hybrid ABC-PSO algorithm for effort
estimation of software projects using Agile methodologies," Journal of Intelligent
Systems, 2017 (Online First), DOI: 10.1515/jisys-2016-0294, (Scopus and ESCI
indexed)
[2] Thanh Tung Khuat, My Hanh Le, "Optimizing Parameters of Software Effort
Estimation Models using Directed Artificial Bee Colony Algorithm," Informatica,
vol. 40(4), 12/2016 (Scopus and ESCI indexed)
[3] Thanh Tung Khuat, My Hanh Le, "Applying Teaching-Learning to Artificial Bee
Colony for Parameter Optimization of Software Effort Estimation Model,"
Journal of Engineering Science and Technology (JESTEC), vol. 12, no. 5, 2017
(Scopus and ESCI indexed)
[4] Thanh Tung Khuat and My Hanh Le, "A Novel Technique of Optimization for the
COCOMO II Model Parameters using Teaching-Learning based Optimization
Algorithm," Journal of Telecommunications and Information Technology, vol.
1/2016, pp. 84-89, 2016 (Scopus indexed)
Chương 1: Cꢁc thuꢓt toꢁn tꢍi ưu lꢈy cꢘm hꢂng từ tꢒ nhiên
1
Chương 1. CÁC THUꢌT TOꢀN TỐI ƯU LꢍY CꢃM HꢎNG
Tꢄ Tꢏ NHIÊN
Chương này giꢊi thiệu tꢔng quan vꢌ thuꢓt toán tꢏi ưu, độ phức tạp cꢎa nꢥ tꢒ đꢥ hưꢊng
đꢕn việc tꢠm hiểu các thuꢓt toán gꢖn đúng lꢋy cꢑm hứng tꢒ tự nhiên để tꢠm lời giꢑi xꢋp xꢣ
cho các bài toán tꢏi ưu trong thực tꢕ. Các nguꢐn cꢑm hứng tꢒ tự nhiên sꢱ được phân loại
làm tiꢌn đꢌ để nhꢥm các thuꢓt toán hiện cꢥ trong lĩnh vực này vào tꢒng nguꢐn cꢑm hứng
cụ thể. Cuꢏi cꢪng, ba thuꢓt toán tꢏi ưu phꢔ biꢕn được nghiên cứu trong đꢌ tài này được
mô tꢑ cụ thể.
1.1. Giới thiꢐu vấn đꢑ
Các hiện tượng trong tự nhiên là một nguꢐn cꢑm hứng để thiꢕt kꢕ ra các quy luꢓt và
xây dựng các hàm toán học cho các thuꢓt toán metaheuristic để hưꢊng dꢯn quy trꢠnh tꢠm
kiꢕm hưꢊng đꢕn một lời giꢑi tꢏt cho một bài toán. Nghiên cứu này hưꢊng đꢕn việc phân
loại các nguꢐn cꢑm hứng, giꢊi thiệu một sꢏ thuꢓt toán điểm hꢠnh trong mꢟi nguꢐn cꢑm
hứng và ứng dụng một sꢏ thuꢓt toán để giꢑi quyꢕt một bài toán trong thực tꢕ là “Ưꢊc
lượng nꢟ lực cꢖn cho quy trꢠnh phát triển các sꢑn phꢢm phꢖn mꢌm”.
1.2. Tꢒnh phꢓc tꢔp cꢕa bꢖi toꢗn tối ưu
1.3. Phân lớp cꢗc nguꢘn cꢙm hꢓng tꢆ tꢚ nhiên đꢛ xây dꢚng thuꢜt toꢗn tối ưu
Trong nghiên cứu này, chúng tôi chia các nguꢐn cꢑm hứng thành ba nhꢥm lꢊn: vꢓt lꢦ,
hꢥa học và sinh học. Các nhꢥm con cꢎa tꢒng nhꢥm được mô tꢑ như trong Hꢠnh 1.
Hꢝnh 1. Phân loꢔi cꢗc nguꢘn cꢙm hꢓng tꢆ tꢚ nhiên
1.4. Tꢞng quan vꢑ cꢗc thuꢜt toꢗn tối ưu tꢆ tꢚ nhiên
1.5. Giới thiꢐu chung vꢑ cꢗc thuꢜt toꢗn được sử dꢟng trong đꢑ tꢖi
Trong các thuꢓt toán được trinh bày ꢤ phꢖn trưꢊc, cꢥ ba thuꢓt toán thường được ứng
dụng rộng rãi để giꢑi quyꢕt các bài toán tꢏi ưu trong thực tꢕ là thuꢓt toán đàn ong nhân
tạo, thuꢓt toán dạy học và thuꢓt toán trꢍ tuệ bꢖy đàn. Tuy nhiên nhꢗng thuꢓt toán này vꢯn
Chương 1: Cꢁc thuꢓt toꢁn tꢍi ưu lꢈy cꢘm hꢂng từ tꢒ nhiên
2
cꢥ các điểm yꢕu cꢎa nꢥ trong việc tꢠm ra các lời giꢑi cꢥ chꢋt lượng cao. Vꢠ vꢓy, chúng tôi
sꢱ tꢓp trung vào ba thuꢓt toán chꢍnh này và giꢊi thiệu các thuꢓt toán cꢑi tiꢕn cꢎa chúng để
áp dụng vào bài toán cụ thể là tꢏi ưu nꢟ lực phát triển phꢖn mꢌm.
Chúng tôi hưꢊng đꢕn việc đꢌ xuꢋt một phiên bꢑn cꢑi tiꢕn cꢎa thuꢓt toán đàn ong nhân
tạo và ứng dụng nꢥ vào việc nâng cao tꢍnh chꢍnh xác cꢎa một mô hꢠnh ưꢊc lượng phꢖn
mꢌm cụ thể. Đꢌ tài cꢨng sꢱ áp dụng các nguyên lꢦ trong thuꢓt toán đàn ong nhân tạo để
lai ghꢫp vꢊi thuꢓt toán dạy học, thuꢓt toán tꢏi ưu bꢖy đàn để tạo ra một thuꢓt toán mꢊi
hiệu quꢑ hơn trong việc đưa ra các dự đoán nꢟ lực cꢖn cung cꢋp cho một dự án phꢖn
mꢌm. Trong đꢌ tài này chúng tôi cꢨng đꢌ xuꢋt một phương trꢠnh ưꢊc lượng nꢟ lực mꢊi
dựa trên các nhân tꢏ cꢖn thiꢕt cho một dự án phꢖn mꢌm sử dụng các phương pháp phát
triển linh hoạt Agile. Các tham sꢏ cꢎa phương trꢠnh toán học mꢊi này được xây dựng
bằng cách sử dụng các thuꢓt toán tꢏi ưu lꢋy cꢑm hứng tꢒ tự nhiên được cꢑi tiꢕn theo
hưꢊng hiệu quꢑ hơn. Phꢖn cꢧn lại cꢎa chương này sꢱ tꢓp trung mô tꢑ chi tiꢕt vꢌ ba thuꢓt
toán được sử dụng trong nghiên cứu này.
1.6. Thuꢜt toꢗn đꢖn ong nhân tꢔo
1.7. Thuꢜt toꢗn dꢔy-hꢠc
1.8. Thuꢜt toꢗn đꢖn ong nhân tꢔo kꢇt hợp dꢔy hꢠc
1.9. Thuꢜt toꢗn tối ưu bꢡy đꢖn
1.10. Thuꢜt toꢗn lai giꢢa đꢖn ong nhân tꢔo vꢖ tối ưu bꢡy đꢖn (ABC-PSO)
Chương 2: Bꢎi toꢁn ưꢏc lưꢐng nꢛ lꢒc phꢁt triꢃn phꢄn mꢅm
3
Chương 2. BÀI TOꢀN ƯꢣC LƯꢤNG Nꢥ LꢏC PHꢀT TRIꢦN
PHꢋN MꢧM
Chương này trꢠnh bày tꢔng quan vꢌ bài toán ưꢊc lượng nꢟ lực phát triển phꢖn mꢌm,
cꢨng như khꢑo sát các phương pháp đang được sử dụng trong việc sinh ra kꢕt quꢑ ưꢊc
lượng trong thực tꢕ. Cuꢏi chương sꢱ trꢠnh bày vꢌ các mô hꢠnh ưꢊc lượng nꢟ lực truyꢌn
thꢏng dựa trên phương trꢠnh toán học và một mô hꢠnh ưꢊc lượng nꢟ lực mꢊi cho các dự
án sử dụng quy trꢠnh Agile.
2.1. Giới thiꢐu bꢖi toꢗn
Ưꢊc lượng dự án phꢖn mꢌm hiệu quꢑ là một hoạt động quan trọng, đꢐng thời cꢨng là
một thách thức trong quá trꢠnh phát triển phꢖn mꢌm. Ưꢊc lượng là một trong nhꢗng nꢌn
tꢑng cho việc lꢓp kꢕ hoạch dự án một cách hiệu quꢑ. Nhiꢌu tꢔ chức phꢑi đꢏi mꢡt vꢊi việc
thâm hụt ngân quỹ, đánh mꢋt lợi thꢕ cạnh tranh và chꢓm trꢭ trong việc giao sꢑn phꢢm cho
khách hàng dꢯn đꢕn mꢋt uy tꢍn.
Việc xác định chꢍnh xác nꢟ lực và chi phꢍ cꢖn thiꢕt cho một dự án phꢖn mꢌm là một
yêu cꢖu tꢏi quan trọng để đꢑm bꢑo dự án thành công trong thời gian và kinh phꢍ cho
phꢫp.
2.2. Tꢞng quan vꢑ cꢗc kꢨ thuꢜt ước lượng nꢩ lꢚc phꢡn mꢑm
Các kỹ thuꢓt ưꢊc lượng nꢟ lực phꢖn mꢌm cꢥ thể được phân nhꢥm theo nhiꢌu cách
khác nhau. Một cách chia các kỹ thuꢓt này thành sáu nhꢥm chꢍnh được mô tꢑ bꢤi Chulani
Cꢀc kꢁ thuꢂt ưꢃc lưꢄng nꢅ lꢆc phꢇn mꢈm
Dꢀa vꢁo mô hꢂnh toꢃn hꢄc: SLIM, COCOMO, SEER
Dꢀa vꢁo kiꢅn thꢆc chuyên gia vꢁ tꢇp luꢇt
Cꢃc kꢈ thuꢇt hꢄc vꢁ suy luꢇn
Dꢀa trên ꢉnh đꢊng cꢋa dꢀ ꢃn
Dꢀa trên hꢌi quy
Hꢍn hꢎp
Hꢝnh 2. Phân loꢔi cꢗc kꢨ thuꢜt ước lượng nꢩ lꢚc phꢗt triꢛn phꢡn mꢑm
Chương 2: Bꢎi toꢁn ưꢏc lưꢐng nꢛ lꢒc phꢁt triꢃn phꢄn mꢅm
4
2.3. Cꢗc phương phꢗp ước lượng nꢩ lꢚc dꢚa trên phương tꢝnh toꢗn hꢠc
2.3.1. Mô hꢠnh ưꢊc lượng giá cꢋu thành COCOMO
2.3.1.1. Cꢁc phương thꢂc phꢁt triꢃn phꢄn mꢅm trong mô hꢆnh COCOMO
COCOMO phân biệt ba phương thức phát triển dự án phꢖn mꢌm là organic, semi-
detached và embedded.
- Trong phương thức organic, nhꢗng dự án tương đꢏi nhꢮ và đơn giꢑn được phát
triển bꢤi nhꢗng đội nhꢮ trong nhꢗng môi trường quen thuộc vꢊi nhꢗng yêu cꢖu
không quá cứng nhꢳc và cꢥ thể linh động thay đꢔi, do đꢥ việc phát triển cꢥ thể
được hꢟ trợ bꢤi các dự án đã phát triển trưꢊc đꢥ.
- semi-detached: cho nhꢗng dự án cꢥ mức độ trung bꢠnh vꢌ kꢍch cꢲ và độ phức
tạp được phát triển bꢤi đội phát triển cꢥ trꢠnh độ khác nhau vꢊi nhꢗng ràng
buộc mạnh mꢱ hơn so vꢊi organic. Tuy nhiên vꢯn cꢥ một sꢏ linh động, tức là dự
án vꢯn cꢥ thể được hꢟ trợ tꢒ nhꢗng dự án đã làm trưꢊc đây nhưng ꢤ mức độ ꢍt
- embedded: cho nhꢗng dự án cꢥ nhꢗng ràng buộc chꢡt chꢱ vꢌ phꢖn cứng, phꢖn
mꢌm, và thi hành, … Dự án phꢑi được phát triển tꢒ đꢖu và không được sự hꢟ
trợ tꢒ dꢗ liệu cꢎa các dự án trong quá khứ.
2.3.1.2. Mô hꢆnh COCOMO cơ sꢇ
2.3.1.3. Mô hꢆnh COCOMO trung cꢈp
2.3.1.4. Mô hꢆnh COCOMO nâng cao
2.3.1.5. Mô hꢆnh COCOMO II
Khi công nghệ phꢖn mꢌm thay đꢔi, Boehm tiꢕp tục phát triển mô hꢠnh COCOMO và
COCOMO II ra đời. COCOMO II cho phꢫp sử dụng sꢏ dꢧng mã và điểm chức năng như
các tham sꢏ tham chiꢕu để tꢍnh toán kꢍch thưꢊc cꢎa dự án. Cꢥ ba biꢕn thể cꢎa mô hꢠnh
COCOMO II là Applications Composition, Early Design và Post Architecture.
Đꢌ tài này tꢓp trung vào mô hꢠnh COCOMO II. Các bưꢊc ưꢊc lượng nꢟ lực sử dụng
mô hꢠnh COCOMO II gꢐm cꢥ:
1. Xác định kꢍch thưꢊc dự án qua tꢔng điểm chức năng cꢎa tꢋt cꢑ các thành phꢖn và
quy đꢔi sang nghꢠn dꢧng lệnh (KLOC) ứng vꢊi ngôn ngꢗ triển khai: Size
2. Xác định các yꢕu tꢏ điꢌu chꢣnh chi phꢍ cꢎa mô hꢠnh COCOMO II: EM
Cꢥ 17 yꢕu tꢏ liên quan đꢕn việc điꢌu chꢣnh chi phꢍ cꢎa dự án sử dụng mô hꢠnh
nhân tꢏ này.
Bꢙng 1. Cꢗc yꢇu tố hiꢐu chꢒnh chi phꢒ cꢕa mô hꢝnh COCOMO II
Mꢓc ꢙnh hưꢪng
Cꢗc yꢇu tố
Rất thấp
Thấp
Bꢝnh thưꢫng Cao
Rất cao
Đꢬc biꢐt cao
Chương 2: Bꢎi toꢁn ưꢏc lưꢐng nꢛ lꢒc phꢁt triꢃn phꢄn mꢅm
5
Sꢙn phꢭm
Độ ꢔn định Sự bꢋt tiện Sự bꢋt tiện Sự bꢋt tiện Cꢥ khꢑ năng Sự tꢔn thꢋt
cꢎa
phꢖn rꢋt thꢋp
thꢋp, nhꢗng trung bꢠnh, gây tꢔn thꢋt và các nguy
mꢌm
(RELY)
khuyꢕt tꢓt dꢭ nhꢗng khuyꢕt lꢊn
cơ rꢎi ro rꢋt
cao
−
sửa chꢗa
tꢓt dꢭ sửa
chꢗa
Kꢍch thưꢊc
cꢎa cơ sꢤ dꢗ
Kꢍch thưꢊc 10 đꢕn dưꢊi Tꢒ 100 đꢕn Tꢒ 1000 trꢤ
cơ sꢤ dꢗ liệu 100
/ sꢏ dꢧng
dưꢊi 1000
lên
liệu
ứng
−
−
dụng
lệnh < 10
(DATA)
Độ phức tạp Rꢋt thꢋp
cꢎa sꢑn phꢢm
(CPLX)
Thꢋp
Bꢠnh thường
Cao
Rꢋt cao
Đꢡc biệt cao
Khꢑ năng sử
dụng
lại(RUSE)
Không
dụng lại
sử Sử dụng như Sử dụng cho Sử dụng lại Sử dụng lại
một
phꢖn trong cꢎa một công công ty
một ứng ty
thành nhiꢌu dự án cho
nhiꢌu cho nhiꢌu sꢑn
phꢢm thương
−
mại
cꢎa
dụng độc lꢓp
khác
nhiꢌu công ty
Sự phꢪ hợp Nhiꢌu
nhu Một sꢏ nhu Nhu cꢖu vꢌ Nhu cꢖu vꢌ Nhu cꢖu vꢌ
cꢎa tài liệu cꢖu vꢌ vꢧng cꢖu vꢌ vꢧng vꢧng đời sꢑn vꢧng đời sꢑn vꢧng đời sꢑn
vꢊi các nhu đời sꢑn phꢢm đời sꢑn phꢢm phꢢm được phꢢm lꢊn
cꢖu vꢧng đời không được không được yêu cꢖu vꢊi
phꢢm rꢋt lꢊn
−
sꢑn
phꢢm mô tꢑ
mô tꢑ
kꢍch
thưꢊc
(DOCU)
hợp lꢦ
Phꢡn cꢓng
Ràng buộc
Phꢖn
mꢌm Phꢖn
mꢌm Phꢖn
chiꢕm
thời khoꢑng 70% khoꢑng 85% khoꢑng 95%
gian thực thi thời gian thời gian thời gian
sꢴn cꢥ mà thực thi sꢴn thực thi sꢴn thực thi sꢴn
mꢌm Phꢖn
mꢌm
hiệu
thời
năng
gian
chiꢕm dưꢊi chiꢕm
50%
chiꢕm
thực (TIME)
−
−
−
phꢖn
cung cꢋp
cứng cꢥ mà phꢖn cꢥ mà phꢖn cꢥ mà phꢖn
cứng
cꢋp
cung cứng
cꢋp
cung cứng
cꢋp
cung
Ràng buộc
bộ nhꢊ chꢍnh
(STOR)
Phꢖn mꢌm sử Phꢖn mꢌm sử Phꢖn mꢌm sử Phꢖn mꢌm sử
dụng dưꢊi dụng khoꢑng dụng khoꢑng dụng khoꢑng
50% bộ nhꢊ 70% bộ nhꢊ 85% bộ nhꢊ 95% bộ nhꢊ
sꢴn cꢥ sꢴn cꢥ sꢴn cꢥ sꢴn cꢥ
Tꢏi thiểu mꢟi Cứ tuꢖn Cứ tuꢖn Cứ
tháng phꢖn phꢖn cứng cꢥ phꢖn cứng cꢥ phꢖn cứng cꢥ
cứng cꢥ thay thay đꢔi nhꢮ thay đꢔi nhꢮ thay đꢔi nhꢮ
đꢔi nhꢮ và và sau
−
−
Tꢍnh
động
biꢕn
cꢎa
2
1
2 ngày
phꢖn
cứng
(PVOL)
6
và sau
2
và sau 2 tuꢖn
−
tꢏi thiểu 12 tháng cꢥ thay tháng cꢥ thay cꢥ thay đꢔi
tháng cꢥ thay đꢔi lꢊn
đꢔi lꢊn
đꢔi lꢊn
lꢊn
Nhân lꢚc
Khꢑ
phân
năng 15% thành 35% thành 55% thành 75% thành 90% thành
tꢍch viên trong viên trong viên trong viên trong viên trong
(ACAP)
đội dự án cꢥ đội dự án cꢥ đội dự án cꢥ đội dự án cꢥ đội dự án cꢥ
kinh nghiệm kinh nghiệm kinh nghiệm kinh nghiệm kinh nghiệm
phân tꢍch và phân tꢍch và phân tꢍch và phân tꢍch và phân tꢍch và
−
thiꢕt kꢕ
Khꢑ năng lꢓp 15% thành 35% thành 55% thành 75% thành 90% thành
trꢠnh (PCAP) viên trong viên trong viên trong viên trong viên trong
thiꢕt kꢕ
thiꢕt kꢕ
thiꢕt kꢕ
thiꢕt kꢕ
đội dự án cꢥ đội dự án cꢥ đội dự án cꢥ đội dự án cꢥ đội dự án cꢥ
kinh nghiệm kinh nghiệm kinh nghiệm kinh nghiệm kinh nghiệm
−
−
lꢓp trꢠnh
Sự thay thꢕ Thay
nhân lực nhân
lꢓp trꢠnh
48% Thay
lực nhân
lꢓp trꢠnh
24% Thay
lực nhân
lꢓp trꢠnh
12% Thay
lực nhân
lꢓp trꢠnh
6% Thay
lực nhân
3%
lực
trong dự án trong đội dự trong đội dự trong đội dự trong đội dự trong đội dự
Chương 2: Bꢎi toꢁn ưꢏc lưꢐng nꢛ lꢒc phꢁt triꢃn phꢄn mꢅm
6
(PCON)
án mꢟi năm
án mꢟi năm
án mꢟi năm
án mꢟi năm
án mꢟi năm
Kinh nghiệm Kinh nghiệm Kinh nghiệm Kinh nghiệm Kinh nghiệm Kinh nghiệm
xây
ứng
dựng phát
dụng ứng
triển phát
dụng ứng
triển phát
dụng ứng
triển phát
dụng ứng
triển phát
dụng ứng
triển
dụng
(APEX)
tương tự cꢎa tương tự cꢎa tương tự cꢎa tương tự cꢎa tương tự cꢎa
đội dự án đội dự án đội dự án đội dự án đội dự án
−
dưꢊi 2 tháng
khoꢑng
tháng
6
khoꢑng
năm
1
khoꢑng
năm
3
khoꢑng
năm
6
Kinh nghiệm Kinh nghiệm Kinh nghiệm Kinh nghiệm Kinh nghiệm Kinh nghiệm
sử dụng phꢖn sử dụng phꢖn sử dụng phꢖn sử dụng phꢖn sử dụng phꢖn sử dụng phꢖn
cứng (PLEX) cứng mà dự cứng mà dự cứng mà dự cứng mà dự cứng mà dự
án yêu cꢖu án yêu cꢖu án yêu cꢖu án yêu cꢖu án yêu cꢖu
−
−
dưꢊi 2 tháng
khoꢑng
tháng
6
khoꢑng
năm
1
khoꢑng
năm
3
khoꢑng
năm
6
Kinh nghiệm Kinh nghiệm Kinh nghiệm Kinh nghiệm Kinh nghiệm Kinh nghiệm
vꢌ ngôn ngꢗ sử dụng ngôn sử dụng ngôn sử dụng ngôn sử dụng ngôn sử dụng ngôn
lꢓp trꢠnh và ngꢗ lꢓp trꢠnh ngꢗ lꢓp trꢠnh ngꢗ lꢓp trꢠnh ngꢗ lꢓp trꢠnh ngꢗ lꢓp trꢠnh
công
(LTEX)
cụ mà dự án yêu mà dự án yêu mà dự án yêu mà dự án yêu mà dự án yêu
cꢖu dưꢊi 2 cꢖu khoꢑng 6 cꢖu khoꢑng 1 cꢖu khoꢑng 3 cꢖu khoꢑng 6
tháng
tháng
năm
năm
năm
Dꢚ ꢗn
Sử dụng các Chꢣ sử dụng Sử
công cụ phꢖn các công cụ thêm
dụng Sử
các thêm
dụng Sử
các thêm
dụng Sử dụng các
các công cụ tꢍch
mꢌm cꢥ sꢴn sử đꢔi, viꢕt công cụ tꢍch công cụ tꢍch công cụ tꢍch hợp quy mô
(TOOL)
mã và gꢲ lꢟi
hợp quy mô hợp quy mô hợp quy mô lꢊn,
nhꢮ, công cụ trung bꢠnh, trung bꢠnh, nhiꢌu
vꢊi
quy
hꢟ
backend,
trợ công cụ quꢑn công cụ quꢑn trꢠnh, phương
lꢦ vꢧng đời lꢦ vꢧng đời pháp, tái sử
−
frontend đơn sꢑn phꢢm cơ sꢑn phꢢm bꢌn dụng, công
giꢑn
bꢑn
vꢗng, đa tꢍnh cụ quꢑn lꢦ
năng
vꢧng đời sꢑn
phꢢm
cực,
tꢍch
bꢌn
vꢗng, đa tꢍnh
năng
Sự cộng tác Cộng
để phát triển toàn cꢖu
dự án ꢤ nhiꢌu
tác Cộng
tác Cộng
tác Cộng
tác Cộng
tác Cộng
tác
nhiꢌu công ty nhiꢌu công ty trong cꢪng trong cꢪng trong chꢍnh
và nhiꢌu hoꢡc nhiꢌu khu vực tꢧa nhà đội phát triển
thành phꢏ thành phꢏ thành phꢏ
vị trꢍ khác
ꢤ
nơi làm
nhau (SITE)
việc
Yêu cꢖu đꢏi Chꢣ đạt 75% Chꢣ đạt 85% Đạt 100% tꢏc Đạt 130% tꢏc Đạt 160% tꢏc
vꢊi lịch trꢠnh tꢏc độ so vꢊi tꢏc độ so vꢊi độ so vꢊi độ so vꢊi độ so vꢊi
phát triển dự mức yêu cꢖu mức yêu cꢖu mức yêu cꢖu mức yêu cꢖu mức yêu cꢖu
−
án (SCED)
cꢎa lịch trꢠnh cꢎa lịch trꢠnh cꢎa lịch trꢠnh cꢎa lịch trꢠnh cꢎa lịch trꢠnh
phát triển phát triển phát triển phát triển phát triển
Bꢙng 2. Thang điꢛm cꢗc yꢇu tố hiꢐu chꢮnh chi phꢒ mô hꢝnh COCOMO II
Cꢗc yꢇu tố Ký hiꢐu Rất thấp Thấp Bꢝnh thưꢫng Cao Rất cao Cꢚc kỳ cao
RELY
DATA
CPLX
RUSE
DOCU
EM1
EM2
EM3
EM4
EM5
0.82
0.92
0.90
0.87
0.95
0.91
1.00
1.00
1.00
1.00
1.00
1.10
1.14
1.17
1.07
1.11
1.26
1.28
1.34
1.15
1.23
−
−
−
0.73
−
1.74
1.24
0.81
−
Chương 2: Bꢎi toꢁn ưꢏc lưꢐng nꢛ lꢒc phꢁt triꢃn phꢄn mꢅm
7
TIME
STOR
PVOL
ACAP
PCAP
PCON
APEX
PLEX
LTEX
TOOL
SITE
EM6
EM7
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.11
1.05
1.15
0.85
0.88
0.90
0.88
0.91
0.91
0.90
0.93
1.00
1.29
1.17
1.30
0.71
0.76
0.81
0.81
0.85
0.84
0.78
0.86
1.00
1.63
1.46
−
−
−
−
EM8
0.87
1.19
1.15
1.12
1.10
1.09
1.09
1.09
1.09
1.14
−
−
−
EM9
1.42
1.34
1.29
1.22
1.19
1.20
1.17
1.22
1.43
EM10
EM11
EM12
EM13
EM14
EM15
EM16
EM17
−
−
−
−
−
−
0.80
−
SCED
3. Tꢍnh điểm các nhân tꢏ ꢑnh hưꢤng đꢕn quy mô cꢎa dự án: SF
Cꢥ năm nhân tꢏ chꢍnh ꢑnh hưꢤng đꢕn quy mô dự án:
• Tꢍnh tương tự vꢊi dự án đã phát triển (PREC)
• Tꢍnh linh hoạt trong phát triển (FLEX)
• Mức độ tꢣ mꢣ trong thiꢕt kꢕ và kꢕ hoạch dự trꢪ rꢎi ro (RESL)
• Tꢍnh gꢳn kꢕt trong đội ngꢨ phát triển (TEAM)
• Năng lực sꢑn xuꢋt cꢎa doanh nghiệp phꢖm mꢌm (PMAT)
là tꢍch điểm sꢏ cꢎa cꢑ năm nhân tꢏ này.
Bꢙng 3. Thang điꢛm cꢗc nhân tố ꢙnh hưꢪng đꢇn quy mô dꢚ ꢗn
Nhân tố Ký hiꢐu Rất thấp Thấp Bꢝnh thưꢫng Cao Rất cao Đꢬc biꢐt cao
PREC
FLEX
RESL
TEAM
PMAT
SF1
SF2
SF3
SF4
SF5
6.20
5.07
7.07
5.48
7.80
4.96
4.05
5.65
4.38
6.24
3.72
3.04
4.24
3.29
4.68
2.48
2.03
2.83
2.19
3.12
1.24
1.01
1.41
1.10
1.56
0.00
0.00
0.00
0.00
0.00
4. Tꢍnh toán nꢟ lực và thời gian hoàn thành cꢎa dự án:
- Nꢟ lực được tꢍnh theo đơn vị ngưꢫi-thꢗng theo công thức sau:
Eff = A SizeB + 0.01 SF EM
Thời gian phát triển được tꢍnh theo đơn vị thꢗng theo công thức sau:
-
Chương 2: Bꢎi toꢁn ưꢏc lưꢐng nꢛ lꢒc phꢁt triꢃn phꢄn mꢅm
TDEV = C EffD + 0.002 SF
8
trong đꢥ: A = 2.94, B = 0.91, C = 3.67 và D = 0.28
- Tꢒ đꢥ tꢍnh được sꢏ người trung trꢠnh mà đội phát triển cꢖn:
NumPeople = Eff / TDEV
Mꢡc dꢪ COCOMO II là một mô hꢠnh ưꢊc lượng nꢟ lực hiệu quꢑ nhưng nhꢗng hệ sꢏ
trong công thức ưꢊc lượng Eff và TDEV được trꢠnh bày ꢤ trên được suy ra tꢒ một sꢏ dự
án sử dụng phương pháp hꢐi quy nên chúng vꢯn chưa được tꢏi ưu. Do đꢥ, đꢅ tꢎi nꢎy
hưꢏng đꢌn sꢜ dꢀng cꢁc thuꢓt toꢁn lꢈy cꢘm hꢂng từ tꢒ nhiên đꢃ tꢍi ưu bꢍn tham sꢍ A, B,
C vꢎ D trong phương trꢆnh ưꢏc lưꢐng nꢎy.
2.3.2. Phương pháp điểm chức năng
Các bưꢊc ưꢊc lượng nꢟ lực sử dụng mô hꢠnh điểm chức năng như sau:
1. Xác định sꢏ lượng điểm chức năng thô: UFPs
UFP = tꢝng điꢃm sꢍ cꢊa đꢞ phꢂc tꢟp
2. Đánh giá độ phức tạp cꢎa kỹ thuꢓt cꢎa hệ thꢏng: TCF
Tꢍnh độ phức tạp kỹ thuꢓt theo công thức:
TCF = 0.65 + 0.01 (tꢝng điꢃm cꢊa 14 yꢌu tꢍ kꢠ thuꢓt)
3. Tꢍnh tꢔng điểm chức năng cuꢏi cꢪng:
FPs = UFPs TCF
2.3.3. Kꢕt hợp COCOMO II và điểm chức năng để ưꢊc lượng nꢟ lực
2.4. Phương phꢗp ước lượng nꢩ lꢚc cho quy trꢝnh phꢡn mꢑm Agile
2.4.1. Quy trꢠnh phát triển phꢖn mꢌm Agile
2.4.1.1. Các nguyên tꢉc cꢊa quy trꢆnh Agile
2.4.1.2. Các đꢋc trưng cꢊa quy trꢆnh Agile
2.4.2. Phương pháp ưꢊc lượng nꢟ lực phát triển phꢖn mꢌm sử dụng quy trꢠnh Agile
Trong nghiên cứu này chúng tôi sử dụng các nhân tꢏ cꢎa một mô hꢠnh ưꢊc lượng nꢟ
lực và thời gian phát triển cho một dự án phꢖn mꢌm sử dụng quy trꢠnh Agile được đꢌ xuꢋt
bꢤi Zia và các cộng sự. Tuy nhiên pháp sử dụng hꢐi quy tuyꢕn tꢍnh để ưꢊc lượng nꢟ lực
tꢒ các yꢕu tꢏ ꢑnh hưꢤng đꢕn thời gian sꢑn xuꢋt phꢖn mꢌm trong mô hꢠnh này vꢯn chưa
cho ra kꢕt quꢑ tꢏi ưu. Vꢠ vꢓy, nghiên cứu này chúng tôi sꢱ đꢌ xuꢋt một công thức để ưꢊc
lượng nꢟ lực phát triển phꢖn mꢌm sử dụng quy trꢠnh Agile dựa trên các yꢕu tꢏ đꢖu vào.
Nhꢗng nội dung này sꢱ được trꢠnh bày trong chương 3. Trong phꢖn này chúng tôi giꢊi
thiệu các yꢕu tꢏ ꢑnh hưꢤng và các bưꢊc thực hiện ưꢊc lượng sử dụng mô hꢠnh ưꢊc lượng
nꢟ lực được Zia đꢌ xuꢋt.
Chương 2: Bꢎi toꢁn ưꢏc lưꢐng nꢛ lꢒc phꢁt triꢃn phꢄn mꢅm
2.4.2.1. Cꢁc yꢌu tꢍ đꢄu vꢎo cꢊa mô hꢆnh ưꢏc lưꢐng
9
Để phục vụ cho quá trꢠnh ưꢊc lượng nꢟ lực cho một sꢑn phꢢm phꢖn mꢌm phát triển
theo mô hꢠnh Agile cꢖn phꢑi cꢥ các yꢕu tꢏ sau:
- Các user stories cꢎa dự án.
- Vꢊi mꢟi user story cꢖn phꢑi xác định điểm chức năng cꢎa nꢥ. Để xác định điểm chức
năng cꢎa mꢟi user story cꢖn phꢑi xác định được kꢍch thưꢊc cꢎa user story và độ phức
tạp cꢎa nꢥ.
- Xác định vꢓn tꢏc thực hiện cꢎa nhꢥm phát triển sꢑn phꢢm:
o Xác định vꢓn tꢏc cơ sꢤ cꢎa nhꢥm phát triển bằng cách tꢍnh trung bꢠnh cꢥ bao
nhiêu product backlog (hiểu đơn giꢑn là chức năng được yêu cꢖu hay user story)
đã hoàn thành trong một khoꢑng thời gian xác định (Sprint) cho các dự án
tương tự trưꢊc đꢥ. Nꢕu chưa cꢥ vꢓn tꢏc này thꢠ lꢋy giá trị trung bꢠnh cꢎa tꢋt cꢑ
dự án mà cách thành viên trong nhꢥm đã phát triển.
o Xác định tꢍnh chꢋt các nhân tꢏ thường xuyên xuꢋt hiện làm ꢑnh hưꢤng đꢕn tꢏc
độ phát triển cꢎa toàn nhꢥm phát triển: thành phꢖn cꢎa nhꢥm phát triển (đã chọn
đúng người vꢊi các kỹ năng phꢪ hợp cꢖn cho dự án hay chưa), quy trꢠnh phát
triển sꢑn phꢢm, các nhân tꢏ ꢑnh hưꢤng đꢕn môi trường làm việc cꢎa nhꢥm, tꢍnh
gꢳn kꢕt cꢎa nhꢥm phát triển.
o Xác định tꢍnh chꢋt các nhân tꢏ ꢑnh hưꢤng đꢕn năng suꢋt cꢎa mꢟi thành viên
trong nhꢥm phát triển: thay đꢔi thành viên trong nhꢥm (thêm, bꢊt thành viên,
thay đꢔi vai trꢧ và trách nhiệm cꢎa các thành viên), yêu cꢖu phꢑi nghiên cứu và
sử dụng công cụ mꢊi cho dự án, các lꢟi trong phꢖn mꢌm cꢎa bên thứ ba, các
thành viên trong nhꢥm phꢑi đꢑm nhꢓn nhiꢌu dự án cꢪng lúc, các vꢋn đꢌ cá nhân
cꢎa các thành viên trong nhꢥm, phꢑn hꢐi tꢒ khách hàng cho các thꢳc mꢳc cꢎa
nhꢥm phát triển, tꢍnh nhꢓp nhằng trong yêu cꢖu cꢎa dự án, sự thay đꢔi trong đꢡc
tꢑ yêu cꢖu cꢎa sꢑn phꢢm, thay đꢔi nơi làm việc cꢎa nhꢥm phát triển.
o Xác định vꢓn tꢏc cuꢏi cꢪng cꢎa nhꢥm phát triển dưꢊi sự ꢑnh hưꢤng cꢎa các
nhân tꢏ trên.
- Xác định lương trung bꢠnh hàng tháng cho toàn nhꢥm phát triển
- Xác định các chi phꢍ bên ngoài lương cꢎa nhꢥm phát triển. Tꢍnh tꢣ lệ cꢎa nꢥ so vꢊi
chi phꢍ dành cho trꢑ lương hàng tháng cho nhꢥm phát triển
- Tꢍnh toán thời gian và chi phꢍ cho toàn dự án
o Dự đoán thời gian phát triển tꢒ vꢓn tꢏc và story point (đơn vị ngày): T
o Xác định mức độ tin cꢓy đꢏi vꢊi các ưꢊc lượng cꢎa các nhân tꢏ theo đơn vị
phꢖn trăm: CL
o Tꢒ đꢥ min và max cho thời gian phát triển được tꢍnh như sau:
Chương 2: Bꢎi toꢁn ưꢏc lưꢐng nꢛ lꢒc phꢁt triꢃn phꢄn mꢅm
10
(
)
100 − 퐶퐿
100
푚푖푛 = [1 −
푚푎푥 = [1 +
] × 푇
(
)
100 − 퐶퐿
100
] × 푇
o Xác định sꢏ ngày làm việc trung bꢠnh trong một tháng cꢎa nhꢥm phát triển để
quy đꢔi thời gian sang tháng. Tꢒ đꢥ tꢍnh chi phꢍ cho toàn dự án dựa trên thời
gian phát triển, lương trung bꢠnh hàng tháng và hệ sꢏ tꢒ lương và các nhân tꢏ
ngoài lương theo công thức:
Cost = hꢀ sꢁ Lương hàng thꢂng Sꢁ thꢂng
o Xác định min và max cho chi phꢍ theo công thức sau:
(
)
100 − 퐶퐿
100
푚푖푛 = [1 −
푚푎푥 = [1 +
] × 퐶표푠푡
(
)
100 − 퐶퐿
] × 퐶표푠푡
100
hꢙ sꢍ = 1 + tꢡ trọng cꢁc yꢌu tꢍ ngoꢎi lương.
2.4.2.2. Xác đꢑnh story point cho dꢒ ꢁn
Bꢙng 4. Điê
̉
Giꢗ trꢯ
-
-
-
-
-
-
-
-
-
-
-
Kꢍch thưꢊc story cực kꢵ lꢊn
Quá lꢊn để ưꢊc lượng chꢍnh xác
Cꢥ thể cꢖn đꢕn vài tháng để hoàn thành
Cꢖn phꢑi chia nhꢮ thành các story nhꢮ hơn
Cꢥ thể hꢠnh thành cꢑ dự án mꢊi tꢒ story này
Kꢍch thưꢊc story rꢋt lꢊn
Yêu cꢖu phát triển trong thời gian dài, cꢥ thể hơn một tuꢖn làm việc
Nên chia thành các story nhꢮ hơn
Kꢍch thưꢊc story vꢒa phꢑi
Cꢖn tꢒ 2 đꢕn 5 ngày để hoàn thành
Cꢖn 1 đꢕn 2 ngày để hoàn thành
5
4
3
2
1
-
-
Kꢍch thưꢊc story nhꢮ
Chꢣ cꢖn một vài giờ để hoàn thành
- Xác định điểm độ phức tạp cho mꢟi user story.
- Xác định story point cꢎa mꢟi user story theo công thức:
ES = Đꢃ phꢄc tꢅp Kꢆch thưꢇc
Để tꢍnh tꢔng điểm story point SP cꢎa cꢑ dự án thꢠ lꢋy tꢔng điểm cꢎa tꢋt cꢑ story cꢖn
phꢑi thực hiện cho toàn dự án.
Chương 2: Bꢎi toꢁn ưꢏc lưꢐng nꢛ lꢒc phꢁt triꢃn phꢄn mꢅm
11
2.4.2.3. Xác đꢑnh vꢓn tꢍc cꢊa nhꢔm phꢁt triꢃn
Vꢓn tꢏc cuꢏi cꢪng cꢎa nhꢥm phát triển được tꢍnh toán dựa vào công thức (16).
푉 = 푉퐹푅×퐷퐹
(16)
푖
Vꢊi FR là giá trị hệ sꢏ giꢑm tꢏc thường xuyên, DF là giá trị độ lꢊn cꢎa yꢕu tꢏ biꢕn động.
2.4.2.4. Xác đꢑnh thꢕi gian vꢎ chi phꢖ dꢒ ꢁn
Tꢒ hai yꢕu tꢏ đꢖu vào là story point cꢎa toàn bộ dự án và vꢓn tꢏc cꢎa đội ngꢨ phát
triển, Zia và các cộng sự đã sử dụng mô hꢠnh hꢐi quy tuyꢕn tꢍnh cꢪng vꢊi nhꢗng dꢗ liệu
cꢎa các dự án lịch sử để tꢍnh toán ra thời gian phát triển T cꢎa toàn bộ dự án. Sau khi đã
cꢥ được thời gian chúng ta cꢥ thể xác định được cꢓn dưꢊi và cꢓn trên cꢖn thiꢕt cho dự án.
Cꢨng như cꢥ thể tꢍnh toán được chi phꢍ phát triển áp dụng các công thức và các yꢕu tꢏ đã
trꢠnh bày trong phꢖn 2.4.2.1.
Chương 3: Cꢎi đꢋt, thꢜ nghiꢙm vꢎ đꢁnh giꢁ kꢌt quꢘ
12
Chương 3. CÀI ĐẶT, THỬ NGHIỆM VÀ ĐꢀNH GIꢀ KꢅT QUꢃ
Chương này trꢠnh bày các kꢕt quꢑ phân tꢍch và thiꢕt kꢕ chương trꢠnh ưꢊc lượng nꢟ lực
phát triển phꢖn mꢌm, cꢨng như ứng dụng cꢎa các thuꢓt toán tꢏi ưu đã trꢠnh bày ꢤ chương
1 vào các mô hꢠnh ưꢊc lượng nꢟ lực phꢖn mꢌm cụ thể bao gꢐm các mô hꢠnh truyꢌn thꢏng
và một phương trꢠnh ưꢊc lượng nꢟ lực mꢊi do chúng tôi đꢌ xuꢋt cho các dự án sử dụng
quy trꢠnh Agile. Các kꢕt quꢑ thu được minh chứng cho tꢍnh hiệu quꢑ cꢎa vệc áp dụng các
thuꢓt toán tꢏi ưu để nâng cao tꢍnh chꢍnh xác cꢎa kꢕt quꢑ ưꢊc lượng. Trong chương này
chúng tôi cꢨng trꢠnh bày vꢌ các bưꢊc phân tꢍch và thiꢕt kꢕ cho công cụ phꢖn mꢌm mà
chúng tôi đã xây dựng.
3.1. Đꢬt vấn đꢑ
Trong các mô hꢠnh ưꢊc lượng nꢟ lực truyꢌn thꢏng thꢠ các mô hꢠnh dựa trên phương
trꢠnh toán học nꢟi lên như một trong nhꢗng phương pháp ưꢊc lượng hiệu quꢑ dựa trên tꢓp
dꢗ liệu cꢎa các dự án lịch sử và COCOMO II là một trong nhꢗng mô hꢠnh như vꢓy. Tuy
nhiên mô hꢠnh này vꢯn cꢥ các yꢕu điểm là nꢥ dựa trên bꢏn hằng sꢏ cꢏ định A= 2.94,
B = 0.91, C = 3.67 và D = 0.28 cho các công thức ưꢊc lượng. Các hằng sꢏ này được suy
luꢓn ra tꢒ một tꢓp cꢎa 93 dự án đã triển khai cꢎa NASA và không thay đꢔi khi áp dụng
vào các dự án mꢊi. Đây là một nhược điểm lꢊn cꢎa mô hꢠnh này. Trong nghiên cứu này
chúng tôi hưꢊng đꢕn việc cꢑi tiꢕn mô hꢠnh này bằng cách sử dụng một thuꢓt toán kꢕt hợp
giꢗa ABC và dạy học để tꢏi ưu các tham sꢏ cꢎa mô hꢠnh trên tꢓp dꢗ liệu dự án lịch sử.
Tꢋt nhiên quy trꢠnh tꢏi ưu để tꢠm ra các tham sꢏ này cꢥ thể được thực hiện liên tục khi tꢓp
dꢗ liệu lịch sử bị thay đꢔi bằng cách thêm vào nhiꢌu dự án mꢊi. Khi đꢥ chꢣ cꢖn thực hiện
thuꢓt toán thꢠ nꢥ sꢱ cho ra một bộ giá trị tham sꢏ tꢏi ưu mꢊi.
Để ứng phꢥ vꢊi tꢍnh hay thay đꢔi trong yêu cꢖu phꢖn mꢌm, các phương pháp phát triển
phꢖn mꢌm linh hoạt Agile được sử dụng vꢠ nhꢗng ưu điểm vượt trội cꢎa nꢥ như tꢍnh lꢡp
và gia tăng, thời gian chuyển giao nhanh, giꢑm thiểu rꢎi ro, và cho phꢫp các tꢔ chức thꢍch
ứng nhanh vꢊi nhꢗng thay đꢔi yêu cꢖu trong quá trꢠnh phát triển. Tꢒ đꢥ làm phát sinh vꢋn
đꢌ làm thꢕ nào để ưꢊc lượng nꢟ lực cho các dự án sử dụng quy trꢠnh phát triển mꢊi này.
Sꢏ dꢧng mã nguꢐn trong phꢖn mꢌm là nhân tꢏ chꢍnh được sử dụng cho các mô hꢠnh
truyꢌn thꢏng nhưng trong Agile thꢠ lại sử dụng các user story làm nhân tꢏ chꢍnh. Bꢤi vꢓy,
điểm chức năng story point trꢤ thành một phꢫp đo để xác định kꢍch thưꢊc cꢎa dự án cꢨng
như độ khꢥ mꢟi mꢟi chức năng trong đꢡc tꢑ yêu cꢖu. Ngoài story point thꢠ vꢓn tꢏc cꢎa
nhꢥm phát triển dự án cꢨng là một yꢕu tꢏ ꢑnh hưꢤng đꢕn nꢟ lực. Dựa vào story point và
vꢓn tꢏc chúng ta cꢥ thể tạo một công thức để ưꢊc lượng nꢟ lực cho một dự án phꢖn mꢌm
sử dụng quy trꢠnh Agile. Nghiên cứu này tꢓp trung vào việc đꢌ xuꢋt một công thức ưꢊc
lượng như vꢓy và các tham sꢏ trong công thức sꢱ được tꢏi ưu bằng cách sử dụng một
thuꢓt toán lai giꢗa tꢏi ưu bꢖy đàn và đàn ong nhân tạo. Hiệu quꢑ cꢎa các phương pháp đꢌ
xuꢋt sꢱ được trꢠnh bày trong chương này.
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Báo cáo tóm tắt Đề tài Nghiên cứu một số thuật toán lấy cảm hứng từ tự nhiên và ứng dụng vào bài toán tối ưu nỗ lực, chi phí phát triển phần mềm", để 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:
bao_cao_tom_tat_de_tai_nghien_cuu_mot_so_thuat_toan_lay_cam.pdf

