Quy trình phát triển phần mềm - Software Development Life Cycle (SDLC)

I. Định nghĩa

Quy trình phát triển phần mềm (Software Development Life Cycle) (SDLC) là tập hợp các hoạt động của tổ chức mà mục đích nhằm tạo ra một hệ thống chất lượng cao, đáp ứng hoặc vượt quá sự mong đợi của khách hàng và hoạt động có hiệu quả trong cơ sở công nghệ thông tin.

  • Một quy trình tốt và hợp lý luôn tạo ra những sản phẩm đạt tiêu chuẩn.
  • Quy trình phát triển phần mềm đem lại chất lượng, năng suất, giá thành phần mềm, tăng tính cạnh tranh và lợi nhuận cao cho doanh nghiệp.

II. Các giai đoạn phát triển

1. Requirement

Thu thập và phân tích yêu cầu là giai đoạn quan trọng và cơ bản nhất trong vòng đời phát triển phần mềm. Nó được thực hiện bởi các thành viên cao cấp như Business Analyst. Họ sẽ làm việc với khách hàng, bộ phận bán hàng, khảo sát thị trường… Nhiệm vụ là thu thập các yêu cầu từ khách hàng và tổng hợp vào tài liệu Yêu cầu khách hàng (Tên tài liệu khác nhau tùy vào tổ chức) và nó cung cấp cho Development Team.

  • Kết quả là tài liệu Yêu cầu khách hàng (Customer Requirement Specification - CRS).

2. Analysis

Sau khi thu nhập và phân tích yêu cầu được thực hiện, bước tiếp theo là xác định và ghi lại các yêu cầu của sản phẩm và yêu cầu khách hàng chấp nhận. Điều này được thực hiện thông qua tài liệu Đặc tả yêu cầu phần mềm (Software Requirement Specification) hay SRS. SRS bao gồm tất cả các yêu cầu về sản phẩm được thiết kế và phát triển trong suốt vòng đời của dự án.

  • Kết quả là tài liệu Đặc tả yêu cầu phần mềm (Software Requirement Specification) hay SRS.

3. Design

Ở giai đoạn này sẽ thực hiện thiết kế và tổng hợp vào tài liệu thiết kế (Thiết kế tổng thể, Thiết kế chi tiết). Nó sẽ mô tả mọi tính năng trong sản phẩm hoạt động như thế nào. Ở giai đoạn này chỉ có thiết kế chứ không phải thực hiện code. Nó được thực hiện bởi các nhà phát triển cao cấp.

  • Kết quả của giai đoạn này là tài liệu thiết kế tổng thể, thiết kế chi tiết, hoạt động như một đàu vào cho giai đoạn tiếp theo.

4. Coding

Ở giai đoạn này các Developer ở các cấp độ khác nhau (Seniors, Juniors, Freshers) sẽ tham gia vào. Đây là giai đoạn mà bắt đầu xây dựng phần mềm và bắt đầu thực hiện lập trình theo các tài liệu đã có ở các giai đoạn trước.

  • Kết quả của giai đoạn này là Source Code và sản phẩm được phát triển.

5. Testing

Đội kiểm tra sẽ kiểm tra kỹ lưỡng phần mềm. Họ sẽ kiểm tra phần mềm theo cách thủ công hoặc sử dụng các công cụ kiểm thử tự động phụ thuộc vào quy trình được xác định trong STLC (Software Testing Life Cycle) và đảm bảo rằng mọi thành phần của phần mềm hoạt động tốt. Trong giai đoạn này cần phải lên kế hoạch kiểm thử (Test plan) và tạo kịch bản kiểm thử (Testcase). Tiếp đến là việc thực hiện kiểm thử, sau đó là cập nhật kết quả vào kịch bản kiểm thử. Nếu có lỗi xảy ra thì bắt buộc phải log lỗi. Các lỗi được cập nhật trên hệ thống quản lý lỗi. Khi QA đảm bảo rằng phần mềm không có lỗi, nó sẽ chuyển sang giai đoạn tiếp theo.

  • Kết quả của giai đoạn này là test plan, test case, bug report và sản phẩm chất lượng.

6. Deployment and Maintenance

Sau khi kiểm thử thành công, sản phẩm sẽ được phân phối và triển khi cho khách hàng để họ sử dụng. Triển khai được thực hiện bởi các kỹ sư triển khai. Khi khách hàng bắt đầu sử dụng hệ thống thì sẽ có nhiều vấn đề xuất hiện và đòi hỏi cần được giải quyết theo thời gian. Như chúng ta biết việc 100% thử nghiệm là không thể. Bởi vì cách kiểm thử khác với cách khách hàng sử dụng. Vì vậy giai đoạn bảo trì cũng rất cần thiết và nó sẽ được thực hiện theo thỏa thuận.

III. Một số mô hình phát triển phần mềm

Có nhiều mô hình vòng đời phát triển phần mềm được xác định và thiết kế được tuân theo trong quá trình phát triển phần mềm. Các mô hình này cũng được gọi là "Mô hình quy trình phát triển phần mềm". Mỗi mô hình quy trình tuân theo một loạt các bước duy nhất cho loại của nó để đảm bảo thành công trong quá trình phát triển phần mềm. Sau đây là các mô hình SDLC quan trọng và phổ biến nhất sau:

  • Mô hình thác nước ( Waterfall model)
  • Mô hình xoắn ốc ( Spiral model)
  • Agile development (như ‘Extreme Programming’ and ‘Scrum’)
  • Mô hình tiếp cận lặp ( Iterative model)
  • Mô hình tăng trưởng ( Incremental model)
  • Mô hình chữ V ( V model)
  • RAD model ( Rapid Application Development)
  • Big Bang Model

IV. Tổng kết

Giai đoạn Nhiệm vụ Đầu ra
Requirement Thu thập các yêu cầu từ khách hàng và tổng hợp vào tài liệu Yêu cầu khách hàng. Tài liệu Yêu cầu khách hàng(Customer Requirement Specification - CRS).
Analysis Xác định và ghi lại các yêu cầu của sản phẩm và yêu cầu khách hàng chấp nhận. Bao gồm tất cả các yêu cầu về sản phẩm được thiết kế và phát triển trong suốt vòng đời của dự án. Tài liệu Đặc tả yêu cầu phần mềm (Software Requirement Specification) hay SRS.
Design Thực hiện thiết kế và tổng hợp vào tài liệu thiết kế (Thiết kế tổng thể, Thiết kế chi tiết). Tài liệu thiết kế (Thiết kế tổng thể, Thiết kế chi tiết).
Coding Bắt đầu xây dựng phần mềm và bắt đầu thực hiện lập trình theo các tài liệu đã có ở các giai đoạn trước. Source Code và sản phẩm được phát triển.
Testing Kiểm tra phần mềm theo cách thủ công hoặc sử dụng các công cụ kiểm thử tự động phụ thuộc vào quy trình được xác định trong STLC. Test plan, Test case, bug report và sản phẩm chất lượng.
Deployment and Maintenance Triển khai sản phẩm và bảo trì. Nội dung triển khai và bảo trì

Hi vọng những kiến thức trên sẽ giúp ích với bạn trong quá trình tìm hiểu về phát triển phần mềm cũng như kiểm thử phần mềm.

Tài liệu tham khảo

https://www.softwaretestingmaterial.com/sdlc-software-development-life-cycle/