4 mô hình phát triển phần mềm phổ biến nhất

hovanban

Well-known member
Trong mỗi dự án phần mềm, mô hình phát triển đóng một vai trò cực kỳ quan trọng khi quyết định hướng đi cũng như toàn bộ chất lượng đầu ra của sản phẩm. Tùy theo đặc thù yêu cầu của từng dự án, phương pháp làm việc của mỗi công ty mà đội ngũ phát triển sẽ chọn một mô hình phát triển phần mềm phù hợp.

Có 4 kiểu mô hình phát triển phần mềm được áp dụng phổ biến: Waterfall model (Mô hình thác nước), V model (Mô hình chữ V), Agile model & Scrum Process (Mô hình Agile và quy trình Scrum).

1. Waterfall model (Mô hình thác nước)

Waterfall model được coi là mô hình phát triển phần mềm đầu tiên được sử dụng. Đây là mô hình áp dụng theo tính tuần tự của các giai đoạn phát triển phần mềm; giai đoạn sau chỉ được thực hiện tiếp khi giai đoạn trước đã kết thúc. 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 chính xác.

Ưu điểm:
  • Dễ sử dụng, dễ tiếp cận.
  • Các giai đoạn và hoạt động được xác định rõ ràng.
  • Xác nhận ở từng giai đoạn, đảm bảo phát hiện sớm các lỗi.
Nhược điểm:
  • Rất khó để quay lại giai đoạn nào khi nó đã kết thúc
  • Ít tính linh hoạt và phạm vi điều chỉnh của nó khá là khó khăn, tốn kém.
2. V model (Mô hình chữ V)

V model (mô hình chữ V) là một quy trình phát triển phần mềm khá phổ biến, được sử dụng nhiều tại các công ty sản xuất phần mềm. Khi áp dụng V model, toàn bộ quy trình phát triển phần mềm được chia thành 2 giai đoạn tiến hành song song tương ứng nhau: Phát triển và Kiểm thử. Trong mô hình chữ V, việc kiểm thử được diễn ra ngay từ giai đoạn lấy yêu cầu nên lỗi được tìm ra ngay từ sớm để khắc phục. Muốn áp dụng được mô hình chữ V thì yêu cầu phần mềm phải xác định rõ ràng; công nghệ phần mềm và các công cụ phải được tìm hiểu kỹ.

Ưu điểm:
  • Quá trình phát triển và quy trình quản lý có tính tổ chức và hệ thống.
  • Hoạt động tốt cho các dự án có quy mô vừa và nhỏ.
  • Kiểm tra bắt đầu từ khi bắt đầu phát triển vì vậy sự mơ hồ được xác định ngay từ đầu.
  • Dễ dàng quản lý vì mỗi giai đoạn có các mục tiêu và mục tiêu được xác định rõ ràng.
Nhược điểm:
  • Không thích hợp cho các dự án lớn và phức tạp
  • Không phù hợp nếu các yêu cầu thường xuyên thay đổi.
  • Không có phần mềm làm việc được sản xuất ở giai đoạn trung gian.
  • Không có điều khoản cho việc phân tích rủi ro nên có sự không chắc chắn và có tính rủi ro.
3. Spiral model (Mô hình xoắn ốc)
Spiral model (Mô hình xoắn ốc) là quy trình phát triển định hướng rủi ro cho các dự án phần mềm. Mô hình chú trọng vào phân tích rủi ro dự án, bắt đầu với yêu cầu/mục tiêu thiết kế và kết thúc với việc khách hàng kiểm tra tiến độ của từng giai đoạn. Mô hình xoắn ốc là một cách tiếp cận thực tế để phát triển các sản phẩm phần mềm quy mô lớn. Ngoài ra, nhà phát triển và khách hàng hiểu rõ hơn và phản ứng với các rủi ro ở mỗi cấp độ phát triển.

Ưu điểm
  • Hội tụ các tính năng tốt và khắc phục các yếu điểm của nhiều mô hình phát triển khác gặp phải.
  • Giám sát dự án dễ dàng và hiệu quả.
  • Phù hợp với dự án có nguy cơ thay đổi trong quá trình thực hiện dự án để giảm thiểu rủi ro.
  • Dự đoán về thời hạn và chi phí sát với thực tế.
Nhược điểm
  • Phân tích rủi ro khá tốn kém. Chủ yếu áp dụng cho dự án lớn, có tiềm lực về tài chính.
  • Yêu cầu thay đổi thường xuyên dẫn đến lặp vô hạn, phức tạp, cần có đội ngũ chuyên gia về phân tích rủi ro.
4. Agile model & Scrum Process (Mô hình Agile và quy trình Scrum)
Mô hình Agile và quy trình Scrum đang là xu hướng được các công ty phần mềm hướng tới sử dụng trong thời gian gần đây.

a. Agile model

Agile model được tạo ra dựa trên 2 mô hình: Iterative (Lặp lại) và Incremental (Tăng dần). Mô hình Agile có thể được sử dụng với bất kỳ loại hình dự án nào, nhưng cần sự tham gia và tính tương tác của khách hàng. Agile được sử dụng khi khách hàng yêu cầu chức năng sẵn sàng trong khoảng thời gian ngắn như 3 - 4 tuần.

Ưu điểm:
  • Giảm thời gian cần thiết để tận dụng một số tính năng của hệ thống.
  • Kết quả cuối cùng là phần mềm chất lượng cao trong thời gian ít nhất có thể và sự hài lòng của khách hàng.
Nhược điểm:
  • Phụ thuộc vào kỹ năng của người phát triển phần mềm.
  • Tài liệu được thực hiện ở giai đoạn sau.
  • Cần một team có kinh nghiệm.
b. Scrum Process

Scrum là một “khung quản lý dự án” được áp dụng rất rộng rãi từ những dự án đơn giản với một nhóm phát triển nhỏ cho đến những dự án có yêu cầu rất phức tạp với hàng trăm người tham gia. Ngoài ra, Scrum Process cũng phù hợp với những dự án đòi hỏi khung thời gian cố định.

Trong Scrum, công việc sẽ được chia nhỏ thành nhiều giai đoạn gọi là Sprint. Mỗi Sprint chỉ kéo dài từ 1 đến 4 tuần, không quá một tháng. Đầu Sprint sẽ lên kế hoạch làm những yêu cầu nào rồi thực hiện code và test. Cuối Sprint là một sản phẩm hoàn thiện cả code lẫn test có thể demo và chạy được.

Scrum process (Quy trình Scrum)

CÔNG TY TNHH TƯ VẤN TRUYỀN THÔNG MINARA
ĐỊA CHỈ:
- 182 Trần Bình Trọng, P.3, Q.5, Tp.HCM
- 27 Đường số 16, Trung Tâm Hành Chính Dĩ An, Bình Dương.
Điện thoại: 097.777.1060
Email: info@minara.vn
Website: www.minara.vn
 
Bên trên