TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BÁO CÁO BÀI TẬP LỚN NHẬP MÔNCÔNG NGHỆ PHẦN MỀM
Đề tài:
QUẢN LÝ DÂN CƯ & QUẢN LÝ THU PHÍ, ĐÓNG GÓP
Giảng viên hướng dẫn: TS Trần Nhật Hóa
3 Nguyễn Tiến Anh 201942244 Bạch Đăng Dũng 201942535 Nguyễn Văn Huy 201942996 Dương Ngô Kiên 201943077 Lê Quốc Khánh 201943038 Bùi Trung Quân 201941429 Hoàng Minh Tân 2019436710 Nguyễn Bá Sơn 20194155
HÀ NỘI, 12/2021
Trang 2PHÂN CÔNG THÀNH VIÊN TRONG NHÓM
Bùi Đức Anh 20194216
Đặc tả usecase, cài đặt phần đăngnhập, đăng ký
Nguyễn Tiến Anh 20194224
Vẽ biểu đồ use case, cài đặt giao diện đăng nhập, đăng kýBạch Đăng Dũng 2019425
Thiết kết, code base frontend, cài đặt phần giao diện hộ khẩu, nhân khẩu, thu phí
Nguyễn Văn Huy 20194299
Vẽ biểu đồ trình tự, cài đặt phần đóng góp
Kiểm thử chương trình, thiết kế giao diện
Bùi Đức Mạnh 20183793
Thiết kế biểu đồ lớp, cài đặt giao diện thu phí, đóng góp
Vẽ biểu đồ trình tự, cài đặt phần đóng góp
Bùi Trung Quân 20194142
Vẽ biểu đồ trình tự, cài dặt phần đóng góp
Hoàng Minh Tân 20194367
Thiết kế, code base backend, cài đặt phần hộ khẩu, nhân khẩu, thu phí
Nguyễn Bá Sơn 20194155
Thiết kế database, lập dữ liệu
Trang 3MỤC LỤC
PHÂN CÔNG THÀNH VIÊN TRONG NHÓM 2
DANH MỤC CÁC TỪ VIẾT TẮT 5
CHƯƠNG I: ĐẶC TẢ YÊU CẦU BÀI TOÁN 5
1 Mô tả yêu cầu bài toán 5
2 Biểu đồ usecase 7
2.1 Biểu đồ usecase tổng quan 7
2.2 Biểu đồ usecase phân dã 7
3 Đặc tả usecase 10
3.1 Đặc tả Use case “Đăng nhập” 10
3.2 Đặc tả Use case “Hộ khẩu” 11
3.3 Đặc tả Use case “Nhân khẩu” 11
3.4 Đặc tả Use case “Quản lý thu phí đóng góp” 11
3.5 Đặc tả Use case “Thống Kê” 11
3.6 Đặc tả Use case “Tìm kiếm’ 11
CHƯƠNG II: PHÂN TÍCH THIẾT KẾ BÀI TOÁN 13
1 Thiết kế cơ sở dữ liệu 13
2 Biểu đồ trình tự 16
3 Biểu đồ lớp 16
4 Thiết kế cơ sở dữ liệu 18
CHƯƠNG III: CÔNG NGHỆ VÀ THUẬT TOÁN SỬ DỤNG 21
1 Tư duy lập trình hướng đối tượng 21
2.2 Giao diện tìm kiếm 26
2.3 Giao diện thu phí 26
2.4 Giao diện quản lý hộ khẩu 27
2.5 Giao diện quản lý nhân khẩu 27
Trang 42.6 Giao diện thống kê 28
2.7 Giao diện thêm, thay đổi, di chuyển hộ khẩu 28
2.8 Giao diện thêm, thay đổi, tạm trú, vắng nhân khẩu 29
2.9 Giao diện thêm đóng góp, thêm khoản phí 31
1 Kiểm thử các chức năng chương trình 31
1.1 Kiểm thử cho chức năng tìm kiếm 31
1.2 Kiểm thử chức năng “Thu phí” 32
1.3 Kiểm tra chức năng “Hộ khẩu” 34
1.4 Kiểm tra chức năng nhân khẩu 37
1.5 Kiểm tra chức năng đăng nhập 39
CHƯƠNG V: KẾT LUẬN 40
TÀI LIỆU THAM KHẢO 41
Trang 5DANH MỤC CÁC TỪ VIẾT TẮT
UC: usecaseDB: database
CHƯƠNG I: ĐẶC TẢ YÊU CẦU BÀI TOÁN
1 Mô tả yêu cầu bài toán
Xây dựng một phần mềm quản lý thông tin tổ dân phố/khu dân cư:
Ban quản lý tổ dân phố 7 phường La Khê cần xây dựng một phần mềm quản lýthông tin khu dân cư / tổ dân phố Tổ dân phố 7 có hơn 400 hộ gia đình với 1.700 nhânkhẩu, chưa kể hàng trăm sinh viên thuê trọ và hàng chục gia đình nơi khác đến thuênhà làm kinh doanh dịch vụ Địa bàn rộng, dân cư đông và phức tạp nên ban quản lýmong đợi phần mềm này có thể quản lý thông tin chung cả tổ dân phố từ biến độngnhân khẩu, hộ khẩu đến các công tác đoàn thể khác Ban quản lý gồm một tổ trưởng,một tổ phó và các cán bộ phụ trách các hoạt động nghiệp vụ khác Tổ trưởng và tổ phócó thể thực hiện tất cả các nghiệp vụ quản lý, còn các cán bộ khác phụ trách từngnghiệp vụ theo phân công cụ thể
Nghiệp vụ chính: Quản lý thông tin về hộ khẩu, nhân khẩu và biến động nhân
khẩu (khai sinh, khai tử, tạm vắng, tạm trú, …)
Thông tin về hộ khẩu và nhân khẩu do tổ trưởng ghi nhận và quản lý:
Thông tin về nhân khẩu của mỗi hộ gia đình được lưu trong sổ hộ khẩu với mộtmã số định danh duy nhất Sổ hộ khẩu gia đình ghi các thông tin cho cả hộ như:số hộ khẩu, họ tên chủ hộ, số nhà, đường phố (ấp), phường (xã, thị trấn), quận(huyện)
Sổ hộ khẩu gồm nhiều chi tiết cụ thể cho từng nhân khẩu trong hộ như họ vàtên, bí danh, ngày tháng năm sinh, nơi sinh, nguyên quán, dân tộc, nghề nghiệp,nơi làm việc, số CMND hoặc số CCCD, ngày cấp và nơi cấp, ngày tháng nămđăng ký thường trú, địa chỉ nơi thường trú trước khi chuyển đến Trường hợpnhân khẩu là chủ hộ thì sẽ được ghi trang đầu tiên, nếu không là chủ hộ thì sẽthêm chi tiết: quan hệ với chủ hộ
Các hoạt động biến đổi nhân khẩu:
Nếu gia đình có thêm nhân khẩu mới: sinh thêm con thì sẽ bổ sung chi tiết nhưtrên, bỏ trống các chi tiết về nghề nghiệp, CMND và nơi thường trú chuyển đếnsẽ ghi các chi tiết về giấy khai sinh của em bé
Nếu có nhân khẩu qua đời, chi tiết về chuyển đi sẽ ghi rõ các chi tiết về giấykhai tử Nếu có một nhân khẩu chuyển đi nơi khác thì sẽ thêm các chi tiết nhưsau: chuyển đi ngày, nơi chuyển đến, lý do khác
Trang 6Nếu cả hộ chuyển đi nơi khác thì sẽ ghi ở phần thay đổi địa chỉ cả hộ các chitiết như chuyển đến đâu, ngày đăng ký chuyển
Nếu có những thay đổi khác liên quan cả hộ (ví dụ như thay đổi chủ hộ) thì sẽghi ở phần thay đổi đính chính khác các chi tiết như nội dung thay đổi, ngàythay đổi
Nếu tách hộ thì tạo thông tin sổ hộ khẩu mới với các nhân khẩu được chọn.Khi gia đình có ai đó đi xa dài ngày thì phải đến gặp tổ trưởng thông báo và xincấp giấy tạm vắng có thời hạn Ngược lại nếu có nhân khẩu từ địa phương khácđến cư trú tạm thời trong một khoảng thời gian thì phải khai báo để được cấpgiấy tạm trú
Phần mềm cần cung cấp cho tổ trưởng và tổ phó khả năng ghi nhận các thông tintrên ngoài ra có thể tìm kiếm các thông tin một cách nhanh chóng, xem lịch sử thay đổinhân khẩu của một hộ Hàng quý tổ trưởng cần thống kê nhân khẩu theo các tiêu chí:theo giới tính (nam / nữ), theo độ tuổi (mầm non / mẫu giáo / cấp 1 / cấp 2 / cấp 3 / độtuổi lao động / nghỉ hưu), theo khoảng thời gian và thống kê tạm vắng / tạm trú.
Nghiệp vụ khác: Quản lý thu phí, đóng góp của các hộ gia đình
Hàng năm tổ dân phố thực hiện thu một số khoản phí và đóng góp của các hộ giađình, công việc này do cán bộ kế toán phụ trách Khoản phí vệ sinh là bắt buộc với tấtcả các hộ gia đình, mỗi năm thu 1 lần với định mức 6.000VNĐ / 1 tháng / 1 nhânkhẩu Cán bộ kế toán sẽ lập danh sách các hộ gia đình và số nhân khẩu tương ứng, sauđó đến từng nhà thu phí và ghi nhận số tiền nộp Đối với các khoản đóng góp thìkhông quy định số tiền mà phụ thuộc vào từng hộ, các khoản đóng góp này được thutheo từng đợt của các cuộc vận động như: “Ủng hộ ngày thương binh-liệt sỹ 27/07”,“Ủng hộ ngày tết thiếu nhi”, “Ủng hộ vì người nghèo”, “Trợ giúp đồng bào bị ảnhhưởng bão lụt”,… Cán bộ kế toán cũng cần thống kê tổng số tiền đã thu trong mỗi đợt,tổng số hộ đã nộp và có thể xem chi tiết mỗi hộ đã nộp những khoản tiền nà.
Trang 72 Biểu đồ usecase
2.1.Biểu đồ usecase tổng quan
2.2.Biểu đồ usecase phân dã
- Quản lý tài khoản:
- Quản lý hộ khẩu:
Trang 8- Quản lý nhân khẩu:
Trang 9- Quản lý thu phí đóng góp:
Trang 103 Đặc tả usecase
3.1.Đặc tả Use case “Đăng nhập”
Mã Usecase
Tác nhân User: Quản lý, kế toán …
Tiền điềukiện
Người đăng nhập đã có tài khoản trong hệ thống
Luồng sựkiện chính(Thànhcông)
Thực hiệnbởi
Trang 11Thực hiệnbởi
7b Hệ thống Người dùng chọn “Thoát” thì kết thúcchương trình
7c Hệ thống Người dùng chọn “Tư cách khách’
Hậu điềukiện
Người dùng đăng nhập thành công và thực hiện các chức năng
3.2.Đặc tả Use case “Hộ khẩu”
Mã Usecase
Tác nhân User: Quản lý
Tiền điềukiện
Đăng nhập thành công, bấm vào “Hộ khẩu”
Trang 12Di chuyển:
Luồng sựkiện chính
STT Thực hiệnbởi
Hành động
2 User Chọn yêu cầu di chuyển 4 User Chọn một hộ khẩu cần di chuyển6 User Điền đầy đủ thông tin cần điền, bấm vào
6.a Hệ thống Thông báo cho user cần nhập đủ cáctrường
6.b Hệ thống Yêu cầu kiểm tra lại thông tin khi ngườithực hiện nhập sai thông tin.
6.c Hệ thống Không lưu thông tin người dùng nhập vàtrở về giao diện hộ khẩu khi bấm “Cancel”
Thay đổi:
Luồng sựkiện chính
STT Thực hiệnbởi
Hành động
1 User chọn một hộ khẩu và yêu cầu thay đổi3 Hệ thống chuyển đến form sửa thông tin hộ khẩu5 User chỉnh sửa các thông tin, bấm “+” để chỉnh
13 Hệ thống kiểm tra các trường bắt buộc nhập, cáctrường nhập có hợp lệ hay không.14 Hệ thống Hiển thị thông itn địa chỉ vừa điền15 User Bấm “OK” để lưu thông tin16 Hệ thống Cập nhập thông tin thay đổi
Luồng sựkiện thaythế
8.a Hệ thống thông báo lỗi khi chưa nhập đủ các trườngcần thiết nếu quản trị viên nhập thiếutrường.
8.b Hệ thống Yêu cầu kiểm tra lại thông tin khi người
Trang 13thực hiện nhập sai thông tin.
8.c Hệ thống Không lưu thông tin người dùng chỉnh sửavà trở về giao diện hộ khẩu khi bấm“Cancel”
Thêm:
Luồng sựkiện chính
STT Thực hiệnbởi
13 Hệ thống thông báo lỗi chưa nhập đủ các trường cầnthiết nếu quản trị viên nhập thiếu trường
Hậu điềukiện
3.3.Đặc tả Use case “Nhân khẩu”
Mã Usecase
Tác nhân User: Quản lý
Tiền điềukiện
Đăng nhập thành công, bấm vào “Nhân khẩu”
Tạm trú, vắng
Luồng sựkiện chính
STT Thực hiệnbởi
Trang 1425 User Bấm vào “Ok”
27 Hệ thống Kiểm tra các trường phải nhập và cáctrường nhập có hợp lệ hay không29 Hệ thống Thực hiện lưu và cập nhật các thông tin
nhân khẩu
Luồng sựkiện thaythế
12.a Hệ thống Báo lỗi chưa nhập đầy đủ trường nếungười dùng chưa nhập đầy đủ các trườngcần thiết
12.b Hệ thống Báo lỗi khi người dùng nhập sai thông tin
Thêm khoản phí
Luồng sựkiện chính
STT Thực hiệnbởi
Hành động
1 User yêu cầu thêm khoản phí2 Hệ thống Hiển thị form thêm hàng hóa3 User Nhập đầy đủ thông tin khoản phí.4 Hệ thống Cho quản lý chọn tiếp tục lưu nhấn vào
“OK” hay hủy bỏ nhấn vào “Cancel”5 User Bấm vào “Ok”
6 Hệ thống Kiểm tra các trường bắt buộc và cáctrường có nhập hợp lệ
Luồng sựkiện thaythế
7.a Hệ thống thông báo lỗi: chưa nhập đủ các trườngcần thiết nếu nhập thiếu trường
7.b Hệ thống Thông báo lỗi: khi các trường nhập saithông tin
Hậu điềukiện
3.5.Đặc tả Use case “Thống Kê”
Mã Usecase
Tác nhân Uset: Quản lý
Tiền điềukiện
Đăng nhập thành công, bấm vào “Trang chủ”
Luồng sựSTT Thực hiệnHành động
Trang 15kiện chính(Thànhcông)
1 Hệ thống Hiển thị giao diện gồm thống kê2 Hệ thống Hệ thống vào database lấy các thông tin3 Hệ thống Hiển thị các thông tin lên giao diện thống
kê
Luồng sựkiện thaythế
STT Thực hiệnbởi
Hành động
Hậu điềukiện
3.6.Đặc tả Use case “Tìm kiếm’
Mã Usecase
Tác nhân Quản lý, khách
Tiền điềukiện
Đăng nhập thành công, bấm vào “Tìm kiếm”
Luồng sựkiện chính(Thànhcông)
Thực hiệnbởi
Hành động
1 Hệ thống Hiển thị giao diện tìm kiếm
2 User Tùy chọn kìm kiếm về hộ khẩu hoặcnhân khẩu
3 User Nhập thông tin ID, tên của hộ khẩu,nhân khẩu muốn tìm kiếm
4 Hệ thống Lấy danh sách nhân khẩu, hộ khẩu từdatabase theo yêu cầu
5 Hệ thống Hiển thị danh sách tìm kiếm
Luồng sựkiện thaythế
Thực hiệnbởi
Hành động
Hậu điềukiện
Không
Trang 16CHƯƠNG II: PHÂN TÍCH THIẾT KẾ BÀI TOÁN
Trang 171 Thiết kế cơ sở dữ liệu
Các bảng trong cơ sở dữ liệu:
1 Bảng dong_gop (ID, tenKhoanDong, ngayTao, soTien, donVi, theLoai, hoanThanh)ID: Mã khoản đóng góp
tenKhoanDong: tên khoản đóng gópngayTao: ngày tạo
soTien: số tiềndonVi: đơn vịtheLoai: thể loại hoanThanh: hoàn thành
2 Bảng ho_khau_dong_gop (idHoKhau, idDongGop, ngayDong, daDong)idHoKhau: Mã hộ khẩu đóng góp
idDongGop: Mã khoản đóng gópngayDong: ngày đóng
daDong: đã đóng (true:1, false:0)
3 Bảng ho_khau (ID, maHoKhau, idChuHo, maKhuVuc, diaChi, ngayChuyenDi)ID
maHoKhau: mã hộ khẩuidChuHo: mã chủ hộmaKhuVuc: mã khu vực diaChi: địa chỉ
ngayChuyenDi: ngày chuyển đi
4 Bảng thanh_vien_cua_ho (idNhanKhau, idHoKhau, quanHeVoiChuHo)idNhanKhau: Mã Nhân khẩu
idHoKhau: Mã hộ khẩu
quanHeVoiChuHo: quan hệ với chủ hộ
5 Bảng tieu_su (ID, idNhanKhau, tuNgay, denNgay, diaChi, ngheNghiep, noiLamViec)
ID: Mã tiểu sử
Trang 18idNhanKhau: Mã nhân khẩutuNgay: từ ngày
denNgay: đến ngàydiaChi: địa chỉ
ngheNghiep: nghề nghiệpnoiLamViec: nơi làm việc
6 Bảng dinh_chinh (ID, idHoKhau, thongTinThayDoi, thayDoiTu, doiThanh, ngayThayDoi, nguoiThayDoi)
ID: Mã thủ tục đính chínhidHoKhau: mã hộ khẩu
thongTinThayDoi: thông tin thay đổithayDoiTu: thay đổi từ
doiThanh: đổi thànhngayThayDoi: ngày thay đổinguoiThayDoi: người thay đổi
7 Bảng user (ID, username, password, ngayTao, role)ID: mã người dùng
username: tên người dùngpassword: mật khẩungayTao: ngày tạorole: vai trò
8 Bảng nhan_khau (ID, hoTen, bietDanh, namSinh, gioiTinh, noiSinh, nguyenQuan, danToc, tonGiao, quocTich, soHoChieu, noiThuongTru, diaChiHienNay,
trinhDoHocVan, trinhDoChuyenMon, bietTiengDanToc, trinhDoNgoaiNgu, ngheNghiep, noiLamViec, tienAn, ngayChuyenDen, lyDoChuyenDen, ngayChuyenDi,lyDoChuyenDi, diaChiMoi, ngayTao, idNguoiTao, ngayXoa, idNguoiXoa, lyDoXoa, ghiChu)
ID: mã nhân khẩuhoTen: họ tênbietDanh: biệt danhnamSinh: năm sinhgioiTinh: giới tínhnoiSinh: nơi sinhnguyenQuan: nguyên quándanToc: dân tộc
tonGiao: tôn giáoquocTich: quốc tịchsoHoChieu: số hộ chiếunoiThuongTru: nơi thường trúdiaChiHienNay: địa chỉ hiện naytrinhDoHocVan: trình độ học vấntrinhDoChuyenMon: trình độ chuyên mônbietTiengDanToc: biết tiếng dân tộctrinhDoNgoaiNgu: trình độ ngoại ngữngheNghiep: nghề nghiệp
noiLamViec: nơi làm việctienAn: tiền án
ngayChuyenDen: ngày chuyển đến
Trang 19lyDoChuyenDen: lý do chuyển đếnngayChuyenDi: ngày chuyển đilyDoChuyenDi: lý do chuyển đidiaChiMoi: địa chỉ mớingayTao: ngày tạo
idNguoiTao: mã nhân khẩu người tạongayXoa: ngày xóa
idNguoiXoa: mã nhân khẩu người xóalyDoXoa: lý do xóa
10 Bảng tam_tru (ID, idNhanKhau, maGiayTamTru, soDienThoaiNguoiDangKy, tuNgay, denNgay, lyDo)
11 Bảng tam_vang (ID, idNhanKhau, maGiayTamVang, noiTamTru, tuNgay, denNgay, lyDo)
ID: mã tt tạm vắngidNhanKhau: mã nhân khẩumaGiayTamVang: mã giấy tạm vắngnoiTamTru: nơi tạm trú
tuNgay: từ ngàydenNgay: đến ngàylyDo: lý do
12 Bảng khai_tu (ID, soGiayKhai, idNguoiKhai, idNguoiChet, ngayKhai, ngayChet, lyDoChet)
ID: Mã thủ tục khai tửsoGiayKhai: số giấy khai
idNguoiKhai: mã nhân khẩu người khaiidNguoiChet: mã nhân khẩu người chếtngayKhai: ngày khai
ngayChet: ngày chết
2 Biểu đồ trình tự
1 Usecase Đăng Nhập
Trang 202 Usecase Xem thông tin Hộ Khẩu
3 Biểu đồ lớp
Sơ đồ package tổng quát
Trang 21Sơ đồ lớp tổng quát
Trang 224 Thiết kế cơ sở dữ liệu
Các package trong bài toán :
app.common: gồm class chứa chức vụ có thể thực hiện nghiệp vụquản lý bao gồm tổ trưởng, tổ phó, kế toán và các cán bộ khác
app.component: gồm class thuộc tầng giao diện, cung cấp giaodiện người dùng như đăng ký hộ khẩu , đăng ký nhân khẩu, đăngnhập,
app.config: gồm class thuộc tầng dữ liệu để kết nối tới máy tínhcủa bạn
app.database: gồm class thuộc tầng dữ liệu , những class này cóthể là cấu trúc dữ liệu hoặc là nơi lưu trữ dữ liệu phục vụ hoạt động củaứng dụng
app.entity: gồm class thuộc tầng nghiệp vụ , những class này cónhiệm vụ định nghĩa những đối tượng riêng lẻ được tạo ra trong packagenày
app.helper: gồm class thuộc tầng nghiệp vụ để thông báo cáctrường hợp ngoại lệ
app.service: gồm class thuộc tầng nghiệp vụ, những class nàyđóng vai trò như các chức năng ứng dụng
app.utility: gồm class thuộc tầng nghiệp vụ và giao diện, nhữngclass này vừa có vai trò là giao diện tương tác người dùng, nó giống nhưmôi trường giao tiếp giữa người dùng và hệ thống ( cụ thể là button,label, )
Tất cả các package trên sẽ cung cấp đầy đủ chức năng của ứng dụng, và việcchia các lớp trong ứng dụng thành các package cùng chức năng như vậy sẽ giúp lập
Trang 23trình viên dễ dàng quản lý chương trình, tổ chức code một cách phù hợp và thân thiệnvới người đọc code
Một số packages quan trọng:
-