- Mô hình Internet Mail: Là mô hình liên kết cách ộp thư lưu trên Internet, mỗi hộp thư
4. Thiết kế giải thuật
4.1. Mô-ựun hoá và việc giải quyết bài toán
Những bài toán ta gặp trong thực tế thường là phức tạp, trong trường hợp ựó người ta thường chia bài toán thành những bài toán nhỏ và dễ giải quyết hơn. Nghĩa là coi bài toán ban
ựầu là Mô- ựun chắnh, ta chia nó thành các Mô- ựun con, và mỗi Mô- ựun con này có thể lại
ựược chia thành các Mô- ựun nhỏ hơn... Cách giải quyết bài toán như vậy người ta thường gọi là chiến thuật "Chia ựể trị"(divide and conquer).
Trong khi lập trình việc chia chương trình chắnh thành các chương trình con thể hiện tắnh có cấu trúc của ngôn ngữ lập trình về mặt chương trình
4.2. Tinh chỉnh từng bước giải thuật
Tinh chỉnh từng bước là phương pháp thiết kế giải thuật gắn liền với lập trình. Bước ựầu giải thuật ựược minh hoạ bằng ngôn ngữ tự nhiên, càng ở các bước sau ngôn ngữ tự nhiên
ựược thay thế bởi ngôn ngữ tự nhiên pha lẫn ngôn ngữ lập trình mà ta gọi là giả ngôn ngữ. Ta có sơựồ sau: Ngôn ngữ tự nhiên→ Giả ngôn ngữ→ Ngôn ngữ lập trình
4.3. Phân tắch thuật giải
Phân tắch giải thuật phải căn cứ vào 3 tiêu chuẩn ựối với một giải thuật: Tắnh dừng, tắnh
ựúng ựắn, tắnh ựơn giản và hiệu quả.
Việc kiểm tra giải thuật là một phần hết sức quan trọng, lý tưởng là khi có thể khẳng
ựịnh một cách hình thức tắnh ựúng ựắn của giải thuật. Tuy nhiên trong thực tế thời gian và công sức ựể viết ra một cách cẩn thận và ựầy ựủ tất cả những chi tiết chứng minh tắnh ựúng
ựắn của một giải thuật phức tạp thường là không cho phép. Người lập trình thường áp dụng các biện pháp sau:
-Chứng minh một cách suy diễn rằng những bước trong giải thuật là ựúng ựắn. Nghĩa là giải thuật bắt ựầu bằng một khẳng ựịnh (giả thiết) về dữ liệu vào và dùng phương pháp suy luận lôgic ựể chỉ ra rằng việc thực hiện giải thuật sẽ cho một khẳng ựịnh (kết luận) vềựầu ra.
- Thể hịên giải thuật bằng một ngôn ngữ lập trình và thử thực hiện chương trình với các bộ dữ liệu vào mà kết quả ta ựã biết trước. Thường thì các lỗi về cú pháp và lỗi lúc thực hiện chương trình thường dễ tìm và sửa chữa còn các lỗi lôgic thường khó phát hiện hơn nhiều.
-Có ựôi lúc viêc kiểm tra chương trình phải thực hiện thủ công, kiểm tra từng bước, từng thủ tục của chương trình chắnh. Kỹ thuật này ựược gọi là Ộựi bộ qua chương trìnhỢ(Walking through the program)
-Quan tâm ựặc biệt tới thời gian thực hiện chương trình, thời gian thực hiện phụ thuộc rất nhiều vào việc tổ chức dữ liệu ựưa vào (kắch thước dữ liệu).