Quy Trình Phát Triển Phần Mềm, Và Các Mô Hình Phát Triển Phần Mềm
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
Mục lục bài viết
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.
Bạn đang xem: Quy trình phát triển phần mềm
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ụ.
Xem thêm: ( Top 5 Phần Mềm Theo Dõi Điện Thoại Tốt Nhất Hiện Nay, Phần Mềm Nghe Lén Điện Thoại
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.
Mục lục nội dung
I. Tổng quan về quy trình phát triển phần mềm
II. Các mô hình phát triển phần mềm
III. TÌm hiểu về Mô hình Scrum3. Ưu điểm, nhược điểm của mô hình Scrum4. Các nhân tố cấu tạo lên 1 quy trình phát triển phần mềm trong Scrum
I. Tổng quan về quy trình phát triển phần mềm
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. Nó giúp tương tác hóa các hoạt động và yếu tố với nhau một các nhịp nhàng, đem lại hiệu quả.Có thể cho rằng quy trình phần mềm đem lại chất lượng, năng suất, giá thành phần phềm, từ đó tăng tính cạnh tranh và đem lại lợi nhuận cao cho doanh nghiệp.
1. Khái niệm Quy trình phát triển phần mềm
I. Tổng quan về quy trình phát triển phần mềmII. Các mô hình phát triển phần mềmIII. TÌm hiểu về Mô hình Scrum3. Ưu điểm, nhược điểm của mô hình Scrum4. Các nhân tố cấu tạo lên 1 quy trình phát triển phần mềm trong ScrumMộ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. Nó giúp tương tác hóa các hoạt động và yếu tố với nhau một các nhịp nhàng, đem lại hiệu quả.Có thể cho rằng quy trình phần mềm đem lại chất lượng, năng suất, giá thành phần phềm, từ đó tăng tính cạnh tranh và đem lại lợi nhuận cao cho doanh nghiệp.
Quy trình phát triển phần mềm là một tập hợp các hoạt động tổ chức mà mục đích của chúng là xây dựng và phát triển phần mềm.
Những câu hỏi được đặt ra ở đâu là:Nhân sự: Ai sẽ làm? Ai làm gì?
Thời gian: Khi nào làm? Làm mất bao nhiêu thời gian?
Phương pháp: Làm như thế nào?
Công cụ: Dùng công cụ gì để làm công việc này?
Chi phí: Chi phí bỏ ra bao nhiêu? Thu về bao nhiêu? (ước tính)Mục tiêu: Mục tiêu hướng đến là gì?
Mỗi loại hệ thống khác nhau thì cần những quy trình phát triển khác nhau.
2. Các hoạt động cơ bản của quy trình phát triển phần mềm
Những câu hỏi được đặt ra ở đâu là:Nhân sự: Ai sẽ làm? Ai làm gì?Thời gian: Khi nào làm? Làm mất bao nhiêu thời gian?Phương pháp: Làm như thế nào?Công cụ: Dùng công cụ gì để làm công việc này?Chi phí: Chi phí bỏ ra bao nhiêu? Thu về bao nhiêu? (ước tính)Mục tiêu: Mục tiêu hướng đến là gì?Mỗi loại hệ thống khác nhau thì cần những quy trình phát triển khác nhau.
Có 4 thao tác là nền tảng của hầu hết các quy trình phát triển phần mềm:
Đặc tả phần mềm: Định nghĩa được các chức năng, điều kiện hoạt động của phần mềm.Quy trình phát triển phần mềm: Là quá trình xây dựng các đặc tả.Đánh giá phần mềm: Phầm mềm phải được đánh giá để chắc chắn rằng ít nhất có thể thực hiện những gì mà tài liệu đặc tả yêu cầu.Tiến hóa phần mềm: Đây là quá trình hoàn thiện các chức năng cũng như giao diện để ngày càng hoàn thiện phần mềm cũng như các yêu cầu đưa ra từ phía khách hàng.
Kỹ thuật phần mềm là gì? Có nên theo ngành này?
Những phần mềm nên cài đặt trên ubuntu
II. Các mô hình phát triển phần mềm
1. Waterfall model – Mô hình thác nước
Đặc tả phần mềm: Định nghĩa được các chức năng, điều kiện hoạt động của phần mềm.Quy trình phát triển phần mềm: Là quá trình xây dựng các đặc tả.Đánh giá phần mềm: Phầm mềm phải được đánh giá để chắc chắn rằng ít nhất có thể thực hiện những gì mà tài liệu đặc tả yêu cầu.Tiến hóa phần mềm: Đây là quá trình hoàn thiện các chức năng cũng như giao diện để ngày càng hoàn thiện phần mềm cũng như các yêu cầu đưa ra từ phía khách hàng.Kỹ thuật phần mềm là gì? Có nên theo ngành này?Những phần mềm nên cài đặt trên ubuntu
Sprint Planning meeting (Họp lập kế hoạch cho mỗi Sprint)
Như chúng ta đã biết ở trên Sprint là một giai đoạn phát triển có thời gian từ 2-4 tuần. Để chuẩn bị cho mỗi Sprint team cần phải họp để xác định những chức năng nào (story) sẽ phát triển trong giai đoạn này (sprint backlog), kết quả đầu ra dự kiến (Goal, kết quả Release), Estimate (ước lượng ai làm việc gì) và thảo luận các giải pháp. Tất cả được ghi thành biên bản để có cơ sở thực hiện và Review sau này.
Sprint Review
Là cuộc họp để đánh giá lại kết quả thực hiện của Sprint vừa qua, xác định những chức năng được Release, những chức năng tiếp tục sửa hoặc phát triển thêm, xác định những vấn đề phát sinh và bàn phương án giải quyết, bổ sung Product Backlog v….
Daily Scrum Meeting (hay còn gọi là Standup Meeting)Daily Scrum Meeting là cuộc họp hàng ngày và được đề nghị không quá 15 phút và họp đứng để đảm bảo thời gian họp không bị kéo dài vào đầu mỗi ngày, mỗi thành viên chỉ trả lời 3 câu hỏi:Phát sinh vấn đề gì trong quy trình phát triển phần mềm?
Hôm nay bạn sẽ làm gì
Hôm qua bạn làm được gì?
Nếu thành viên gặp vấn đề thì nên làm việc riêng để giải quyết để không mất nhiều thời gian của các thành viên. Scrum Master phải đảm bảo cuộc họp này được thực hiện đúng qui định.Các Sprint sẽ được lặp đi lặp lại cho tới khi nào các hạng mục trong Product Backlog đều được hoàn tất hoặc khi Product Owner quyết định có thể dừng dự án căn cứ tình hình thực tế. Do sử dụng chiến thuật “có giá trị hơn làm trước” nên các hạng mục mang lại nhiều giá trị hơn cho chủ dự án luôn được hoàn tất trước. Do đó Scrum luôn mang lại giá trị cao nhất cho người đầu tư cho dự án. Do quy trình luôn luôn được cải tiến, nhóm Scrum thường có năng suất lao động rất cao. Đây là hai lợi ích to lớn mà quy trình phát triển phần mềm Scrum mang lại cho tổ chức.
IV. So sánh mô hình Scrum và mô hình waterfall, Sprial
Đặc điểmWaterfallSpiralScrumXác định các giai đoạn phát triểnBắt buộcBắt buộcChỉ có giai đoạn lập kế hoạch và kết thúcSản phẩm cuối cùngĐược xác định trong quá trình lập kế hoạchĐược xác định trong quá trình lập kế hoạchXác định trong suốt quá trình dự ánChi phí sản xuấtĐược xác định trong quá trình lập kế hoạchThay đổi cục bộXác định trong quá trình xây dựng dự ánNgày hoàn thành sản phẫmĐược xác định trong quá trình lập kế hoạchThay đổi cục bộXác định trong quá trình xây dựng dự án
Daily Scrum Meeting là cuộc họp hàng ngày và được đề nghị không quá 15 phút và họp đứng để đảm bảo thời gian họp không bị kéo dài vào đầu mỗi ngày, mỗi thành viên chỉ trả lời 3 câu hỏi:Phát sinh vấn đề gì trong quy trình phát triển phần mềm?Hôm nay bạn sẽ làm gìHôm qua bạn làm được gì?Nếu thành viên gặp vấn đề thì nên làm việc riêng để giải quyết để không mất nhiều thời gian của các thành viên. Scrum Master phải đảm bảo cuộc họp này được thực hiện đúng qui định.Các Sprint sẽ được lặp đi lặp lại cho tới khi nào các hạng mục trong Product Backlog đều được hoàn tất hoặc khi Product Owner quyết định có thể dừng dự án căn cứ tình hình thực tế. Do sử dụng chiến thuật “có giá trị hơn làm trước” nên các hạng mục mang lại nhiều giá trị hơn cho chủ dự án luôn được hoàn tất trước. Do đó Scrum luôn mang lại giá trị cao nhất cho người đầu tư cho dự án. Do quy trình luôn luôn được cải tiến, nhóm Scrum thường có năng suất lao động rất cao. Đây là hai lợi ích to lớn mà quy trình phát triển phần mềm Scrum mang lại cho tổ chức.
Via Techtalk