I. Các mô hình phát triển phần mềm
Mô hình phát triển phần mềm hay quy trình phát triển phần mềm xác định các giai đoạn trong xây dựng phần mềm
Chúng ta sẽ có 3 mô hình phát triển phần mềm chủ yếu sau:
- Mô hình phát triển phần mềm thác nước Waterfall Model
- Mô hình phát triển phần mềm chữ V - V Model
- Mô hình phát triển phần mềm Agile Agile Model(hay còn gọi là Crum gat Kanban)
1. Mô hình phát triển phần mềm thác nước
a. Mô tả
- Đây là mô hình phát triển phần mềm đầu tiên
- Mô hình áp dụng tuần tự các giai đoạn của phát triển phần mềm
- Đầu ra của giai đoạn trước là đầu vào của giai đoạn sau, giai đoạn sau chỉ được thực hiện khi giai đoạn trước đã kết thúc, đặc biệt không được quay lại giai đoạn trước để xử lý các yêu cầu khi muốn thay đổi
b. Phân tích mô hình
- Requirement gathering: Thu thập và phân tích yêu cầu được ghi lại vào tài liệu đặc tả yêu cầu trong giai đoạn này.
- System Analysis: Phân tích thiết kế hệ thống phần mềm, xác định kiến trúc hệ thống tổng thể của phần mềm.
- Coding: Hệ thống được phát triển theo từng unit và được tích hợp trong giai đoạn tiếp theo. Mỗi Unit được phát triển và kiểm thử bởi dev được gọi là Unit Test.
- Testing: Cài đặt và kiểm thử phần mềm. Công việc chính của giai đoạn này là kiểm tra và sửa tất cả những lỗi tìm được sao cho phần mềm hoạt động chính xác và đúng theo tài liệu đặc tả yêu cầu.
- Implementation: Triển khai hệ thống trong môi trường khách hàng và đưa ra thị trường.
- Operations and Maintenance: Bảo trì hệ thống khi có bất kỳ thay đổi nào từ phía khách hàng, người sử dụng.
c. Áp dung khi nào ?
- Các dự án nhỏ , ngắn hạn, các dự án có ít thay đổi về yêu cầu và không có những yêu cầu không rõ ràng.
d. Ưu điểm và nhược diểm
Ư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.
TÚM CÁI VÁY LẠI HIỂU NÔM NA LẠI LÀ:
- Mô hình này nó tuần tự từ trên xuống dưới nên sử dụng nguồn lực rất khó, kiểu ông này làm thì ông kia chơi, xong chờ đến lượt
- Tài liệu đặc tả phải đẩy đủ ngay từ ban đầu chứ không được gom dần, cơ bản là 99% rồi, muốn thay đổi thì phải mất thêm tiền.
- Giai đoạn khách hàng tham gia sẽ bị muộn, họ không đưa được phản hồi ngay từ sớm, lỡ không may muốn thay đổi thì đập đi làm lại rất là khó
2. Mô hình phát triển phần mềm chữ V
a. Mô tả
- 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.
b. Áp dụng khi nào ?
- Yêu cầu được xác định rõ ràng.
- Xác định sản phẩm ổn định.
- Công nghệ không thay đổi và được hiểu rõ bởi nhóm dự án.
- Không có yêu cầu không rõ ràng hoặc không xác định.
- Dự án ngắn.
c. Ưu điểm và nhược điểm
Ưu điểm
- Đây là một mô hình có tính kỷ luật cao và các giai đoạn được hoàn thành cùng một lúc.
- Hoạt động tốt cho các dự án nhỏ, khi các yêu cầu được hiểu rất rõ.
- Đơn giản và dễ hiểu và dễ sử dụng, dễ quản lý.
- Tester được tham gia ngay từ đầu
Nhược điểm
- Khó quản lý kiểm soát rủi ro, rủi ro cao.
- Không phải là một mô hình tốt cho các dự án phức tạp và hướng đối tượng.
- Mô hình kém cho các dự án dài và đang diễn ra.
TÚM CÁI VÁY LẠI HIỂU NÔM NA LẠI LÀ:
- Nó cũng kiểu như mô hình thác nước thôi tuy nhiên ưu điểm tester được join vào ngay từ đầu vì nó có thêm các khâu chuẩn bị kế hoạch
- Tuy nhiên vẫn có nhược điểm là acceptence test muộn, khách hàng sẽ tham gia vào dự án sẽ bị muộn
3. Mô hình phát triển phần mềm Agile
Agile là một phương pháp phát triển phần mềm linh hoạt để làm sao đưa sản phẩm đến tay người dùng càng nhanh càng tốt và được xem như là sự cải tiến so với những mô hình cũ như mô hình “Thác nước (waterfall)”. Phương thức phát triển phần mềm Agile 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 và giải pháp được phát triển thông qua sự liên kết cộng tác giữa các nhóm tự quản và liên chức năng.
a. Mô tả
- Dựa trên mô hình iterative and incremental(lặp đi lặp lại và tăng dần).
- Các yêu cầu và giải pháp phát triển dựa trên sự kết hợp của các function.
- Trong Agile, các tác vụ được chia thành các khung thời gian nhỏ để cung cấp các tính năng cụ thể cho bản phát hành cuối.
b. Áp dụng khi nào ?
- 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.
- 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.
c. Ưu điểm và nhược điểm
Ưu điểm
- Tăng cường tình thần làm việc nhóm và trao đổi công việc hiệu quả.
- Các chức năng được xây dựng nhanh chóng và rõ ràng, dế quản lý.
- Dễ dàng bổ sung, thay đổi yêu cầu.
- Quy tắc tối thiểu, tài liệu dễ hiểu, dễ sử dụng.
Nhược điểm
- Mô hình Agile được sử dụng rộng rãi trên thế giới nhưng cũng không đồng nghĩa với phù hợp với tất cả các dự án phần mềm.
- Không thích hợp để xử lý các phụ thuộc phức tạp.
- Có nhiều rủi ro về tính bền vững, khả năng bảo trì và khả năng mở rộng.
- Cần một team có kinh nghiệm.
- Phụ thuộc rất nhiều vào sự tương tác rõ ràng của khách hàng.
- Chuyển giao công nghệ cho các thành viên mới trong nhóm có thể khá khó khăn do thiếu tài liệu.
TÚM CÁI VÁY LẠI HIỂU NÔM NA LẠI LÀ:
- Mô hình phát tiển linh hoạt, nó muốn tạo ra sản phẩm nhanh nhất mà không cần quá nhiều tài liệu, tuy nhiên mấy ông dev vs test trong nhóm phải giỏi hầu như không phân biệt test hay dev, và làm việc nhóm tốt
- Làm được một giờ xong thì demo luôn cái chức năng đó, xong merge dần vào cho đến khi hoàn chỉnh cái phần mềm, tuy nhiên ở Việt Nam thì mặc dù áp dụng nhiều nhưng vẫn phải phân vai trò test dev các thứ...
0 Bình luận:
Đăng nhận xét