Java là một trong những ngôn ngữ lập trình hướng đối tượng. Nó được sử dụng trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị di động. Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem năm 1991. Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia dụng, và có tên là Oak. Java được phát hành năm 1994, đến năm 2010 được Oracle mua lại từ Sun MicroSystem. Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (Write Once, Run Anywhere – WORA). Chương trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó.
TỔNG QUAN BÀI TOÁN QUẢN LÝ THƯ VIỆN
Hoạt động nghiệp vụ thư viện
Các hoạt động nghiệp vụ của thư viện:
- Thư viện tạo ra các thẻ gồm các thông tin: Mã số sách, tên tác giả, tên nhà xuất bản, năm xuất bản, số trang, giá tiền Các đầu sách có thể được phân theo chuyên ngành hoặc tài liệu
- Mỗi độc giả được cấp một thẻ độc giả, gồm thông tin: tên, tuổi, địa chỉ, số chứng minh thư
- Độc giả muốn mượn sách thì tra cứu các thẻ rồi ghi vào phiếu mượn
- Sau khi kiểm tra đầy đủ thông tin phiếu mượn, thủ thư kiểm tra điều kiện mượn của độc giả và xác nhận cho phép mượn sách, thu tiền đặt cọc của độc giả Một số thông tin trong phiếu mượn được lưu lại để quản lí, phiếu mượn sẽ được gài vào chỗ sách được lấy đi, sách được giao cho độc giả
- Khi độc giả trả sách: xác nhận thẻ độc giả, xác định phiếu mượn, việc trả sách được ghi nhận vào dòng ngày trả và tình trạng Phiếu mượn được lưu lại để quản lí và theo dõi
- Sách trả muộn so với lịch hẹn hoặc hỏng sẽ bị phạt.
Yêu cầu hệ thống
- Giúp độc giả tra cứu sách theo loại sách, theo tên sách, theo tác giả, theo
- Thống kê hàng tháng số sách cho mượn theo các chủ đề, tác giả, … Thống kê các đầu sách không có người mượn trên một năm
- Hỗ trợ thủ thư cập nhật thông tin sách, xác nhận cho mượn sách và nhận lại sách khi độc giả trả sách
- Hỗ trợ quản lý các thông tin về độc giả dựa trên thẻ độc giả, thông tin phiếu mượn
- Hỗ trợ chức năng quản trị chung hệ thống trong đó người quản trị chung có thể thay đổi thông tin hoặc thêm bớt các thủ thư
2.2.2 Yêu cầu phi chức năng Độc giả có thể tra cứu thông tin sách trên môi trường mạng nội bộ của thư viện Tuy nhiên, việc mượn và trả sách phải thực hiện trực tiếp trên thư viện Thủ thư sử dụng hệ thống để cập nhật và quản lý quá trình mượn trả sách
Thông tin thống kê phải đảm bảo tính chính xác, khách quan Các hình thức phạt đối với độc giả quá hạn sẽ được lưu lại và thông báo cho độc giả biết.
Sơ đồ phân cấp chức năng
Mô tả chức năng hệ thống:
- Quản trị hệ thống: admin sử dụng chức năng quản trị hệ thống để quản lí thông tin người dùng và phân quyền sử dụng cho thủ thư, thủ kho,
- Quản lí kho: hệ thống cho phép quản lí toàn bộ thông tin của tất cả sách của thư viện, cho phép thêm, xóa, thay đổi thông tin của sách
- Quản lí độc giả: hệ thống cho phép quản lí thông tin cá nhân của từng độc giả, thêm, xóa, sửa thông tin độc giả
- Quản lí trả mượn: hệ thống cho phép quản lí việc mượn trả sách của độc giả, hỗ trợ tạo phiếu mượn, gia hạn sách, …
- Thống kê: hệ thống cho phép thống kê số lượng sách đã được mượn, số sách chưa được mượn trong 1 năm, … giúp người quản lí thư viện nắm rõ tình hình hoạt động trả mượn sách của thư viện.
Hình 1: sơ đồ phân cấp chức năng
MÔ HÌNH HÓA CHỨC NĂNG
Biểu đồ Lớp
Hình 3 Biểu đồ Lớp tổng quan
Biểu đồ use case tổng quát
Quan ly tac gia Quan ly the loai
Quan ly lop Quan ly sach Quan ly sinh vien
Cap nhat TT ca nhan Muon sach
Mô tả chi tiết các use case
3.2.1 Mô tả use case Tìm kiếm sách
KichNutSearch() Hien thi len man hinh() iCSDL
CSDL (from Use Case View)
MaSach TenSach MaTheLoai TacGia SoLuong MaNXB NgayNhap NDTT Hinh getMaSach() getTenSach() getMaTheLoai() getTacGia() getSoLuong() getMaNXB() getNgayNhap() getNDTT() getHinh() setMaSach() setTenSach() setMaTheLoai() setTacGia() setSoLuong() setMaNXB() setNgayNhap() setNDTT() setHinh() getSACH()
Hình 3.2: Biểu đồ lớp phân tích use case Tìm kiếm sách
Mô tả use case Use case này cho phép sinh viên nhập từ khóa để tìm kiếm sách mong muốn
Luồng cơ bản Use case này bắt đầu khi sinh viên nhập tên sách vào textbox hộp thoại tìm kiếm sau đó kích vào nút “Search” Hệ thống sẽ lấy thông tin sách từ bảng SACH dựa theo tên sách nhập vào và hiển thị lên màn hình.
Luồng rẽ nhánh - Tại bất kỳ thời điểm nào trong quá trình thực hiện use case, nếu không kết nối được với cơ sở dữ liệu thì hệ thống sẽ hiển thị một thông báo lỗi và use case kết thúc.
- Tại bước 1 trong luồng cơ bản, nếu hệ thống không tìm thấy sách nào theo tên sách vào thì hệ thống sẽ hiển thị một thông báo “Không tìm thấy sách nào” và use case kết thúc.
Các yêu cầu đặc biệt
Tiền điều kiện Sinh viên phải có tài khoản đăng nhập.
Hậu điều kiện Không có Điểm mở rộng Không có
3.2.2 Mô tả use case Mượn Sách
(from Use Case View) MuonSachUI
PHIEUMUON MaSV MaPhieuMuon MaSach SoLuong NgayMuon NgayHenTra getMSV() setMSV() getMaPhieuMuon() setMaPhieuMuon() getMaSach() setMaSach() getSoLuong() setSoLuong() getNgayMuon() setNgayMuon() getNgayHenTra() setNgayHenTra() getPHIEUMUONbyMaSach()
Hình 3.3: Biểu đồ lớp phân tích use case Mượn sách
Mô tả use case Use case này cho phép sinh viên mượn sách mong muốn
Luồng cơ bản Use case này bắt đầu khi sinh viên nhập mã sách và số lượng sách vào textbox sau đó kích vào nút “Lập phiếu” Hệ thống sẽ lấy thông tin sách từ bảng PHIEUMUON dựa theo mã sách nhập vào và hiển thị lên màn hình.
Luồng rẽ nhánh - Tại bất kỳ thời điểm nào trong quá trình thực hiện use case, nếu không kết nối được với cơ sở dữ liệu thì hệ thống sẽ hiển thị một thông báo lỗi và use case kết thúc.
- Tại luồng cơ bản, nếu sinh viên nhập sai mã sách thì hệ thống sẽ hiển thị một thông báo
“Không tìm thấy sách nào” và use case kết thúc.
- Tại luồng cơ bản, nếu sinh viên nhập số lượng sách nhiều hơn số lượng còn thì hệ thông sẽ hiển thị thông báo “Không đủ sách” và use case kết thúc
Các yêu cầu đặc biệt Không có
Tiền điều kiện Sinh viên phải có tài khoản đăng nhập.
Hậu điều kiện Không có Điểm mở rộng Không có
3.2.3 Mô tả use case Cập Nhật Thông Tin Cá Nhân
CSDL (from Use Case View)
KichCapNhatTTCaNhan() HienThiTTSVLenManHinh() KichCapNhat() HienThiTTSVSauCapNhat() iCSDL
LayBangSACH() layBangPHIEUMUON() layBangSINHVIEN() capNhatTTVaoBangSINHVIEN() layBangTAIKHOAN()
MaSV password MaLop HoTen NgaySinh GioiTinh DiaChi SDT Email getMaSV() setMaSV() getPassword() setPassword() getMaLop() setMalop() getHoTen() setHoTen() getNgaySinh() setNgaySinh() getGioiTinh() setGioiTinh() getDiaChi() setDiaChi() getSDT() setSDT() getEmail() setEmail() getSINHVIEN() updateSINHVIEN()
Hình 3.4: Biểu đồ lớp phân tích use case cập nhật thông tin cá nhân
Mô tả use case Use case này cho phép sinh viên cập nhật thông tin cá nhân trên hệ thống quản lí thư viện
Luồng cơ bản - Use case này bắt đầu khi sinh viên kích vào nút “Cập nhật thông tin cá nhân” trên thanh công cụ Hệ thống sẽ lấy thông tin sinh viên từ bảng SINHVIEN và hiển thị lên màn hình.
- Sinh viên nhập thông tin như họ tên, giới tính, ngày sinh, địa chỉ, số điện thoại, email cần sửa Sau đó, kích nút “cập nhật” và hệ thống sẽ cập nhật thông tin vào bảng SINHVIEN và hiển thị lên màn hình.
Luồng rẽ nhánh - Tại bất kỳ thời điểm nào trong quá trình thực hiện use case, nếu không kết nối được với cơ sở dữ liệu thì hệ thống sẽ hiển thị một thông báo lỗi và use case kết thúc
- Tại bước 2 luồng cơ bản, nếu sinh viên nhập sai thông tin như họ tên, giới tính, ngày sinh, địa chỉ, số điện thoại, email thì hệ thống sẽ hiển thị một thông báo “bạn nhập sai thông tin” và use case kết thúc.
Các yêu cầu đặc biệt Không có
Tiền điều kiện Sinh viên phải có tài khoản đăng nhập
Hậu điều kiện Không có Điểm mở rộng Không có
3.2.4 Mô tả use case Đăng Nhập
CSDL (from Use Case View)
LayBangSACH() layBangPHIEUMUON() layBangSINHVIEN() capNhatTTVaoBangSINHVIEN() layBangTAIKHOAN() DangNhapController
TAIKHOAN username password Ten getUsername() setUsername() getPassword() setPassword() getTen() setTen() getTAIKHOAN()
Hình 3.5: Biểu đồ lớp phân tích use case Đăng nhập
Mô tả use case Use case cho phép người dùng đăng nhập vào hệ thống
Luồng cơ bản - Use case bắt đầu khi người dùng kích vào nút “Đăng nhập” trên màn hình chính Hệ thống sẽ hiển thị form đăng nhập.
- Người dùng nhập thông tin vào form, chọn quyền truy cập và ấn “Đăng Nhập” Hệ thống sẽ kiểm tra thông tin mà người dùng vừa nhập vào thông qua dữ liệu lấy từ bảng TAIKHOAN trong cơ sở dữ liệu và hiển thị giao diện màn hình chính.
Luồng rẽ nhánh - Tại bất kì thời điểm nào, nếu hệ thống không kết nối được với cơ sở dữ liệu thì hệ thống sẽ báo lỗi và use case kết thúc.
- Tại bước 2 luồng cơ bản nếu hệ thống kiểm tra đúng thì cho phép người dùng đăng nhập vào hệ thống, sai thì hiển thị thông báo lỗi. Use case kết thúc.
Các yêu cầu đặc biệt Không có
Tiền điều kiện Người dùng phải có tài khoản đăng nhập
Hậu điều kiện Nếu use case thành công thì hệ thống sẽ chuyển sang giao diện màn hình chính Điểm mở rộng Không có
3.2.5 Mô tả use case Quản Lý Sinh Viên
(from Use Case View) QuanLySVUI
LayBangSACH() layBangPHIEUMUON() layBangSINHVIEN() capNhatTTVaoBangSINHVIEN() layBangTAIKHOAN() CapNhatBangSINHVIEN() QuanLySVController layTTQuanLySV() ThemSINHVIEN() LayTTSV() SuaSV() XoaSINHVIEN()
MaSV password MaLop HoTen NgaySinh GioiTinh DiaChi SDT Email getMaSV() setMaSV() getPassword() setPassword() getMaLop() setMalop() getHoTen() setHoTen() getNgaySinh() setNgaySinh() getGioiTinh() setGioiTinh() getDiaChi() setDiaChi() getSDT() setSDT() getEmail() setEmail() getSINHVIEN() updateSINHVIEN() creatSINHVIEN() getSINHVIENByMa() updateSINHVIENByMa() deleteSINHVIENByMa()
Hình 3.6: Biểu đồ lớp phân tích use case Quản lý sinh viên
Mô tả use case Use case này cho phép người quản trị quản lí sinh viên trong hệ thống quản lí thư viện
Luồng cơ bản - Use case này bắt đầu khi người quản trị kích vào mục “Quản lí sinh viên” trên thanh menu.
Hệ thống sẽ lấy thông tin các sinh viên gồm mã sinh viên, tên sinh viên, ngày sinh, giới tính, địa chỉ, số điện thoại, email từ bảng SINHVIEN và hiển thị lên màn hình.
Giao Diện Chương Trình
- Một số hình ảnh giao diện bên phía người dùng:
Hình 4.4: Giao diện đăng nhập
Hình 4.5: Giao diện Trang Chủ
Hình 4.6: Giao diện đăng Ký
Hình 4.7: Giao diện Phiếu mượn
- Một số hình ảnh giao diện bên phía Quản Trị:
Hình 4.8: Giao diện Trang Chủ Quản trị
Hình 4.10: Giao diện Quản lý Sách