Khái niệm
Software Development Life Cycle hay SDLC là một quy trình chuẩn lý thuyết để phát triển phần mềm. SDLC bao gồm một chuỗi các hoạt động, mỗi giai đoạn sẽ có một mục tiêu nhất định đóng góp vào quá trình phát triển.
Typical question: What is Software Development Life Cycle? - SDLC là gì?
Phát biểu
Có hai cách để phát biểu các bước của SDLC:
- Cách thứ nhất phát biểu theo hướng kỹ thuật sử dụng từ ngữ đại diện cho chính hoạt động đó, từ cách phát biểu này, rất dễ để có thể hiểu từng bước trong đó đang làm gì :
- Gather requirements and analysis
- Design software product
- Implement the software
- Test the software
- Deploy the software
- Maintain the software
- Tuy nhiên với kiểu phát biểu thứ hai thì lại hơi hàn lâm và khó hiểu, vì vốn nó nghiêng về hướng kinh doanh:
- Initiation : Khởi chạy dự án, lấy yêu cầu và tạo đề xuất (proposal) - lấy URD (User Requirements Document) và Proposal
- Definition : Phân tích yêu cầu và lên kế hoạch - lấy kế hoạch dự án (Project Plan), kế hoạch kiểm thử (Test Plan) và bản mẫu (Prototype, Mock-up)
- Solution : Tạo ra giải pháp cho sản phẩm - lấy hồ sơ thiết kế (Design Document) cả cao tầng (High Level) và thấp tầng (Low Level)
- Construction : Bao gồm lập trình sản phẩm và kiểm thử sản phẩm - lấy bản build hoàn chỉnh, hướng dẫn (manual) đi kèm, kiểm thử lấy báo cáo kiểm thử, Bug Log
- Transition : Cài đặt sản phẩm lên phía khách hàng và để khách hàng thực hiện kiểm thử nghiệm thu (Acceptance Test) - lấy báo cáo dự án (Project report), báo cáo kiểm thử (Test report) và báo cáo nghiệm thu (Acceptance report)
- Termination : Chính thức đóng dự án, thực hiện bàn giao (sign-off and hand over) mã nguồn (codebase), đóng gói tài nguyên (archive resource)
Hai cách phát biểu trên về cơ bản là tương đương nhau
Typical question: What stages are there in SDLC? - Có những bước nào trong SDLC ?
Development Model
SDLC bản chất vẫn chỉ là lý thuyết, giờ nếu nói
Giờ biết SDLC rồi, em đi làm một con phần mềm cho anh ?
Bruh, HOW
Đúng, vấn đề nó ở từ How - làm thế nào. Để có thể ứng dụng SDLC vào một quá trình phát triển phần mềm, chúng ta cần áp dụng một model
Development Model là một mô hình phát triển phần mềm, nó sẽ hướng dẫn cách thức thực hiện từng bước trong SDLC. Có nhiều model phát triển phần mềm, mỗi model sẽ có ưu nhược điểm riêng, và sẽ phù hợp với một số dự án cụ thể. Có thể kể đến một số model truyền thống như:
- Waterfall
- Iterative
- Rapid Development
- Spiral
Và model hiện đại, cũng là model phổ biến nhất áp dụng cho các sản phẩm phần mềm hiện đại :
- Agile
Typical question: What do you know about development models? - Bạn biết những gì về các mô hình phát triển?
Typical question: Why do we need development model? - Tại sao chúng ta lại cần mô hình phát triển?