Vòng đời phát triển phần mềm, viết tắt là SDLC, là một chuỗi các giai đoạn có cấu trúc, được xác định rõ ràng trong công nghệ phần mềm để phát triển sản phẩm phần mềm dự định.
Hoạt động SDLC
SDLC cung cấp một loạt các bước cần tuân theo để thiết kế và phát triển một sản phẩm phần mềm một cách hiệu quả. Khung SDLC bao gồm các bước sau:
Giao tiếp
Đây là bước đầu tiên mà người dùng bắt đầu yêu cầu một sản phẩm phần mềm mong muốn. Anh ta liên hệ với nhà cung cấp dịch vụ và cố gắng thương lượng các điều khoản. Anh ta gửi yêu cầu của mình cho tổ chức cung cấp dịch vụ bằng văn bản.
Thu thập các yêu cầu
Bước này trở đi nhóm phát triển phần mềm làm việc để thực hiện dự án. Nhóm tổ chức các cuộc thảo luận với các bên liên quan khác nhau từ miền vấn đề và cố gắng cung cấp càng nhiều thông tin càng tốt về các yêu cầu của họ. Các yêu cầu được dự tính và tách biệt thành yêu cầu người dùng, yêu cầu hệ thống và yêu cầu chức năng. Các yêu cầu được thu thập bằng cách sử dụng một số thực tiễn như đã cho –
- nghiên cứu hệ thống và phần mềm hiện có hoặc lỗi thời,
- tiến hành phỏng vấn người dùng và nhà phát triển,
- đề cập đến cơ sở dữ liệu hoặc
- thu thập câu trả lời từ bảng câu hỏi.
Nghiên cứu khả thi
Sau khi thu thập yêu cầu, nhóm đưa ra một kế hoạch sơ bộ về quy trình phần mềm. Ở bước này, nhóm sẽ phân tích xem liệu một phần mềm có thể được tạo ra để đáp ứng tất cả các yêu cầu của người dùng hay không và liệu có bất kỳ khả năng nào khiến phần mềm không còn hữu ích nữa hay không. Nó được tìm ra, nếu dự án là khả thi về mặt tài chính, thực tế và công nghệ để tổ chức đảm nhận. Có nhiều thuật toán sẵn có, giúp các nhà phát triển kết luận tính khả thi của một dự án phần mềm.
Phân tích hệ thống
Ở bước này, các nhà phát triển quyết định lộ trình kế hoạch của họ và cố gắng đưa ra mô hình phần mềm tốt nhất phù hợp với dự án. Phân tích hệ thống bao gồm Hiểu biết về các hạn chế của sản phẩm phần mềm, các vấn đề liên quan đến hệ thống học tập hoặc các thay đổi sẽ được thực hiện trước trong các hệ thống hiện có, xác định và giải quyết tác động của dự án đối với tổ chức và nhân sự, v.v. Nhóm dự án phân tích phạm vi của dự án và lên kế hoạch cho lịch trình và tài nguyên cho phù hợp.
Thiết kế phần mềm
Bước tiếp theo là đặt toàn bộ kiến thức về yêu cầu và phân tích xuống bàn và thiết kế sản phẩm phần mềm. Đầu vào từ người dùng và thông tin thu thập được trong giai đoạn thu thập yêu cầu là đầu vào của bước này. Đầu ra của bước này có dạng hai thiết kế; thiết kế logic và thiết kế vật lý. Các kỹ sư tạo ra siêu dữ liệu và từ điển dữ liệu, sơ đồ logic, sơ đồ luồng dữ liệu và trong một số trường hợp là mã giả.
mã hóa
Bước này còn được gọi là giai đoạn lập trình. Việc triển khai thiết kế phần mềm bắt đầu bằng việc viết mã chương trình bằng ngôn ngữ lập trình phù hợp và phát triển các chương trình thực thi không có lỗi một cách hiệu quả.
thử nghiệm
Một ước tính nói rằng 50% toàn bộ quá trình phát triển phần mềm nên được kiểm thử. Các lỗi có thể làm hỏng phần mềm từ cấp độ quan trọng đến việc loại bỏ chính nó. Kiểm thử phần mềm được thực hiện trong khi viết mã bởi các nhà phát triển và kiểm thử kỹ lưỡng được thực hiện bởi các chuyên gia kiểm thử ở các cấp mã khác nhau như kiểm thử mô-đun, kiểm thử chương trình, kiểm thử sản phẩm, kiểm thử nội bộ và kiểm thử sản phẩm ở cuối người dùng. Phát hiện sớm các lỗi và biện pháp khắc phục chúng là chìa khóa để có được phần mềm đáng tin cậy.
Hội nhập
Phần mềm có thể cần được tích hợp với các thư viện, cơ sở dữ liệu và (các) chương trình khác. Giai đoạn này của SDLC liên quan đến việc tích hợp phần mềm với các thực thể thế giới bên ngoài.
Thực hiện
Điều này có nghĩa là cài đặt phần mềm trên máy người dùng. Đôi khi, phần mềm cần cấu hình sau khi cài đặt ở cuối người dùng. Phần mềm được kiểm tra tính di động và khả năng thích ứng cũng như các vấn đề liên quan đến tích hợp được giải quyết trong quá trình triển khai.
Vận hành và Bảo trì
Giai đoạn này xác nhận hoạt động của phần mềm hiệu quả hơn và ít lỗi hơn. Nếu được yêu cầu, người dùng được đào tạo hoặc hỗ trợ tài liệu về cách vận hành phần mềm và cách duy trì phần mềm hoạt động. Phần mềm được duy trì kịp thời bằng cách cập nhật mã theo những thay đổi diễn ra trong môi trường hoặc công nghệ của người dùng cuối. Giai đoạn này có thể phải đối mặt với những thách thức từ các lỗi ẩn và các vấn đề không xác định trong thế giới thực.
Bố trí
Khi thời gian trôi qua, phần mềm có thể suy giảm về mặt hiệu suất. Nó có thể hoàn toàn lỗi thời hoặc có thể cần nâng cấp mạnh mẽ. Do đó, một nhu cầu cấp thiết để loại bỏ một phần lớn của hệ thống phát sinh. Giai đoạn này bao gồm lưu trữ dữ liệu và các thành phần phần mềm cần thiết, đóng hệ thống, lập kế hoạch hoạt động xử lý và kết thúc hệ thống vào thời điểm kết thúc hệ thống thích hợp.
Mô hình phát triển phần mềm
Mô hình phát triển phần mềm giúp nhà phát triển lựa chọn một chiến lược để phát triển phần mềm. Một mô hình phát triển phần mềm có bộ công cụ, phương pháp và quy trình riêng, được thể hiện rõ ràng và xác định vòng đời phát triển phần mềm. Một số mô hình phát triển phần mềm hoặc mô hình quy trình được định nghĩa như sau:
Mô hình thác nước
Mô hình thác nước là mô hình đơn giản nhất của mô hình phát triển phần mềm. Nó nói rằng tất cả các giai đoạn của SDLC sẽ lần lượt hoạt động theo cách tuyến tính. Tức là khi giai đoạn đầu tiên kết thúc thì chỉ có giai đoạn thứ hai bắt đầu, v.v.
Mô hình này giả định rằng mọi thứ được thực hiện và diễn ra một cách hoàn hảo như kế hoạch ở giai đoạn trước và không cần phải suy nghĩ về những vấn đề trong quá khứ có thể phát sinh trong giai đoạn tiếp theo. Mô hình này không hoạt động trơn tru nếu có một số vấn đề còn sót lại ở bước trước. Bản chất tuần tự của mô hình không cho phép chúng ta quay lại và hoàn tác hoặc làm lại các hành động của mình.
Mô hình này phù hợp nhất khi các nhà phát triển đã từng thiết kế và phát triển phần mềm tương tự trong quá khứ và nhận thức được tất cả các lĩnh vực của nó.
Mô hình lặp
Mô hình này dẫn dắt quá trình phát triển phần mềm lặp đi lặp lại. Nó dự kiến quá trình phát triển theo chu kỳ lặp lại từng bước sau mỗi chu kỳ của quy trình SDLC.
Phần mềm lần đầu tiên được phát triển ở quy mô rất nhỏ và tất cả các bước đều được tuân theo và được xem xét. Sau đó, ở mỗi lần lặp lại tiếp theo, nhiều tính năng và mô-đun được thiết kế, viết mã, thử nghiệm và thêm vào phần mềm. Mỗi chu kỳ tạo ra một phần mềm, phần mềm này tự hoàn thiện và có nhiều tính năng và khả năng hơn phần mềm trước đó.
Sau mỗi lần lặp lại, nhóm quản lý có thể thực hiện công việc quản lý rủi ro và chuẩn bị cho lần lặp lại tiếp theo. Bởi vì một chu kỳ bao gồm một phần nhỏ của toàn bộ quy trình phần mềm, nên việc quản lý quy trình phát triển sẽ dễ dàng hơn nhưng tiêu tốn nhiều tài nguyên hơn.
Mô hình xoắn ốc
Mô hình xoắn ốc là sự kết hợp của cả hai, mô hình lặp và một trong các mô hình SDLC. Có thể xem như bạn chọn một mô hình SDLC và kết hợp nó với quy trình tuần hoàn (mô hình lặp).
Mô hình này xem xét rủi ro, điều thường không được chú ý bởi hầu hết các mô hình khác. Mô hình bắt đầu với việc xác định các mục tiêu và ràng buộc của phần mềm khi bắt đầu một lần lặp. Giai đoạn tiếp theo là tạo nguyên mẫu phần mềm. Điều này bao gồm phân tích rủi ro. Sau đó, một mô hình SDLC tiêu chuẩn được sử dụng để xây dựng phần mềm. Trong giai đoạn thứ tư của kế hoạch lặp lại tiếp theo được chuẩn bị.
V – người mẫu
Hạn chế chính của mô hình thác nước là chúng ta chỉ chuyển sang giai đoạn tiếp theo khi giai đoạn trước đã hoàn thành và không có cơ hội quay lại nếu phát hiện có điều gì đó không ổn ở các giai đoạn sau. V-Model cung cấp phương tiện kiểm tra phần mềm ở từng giai đoạn theo cách ngược lại.
Ở mọi giai đoạn, kế hoạch kiểm tra và trường hợp kiểm tra được tạo để xác minh và xác thực sản phẩm theo yêu cầu của giai đoạn đó. Ví dụ, trong giai đoạn thu thập yêu cầu, nhóm kiểm thử chuẩn bị tất cả các trường hợp kiểm thử tương ứng với các yêu cầu. Sau đó, khi sản phẩm được phát triển và sẵn sàng để thử nghiệm, các trường hợp thử nghiệm của giai đoạn này sẽ xác minh phần mềm dựa trên tính hợp lệ của nó đối với các yêu cầu ở giai đoạn này.
Điều này làm cho cả xác minh và xác thực diễn ra song song. Mô hình này còn được gọi là mô hình xác minh và xác nhận.
Mô hình vụ nổ lớn
Mô hình này là mô hình đơn giản nhất trong hình thức của nó. Nó đòi hỏi ít kế hoạch, nhiều chương trình và nhiều tiền. Mô hình này được khái niệm hóa xung quanh vụ nổ lớn của vũ trụ. Như các nhà khoa học nói rằng sau vụ nổ lớn, rất nhiều thiên hà, hành tinh và ngôi sao đã tiến hóa như một sự kiện. Tương tự như vậy, nếu chúng tôi tập hợp nhiều chương trình và kinh phí, bạn có thể đạt được sản phẩm phần mềm tốt nhất.
Đối với mô hình này, cần phải lập kế hoạch rất ít. Nó không tuân theo bất kỳ quy trình nào, hoặc đôi khi khách hàng không chắc chắn về các yêu cầu và nhu cầu trong tương lai. Vì vậy, các yêu cầu đầu vào là tùy ý.