HCI #Part 5 Software Development Process (Indonesia)

By Endah Sudarmilah

Share:

Software Development Process: Tóm tắt chi tiết

Key Concepts:

  • Software Development Process (SDP)
  • Software Development Life Cycle (SDLC)
  • Requirements Analysis
  • Design
  • Coding
  • Testing
  • Implementation/Deployment
  • Maintenance
  • Waterfall Model
  • Prototyping Model
  • V-Model
  • Agile Model
  • Iteration
  • Documentation

1. Mục tiêu của Software Development Process (SDP):

  • Tập trung vào quá trình phát triển phần mềm, không chỉ sản phẩm.
  • Quản lý tài nguyên (resources) hiệu quả.
  • Sử dụng công cụ và kỹ thuật phù hợp để xây dựng phần mềm.

2. Software Development Life Cycle (SDLC):

  • SDLC là chu kỳ sống của việc phát triển phần mềm.
  • Mục đích: Đảm bảo phần mềm được xây dựng có tính hệ thống và dễ bảo trì.
  • Nếu không có SDLC, việc sửa lỗi (bug) có thể tốn nhiều thời gian hơn là viết phần mềm mới.

3. Các bước chính (Main Steps) của SDLC:

  • Requirements Analysis (Phân tích yêu cầu):
    • Xác định ai sẽ sử dụng phần mềm.
    • Xác định các giao dịch (transactions) mà người dùng sẽ thực hiện.
    • Xác định các tài nguyên (resources) hiện có mà người dùng có thể sử dụng.
    • Ví dụ: Xác định người dùng là ai, họ sẽ thực hiện những thao tác gì trên hệ thống, hệ thống cần kết nối với những hệ thống nào khác.
  • Design (Thiết kế):
    • Thiết kế kiến trúc hệ thống.
    • Sử dụng Unified Modeling Language (UML) để mô hình hóa hệ thống.
    • Sử dụng Use Case Diagram để mô tả tương tác giữa người dùng và hệ thống.
    • Sử dụng Activity Diagram để mô tả luồng công việc.
    • Thiết kế Warframe/User Interface (UI).
  • Coding (Lập trình):
    • Không nên bắt đầu coding ngay lập tức mà cần có phân tích yêu cầu và thiết kế trước.
  • Testing (Kiểm thử):
    • System Testing: Kiểm thử hệ thống (Blackbox, Whitebox, Unit, Integration, System Testing).
    • Usability Testing: Kiểm thử tính khả dụng (Sử dụng Heuristic Evaluation của Nielsen, Schneiderman's Eight Golden Rules).
  • Implementation/Deployment (Triển khai):
    • Triển khai phần mềm.
  • Maintenance (Bảo trì):
    • Bảo trì và cập nhật phần mềm (có thể được tích hợp vào bước triển khai).

4. Các mô hình (Models) phát triển phần mềm:

  • Waterfall Model (Mô hình thác nước):
    • Ưu điểm: Đơn giản, dễ quản lý, chi phí thấp (nếu yêu cầu rõ ràng).
    • Nhược điểm: Không linh hoạt, khó thay đổi yêu cầu sau khi đã bắt đầu, không có sự tương tác (iteration).
    • Khi nào nên dùng: Khi yêu cầu đã được xác định rõ ràng và ổn định.
    • "Requirements are frozen" - Yêu cầu không thể thay đổi sau khi đã được xác định.
  • Waterfall Model with Prototyping (Mô hình thác nước kết hợp tạo mẫu):
    • Sử dụng prototypes để thu thập phản hồi từ khách hàng và điều chỉnh yêu cầu.
    • Cho phép iteration (lặp lại) giữa các giai đoạn.
  • V-Model (Mô hình chữ V):
    • Mở rộng của Waterfall, nhấn mạnh vào Verification (xác minh) và Validation (kiểm định) ở mỗi giai đoạn.
    • Mỗi giai đoạn phát triển tương ứng với một giai đoạn kiểm thử.
  • Prototyping Model (Mô hình tạo mẫu):
    • Tập trung vào việc xây dựng prototypes để thu thập phản hồi và cải tiến thiết kế.
    • Cho phép iteration liên tục.
  • Operational Specification Model:
    • Đánh giá yêu cầu kỹ lưỡng ở giai đoạn đầu để đảm bảo tính khả thi và giảm thiểu rủi ro trong quá trình phát triển.
    • Đảm bảo specifications (đặc tả) được xác định rõ ràng trước khi bắt đầu coding.
  • Transformational Model:
    • Chia nhỏ yêu cầu thành các specifications nhỏ hơn và chuyển đổi chúng thành code một cách tuần tự.
    • Thực hiện testing và implementation sau khi tất cả các specifications đã được chuyển đổi.
  • Phased Development Process (Mô hình phát triển theo giai đoạn):
    • Phát triển phần mềm theo các phases (giai đoạn) hoặc releases (phiên bản).
    • Có thể là incremental (tăng dần) hoặc iterative (lặp đi lặp lại).
    • Ví dụ: Phát hành phiên bản alpha, beta, version 1, version 2,...
  • Spiral Model (Mô hình xoắn ốc):
    • Kết hợp các yếu tố của Waterfall và Prototyping.
    • Cho phép iteration và risk analysis (phân tích rủi ro) ở mỗi vòng xoắn.
  • Agile Model (Mô hình Agile):
    • Linh hoạt và thích ứng với sự thay đổi.
    • Tập trung vào sự hợp tác giữa các thành viên trong nhóm và phản hồi từ khách hàng.
    • Ưu tiên thời gian và giá trị cho khách hàng hơn là tuân thủ nghiêm ngặt hợp đồng.
    • Ví dụ: Sử dụng các framework như Scrum, Kanban.
    • Ví dụ về ứng dụng: Gojek (thêm tính năng mới liên tục).

5. Tầm quan trọng của Documentation (Tài liệu):

  • Documentation rất quan trọng để bảo trì và mở rộng phần mềm.
  • Giúp các lập trình viên khác (hoặc chính bạn trong tương lai) hiểu rõ về code và kiến trúc hệ thống.
  • Đặc biệt quan trọng khi có sự thay đổi về nhân sự trong dự án.

6. Kết luận:

Việc lựa chọn mô hình phát triển phần mềm phù hợp phụ thuộc vào nhiều yếu tố, bao gồm: độ phức tạp của dự án, yêu cầu của khách hàng, và kinh nghiệm của đội ngũ phát triển. Dù sử dụng mô hình nào, việc phân tích yêu cầu kỹ lưỡng, thiết kế hệ thống cẩn thận, và tài liệu hóa đầy đủ là rất quan trọng để đảm bảo thành công của dự án.

Chat with this Video

AI-Powered

Load the transcript when you're ready to chat so the initial page stays lighter.

Ready to summarize another video?

Summarize YouTube Video