Chu trình phát triển phần mềm
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 kỹ thuật phần mềm để phát triển sản phẩm phần mềm dự kiến.
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 đến 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 có 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 xem xét và tách biệt thành yêu cầu của 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 hành 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,
- tham chiếu đến cơ sở dữ liệu hoặc
- thu thập câu trả lời từ các 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 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ó khả năng phần mềm không còn hữu ích nữa hay không. Nó được phát hiện ra, nếu dự án khả thi về mặt tài chính, thực tế và công nghệ để tổ chức tiếp nhận. Có nhiều thuật toán có sẵn, giúp các nhà phát triển kết luận về tính khả thi của một dự án phần mềm.
Phân tích hệ thống
Tại bước này, các nhà phát triển quyết định một 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 giới hạn của sản phẩm phần mềm, các vấn đề liên quan đến hệ thống học hỏi hoặc các thay đổi cần 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 dự án và lập kế hoạch tiến độ và tài nguyên phù hợp.
Thiết kế phần mềm
Bước tiếp theo là đưa toàn bộ kiến thức về các yêu cầu và phân tích trên bàn làm việc 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ó hai dạng; 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 thực hiện thiết kế phần mềm bắt đầu từ 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ộ quy trình phát triển phần mềm nên được kiểm tra. Các lỗi có thể làm hỏng phần mềm từ mức quan trọng đến mức tự xóa. Kiểm thử phần mềm được thực hiện trong khi mã hóa bởi các nhà phát triển và kiểm tra 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 tra chương trình, kiểm tra sản phẩm, kiểm tra nội bộ và kiểm tra sản phẩm ở cuối người dùng. Phát hiện sớm các lỗi và cách khắc phục chúng là chìa khóa cho 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 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 cài đặt ở người dùng. Phần mềm được kiểm tra tính di động và khả năng thích ứng và các vấn đề liên quan đến tích hợp được giải quyết trong quá trình thực hiện.
Vận hành và Bảo trì
Giai đoạn này xác nhận phần mềm hoạt động 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ì hoạt động của phần mềm. 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ệ cuối của người dùng. 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 đề chưa được xác định trong thế giới thực.
Bố trí
Khi thời gian trôi qua, phần mềm có thể giảm 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 đó nảy sinh nhu cầu cấp bách để loại bỏ một phần chính của hệ thống. 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 cửa 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 thích hợp cuối hệ thống.
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 chiến lược phát triển phần mềm. Mô hình phát triển phần mềm có bộ công cụ, phương pháp và thủ tục 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ó cho biết 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. Có nghĩa là, khi giai đoạn đầu tiên kết thúc thì chỉ có giai đoạn thứ hai mới bắt đầu và cứ tiếp tục như vậy.
Mô hình này giả định rằng mọi thứ được tiến hành 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 đề đã qua 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 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 đã thiết kế và phát triển phần mềm tương tự trong quá khứ và biết tất cả các miền của nó.
Mô hình lặp lại
Mô hình này dẫn đầu quá trình phát triển phần mềm trong các lần lặp lại. Nó chiếu quá trình phát triển theo cách tuần hoàn lặp lại mỗi bước sau mỗi chu kỳ của quá trình SDLC.
Phần mềm lần đầu tiên được phát triển trên quy mô rất nhỏ và tất cả các bước được thực hiện sau đó đều được xem xét. Sau đó, vào mỗi lần lặp tiếp theo, nhiều tính năng và mô-đun hơn được thiết kế, mã hóa, thử nghiệm và thêm vào phần mềm. Mỗi chu trình tạo ra một phần mềm, tự nó hoàn chỉnh và có nhiều tính năng và khả năng hơn so với phần mềm trước đó.
Sau mỗi lần lặp, 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 tiếp theo. Vì một chu trình 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 lại 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 lại và một trong những mô hình SDLC. Nó có thể được xem như nếu 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 này thường không được hầu hết các mô hình khác chú ý. 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 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 - mô hình
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 trong giai đoạn sau. V-Model cung cấp các 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 thử nghiệm và trường hợp thử nghiệm được tạo ra để xác minh và xác nhận 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 xác minh phần mềm về 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 Big Bang
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 vốn. Mô hình này được lên ý tưởng 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 của rất nhiều thiên hà, các hành tinh và ngôi sao đã tiến hóa giống như một sự kiện. Tương tự như vậy, nếu chúng ta tập hợp nhiều lập 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 nhỏ. 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ề 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 ý.
Mô hình này không phù hợp với các dự án phần mềm lớn nhưng là mô hình tốt để học hỏi và thử nghiệm.
Để đọc chuyên sâu về SDLC và các mô hình khác nhau của nó, hãy nhấp vào đây.