Mô hình Bottom-Up (Từ dưới lên)
Cách tiếp cận thiết kế hệ thống: định nghĩa chi tiết các bộ phận trước. Sau khi thiết kế/xây dựng xong, liên kết các bộ phận thành thành phần lớn hơn. Lặp lại cho đến khi hoàn thành hệ thống. Ưu điểm: quyết định ở mức thấp, xác định tính tái sử dụng thành phần.
Mô hình Top-Down (Từ trên xuống)
Thiết kế bắt đầu từ toàn bộ hệ thống. Chia hệ thống thành các ứng dụng con nhỏ hơn với chi tiết hơn. Mỗi phần tiếp tục chia nhỏ theo đệ quy cho đến khi thiết kế xong mọi chi tiết. Còn gọi là phân rã bài toán lớn thành bài toán nhỏ giải riêng lẻ.
Các khác biệt quan trọng:
| STT | Tiêu chí | Bottom-Up Model | Top-Down Model |
|---|---|---|---|
| 1 | Trung tâm (Focus) | Nhận diện và giải quyết bài toán nhỏ nhất, sau đó tích hợp để giải bài toán lớn. | Phân rã bài toán lớn thành nhỏ, lặp lại với từng bài toán con. |
| 2 | Ngôn ngữ lập trình | Thường dùng cho OOP: Java, C++... | Thường dùng cho ngôn ngữ cấu trúc: C, Fortran... |
| 3 | Dư thừa (Redundancy) | Tốt hơn, đảm bảo dư thừa dữ liệu tối thiểu, tập trung tái sử dụng. | Tỷ lệ dư thừa cao khi quy mô dự án tăng. |
| 4 | Tương tác (Interaction) | Tương tác cao giữa các module. | Vấn đề tight coupling, tương tác thấp giữa module. |
| 5 | Cách tiếp cận (Approach) | Dựa trên composition (thành phần). | Dựa trên decomposition (phân rã). |
| 6 | Vấn đề (Issues) | Khó xác định chức năng tổng thể hệ thống ở giai đoạn đầu. | Có thể không chia nhỏ được bài toán thành tập các bài toán con. |