

Giới thiệu nội dung series phân tích thiết kế và triển khai phần mềm
- 08-05-2025
- Toanngo92
- 0 Comments
Mục lục
Giới thiệu nội dung học
- Học phần này nhằm tích hợp Phân tích và Thiết kế hướng đối tượng (OOAD) vào quy trình phát triển phần mềm.
- Nhiều khóa học OOAD thường chỉ tập trung vào lý thuyết mà không hướng dẫn triển khai thực tế.
- Tại đây, ta sẽ làm khác đi: hướng đến mô hình hóa phần mềm để truyền đạt thiết kế một cách rõ ràng.
Giao tiếp trong phát triển phần mềm
- Có nhiều kỹ thuật mô hình hóa, nhiều loại sơ đồ & tài liệu
- Dễ quên lý do tại sao bạn mô hình hóa: là để truyền đạt chính xác giữa các bên liên quan
- Giao tiếp phải bắt đầu sớm & theo hướng linh hoạt (agile)
Giao tiếp – Sự phức tạp từ con người
- Các bên liên quan gồm người dùng, người tài trợ, người phát triển, người phân tích
- Mỗi người có kỹ năng khác nhau, đôi khi không liên quan đến CNTT
- Giao tiếp con người thường mơ hồ, không rõ ràng
- Dùng công cụ mô hình hóa chính quy để đạt được hiểu biết chung giữa người thiết kế & người dùng
Hậu quả khi giao tiếp kém
- Therac-25: máy xạ trị làm quá liều do thiếu giao tiếp
- Mars Climate Orbiter mất vì 1 nhóm dùng hệ mét, nhóm kia dùng hệ inch
Phân tích
- Bước đầu để hiểu hệ thống cần làm gì
- Người đặt hàng có thể không rõ mình cần gì
- Người dùng nói “muốn”, nhưng bạn phải phân tích “cần”
- Bắt đầu từ bản mô tả vấn đề (2-3 trang), điều tra hệ thống hiện có, phỏng vấn người dùng để làm rõ yêu cầu
Miền vấn đề (Problem Domain)
- Là lĩnh vực bạn cần hiểu để giải quyết vấn đề
- Xác định phạm vi dự án
- Phân tích xong, bạn phải hiểu rõ cách hệ thống vận hành dự kiến
Phác thảo giấy (Paper Prototyping)
- Cách khám phá giải pháp rẻ, nhanh, ít đầu tư
- Vẽ sơ đồ, giao diện trên giấy với người dùng
- Mô phỏng hệ thống bằng cách thay thế các thành phần vẽ tay
Thiết kế
- Sau phân tích, chuyển hiểu biết thành mô hình để triển khai
- Thiết kế xem xét các yếu tố kỹ thuật như tốc độ, giao diện, nền tảng…
- Trong thực tế, phân tích & thiết kế thường chồng lặp
Triển khai
- Phân tích: hệ thống nên làm gì
- Thiết kế: làm như thế nào
- Triển khai: viết mã từ thiết kế
- Dự án lớn không thể gộp 3 bước vào 1 như khi làm dự án cá nhân
Lý do cần OOAD
- Trước đây, phát triển phần mềm rất tùy tiện
- Khủng hoảng phần mềm (Software Crisis – 1968): phần mềm đắt, chậm, kém, không đáp ứng yêu cầu, thậm chí không hoàn thành
- Kỹ thuật phần mềm ra đời để khắc phục
OOAD – Các khái niệm hướng đối tượng
- Lớp (Class): bản thiết kế (blueprint) của đối tượng, gồm thuộc tính & hành vi
- Đối tượng (Object): thể hiện cụ thể của lớp
- Kế thừa (Inheritance): lớp con kế thừa & mở rộng lớp cha
- Đóng gói (Encapsulation): gộp dữ liệu & hành vi, dùng để ẩn thông tin
- Đa hình (Polymorphism): xử lý đối tượng theo kiểu tổng quát (ví dụ dùng
Shape
thay vìSquare
)
Thuật ngữ quan trọng
- Problem domain: miền vấn đề, kiến thức và logic liên quan
- Project scope: phạm vi vấn đề sẽ giải quyết
- Problem statement: mô tả yêu cầu người dùng
- Solution space: tất cả các giải pháp khả thi