2.1.2 Software Development Lifecycle Models in Context

Các mô hình vòng đời phát triển phần mềm phải được lựa chọn và điều chỉnh phù hợp với ngữ cảnh của dự án và đặc tính sản phẩm. Một mô hình vòng đời phát triển phần mềm phù hợp phải được chọn và điều chỉnh dựa trên mục tiêu dự án, loại sản phẩm đang được phát triển, ưu tiên kinh doanh (ví dụ: thời gian ra thị trường), và các rủi ro được xác định cho sản phẩm và dự án. Ví dụ, việc phát triển và kiểm thử một hệ thống quản trị nội bộ nhỏ phải khác biệt so với phát triển và kiểm thử một hệ thống quan trọng cho tính an toàn như hệ thống điều khiển phanh của ô tô. Những vấn đề về tổ chức và văn hóa cũng có thể ảnh hưởng đến việc truyền thông giữa các thành viên trong nhóm, gây cản trở cho việc phát triển theo phương pháp lặp lại.
Tùy thuộc vào ngữ cảnh của dự án, có thể cần kết hợp hoặc tổ chức lại các cấp độ kiểm thử và/hoặc các hoạt động kiểm thử. Ví dụ, để tích hợp một sản phẩm phần mềm ngoài kệ thương mại (COTS) vào một hệ thống lớn hơn, người mua có thể thực hiện kiểm thử tương tác ở cấp độ kiểm thử tích hợp hệ thống (ví dụ: tích hợp vào cơ sở hạ tầng và các hệ thống khác) và cấp độ kiểm thử chấp nhận (kiểm thử chức năng và không chức năng, cùng với kiểm thử chấp nhận của người dùng và kiểm thử chấp nhận hoạt động). Xem phần 2.2 để thảo luận về các cấp độ kiểm thử và phần 2.3 để thảo luận về các loại kiểm thử.
Ngoài ra, các mô hình vòng đời phát triển phần mềm có thể được kết hợp với nhau. Ví dụ, một mô hình V có thể được sử dụng để phát triển và kiểm thử các hệ thống backend và tích hợp của chúng, trong khi một mô hình phát triển Agile có thể được sử dụng để phát triển và kiểm thử giao diện người dùng (UI) và tính năng phía trước. Các mô hình tạo nguyên mẫu có thể được sử dụng sớm trong một dự án, với một mô hình phát triển tăng dần được áp dụng sau khi giai đoạn thử nghiệm đã hoàn thành.
Các hệ thống Internet of Things (IoT), bao gồm nhiều đối tượng khác nhau như thiết bị, sản phẩm và dịch vụ, thường áp dụng các mô hình vòng đời phát triển phần mềm riêng biệt cho mỗi đối tượng. Điều này đặt ra một thách thức đặc biệt cho việc phát triển các phiên bản của hệ thống Internet of Things. Hơn nữa, vòng đời phát triển phần mềm của các đối tượng như vậy đặt nặng tính chất của các giai đoạn cuối cùng của vòng đời phát triển phần mềm sau khi chúng được giới thiệu vào sử dụng thực tế (ví dụ như giai đoạn vận hành, cập nhật và đóng gói).
Những lý do vì sao các mô hình phát triển phần mềm phải được điều chỉnh để phù hợp với bối cảnh dự án và đặc điểm sản phẩm có thể là:
Sự khác biệt về rủi ro sản phẩm của các hệ thống (dự án phức tạp hoặc đơn giản)
Nhiều đơn vị kinh doanh có thể là một phần của một dự án hoặc chương trình (kết hợp giữa phát triển tuần tự và phát triển Agile)
Thời gian ngắn để cung cấp một sản phẩm ra thị trường (kết hợp các cấp độ kiểm thử và/hoặc tích hợp các loại kiểm thử trong các cấp độ kiểm thử)
