I. Phân tích yếu tố bài toán
Bảng phân tích
Động từ và bổ ngữ Danh từ Nhận xét
Đăng kí Mượn sách Tra cứu Phích sách Ghi vào Phiếu mượn Mượn Sách
Trả Sách
Làm Thẻ thư viện Cập nhật Sách
Cung cấp Sách
Thẻ thư viện Thư viện Sách Phích sách Sinh viên Phiếu mượn Nhà cung cấp
-- HSDL HSDL Tác nhân HSDL HSDL Tác nhân
II. Xác định các lớp
Hệ thống có các lớp sau:
1. NguoiMuon : chức năng lưu thông tin người mượn.
2. Sach: chức năng lưu thông tin sách.
3. NhanVien: chức năng lưu thông tin nhân viên.
4. Nguoi: chức năng lưu thông tin người (Actor hệ thống: quản lý, nhân viên, người mượn, người dùng).
5. DiaChi: chức năng lưu trữ thông tin địa chỉ của Actor.
6. Ten: chức năng lưu tên của Actor.
7. TheMuon: chức năng lưu trữ thông tin hệ thống của Actor.
8. PhieuTra: chức năng lưu thông tin lịch sử trả sách của Actor.
9. PhieuMuon: chức năng lưu thông tin lịch sử mượn sách của Actor.
10. DatSach: chức năng lưu thông tin lịch sử đặt sách của Actor.
III. Xác định quan hệ
a. Xác định quan hệ giữa các lớp
2.1 Sơ đồ quan hệ giữa các lớp
Lớp Nguoi bặt buộc phải có Ten và ĐiaChi nên Ten và DiaChi quan hệ với lớp Nguoi là composition.
Lớp NhanVien, NguoiMuon, và QuanTri dù không chạy chương trình họ vẫn là người nên các lớp đó kế thứa từ lớp Nguoi (inheritance).
Lớp NguoiMuon muốn mượn được sách phải có thẻ mượn 2 lớp này quan hệ association.
Lớp NguoiMuon và Sach không có quan hệ gì, chỉ khi có lớp DatSach thì chúng có quan hệ với nhau (association).
1 phiếu đặt có thể có nhiều phiếu mượn, 1 phiếu mượn có thể có nhiều phiếu trả nên lớp DatSach, PhieuMuon, PhieuTra có quan hệ aggregation.
IV. Xác định thuộc tính
1. Lớp TheMuon gồm các thuộc tính ngayTao, ngayHetHan, banDoc.
2. Lớp Ten gồm các thuộc tính hoTen, tenDem, ten.
3. Lớp DiaChi gồm các thuộc tính tenDuong, tenPho, soNha.
4. Lớp QuanTri gồm các thuộc tính maQuanTri, username, passWord.
5. Lớp NhanVien gồm các thuộc tính maNhanVien, chucVu, username, passWord.
6. Lớp PhieuMuon gồm các thuộc tính arrayDatSach, ngayMuon, ngayTra.
7. Lớp PhieuTra gồm các thuộc tính arrayPhieuMuon, ngayTra.
8. Lớp Sach gồm các thuộc tính maSach, tenSach, tenTheLoai, tenTacGia, chuyenNganh, namXB, nhaXB.
9. Lớp DatSach gồm các thuộc tính banDoc, arraySach(1 danh sách các sách), ngayMuon, ngayTra.
10. Lớp NguoiMuon gồm các thuộc tính maBanDoc, lop, chuyenNganh, username, password.
11. Lớp Nguoi gồm các thuộc tính ten, diaChi, email, sdt.
V. Xác định phương thức
1. NguoiMuon(): chức năng khởi tạo người mượn.
2. themPM(): chức năng thêm phiếu mượn.
3. suaPM(): chức năng sửa phiếu mượn.
4. xoaPM(): chức năng xóa phiếu mượn.
5. themPT(): chức năng thêm phiếu trả.
6. suaPT(): chức năng sửa phiếu trả.
7. xoaPT(): chức năng xóa phiếu trả
8. themBD(): chức năng thêm người mượn.
9. xoaBD(): chức năng xóa người mượn.
10. suaBD(): chức năng sửa bạn đọc.
11. datSach(): chức năng đặt sách.
12. traSach(BanDoc): chức năng trả sách cho bạn đọc.
13. muonSach(BanDoc): chức năng mượn sách cho bạn đọc.
14. thayDoiThongTin(): chức năng thay đổi thông tin người mượn.
15. themTM(): chức năng thêm thẻ mượn.
16. xoaTM(): chức năng xóa thẻ mượn.
17. suaTM(): chức năng sửa thẻ mượn.
18. Sach(): khởi tạo sách.
19. themSach(): chức năng thêm sách mới.
20. suaSach(): chức năng sửa sách.
21. xoaSach(): chức năng xóa sách.
22. huyDatSach(): chức năng hủy đặt sách đã đặt.
23. themMoi(): chức năng thêm mới đặt sách.
24. suaDS(): chức năng sửa đặt sách.
VI. Cập nhật thuật ngữ và các yêu cầu phi chức năng
a. Thuật ngữ:
1.Người mượn: người mượn sách của thư viện, có thể là học sinh, sinh viên, giảng viên.
2.Thẻ mượn: là thẻ để người mượn có thể mượn sách
3.Phiếu mượn: khi mượn sách, bạn sẽ có phiếu mượn, ghi lại thông tin mượn của ngày hôm đó.
4.Đặt sách: để đặt sách muốn mượn, có ngày mượn, ngày trả.
5.Nhân viên: người xử lý các yêu cầu của người mượn.
b. Các yêu phi chức năng:
Hệ thống của thể chạy trên các trình duyệt web như Internet Explorer, Chrom, Mozila Firefox, Crom++ và chạy được trên mobile như các hệ điều hành Android, IOS, WinPhone, J2ME, RIM ngoài ra hệ thống có thể đồng bộ hóa với Email, Gmail và FaceBook.
Hệ thống cho phép kết nối với cơ sở dữ liệu phân tán.