Bối cảnh và vấn đề nghiên cứu
Trong xu thế phát triển và ứng dụng công nghệ thông tin vào các lĩnh vực đời sống kinh tế - xã hội, các hoạt động nghiệp vụ đòi hỏi mức độ chính xác cao và tốc độ xử lý nhanh chóng ngày càng phụ thuộc vào các hệ thống tự động hóa. Trong lĩnh vực tài chính - ngân hàng, nhu cầu thanh toán phi tiền mặt của xã hội tăng nhanh, đặc biệt là các dịch vụ thanh toán qua thẻ và tiền gửi thanh toán cá nhân nhờ tính tiện lợi và an toàn. Trước yêu cầu quản lý khối lượng giao dịch lớn với độ tin cậy tuyệt đối, việc tin học hóa nghiệp vụ ngân hàng, đặc biệt là mảng tiền gửi thanh toán, trở thành nhiệm vụ cấp thiết.
Báo cáo bài tập lớn môn Phân tích thiết kế hướng đối tượng với đề tài "Quản lý tiền gởi thanh toán ngân hàng" được thực hiện bởi nhóm sinh viên Nguyễn Ngọc Quyết và Đặng Thị Thanh Dung dưới sự hướng dẫn của giảng viên Vũ Thị Dương tại Khoa Công nghệ Thông tin, Trường Đại học Công nghiệp Hà Nội (hoàn thành ngày 10 tháng 12 năm 2010).
Mục tiêu và nhiệm vụ nghiên cứu của đề tài bao gồm:
- Khảo sát thực trạng quy trình nghiệp vụ tiền gửi thanh toán tại ngân hàng thương mại, tập trung vào nguyên tắc quản lý khách hàng tập trung.
- Xác định các yêu cầu chức năng và phi chức năng của hệ thống phục vụ công tác quản lý tài khoản, xử lý giao dịch và lập báo cáo định kỳ.
- Phân tích và mô hình hóa hệ thống theo phương pháp hướng đối tượng: xác định tác nhân (actor), xây dựng biểu đồ ca sử dụng (use case diagram), biểu đồ hoạt động (activity diagram), biểu đồ trình tự (sequence diagram), biểu đồ lớp (class diagram), biểu đồ trạng thái (state machine diagram), biểu đồ thành phần (component diagram) và biểu đồ triển khai (deployment diagram).
- Thực hiện phát sinh mã nguồn (code generation) khung cho các lớp đối tượng cốt lõi bằng ngôn ngữ lập trình C++.
Đối tượng nghiên cứu của đề tài là quy trình nghiệp vụ quản lý tiền gửi thanh toán cá nhân và các giao dịch tài chính liên quan (gửi tiền, rút tiền, chuyển khoản nội bộ). Phạm vi nghiên cứu giới hạn ở môi trường giao dịch nội bộ trong cùng một ngân hàng và mô hình kiến trúc ứng dụng phân tán phục vụ tác nghiệp tại quầy và quản trị.
Cơ sở lý thuyết và phương pháp
Đề tài áp dụng phương pháp luận Phân tích và Thiết kế Hướng đối tượng (Object-Oriented Analysis and Design - OOAD) cùng ngôn ngữ mô hình hóa thống nhất UML (Unified Modeling Language) để chuẩn hóa toàn bộ quy trình từ khảo sát yêu cầu đến thiết kế phần mềm.
Khung lý thuyết và mô hình sử dụng
- Mô hình ca sử dụng (Use Case Model): Phân rã chức năng hệ thống theo góc nhìn của từng tác nhân, đặc tả chi tiết dòng sự kiện chính, dòng sự kiện phụ (rẽ nhánh/lỗi), điều kiện tiên quyết và điều kiện kết thúc.
- Mô hình tương tác và hành vi (Behavioral Models): Sử dụng biểu đồ hoạt động để mô hình hóa luồng công việc nghiệp vụ; biểu đồ trình tự để mô tả trình tự trao đổi thông điệp giữa các đối tượng giao diện, điều khiển và thực thể; biểu đồ trạng thái để theo dõi vòng đời của các thực thể trọng yếu.
- Mô hình cấu trúc tĩnh (Structural Models): Xây dựng biểu đồ lớp lĩnh vực (domain class) và biểu đồ lớp chi tiết thể hiện các thuộc tính, phương thức và mối quan hệ kết tập, kế thừa, phụ thuộc giữa các thực thể.
- Mô hình kiến trúc và triển khai: Sử dụng biểu đồ thành phần để phân tách các tầng ứng dụng (Application), tầng miền (Domain) và tầng hạ tầng (Infrastructure); sử dụng biểu đồ triển khai để cấu hình các nút phần cứng vật lý.
Phương pháp nghiên cứu
- Phương pháp khảo sát và thu thập thông tin: Phân tích thực tế các nghiệp vụ giao dịch tại ngân hàng, bao gồm hoạt động huy động vốn cá nhân, quy trình tiếp nhận hồ sơ khách hàng, phát hành thẻ tài khoản, lập phiếu giao dịch và kiểm soát hạn mức số dư/thấu chi.
- Phương pháp phân tích - tổng hợp: Hệ thống hóa các luồng nghiệp vụ thành các quy tắc xử lý logic chặt chẽ nhằm ngăn ngừa sai sót giao dịch.
- Phương pháp mô hình hóa và sinh mã: Ứng dụng công cụ CASE (Computer-Aided Software Engineering) hỗ trợ UML để chuyển đổi các đặc tả thiết kế lớp thành các tệp tiêu đề (header files) và khung mã nguồn (skeleton code) C++.
Nội dung chính theo từng chương
Khảo sát hệ thống
Chương khảo sát tập trung làm rõ bức tranh tổng thể về các hoạt động của ngân hàng thương mại, từ đó cô lập và chi tiết hóa các yêu cầu đối với phân hệ quản lý tiền gửi thanh toán (TGTT).
Hoạt động ngân hàng được chia thành hai nhóm đối tượng phục vụ chính:
- Đối với khách hàng cá nhân: Tiền gửi thanh toán, tiết kiệm lãi suất lũy tiến, tiết kiệm đa kỳ linh hoạt, tiết kiệm không kỳ hạn, tiết kiệm có kỳ hạn, cho vay mua ô tô, cho vay nhà, cho vay cầm cố giấy tờ có giá, cho vay tín chấp cán bộ, cho vay hộ kinh doanh.
- Đối với khách hàng doanh nghiệp: Tiền gửi ngân hàng, tài trợ thương mại, tài trợ vốn lưu động, tài trợ dự án, bảo lãnh ngân hàng.
Ngân hàng vận hành theo nguyên tắc quản lý khách hàng tập trung, cho phép khách hàng thực hiện các giao dịch gửi tiền, rút tiền, chuyển khoản tại bất kỳ điểm giao dịch nào. Phân hệ tiền gửi thanh toán đảm nhận các nhiệm vụ:
- Quản lý tài khoản tiền gửi thanh toán: Mở tài khoản, cấp phát mã thẻ tài khoản duy nhất cho mỗi khách hàng, thay đổi thông tin, truy vấn số dư, thực hiện đóng hoặc phong tỏa tài khoản khi có yêu cầu.
- Xử lý các giao dịch phát sinh: Thực hiện nộp tiền mặt, rút tiền mặt và chuyển khoản tức thời.
- Lập báo cáo thống kê: Xuất bảng kê chi tiết các giao dịch phát sinh hàng tháng.
- Quản lý danh mục thông tin: Lưu trữ và đồng bộ dữ liệu về nhân viên, khách hàng, tài khoản và chi nhánh.
Quy trình nghiệp vụ cụ thể được khảo sát gồm:
- Quản lý gửi tiền: Với khách hàng mới, nhân viên tiếp nhận hồ sơ đăng ký và tiến hành mở tài khoản trước khi nộp tiền. Với khách hàng đã có tài khoản, nhân viên tiếp nhận tiền và giấy nộp tiền, kiểm tra tính khớp đúng, cập nhật hệ thống máy tính, in phiếu gửi tiền thành 02 bản (01 bản giao khách hàng, 01 bản lưu ngân hàng), trả thẻ tài khoản và thông báo thành công.
- Quản lý rút tiền: Khách hàng xuất trình thẻ tài khoản và nộp giấy rút tiền. Nhân viên kiểm tra tính hợp lệ của thẻ, kiểm tra hạn mức thấu chi và số dư tài khoản khả dụng. Nếu thỏa mãn điều kiện, hệ thống lập phiếu, thực hiện xuất tiền mặt, cập nhật trừ số dư và trả thẻ cho khách hàng.
- Quản lý chuyển khoản nội bộ: Khách hàng nộp thẻ và phiếu chuyển tiền. Nhân viên kiểm tra tính hợp lệ của thẻ người chuyển, kiểm tra số dư và hạn mức thấu chi, sau đó kiểm tra thông tin thẻ tài khoản của người nhận. Khi thông tin hai bên đều hợp lệ và số dư đủ thanh toán, hệ thống thực hiện chuyển tiền, cập nhật số dư của hai tài khoản và hoàn tất giao dịch.
Phân tích hệ thống
Dựa trên mô hình nghiệp vụ khảo sát, hệ thống được phân tích chi tiết thông qua các tác nhân và ca sử dụng.
| Tác nhân (Actor) |
Vai trò và phạm vi tương tác |
| Admin |
Quản trị toàn bộ hệ thống, phân quyền người dùng và bảo trì kỹ thuật |
| Nhà quản lý |
Giám sát vận hành, quản lý danh mục nhân viên, khách hàng và xem báo cáo thống kê |
| Nhân viên |
Thực hiện mở tài khoản, lập và quản lý các loại phiếu giao dịch, hỗ trợ khách hàng |
| Khách hàng |
Tương tác với hệ thống để thực hiện yêu cầu gửi tiền, rút tiền, chuyển khoản và truy vấn |
Hệ thống bao gồm 9 ca sử dụng chính: Quản lý nhân viên, Quản lý khách hàng, Quản lý tài khoản, Quản lý phiếu giao dịch, Yêu cầu chuyển khoản, Yêu cầu gởi tiền, Yêu cầu rút tiền, Mở tài khoản, Báo cáo, cùng 2 ca sử dụng xác thực là Đăng nhập và Đăng xuất.
Đặc tả chi tiết các ca sử dụng trọng yếu trong tài liệu:
- Ca sử dụng Đăng nhập & Đăng xuất: Kiểm tra tính hợp lệ của tên đăng nhập và mật khẩu. Trường hợp nhập sai tên hoặc sai mật khẩu, hệ thống đưa ra thông báo lỗi tương ứng và yêu cầu nhập lại. Điều kiện tiên quyết là người dùng đã được cấp tài khoản trên hệ thống.
- Ca sử dụng Quản lý Khách hàng: Cho phép người quản lý thực hiện các chức năng xem, thêm mới, sửa, xóa, in danh sách và in chi tiết thông tin khách hàng. Dữ liệu quản lý bao gồm: họ tên khách hàng, địa chỉ, điện thoại, ngày sinh, quê quán, số CMTND. Hệ thống ràng buộc kiểm tra tính hợp lệ của dữ liệu đầu vào và chỉ cho phép người dùng có thẩm quyền thực hiện thao tác thêm/xóa.
- Ca sử dụng Quản lý Nhân viên: Hỗ trợ người quản lý duy trì dữ liệu nhân viên với các thuộc tính: họ tên, địa chỉ, điện thoại, ngày sinh, quê quán, số CMTND. Điểm mở rộng cho phép thực hiện tìm kiếm nhân viên theo tiêu chí.
- Ca sử dụng Quản lý Phiếu Giao Dịch: Nhân viên quản lý 3 loại chứng từ: phiếu gửi tiền, phiếu rút tiền và phiếu chuyển khoản. Các thông tin quản lý gồm: thẻ tài khoản, loại giao dịch, nhân viên lập phiếu, ngày lập, mã khách hàng, họ tên khách hàng.
- Các ca sử dụng Giao dịch (Gửi tiền, Rút tiền, Chuyển khoản):
- Yêu cầu gửi tiền: Tiếp nhận thông tin thẻ và số tiền gửi, đối chiếu dữ liệu nộp tiền, cập nhật tăng số dư vào cơ sở dữ liệu và xuất thông tin tài khoản sau giao dịch.
- Yêu cầu rút tiền: Xác thực thẻ, kiểm tra số dư hiện tại so với số tiền yêu cầu rút. Nếu số dư không đủ, hệ thống báo lỗi từ chối giao dịch.
- Yêu cầu chuyển khoản: Kiểm tra tính hợp lệ của cả thẻ chuyển và thẻ nhận (ràng buộc cùng hệ thống ngân hàng), đối chiếu số dư tài khoản chuyển. Khi thỏa mãn các điều kiện, hệ thống tự động trừ tiền người gửi, cộng tiền người nhận và cập nhật trạng thái phiếu chuyển.
Thiết kế và triển khai
Hệ thống được thiết kế theo cấu trúc hướng đối tượng hoàn chỉnh, chuyển tiếp từ các mô hình phân tích sang các mô hình kiến trúc phần mềm và triển khai vật lý.
Thiết kế lớp và mô hình trạng thái
- Lớp lĩnh vực và lớp chi tiết: Hệ thống xác định các lớp thực thể trung tâm gồm
KhachHang, NHANVIEN, CHI NHANH, ChucVu, LoaiGiaoDich, PhieuGiaoDich, TaiKhoan, ThongTinGiaoDich.
- Mô hình trạng thái: Xây dựng biểu đồ trạng thái chi tiết cho ba đối tượng quan trọng nhằm kiểm soát chặt chẽ vòng đời dữ liệu:
- Đối tượng Tiền: Trạng thái tiếp nhận, kiểm đếm, xác thực, ghi có/ghi nợ.
- Đối tượng Phiếu giao dịch: Trạng thái khởi tạo, chờ duyệt, đã duyệt/thành công, hủy bỏ.
- Đối tượng Nhân viên: Trạng thái hoạt động, tạm khóa, ngừng hoạt động.
Kiến trúc thành phần và triển khai
- Biểu đồ thành phần: Tổ chức hệ thống theo các gói chức năng và miền logic:
- Tầng Ứng dụng (Application): Giao diện khách hàng, Giao diện nhân viên, Giao diện nhà quản lý.
- Tầng Miền (Domain): Tra cứu thông tin, Quản lý giao dịch, Quản lý duy trì thông tin, Báo cáo - Thống kê, Cập nhật thông tin.
- Tầng Cơ sở hạ tầng (Infrastructure): Kết nối, Bảo mật thông tin, Cơ sở dữ liệu.
- Biểu đồ triển khai: Mô hình Client - Server phân tán bao gồm:
- Máy nhà quản lý (kết nối điều hành).
- Nhiều máy trạm nhân viên (Máy nhân viên 1, Máy nhân viên 2...).
- Một máy chủ ứng dụng và quản lý đối tượng (Application & Object Management Server).
- Một máy chủ dữ liệu / Cơ sở dữ liệu (Database Server).
Phát sinh mã nguồn C++
Hệ thống sử dụng công cụ thiết kế để tự động sinh mã nguồn khung (C++ header files) cho các lớp dữ liệu, bảo đảm tính nhất quán giữa bản vẽ thiết kế và cấu trúc mã nguồn.
Khung khai báo lớp KhachHang được phát sinh:
#include "KhachHang.h"
String KhachHang::Them_TT_KH() { }
String KhachHang::Xoa_TT_KH() { }
String KhachHang::Sua_TT_KH() { }
String KhachHang::Tim_Kiem_TT_KH() { }
#ifndef KHACHHANG_H_HEADER_INCLUDED_B2FD5337
#define KHACHHANG_H_HEADER_INCLUDED_B2FD5337
class KhachHang {
public:
String Them_TT_KH();
String Xoa_TT_KH();
String Sua_TT_KH();
String Tim_Kiem_TT_KH();
private:
String MaKH;
String TenKH;
String DiaChi;
String DienThoai;
String Fax;
String NgayLapThe;
String NgayHetHan;
String GhiChu;
};
#endif /* KHACHHANG_H_HEADER_INCLUDED_B2FD5337 */
Khung khai báo lớp NHANVIEN được phát sinh:
#include "NHANVIEN.h"
NHANVIEN::Them_NV() { }
NHANVIEN::Xoa_NV() { }
NHANVIEN::Sua_NV() { }
NHANVIEN::Tim_Kiem_Nv() { }
#ifndef NHANVIEN_H_HEADER_INCLUDED_B2FD5D2D
#define NHANVIEN_H_HEADER_INCLUDED_B2FD5D2D
class ThongTinGiaoDich;
class PhieuGiaoDich;
class NHANVIEN {
public:
Them_NV();
Xoa_NV();
Sua_NV();
Tim_Kiem_Nv();
private:
MaNV;
TenNhanVien;
DienThoai;
DiaChi;
ThongTinGiaoDich **;
PhieuGiaoDich **;
};
#endif /* NHANVIEN_H_HEADER_INCLUDED_B2FD5D2D */
Khung khai báo lớp CHI NHANH được phát sinh:
#include "CHI NHANH.h"
String CHI_NHANH::Them_CN() { }
String CHI_NHANH::Xoa_CN() { }
String CHI_NHANH::Sua_CN() { }
Kết quả và đóng góp
Đề tài đã hoàn thành đầy đủ các nội dung nghiên cứu và thiết kế theo yêu cầu môn học Phân tích thiết kế hướng đối tượng:
- Xây dựng được hồ sơ phân tích thiết kế hoàn chỉnh cho bài toán Quản lý tiền gửi thanh toán ngân hàng với hệ thống biểu đồ UML phong phú: 3 mô hình use case phân cấp theo tác nhân, 8 biểu đồ hoạt động, 7 biểu đồ trình tự, hệ thống biểu đồ lớp lĩnh vực/chi tiết, 3 biểu đồ trạng thái, biểu đồ thành phần và biểu đồ triển khai.
- Chuẩn hóa các quy tắc kiểm tra logic nghiệp vụ ngân hàng đối với các giao dịch tài chính cốt lõi (kiểm tra trạng thái thẻ, kiểm tra số dư tài khoản so với hạn mức rút/chuyển, kiểm tra tài khoản đích).
- Thiết lập mô hình kiến trúc phân tầng rõ ràng (Application - Domain - Infrastructure) và mô hình triển khai mạng Client - Server tách biệt máy chủ ứng dụng và máy chủ cơ sở dữ liệu.
- Hoàn thành việc ánh xạ từ mô hình lớp sang khung mã nguồn hướng đối tượng bằng C++ cho toàn bộ các thực thể chính (
KhachHang, NHANVIEN, CHI NHANH, ChucVu, LoaiGiaoDich, PhieuGiaoDich, TaiKhoan, ThongTinGiaoDich).
Hạn chế và hướng nghiên cứu tiếp
Dựa trên nội dung tài liệu, đề tài còn tồn tại một số hạn chế gắn liền với phạm vi của một bài tập lớn môn học:
- Báo cáo tập trung chủ yếu vào pha phân tích và thiết kế mô hình UML; phần hiện thực mã nguồn C++ mới dừng lại ở mức phát sinh khung lớp (class skeleton/header), chưa cài đặt chi tiết phần thân xử lý của các phương thức (method body).
- Phạm vi nghiệp vụ chuyển khoản mới chỉ hỗ trợ giao dịch nội bộ giữa các tài khoản trong cùng một hệ thống ngân hàng, chưa tích hợp giao dịch liên ngân hàng.
- Chưa có giao diện người dùng hoàn chỉnh cũng như cơ chế kết nối thực tế với một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS).
Hướng phát triển tiếp theo của đề tài:
- Lập trình hoàn thiện nội dung mã nguồn cho các phương thức trong các lớp đối tượng C++.
- Mở rộng chức năng kết nối liên ngân hàng và tích hợp các kênh thanh toán trực tuyến hiện đại.
- Xây dựng giao diện tương tác trực quan cho từng nhóm tác nhân và kết nối với cơ sở dữ liệu để kiểm thử toàn diện hệ thống.
Giá trị tham khảo
Tài liệu là nguồn tham khảo hữu ích cho:
- Sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm và Hệ thống thông tin trong quá trình học tập môn Phân tích thiết kế hướng đối tượng hoặc thực hiện đồ án môn học.
- Người học cần tài liệu mẫu về quy trình xây dựng đầy đủ các loại biểu đồ UML (Use Case, Activity, Sequence, Class, State Machine, Component, Deployment) cho một bài toán quản lý nghiệp vụ thực tế.
- Các nhóm phát triển phần mềm tham khảo quy trình khảo sát và chuẩn hóa nghiệp vụ giao dịch tiền gửi thanh toán ngân hàng cơ bản.
Câu hỏi thường gặp
1. Hệ thống xác định những nhóm tác nhân (actor) nào và quyền hạn cơ bản của từng nhóm ra sao?
Hệ thống xác định 4 tác nhân chính:
Admin: Quản trị toàn bộ hệ thống và phân quyền.
Nhà quản lý: Quản lý danh mục khách hàng, nhân viên và xem báo cáo thống kê.
Nhân viên: Tiếp nhận yêu cầu mở tài khoản, lập và quản lý các phiếu giao dịch (gửi, rút, chuyển tiền).
Khách hàng: Thực hiện các giao dịch gửi tiền, rút tiền, chuyển khoản và tra cứu thông tin tài khoản.
2. Quy trình kiểm tra tính hợp lệ trong ca sử dụng "Chuyển khoản" được thực hiện như thế nào?
Khi khách hàng yêu cầu chuyển khoản, hệ thống tiến hành kiểm tra tuần tự qua các bước:
- Kiểm tra tính hợp lệ của thẻ tài khoản người chuyển.
- Kiểm tra tính hợp lệ của thẻ tài khoản người nhận (yêu cầu thuộc cùng một hệ thống ngân hàng).
- Kiểm tra số dư tài khoản người chuyển: số tiền trong tài khoản phải lớn hơn hoặc bằng số tiền yêu cầu chuyển cộng hạn mức quy định.
Nếu tất cả các điều kiện đều hợp lệ, hệ thống thực hiện trừ tiền tài khoản gửi, cộng tiền tài khoản nhận và cập nhật thông tin; ngược lại sẽ xuất thông báo lỗi tương ứng.
3. Phiếu giao dịch trong hệ thống bao gồm những loại nào và lưu trữ thông tin gì?
Hệ thống quản lý 3 loại phiếu giao dịch:
- Phiếu gửi tiền.
- Phiếu rút tiền.
- Phiếu chuyển khoản.
Thông tin lưu trữ trên phiếu giao dịch gồm: thẻ tài khoản, loại giao dịch, nhân viên lập phiếu, ngày lập, mã khách hàng, họ tên khách hàng và thông tin giao dịch chi tiết.
4. Mô hình triển khai (Deployment Diagram) của hệ thống được cấu hình như thế nào?
Mô hình triển khai của hệ thống được tổ chức theo kiến trúc phân tán gồm:
- Các máy trạm của Nhà quản lý kết nối vào mạng.
- Nhiều máy trạm của Nhân viên giao dịch (Máy nhân viên 1, Máy nhân viên 2...).
- Một Máy chủ ứng dụng và quản lý đối tượng (Application Server).
- Một Máy chủ cơ sở dữ liệu (Database Server) lưu trữ tập trung.
5. Mã nguồn phát sinh (Code Generation) trong báo cáo được tạo ra bằng ngôn ngữ nào và gồm những lớp nào?
Mã nguồn phát sinh được tạo tự động bằng ngôn ngữ C++. Báo cáo thể hiện việc phát sinh mã cho các lớp thực thể: KhachHang, NHANVIEN, CHI NHANH, ChucVu, LoaiGiaoDich, PhieuGiaoDich, TaiKhoan, ThongTinGiaoDich.
Kết luận
Báo cáo bài tập lớn "Quản lý tiền gởi thanh toán ngân hàng" của nhóm sinh viên Trường Đại học Công nghiệp Hà Nội đã hoàn thành việc khảo sát, phân tích và thiết kế hướng đối tượng cho nghiệp vụ tiền gửi thanh toán cá nhân. Đề tài xây dựng được hệ thống tài liệu mô hình hóa UML toàn diện từ yêu cầu ca sử dụng, tương tác động, cấu trúc lớp đến kiến trúc triển khai hệ thống phân tán Client - Server. Kết quả nghiên cứu và phần phát sinh mã C++ tạo nền tảng vững chắc cho việc cài đặt phần mềm quản lý giao dịch ngân hàng ở các giai đoạn phát triển tiếp theo.