Bài giảng Công nghệ phần mềm - Chương 2: Mô hình phát triển - Nguyễn Thanh Bình
Mô hình phát triꢀn
(2)
Nguyꢀn Thanh Bình
Khoa Công nghꢁꢂThôngꢂtin
Trưꢃng ðꢄi hꢅc Bách khoa
ðꢄi hꢅc ðà Nꢆng
Nꢁi dung
ꢀ
ꢀ
Các hoꢂt ñꢁng phát triꢀn phꢃn mꢄm
Các mô hình phát triꢀn phꢃn mꢄm
2
1
Các hoꢂt ñꢁng phát triꢀn
phꢃn mꢄm
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
Phân tích tính khꢅ thi
Phân tích vàꢆñꢇc tꢅ yêu cꢃu
Thiꢈt kꢈ
Mã hóa
Kiꢀm thꢉ
Bꢅo trì
3
Các hoꢂt ñꢁng phát triꢀn
phꢃn mꢄm
ꢀ
Phân tích tính khꢅ thi
ꢁ
xác ñꢊnh vꢋn ñꢄ cꢃn giꢅi quyꢈt,
ꢁ
xem xét các giꢅi pháp và kĩ thuꢌt khác nhau
• thuꢌn lꢍi
• bꢋt lꢍi
ꢁ
ꢁ
ñánh giá vꢄ thꢎi gian, giá thành, nguꢏn tài
nguyên cꢃn thiꢈt
Sꢅn phꢐm: tài liꢑu phân tích
4
2
Các hoꢂt ñꢁng phát triꢀn
phꢃn mꢄm
ꢀ
Phân tích vàꢆñꢇc tꢅ yêu cꢃu (1)
ꢁ
xác ñꢊnh nhu cꢃu cꢒa khách hàng/ngưꢎi sꢉ
dꢓng
• xác ñꢊnh bài toán, chꢔ không phꢅi là giꢅi pháp
ꢁ
khóꢆkhăn
• khách hàng không biꢈt rꢕ cái hꢖ cꢃn
• khách hàng không trình bày rꢕ cái hꢖ muꢗn
• các thay ñꢘi
ꢁ
Sꢅn phꢐm: tài liꢑu ñꢇc tꢅ yêu cꢃu
5
Các hoꢂt ñꢁng phát triꢀn
phꢃn mꢄm
ꢀ
Phân tích vàꢆñꢇc tꢅ yêu cꢃu (2)
ꢁ
các bưꢙc
• khꢅo sát, tꢘng hꢍp yêu cꢃu
• phân tích yêu cꢃu
• ñꢇc tꢅ yêu cꢃu
• hꢍp thꢔc hóa yêu cꢃu
6
3
Các hoꢂt ñꢁng phát triꢀn
phꢃn mꢄm
ꢀ
Phân tích vàꢆñꢇc tꢅ yêu cꢃu (3)
Tꢇng hꢈp và
phân tích yêu cꢉu
ðꢊc tꢋ yêu cꢉu
Hꢈp thꢌc hóa
yêu cꢉu
Mô hình hꢁ thꢍng
Yêu cꢉu hꢁ thꢍng
cꢎa ngưꢃi sꢏ dꢐng
Tài liꢁu ñꢊc tꢋ
yêu cꢉu
7
Các hoꢂt ñꢁng phát triꢀn
phꢃn mꢄm
ꢀ
Thiꢈt kꢈ (1)
ꢁ
chuyꢀn tꢚ tài liꢑu ñꢇc tꢅ yêu cꢃu thành cꢋu trúc lô-gíc có
thꢀ cài ñꢇt ñưꢍc
ꢁ
giꢅi pháp cho vꢋn ñꢄꢆñãꢆñưꢍc ñꢇc tꢅ
ꢁ
thiꢈt kꢈ kiꢈn trúc
•
các moñun và giao diꢑn cꢒa các mô-ñun
ꢁ
ꢁ
thiꢈt kꢈ giao diꢑn
thiꢈt kꢈ các mô-ñun
•
cꢋu trúc dꢛ liꢑu
•
thuꢌt toán
ꢁ
Sꢅn phꢐm: tài liꢑu thiꢈt kꢈ
8
4
Các hoꢂt ñꢁng phát triꢀn
phꢃn mꢄm
ꢀ
Thiꢈt kꢈ (2)
Thiꢑt kꢑ
kiꢑn trúc
Thiꢑt kꢑ
giao diꢁn
Thiꢑt kꢑꢂ
mô-ñun
Thiꢑt kꢑ
cꢒu trúc dꢓ liꢁu
ñꢊc tꢋ
kiꢑn trúc
Thiꢑt kꢑ
thuꢔt toán
ñꢊc tꢋ
giao diꢁn
ñꢊc tꢋꢂ
mô-ñun
ñꢊc tꢋ
cꢒu trúc dꢓ liꢁu
ñꢊc tꢋ
thuꢔt toán
9
Các hoꢂt ñꢁng phát triꢀn
phꢃn mꢄm
ꢀ
Thiꢈt kꢈ (3)
ꢁ
các phương pháp thiꢈt kꢈ
• hưꢙng chꢔc năng
• hưꢙng ñꢗi tưꢍng
10
5
Các hoꢂt ñꢁng phát triꢀn
phꢃn mꢄm
ꢀ
Mã hóa và gꢜ rꢗi
ꢁ
mã hóa
•
cài ñꢇt các thiꢈt kꢈ bꢝng ngôn ngꢛ lꢌp trình
•
không ñơn thuꢃn chꢞ là lꢌp trình
•
•
•
•
•
•
viꢈt tài liꢑu
insertions/invariants
chuꢐn lꢌp trình (coding standards)
lꢌp trình theo cꢇp (pair programming)
công cꢓ
quꢅn lý phiên bꢅn
ꢁ
ꢁ
gꢜ rꢗi
•
phát hiꢑn các lꢟi trong quá trình lꢌp trình
Sꢅn phꢐm: chương trình
11
Các hoꢂt ñꢁng phát triꢀn
phꢃn mꢄm
ꢀ
Kiꢀm thꢉ (1)
ꢁ
phát hiꢑn lꢟi trong chương trình
ꢁ
lꢌp kꢈ hoꢂch thꢠc hiꢑn kiꢀm thꢉ
• tꢂo các trưꢎng hꢍp kiꢀm thꢉ
• tiêu chuꢐn kiꢀm thꢉ
• nguꢏn tài nguyên kiꢀm thꢉ
ꢁ
ꢁ
mã nguꢏn ñưꢍc kiꢀm thꢉ theo tài liꢑu thiꢈt kꢈ
Sꢅn phꢐm: báo cáo kiꢀm thꢉ
12
6
Các hoꢂt ñꢁng phát triꢀn
phꢃn mꢄm
ꢀ
Kiꢀm thꢉ (2)
ꢁ
các hoꢂt ñꢁng kiꢀm thꢉ
• kiꢀm thꢉꢆñơnꢆvꢊ
• kiꢀm thꢉ tích hꢍp
• kiꢀm thꢉ hꢑ thꢗng
• kiꢀm thꢉ chꢋp nhꢌn
13
Các hoꢂt ñꢁng phát triꢀn
phꢃn mꢄm
ꢀ
Kiꢀm thꢉ (3)
ꢁ
các phương pháp kiꢀm thꢉ
• kiꢀm thꢉ tĩnh
• kiꢀm thꢉꢆñꢁng
• kiꢀm thꢉ hꢁp ñen
• kiꢀm thꢉ hꢁp trꢡng
14
7
Các hoꢂt ñꢁng phát triꢀn
phꢃn mꢄm
ꢀ
Bꢅo trì
ꢁ
ꢁ
ꢁ
ꢁ
ꢁ
bꢅo ñꢅm chương trình vꢌn hành tꢗt
cài ñꢇt các thay ñꢘi
cài ñꢇt các yêu cꢃu mꢙi
xꢉ lý các lꢟi khi vꢌn hành
Sꢅn phꢐm: chương trình
15
Các mô hình phát triꢀn phꢃn
mꢄm
ꢀ
Sꢠ tꢘ chꢔc các hoꢂt ñꢁng phát triꢀn phꢃn mꢄm
ꢀ
Mô hình phát triꢀn phꢃn mꢄm hay tiꢈn trình phát triꢀn
phꢃn mꢄm
ꢀ
Có nhiꢄu mô hình phát triꢀn phꢃn mꢄm
ꢁ
ꢁ
ꢁ
ꢁ
ꢁ
ꢁ
mô hình thác nưꢙc
mô hình nguyên mꢢu
mô hình V
mô hình tiꢈn hóa
mô hình xoꢡn ꢗc
mô hình hꢍp nhꢋt
16
8
Mô hình thác nưꢙc
(waterfall model)
Phân tích tính
khꢅ thi
Phân tích vàꢆ
ñꢇc tꢅ yêu cꢃu
Thiꢈt kꢈ
Mã hóa và
kiꢀm thꢉ
Cài ñꢇt và bꢅo
trì
17
Mô hình thác nưꢙc
ꢀ
Ưu ñiꢀm
ꢁ
dꢠ án nhꢕ
yêu cꢃu xác ñꢊnh
ꢁ
ꢀ
Nhưꢍc ñiꢀm
ꢁ
ꢁ
ꢁ
ꢁ
dꢠ án lꢙn
thꢎi gian
sꢉa lꢟi
yêu cꢃu thay ñꢘi
18
9
Mô hình nguyên mꢢu
(prototyping model)
Phân tích yêu cꢃu
Thiꢈt kꢈ nhanh
Xây dꢠng nguyên mꢢu
ðánh giá
Thiꢈt kꢈ
19
Mô hình nguyên mꢢu
ꢀ
Ưu ñiꢀm
ꢁ
ꢁ
ꢁ
phát hiꢑn yêu cꢃu
hꢍp thꢔc hóa yêu cꢃu
thiꢈt kꢈ giao diꢑn
• giao diꢑn trên giꢋy
• giao diꢑn “thꢌt”
ꢁ
hꢑ thꢗng có rꢒi ro cao
• yêu cꢃu không chꢡc chꢡn
• giao diꢑn chưa rꢕ ràng
• chiꢈn lưꢍc cài ñꢇt chưa rꢕ ràng
20
10
Mô hình nguyên mꢢu
ꢀ
Hꢂn chꢈ
ꢁ
khách hàng có thꢀ cho rꢝng nguyên mꢢu là
hꢑ thꢗng thꢠc
• mong ñꢍi không thꢠc tꢈ vꢄ tiꢈn triꢀn cꢒa dꢠ án
ꢁ
ngưꢎi phát triꢀn có sꢠ chꢖn lꢠa không tꢗt
• phù hꢍp cho nguyên mꢢu, nhưng không phù hꢍp
cho hꢑ thꢗng thꢠc
• xây dꢠng hꢑ thꢗng thꢠc như xây dꢠng nguyên
mꢢu
ꢁ
nguyên mꢢu không giꢗng hoàn toàn hꢑ
thꢗng cuꢗi cùng
• khách hàng sꢣ có các phꢅn ꢔng khác nhau
21
Mô hình V
(V model)
ꢀ
Nhꢋn mꢂnh vai trò kiꢀm thꢉ
ðꢇc tꢅ yêu cꢃu
Thiꢈt kꢈ kiꢈn trúc
Thiꢈt kꢈ chi tiꢈt
Mã hóa
Kiꢀm thꢉ hꢑ thꢗng
Kiꢀm thꢉ tích hꢍp
Kiꢀm thꢉꢆñơnꢆvꢊ
22
11
Mô hình tiꢈn hóa
(evolutionary model)
Phiên bꢀn
ñꢁu tiên
ðꢇc tꢅ
Phát triꢀn
Phiên bꢅn
trung gian
Hꢍp thꢔc
hóa
Phiên bꢅn
cuꢗi cùng
23
Mô hình tiꢈn hóa
ꢀ
Ưu ñiꢀm
ꢁ
ꢁ
ꢁ
dꢠ án vꢚa và nhꢕ
các phꢃn cꢒa dꢠ án phꢔc tꢂp
các hꢑ thꢗng có thꢎi gian sꢗng ngꢡn
ꢀ
Hꢂn chꢈ
ꢁ
cꢋu trúc hꢑ thꢗng tꢏi
tiꢈn trình không rꢕ ràng
ꢁ
24
12
Mô hình xoꢡn ꢗc
(spiral model)
Determine objectives
alternatives and
constraints
Evaluate alternatives
identify, resolve risks
Risk
analysis
Risk
analysis
Risk
analysis
Opera-
tional
protoype
Prototype 3
Prototype 2
Proto-
type 1
Risk
analysis
REVIEW
Requirements plan
Life-cycle plan
Simulations, models, benchmarks
Concept of
Operation
S/W
requirements
Product
design
Detailed
design
Requirement
validation
Development
plan
Code
Unit test
Integration
test
Develop, verify
next-level product
Design
V&V
Integration
and test plan
Plan next phase
Acceptance
test
Service
25
Mô hình xoꢡn ꢗc
ꢀ
nhꢋn mꢂnh viꢑc ñánh giá các rꢎi ro
ꢀ
ꢀ
phꢃn mꢄm ñưꢍc xây dꢠng theo nhiꢄu chu kỳ
mꢟi chu kỳꢆtươngꢆꢔng vꢙi mꢁt sꢅn phꢐm cꢒa mꢁt giai
ñoꢂn phát triꢀn phꢃn mꢄm
ꢁ
xác ñꢊnh các mꢓc tiêu, giꢅi pháp, ràng buꢁc
ꢁ
ñánh giá các giꢅi pháp, xác ñꢊnh các nguy cơ và tìm
cách giꢅi quyꢈt chúng
ꢁ
ꢁ
phát triꢀn và kiꢀm thꢉ sꢅn phꢐm cꢒa chu kỳ này
lꢌp kꢈ hoꢂch cho chu kỳ tiꢈp theo
26
13
Mô hình xoꢡn ꢗc
ꢀ
Rꢒi ro và giꢅi pháp cho rꢒi ro
ꢁ
ꢁ
ꢁ
thꢋt bꢂi vꢄ nhân sꢠ
•
tuyꢀn dꢓng nhân sꢠ cao cꢋp,ꢆñào tꢂo lꢢn nhau, cóꢆñꢃy ñꢒ các nhân sꢠ
vꢙi chꢔc năng khác nhau...
thꢎi gian biꢀu và ngân sách không thꢠc tꢈ
•
ñánh giá thꢌt chi tiꢈt, phát triꢀn dꢃn dꢃn, tái sꢉ dꢓng, loꢂi bꢕ bꢙt các
yêu cꢃu không cꢃn thiꢈt ...
phát triꢀn các chꢔc năng không phù hꢍp
•
trao ñꢘi thưꢎng xuyên vꢙi ngưꢎi sꢉ dꢓng, có tài liꢑu hưꢙng dꢢn sꢉ
dꢓng sꢙm...
ꢁ
ꢁ
ꢁ
ꢁ
phát triꢀn giao diꢑn ngưꢎi dùng không thích hꢍp
•
cꢃn phân tích các công viꢑc, xây dꢠng các hình mꢢu trưꢙc, ...
thiꢈu yêu cꢃu ñꢇt ra
•
phát triꢀn các phꢃn ꢘn ñꢊnh trưꢙc
vꢋn ñꢄ vꢄ hiꢑu quꢅ
•
cꢃn phꢅi mô phꢕng,ꢆñoꢆlưꢎng, thꢉ nghiꢑm...
ñòi hꢕi vưꢍt quá sꢠꢆñáp ꢔng cꢒa công nghꢑ hiên hành
•
phân tích kꢤ tính khꢅ thi vꢄ mꢇt kꢤ thuꢌt
27
Mô hình xoꢡn ꢗc
ꢀ
Ưu ñiꢀm
ꢁ
ꢁ
ꢁ
ꢁ
ꢁ
hꢂn chꢈ rꢒi ro sꢙm
nhꢌn ñưꢍc feedbacks tꢚ khách hàng sꢙm
dꢠ án lꢙn, phꢔc tꢂp
hꢑ thꢗng cꢃn phát triꢀn nhiꢄu phiên bꢅn
yêu cꢃu chưa xác ñꢊnh rꢕ ràng
28
14
Mô hình hꢍp nhꢋt
(unified process)
ꢀ
Tiꢈn trình hꢍp nhꢋt có thꢀꢆñưꢍc nhìn
dưꢙi hai góc nhìn khác nhau
ꢁ
Góc nhìn quꢋn lý: quan tâm ñꢈn lĩnh
vꢠc kinh tꢈ, chiꢈn thuꢌt, con ngưꢎi
• Tiꢈn trình gꢏm bꢍn giai ñoꢄn
ꢁ
Góc nhìn kꢕ thuꢔt: quan tâm ñꢈn
công nghꢑ, kiꢀm tra chꢋt lưꢍng,
phương pháp
• Tiꢈn trình gꢏm nhiꢖu bưꢗc lꢊp
29
Mô hình hꢍp nhꢋt
ꢀ
Góc nhìn quꢅn lý
ðꢄt vꢂn ñꢃ
Thꢆc hiꢇn
Giꢀi quyꢅt vꢂn ñꢃ
Vꢂn ñꢃ
Giꢀi pháp
Khꢀi ñꢁu
Inception
Soꢂn thꢃo
Elaboration
Xây dꢄng
Construction
Chuyꢅn giao
Transition
Thꢈi gian
30
15
Mô hình hꢍp nhꢋt
ꢀ
Góc nhìn kꢤ thuꢌt: các bưꢙc lꢇp
ꢁ
Mꢟi bưꢙc lꢇp gꢏm các hoꢂt ñꢁng:
• ðꢇc tꢅ
• Phân tích
• Thiꢈt kꢈ
• Mã hóa
• Kiꢀm thꢉ
• Cài ñꢇt
ꢁ
Mꢟi bưꢙc lꢇp là mꢁt tiꢈn trình thác ñꢘ
31
Mô hình hꢍp nhꢋt
ꢀ
Góc nhìn kꢤ thuꢌt
Bưꢆc lꢇp
Kꢈt quꢃ
Mꢍu thꢎ (maquette)
Nguyên mꢍu kiꢅn trúc
Nguyên mꢍu kiꢅn trúc
Nguyên mꢍu phát triꢌn
Nguyên mꢍu phát triꢌn
Phiên bꢀn β
Bưꢉc lꢄp chuꢊn bꢋ
Bưꢉc lꢄp kiꢅn trúc
Bưꢉc lꢄp kiꢅn trúc
Bưꢉc lꢄp phát triꢌn
Bưꢉc lꢄp phát triꢌn
Bưꢉc lꢄp phát triꢌn
Bưꢉc lꢄp chuyꢌn giao
Bưꢉc lꢄp chuyꢌn giao
Phiên bꢀn β
Phiên bꢀn chính thꢏc
32
Thꢈi gian
16
Mô hình hꢍp nhꢋt
ꢀ
Kꢈt hꢍp hai góc nhìn
Bưꢆc lꢇp
Kꢈt quꢃ
Giai ñoꢂn
Khꢐi ñꢁu
Bưꢉc lꢄp chuꢊn bꢋ
Bưꢉc lꢄp kiꢅn trúc
Bưꢉc lꢄp kiꢅn trúc
Bưꢉc lꢄp phát triꢌn
Bưꢉc lꢄp phát triꢌn
Bưꢉc lꢄp phát triꢌn
Bưꢉc lꢄp chuyꢌn giao
Mꢍu thꢎ (maquette)
Nguyên mꢍu kiꢅn trúc
Nguyên mꢍu kiꢅn trúc
Soꢑn thꢀo
Nguyên mꢍu phát triꢌn
Nguyên mꢍu phát triꢌn
Phiên bꢀn β
Xây dꢆng
Phiên bꢀn β
Chuyꢌn giao
Bưꢉc lꢄp chuyꢌn giao
Phiên bꢀn chính thꢏc
33
Thꢈi gian
Mô hình hꢍp nhꢋt
ꢀ
Mô hình hꢍp nhꢋt và UML
34
17
Kꢈt luꢌn
ꢀ
Có nhiꢄu mô hình phát triꢀn phꢃn mꢄm
ꢁ
mô hình tuyꢈn tính
• mô hình thác nưꢙc
• mô hình nguyên mꢢu
• mô hình V
ꢁ
mô hình lꢇp
• mô hình tiꢈn hóa
• mô hình xoꢡn ꢗc
• mô hình hꢍp nhꢋt
35
Kꢈt luꢌn
ꢀ
Kꢈt hꢍp nhiꢄu mô hình cho mꢁt dꢠ án
ꢁ
ꢁ
ꢁ
hꢑ thꢗng phꢔc tꢂp, chia dꢠ án thành các hꢑ
thꢗng con
mô hình xoꢡn ꢗc hay mô hình hꢍp nhꢋt cho
toàn bꢁ dꢠ án
mꢟi hꢑ thꢗng con có thꢀ áp dꢓng mꢁt mô
hình khác nhau
• mô hình nguyên mꢢu cho các hꢑ thꢗng con phꢔc
tꢂp
• mô hình thác nưꢙc cho các hꢑ thꢗng con khác
36
18
Bạn đang xem tài liệu "Bài giảng Công nghệ phần mềm - Chương 2: Mô hình phát triển - Nguyễn Thanh Bình", để 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:
- bai_giang_cong_nghe_phan_mem_chuong_2_mo_hinh_phat_trien_ngu.pdf