Mô hình đƣợc áp dụng cho chƣơng trình mô phỏng trong luận văn này là mô hình thác nƣớc. Các bƣớc phân tích thiết kế gồm:
Hình 2.1 Quy trình phân tích và thiết kế các nhiệm vụ trƣớc khi mô phỏng
Nghiên cứu và phân tích giải thuật: Bƣớc đầu tiên trong quá trình giải một bài toán Tin học là xác định bài toán. Ở bƣớc này, dựa trên phát biểu của bài toán đặt ra ta phải xác định rõ Input và Output của bài toán và mối quan hệ giữa chúng.
Bài toán đặt ra đƣợc mô-đun hóa nhƣ sau:
Hình 2.2 Mô-đun mô phỏng một số thuật toán trên đồ thị Mô phỏng một số thuật toán trên đồ thị Thuật toán DFS Thuật toán BFS Thuật toán Ford- Fulkerson Thuật toán Welsh–Powell
Các mô-đun thuật toán trên là rất rõ ràng, việc phân tích và lựa chọn ngôn ngữ lập trình thích hợp cần đƣợc nghiên cứu một cách cẩn thận để đảm bảo tính đúng đắn và tính đơn giản của giải thuật.
Xây dựng mô hình mô phỏng dữ liệu vào và kết quả đầu ra: Mô phỏng dữ liệu vào là cách chọn hình thức hiển thị cho cấu trúc dữ liệu tƣơng ứng với giải thuật. Việc lựa chọn mô hình mô phỏng cho dữ liệu vào quyết định tính hiệu quả của chƣơng trình mô phỏng.
Với chƣơng trình mô phỏng một số thuật toán trên đồ thị, dữ liệu vào sẽ là một đồ thị bao gồm tập các đỉnh và các cạnh nối với nhau. Ta thể hiện các đỉnh là một hình tròn màu xanh, có tên đỉnh là các số ở giữa. Cạnh nối hai đỉnh của đồ thị là một đƣờng thẳng (nếu có trọng số thì trọng số đó sẽ nằm trên đƣờng thẳng và ở vị trí giữa hai đỉnh). Nhƣ vậy, đồ đƣợc xây dựng rất trực quan và ngƣời học có thể quan sát dễ dàng những thay đổi trên đồ thị khi thực hiện các bƣớc của giải thuật.
Tách giải thuật mô phỏng thành nhiều bước nhỏ: Việc chia các quá trình thực hiện thuật toán thành nhiều bƣớc nhỏ rất có ý nghĩa trong việc lập trình. Nó làm cho thuật toán ban đầu trở nên đơn giản, rõ ràng và dễ hiểu hơn.
Tổng hợp các bước mô phỏng thành giải thuật hoàn chỉnh và kiểm nghiệm giải thuật bằng cách quan sát dữ liệu ra của từng bước nhỏ: Sau khi mô phỏng từng bƣớc của thuật toán ta tiến hành ghép các bƣớc mô phỏng lại để đƣợc mô hình mô phỏng hoàn chỉnh: thao tác đƣa dữ liệu vào, tiến hành chạy theo từng bƣớc, quan sát những thay đổi của cấu trúc dữ liệu sau mỗi bƣớc và quan sát kết quả cuối cùng khi thuật toán đã chạy xong.
Mô hình bài toán mô phỏng một số thuật toán trên đồ thị đƣợc biểu diễn bởi sơ đồ sau đây:
Hình 2.3 Mô hình bài toán mô phỏng thuật toán