SDLC là gì?

SDLC là viết tắt của Software Development Life Cycle hay còn gọi là Application Development life-cycle, là một quy trình có hệ thống để xây dựng phần mềm nhằm đảm bảo chất lượng và tính đúng đắn của phần mềm được xây dựng. Quy trình SDLC nhằm mục đích sản xuất phần mềm chất lượng cao đáp ứng mong đợi của khách hàng. Việc phát triển hệ thống phải được hoàn thành trong khung thời gian và chi phí đã xác định trước. SDLC bao gồm một kế hoạch chi tiết giải thích cách lập kế hoạch, xây dựng và duy trì phần mềm cụ thể. Mỗi giai đoạn của Vòng đời SDLC đều có quy trình riêng và các sản phẩm cung cấp cho giai đoạn tiếp theo.

Tại sao lại là SDLC?

Dưới đây là những lý do chính tại sao SDLC lại quan trọng đối với việc phát triển hệ thống phần mềm.

  • Nó cung cấp cơ sở để lập kế hoạch, lập lịch trình và ước tính dự án
  • Cung cấp khuôn khổ cho một tập hợp các hoạt động và sản phẩm tiêu chuẩn
  • Nó là một cơ chế để theo dõi và kiểm soát dự án
  • Tăng khả năng hiển thị của lập kế hoạch dự án cho tất cả các bên liên quan có liên quan của quá trình phát triển
  • Tăng và nâng cao tốc độ phát triển
  • Cải thiện quan hệ khách hàng
  • Giúp bạn giảm thiểu rủi ro dự án và chi phí kế hoạch quản lý dự án

Các giai đoạn của một SDLC

Quá trình SDLC được chia thành các bước như bên dưới:

  • Giai đoạn 1: Thu thập và phân tích yêu cầu
  • Giai đoạn 2: Nghiên cứu khả thi
  • Giai đoạn 3: Thiết kế
  • Giai đoạn 4: Mã hóa
  • Giai đoạn 5: Thử nghiệm
  • Giai đoạn 6: Cài đặt / Triển khai
  • Giai đoạn 7: Bảo trì

Tiếp theo, hày cùng tìm hiểu về chi tiết về từng Giai đoạn của SDLC.

Giai đoạn 1: Thu thập và phân tích yêu cầu

“Yêu cầu” là giai đoạn đầu tiên trong quá trình SDLC. Nó được thực hiện bởi các thành viên trong nhóm cấp cao với đầu vào từ tất cả các bên liên quan và các chuyên gia lĩnh vực trong ngành. Lập kế hoạch cho các yêu cầu đảm bảo chất lượng và nhận biết các rủi ro liên quan cũng được thực hiện ở giai đoạn này.

Giai đoạn này cho ta một bức tranh rõ ràng hơn về phạm vi của toàn bộ dự án và các vấn đề, cơ hội và chỉ thị được dự đoán trước để kích hoạt dự án.

Giai đoạn thu thập yêu cầu cần các team lên yêu cầu chi tiết và chính xác. Điều này giúp các công ty chốt được timeline cần thiết để hoàn thành các công việc của hệ thống đó.

Giai đoạn 2: Nghiên cứu khả thi

Khi giai đoạn phân tích yêu cầu được hoàn thành, bước SDLC tiếp theo là xác định và lập hồ sơ các nhu cầu phần mềm. Quá trình này được thực hiện với sự trợ giúp của tài liệu 'Đặc điểm kỹ thuật yêu cầu phần mềm' còn được gọi là tài liệu 'SRS' (Software Requirement Specification). Nó bao gồm mọi thứ cần được thiết kế và phát triển trong vòng đời của dự án.

Chủ yếu có năm loại kiểm tra tính khả thi:

  • Về kinh tế: Có thể hoàn thành dự án trong phạm vi ngân sách hay không?
  • Pháp lý: Có thể xử lý dự án này theo luật không gian mạng và các khuôn khổ / quy định pháp lý khác không.
  • Tính khả thi của operation: Có thể tạo ra các hoạt động mà khách hàng mong đợi không?
  • Kỹ thuật: Cần kiểm tra xem hệ thống máy tính hiện tại có thể hỗ trợ phần mềm hay không
  • Lịch trình: Quyết định rằng dự án có thể được hoàn thành trong tiến độ đã cho hay không.

Giai đoạn 3: Thiết kế

Trong giai đoạn thứ ba này, hệ thống và tài liệu thiết kế phần mềm được chuẩn bị theo tài liệu đặc tả yêu cầu, giúp xác định kiến ​​trúc hệ thống tổng thể. Giai đoạn thiết kế này đóng vai trò là đầu vào cho giai đoạn tiếp theo của mô hình.

Có hai loại tài liệu thiết kế được phát triển trong giai đoạn này:

Thiết kế cấp cao (High-Level Design - HLD)

  • Mô tả ngắn gọn và tên của từng mô-đun
  • Sơ lược về chức năng của mọi mô-đun
  • Mối quan hệ giao diện và sự phụ thuộc giữa các mô-đun
  • Các bảng cơ sở dữ liệu được xác định cùng với các yếu tố chính
  • Sơ đồ kiến ​​trúc hoàn chỉnh cùng với chi tiết công nghệ

Thiết kế cấp thấp (Low-Level Design - LLD)

  • Logic chức năng của các mô-đun
  • Các bảng cơ sở dữ liệu, bao gồm loại và kích thước
  • Toàn bộ chi tiết của giao diện
  • Giải quyết tất cả các loại vấn đề phụ thuộc
  • Danh sách các thông báo lỗi
  • Hoàn thành đầu vào và đầu ra cho mọi mô-đun

Giai đoạn 4: Mã hóa (Coding)

Khi giai đoạn thiết kế hệ thống kết thúc, giai đoạn tiếp theo là mã hóa. Trong giai đoạn này, các nhà phát triển bắt đầu xây dựng toàn bộ hệ thống bằng cách viết mã sử dụng ngôn ngữ lập trình đã chọn. Trong giai đoạn mã hóa, các nhiệm vụ được chia thành các đơn vị hoặc mô-đun và được giao cho các nhà phát triển khác nhau. Đây là giai đoạn dài nhất của quy trình SDLC.

Trong giai đoạn này, Nhà phát triển cần tuân theo một số nguyên tắc mã hóa được xác định trước. Họ cũng cần sử dụng các công cụ lập trình như trình biên dịch, trình thông dịch, trình gỡ lỗi để tạo và triển khai mã.

Giai đoạn 5: Kiểm thử (Testing)

Sau khi phần mềm hoàn tất và được triển khai trong môi trường thử nghiệm. Nhóm kiểm thử bắt đầu kiểm tra chức năng của toàn bộ hệ thống để xác minh rằng toàn bộ ứng dụng hoạt động theo yêu cầu của khách hàng.

Trong giai đoạn này, QA và nhóm kiểm tra có thể tìm thấy một số lỗi / khiếm khuyết và sẽ thông báo cho nhà phát triển. Nhóm phát triển sửa lỗi và gửi lại QA để kiểm tra lại. Quá trình này tiếp tục cho đến khi phần mềm không có lỗi, ổn định và hoạt động theo nhu cầu kinh doanh của hệ thống đó.

Giai đoạn 6: Cài đặt / Triển khai

Khi giai đoạn kiểm thử phần mềm kết thúc và không còn lỗi hoặc lỗi nào trong hệ thống thì quá trình triển khai cuối cùng sẽ bắt đầu. Dựa trên phản hồi do người quản lý dự án đưa ra, phần mềm cuối cùng được phát hành và kiểm tra các vấn đề triển khai nếu có.

Giai đoạn 7: Bảo trì

Khi hệ thống được triển khai và khách hàng bắt đầu sử dụng hệ thống đã phát triển, 3 hoạt động sau sẽ diễn ra

  • Sửa lỗi - lỗi được báo cáo do một số tình huống chưa được kiểm tra
  • Nâng cấp - Nâng cấp ứng dụng lên các phiên bản mới hơn của Phần mềm
  • Cải tiến - Thêm một số tính năng mới vào phần mềm hiện có

Trọng tâm chính của giai đoạn SDLC này là đảm bảo rằng các nhu cầu đó tiếp tục được đáp ứng và hệ thống tiếp tục hoạt động theo thông số kỹ thuật được đề cập trong giai đoạn đầu tiên.

Các mô hình SDLC phổ biến

Dưới đây là một số mô hình quan trọng nhất của SDLC:

Waterfall model - Mô hình thác nước trong SDLC

Waterfall là một mô hình SDLC phổ biến rộng rãi. Theo cách tiếp cận này, toàn bộ quá trình phát triển phần mềm được chia thành các giai đoạn khác nhau của SDLC. Trong mô hình SDLC này, kết quả của một giai đoạn đóng vai trò là đầu vào cho giai đoạn tiếp theo.

Mô hình SDLC này đòi hỏi nhiều tài liệu, với các giai đoạn trước đó ghi lại những gì cần được thực hiện trong các giai đoạn tiếp theo.

Incremental Model - Mô hình gia tăng trong SDLC

Mô hình gia tăng không phải là một mô hình riêng biệt. Về bản chất nó là một chuỗi các chu kỳ thác nước. Các yêu cầu được chia thành các nhóm khi bắt đầu dự án. Đối với mỗi nhóm, mô hình SDLC được tuân theo để phát triển phần mềm. Quy trình vòng đời SDLC được lặp lại, với mỗi bản phát hành sẽ bổ sung thêm nhiều chức năng cho đến khi đáp ứng tất cả các yêu cầu. Trong phương pháp này, mọi chu kỳ hoạt động như giai đoạn bảo trì cho bản phát hành phần mềm trước đó. Việc sửa đổi đối với mô hình gia tăng cho phép các chu kỳ phát triển chồng chéo lên nhau. Sau đó chu kỳ tiếp theo có thể bắt đầu trước khi chu kỳ trước đó hoàn thành.

V-Model trong SDLC

Trong loại thử nghiệm và phát triển mô hình SDLC này, các giai đoạn được lập kế hoạch song song. Vì vậy, các giai đoạn xác minh của SDLC ở một bên và giai đoạn xác nhận ở bên còn lại. V-Model tham gia theo giai đoạn Mã hóa.

Mô hình Agile trong SDLC

Phương pháp Agile là một phương pháp thực hành thúc đẩy sự tương tác liên tục giữa phát triển và kiểm tra trong quá trình SDLC của bất kỳ dự án nào. Trong phương pháp Agile, toàn bộ dự án được chia thành các bản xây dựng nhỏ tăng dần. Tất cả các bản dựng này đều được cung cấp theo nhiều lần lặp lại và mỗi lần lặp lại kéo dài từ một đến ba tuần.

Spiral - Mô hình xoắn ốc

Mô hình xoắn ốc là một mô hình quá trình theo hướng rủi ro (risk-driven process). Mô hình thử nghiệm SDLC này giúp nhóm áp dụng các yếu tố của một hoặc nhiều mô hình quy trình như thác nước, tăng dần, thác nước, v.v.

Mô hình này áp dụng các tính năng tốt nhất của mô hình tạo mẫu và mô hình thác nước. Phương pháp xoắn ốc là sự kết hợp giữa tạo mẫu nhanh và tính đồng thời trong các hoạt động thiết kế và phát triển.

Big bang - Mô hình vụ nổ lớn

Mô hình vụ nổ lớn tập trung vào tất cả các loại tài nguyên trong phát triển phần mềm và mã hóa, không có hoặc có rất ít kế hoạch. Các yêu cầu được hiểu và thực hiện khi chúng đến.

Mô hình này hoạt động tốt nhất cho các dự án nhỏ với nhóm phát triển quy mô nhỏ hơn đang làm việc cùng nhau. Nó cũng hữu ích cho các dự án phát triển phần mềm học thuật. Đây là một mô hình lý tưởng mà các yêu cầu không xác định hoặc ngày phát hành cuối cùng không được đưa ra.

Tóm lược

  • Quy trình phát triển phần mềm (SDLC) là một quy trình có hệ thống để xây dựng phần mềm nhằm đảm bảo chất lượng và tính đúng đắn của phần mềm được xây dựng
  • SDLC trong kỹ thuật phần mềm cung cấp một khuôn khổ cho một tập hợp các hoạt động và sản phẩm tiêu chuẩn
  • Bảy giai đoạn SDLC khác nhau là 1) Thu thập và phân tích yêu cầu 2) Nghiên cứu khả thi: 3) Thiết kế 4) Mã hóa 5) Kiểm tra: 6) Cài đặt / Triển khai và 7) Bảo trì
  • Các thành viên cấp cao của nhóm tiến hành giai đoạn phân tích yêu cầu
  • Giai đoạn Nghiên cứu khả thi bao gồm mọi thứ cần được thiết kế và phát triển trong vòng đời của dự án
  • Trong giai đoạn Thiết kế, tài liệu thiết kế hệ thống và phần mềm được chuẩn bị theo tài liệu đặc tả yêu cầu
  • Trong giai đoạn viết mã, các nhà phát triển bắt đầu xây dựng toàn bộ hệ thống bằng cách viết mã bằng ngôn ngữ lập trình đã chọn
  • Thử nghiệm là giai đoạn tiếp theo được tiến hành để xác minh rằng toàn bộ ứng dụng hoạt động theo yêu cầu của khách hàng.
  • Giai đoạn cài đặt và triển khai bắt đầu khi giai đoạn kiểm tra phần mềm kết thúc và không có lỗi hoặc lỗi nào trong hệ thống
  • Các hành động sửa lỗi, nâng cấp và tương tác được thực hiện trong giai đoạn bảo trì
  • Mô hình Waterfall, Incremental, Agile, V, Spiral, Big Bang là một số mô hình SDLC phổ biến trong kỹ thuật phần mềm
  • SDLC trong kiểm thử phần mềm bao gồm một kế hoạch chi tiết giải thích cách lập kế hoạch, xây dựng và duy trì phần mềm cụ thể

Tổng hợp việc làm IT - Software trên VietnamWorks
VietnamWorks InTECH
Theo guru99