Mô hình hay qui trình phát triển phần mềm là một tập hợp các hoạt động tổ chức mà mục đích của chúng là xây dựng và phát triển phần mềm. Trong mỗi qui trình xác định thứ tự các pha hoặc các giai đoạn trong xây dựng phần mềm, gồm: phân tích, thiết kế, lập trình, kiểm thử và triển khai. Có nhiều loại qui trình phát triển phần mềm như:
- Qui trình thác nước
- Qui trình xoắn ốc
- Qui trình chữ V
- Qui trình Scrum
Mục lục
1. Mô hình thác nước (Water fall)
Sở dĩ mô hình này được gọi là mô hình thác nước vì khi chúng ta nhìn vào hình ảnh trên có thể thấy nó rất giống một dòng thác, nước đổ từ trên xuống dưới và cũng chính vì vậy nên nó không bao giờ có chiều ngược lại. Mô hình này được nhắc tới vào năm 1970, trong một bài báo của Royce. Ông đưa ra các khái niệm đầu tiên về mô hình này. Nhìn chung mô hình này khá đơn giản nhưng nó lại theo một thứ tự khá nghiêm ngặt, các giai đoạn được chia ra một cách rõ ràng, hoàn toàn riêng biệt với nhau, kết thúc giai đoạn này mới chuyển sang giai đoạn khác. Đầu tiên là giai đoạn xác định và phân tích yêu cầu đặc tả, kết quả của giai đoạn này sẽ cho chúng ta một một danh sách các yêu cầu đối với phần mềm cần xây dựng. Sau đó là đến giai đoạn thiết kế, ở giai đoạn này sẽ tạo ra hàng loạt các tài liệu thiết kế chi tiết hơn nhằm cụ thể hóa các yêu cầu của khách hàng. Các tài liệu này sẽ dành cho các lập trình viên để nghiên cứu nó . Tiếp đến. các lập trình viên sẽ dựa vào các tài liệu thiết kế để lập trình theo các module, chức năng cho hệ thống. Xong giai đoạn này sẽ chuyển đến giai đoạn kiểm thử nhằm loại bỏ các lỗi và nâng cao chất lượng sản phẩm của mình. Cuối cùng phần mềm sẽ được deploy lên trên server thật của khách hàng.
Ưu điểm
- Dễ sử dụng, dễ tiếp cận, dễ quản lý.
- Sản phẩm phát triển theo các giai đoạn đượ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
- Ít linh hoạt, phạm vi điều chỉnh hạn chế.
- Rất khó để đo lường sự phát triển trong từng giai đoạn.
- Mô hình không thích hợp với những dự án dài, đang diễn ra, hay những dự án phức tạp, có nhiều thay đổi về yêu cầu trong vòng đời phát triển.
- Khó quay lại khi giai đoạn nào đó đã kết thúc.
2. Mô hình xoắn ốc
Mô hình xoắn ốc (Spiral-Model) là mô hình có sự kết hợp giữa mô hình thác nước (Waterfall-Model) và mô hình tiếp cận lặp (Iterative-Model) và nó có nhiều điểm giống nhau với mô hình gia tăng (Incremental-Model).
Chú trọng vào phân tích rủi ro dự án. Mỗi giai đoạn trong mô hình được 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ần đầu tiên được Barry Boehm đề cập trong bài báo của ông vào năm 1986.
Mô hình này thường được sử dụng cho các ứng dụng lớn và các hệ thống được xây dựng theo các giai đoạn nhỏ hoặc theo các phân đoạn. Các giai đoạn trong mô hình này gồm:
- Lập kế hoạch – Planning phase.
- Phân tích rủi ro – Risk analysis phase.
- Thực thi kỹ thuật – Engineering phase.
- Đánh giá – Evaluation phase.
Ư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.
3. Mô hình chữ V (V Model)
Mô hình chữ V là mô hình Xác minh và Xác nhận. Giống như mô hình thác nước, vòng đời mô hình chữ V là một con đường tuần tự thực hiện các quá trình. Mỗi giai đoạn phải được hoàn thành trước khi giai đoạn tiếp theo bắt đầu. V-Model là một trong nhiều mô hình phát triển phần mềm.Thử nghiệm của sản phẩm được lên kế hoạch song song với một giai đoạn phát triển tương ứng trong mô hình V.
Ư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.
4. Mô hình Scrum
Mô hình này là một tập hợp các phương thức phát triển lặp và tăng dần trong đó các yêu cầu cũng như giải pháp được phát triển thông qua sự liên kết và cộng tác giữa các nhóm, giữa các chức năng. Agile chỉ là một mô hình trên lý thuyết mà để triển khai nó đến thực tế thì cần phải có phương pháp cụ thể, một trong các phương pháp được áp dụng rộng rãi là phương pháp Scrum. Theo phương pháp này dự án sẽ được chia thành từng nhóm phát triển bao gồm: Product Owner, Scrum Master và nhóm phát triển. Product Owner sẽ tạo ra một danh sách các hạng mục cần phải phát triển theo độ ưu tiên cho sản phẩm được gọi là Product Backlog. Dưa vào đó, một bản kế hoạch sẽ được lập để chia dự án thành các Sprint tương ứng là các Sprint Backlog. Mỗi Sprint được kéo dài từ 1 đến 4 tuần. Sau khi Sprint kết thúc kết quả sẽ được chuyển giao theo các hạng mục trong Sprint Backlog và phải thỏa mãn Định nghĩa hoàn thành đã được thống nhất trước đó. Cuối cùng là Sơ kết và Cải tiến Sprint sẽ được diễn ra nhằm thanh tra và thích nghi sản phẩm và quy trình làm việc, đưa ra phương pháp cải tiến để có được hiệu quả tốt hơn.
Ưu điểm
- Là một mô hình hiện đại đang được ưa chuộng,
- Bàn giao sản phẩm một cách nhanh chóng liên tục cho khách hàng.
- Sư tương tác và yếu tố con người được nhấn mạnh.
- Đề cao tính thích nghi liên tục thay đổi và làm mới.
- Sớm phát hiện lỗi.
- Áp dụng cho các dự án mà yêu cầu của khách hàng không rõ ngay từ đầu.
Nhược điểm
- Mô hình này cần nguồn nhân lực có yếu tố chuyên môn kỹ thuật cao.
- Dự án dễ đi chệch hướng khi khách hang không đưa ra được kết quả mong muốn cuối cùng.
- Chưa có được sự tập trung cần thiết vào thiết kế và tài liệu cần thiết.
- Khó khăn trong việc xác định ngân sách và thời gian.
- Luôn nghe ý kiến phản hồi từ khách hàng và thay đổi theo nên thời gian sẽ kéo dài.
- Vai trò của PO rất quan trọng, PO là người định hướng sản phẩm. Nếu PO làm không tốt sẽ ảnh hưởng đến kết quả chung.
Nguồn viblo.asia