










Preview text:
Công nghệ phần mềm
1. Vòng đời phần mềm (Software Developmentlife-cycle) là thời kỳ tính từ khi phần mềm được
sinh racho đến khi chết đi (từ lúc hình thành đáp ứng yêu cầu,vận hành, bảo dưỡng cho đến
khi loại bỏ). Các công đoạn của SDLC : Requirements, Analysis, Design, Implementation, Test.
2. Mô hình thác nước là một ví dụ của mô hình Sequential (Tuần tự).
Trong thác nước, sự phát triển của một pha chỉ bắt đầu khi giai đoạn trước hoàn thành. Do tính chất
này, mỗi giai đoạn của mô hình thác nước phải được xác định khá chính xác. Các giai đoạn chuyển từ
mức cao xuống mức thấp hơn, giống như một thác nước nên mô hình này được đặt tên là mô hình thác nước.
Các bước: Phân tích yêu cầu => thiết kế hệ thống=> thực hiện và unit
testing=>Thử nghiệm hệ thống => Triển khai và bảo trì.
Mô hình Thá c nước SDLC được sử dụ ng khi:
• Yê u cầ u ổ n định và khô ng thay đổ i thường xuyê n. • Một ứng dụng nhỏ.
• Khô ng có yê u cầ u mà khô ng hiể u hoặ c khô ng rõ rà ng.
• Mô i trường ổ n định
• Cá c cô ng cụ và cô ng nghệ được sử dụ ng là ổ n định
• Nguồ n lực được đà o tạ o và sẵ n sà ng.
Ư u điể m củ a việ c sử dụ ng mô hình thá c nước như sau:
• Đ ơn giả n, dễ hiể u và sử dụ ng.
• Đ ố i với cá c dự á n nhỏ hơn, mô hình thá c nước hoạ t độ ng tố t và mang
lạ i kế t quả phù hợp.
• Vì cá c giai đoạ n củ a mô hình thá c nước cứng nhắ c và chính xá c, mộ t
pha được thực hiệ n một lầ n, nó rấ t dễ dà ng để maintain,quả n lý .
• Cá c tiê u chí đầ u và o và đầ u ra được xá c định rõ rà ng, do đó nó dễ dà ng và
có hệ thống để tiế n hà nh chấ t lượng.
• Kế t quả được ghi ché p tốt.
Nhược điể m của việ c sử dụng mô hình thá c nước:
• Khô ng thể chấ p nhậ n thay đổ i yê u cầ u
• Nó trở nê n rấ t khó khă n để di chuyể n trở lạ i giai đoạ n. Ví dụ , nế u ứng
dụ ng đã chuyể n sang giai đoạ n thử nghiệ m và có thay đổi về yê u
cầ u, gặ p khó khă n để quay lạ i và thay đổi nó.
• Việ c giao hà ng củ a sả n phẩ m cuố i cù ng là muộ n vì khô ng có mẫ u thử
nghiệ m được chứng minh trung gian.
• Đ ố i với cá c dự á n lớn và phức tạ p, mô hình nà y khô ng tố t vì yế u tố rủ i ro cao hơn.
• Khô ng thích hợp cho cá c dự á n mà yê u cầ u được thay đổ i thường xuyê n.
• Khô ng là m việ c cho cá c dự á n dà i và đang diễ n ra.
• Kể từ khi thử nghiệ m được thực hiệ n ở giai đoạ n sau, nó khô ng cho
phé p xá c định những thá ch thức và rủ i ro trong giai đoạ n trước đó
nê n chiế n lược giả m thiể u rủi ro rấ t khó để chuẩ n bị 3. Mô hình tă ng trưởng Ưu điểm.
▪ Có thể sớm tạo ra nguyên mẫu của sản phẩm trong vòng đời phát triển của nó.
▪ Độ linh hoạt cao hơn và khi thay đổi yêu cầu dự án thì chi phí sẽ
ít hơn nhiều, vì những thay đổi thuộc về module nào thì module
đó sẽ thay đổi mà các module khác không hề bị ảnh hưởng.
▪ Việc phân chia thành các module cũng sẽ làm cho việc test nhẹ
nhàng hơn, những module đơn giản thì test cũng đơn giản, sớm kết thúc.
▪ Giảm chi phí cho lần đầu giao sản phẩm.
▪ Dễ dàng quản lý các rủi ro có thể phát sinh. Nhược điểm.
▪ Cần phải có những khả năng thiết kế tốt và phương pháp tốt, để
có thể hiểu rõ được yêu cầu và biết cách phân chi nó ra như thế nào cho hợp lý.
▪ Chi phí để phát triển theo phương pháp này là rất cao, cao hơn hẳn waterfall.
Khi nào thì áp dụng mô hình này.
▪ Khi sớm cần có một nguyên mẫu phần mềm để quáng bá, giới
thiệu hoặc thử nghiệm.
▪ Sử dụng mô hình này khi một công nghệ mới được áp dụng.
▪ Tài nguyên và kỹ năng chuyên môn luôn sẵn sàng.
▪ Khi có một tính năng hay các mục tiêu thì có nguy cơ lỗi cao. 4.
Mô hình chữ V( V model)
Mô hình chữ V là mộ t phầ n mở rộ ng củ a mô hình thá c nước và
được dựa trê n sự kế t hợp củ a mộ t giai đoạ n thử nghiệ m cho từng
giai đoạ n phá t triể n tương ứng. Đ â y là một mô hình có tính kỷ
luậ t cao và giai đoạ n tiế p theo chỉ bắ t đầ u sau khi hoà n thà nh giai đoạ n trước.
Với V model thì cô ng việ c test được tham gia ngay từ đầ u. Ưu điể m.
▪ Đ ơn giả n dễ sử dụng.
▪ Có hoạ t động, kế hoạ ch cụ thể cho quá trình test.
▪ Tiế t kiệ m được thời gian, và có cơ hội thà nh công cao hơn waterfall.
▪ Chủ động trong việc phá t hiệ n bug, sớm tìm ra bug ngay từ những bước đầ u.\ Nhược điể m.
▪ Đ ộ linh hoạ t ít và còn tồn tạ i sự cứng nhắ c. Nó thể hiện ở chỗ cứ
sau mỗi step thì lạ i phả i có một - công đoạ n test, nế u yê u cầ u dự
á n không quá phức tạ p và dễ hiệ u, thì việ c thực hiệ n nhiề u công
đoạ n test như vậ y là tốn thời gian.
▪ Giống với waterfall, sả n phẩ m của dự á n chỉ được xuấ t hiệ n khi
tấ t cả cá c bước được hoà n thà nh xong, khô ng có nguyê n mẫ u
ngay từ ban đầ u. Không đá p ứng được yê u cầ u dịch vụ vừa phá t triể n,
song song với vừa bá n sả n phẩ m.
▪ Nế u có sự thay đổi về kỹ thuậ t ở nửa chừng, thì sẽ phả i quay lạ i
cá c bước đầ u tiê n, thực hiệ n lạ i, update lạ i tà i liệu.
Áp dụng cho những dự án như thế nào.
▪ Dự án có kích thước nhỏ, và trung bình, các yêu cầu dự án là rõ ràng, cố định.
▪ Khi team phát triển có đội ngũ kỹ thuật tốt, có nguồn tài nguyên
phong phú, sẵn có để đảm bảo được yêu cầu, đọc nhanh, test nhanh và coding nhanh.
▪ Nếu khách hàng có sự tự tin cao trong yêu cầu thiết kế (nghĩa là
ít thay đổi, ít dao động) thì V model là lựa chọn cần thiết. 5. RAD model
Một loại mô hình đặc biệt khác của mô hình Incremental
✧ Điểm khác biệt cơ bản giữa RAD và Incremental đó là:
▪ RAD thực hiện song song các thành phần con được chia ra,
nghĩa là các team hoạt động độc lập và cùng bắt đầu tại một thời
điểm, còn với mô hình gia tăng điều này không nhất thiết là phải như vậy.
▪ Việc phát triển được đóng hộp về mặt thời gian và khi giao sản
phẩm thì các thành phần được lắp ráp lại thành một nguyên mẫu duy nhất. 5steps: Step 1. Business modeling.
Xác định các luồng thông tin giữa các chức năng khác nhau của công việc. ✧ Step 2. Data modeling.
Các thông tin thu thập được từ công đoạn 1 sẽ được sử
dụng để định nghĩa ra các đối tượng dữ liệu mà nó cần thiết cho công việc. ✧ Step 3. Process modeling.
Sau khi đã định nghĩa ra các đối tượng dữ liệu thì chúng
được chuyển đổi để trở thành các dòng thông tin công
việc, tiến đến một vài đối tượng công việc riêng.
Step 4. Application generation.
Đây là công đoạn coding giống như trong các quy trình
khác, khi dữ liệu và tiến trình thực hiện đã được vạch ra
thì công đoạn này là sử dụng các công cụ lập trình, phần
trình biên dịch, và các ngôn ngữ lập trình để tiến hành
code lên các chức năng phần mềm.
✧ Step 5. Testing và Turnover.
Là công đoạn test sản phẩm được tạo, sau khi việc
coding đã hoàn thành, và cuối cùng đưa vào thử nghiệm
trong thực tế, giao bán sản phẩm, tính toán doanh thu. ✧ Ưu điểm.
▪ Giảm được thời gian phát triển.
▪ Tăng khả năng sử dụng lại của thành phẩm.
Sớm đưa ra được những đánh giá, nhận xét để dễ dàng điều chỉnh.
▪ Tạo ra những khuyến khích sự phản hồi từ phía khách hàng. ✧ Nhược điểm.
▪ Mô hình này là một mô hình đặc biệt, nên nó chỉ được sử dụng
khi có một sự cần thiết để tạo ra các hệ thống mà có thể module hóa 2 hoặc trong 3 tháng.
▪ Chỉ được sử dụng khi vấn đề thiết kế cho mô hình là sẵn có, bên
cạnh đó là ngân sách phải có nhiều để có thể xây dựng được
nhiều team cùng phát triển song song. Khi nào áp dụng RAD.
Áp dụng RAD khi dự án cần thực hiện trong thời gian
ngắn chỉ từ 2 hoặc 3 tháng.
▪ Khi yêu cầu dự án rõ ràng, dễ dàng trong việc phân chia thành
các project nhỏ, đồng thời có đủ nguồn lực để phân chia thành
nhiều team, thực hiện song song cùng một lúc.
▪ Khi nguồn tài nguồn dồi dào cả về công cụ, phần mềm hỗ trợ, tài liệu và con người. Software prototyping
Một mẫu thử nghiệm là phiên bản ban đầu của một hệ thống được sử dụng để
trình bày các khái niệm và thử nghiệm các lựa chọn thiết kế.
✧ Một mẫu thử nghiệm có thể được sử dụng trong các trường hợp sau:
- Trong quá trình kỹ thuật yêu cầu để hỗ trợ việc thu thập và xác nhận yêu cầu;
- Trong quá trình thiết kế để khám phá các lựa chọn và phát triển thiết kế giao diện người dùng (UI);
- Trong quá trình kiểm thử để thực hiện các kiểm thử back-to-back. Lợi ích:
-Cải thiện khả năng sử dụng của hệ thống.
-Gần phù hợp với nhu cầu của người dùng. - Cải thiện thiết kế.
- Cải thiện khả năng bảo trì.
- Giảm công sức phát triển.
Process: Tạo lập mục tiêu=> định nghĩa chức năng=>phát triển mẫu => đánh giá 6. Spiral model Mô tả
• Là mô hình kế t hợp giữa cá c tính nă ng củ a mô hình
prototyping và mô hình thá c nước.
• Mô hình xoắ n ố c được ưa chuộ ng cho cá c dự á n lớn, đắ t tiề n và phức tạ p.
• Mô hình nà y sử dụ ng những giai đoạ n tương tự như mô hình thá c
nước, về thứ tự, plan, đá nh giá rủi ro, …
Objective identification- Thiết lập mục tiêu: xác định mục tiêu, đối tượng cho từng pha của dự án.
Alternate evaluation- Đánh giá và giảm thiểu rủi ro: đánh giá rủi ro và thực hiện
các hành động để giảm thiểu rủi ro.
Product development- Phát triển sản phẩm: Lựa chọn mô hình phù hợp để phát triển hệ thống.
Next phase planning- Lập kế hoạch: đánh giá dự án và lập kế hoạch cho pha tiếp theo. Ưu điể m
• Tố t cho cá c hệ phầ n mề m quy mô lớn.
• Dễ kiể m soá t cá c mạ o hiể m ở từng mức tiế n hó a.
• Đ á nh giá thực tế hơn như là mộ t quy trình là m việ c, bởi vì những vấ n
đề quan trọ ng đã được phá t hiệ n sớm hơn. Nhược điể m
• Manager cầ n có kỹ nă ng tố t để quả n lý dự á n, đá nh giá rủ i ro kịp thời.
• Chi phí cao và mấ t nhiề u thời gian để hoà n thà nh dự á n.
• Phức tạ p và khô ng thích hợp với cá c dự á n nhỏ và ít rủ i ro.
• Yê u cầ u thay đổ i thường xuyê n dẫ n đế n lặ p vô hạ n.
• Chưa được dù ng rộ ng rã i.
Document Outline
- Công nghệ phần mềm
- 4. Mô hình chữ V( V model)
- Mô tả
- Ưu điểm
- Nhược điểm