Tổng quan về các quy trình phát triển phần mềm tại ITnavi

0
216

Đối với các công ty sản xuất hay gia công phần mềm, quy trình sản xuất phần mềm có tính quyết định để tạo ra một sản phẩm chất lượng với chi phí thấp và trong thời gian ngắn. Vậy quy trình phát triển phần mềm là gì, cần những yếu tố gì để có được quy trình sản xuất chất lượng, mang lại hiệu quả cao?

Quy trình phát triển phần mềm là gì?

Quy trình phát triển phần mềm là một cấu trúc bao gồm tập hợp các hoạt động của tổ chức trong phát triển để sản xuất ra một sản phẩm phần mềm.

Quy trình phát triển phần mềm

Quy trình phát triển phần mềm

Nó giúp cho mọi thành viên trong dự án từ người cũ đến mới, trong hay ngoài công ty đều có thể xử lý đồng bộ những công việc tương ứng vị trí của mình thông qua một cách thức chung của công ty.

Nói một cách dễ hiểu quy trình phát triển phần mềm là đưa những yêu cầu của khách hàng thành một ứng dụng/hệ thống phần mềm hoàn chỉnh một cách nhanh nhất, tốt nhất.

Quy trình phát triển phần mềm giúp trả lời những câu hỏi:

  • Nhân sự: Ai sẽ làm? Ai làm việc gì?
  • Thời gian: Khi nào bắt đầu làm? Mất bao nhiêu thời gian để hoàn thành?
  • Phương pháp: Làm như thế nào?
  • Công cụ: Cần sử dụng những công cụ gì để hoàn thành công việc?
  • Chi phí: Chi phí bỏ ra là bao nhiêu và thu về được bao nhiêu?
  • Mục tiêu: Mục tiêu hướng đến là gì?

Với mỗi loại hệ thống khác nhau hay những yêu cầu khác nhau thì cần những quy trình phát triển khác nhau. Việc lựa chọn quy trình phát triển phù hợp giúp tạo ra sản phẩm chất lượng, nâng cao năng suất, giảm thiểu chi phí từ đó gia tăng tính cạnh tranh và đem lại lợi nhuận cao cho doanh nghiệp.

Bạn đọc quan tâm: UI UX là gì– Khái niệm,kĩ năng,công việc của một UX,UI hiện nay

Các giai đoạn cơ bản của quy trình phát triển phần mềm

Có rất nhiều những quy trình phát triển phần mềm khác nhau nhưng nhìn chung, một quy trình sản xuất gồm các giai đoạn: giải pháp/yêu cầu, thiết kế. lập trình, kiểm thử và triển khai.

Giải pháp/yêu cầu (Requirements)

Nhiệm vụ: Thực hiện khảo sát chi tiết yêu cầu khách hàng và tổng hợp vào tài liệu giải pháp (phân tích nghiệp vụ, phân tích yêu cầu, đặc tả yêu cầu, bản thiết kế mẫu). Tài liệu giải pháp phải miêu tả đầy đủ các yêu cầu về chức năng, phi chức năng và giao diện cần đáp ứng.

Đầu ra của giai đoạn này chính là tài liệu đặc tả yêu cầu, bản thiết kế mẫu.

Thiết kế (Design)

Nhiệm vụ: Thực hiện thiết kế và tổng hợp vào tài liệu thiết kế.

Đầu ra: Bản thiết kế tổng thể, thiết kế CSDL (Database), thiết kế chi tiết.

Lập trình (Coding)

Nhiệm vụ: Lập trình viên thực hiện lập trình dựa trên tài liệu Giải pháp và Thiết kế đã được phê duyệt.

Đầu ra: Mã nguồn (Source Code)

Kiểm thử (Test)

Nhiệm vụ: Cán bộ kiểm thử tạo kịch bản kiểm thử (test case) dựa trên tài liệu đặc tả yêu cầu, thực hiện kiểm thử và cập nhật kết quả vào kịch bản kiểm thử. Trong quá trình kiểm thử, khi phát hiện các lỗi sẽ log lên các tool quản lý lỗi. Nhân viên kiểm thử (Tester) và nhân viên lập trình (Developer) sẽ phối hợp xử lý các lỗi và cập nhật lên hệ thống quản lý lỗi.

Đầu ra: Testcase, các lỗi trên hệ thống quản lý lỗi.

Triển khai (Implemetations)

Nhiệm vụ: Triển khai sản phẩm cho khách hàng.

Đầu ra: Biên bản triển khai với khách hàng.

Bạn đọc tham khảo thêm: Fresher là gì? Tổng quan kiến thức về Fresher cho người mới

Một số mô hình được sử dụng trong phát triển phần mềm

Có rất nhiều những mô hình phát triển phần mềm khác nhau như mô hình thác nước, mô hình chữ V, mô hình xoắn ốc, mô hình Agile/Scrum, quy trình phát triển phần mềm rup,… Bài viết này, hãy cùng chúng tôi tìm hiểu về 3 mô hình được sử dụng nhiều nhất nhé!

Phát triển phần mềm theo mô hình thác nước – Waterfall

Đây là mô hình bao gồm các giai đoạn xử lý nối tiếp nhau như:

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

Mô hình thác nước – Waterfall

Phân tích yêu cầu và tài liệu đặc tả (Requirements & Specifications): Đây là giai đoạn xác định các yêu cầu liên quan đến chức năng và phi chức năng mà hệ thống cần có.

Giai đoạn này cần có sự tham gia tích cực của khách hàng và kết thúc bằng bản tài liệu đặc tả yêu cầu hay SRS (software requirement specification). Tài liệu này chính là nền tảng cho các hoạt động tiếp theo đến cuối dự án.

Phân tích và thiết kế hệ thống (System Analysis & Design): Là giai đoạn phân tích và định ra làm thế nào để hệ thống phần mềm đáp ứng những yêu cầu của khách hàng theo tại liệu SRS. Giai đoạn này thực hiện các hoạt động phân tích, thiết kế hệ thống phần mềm.

Lập trình (Coding & Unit Test):Là giai đoạn hiện thực sản phẩm dựa trên tài liệu SRS và tài liệu thiết kế hệ thống được chỉ ra ở giai đoạn trên.

Kiểm thử (Testing): Sau khi nhận sản phẩm từ nhân viên lập trình (dev), Tester thực hiện kiểm thử cho nhóm các thành phần và kiểm thử toàn hệ thống (system test). Khâu kiểm thử cuối cùng sẽ là kiểm thử chấp nhận (acceptance test), giai đoạn này còn có sự tham gia của khách hàng trong vai trò chính để xác định hệ thống phần mềm có đáp ứng yêu cầu của họ hay không.

Cài đặt và bảo trì (Development & Maintenance): đây là giai đoạn cài đặt, cấu hình và đào tạo cho khách hàng. Giai đoạn này sửa chữa những lỗi của phần mềm (nếu có) và phát triển những thay đổi mới được khách hàng yêu cầu (sửa đổi, thêm bớt chức năng/đặc điểm của hệ thống).

Đặc điểm của mô hình này:

  • Áp dụng cho các phần mềm quy mô vừa và nhỏ.
  • Các dự án có yêu cầu rõ ràng.
  • Nguồn lực được đào tạo và có sẵn.

Nhược điểm: đến những giai đoạn cuối của dự án mới nhận ra sai sót trong những giai đoạn trước và phải quay lại để sửa chữa.

Mô hình chữ V – V Model

Quy trình phát triển phần mềm theo mô hình chữ V được phát triển dựa trên mô hình thác nước. Toàn bộ quy trình được chia thành hai nhánh: nhánh phát triển và nhánh kiểm thử.

Mô hình chữ V - V Model

Mô hình chữ V – V Model

Mỗi giai đoạn phát triển sẽ tiến hành song song với một giai đoạn kiểm thử tương ứng, từ đó các lỗi được phát hiện sớm ngay từ đầu.

Giai đoạn phát triển:

  • Xác định yêu cầu và đặc tả (Requirement & Specification)
  • Phân tích hệ thống (System Analysis)
  • Thiết kế chi tiết (Detailed Design): Chi tiết hóa các bước thực hiện xây dựng hệ thống (cả giao diện và nội dung).
  • Phát triển (Development): Thực hiện việc viết code.

Giai đoạn kiểm thử:

  • Kiểm tra từng phần và tích hợp (Unit & Integration Test): Kiểm tra các module của hệ thống tương ứng với pha thiết kế chi tiết.
  • Kiểm thử toàn hệ thống (System Test): Kiểm thử hoạt động của hệ thống (về cả chức năng và giao diện).
  • Kiểm thử chấp nhận (Accepted Test): Kiểm tra lần cuối và nghiệm thu sản phẩm, đưa vào sử dụng.

Ưu điểm

Tester tham gia ngay từ đầu nên lỗi được phát hiện sớm hơn, ít tốn thời gian và chi phí hơn các giai đoạn sau.

Nhược điểm:

Các yêu cầu được đưa vào thực hiện cùng 1 lúc nên dễ gặp phải các rủi ro khi thay đổi yêu cầu từ phía khách hàng.

Mô hình sản xuất theo quy trình phát triển phần mềm Agile/Scrum

Agile là phương pháp phát triển phần mềm linh hoạt, làm thế nào để đưa sản phẩm đến tay người dùng một cách nhanh nhất. Scrum là một quy trình phát triển phần mềm theo mô hình Agile nhờ đó mang lại tính thích nghi cao. Dựa trên các thông tin minh bạch từ quá trình thanh tra, Scrum có thể phản hồi các thay đổi một cách tích cực, nhờ đó mang lại thành công cho dự án.

Quy trình phát triển phần mềm Scrum

Quy trình phát triển phần mềm Scrum/ Agile

Quy trình phát triển phần mềm Scrum không thực hiện toàn bộ yêu cầu/nghiệp vụ của hệ thống vào Code và Test cùng 1 lúc mà sẽ chia các yêu cầu ra làm theo từng giai đoạn, mỗi giai đoạn chỉ làm 1 số lượng yêu cầu nhất định được gọi là sprint.

Mỗi sprint thường kéo dài từ 1 đến 4 tuần (không dài hơn 1 tháng). Đầu mỗi sprint sẽ lên kế hoạch làm những yêu cầu nào, sau đó thực hiện code và test. Cuối sprint là 1 sản phẩm hoàn thiện cả code lẫn test và có thể demo chạy được. Hoàn thành sprint 1, tiếp tục làm đến sprint 2, sprint 3,… cho đến khi hoàn thành hết các yêu cầu.

Ưu điểm:

Quy trình này phù hợp với những yêu cầu/nghiệp vụ hay thay đổi hoặc nghiên cứu hệ thống theo từng giai đoạn ngắn ngày, có thể nhìn thấy những rủi ro hay những điểm chưa phù hợp để thay đổi.

Nhược điểm:

Quy mô nhân lực thường giới hạn, sẽ có sự trở ngại với những dự án yêu cầu nguồn nhân lực lớn. Yêu cầu nguồn nhân lực phải có kiến thức về Agile.

Trên đây là những kiến thức về quy trình phát triển phần mềm và những mô hình phổ biến nhất hiện nay. Việc lựa chọn các mô hình phát triển phần mềm ảnh hưởng lớn đến hiệu suất và chi phí hoạt động của công ty, do đó cần tìm hiểu thật kỹ và áp dụng quy trình phù hợp nhất nhé.

LEAVE A REPLY

Please enter your comment!
Please enter your name here