Phần mềm có gồmmột số chức năng chính như thêm nhân khẩu, thêm hộ khẩu, sửa thông tin vềnhân khẩu, hộ khẩu, đăng ký tạm trú, tạm vắng, khai tử, tách hộ khẩu, quản lýphản ánh của dân cư,…
KHẢO SÁT BÀI TOÁN
Mô tả yêu cầu bài toán
Bài toán quản lý thông tin khu dân cư/ tổ dân phố(thông tin hộ khẩu, nhân khẩu, thông tin phản ánh, kiến nghị)
Ban quản lý tổ dân phố 7 phường La Khê cần quản lý thông tin khu dân cư/ tổ dân phố có hơn 400 hộ gia đình với 1700 nhân khẩu, 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ụ Cần quản lý thông tin chung từ thông tin nhân khẩu mỗi hộ gia đình, sổ hộ khẩu(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ố CCCD, ngày và nơi cấp, ngày tháng đăng kí thường trú, )
Tổ trưởng, tổ phó cần tìm kiếm các thông tin, xem lịch sử thay đổi nhân khẩu của một hộ để quản lý các hoạt động biến đổi nhân khẩu như thêm nhân khẩu mới, thay đổi nhân khẩu(người chuyển đi nơi khác, người đã qua đời), những thay đổi liên quan đến cả hộ, tách hộ từ một hộ khẩu, hộ gia đình có ai đó đi xa dài ngày hoặc có nhân khẩu địa phương khác đên cư trú tạm thời trong một khoảng thời gian.
Tổ trưởng cũng cần quản lý các thông tin phản ánh, kiến nghị (người phản ánh, nội dung, ngày phản ánh, phân loại và trạng thái) Thống kê số lượng kiến nghị theo trạng thái( mới ghi nhận, chưa giải quyết, đã giải quyết, ) theo từng quý.
Khảo sát bài toán
Một số mẫu quản lý thông tin hộ khẩu, nhân khẩu, thông tin phản ánh, kiến nghị theo yêu cầu bài toán
Xác định thông tin cơ bản cho nghiệp vụ của bài toán
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
Duyệt và tìm kiếm theo thông tin đầu vào
Danh sách thông tin chi tiết về công dân với các thông tin đầu vào
Thêm công dân vào hệ quản lý
Danh sách quản lý mới khi đã thêm công dân Cập nhật lại thông tin Danh sách quản lý mới khi đã cập nhật lại thông tin công dân
Xóa thông tin công dân ra khỏi hệ quản lý
Danh sách quản lý mới khi đã xóa thông tin côn dân
Họ và tên, nội dung thay đổi, ngày thay đổi
Chuyển chủ hộ khẩu sang công dân có thông tin chi tiết từ đầu vào
Hộ khẩu được thay đổi chủ hộ
Họ và tên, ngày thay đổi Tách hộ khẩu theo những công dân có thông tin chi tiết từ đầu vào
Danh sách quản lý tạo ra thêm một hộ khẩu
Ngày chuyển đi, nơi chuyển đi, ghi chú
Thêm thông tin về ngày chuyển đi, nơi chuyển đi
Thông tin về chuyển hộ khẩu của công dân được cập nhật
Người phản ánh, nội dung, ngày phản ánh, phân loại và trạng thái
Thêm phản ánh vào danh sách để gửi lên cấp trên
Danh sách các phản ánh của người dân
Xây dựng biểu đồ mô tả nghiệp vụ và phân cấp chức năng
Biểu đồ phân cấp chức năng (BFD - Bussiness Function Diagram): phân rã có thứ bậc đơn giản các chức năng của hệ thống thành các chức năng nhỏ hơn, cuối cùng thu được một cây chức năng.
Biểu đồ này thể hiện các đầu việc mà hệ thống cần thực hiện để đạt được mục tiêu quản lý
Mô tả các chức năng trong biểu đồ:
Tên chức năng Mô tả Đánh giá khả năng thực hiện (nhân lúc, thời gian, công nghệ, môi trường)
Thay đổi thông tin về nhân khẩu theo yêu cầu của người dân như: địa chỉ, thông tin cá nhân, thêm nhân khẩu, tách nhân khẩu,…
Xác minh nội dung khiếu nại, làm việc trực tiếp với người khiếu nại, người đại diện, người được ủy quyền, ra quyết định giải quyết khiếu nại.
Thống kê số lượng nhân khẩu, số hộ nghèo, những thay đổì về dân số theo thời gian do những thay đổi trong tỷ suất sinh, tỷ suất chết và di cư; phân bố độ tuổi và giới tính của dân số; phân bố địa lý và nghề nghiệp,…
Xây dựng kế hoạch dự án đơn giản
Công việc Thời gian (số giờ làm việc)
1.1Khảo sát chi tiết yêu cầu
1.2Xác định các đối tượng
1.3Xác định các nghiệp vụ
1.4Xác định thời gian thực hiện
2.1Thiết kế biểu đồ use- case
2.2Thiết kế biể đồ lớp 1-2 ngày
2.3 Thiết kế giao diện 1-2 ngày
2.4 Thiết kế cơ sở dữ liệu
Bảng quản lý đơn giản các rủi ro với dự án phát triển phần mềm
Xác định rủi ro Quản lý rủi ro
Mối nguy Rủi ro Mức độ
Sai thông tin các hộ khẩu
Không có thông tin dự
13 hộ khẩu phòng kiểm tra Phản ánh, kiến nghị
Xử lý không kịp các phản ánh
Tổ phó tham gia xử lý cùng
ĐẶC TẢ YÊU CẦU BÀI TOÁN
Giới thiệu chung
Bảng liệt kê các tác nhân và mô tả thông tin cho các tác nhân:
STT Tên tác nhân Mô tả tác nhân
1 Người quản lý Là tổ trưởng, tổ phó ở khu dân cư, có quyền thay đổi thông tin dân cư
2 Người dân Là nhân khẩu trong tổ dân phố, có trách nhiệm khai báo thông tin của bản thân một cách chính xác
Quan hệ giữa các tác nhân: Tổ trưởng, tổ phó quản lý thông tin của người dân, người dân cung cấp thông tin cho người quản lý.
Mô tả Usecase Tác nhân tương tác Độ phức tạp
Cho phép một người dùng có tài khoản truy cập vào hệ thống
Quản lý tổ dân phố
2 UC002 Tạo mới sổ hộ khẩu
Cho phép một người dùng đã đăng nhập tạo ra một sổ hộ khẩu mới
Quản lý tổ dân phố
3 UC003 Chuyển cả hộ đi nơi khác
Cho phép một người dùng đã đăng nhập chuyển hộ khẩu đi nơi khác
Quản lý tổ dân phố
4 UC004 Thay đổi thông tin cả hộ
Cho phép một người dùng đã đăng nhập thay đổi thông tin cả hộ khẩu
Quản lý tổ dân phố
5 UC005 Tách hộ từ hộ khẩu đã có
Cho phép một người dùng đã đăng nhập tách nhân khẩu ra khỏi hộ khẩu
Quản lý tổ dân phố
Cho phép một người dùng đã đăng nhập thêm nhân khẩu vào 1 hộ khẩu nào đó
Quản lý tổ dân phố
7 UC007 Thay đổi thông tin nhân khẩu
Cho phép một người dùng đã đăng nhập thêm nhân khẩu vào 1 hộ khẩu nào đó
Quản lý tổ dân phố
8 UC008 Cấp khai báo tạm trú, tạm vắng
Cho phép một người dùng đã đăng nhập cấp tạm trú tạm vắng cho nhân khẩu
Quản lý tổ dân phố
9 UC009 Thống kê theo giới tính, độ tuổi
Cho phép một người dùng đã đăng nhập thống kê thông tin theo giới tính, độ tuổi
Quản lý tổ dân phố
10 UC010 Thống kê theo khoảng thời gian
Cho phép một người dùng đã đăng nhập thống kê thông tin theo khoảng thời gian
Quản lý tổ dân phố
11 UC011 Thống kê tạm trú, tạm vắng
Cho phép một người dùng đã đăng nhập thống kê tạm trú tạm vắng
Quản lý tổ dân phố
12 UC012 Ghi nhận phản ánh
Cho phép một người dùng đã đăng nhập gửi các phản ánh lên cấp trên
Quản lý tổ dân phố
13 UC013 Gộp phản ánh trùng
Cho phép một người dùng đã đăng nhập gộp các phản ánh có cùng
Quản lý tổ dân phố
14 UC014 Thông báo khi có phản hồi
Cho phép một người dùng đã đăng nhập nhận các phản hồi từ cấp trên và thông báo cho người phản ánh
Quản lý tổ dân phố
15 UC015 Thống kê số lượng phản ánh theo trạng thái
Cho phép một người dùng đã đăng nhập thống kê số lượng phản ánh theo trạng thái
Quản lý tổ dân phố
Xác định các quan hệ: người quản lý có trách nhiệm thực thi các nhiệm vụ trong use case, use case đăng nhập là tiền điều kiện bắt buộc để thực hiện các use cáe khác
Biểu đồ use case
2.2.1 Biểu đồ use case tổng quan
Khi bắt đầu chương trình quản lý dân cư, người dùng phải đăng nhập vào hệ thống với username và password đã đăng ký trước đó hoặc được cấp trên cấp phát Sau khi nhập đúng username và password người dùng sẽ được chuyền hướng đến trang chủ của ứng dụng Người dùng có thể thao tác với các chức năng chính như quản lý nhân khẩu, quản lý hộ khẩu, tìm kiếm thông tin, thống kê thông tin và quản lý phản ánh
Sau khi đăng nhập, người dùng có thể xem và cập nhật thông tin cá nhân của mình, và có thể thay đổi thay đổi mật khẩu.
Quản trị viên có thể quản lý người dùng và nhóm người, chức năng và loại chức năng có trong hệ thống Đồng thời, quản trị viên có thể phân nhóm cho người dùng, và phân quyền sử dụng chức năng cho nhóm người dùng Các use case của quản trị viên trong biểu đồ use case tổng quan này là use case phức hợp của một nhóm các use case Chi tiết về các use case phức này được đưa ra trong các biểu đồ phân rã ở phần sau.
2.2.2 Biểu đồ use case phân rã mức 2
Phân rã use case "Quản lý thông tin sổ hộ khẩu."
Tại đây, người dùng có thể tạo mới sổ hộ khẩu với điều kiện bắt buộc là phải nhập đủ các trường yêu cầu, người dân có thể yêu cầu chuyển cả hộ đi nơi khác, thay đổi thông tin hộ khẩu, tách hộ khẩu từ hộ khẩu đã có và người quản lý sẽ xem xét yêu cầu nếu thỏa mãn thì sẽ tiến hành chỉnh sửa
Phân rã use case "Quản lý thông tin nhân khẩu"
Tại đây, người dùng có thể thêm mới nhân khẩu với với điều kiện bắt buộc là phải nhập đủ các trường yêu cầu, người dân có thể yêu cầu thay đổi thông tin của bản thân, xin cấp giấy khai báo tạm vắng, tạm trú và người quản lý sẽ xem xét yêu cầu nếu thỏa mãn thì sẽ tiến hành chỉnh sửa
Phân rã use case "Thống kê thông tin nhân khẩu"
Người quản lý có thể thống kê nhân khẩu theo độ tuổi, theo năm, theo giới tính, thống kê nhân khẩu tạm vắng và tạm trú
Phân rã use case "Quản lý thông tin phản ánh, kiến nghị"
Người dân sẽ viêt đơn phản ánh và người quản lý sẽ xem xét đơn phản ánh có thỏa mãn hay không nếu thỏa mãn thì sẽ tiến hành ghi nhận lại và phân công người đi giải quyết Sau khi đã giải quyết phản ánh thì người quản lý sẽ thông báo cho các bên liên quan và chỉnh sửa trạng thái của phản ánh
Đặc tả use case
Đặc tả use case UC001 “Đăng nhập ”
Mã Use case UC001 Tên Use case Đăng nhập
Tác nhân Quản lý tổ dân phố
Mô tả Cho phép một người dùng có tài khoản truy cập vào hệ thống
1 Quản lý tổ dân phố chọn chức năng Đăng nhập
2 Hệ thống hiển thị giao diện đăng nhập
3 Quản lý tổ dân phố nhập username và mật khẩu (mô tả phía dưới *)
4 Quản lý tổ dân phố yêu cầu đăng nhập
5 Hệ thống kiểm tra xem tác nhân đã nhập các trường bắt buộc nhập hay chưa
6 Hệ thống kiểm tra username và mật khẩu có hợp lệ do tác nhân nhập trong hệ thống hay không
7 Hệ thống tạo giao diện màn hình chính
Luồng sự kiện thay thế STT Thực hiện bởi
6a Hệ thống thông báo lỗi: Cần nhập các trường bắt buộc nhập nếu người dùng nhập thiếu
7a Hệ thống thông báo lỗi: username và/hoặc mật khẩu chưa đúng nếu không tìm thấy username và mật khẩu trong hệ thống
* Dữ liệu đầu vào của thông tin cá nhân gồm các trường dữ liệu sau:
Trường dữ liệu Mô tả Bắt buộc? Điều kiện hợp lệ Ví dụ
Có ToiLa12#$ Đặc tả use case UC002 “Tạo mới sổ hộ khẩu”
Mã Use case UC002 Tên Use case Tạo mới sổ hộ khẩu
Tác nhân Quản lý tổ dân phố
Mô tả Cho phép một người dùng đã đăng nhập tạo ra một sổ hộ khẩu mới
Tiền điều kiện Tác nhân đã đăng nhập thành công
1 Quản lý tổ dân phố
Nhấn nút tạo mới hộ khẩu
2 Hệ thống hiển thị giao diện tạo mới hộ khẩu
3 Quản lý tổ dân phố nhập thông tin đầy đủ (thông tin về chủ hộ và các thành viên) (mô tả phía dưới *)
4 Quản lý tổ dân phố nhấn nút xác nhận
5 Hệ thống kiểm tra xem tác nhân đã nhập các trường bắt buộc nhập hay chưa
6 Hệ thống kiểm tra số hộ khẩu có hợp lệ do tác nhân nhập trong hệ thống hay không (số hộ khẩu không được trùng với hộ khẩu đã có)
7 Hệ thống Gọi usecase “Thêm nhân khẩu vào hộ khẩu” và thiết lập thông tin chủ hộ
Luồng sự kiện thay thế STT Thực hiện bởi
6a Hệ th ng thông báo lỗi: Cần nhập các trường bắt buộc nhập nếu người dùng nhập thiếu
7a Hệ thống thông báo lỗi: số hộ khẩu không hợp lệ
Hậu điều kiện Thông tin sổ hộ khẩu mới được lưu vào cơ sở dữ liệu
* Dữ liệu đầu vào của thông tin cá nhân gồm các trường dữ liệu sau:
Trường dữ liệu Mô tả Bắt buộc? Điều kiện hợp lệ Ví dụ
5 Chủ hộ Không Chủ hộ có thể thiết lập sau Đặc tả use case UC003 "chuyển cả hộ đi nơi khác"
Mã Use case UC003 Tên Use case Chuyển cả hộ đi nơi khác
Tác nhân Quản lý tổ dân phố
Mô tả Cho phép một người dùng đã đăng nhập chuyển hộ khẩu đi nơi khác
Tiền điều kiện Tác nhân đã đăng nhập thành công
1 Quản lý tổ dân phố
Nhấn nút chuyển hộ khẩu
2 Hệ thống hiển thị giao diện các hộ khẩu
3 Quản lý tổ dân phố
4 Quản lý tổ dân phố nhập thông tin chuyển đi nơi khác (mô tả phía dưới *)
5 Quản lý tổ dân phố nhấn nút xác nhận
6 Hệ th ng kiểm tra xem tác nhân đã nhập các trường bắt buộc nhập hay chưa
7 Hệ thống Thông báo thành công và quay lại giao diện chính
Luồng sự kiện thay thế STT Thực hiện bởi
6a Hệ thống thông báo lỗi: Cần nhập các trường bắt buộc nhập nếu người dùng nhập thiếu
Hậu điều kiện Thông tin sổ hộ khẩu được lưu vào cơ sở dữ liệu
*dữ liệu của đầu vào của các thông tin thay đổi hộ khẩu
Trường dữ liệu Mô tả Bắt buộc? Điều kiện hợp lệ Ví dụ
3 Ghi chú Không Đặc tả use case UC004 "Thay đổi thông tin cả hộ"
Mã Use case UC004 Tên Use case Thay đổi thông tin cả hộ
Tác nhân Quản lý tổ dân phố
Mô tả Cho phép một người dùng đã đăng nhập thay đổi thông tin cả hộ khẩu
Tiền điều kiện Tác nhân đã đăng nhập thành công
1 Quản lý tổ dân phố
Nhấn nút thay đổi thông tin hộ khẩu
2 Hệ thống hiển thị giao diện các hộ khẩu
3 Quản lý tổ dân phố
4 Quản lý tổ dân phố nhập thông tin thay đổi (mô tả phía dưới *)
5 Quản lý tổ dân phố nhấn nút xác nhận
6 Hệ thống kiểm tra xem tác nhân đã nhập các trường bắt buộc nhập hay chưa
7 Hệ thống Gọi usecase “Thiết lâp thông tin chủ hộ”
Luồng sự kiện STT Thực hiện Hành động thay thế bởi
6a Hệ thống thông báo lỗi: Cần nhập các trường bắt buộc nhập nếu người dùng nhập thiếu a.
Hệ thống thông báo lỗi: Thiếu chủ hộ nếu thay đổi thiếu
Hậu điều kiện Thông tin sổ hộ khẩu được lưu vào cơ sở dữ liệu
*dữ liệu của đầu vào của các thông tin thay đổi hộ khẩu
Trường dữ liệu Mô tả Bắt buộc? Điều kiện hợp lệ Ví dụ
3 Ghi chú Không Đặc tả use case UC005"Tách hộ từ hộ khẩu đã có"
Mã Use case UC005 Tên Use case Tách hộ từ hộ khẩu đã có
Tác nhân Quản lý tổ dân phố
Mô tả Cho phép một người dùng đã đăng nhập tách nhân khẩu ra khỏi hộ khẩu
Tiền điều kiện Tác nhân đã đăng nhập thành công
1 Quản lý tổ dân phố
Nhấn nút tách hộ khẩu
2 Hệ thống hiển thị giao diện các hộ khẩu
3 Quản lý tổ dân phố
4 Quản lý tổ dân phố
Chọn nhân khẩu trong hộ khẩu
5 Quản lý tổ dân phố nhấn nút xác nhận
6 Hệ thống Gọi usecase "Tạo sổ hộ khẩu mới" với đầu vào là các nhân khẩu vừa tách
Luồng sự kiện thay thế STT Thực hiện bởi
4a Hệ thống thông báo lỗi nếu chọn chủ hộ
Hậu điều kiện Thông tin sổ hộ khẩu mới và hộ khẩu cũ được lưu vào cơ sở dữ liệu Đặc tả use case UC006"Thêm nhân khẩu"
Mã Use case UC006 Tên Use case Thêm nhân khẩu
Tác nhân Quản lý tổ dân phố
Mô tả Cho phép một người dùng đã đăng nhập thêm nhân khẩu vào 1 hộ khẩu nào đó
Tiền điều kiện Tác nhân đã đăng nhập thành công
1 Quản lý tổ dân phố
Nhấn nút thêm hộ khẩu
2 Hệ thống hiển thị giao diện các hộ khẩu
3 Quản lý tổ dân phố
4 Quản lý tổ dân phố
Nhập thông tin đầy đủ về nhân khẩu mới
5 Quản lý tổ dân phố nhấn nút xác nhận
6 Hệ thống kiểm tra xem tác nhân đã nhập các trường bắt buộc nhập hay chưa
Luồng sự kiện thay thế STT Thực hiện bởi
3a Hệ thống Gọi usecase "Khai sinh"
6a Hệ thống thông báo lỗi: Cần nhập các trường bắt buộc nhập nếu người dùng nhập thiếu
Hậu điều kiện Thông tin sổ hộ khẩu được lưu vào cơ sở dữ liệu
* Dữ liệu đầu vào của thông tin cá nhân gồm các trường dữ liệu sau:
T Trường dữ liệu Mô tả
Bắt buộc? Điều kiện hợp lệ Ví dụ
4 Họ và tên Có Nguyễn
6 Ngày tháng năm sinh Có 22/12/2002
10 Nghề nghiệp Có Sinh viên
13 Ngày cấp, nơi cấp Có 9/2020, CA
14 Ngày tháng năm đăng kí thường trú
15 Địa chỉ nơi thường trú trước khi chuyển đến
16 Quan hệ với chủ hộ Có Con ruột Đặc tả use case UC007"Thay đổi thông tin nhân khẩu"
Mã Use case UC007 Tên Use case Thay đổi thông tin nhân khẩu
Tác nhân Quản lý tổ dân phố
Mô tả Cho phép một người dùng đã đăng nhập thêm nhân khẩu vào 1 hộ khẩu nào đó
Tiền điều kiện Tác nhân đã đăng nhập thành công
1 Quản lý tổ dân phố
Nhấn nút thay đổi thông tin nhâ khẩu
2 Hệ thống hiển thị giao diện các hộ khẩu
3 Quản lý tổ dân phố
4 Hệ thống Hiển thị các nhân khẩu trong hộ khẩu
5 Quản lý tổ dân phố
Chọn nhân khẩu cần thay đổi
6 Quản lý tổ dân phố
Nhập thông tin thay đổi
7 Quản lý tổ dân phố nhấn nút xác nhận
8 Hệ thống kiểm tra xem tác nhân đã thay đổi thông tin nào chưa
Luồng sự kiện thay thế STT Thực hiện bởi
6a Hệ thống Gọi usecase "khai tử" hoặc
"chuyển nhân khẩu đi nơi khác" 7a Hệ thống thông báo lỗi: Cần nhập các trường bắt buộc nhập nếu người dùng nhập thiếu
Hậu điều kiện Thông tin sổ hộ khẩu thay đổi được lưu vào cơ sở dữ liệu Đặc tả use case UC008"Cấp khai báo tạm trú, tạm vắng"
Mã Use case UC008 Tên Use case Cấp khai báo tạm trú, tạm vắng
Tác nhân Quản lý tổ dân phố
Mô tả Cho phép một người dùng đã đăng nhập cấp tạm trú tạm vắng cho nhân khẩu
Tiền điều kiện Tác nhân đã đăng nhập thành công
1 Quản lý tổ dân phố
Nhấn nút khai báo tạm trú tạm vắng
2 Hệ thống hiển thị giao diện các hộ khẩu
3 Quản lý tổ dân phố
4 Hệ thống Hiển thị các nhân khẩu trong hộ khẩu
5 Quản lý tổ dân phố
Chọn nhân khẩu cần cấp
6 Quản lý tổ dân phố
Cấp khai báo tạm trú tạm vắng cho nhân khẩu đó
7 Quản lý tổ dân phố nhấn nút xác nhận
8 Hệ thống kiểm tra xem tác nhân đã thay đổi thông tin nào chưa
Luồng sự kiện thay thế STT Thực hiện bởi
6a Hệ thống Gọi usecase "thay đổi thông tin nhân khẩu"
Hậu điều kiện Thông tin sổ hộ khẩu thay đổi được lưu vào cơ sở dữ liệu Đặc tả use case UC009"Thống kê theo giới tính, độ tuổi"
Mã Use case UC009 Tên Use case Thống kê theo giới tính, độ tuổi
Tác nhân Quản lý tổ dân phố
Mô tả Cho phép một người dùng đã đăng nhập thống kê thông tin theo giới tính, độ tuổi
Tiền điều kiện Tác nhân đã đăng nhập thành công
1 Quản lý tổ dân phố
Nhấn nút thống kê nhân khẩu
2 Hệ thống hiển thị giao diện các tiêu chí thống kê
3 Quản lý tổ dân phố
Chọn giới tính-độ tuổi
4 Hệ thống Hiển thị thống kê số lượng nam/nữ, số lượng nhân khẩu trong từng độ tuổi có trong cơ sở dữ liệu
Luồng sự kiện thay thế
Hậu điều kiện Không Đặc tả use case UC010"Thống kê theo khoảng thời gian"
Mã Use case UC010 Tên Use case Thống kê theo khoảng thời gian
Tác nhân Quản lý tổ dân phố
Mô tả Cho phép một người dùng đã đăng nhập thống kê thông tin theo khoảng thời gian
Tiền điều kiện Tác nhân đã đăng nhập thành công
1 Quản lý tổ dân phố
Nhấn nút thống kê nhân khẩu
2 Hệ thống hiển thị giao diện các tiêu chí thống kê
3 Quản lý tổ dân phố
4 Hệ thống Hiển thị thống kê số lượng nhân khẩu có trong cơ sở dữ liệu trong khoảng thời gian được chọn
Luồng sự kiện thay thế STT Thực hiện bởi
3a Hệ thống Thông báo lỗi: cần nhập khoảng thời gian chính xác nếu nhập sai
Hậu điều kiện Không Đặc tả use case UC011"Thống kê tạm trú, tạm vắng"
Mã Use case UC011 Tên Use case Thống kê tạm trú, tạm vắng
Tác nhân Quản lý tổ dân phố
Mô tả Cho phép một người dùng đã đăng nhập thống kê tạm trú tạm vắng
Tiền điều kiện Tác nhân đã đăng nhập thành công
1 Quản lý tổ dân phố
Nhấn nút thống kê nhân khẩu
2 Hệ thống hiển thị giao diện các tiêu chí thống kê
3 Quản lý tổ dân phố
Chọn tạm trú, tạm vắng
4 Hệ thống Hiển thị thống kê thông tin nhân khẩu được cấp tạm trú tạm vắng và thời gian cấp
Luồng sự kiện thay thế
Hậu điều kiện Không Đặc tả use case UC012"ghi nhận phản ánh"
Mã Use case UC013 Tên Use case Ghi nhận phản ánh
Tác nhân Quản lý tổ dân phố
Mô tả Cho phép một người dùng đã đăng nhập gửi các phản ánh lên cấp trên
Tiền điều kiện Tác nhân đã đăng nhập thành công
1 Quản lý tổ dân phố
Nhấn nút ghi nhận phản ánh
2 Hệ thống Tạo phản ánh mới
3 Quản lý tổ dân phố
Nhập các thông tin phản ánh (mô tả phía dưới*)
4 Hệ thống kiểm tra xem tác nhân đã nhập các trường bắt buộc nhập hay chưa
5 Hệ thống quay lại màn hình chính
Luồng sự kiện thay thế STT Thực hiện bởi
5a Hệ thống Tạo phản ánh mới nếu còn phản ánh
Hậu điều kiện Các phản ánh được lưu vào cơ sở dữ liệu
* các thông tin ghi nhận lại khi gộp các phản ánh trùng nhau
Trường dữ liệu Mô tả Bắt buộc? Điều kiện hợp lệ Ví dụ
Có Mới ghi nhận Đặc tả use case UC013"gộp phản ánh trùng nhau"
Mã Use case UC013 Tên Use case Gộp phản ánh trùng nhau
Tác nhân Quản lý tổ dân phố
Mô tả Cho phép một người dùng đã đăng nhập gộp các phản ánh có cùng nội dung
Tiền điều kiện Tác nhân đã đăng nhập thành công
1 Quản lý tổ dân phố
Nhấn nút xử lý phản ánh
2 Hệ thống hiển thị các phản ánh
3 Quản lý tổ dân phố
Gộp các phản ánh trùng nội dung
4 Hệ thống Gộp các phản ánh và ghi nhận các thông tin (mô tả phía dưới*)
Luồng sự kiện thay thế
* các thông tin ghi nhận lại khi gộp các phản ánh trùng nhau
Trường dữ liệu Mô tả Bắt buộc? Điều kiện hợp lệ Ví dụ
Có 2 Đặc tả use case UC014"thông báo khi có phản hồi"
Mã Use case UC014 Tên Use case Thông báo khi có phản hồi
Tác nhân Quản lý tổ dân phố
Mô tả Cho phép một người dùng đã đăng nhập nhận các phản hồi từ cấp trên và thông báo cho người phản ánh
Tiền điều kiện Tác nhân đã đăng nhập thành công
1 Quản lý tổ dân phố
2 Hệ thống hiển thị các phản hồi từ cấp trên
3 Quản lý tổ dân phố
Thông báo các phản hồi tới người kiến nghị
Luồng sự kiện thay thế
Hậu điều kiện Không Đặc tả use case UC015"thống kê số lượng phản ánh theo trạng thái"
Mã Use case UC015 Tên Use case Thống kê số
37 lượng phản ánh theo trạng thái
Tác nhân Quản lý tổ dân phố
Mô tả Cho phép một người dùng đã đăng nhập thống kê số lượng phản ánh theo trạng thái
Tiền điều kiện Tác nhân đã đăng nhập thành công
1 Quản lý tổ dân phố
Nhấn nút thống kê phản ánh
2 Hệ thống Thống kê và hiển thị số lượng các phản ánh theo 3 trạng thái: mới ghi nhận, chưa giải quyết, đã giải quyết
Luồng sự kiện thay thế
Hậu điều kiện Số lượng thống kê được lưu vào cơ sở dữ liệu
Các yêu cầu phi chức năng
- Hỗ trợ nhiều người dùng làm việc đồng thời
- Nếu vượt quá người truy cập mà sau đó vẫn có yêu cầu được truy cập thì phải thông báo lỗi cho người dùng
- Giao diện nguời dùng tương thích Windows 7/ Window 10 Thân thiện.
- Hệ thống phải hoạt động liên tục 24 giờ/ngày, 7 ngày/tuần, với thời gian ngừng hoạt động không quá 10%.
- Hệ thống phải hỗ trợ đến 2000 người dùng truy xuất CSDL trung tâm đồng thời bất kỳ lúc nào, và đến 500 người dùng truy xuất các server cục bộ
- Hệ thống phải truy xuất đến CSDL danh mục học phần cũ với độ trễ không quá 10 giây
- Thời gian chuyển trang không quá 2 giây
- Hệ thống phải có khả năng hoàn tất 80% giao dịch trong vòng 2 phút
Các ràng buộc thiết kế
- Hệ thống tích hợp với Hệ thống danh mục học phần có sẵn, một CSDL RDBMS.
- Hệ thống phải cung cấp giao diện dựa Web
PHÂN TÍCH YÊU CẦU
Xác định các lớp phân tích
Phân rã các yêu cầu phức tạp được trình bày trong pha xác định yêu cầu thành các nhân tố chính cùng mối quan hệ giữa chúng để làm cơ sở cho giải pháp được trình bày trong pha thiết kế sau này Kết quả của quá trình phân rã là các lớp phân tích.
Kết quả quá trình phân rã bước đầu của usecase “Đăng nhập”
Kết quả quá trình phân rã bước đầu của usecase “Tạo mới sổ hộ khẩu”
Kết quả quá trình phân rã bước đầu của usecase “Chuyển hộ khẩu đi nơi khác”
Kết quả quá trình phân rã bước đầu của usecase “Thay đổi thông tin hộ khẩu”
Kết quả quá trình phân rã bước đầu của usecase “Tách hộ khẩu”
Kết quả quá trình phân rã bước đầu của usecase “Thêm mới nhân khẩu”
Kết quả quá trình phân rã bước đầu của usecase “Thay đổi thông tin nhân khẩu”
Kết quả quá trình phân rã bước đầu của usecase “Thống kê”
Kết quả quá trình phân rã bước đầu của usecase “Thêm mới phản ánh”
Kết quả quá trình phân rã bước đầu của usecase “Giải quyết phản ánh”
Xây dựng biểu đồ trình tự
Biểu đồ trình tự quá trình “Đăng nhập”
Biểu đồ trình tự quá trình “Tạo mới hộ khẩu”
Biểu đồ trình tự quá trình “Chuyển hộ khẩu đi nơi khác”
Biểu đồ trình tự quá trình “Thay đổi thông tin hộ khẩu”
Biểu đồ trình tự quá trình “Tách hộ khẩu”
Biểu đồ trình tự quá trình “Thêm mới nhân khẩu”
Biểu đồ trình tự quá trình “Thay đổi thông tin nhân khẩu”
Biểu đồ trình tự quá trình “Thống kê”
Biểu đồ trình tự quá trình “Thêm mới phản ánh”
Biểu đồ trình tự quá trình “Giải quyết phản ánh”
Xây dựng biểu đồ thực thể liên kết (ERD)
Mô tả cho các mối quan hệ giữa các đối tượng dữ liệu:
- Nhân khẩu thuộc hộ khẩu hoặc là chủ hộ của một hộ khẩu
- Nhân khẩu khai báo phản ánh
- Nhân khẩu khai báo tạm trú
- Nhân khẩu khai báo tạm vắng
- Nhân khẩu qua đời được người khác khai báo
- Hộ khẩu đính chính thông tin
THIẾT KẾ CHƯƠNG TRÌNH
Thiết kế kiến trúc
Phần mềm được thiết kế theo mô hình MVC: MVC là viết tắt của cụm từ
“Model-View-Controller“ Đây là mô hình thiết kế được sử dụng trong kỹ thuật phần mềm MVC là một mẫu kiến trúc phần mềm để tạo lập giao diện người dùng trên máy tính MVC chia thành ba phần được kết nối với nhau và mỗi thành phần đều có mô ̣t nhiê ̣m vụ riêng của nó và đô ̣c lâ ̣p với các thành phần khác Tên gọi 3 thành phần:
- Model (dữ liệu): Quản lí xử lí các dữ liê ̣u.
- View (giao diện): Nới hiển thị dữ liê ̣u cho người dùng.
- Controller (bộ điều khiển): Điều khiển sự tương tác của hai thành phần Model và View.
- view: chứa file tạo giao diện
- javafx: thư viện tạo giao diện của Java
- main: chứa lớp khởi tạo chương trình
- utitlity: chứa các chức năng hỗ trợc cho chương trình
- controller: chứa lớp điều khiển giao diện
- services: chứa các lớp liên kết và lấy dữ liệu từ cơ sở dữ liệu
- model: chứa lớp mô tả thông tin các thực thể của chương trình
- bean: chứa lớp liên kết giữa một số thực thể
- jdbc: kết nối với Cơ sở dữ liệu
- mySQL: nơi chứa cơ sở dữ liệu
Thiết kế cơ sở dữ liệu
Sơ đồ quan hệ giữa các bảng:
Đặc tả thiết kế dữ liệu cho từng bảng:
Tên trường Kiểu dữ liệu Kích thước
ID Int(11) 11 ký tự Khoá chính Số nguyên dương maNhanKhau Varchar(100) 100 ký tự Văn bản hoTen Varchar(100) 100 ký tự Văn bản bietDanh Varchar(100) 100 ký tự Văn bản namSinh Date Ngày tháng năm gioiTinh Varchar(100) 100 ký tự Văn bản noiSinh Varchar(100) 100 ký tự Văn bản nguyenQuan Varchar(100) 100 ký tự Văn bản danToc Varchar(100) 100 ký tự Văn bản tonGiao Varchar(100) 100 ký tự Văn bản quocTich Varchar(100) 100 ký tự Văn bản soHoChieu Varchar(100) 100 ký tự Văn bản noiThuongChu Varchar(100) 100 ký tự Văn bản diaChiHienNay Varchar(100) 100 ký tự Văn bản trinhDoHocVan Varchar(100) 100 ký tự Văn bản trinhDoChuyenMon Varchar(100) 100 ký tự Văn bản bietTiengDanToc Varchar(100) 100 ký tự Văn bản trinhDoNgoaiNgu Varchar(100) 100 ký tự Văn bản ngheNghiep Varchar(100) 100 ký tự Văn bản noiLamViec Varchar(100) 100 ký tự Văn bản tienAn Varchar(100) 100 ký tự Văn bản ngayChuyenDen Date Ngày tháng năm lyDoChuyenDen Varchar(100) 100 ký tự Văn bản ngayChuyenDi Date Ngày tháng
51 năm lyDoChuyenDi Varchar(100) 100 ký tự Văn bản diaChiMoi Varchar(100) 100 ký tự Văn bản ngayTao Date Ngày tháng năm idNguoiTao Int(11) 11 ký tự
Khóa tham chiếu từ bảng users
Số nguyên dương ngayXoa Date Ngày tháng năm idNguoiXoa Int(11) 11 ký tự
Khóa tham chiếu từ bảng users
Số nguyên dương lyDoXoa Varchar(100) 100 ký tự Văn bản ghiChu Varchar(100) 100 ký tự Văn bản
Tên trường Kiểu dữ liệu Kích thước
Ràng buộc toàn vẹn Khuôn dạng Ghi chú
ID Int(11) 11 ký tự Khoá chính Số nguyên dương userName Varchar(100) 100 ký tự Văn bản
Passwd Varchar(100) 100 ký tự Văn bản
Tên trường Kiểu dữ liệu Kích thước
ID Int Khoá chính Số nguyên dương maHoKhau Varchar(100) 100 ký tự Văn bản idChuHo Int Khoá tham chiếu Số nguyên từ bảng
NhanKhau dương maKhuVuc Varchar(100) 100 ký tự Văn bản diaChi Varchar(100) 100 ký tự Văn bản ngayLap Date Ngày tháng năm ngayChuyenDi Date Ngày tháng năm lyDoChuyen Text Văn bản dài Văn bản nguoiThucHien Int Mã tài khoản thêm thông tin
Tên trường Kiểu dữ liệu Kích thước
ID Int Khoá chính Số nguyên dương soGiayKhaiTu Varchar(100) 100 ký tự Văn bản idNguoiKhai Int Khoá tham chiếu từ bảng NhanKhau
Số nguyên dương idNguoiChet int
Khoá tham chiếu từ bảng nhan_khau
Số nguyên dương ngayKhai Date Ngày tháng năm ngayChet Date Ngày tháng năm lyDoChet Varchar(100) 100 ký tự Văn bản
Tên trường Kiểu dữ liệu Kích thước
ID Int Khoá chính Số nguyên dương idHoKhau Int
Khoá tham chiếu từ bảng ho_khau
Số nguyên dương thongTinThayDoi Varchar(100) 100 ký tự Văn bản thayDoiTu Varchar(100) 100 ký tự Văn bản thayDoiThanh Varchar(100) 100 ký tự Văn bản ngayThayDoi Date
Khóa tham chiếu từ bảng nhan_khau
Ngày tháng năm nguoiThayDoi Int Số nguyên dương
Bảng thanh_vien_cua_ho:
Tên trường Kiểu dữ liệu Kích thước
Ghi chú idNhanKhau Int Khoá chính Số nguyên dương idHoKhau Int Khóa chính Số nguyên dương quanHeVoiChuHo Varchar(100) 100 ký tự Văn bản
Tên trường Kiểu dữ liệu Kích thước
Ràng buộc toàn vẹn Khuôn dạng Ghi chú
ID Int Khoá chính Số nguyên dương idNhanKhau Int Số nguyên dương tuNgay Date Ngày tháng năm denNgay Date Ngày tháng năm diaChi Varchar(100) 100 ký tự Văn bản ngheNghiep Varchar(100) 100 ký tự Văn bản noiLamViec Varchar(100) 100 ký tự Văn bản
Tên trường Kiểu dữ liệu Kích thước
ID Int Khoá chính Số nguyên dương idNhanKhau Int Khoá tham chiếu từ bảng NhanKhau
Số nguyên dương soCMT Varchar(12) 12 ký tự Văn bản ngayCap Date Ngày tháng năm noiCap Varchar(100) 100 ký tự Văn bản
Tên trường Kiểu dữ liệu Kích thước
Khoá tham chiếu từ bảng NhanKhau
Số nguyên dương hoTen Varchar(100) 100 ký tự Văn bản namSinh Date
Ngày tháng năm gioiTinh Varchar(100) 100 ký tự Văn bản quanHeVoiNhanKhau Varchar(100) 100 ký tự Văn bản ngheNghiep Varchar(100) 100 ký tự Văn bản diaChiHienTai Varchar(100) 100 ký tự Văn bản
Tên trường Kiểu dữ liệu Kích thước
Số nguyên dương idNhanKhau Int
Khoá tham chiếu từ bảng NhanKhau
Số nguyên dương maGiayTamTru Varchar(100) 100 ký tự Văn bản soDienThoaiNguoiDangKy Varchar(100) 100 ký tự Văn bản tuNgay Date Ngày tháng năm denNgay Date
Ngày tháng năm lyDo Text Văn bản dài Văn bản
Tên trường Kiểu dữ liệu Kích thước
ID Int Khoá chính Số nguyên dương idNhanKhau Int Số nguyên dương maGiayTamVang Varchar(100) 100 ký tự Văn bản noiTamTru Varchar(100) 100 ký tự Văn bản tuNgay Date Ngày tháng năm denNgay Date Ngày tháng năm lyDo Varchar(100) 100 ký tự Văn bản
Thiết kế chi tiết lớp
Chứa các thông tin về sổ hộ khẩu: private int ID; private String maHoKhau; private int idChuHo; private String maKhuVuc; private String diaChi; private Date ngayLap;
Class HoKhauController private Date ngayChuyDi; private String lyDoChuyen; private int nguoiThucHien;
Chứa các thông tin về nhân khẩu: private int ID; private String maNhanKhau; private String hoTen; private String bietDanh; private Date namSinh; private String gioiTinh; private String noiSinh; private String nguyenQuan; private String soCMT; private String danToc; private String tonGiao; private String quocTich; private String soHoChieu; private String noiThuongTru; private String diaChiHienNay; private String trinhDoHocVan; private String trinhDoChuyenMon; private String bietTiengDanToc; private String trinhDoNgoaiNgu; private String ngheNghiep; private String noiLamViec; private String tienAn;
59 private Date ngayChuyenDen; private String lyDoChuyenDen; private Date ngayChuyenDi; private String lyDoChuyenDi; private String diaChiMoi; private Date ngayTao; private int idNguoiTao; private Date ngayXoa; private int idNguoiXoa; private String lyDoXoa; private String ghiChu;
Chứa các thông tin về chứng minh thư: private int ID;
Class NhanKhauController private int idNhanKhau; private String soCMT; private Date ngayCap; private String noiCap;
Chứa các thông tin về đính chính: private int ID; private int idHoKhau; private String thongTinThayDoi; private String thayDoiTu; private String thayDoiThanh; private Date ngayThayDoi; private int nguoiThayDoi;
Chứa các thông tin về gia đình: private int ID; private int idNhanKhau; private String hoTen; private Date namSinh; private String gioiTinh; private String quanHeVoiNhanKhau; private String ngheNghiep; private String diaChiHienTai;
Chứa các thông tin về khai tử: private int ID; private String soGiayKhaiTu; private int idNguoiKhai; private int idNguoiChet; private Date ngayKhai; private Date ngayChet; private String lyDoChet;
Chứa các thông tin về tạm trú: private int ID; private int idNhanKhau; private String maGiayTamTru; private String soDienThoaiNguoiDangKy; private Date tuNgay; private Date denNgay; private String lyDo;
Chứa các thông tin về tạm vắng: private int ID; private int idNhanKhau; private String maGiayTamVang; private String noiTamTru; private Date tuNgay; private Date denNgay; private String lyDo;
Chứa các thông tin về thành viên của hộ: private int idNhanhKhau; private int idHoKhau; private String quanHeVoiChuHo; private String hoTen; private Date namSinh;
Chứa các thông tin về tiểu sử: private int ID; private int idNhanKhau; private Date tuNgay; private Date denNgay; private String ngheNghiep; private String noiLamViec;
Chứa các thông tin về người dùng: private int ID; private String userName; private String password;
Chứa các thông tin về phản ánh: private int ID; private String hoTen; private String noiDung; private String status;
Sơ đồ lớp chi tiết
Thiết kế giao diện
Xây dựng biểu đồ chuyển giữa các giao diện.
Xây dựng mock-up cho màn hình chính của bài toán (casestudy)
Xây dựng mock-up cho màn hình nhân khẩu của bài toán (casestudy)
Xây dựng mock-up cho màn hình hộ khẩu của bài toán (casestudy)
Xây dựng mock-up cho màn hình thống kê của bài toán (casestudy)
Xây dựng mock-up cho màn hình phản ánh của bài toán (casestudy)
69 Đặc tả thiết kế màn hình chính của bài toán (casestudy) Điều khiển Thông tin dữ liệu Loại Thuộc tính
Ghi chú Tiêu đề màn hình
Chứa ảnh đại diện và tên màn hình
Image + text label Hiển thị
Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình "Quản lý nhân khẩu"
Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình "Quản lý hộ khẩu"
Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình "Thống kê"
Kích thước image Font chữ
Khung hiển thị thông tin thống kê nhân khẩu
HIển thị số nhân khẩu có trên địa bàn
Image + text label + text label (số liệu thống kê từ database)
Hiển thị Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình "Phản ánh"
Kích thước image Font chữ
Sự kiện click Đặc tả thiết kế màn hình nhân khẩu của bài toán (casestudy) Điều khiển Thông tin dữ liệu Loại Thuộc tính
Ghi chú Tiêu đề màn hình
Chứa ảnh đại diện và tên màn hình
Hiển thị Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình "Quản lý nhân khẩu"
Hiển thị Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình "Quản lý hộ khẩu"
Hiển thị Kích thước image Font chữ
Nút menu Khi người dùng click sẽ mở Image + Hiển thị
"Thống kê" màn hình "Thống kê" Button Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình "Phản ánh"
Hiển thị Kích thước image Font chữ
Khung hiển thị thông tin chi tiết của nhân khẩu
Hiển thị thông tin id, họ tên, ngày sinh, giới tính, địa chỉ hiện nay của các nhân khẩu trong hệ thống
Table (số liệu từ database)
Khi người dùng click sẽ mở màn hình "Thêm mới nhân khẩu"
Sự kiện click nút "ĐK tạm vắng"
Khi người dùng click sẽ mở màn hình "Đăng kí tạm vắng"
Khi người dùng click sẽ mở màn hình "Đăng kí tạm trú"
Nút "khai tử" Khi người dùng click sẽ mở màn hình "khai tử"
Sự kiện click Đặc tả thiết kế màn hình hộ khẩu của bài toán (casestudy) Điều khiển Thông tin dữ liệu Loại Thuộc tính
Ghi chú Tiêu đề màn hình
Chứa ảnh đại diện và tên màn hình
Hiển thịKích thước image
Khi người dùng click sẽ mở màn hình "Quản lý nhân khẩu"
Hiển thị Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình "Quản lý hộ khẩu"
Hiển thị Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình "Thống kê"
Hiển thị Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình "Phản ánh"
Hiển thị Kích thước image Font chữ
Khung hiển thị thông tin chi tiết của hộ khẩu
Hiển thị thông tin mã hộ khẩu, tên chủ hộ, địa chỉ hiện nay của các hộ khẩu trong hệ thống
Table (số liệu từ database)
Khi người dùng click sẽ mở màn hình "Thêm mới hộ khẩu"
Sự kiện click nút "Tách HK" Khi người dùng click sẽ mở màn hình "Tách hộ khẩu"
Nút "Chuyển Khi người dùng click sẽ Button Hiển thị
73 đi" mở màn hình "Chuyển hộ khẩu"
Sự kiện click Đặc tả thiết kế màn hình thống kê của bài toán (casestudy) Điều khiển Thông tin dữ liệu Loại Thuộc tính Ghi chú Tiêu đề màn hình Chứa ảnh đại diện và tên màn hình
Hiển thị Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình
Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình
Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình
Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình "Phản ánh"
Kích thước image Font chữ
Khung hiển thị Hiển thị thông Table (số liệu Hiển thị thông tin chi tiết của các nhân khẩu cần thống kê tin chi tiết của các nhân khẩu từ database) Font chữ ô trống Người dùng nhập độ tuổi bắt đầu
Label Hiển thị Cần nhập thông tin là số không âm + cảnh báo và thông báo lỗi nếu nhập sai ô trống Người dùng nhập độ tuổi kết thúc
Label Hiển thị Cần nhập thông tin là số không âm + cảnh báo và thông báo lỗi nếu nhập sai ô trống Người dùng nhập năm bắt đầu
Label Hiển thị Cần nhập thông tin là số không âm + cảnh báo và thông báo lỗi nếu nhập sai ô trống Người dùng nhập năm kết thúc
Label Hiển thị Cần nhập thông tin là số không âm + cảnh báo và thông báo lỗi nếu nhập sai
Nút "Show" Khi người dùng click sẽ hiển thị thông tin thống kê
Nút ‘xuất file’ Khi người dùng click sẽ xuất ra file danh sách nhân khẩu đã thống kê
MenuButton Khi người dùng click sẽ hiện các trường giới tính để chọn
MenuButton Khi người dùng click sẽ hiện các trường
75 Đặc tả thiết kế màn hình phản ánh của bài toán (casestudy) Điều khiển Thông tin dữ liệu Loại Thuộc tính
Ghi chú Tiêu đề màn hinh
Chứa ảnh đại diện và tên màn hình
Hiển thị Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình "Quản lý nhân khẩu"
Hiển thị Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình "Quản lý hộ khẩu"
Hiển thị Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình "Thống kê"
Hiển thị Kích thước image Font chữ
Khi người dùng click sẽ mở màn hình "Phản ánh"
Hiển thị Kích thước image Font chữ
Khung hiển thị thông tin chi tiết cần phản ánh
Hiển thị thông tin danh sách phản ánh từ người dân
Table (số liệu từ database)
Khi người dùng click sẽ mở màn hình ‘’Thêm phản
Font chữ ánh mới ‘’ Sự kiện click
Khi người dùng click sẽ mở màn hình ‘’Danh sách các phản hồi đã được giải quyết’’
Khi người dùng click sẽ mở màn hình’’Danh sách các phản hồi đang chờ duyệt’’
XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA
Thư viện và công cụ sử dụng
Danh sách thư viện và công cụ sử dụng
Mục đích Công cụ Địa chỉ URL
IDE lập trình Eclipse Oxygen 64 bit http://www.eclipse.org/
MySQL connector https://openjfx.io/ https://dev.mysql.com/
Kết quả chương trình minh họa
Sau quá trình phát triển nhóm đã có được kết quả như ý muốn Sản phẩm được hoàn thành là phần mềm hỗ trợ quản lý dân cư Ngoài chức năng hỗ trợ việc quản lý nhân khẩu, hộ khẩu thì phần mềm còn hỗ trợ việc thống kê, phản ánh giúp cho công việc trở lên đơn giản hơn do không phải cần quá nhiều ứng dụng để làm những công việc này như việc phải cần 1 app để quản lý nhân khẩu, hộ khẩu, và 1 app để quản lý việc phản ánh của người dân.
Thông tin về ứng dụng:
- Dung lượng toàn bộ mã nguồn: ~2MB
Giao diện minh hoạ các chức năng của chương trình
Giao diện trang đăng nhập
Giao diện quản lý nhân khẩu
Giao diện thêm mới nhân khẩu
Giao diện đăng ký tạm vắng
Giao diện quản lý hộ khẩu
Giao diện thêm mới hộ khẩu
Giao diện chọn chủ hộ
Giao diện chọn thành viên
Giao diện tách hộ khẩu
Giao diện chuyển hộ khẩu
Giao diện thêm mới phản ánh:
Giao diện xử lý phản ánh:
KIỂM THỬ CHƯƠNG TRÌNH
Kiểm thử các chức năng đã thực hiện
Sử dũng kỹ thuật kiểm thử hộp đen: Tạo bảng quyết định với các trường input (dữ liệu nhập từ bàn phím hoặc click chuột), output (mô tả kết quả đầu ra mong muốn), exception (thể hiện việc bắt các ngoại lệ: không xử lý/xử lý sai/xử lý chuẩn), kết quả (kết quả chạy chương trình có pass hay không) để xây dựng các ca kiểm thử.
6.1.1 Kiểm thử cho chức năng 1
Bảng 1 : Kết quả kiểm thử chức năng Đăng nhập
STT input output Exception Kết quả
Chuyển sang màn hình trang chủ
Thông báo invalid username or password
Thông báo invalid username or password
6.1.2 Kiểm thử cho chức năng 2
Chức năng: Thêm mới nhân khẩu.
Bảng 2 : Kết quả kiểm thử chức năng Thêm mới nhân khẩu.
STT input output Exception Kết quả
1 Họ và tên = Nguyễn văn A
“Thêm mới nhân khẩu thành công”
Nơi thường trú = Nghệ An Địa chỉ hiện tại = Hà Nội
Trình độ ngoại ngữ = Không
Trình độ chuyên môn = Thạc sĩ
Trình độ học vấn = 12/12 chính quy
Biết tiếng dân tộc = Không
Nơi làm việc = công ty ABC
2 Họ và tên = Nguyễn văn A
Nơi thường trú = Nghệ An Địa chỉ hiện tại = Hà Nội
Trình độ ngoại ngữ = Không
Trình độ chuyên môn = Thạc sĩ
Trình độ học vấn = 12/12 chính quy
Biết tiếng dân tộc = Không
Nơi làm việc = công ty ABC
Thông báo “Vui lòng nhập hết các trường bắt buộc”
3 Họ và tên = Nguyễn văn A
Thông báo “Vui lòng nhập hết các trường bắt buộc”
Nơi thường trú = Nghệ An Địa chỉ hiện tại = Hà Nội
Trình độ ngoại ngữ = Không
Trình độ chuyên môn = Thạc sĩ
Trình độ học vấn = 12/12 chính quy
Biết tiếng dân tộc = Không
Nơi làm việc = công ty ABC
4 Họ và tên = Nguyễn văn A
Nơi thường trú = Nghệ An Địa chỉ hiện tại = Hà Nội
Trình độ ngoại ngữ = Không
Trình độ chuyên môn = Thạc sĩ
Trình độ học vấn = 12/12 chính quy
Biết tiếng dân tộc = Không
Nơi làm việc = công ty ABC
Thông báo “Vui lòng nhập hết các trường bắt buộc”
6.1.3 Kiểm thử cho chức năng 3
Chức năng: Đăng kí tạm vắng.
Bảng 3 : Kết quả kiểm thử chức năng Đăng kí tạm vắng
STT input output Exception Kết quả
1 Số CMT = null Thông báo “Vui lòng nhập số CMT”
2 Số CMT = ee Thông báo “Vui lòng nhập đúng định dạng số CMT”
3 Số CMT = 111 Thông báo “Không tìm thấy nhân khẩu trong hệ thống!! Thử lại?”
Mã giấy tạm vắng null
Nơi tạm trú = Hà Nội
Thông báo “Vui lòng nhập đúng chính xác các trường bắt buộc”
Mã giấy tạm vắng null
Nơi tạm trú = Hà Nội
Thông báo “Vui lòng nhập đúng chính xác các trường bắt buộc”
Mã giấy tạm vắng null
Nơi tạm trú = Hà Nội
Từ ngày = abc Đến ngày 08/03/2023
Không có Xử lý chuẩn
Mã giấy tạm vắng HN002
Nơi tạm trú = Hà Nội
Lý do = Đi công tác
Thông báo “Đăng kí tạm vắng thành công”
6.1.4 Kiểm thử cho chức năng 4
Chức năng: Đăng kí tạm trú.
Bảng 4 : Kết quả kiểm thử chức năng Đăng kí tạm trú.
STT input output Exception Kết quả
1 Số CMT = null Thông báo “Vui lòng nhập số CMT”
2 Số CMT = ee Thông báo “Vui lòng nhập đúng định dạng số CMT”
3 Số CMT = 111 Thông báo “Không tìm thấy nhân khẩu trong hệ thống!! Thử lại?”
Mã giấy tạm trú null
Số điện thoại người đăng kí = null
Từ ngày = null Đến ngày = null
Thông báo “Vui lòng nhập đúng chính xác các trường bắt buộc”
Mã giấy tạm trú null
Số điện thoại người đăng kí = xyz
Lý do = Đi du lịch
Thông báo “Vui lòng nhập Số Điện Thoại đúng định dạng!”
Mã giấy tạm trú HN002
Thông báo “Đăng kí tạm trú thành công
Lý do = Đi du lịch
6.1.5 Kiểm thử cho chức năng 5
Bảng 5 : Kết quả kiểm thử chức năng Khai tử.
STT input output Exception Kết quả
1 Số CMT người khai null
Thông báo “Vui lòng nhập số CMT”
2 Số CMT người chết null
Thông báo “Vui lòng nhập số CMT”
3 Số CMT người khai ee
Thông báo “Vui lòng nhập số CMT đúng định dạng”
4 Số CMT người chết ee
Thông báo “Vui lòng nhập số CMT đúng định dạng”
Thông báo “Không tìm thấy nhân khẩu trong hệ thống!! Thử lại?”
Thông báo “Không tìm thấy nhân khẩu trong hệ thống!! Thử lại?”
Số giấy khai tử = null
Thông báo “Vui lòng nhập hết các trường bắt buộc”
Số giấy khai tử HN01
Số giấy khai tử HN02
Thông báo “Khai tử thành công”
6.1.6 Kiểm thử cho chức năng 6
Chức năng: Thêm mới hộ khẩu.
Bảng 6 : Kết quả kiểm thử chức năng Thêm mới hộ khẩu.
STT input output Exception Kết quả
Mã khu vực = TQB Địa chỉ = Hai bà Trưng,
Chủ hộ = Bùi Thị Hà
Quan hệ với chủ hộ con trai
Thông báo “Mã hộ khẩu đã tồn tại”
Mã khu vực = TQB Địa chỉ = Hai bà Trưng,
Chủ hộ = Bùi Thị Hà
Thành viên của hộ: null
Thông báo “Vui lòng nhập hết các trường bắt buộc”
Mã khu vực = TQB Địa chỉ = Hai bà Trưng,
Chủ hộ = Bùi Thị Hà
Quan hệ với chủ hộ con trai
Thông báo “Thêm mới hộ khẩu thành công”
6.1.7 Kiểm thử cho chức năng 7
Chức năng: Tách hộ khẩu.
Bảng 7 : Kết quả kiểm thử chức năng Tách hộ khẩu.
STT input output Exception Kết quả
1 Chủ hộ hiện tại = Nguyễn
Mã khu vực = TN2 Địa chỉ = Thanh Nhàn,
Hai bà Trưng, Hà Nội
Mã hộ khẩu mới = null
Những người ở hộ mới: null
Thông báo “Vui lòng nhập hết các trường bắt buộc”
2 Chủ hộ hiện tại TQB001
Thông báo “Mã hộ khẩu đã tồn
Mã khu vực = TQB Địa chỉ = Hai bà Trưng,
Mã hộ khẩu mới TQB001
Họ tên = Nguyễn Trà My
Quan hệ với chủ hộ = con gái tại”
3 Chủ hộ hiện tại TQB001
Mã khu vực = TQB Địa chỉ = Hai bà Trưng,
Mã hộ khẩu mới TQB001
Họ tên = Nguyễn Trà My
Quan hệ với chủ hộ = con gái
Thông báo “Tách hộ khẩu thành công”
4 Chủ hộ hiện tại TQB001
Mã khu vực = TQB Địa chỉ = Hai bà Trưng,
Mã hộ khẩu mới TQB010
Những người ở hộ mới: null
Thông báo “Tách hộ khẩu thành công”
6.1.8 Kiểm thử cho chức năng 8
Bảng 8 : Kết quả kiểm thử chức năng Chuyển đi.
STT input output Exception Kết quả
Tên chủ hộ = Trinh Văn
Mã khu vực = HN03 Địa chỉ hiện tại = Thanh
Nhàn, Hai bà Trưng, Hà
Nội Địa chỉ chuyển đến = null
Lý do chuyển đi = null
Thông báo “Vui lòng nhập hết các trường bắt buộc”
Tên chủ hộ = Trinh Văn
Mã khu vực = HN03 Địa chỉ hiện tại = Thanh
Nhàn, Hai bà Trưng, Hà
Nội Địa chỉ chuyển đến NGhệ An
Lý do chuyển đi = Công tác lâu năm
Quay lại trang hộ khẩu
6.1.9 Kiểm thử cho chức năng 9
Bảng 9 : Kết quả kiểm thử chức năng Thống kê.
STT input output Exception Kết quả
Thông báo “Vui lòng nhập đúng khoảng độ tuổi”
2 Từ tuổi = abc Đến tuổi = s
Từ năm = zzz Đến năm = ttt
Thông báo “Vui lòng nhập đúng kiểu dữ liệu!!”
3 Từ độ tuổi = 10 Đến độ tuổi = 50
Hiển thị thông tin danh sách tạm trú
Từ năm = null Đến năm = null
Trạng thái = Tạm trú từ 10 – 50 tuổi
4 Từ độ tuổi = null Đến độ tuổi = null
Từ năm = null Đến năm = null
Hiển thị thông tin danh sách nhân khẩu trên địa bàn
6.1.10 Kiểm thử cho chức năng 10
Chức năng: Thêm mới phản ánh.
Bảng 10 : Kết quả kiểm thử chức năng Thêm mới phản ánh.
STT input output Exception Kết quả
Thông báo “Vui lòng nhập hết các trường bắt buộc”
Lý do = Cây xoan đâu đổ giữa đường
Thông báo “Thêm mới phản ánh thành công” và quay lại trang phản ánh, và thêm phản ánh đó vào
6.1.11 Kiểm thử cho chức năng 11
Chức năng: Xử lý phản ánh.
Bảng 11 : Kết quả kiểm thử chức năng Xử lý phản ánh.
STT input output Exception Kết quả
1 Nhấp chuột vào button “Duyệt”
Thay đổi text của button thành “Đã duyệt”
2 Nhấp chuột vào Thay đổi text của button Không xử Ok button “Xóa” thành “Đã xóa” lý
3 Click chuột vào button “Duyệt.”
Nếu button xóa có text là
“Đã xóa” thì chuyển sang thành “Xóa” và Thay đổi text của button duyệt thành “Đã duyệt”
4 Click chuột vào button “Xóa.”
Nếu button duyệt có text là
“Đã duyệt” thì chuyển sang thành “Duyệt” và Thay đổi text của button xóa thành “Đã xóa”
6.1.12 Kiểm thử yêu cầu phi chức năng Đánh giá chương trình: Chương trình chạy tương đối chính xác với các dữ liệu đầu vào không có tính đặc biệt, thời gian phản hồi nhanh Tuy nhiên còn có lỗi nhỏ như các trường dữ liệu chính có thể bị trùng và ảnh hưởng đến kết quả các phần khác
Tổng có 11 yêu cầu kiểm thử, kết quả pass hầu hết các kiểm thử đặt ra, có một số trường hợp trong các kiểm thử chưa vượt qua:
chức năng 6: Không qua test 1 vì các hộ khẩu có maHoKhau khác nhau và khi trùng sẽ có lỗi và chương trình chưa xử lý được
chức năng 7: Không qua test 2 vì các hộ khẩu có maHoKhau khác nhau và khi trùng sẽ có lỗi và chương trình chưa xử lý được
Chức năng 9: Không qua test 1 vì trường tuTuoi < denTuoi, chương trình không thiết lập trường hợp này và chạy với khoảng bất kỳ
Chức năng 11: Không qua test 3,4
HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG
Hướng dẫn cài đặt
- Để sử dụng phần mềm cần phải có môi trường chạy Java.
- Ngoài ra có 1 số thư viện thêm đi kèm như: JavaFX, MySQL connector
- Tải về MySQL và 1 công cụ trực quan hóa giúp quan sát cơ sở dữ liệu tốt hơn
Đối tượng, phạm vi sử dụng
- Đối tượng sử dụng phần mềm: tổ trưởng, cán bộ, những đối tượng muốn quản lý dân cư cho các khu phố
- Phạm vi sử dụng phần mềm: dành quản lý dân cư cho những khu phố
Xác định các yêu cầu cài đặt
- Có thư viện javafx, mysql connector
- Hệ điều hành: bất cứ hệ điều hành nào
- Không yêu cầu cấu hình phần cứng cao, dùng được là được
Hướng dẫn chi tiết các bước cài đặt
Tải về MySQL Server tại https://dev.mysql.com/downloads/mysql/, có thể cài đặt 1 công cụ trực quan hóa để quan sát cơ sở dữ liệu tốt hơn ( ví dụ XAMPP hoặc Workbench) Sau đó import file cơ sở dữ liệu trong thư mục database vào cơ sở dữ liệu.
Chỉnh sửa trong class service MysqlConnector mật khẩu phù hợp với mật khẩu mà đã được đặt cho MySQL server.
Tải về thư viện OpenJFX mới nhất tại trang chủ https://gluonhq.com/products/javafx/
Tải về thư viện MySQL connector từ 8.0 trở lên, có thể tải thư viện tại https://mvnrepository.com/artifact/mysql/mysql- connector-java/8.0.22
Import tất cả vào thư viện trong Project sau đó bắt đầu chạy.
Hướng dẫn sử dụng phần mềm
o Phần mềm dùng cho tổ trưởng dân phố để quản lý thông tin dân cư trong khu phố Phần mềm có 4 chức năng chính là quản lý nhân khẩu, quản lý hộ khẩu, thống kê, và phản ánh Mỗi chức năng quản lý nhân khẩu, hộ khẩu, phản ánh đều có những chức năng con như thêm, sửa, tìm kiếm thông tin, phần thống kê có chức năng tìm kiếm, lọc thông tin. o Để sử dụng chức năng nào nhấn trực tiếp vào chức năng đó và sử dụng.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Kết thúc quá trình phát triển phần mềm, đa số đã hoàn thành được những yêu cầu đã đặt ra trước đó của nhóm như là giúp xây dựng một phần mềm quản lý dân cư đơn giản, dễ sử dụng, công khai và minh bạch các thông tin Những chức năng quản lý nhân khẩu, hộ khẩu, thống kê, phản ánh đều hỗ trợ thêm, tìm kiếm thông tin, lọc thông tin, các chức năng đều dễ sử dụng.
Tuy nhiên, do thời gian có hạn nên trong quá trình phát triển cũng còn
1 số phần mà chưa được hợp lý mà chưa thể sửa chữa ngay Trong phần quản lý nhân khẩu, hộ khẩu, phản ánh chưa có phần xóa và chỉnh sửa thông tin trên giao diện Ngoài ra, còn một số lỗi nho nhỏ khác mà nhóm có thể chưa phát hiện ra Phần mềm nếu hoạt động trên các cơ sở dữ liệu lớn thì sẽ bị chậm.
Trong tương lai, nhóm chúng em sẽ cố gắng hoàn thiện phát triển phần mềm để mang lại một phần mềm có trải nghiệm tốt hơn, khắc phục được những nhược điểm bên trên Nếu có điều kiện cho phép về thời gian, nhân lực nhóm có thể phát triển phần mềm thêm nhiều chức năng khác để giúp đơn giản hóa các công việc được thực hiện thủ công rất mệt mỏi và dễ bị nhầm lẫn.
[1] Slide giảng dạy môn “Nhập môn công nghệ phần mềm” do thầy Nguyễn Mạnh Tuấn giảng dạy.
[2] Java Fx Overview (JavaFX 8) (oracle.com)
[3] Usecase diagram https://www.visual-paradigm.com/guide/uml-unified- modeling-language/what-is-use-case-diagram
[4] Sequence diagram UML Sequence Diagram Tutorial | Lucidchart
[5] Entity relation diagram Entity Relationship Diagram (ERD) - What is an
[6] Class diagram What is Class Diagram? (visual-paradigm.com)