Tổng hợp những câu hỏi cần thiết và quan trọng của môn Phát triển phần mềm ứng dụng (KMA). Tài liệu này giúp các bạn sinh viên có thể vượt qua các bài kiểm tra giữa kỳ, cuối kỳ và đạt kết quả cao nhất. Xin cảm ơn các bạn đã xem và tải tài liệu.
PHÂN TÍCH YÊU CẦU QUẢN LÝ CỬA HÀNG BÁN SÁCH
Các cửa hàng sách cần một giải pháp giúp họ có thể quản lý các đầu sách và bán sách cho khách hàng Giải pháp tối ưu đó là xây dựng một ứng dụng quản lý cửa hàng bán sách hiệu quả, giúp chủ cửa hàng và nhân viên tối ưu hóa các hoạt động kinh doanh Đặc điểm nổi bật:
- Quản lý linh hoạt: Hệ thống mang lại sự linh hoạt trong việc quản lý kho hàng, quảng cáo sản phẩm và tương tác với khách hàng Qua việc thu thập dữ liệu, doanh nghiệp có thể phân tích hành vi mua sắm của khách hàng để tối ưu hóa chiến lược tiếp thị và cung cấp ưu đãi cá nhân hóa
- Tối ưu hóa chi phí: So với mô hình kinh doanh truyền thống, hệ thống giúp giảm chi phí đáng kể, đồng thời mang lại hiệu suất cao trong quản lý cửa hàng và bán hàng
- Thách thức và giải pháp: Mặc dù ứng dụng quản lý cửa hàng bán sách mang lại nhiều lợi ích, nhưng vẫn đối mặt với những thách thức như bảo mật thông tin, tốc độ xử lý giao dịch và tối ưu hóa trang web Để giải quyết những vấn đề này, hệ thống sẽ tích hợp các biện pháp bảo mật tiên tiến, tối ưu hóa cơ sở dữ liệu và sử dụng công nghệ hiện đại để đảm bảo trải nghiệm người dùng mượt mà và an toàn
- Vai trò trong mô hình kinh doanh hiện đại: Mặc dù thách thức tồn tại, ứng dụng quản lý cửa hàng bán sách tiếp tục đóng vai trò quan trọng trong việc hình thành mô hình kinh doanh hiện đại Hệ thống này không chỉ giúp cửa hàng tối ưu hóa quy trình nội bộ mà còn đáp ứng nhu cầu ngày càng tăng của khách hàng, đóng góp vào sự phát triển và cạnh tranh trong thị trường kinh doanh ngày càng cạnh tranh
- Quản lý Sách: o Thêm sách mới vào hệ thống với thông tin chi tiết về tác giả, thể loại, và giá bán o Cập nhật thông tin của sách đã có o Xoá sách khỏi danh sách o Xuất file Excel danh sách sách o Tìm kiếm sách
- Quản lý hàng tồn kho: Theo dõi số lượng sách tồn kho
- Quản lý hóa đơn: o Tạo hóa đơn bán hàng o Sửa và xóa hóa đơn o Tạo báo cáo bán hàng
- Báo cáo và thống kê: o Tạo báo cáo về doanh thu bán hàng, lợi nhuận o Lọc thống kê theo khoảng thời gian tùy ý o Xuất file Excel báo cáo
- Quản lý tài khoản: Cho phép người quản lý quản lý tài khoản của bản thân và tài khoản của nhân viên
- Phân quyền người dùng: o Người quản lý: có thể sử dụng mọi chức năng trong phần mềm o Nhân viên: bị giới hạn truy cập 1 số chức năng như hiển thị doanh thu, lợi nhuân, quản lý tài khoản,…
Yêu cầu phi chức năng
- Giao diện người dùng thân thiện: Thiết kế giao diện đơn giản, dễ sử dụng cho cả chủ cửa hàng, nhân viên, và khách hàng
- Bảo mật thông tin: Đảm bảo an toàn thông tin cá nhân của khách hàng và thông tin kinh doanh của cửa hàng
- Tốc độ xử lý dữ liệu nhanh chóng và chính xác
Các công nghệ được sử dụng
Ngôn ngữ lập trình Java
Java là ngôn ngữ lập trình đa nền tảng (cross-platform), được phát triển bởi James Gosling tại Sun Microsystems (nay là Oracle Corporation) Ngôn ngữ lập trình này ra đời vào năm 1995 và được thiết kế để có thể chạy trên các nền tảng khác nhau, từ máy tính cá nhân đến thiết bị di động, các máy chủ và thiết bị nhúng
Java sử dụng cấu trúc lập trình hướng đối tượng (object-oriented programming - OOP) và được xây dựng trên cơ sở của ngôn ngữ lập trình C++ Nó cung cấp một môi trường chạy ảo (virtual machine) gọi là Java Virtual Machine (JVM), giúp các chương trình Java có thể chạy trên nhiều nền tảng khác nhau mà không cần phải biên dịch lại
Hiện tại, Java là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay, được sử dụng rộng rãi trong các ứng dụng di động, phát triển web, lập trình trên các thiết bị nhúng, máy tính cá nhân, máy chủ, game và nhiều lĩnh vực khác
Các tính năng của Java:
• Đa nền tảng: Java được thiết kế để có thể chạy trên nhiều nền tảng khác nhau, vì vậy nó rất phù hợp cho việc phát triển các ứng dụng đa nền tảng Java sử dụng một máy ảo (JVM - Java Virtual Machine) để chạy mã nguồn, vì vậy mã nguồn được viết một lần và có thể chạy trên nhiều hệ điều hành khác nhau mà không cần thay đổi
• Quản lý bộ nhớ tự động: Java có tính năng tự động quản lý bộ nhớ, tức là nó tự động thu dọn các vùng nhớ không sử dụng nữa để giảm thiểu các lỗi bộ nhớ Điều này giúp cho các ứng dụng được viết bằng Java có thể chạy ổn định và tránh các lỗi liên quan đến bộ nhớ
• Hỗ trợ đa luồng: Java có thể xử lý đa luồng, cho phép chương trình thực hiện nhiều tác vụ cùng một lúc Điều này giúp cho các ứng dụng có thể chạy nhanh và hiệu quả hơn, đặc biệt là khi phải xử lý nhiều tác vụ cùng một lúc
• Tính bảo mật cao: Java có các tính năng bảo mật như kiểm tra kiểu tĩnh và kiểm tra lỗi trên đường dẫn Java được thiết kế để giảm thiểu các lỗ hổng bảo mật và các vấn đề liên quan đến an ninh
• Hỗ trợ các thư viện và công cụ phát triển mạnh mẽ: Java có các thư viện tiêu chuẩn và các công cụ phát triển như IDE (Integrated Development
Environment) để giúp các nhà phát triển tạo ra các ứng dụng dễ dàng hơn Các
5 thư viện và công cụ này cung cấp các tính năng như: tạo giao diện người dùng, xử lý dữ liệu, kết nối cơ sở dữ liệu và nhiều hơn nữa,
PHÂN TÍCH THIẾT KẾ PHẦN MỀM QUẢN LÝ CỬA HÀNG BÁN SÁCH
SÁCH Biểu đồ Use case
Biểu đồ Use case tổng quát
Trên cơ sở phân tích yêu cầu hệ thống ở chương 1, ta thấy hệ thống gồm 2 tác nhân với các chức năng chính được biểu diễn như trong hình dưới đây:
Hình 2 1 Biểu đồ use case tổng quát
Phân rã biểu đồ Use case
2.1.2.1 Phân rã use case “Quản lý sách”
Use case “Quản lý sách” được phân rã thành năm use case nhỏ là “Thêm sách”,
“Sửa sách”, “Xóa sách”, “Tìm kiếm sách” và “Xuất file Excel sách” Người quản lý là tác nhân của cả năm use case nhỏ và Nhân viên chỉ là tác nhân của use case “Tìm kiếm sách” và “Xuất file Excel sách”
Hình 2 2 Biểu đồ use case “Quản lý sách”
2.1.2.2 Phân rã use case “Quản lý hóa đơn”
Use case “Quản lý hóa đơn” được thực hiện bởi Người quản lý và Nhân viên, được phân rã thành năm use case nhỏ là “Thêm hóa đơn”, “Sửa hóa đơn”, “Xóa hóa đơn”, “Tìm kiếm sách” và “Xuất file Excel hóa đơn”
Hình 2 3 Biều đồ use case “Quản lý hóa đơn”
2.1.2.3 Phân rã use case “Xem thông kê, báo cáo”
Use case “Xem thống kê, báo cáo” được phân rã thành ba use case nhỏ là “Lọc thống kê theo khoảng thời gian”, “Tính doanh thu, lợi nhuận”, và “Xuất file Excel báo cáo” Người quản lý là tác nhân của cả ba use case nhỏ và Nhân viên chỉ là tác nhân của use case “Lọc thống kê theo khoảng thời gian”
2.1.2.4 Phân rã use case “Quản lý tài khoản”
Use case “Quản lý tài khoản” được thực hiện bởi Người quản lý và được phân rã thành bause case nhỏ là “Thêm tài khoản”, “Sửa tài khoản”, và “Xóa tài khoản”
Hình 2 4 Biểu đồ use case “Xem thống kê, báo cáo”
Hình 2 5 Biểu đồ use case “Quản lý tài khoản”
Các biểu đồ tuần tự
Biểu đồ tuần tự “Đăng nhập”
Biểu đồ tuần tự “Đăng nhập” được thực hiện bởi Người quản lý và Nhân viên, tác động đến form đăng nhập và cơ sở dữ liệu
Hình 2 6 Biểu đồ tuần tự “Đăng nhập”
Biểu đồ tuần tự “Đăng xuất”
Biểu đồ tuần tự “Đăng xuất” được thực hiện bởi Người quản lý và Nhân viên, tác động đến trang menu
Hình 2 7 Biểu đồ tuần tự “Đăng xuất”
Biểu đồ tuần tự “Thêm, sửa và xóa sách”
Biểu đồ tuần tự “Thêm, sửa và xóa sách” được thực hiện bởi Người quản lý và tác động đến form quản lý sách, form nhập thông tin sách và cơ sở dữ liệu
Hình 2 8 Biểu đồ tuần tự “Thêm, sửa, xóa sách”
Biểu đồ tuần tự “Thêm, sửa, xóa hóa đơn”
Biểu đồ tuần tự “Thêm, sửa và xóa hóa đơn” được thực hiện bởi Người quản lý và nhân viên, tác động đến form quản lý hóa đơn, form nhập thông tin sách và cơ sở dữ liệu
Hình 2 9 Biểu đồ tuần tự “Thêm, sửa, xóa hóa đơn”
Biều đồ tuần tự “Thêm, sửa, xóa tài khoản”
Biểu đồ tuần tự “Thêm, sửa và xóa tài khoản” được thực hiện bởi Người quản lý và tác động đến form quản lý tài khoản, form nhập thông tin tài khoản và cơ sở dữ liệu
Hình 2 10 Biểu đồ tuần tự “Thêm, sửa, xóa tài khoản”
Biểu đồ tuần tự “Tìm kiếm”
Biểu đồ tuần tự “Tìm kiếm” được thực hiện bởi Người quản lý và nhân viên, tác động đến form mà người sử dụng thực hiện tìm kiếm trên đó và cơ sở dữ liệu
Hình 2 11 Biểu đồ tuần tự tìm kiếm
Biểu đồ tuần tự “Xuất file Excel”
Biểu đồ tuần tự “Xuất file Excel” được thực hiện bởi Người quản lý và nhân viên, tác động đến form mà người sử dụng thực hiện xuất file trên đó và cơ sở dữ liệu
Hình 2 12 Biểu đồ tuần tự “Xuất file Excel”
Biểu đồ tuần tự “Nhập kho”
Biểu đồ tuần tự “Nhập kho” được thực hiện bởi Người quản lý và tác động đến form nhập kho cơ sở dữ liệu
Hình 2 13 Biểu đồ tuần tự “Nhập kho”
Biểu đồ tuần tự “Xem thống kê, báo cáo”
Biểu đồ tuần tự “Xem thống kê, báo cáo” được thực hiện bởi Người quản lý và tác động đến form thống kê và cơ sở dữ liệu
Thiết kế cơ sở dữ liệu
Sơ đồ kết nối cảng
Sơ đồ liên kết các bảng trong cơ sở dữ liệu là một biểu diễn trực quan của cấu trúc và tổ chức của hệ thống cơ sở dữ liệu Nó cho thấy các thực thể, thuộc tính và mối quan hệ trong cơ sở dữ liệu bằng các ký hiệu chuẩn Nó giúp làm rõ và cấu trúc hóa các môi trường dữ liệu phức tạp
Trên cơ sở phân tích yêu cầu hệ thống ở chương 1, ta thấy hệ thống có các bảng được kết nối với nhau theo sơ đồ sau:
Hình 2 14 Biểu đồ tuần tự “Xem thống kê, báo cáo”
STT Tên trường Kiểu dữ liệu Ràng buộc Mô tả
1 Ma_sach Int Khóa chính Mã sách
2 Ten_sach Varchar Not null Tên sách
3 Tac_gia Varchar Not null Tác giả
4 The_loai Varchar Not null Thể loại
5 Nxb Varchar Khóa ngoại Nhà xuất bản
6 Gia_nhap Int Not null Giá nhập
7 Gia_ban Int Not null Giá nhập
8 So_luong Int Not null Số lượng
Bảng 2 1 Chi tiết bảng Sách
STT Tên trường Kiểu dữ liệu Ràng buộc Mô tả
1 Ma_hoa_don Int Khóa chính Mã hóa đơn
Hình 2 15 Sơ đồ kết nối các bảng CSDL
2 Ten_nguoi_mua Varchar Not null Tên khách hàng
3 Ngay_lap Timestamp Not null Ngày lập
4 Tong_tien Int Not null Tổng tiền
Bảng 2 2 Chi tiết bảng hóa đơn
2.3.1.3 Bảng chi tiết hóa đơn
STT Tên trường Kiểu dữ liệu Ràng buộc Mô tả
1 Ma_hoa_don Int Khóa chính, khóa ngoại
2 Ma_sach Varchar Khóa ngoại Mã sách
3 So_luong Int Not null Số lượng
4 Thanh_tien Int Not null Thành tiền
Bảng 2 3 Chi tiết bảng chi tiết hóa đơn
STT Tên trường Kiểu dữ liệu Ràng buộc Mô tả
1 Tai_khoan Varchar Khóa chính Tài khoản
2 Mat_khau Varchar Not null Mật khẩu
3 Chu_tai_khoan Varchar Not null Chủ tài khoản
4 Vai_tro Varchar Not null Vai trò
Bảng 2 4 Chi tiết bảng tài khoản
Bảng Chi tiết bảng nhà xuất bản
STT Tên trường Kiểu dữ liệu Ràng buộc Mô tả
1 Ten_nxb Varchar Khóa chính Tên nhà xuất bản
Bảng 2 5 Chi tiết bảng nhà xuất bản
TRIỂN KHAI PHẦN MỀM QUẢN LÝ CỬA HÀNG BÁN SÁCH
Từ những yêu cầu của đề tài, sau thời gian tìm hiểu, nhóm đã chọn phần mềm
XAMPP trong quá trình triển khai hệ thống
XAMPP là một phần mềm cho phép giả lập môi trường server hosting ngay trên máy tính cá nhân, cho phép chạy demo website mà không cần phải mua hosting hay VPS XAMPP được viết tắt của X + Apache + MySQL + PHP + Perl vì nó được tích hợp sẵn Apache, MySQL, PHP, FTP server, Mail Server Còn X thể hiện cho sự đa nền tảng của XAMPP vì nó có thể dùng được cho 4 hệ điều hành khác nhau: Windows, MacOS, Linux và Solaris
- Bước 1: Tải và Cài đặt XAMPP
+ Truy cập trang chính thức của XAMPP
(https://www.apachefriends.org/index.html)
+ Tải bản XAMPP phù hợp với hệ điều hành của bạn (Windows, Linux, macOS) + Chạy cài đặt và làm theo hướng dẫn để cài đặt Apache, MySQL, PHP, và phpMyAdmin
- Bước 2: Cấu hình Apache và MySQL
+ Khởi động XAMPP Control Panel và bật Apache và MySQL
+ Mở trình duyệt và truy cập http://localhost để đảm bảo máy chủ web và cơ sở dữ liệu hoạt động
- Bước 3: Tạo Cơ sở dữ liệu
+ Truy cập http://localhost/phpmyadmin để quản lý cơ sở dữ liệu
+ Tạo cơ sở dữ liệu “bookstore” và tạo các table theo thiết kế
Hình 3 1 Khởi động Apache và MySQL
Hình 3 2 Giao diện phpMyAdmin quản lý database
Cài đặt và phát triển phần mềm Desktop với Java Swing theo mô hình MVC
- Bước 1: Kết nối cơ sở dữ liệu MySQL với dự án trong Netbeans:
+ Đầu tiên, tải JDBC Driver của MySQL từ trang web chính thức của MySQL (https://dev.mysql.com/downloads/connector/j/) Sau khi tải, thêm file JAR vào thư mục Libraries của dự án
Hình 3 3 Các bảng của cơ sở dữ liệu “bookstore”
+ Tạo class thực hiện kết nối tới MySQL
- Bước 2: Thiết kế giao diện + Tạo các file giao diện trong package view
+ Thiết kế giao diện bằng java swing
- Bước 3: Định nghĩa các Model + Tạo các class để đại diện cho dữ liệu trong ứng dụng
+ Đảm bảo rằng các model phản ánh cấu trúc dữ liệu trong cơ sở dữ liệu
- Bước 4: Tạo Controller để xử lý logic và thực hiện các truy vấn dữ liệu từ MySQL
Hình 3 4 Kết nối tới MySQL
Hình 3 5 Danh sách các class giao diện
Giới thiệu giao diện phần mềm
Giao diện đăng nhập gồm 2 ô nhập tài khoản và mật khẩu của người dùng và nút đăng nhập để kiểm tra và thực hiện đăng nhập vào phần mềm
Hình 3 6 Giao diện đăng nhập
Giao diện quản lý sách
Giao diện trang quản lý sách hiển thị danh sách các sách có trong cơ sở dữ liệu, thông tin của sách được hiển thị bao gồm mã sách, tên sách, tác giả, thể loại, nhà xuất bản, giá nhập, giá bán và số lượng Ngoài ra còn có các chức năng thêm, sửa, xóa sách, tìm kiếm và xuất file Excel
Giao diện quản lý hóa đơn
Giao diện trang quản lý hóa đơn hiển thị danh sách các hóa đơn có trong cơ sở dữ liệu, thông tin của hóa đơn bao gồm mã hóa đơn, tên khách hàng, ngày lập, và tổng tiền Ngoài ra còn có các chức năng thêm, sửa, xóa hóa đơn, tìm kiếm và xuất file Excel
Hình 3 7 Giao diện quản lý sách
Giao diện thống kê hiển thị danh sách hóa đơn sau khi lọc tương ứng với khoảng thời gian mong muốn Ngoài ra còn hiển thị doanh thu và lợi nhuận trong khoảng thời gian đã chọn
Hình 3 8 Giao diện quản lý hóa đơn
Giao diện trang quản lý sách hiển thị danh sách các sách có trong cơ sở dữ liệu, thông tin của sách được hiển thị bao gồm mã sách, tên sách, giá nhập, giá bán và số lượng Ngoài ra còn có các chức năng thêm số lượng sách và tìm kiếm
Hình 3 10 Giao diện kho Hình 3 9 Giao diện thống kê
Giao diện quản lý tài khoản
Giao diện trang quản lý tài khoản hiển thị danh sách các tài khoản có trong cơ sở dữ liệu, thông tin của tài khoản bao gồm chủ tài khoản, tên đăng nhập, mật khẩu, và vai trò Ngoài ra còn có các chức năng thêm, sửa, xóa hóa đơn, tìm kiếm và xuất file Excel
Hình 3 11 Giao diện quản lý tài khoản