2.3.1. Sơ đồ luồng dữ liệu cho yêu cầu mở sổ tiết kiệm
Biểu mẫu:
BM1: Sổ Tiết Kiệm
Mã số: Loại tiết kiệm:
Khách hàng: CMND:
Địa chỉ: Ngày mở sổ:
Số tiền gởi:
Quy định:
Sơ đồ:
Hình 2.1: Sơ đồ DFD mở sổ tiết kiệm
QĐ1: Có 3 loại tiết kiệm (không kỳ hạn, 3 tháng, 6 tháng). Số tiền gửi (ban đầu) tối thiểu là 1.000.000đ
Các luồng dữ liệu:
o D1: Mã sổ tiết kiệm, Loại tiết kiệm, Tên khách hàng, CMND, Địa chỉ, Ngày mở sổ, Số tiền gửi.
o D2: Không dùng thiết bị nhập.
o D3: Số tiền gửi thêm tối thiểu + danh sách sổ tiết kiệm.
o D4: D1.
o D5: D4.
o D6: Không có.
Thuật toán:
o Bước 1: Nhận dữ liệu D1 từ người dùng (giao dịch viên)
o Bước 2: Kết nối cơ sở dữ liệu.
o Bước 3: Đọc dữ liệu D3 từ bộ nhớ phụ.
o Bước 4: Kiểm tra “Số tiền gửi” (D1) có lớn hơn hoặc bằng “Số tiền gửi tối thiểu” (D3) hay không. Nếu không nhảy đến Bước 7.
o Bước 5: Lưu dữ liệu D4 vào bộ nhớ phụ.
o Bước 6: Xuất dữ liệu D5 ra máy in.
o Bước 7: Ngắt kết nối cơ sở dữ liệu.
o Bước 8: Kết thúc.
2.3.2. Sơ đồ luồng dữ liệu cho yêu cầu lập phiếu gửi tiền
Biểu mẫu:
BM2: Phiếu Gởi Tiền
Mã số: Khách hàng:
Quy định:
Sơ đồ:
Hình 2.2: Sơ đồ DFD gửi tiền
Các luồng dữ liệu:
o D1: Mã sổ tiết kiệm, Tên khách hàng, Ngày gửi, Số tiền gửi thêm.
o D2: Không dùng thiết bị nhập.
o D3: Số tiền gửi thêm tối thiểu + danh sách sổ tiết kiệm, danh sách loại tiết kiệm.
o D4: D1+ số dư mới.
o D5: D4
o D6: Không có.
QĐ2: Chỉ nhận gửi thêm tiền khi đến kỳ hạn tính lãi suất của các loại tiết kiệm tương ứng. Số tiền gửi thêm tối thiểu là 100.000đ.
Thuật toán:
o Bước 1: Nhận dữ liệu D1 từ người dùng (giao dịch viên)
o Bước 2: Kết nối cơ sở dữ liệu.
o Bước 3: Đọc dữ liệu D3 từ bộ nhớ phụ.
o Bước 4: Kiểm tra mã sổ tiết kiệm có tồn tại trong danh sách sổ tiết kiệm hay không, nếu không đến bước 11. Nếu có, lấy ra thông tin của sổ tiết kiệm đó.
o Bước 5: Kiểm tra loại tiết kiệm của sổ tiết kiệm ở bước 4, nếu là loại “không kì hạn” (D3), đến bước 7.
o Bước 6: Kiểm tra “Ngày gửi” (D1) có phải là “Kỳ hạn tính lãi suất” (D3) đối với loại tiết kiệm “Có kỳ hạn” (D3) hay không. Nếu không, nhảy đến Bước 11.
o Bước 7: Kiểm tra “Số tiền gửi” (D1) có lớn hơn hoặc bằng “Số tiền gửi thêm tối thiểu” (D3) hay không. Nếu không, nhảy đến Bước 11.
o Bước 8: Cập nhật thông tin tài khoản khách hàng (số dư mới = số dư cũ + số tiền gửi thêm).
o Bước 9: Lưu dữ liệu D4 vào bộ nhớ phụ.
o Bước 10: Xuất dữ liệu D5 ra máy in.
o Bước 11: Ngắt kết nối cơ sở dữ liệu.
o Bước 12: Kết thúc.
2.3.3. Sơ đồ luồng dữ liệu cho yêu cầu lập phiếu rút tiền
Biểu mẫu:
BM3: Phiếu Rút Tiền
Mã số: Khách hàng:
Quy định:
Sơ đồ:
Hình 2.3: Sơ đồ DFD rút tiền
QĐ3: Lãi suất là 0.5% đối với loại không kỳ hạn, 5% với kỳ hạn 3 tháng và 5.5% với kỳ hạn 6 tháng.
Tiền lãi 1 năm = số dư * lãi suất của loại tiết kiệm tương ứng.
Loại tiết kiệm có kỳ hạn chỉ được rút khi quá kỳ hạn và phải rút hết toàn bộ, khi này tiền lãi được tính với mức lãi suất của loại không kỳ hạn.
Loại tiết kiệm không kỳ hạn được rút khi gửi trên 15 ngày và có thể rút số tiền <= số dư hiện có.
Các luồng dữ liệu:
o D1: Thông tin phiếu rút tiền (Mã sổ tiết kiệm, Tên khách hàng, Ngày rút tiền, Số tiền rút)
o D2: Không có
o D3: Danh sách sổ tiết kiệm, danh sách loại tiết kiệm, số ngày gửi tối thiểu (không kì hạn)
o D4: D1 + số dư mới
o D5: D4
o D6: Không có
Thuật toán:
o Bước 1: Nhận D1 từ người dùng (giao dịch viên)
o Bước 2: Kết nối cơ sở dữ liệu
o Bước 3: Đọc D3 từ bộ nhớ phụ
o Bước 4: Kiểm tra mã sổ tiết kiệm có tồn tại trong danh sách sổ tiết kiệm hay không, nếu không đến bước 14. Nếu có, lấy ra thông tin của sổ tiết kiệm đó.
o Bước 5: Kiểm tra loại tiết kiệm của sổ tiết kiệm ở bước 4, nếu là loại “không kì hạn”, đến bước 8
o Bước 6: Tính khoảng thời gian giữa ngày rút tiền và ngày mở sổ.
o Bước 7: Kiểm tra khoảng thời gian giữa ngày rút tiền và ngày mở sổ có lớn hơn kì hạn của loại tiết kiệm không. Nếu có thì đến bước 9, nếu không đến bước 14.
o Bước 8: Kiểm tra khoảng thời gian giữa ngày rút tiền và ngày mở sổ có lớn hơn số ngày gửi tối thiểu đối với loại tiết kiệm không kì hạn (D3) không. Nếu không đến bước 14.
o Bước 9: Kiểm tra số tiền rút với số dư, số tiền rút lớn hơn, đến bước 14
o Bước 11: Kiểm tra nếu số dư về 0 thì đóng sổ tiết kiệm
o Bước 12: Lưu D4 vào cơ sở dữ liệu
o Bước 13: Xuất D5 ra máy in
o Bước 14: Đóng kết nối cơ sở dữ liệu
o Bước 15: Kết thúc
2.3.4. Sơ đồ luồng dữ liệu cho yêu cầu tra cứu sổ tiết kiệm
Biểu mẫu:
BM4: Danh Sách Sổ Tiết Kiệm
STT Mã Số Loại Tiết Kiệm Khách Hàng Số Dư
1 2
Sơ đồ:
Các luồng dữ liệu:
o D1: Tiêu chuẩn tra cứu (Mã sổ hoặc loại tiết kiệm hoặc tên khách hàng)
o D2: Không có
o D3: Danh sách sổ tiết kiệm
o D4: Không có
o D5: Danh sách sổ tiết kiệm thỏa tiêu chuẩn tra cứu (D1)
o D6: D5 Thuật toán:
o Bước 1: Nhận D1 từ người dùng
o Bước 2: Kết nối cơ sở dữ liệu
o Bước 3: Đọc D3 từ bộ nhớ phụ
o Bước 4: Lọc sổ theo D1
o Bước 5: Xuất D5 ra máy in
o Bước 6: Trả D6 về cho người dùng
o Bước 7: Đóng kết nối cơ sở dữ liệu
o Bước 8: Kết thúc
2.3.5. Sơ đồ luồng dữ liệu cho yêu cầu lập báo cáo doanh số trong ngày
Biểu mẫu:
BM5.1 Báo Cáo Doanh Số Hoạt Động Ngày
Ngày:...
STT Loại Tiết Kiệm Tổng Thu Tổng Chi Chênh Lệch
1 2
Sơ đồ:
Hình 2.5: Sơ đồ DFD báo cáo doanh thu
Các luồng dữ liệu:
o D1: Ngày báo cáo.
o D2: Không có.
o D3: Danh sách các loại tiết kiệm, Danh sách các sổ tiết kiệm, danh sách các phiếu gửi tiền trong ngày báo cáo (D1), danh sách các phiếu rút tiền trong ngày báo cáo (D1).
o D4: D1 + thông tin loại tiết kiệm + tổng thu, tổng chi, chênh lệch của các loại tiết kiệm tương ứng.
o D5: D4.
Thuật toán:
o Bước 1: Nhận D1 từ người dùng.
o Bước 2: Kết nối cơ sở dữ liệu.
o Bước 3: Nhận D3 từ bộ nhớ phụ.
o Bước 4: Tính tổng thu của từng loại trong danh sách các loại tiết kiệm (bằng tổng phiếu gửi tiền trong ngày báo cáo của sổ tiết kiệm có loại tiết kiệm tương ứng).
o Bước 5: Tính tổng chi của từng loại trong danh sách các loại tiết kiệm(bằng tổng phiếu rút trong ngày báo cáo của sổ tiết kiệm có loại tiết kiệm tương ứng).
o Bước 6: Tính chênh lệch giữa tổng thu và tổng chi.
o Bước 7: Lưu D4 xuống bộ nhớ phụ.
o Bước 8: Xuất D5 ra máy in
o Bước 9: Trả D6 về cho người dùng.
o Bước 10: Đóng kết nói cơ sở dữ liệu.
o Bước 11: Kết thúc.
2.3.6. Sơ đồ luồng dữ liệu cho yêu cầu lập báo cáo mở/đóng sổ trong tháng
Biểu mẫu:
BM5.2 Báo Cáo Mở/Đóng Sổ Tháng
Loại tiết kiệm: Tháng:
STT Ngày Sổ Mở Sổ Đóng Chênh Lệch
1 2
Sơ đồ:
Hình 2.6: Sơ đồ DFD báo cáo mở đóng
Các luồng dữ liệu:
o D1: Loại tiết kiệm, tháng báo cáo, năm báo cáo
o D2: Không có.
o D3: Danh sách các sổ tiết kiệm có cùng loại tiết kiệm (D1), cùng với ngày mở và đóng sổ đó nằm trong tháng báo cáo và năm báo cáo (D1).
o D4: D1 + các ngày của tháng D1, số lượng sổ mở, đóng cùng với chênh lệch giữa chúng của ngày đó.
o D5: D4.
o D6: D5
Thuật toán:
o Bước 1: Nhận D1 từ người dùng.
o Bước 2: Kết nối cơ sở dữ liệu.
o Bước 4: Tính số sổ mở theo từng ngày, tính sổ đóng theo từng ngày, và chênh lệch của sổ mở và đóng theo loại tiết kiệm đang chọn, trong tháng đang chọn, của năm đang chọn.
o Bước 6: Lưu D4 xuống bộ nhớ phụ.
o Bước 7: Xuất D5 ra máy in
o Bước 8: Trả D6 về cho người dùng.
o Bước 9: Đóng kết nối cơ sở dữ liệu.
o Bước 10: Kết thúc.
2.3.7. Sơ đồ luồng dữ liệu cho yêu cầu thay đổi quy định về các loại tiết kiệm(thêm, xóa, sửa số lượng kì hạn và lãi suất): (thêm, xóa, sửa số lượng kì hạn và lãi suất):
Sơ đồ:
Các luồng dữ liệu:
o D1: Thông tin loại tiết kiệm
o D2: Không có
o D3: Danh sách loại tiết kiệm, danh sách sổ tiết kiệm
o D4: D1
o D5: Không có
o D6: D4 Thuật toán:
o Bước 1: Nhận D1 từ người dùng (quản trị viên).
o Bước 2: Kết nối cơ sở dữ liệu.
o Bước 3: Đọc D3 từ bộ nhớ phụ lên. Nếu thêm quy định thì xuống bước 4, xóa quy định thì xuống bước 6 , sửa quy định thì xuống bước 9.
o Bước 4: Xét xem kỳ hạn ở D1 có trùng với kỳ hạn ở D3 không. Nếu trùng
thì xuống bước 13.
o Bước 5: Thêm D1 vào bộ nhớ phụ và xuống bước 12.
o Bước 6: Xét xem kỳ hạn ở D1 có trùng với kỳ hạn ở D3 không. Nếu
không trùng xuống bước 13.
o Bước 7: Xét xem kỳ hạn ở D1 có tồn tại sổ tiết kiệm nào đang sử dụng không. Nếu có xuống bước 13.
o Bước 8: Xóa D1 khỏi bộ nhớ phụ và xuống bước 12.
o Bước 9: Xét xem kỳ hạn ở D1 có trùng với kỳ hạn ở D3 không. Nếu
không trùng thì xuống bước 13.
o Bước 10: Xét xem lãi suất ở D1 có trùng với lãi suất ở D3 không. Nếu
trùng thì xuống bước 13.
o Bước 11: Cập nhật các giá trị ở D1 vào bộ nhớ phụ.
o Bước 12: Hiển thị D6 ra màn hình.
o Bước 13: Đóng cơ sở dữ liệu
2.3.8. Sơ đồ luồng dữ liệu cho yêu cầu thay đổi quy định về thời gian gửi tối thiểu, số tiền gửi tối thiểu
Sơ đồ:
Hình 2.8: Sơ đồ DFD thay đổi quy định (tham số)
Các luồng dữ liệu:
o D1: Tên kỳ hạn, thời gian gửi tối thiểu, tiền gửi tối thiểu
o D2: Không có
o D3: Danh sách loại tiết kiệm
o D4: D1
o D5: Không có
o D6: D4 Thuật toán:
o Bước 1: Nhận D1 từ người dùng (quản trị viên)
o Bước 3: Đọc D3 từ bộ nhớ phụ lên.
o Bước 4: Xét xem kỳ hạn ở D1 có tồn tại ở D3 không. Nếu không tồn tại thì xuống bước 8.
o Bước 5: Xét xem các thông tin còn lại ở D1 (thời gian gửi tối thiếu, tiền gửi tối thiểu) có trùng với dữ liệu của kỳ hạn đó ở D3 không. Nếu trùng thì xuống bước 8.
o Bước 6: Cập nhật D1 xuống bộ nhớ phụ
o Bước 7: Hiển thị D6 ra màn hình
o Bước 8: Đóng cơ sở dữ liệu
o Bước 9: Kết thúc
2.3.9 Sơ đồ luồng dữ liệu cho yêu cầu tạo nhóm quyền và phân quyền cho nhóm
Sơ đồ:
Hình 2.9: Sơ đồ DFD thêm nhóm quyền và phân quyền
Các luồng dữ liệu:
o D1: Tên nhóm quyền, các chức năng được cung cấp.
o D3: Danh sách nhóm quyền, danh sách chức năng
o D4: D1
o D5: Không có
o D6: D4
Thuật toán:
o Bước 1: Nhận D1 từ người dùng (quản trị viên).
o Bước 2: Kết nối cơ sở dữ liệu.
o Bước 3: Đọc D3 từ bộ nhớ phụ lên.
o Bước 4: Kiểm tra tên nhóm quyền ở D1 có trùng với tên nhóm quyền ở D3 không. Nếu có, đến bước 8.
o Bước 5: Quản trị viên xem xét các chức năng được phép tạo cho nhóm quyền (chức vụ) này.
o Bước 6: Cập nhật D1 xuống bộ nhớ phụ
o Bước 7: Hiển thị D6 ra màn hình
o Bước 8: Đóng cơ sở dữ liệu
o Bước 9: Kết thúc
2.3.10 Sơ đồ luồng dữ liệu cho yêu cầu tạo người dùng
Hình 2.10: Sơ đồ DFD tạo người dùng
Các luồng dữ liệu:
o D1: Tên đăng nhập, mật khẩu, họ tên, nhóm quyền.
o D2: Không có
o D3: Danh sách nhóm quyền, danh sách người dùng
o D4: D1
o D5: Không có
o D6: D4
Thuật toán:
o Bước 1: Nhận D1 từ người dùng (quản trị viên).
o Bước 2: Kết nối cơ sở dữ liệu.
o Bước 3: Đọc D3 từ bộ nhớ phụ lên.
o Bước 4: Kiểm tra tên đăng nhập ở D1 có trùng với tên nhóm đăng nhập ở D3 không. Nếu có, đến bước 7.
o Bước 6: Hiển thị D6 ra màn hình
o Bước 7: Đóng cơ sở dữ liệu
Chương 3 – THIẾT KẾ HỆ THỐNG
3.1. Kiến trúc hệ thống:
Sau giai đoạn phân tích đến giai đoạn thiết kế, xây dựng hệ thống thành một giải pháp thực thi. Mô hình sẽ được thiết kế chi tiết và xem xét đến các vấn đề kỹ thuật. Các lớp giải quyết vấn đề cơ bản như: cơ sở dữ liệu (database), giao diện người dùng (user interface),... Một số lớp mới có thể được phát hiện bổ sung.
Để xây dựng phần mềm quản lý sổ tiết kiệm, chúng em xây dựng chương trình dựa trên mô hình Client – Server, cụ thể là Fat Client với các xử lí nằm ở Client
Mô hình khai thác ưu điểm là tính tiện dụng để chia sẻ dữ liệu và đồng bộ trong hệ thống một ngân hàng cũng như dễ bảo trì, nâng cấp.
Hai lớp Client Server có thể chạy trên hai máy tính riêng biệt hoặc trên cùng thiết bị.
3.2. Mô tả các thành phần trong hệ thống:
STT Thành phần Diễn giải
1
Client
Giao diện
● Hiển thị các thành phần giao diện để tương tác với người dùng như tiếp nhận thông tin, thông báo lỗi, …
● Nó gồm các thành phần giao diện (page) và thực hiện các công việc như nhập liệu, hiển thị dữ liệu, gửi yêu cầu đến phần xử lí
Xử lí
● Bao gồm các lớp đối tượng dựa trên sơ đồ các lớp đối tượng chính của hệ thống đã đưa ra ở phần phân tích.
● Đây là nơi đáp ứng các yêu cầu thao tác dữ liệu của GUI, xử lý chính nguồn dữ liệu từ người dùng trước khi lưu xuống CSDL.
● Đây còn là nơi kiểm tra các ràng buộc, tính toàn vẹn và hợp lệ dữ liệu, thực hiện tính toán và xử lý các yêu cầu nghiệp vụ, trước khi trả kết quả về cho phần UI
2
Server Cơ sở dữliệu ● Bao gồm các bảng, các ràng buộc, view cho lớpxử lý để thực hiện các chức năng truy xuất dữ liệu, thêm, xóa, cập nhật dữ liệu.
Chương 4 – THIẾT KẾ DỮ LIỆU
4.1. Thuật toán lập sơ đồ logic
4.1.1: Xét yêu cầu mở sổ tiết kiệm
4.1.1.1. Thiết kế dữ liệu với tính đúng đắn
● Biểu mẫu liên quan: BM1 ● Sơ đồ luồng dữ liệu: SĐ1
● Các thuộc tính mới: MaLoaiTietKiem, TenKhachHang, DiaChi, SoTienGuiBanDau, SoCMND, NgayMoSo, NgayDaoHanKeTiep ● Các thuộc tính trừu tượng: MaSoTietKiem
● Thiết kế dữ liệu: table SOTIETKIEM ● Sơ đồ logic SOTIETKIEM MaSoTietKiem MaLoaiTietKiem TenKhachHang DiaChi SoTienGuiBanDau SoCMND NgayMoSo NgayDaoHanKeTiep
4.1.1.2. Thiết kế dữ liệu với tính tiến hóa
● Quy định liên quan: QĐ1
● Sơ đồ dữ liệu về việc thay đổi quy định: SĐ7
● Các thuộc tính mới: TenLoaiTietKiem, LaiSuat, LaiSuatApDung