Mô hình thác nước là gì? Mô hình thác nước có vai trò gì?

4 min read

Mô hình thác nước là gì?

Mô hình thác nước là một mô hình có tính trình tự trong phát triển phần mềm. Nó chú trọng vào sự phát triển logic và lần lượt trong suốt vòng đời phát triển phần mềm (software development life cycle – SDLC), trong đó những pha (phase) ở phía trước phải được hoàn thành trước khi những pha tiếp theo có thể bắt đầu. Mỗi pha trong mô hình thác nước có vai trò khác nhau trong SDLC.

Mô hình thác nước được giới thiệu trong một bài báo của Winston Royce vào năm 1970. Mặc dù sự phổ biến của mô hình này đã giảm nhiều trong vài năm trở lại đây khi các phương pháp linh hoạt (Agile) xuất hiện, tuy nhiên mô hình thác nước vẫn đang được ưa chuộng bởi nhiều kỹ sư CNTT vì tính logic và tuần tự của mô hình này.

5 pha (phase) của mô hình thác nước

thác nước

Waterfall Model – Mô hình thác nước bao gồm 5 pha chính, lần lượt là:

  1. Phân tích yêu cầu: Các kỹ sư IT sẽ phải thu thập tất cả các yêu cầu cần thiết, sau đó sẽ hội ý để hiểu đúng những yêu cầu. Cuối cùng, các kỹ sư sẽ cần phải tìm hiểu xem những yêu cầu này có phù hợp để kiểm thử ở các bước tiếp theo hay không.
  2. Thiết kế hệ thống: Dựa vào những yêu cầu, các kỹ sư IT sẽ thiết kế hệ thống, ghi lại những yêu cầu về phần cứng/phần mềm và sau đó họ sẽ ghi chú lại phần thiết kế
  3. Triển khai: Dựa vào ghi chú thiết kế, các kỹ sư IT sẽ tạo ra chương trình hoặc codes, sau đó tích hợp codes lại cho pha kế tiếp. Cuối cùng, họ kiểm thử đơn vị phần code này.
  4. Kiểm thử hệ thống: Ở phần này, các kỹ sư IT sẽ kiểm thử toàn bộ hệ thống để xem các đơn vị có vận hành trơn tru không, sau đó họ sẽ hoàn thiện báo cáo kiểm thử.
  5. Vận hành và duy trì: Ở phần cuối, sau khi chắc chắn đã sửa hết lỗi, các kỹ sư IT sẽ tiến hành chạy thử phần mềm và đưa vào sử dụng, sau đó fix các lỗi phát sinh trong tương lai (nếu có). Quá trình này bao gồm cả việc phát triển phần mềm để có thể tích hợp thêm nhiều tính năng trong tương lai.

Ưu điểm và nhược điểm của mô hình thác nước

Ưu điểm

Mô hình thác nước có một vài ưu điểm như sau:

  • Dễ dàng triển khai và quy trình dễ hiểu
  • Với những dự án nhỏ, mô hình thác nước hoạt động hiệu quả và cho kết quả rất tốt.
  • Vì quá trình phát triển rất chặt chẽ, do đó chất lượng mỗi phần và cả dự án sẽ rất chặt chẽ.
  • Yêu cầu đầu vào và đầu ra có sự rõ ràng, nên tiến trình làm việc rất dễ dàng và chất lượng
  • Kết quả được ghi chép dễ dàng

Nhược điểm

Tuy nhiên, mô hình thác nước cũng còn 1 vài nhược điểm sau:

  1. Do pha đầu tiên là phân tích yêu cầu, nên sẽ không thể thay đổi yêu cầu ở các pha tiếp theo trong mô hình
  2. Mô hình thác nước không phù hợp để triển khai với những dự án dài và phức tạp, có nhiều sự thay đổi trong yêu cầu
  3. Khó di chuyển qua lại giữa các pha. Ví dụ, nếu phần mềm chuẩn bị bước vào pha kiểm thử và có sự thay đổi ở yêu cầu thì sẽ rất khó để quay lại và thay đổi. Việc quay lại sẽ ngốn một khoảng thời gian và công sức rất lớn của team phát triển
  4. Rủi ro cao hơn. Do quá trình kiểm thử trong mô hình thác nước xuất hiện gần cuối, các chiến thuật để giảm thiểu rủi ro không được triển khai từ sớm. Trong khi ở những mô hình linh hoạt, quá trình kiểm thử diễn ra song song với quá trình phát triển do đó việc giảm thiểu rủi ro hiệu quả hơn rất nhiều

Khi nào nên sử dụng mô hình thác nước

Mô hình thác nước nên được sử dụng khi:

  • Dự án ngắn và đơn giản: Như đã trình bày ở trên, các dự án dài và phức tạp thường đòi hỏi các bước phải được thực hiện đồng thời cùng với kiểm thử để tiết kiệm thời gian, trong khi ở mô hình thác nước thì các bước và thứ tự đã cố định, do đó sẽ tốn nhiều thời gian để sửa chữa và hoàn thành hơn
  • Những yêu cầu cố định, không thay đổi thường xuyên và dễ hiểu
  • Tài nguyên phong phú và các thành viên có chuyên môn kỹ thuật tốt
Avatar photo

Leave a Reply

Your email address will not be published. Required fields are marked *