CHƯƠNG 4 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
4.5 Đặc tả Use-case
4.5.9 Dự thảo văn bản
Tên Usecase: Dự thảo văn bản ký số Mức độ BMT: B
Tác nhân chính: chuyên viên Tác nhân phụ: Hệ thống
Mô tả Usecase: Cho phép người dùng thực hiện dự thảo các file văn bản cho các dịch vụ lên hệ thống để thực hiện ký số văn bản.
Điều kiện để bắt đầu Use-case (Pre-Condition): Người dùng đã đăng nhập
vào hệ thống
Điều kiện để kết thúc Use-case (Post Condition): Dự thảo thành công văn
bản ký số lên hệ thống
Trình tự các sự kiện:
Bước 1: Người dùng thực hiện lựa chọn các tham số trong giao diện “Dự
thảo văn bản” để thực hiện upload:
Bước 2: Người dùng thực hiện kích vào “Dự thảo văn bản”.
Bước 3: Hệ thống thực hiện kiểm tra các điều kiện theo quy định: chỉ tổn
tại duy nhất 1 văn bản trên hệ thống, khoảng trắng của văn bản đủ để hiển thị CKS.
➢ Nếu thỏa mãn, thực hiện upload văn bản lên server, ghi log vào DB đồng thời thực hiện cảnh báo thành công cho người dùng.
44
➢ Nếu không thỏa mãn, thực hiện cảnh báo lỗi ở bước nào cho người dùng.
- Sơ đồ luồng:
Kết thúc Bắt đầu
Người dùng chọn dự thảo văn bản trong menu “văn bản”
Hiển thị popup lỗi cho người dùng, bắn message lỗi cho quản trị viên
Hiển thị popup message thông báo thành công
Bấm nút chuyển xử lý Chọn văn bản tải lên và nhập thông tin
trên giao diện trang web
45
4.5.10 Download văn bản.
Tên Usecase: Download văn bản Mức độ BMT: B
Tác nhân chính: Tất cả các tác nhân Tác nhân phụ: Hệ thống
Mô tả Usecase: Cho phép người dùng tải văn bản ký số trên hệ thống về máy cá nhân
Điều kiện để bắt đầu Use-case (Pre-Condition): Người dùng đã đăng nhập
vào hệ thống
Điều kiện để kết thúc Use-case (Post Condition): Tải thành công văn bản ký
số về máy tính cá nhân user.
Trình tự các sự kiện:
Bước 1: Người dùng chọn các văn bản cần download trên bảng danh sách
các văn bản và chọn chức năng “Download” trên giao diện.
Bước 2: Chương trình thực hiện kiểm tra các văn bản mà người dùng chọn:
➢ Nếu số lượng văn bản đã chọn =0 thì cảnh báo cho người dùng
46
Bước 3: Chương trình kiểm tra số lượng văn bản download để nén file
➢ Nếu số lượng văn bản =1 thì thực hiện download file
➢ Nếu số lượng văn bản >1 thì chuyển sang bước 4
Bước 4: Chương trình thực hiện zip các file và thực hiện download file zip - Sơ đồ luồng:
Kết thúc Bắt đầu
Người dùng chọn văn bản cần ký trong danh sách biên bản chờ ký
Nguời dùng bấm vào nút “download văn bản”
Kiểm tra số lượng văn bản được chọn
có lớn hơn 0? Cảnh báo cho người dùng lỗi
Download văn bản
4.5.11 Xem văn bản.
Tên Usecase: Xem văn bản Mức độ BMT: B
Tác nhân chính: Tất cả các tác nhân Tác nhân phụ: Hệ thống
Mô tả Usecase: Cho phép người dùng xem trực tiếp văn bản ký số trên hệ thống
Điều kiện để bắt đầu Use-case (Pre-Condition): Người dùng đã đăng nhập
vào hệ thống
Điều kiện để kết thúc Use-case (Post Condition): Văn bản ký số hiển thị trên
giao diện web của user.
Trình tự các sự kiện:
Bước 1: Người dùng chọn văn bản cần xem thơng qua chức năng tích chọn
văn bản trên báo cáo danh sách văn bản và chọn chức năng “Xem văn bản”
Bước 2: Chương trình kiểm tra số lượng văn bản người dùng đã chọn.
➢ Nếu số văn bản >1 hoặc =0 thì chương trình thơng báo lỗi cho người dùng. Do chỉ cho phép xem 1 văn bản tại 1 lần.
47
Bước 3: Chương trình truyền dữ liệu cho trình duyệt hiển thị file - Sơ đồ luồng:
Kết thúc Bắt đầu
Người dùng chọn văn bản cần ký trong danh sách biên bản chờ ký
Nguời dùng bấm vào nút “xem văn bản”
Kiểm tra số lượng văn bản được chọn
có lớn hơn 0? Cảnh báo cho người dùng lỗi
Mở văn bản trên trình duyệt web đang sử dụng của người dùng
4.6 Cơ sở dữ liệu
4.6.1 Biểu đồ lớp tổng quát
Sau khi nghiên cứu và phân tích Usecase tổng quan, cùng với định hướng phát triển ứng dụng theo mơ hình MVC, để thực hiện đơn giản hóa việc quản lý các đối tác trên hệ thống ta sẽ thiết kế các đối tượng Model sau để lưu trữ thông tin về các object trên ứng dụng:
- Đối tượng Vanban: chứa các thông tin của 1 văn bản: ID, file_name,
file_owner, note, file_path….
- Đối tượng dichvu: chứa các thông tin của 1 dịch vụ được quản lý trên hệ thống: ID, id_flow, id_user, start_date…
- Đối tượng Nguoidung: thực hiên lưu trữ và quản lý các thông tin của 1 người dùng: ID, user, pass, email, số điện thoại, chứng thư số…
- Đối tượng luongky: mô tả thông tin về cây từ điển phục vụ ký 1 văn bản cho 1 dịch vụ, các thông tin bao gồm: ID, step, id_user, import_date…
- Đối tượng logkyso: lưu trữ các thông tin về việc xử lý biên bản, mục đích là quản lý lịch sử tác động lên biên bản, các thông tin của đối tượng: ID, id_user, id_vanban, import_date.
48
- DatabaseControl: class control trong mơ hình MVC, Class này quản lý tất cả các yêu cầu mà các class Control khác cần tương tác đến database: update thông tin văn bản, lấy danh sách văn bản, lấy danh sách luồng, update thông tin luồng, lấy thông tin dịch vụ, update thông tin dịch vụ, lấy thông tin người dùng, update thông tin người dùng. Trong class này sẽ chứa các phương thức: update_van bản, update_user, update_dichvu, update_luongky, getUser, editUser, edit_dichvu, edit_luong….
Với từng chức nhóm chức năng: đăng nhập, quản lý văn bản, quản lý luồng, quản lý dịch vụ chúng ta sẽ thiết kế tương ứng 1 class control để xử lý các yêu cầu của nhóm chức năng này, từ đó ta có các class control:
- LoginControl: class control trong mơ hình MVC, vai trị chính của của LoginControl là quản lý truy cập ứng dụng, quản lý phiên của người dùng. Thực hiện các u cầu kiểm tra thơng tin tài khoản, tính hợp lệ của mã OTP.
- LuongControl: class control trong mơ hình MVC, thực hiện quản lý luồng xử lý văn bản trên hệ thống, cho phép thực hiện các chức năng thêm-sửa-xóa luồng trên hệ thống.
- VanbanControl: class control trong mơ hình MVC, thực hiện quản lý các văn bản. Thực hiện các chức năng tương tác với văn bản:
✓ Ký văn bản
✓ Từ chối văn bản
✓ Xem văn bản
✓ Download văn bản
✓ Dự thảo văn bản
Khi có 1 u cầu từ các view thì mỗi 1 view sẽ tương ứng với 1 control riêng, tuy nhiên tất cả các control này đều sử dụng chung 1 class control DatabaseControl để thực hiện tương tác với database.
Để đảm bảo an toàn lưu trữ cho các văn bản, khi log văn bản đã hình thành thì cần được lưu trữ các thơng tin đi kèm bắt buộc là mã người dùng, mã văn bản do đó hình thành quan hệ Generalization giữa: class nguoidung và logkyso, vanban và logkyso.
Từ những phân tích trên, đã đưa đến việc xây dựng và hoàn thành biểu đồ lớp tổng quát như sau:
49
Hình 4.6: Biểu đồ lớp tổng quát
4.6.2 Bảng LOGKYSO
a. Thông tin trường
Bảng 4.1: Bảng log ký văn bản
STT Tên trường Kiểu dữ
liệu
index Bắt buộc
có dữ liệu
Mô tả
1 ID number x
2 ID_USER number x x Id của user, khóa chính trong bảng user
3 ID_REPORT number x x Id của văn bản, khóa chính trong bảng văn bản
4 TYPE number x x Loại xử lý:
0: dự thảo văn bản 1: Ký số sử dụng usbtokend
50
b. Index
Bảng 4.2: Index của bảng log ký văn bản
STT Tên index Kiểu index Tên trường
1 IDX1_ Log_ky_so NORMAL ID_USER 2 IDX2_ Log_ky_so NORMAL ID_REPORT
c. Contraint
Bảng 4.3: Contraint của bảng log ký văn bản
STT Tên constraint Kiểu
constraint
Tên trường Tên bảng quan hệ
Tên trường quan hệ
1 Log_ky_so_PK foreign key ID_REPORT VANBAN id 3 Log_ky_so _FK_1 foreign key ID_USER NGUOIDUNG id
4.6.3 Bảng LUONGKY
a. Thông tin trường
Bảng 4.4: Bảng luồng ký văn bản
STT Tên trường Kiểu dữ liệu index Bắt buộc
có dữ liệu
Mơ tả
1 ID number x
2 STEP varchar2(4000) x Luồng xử lý
văn bản 3 STEP_HK Varchar2(4000)
4 Id_user number x Id của user định
nghĩa luồng
5 Import_date Date Thời gian cập
nhật gần nhất của luồng
b. Contraint
Bảng 4.5: Contraint bảng luồng ký văn bản
STT Tên constraint Kiểu
constraint
Tên trường Tên bảng
quan hệ
Tên trường quan hệ
51
4.6.4 Bảng NGUOIDUNG
a. Thông tin trường
Bảng 4.6: Bảng tài khoản người dùng
STT Tên trường Kiểu dữ liệu index Partition Bắt
buộc có dữ liệu Mơ tả 1 ID number x ID user
2 GROUPUSER varchar2(10) Nhóm người
dùng
3 USERNAME varchar2(4000) X User người sử
dụng
4 PASSWORD varchar2(4000) Mật khẩu
5 CERNUMBER varchar2(4000) X Serial chứng
thư số
6 EMAIL varchar2(4000) X Email người
dùng
7 MOBIFONENUMBER varchar2(4000) X SĐT người
dùng
8 PAGE varchar2(4000) X Các trang
được phân quyền truy cập
4.6.5 Bảng DICHVU.
a. Thông tin trường
Bảng 4.7: Bảng dịch vụ
STT Tên trường Kiểu dữ liệu index Bắt buộc
có dữ liệu
Mơ tả
1 ID number x
2 Id_follow number x Mã luồng ký
52
4 Start_date date x Thời gian bắt đầu dịch
vụ
5 End_date date x Thời gian kết thúc dịch
vụ 6 importdate Date
7 Group_content varchar2(4000) Nhóm nội dung dịch vụ 10 Service_name varchar2(4000)
b. Contraint
Bảng 4.8: Contraint bảng dịch vụ
STT Tên constraint Kiểu
constraint
Tên trường Tên bảng
quan hệ
Tên trường quan hệ
1 DICHVUFK_1 foreign key ID_FLOW LUONGKY ID
2 DICHVUFK_2 foreign key ID_USER NGUOIDUNG ID
4.6.6 Bảng VANBAN
a. Thông tin trường
Bảng 4.9: Bảng quản lý văn bản
STT Tên trường Kiểu dữ liệu index Bắt buộc
có dữ liệu
Mơ tả
1 ID number x Mã văn bản
2 OWNER varchar2(4000) Người dự thảo văn
bản
3 FILE_NAME varchar2(4000) x x Tên file văn bản 4 HISTORY varchar2(4000) x Lịch sử tác động
văn bản
6 NOTE varchar2(4000) Note
8 TYPE varchar2(4000) Loại hình văn bản:
- chính thức - tạm tính -bổ sung
53
10 PROCESS varchar2(4000) x Trạng thái xử lý văn bản
11 FILE_PATH varchar2(4000) x Đường dẫn file văn bản
12 FILE_PATH_ATT varchar2(4000) Đường dẫn file attach
13 FILE_NAME_ATT varchar2(4000) Tên file attach 14 NEXT_PERSON varchar2(400) Người xử lý tiếp
theo
15 ID_FLOW number x ID luồng xử lý văn
bản
b. Contraint
Bảng 4.10: Contraint bảng quản lý văn bản
STT Tên constraint Kiểu
constraint
Tên trường Tên bảng
quan hệ
Tên trường quan hệ
1 VANBANFK foreign key ID_FLOW LUONGKY ID
4.6.7 Mơ hình thực thể liên kết
54