Sau khi đã đưa ra được c c chức năng chính của hệ thống, dựa vào quan hệ giữa các chức năng nà, em đi vào thiết kế chi tiết hơn các chức năng này. Việc thiết kế chi tiết bao gồm các công việc phải làm của mỗi chức năng và thứ tự các công việc đó
Để thiết kế chi tiết, em dựng biểu đồ Sequence trong lược đồ UML. Trong phần thiết kế này, em chỉ thiết kế các chức năng của tầng nghiệp vụ. Các chức năng ở phần giao diện có cách nhìn khá trực qua, và phần lớn dựa vào xử lí thuật toán hoặc các công nghệ nhiều hơn là quan hệ phức tạp giữa các chức năng. Theo thiết kế các chức năng tổng quát ở trên, em sẽ thiết hai 2 biểu đồ Sequence tương ứng với mỗi chức năng trong phần ử lí dữ liệu
1.1. Biểu đồ tuần tự tương ứng với chức năng lấy fil
Chương trình đọc file dữ liệu sẽ đọc liên tục, nên trước hết chúng ta giảm thiểu tối đa các xử lí cho chương trình. Đầu tiên, hệ thống xử lí sẽ kiểm tra trạng thái thị trường và ngày giao dịch. Nếu hai điều kiện này không thỏa mãn thì chương trình tự động kết thúc
1.2. Biểu đồ tuần tự ứng với chức năng biến đổi dữ liệu
Dưới đõy là biểu đồ tuần tự đọc file và Insert vào cơ sở dữ liệu.
Hình 2. 7 Biểu đồ chi tiết chức năng biến đổi File của sàn HOS
Nếu đang là đầu phiên giao dịch, chương trình xử lí sẽ Backup và Insert dữ liệu vào DataBase. Đồng thời, mỗi một lần Insert vào cơ sở dữ liệu, chương trình sẽ ghi điểm đang đọc dở vào File XML. Trong chức năng Insert dữ liệu có hai trường hợp xảy ra, đó là trường hợp Insert dữ liệu vào đầu phiên giao dịch, và Insert dữ liệu lúc đó có dữ liệu đầu tiên. Để dễ theo dõi, em tách biệt hai trường hợp này thành 2 biểu đồ Sequence nhỏ. Biểu đồ Sequence chi tiết trong hai trường hợp này như sau
Biểu đồ Insert dữ liệu vào ầu phiên giao dịch
Hình 2.8 Biểu đồ chi tiết chức năng Insert dữ liệu đầu phiên của sàn HOSE
Chương trình xử lí trước hết sẽ tạo một kết nối đến Hệ thống cơ sở dữ liệu. Sau đó nó sẽ gửi yêu cầu lên hệ thống dữ liệu, hệ thống Database sau khi nhận được dữ liệu sẽ Backup dữ liệu ngày hôm trước vào bảng _history. Sau đó nó mới Insert dữ liệu vào DataBase. Lí do Backup dữ liệu em đã nói ở phần khảo sát, lí do là bởi vì chúng ta giảm thiểu số bản ghi có trên một bảng dữ liệu.
Dưới đây là biểu đồ tuần tự trong trường hợp Insert dữ liệu khi đang trong thời gian giao dịch.
Hình 2. 9 Biểu đồ chi tiết chức năng Insert dữ liệu giữa phiên của sàn HOS
Hệ thống xử lí làm việc tương tự như mô tả ở biểu đồ Sequence trên. Tuy nhiên hệ xử lí trong trường hợp này sẽ không Backup dữ liệu, mà chỉ thêm một xử lí đọc và ghi file XML. Bởi vì nếu lần đọc trước đó chưa hoàn thàn , chương trình chạy lại lần sau, nó sẽ đọc tiếp từ điểm à lần trước đang đọ . Vấn đề này sẽ tránh được việc Insert thừa dữ liệu.
Ví dụ: File Le.dat chứa các thông tin tổng hợp của các mã chứng khoán. Kiểu cập nhật ở Trung tâm chứng khoán là kiểu ghi thm . Mỗi lần khi đọc lại file này, chúng ta không đọc từ đầu mà đọc từ vị trí mà lần trước chúng ta đang đọc dở. Vị trí này được ghi vào file XL
2. Sàn giao dịch HASTC
Biểu đồ tuần tự thể hiện chức năng đọc và cập nhật dữ liệu như sau:
Hình 2. 10 Biểu đồ chi tiết chức năng lấy File của sàn HAST
Do việc đọc dữ liệu từ File XMl là nhanh hơn nhiều so với file dạng DAT, nên em không cần kiểm tra sự tồn tại của file. Nếu việc tải file về thành công thì chương trình sẽ xử lí và Update vào cơ sở dữ liệu.
Do dữ liệu của sàn giao dịch HASTC có đặc điểm, mỗi khi có thêm dữ liệu, Trung tâm giao dịch sẽ ghi thêm vào ngay sau file XML, và chuyển file này cho sàn giao dịch. Khác với Sở giao dịch HOSE là vừa ghi thêm, vừa ghi đè lên dữ liệu cũ. Bởi lí do đó, chúng ta chỉ cần Update dữ liệu khi đọc một file XML là sẽ có đầy đủ thông tin cũ và mớ
I . THIẾT KẾ CHI TIẾT LỚ . Sàn giao dịch HOS