Quy trình phát triển phần mềm - itnavi.com.vn
Hiểu được quy trình phát triển phần mềm chuẩn chỉnh không chỉ giúp developers tạo ra được các sản phẩm chất lượng có hiệu quả cao mà còn mang lại cơ hội rộng lớn về nghề nghiệp trong ngành Công nghệ thông tin. Trong bài viết này, cùng ITNavi tìm hiểu về quy trình và mô hình phát triển phần mềm một cách tổng quan nhé!
Quy trình phát triển phần mềm - SDLC - Software Development Life Cycle
1. Tổng quan quy trình phát triển phần mềm
Theo định nghĩa từ Indeed, quy trình phát triển phần mềm (SDLC - Software Development Life Cycle) là toàn bộ quá trình xây dựng lên sản phẩm đáp ứng các thông số kỹ thuật và yêu cầu của người dùng. SDLC cung cấp một tiêu chuẩn quốc tế mà các công ty sản xuất phần mềm có thể sử dụng để xây dựng và cải tiến sản phẩm công nghệ. Một quy trình tốt sẽ luôn tạo ra những sản phẩm đạt tiêu chuẩn.
Quy trình được chia thành 6 bước và mỗi giai đoạn đều có sự tham gia của đội ngũ phát triển phần mềm. Quy trình giúp tương tác hóa các hoạt động và yếu tố với nhau một cách nhịp nhàng, đem lại hiệu quả trong quá trình sản xuất phần mềm. Chúng ta hãy cùng tìm kiểu rõ hơn về 6 bước này trong phần tiếp theo.
2. 6 giai đoạn phát triển phần mềm
Quy trình phát triển phần mềm bao gồm 6 giai đoạn: Needs identification (Xác định nhu cầu), Requirements Analytics (Phân tích yêu cầu), Design (Thiết kế), Development (Lập trình), Testing (Kiểm thử), Deployment & Maintenance (Triển khai & bảo trì).
Giai đoạn 1: Needs identification (Xác định nhu cầu)
Needs identification là giai đoạn nghiên cứu thị trường và brainstorming (phương pháp động não) của quy trình. Trước khi xây dựng phần mềm, công ty cần thực hiện nghiên cứu sâu rộng thị trường để xác định khả năng tồn tại của sản phẩm. Developers phải xác định được các chức năng và dịch vụ mà phần mềm nên cung cấp được cho người tiêu dùng để họ cảm thấy sản phẩm cần thiết và hữu ích.
Ngoài ra, developers cũng nên thảo luận cùng với các bộ phận khác trong công ty về : Điểm mạnh, điểm yếu và cơ hội của sản phẩm. Quá trình phát triển phần mềm chỉ bắt đầu nếu sản phẩm thỏa mãn được mọi thông số nhất thiết để thành công.
Xác định nhu cầu là giai đoạn 1 trong quy trình phát triển phần mềm.
Giai đoạn 2: Requirements Analytics (Phân tích yêu cầu)
Requirements Analytics là giai đoạn thực hiện khảo sát chi tiết yêu cầu, mong muốn của khách hàng. Sau đó, thông tin sẽ được tổng hợp vào tài liệu đặc tả yêu cầu ( Prototype). Tài liệu đặc tả phải đầy đủ các yêu cầu về chức năng, phi chức năng và giao diện. Ngoài ra, tài liệu còn cung cấp một bản phác thảo chi tiết về thành phần, phạm vi, nhiệm vụ của developers và các thông số thử nghiệm để tạo ra sản phẩm chất lượng.
Phân tích yêu cầu cũng là giai đoạn mà các developers lựa chọn cách tiếp cận phát triển phần mềm như: Mô hình chữ V (V Model) hay mô hình thác nước (Waterfall)
Giai đoạn 3: Design (Thiết kế)
Sau khi đã xác định & phân tích kỹ lưỡng về yêu cầu, chúng ta sẽ chuyển sang giai đoạn nắm vai trò quan trọng thiết yếu của Quy trình phát triển phần mềm - Design (thiết kế). Tại đây, các kiến trúc sư và nhà phát triển phần mềm sẽ đưa ra các thông số kỹ thuật tiên tiến mà họ cần để tạo ra sản phẩm theo yêu cầu. Vấn đề cần được thảo luận thêm giữa các bên bao gồm: Mức độ rủi ro, thành phần nhóm, công nghệ áp dụng, thời gian, ngân sách, giới hạn của dự án, phương pháp và thiết kế kiến trúc.
Tài liệu DSD (Đặc điểm kỹ thuật thiết kế) sẽ là kết quả cuối cùng của giai đoạn. DSD chỉ định thiết kế kiến trúc, thành phần, giao tiếp, đại diện front-end và luồng người dùng của sản phẩm.
Giai đoạn 4: Development (Lập trình)
Tại giai đoạn 4, developers sẽ lập trình và triển khai thông số thiết kế. Lập trình viên sẽ coding dựa trên các thông số kỹ thuật và yêu cầu của sản phẩm đã được thống nhất trong các giai đoạn trước.
Sau khi coding hoàn tất, developers sẽ deploy sản phẩm trong môi trường phát triển (development environment). Lập trình viên sẽ thử nghiệm phiên bản đã tạo ra và điều chỉnh lại cho phù hợp với yêu cầu.
Lập trình là giai đoạn thứ 4 của quy trình phát triển phần mềm.
Giai đoạn 5: Testing (Kiểm thử)
Sau khi developers đã hoàn thành giai đoạn lập trình, tester sẽ tiếp nhận sản phẩm và tiến hành testing. Tester sẽ tạo test case (Kịch bản kiểm thử) dựa trên tài liệu giải pháp tạo ở giai đoạn 2 và tiến hành kiểm tra. Tester sẽ cập nhật kết quả test vào tool quản lý và thông báo bug (lỗi) đến developers. Tester và developers sẽ cùng nhau phối hợp xử lý các bug và cập nhật trên hệ thống quản lý lỗi. Trong thực tế, tùy theo mô hình phát triển phần mềm mà hoạt động Develop và Kiểm Thử có thể diễn ra song song hoặc tiến hành lần lượt. Vì dụ như ở mô hình Waterfall, lập trình được thực hiện xong mới đến giai đoạn kiểm thử.
Giai đoạn 6: Deployment & Maintenance (Triển khai & bảo trì)
Tại giai đoạn này khi lỗi đã được xử lý xong, nhà phát triển phần mềm sẽ cung cấp sản phẩm hoàn chỉnh đến tay khách hàng. Testing vẫn được diễn ra ở giai đoạn triển khai để đảm bảo sản phẩm luôn có mức độ hoàn hảo cao. Sau khi phát hành, công ty sẽ tạo ra một nhóm bảo trì để quản lý các vấn đề mà khách hàng gặp phải khi sử dụng sản phẩm. Bảo trì giúp khắc phục nhanh các vấn đề nhỏ xảy ra trong quá trình sử dụng sản phẩm.
3. Các kiểu mô hình phát triển phần mềm
Có 3 kiểu mô hình phát triển phần mềm được áp dụng phổ biến: Waterfall model (Mô hình thác nước), V model (Mô hình chữ V), Agile model & Scrum Process
A, Waterfall model (Mô hình thác nước)
Waterfall model được coi là mô hình phát triển phần mềm đầu tiên được sử dụng. Đây là mô hình áp dụng theo tính tuần tự của các giai đoạn phát triển phần mềm; giai đoạn sau chỉ được thực hiện tiếp khi giai đoạn trước đã kết thúc. Nhược điểm của mô hình này là không được quay lại giai đoạn trước để xử lí các thay đổi trong yêu cầu. Vì vậy, mô hình thác nước chỉ phù hợp với các dự án không thường xuyên bị thay đổi về nghiệp vụ.
Mô hình thác nước được coi là mô hình phát triển phần mềm đầu tiên được sử dụng.
B, V model (Mô hình chữ V)
V model là quy trình được sử dụng nhiều tại các công ty sản xuất phần mềm. Khi áp dụng V model, toàn bộ quy trình phát triển phần mềm được chia thành 2 giai đoạn tiến hành song song tương ứng nhau: Phát triển và Kiểm thử. Trong mô hình chữ V, việc kiểm thử được diễn ra ngay từ giai đoạn lấy yêu cầu nên lỗi được tìm ra ngay từ sớm để khắc phục. Muốn áp dụng được mô hình chữ V thì yêu cầu phần mềm phải xác định rõ ràng; công nghệ phần mềm và các công cụ phải được tìm hiểu kỹ.
C, Agile model & Scrum Process
Agile model được tạo ra dựa trên 2 mô hình: Iterative (Lặp lại) và Incremental (Tăng dần). Mô hình Agile 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. Agile được 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 như 3 - 4 tuần.
Scrum là một “khung quản lý dự án” được áp dụng rất rộng rãi từ những dự án đơn giản với một nhóm phát triển nhỏ cho đến những dự án có yêu cầu rất phức tạp với hàng trăm người tham gia. Ngoài ra, Scrum Process cũng phù hợp với những dự án đòi hỏi khung thời gian cố định.
Trong Scrum, công việc sẽ được chia nhỏ thành nhiều giai đoạn gọi là Sprint. Mỗi Sprint chỉ kéo dài từ 1 đến 4 tuần, không quá một tháng. Đầu Sprint sẽ lên kế hoạch làm những yêu cầu nào rồi thực hiện code và test. Cuối Sprint là một sản phẩm hoàn thiện cả code lẫn test có thể demo và chạy được.
Kết luận
Phát triển phần mềm đang ngành nghề cực HOT lương cao hiện nay không chỉ ở Việt Nam và trên thế giới. Nắm được quy trình phát triển phần mềm là yêu cầu tối thiểu để trở thành developers trong tương lai.
Mở rộng ngay cơ hội việc làm phát triển phần mềm tại ITNavi - Nền tảng kết nối việc làm It với hơn 1000++ jobs cập nhật mỗi ngày.
Xem thêm:
1000 việc làm IT tại Nền tảng kết nối việc làm ITNavi