Professional Documents
Culture Documents
Dịch vụ in thông minh dành cho sinh viên Bách Khoa HCM
Nhóm: L03 - 12
Mục lục
1 Tìm hiểu yêu cầu dự án HCMUT_SSPS 4
1.1 Mô tả dự án . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1 Domain context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2 Các bên liên quan và nhu cầu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Lợi ích HCMUT-SSPS mang đến cho những bên liên quan . . . . . . . . . . . . . . . . . . 5
1.3 Yêu cầu chức năng - Yêu cầu phi chức năng . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 Functional requirement - Yêu cầu chức năng . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2 Non-functional requirements - Yêu cầu phi chức năng . . . . . . . . . . . . . . . . 6
1.4 Use-case diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.1 Toàn bộ hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.2 Nhóm tính năng tài khoản người dùng . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.2.a Tính năng đăng ký, đăng nhập, quên mật khẩu . . . . . . . . . . . 9
1.4.2.b Tính năng cập nhật thông tin cá nhân . . . . . . . . . . . . . . . . 11
1.4.3 Tính năng Tra cứu thông tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.4 Tính năng Đặt lịch in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4.5 Tính năng Quản lý Máy in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3 Architecture Design 35
3.1 Layered architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2 Component Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.1 View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4 Implementation - Sprint 1 38
4.1 Github . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2 Tiến hành kiểm tra khả năng sử dụng với giao diện người dùng . . . . . . . . . . . . . . . 38
4.2.1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.2 Các nhiệm vụ cần thực hiện . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.2.a Đăng ký . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.2.b Đăng nhập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.2.c Xem lịch sử in ấn . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2.2.d Xem lịch sử mua trang . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.3 Chiến lược thử nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.4 Tiến hành kiểm thử . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.5 Kết quả . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 1/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Tài liệu 43
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 2/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 3/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
• Sinh viên sẽ tiết kiệm được thời gian khi sử dụng HCMUT_SSPS thay vì đi in ấn thủ công như
trước kia. Sinh viên có thể chọn trước ngày in và sẽ được thông báo khi đã in xong để đến lấy tài
liệu, nhờ đó sinh viên sẽ tiết kiệm được thời gian và công sức xếp hàng cũng như chờ đợi in.
• Sinh viên có thể in tài liệu ở bất cứ đâu, mọi lúc thay vì đến nơi in cụ thể.
• Sinh viên có thể gửi tài liệu in từ xa, tùy chọn định dạng cho các loại dữ liệu. Đồng thời, sinh viên
có thể hạn chế các lỗi khi gửi file qua HCMUT_SSPS thay vì các ứng dụng như Facebook hay
Zalo.
• Sinh viên có thể hiệu chỉnh các thông số in sao cho phù hợp với nhu cầu của bản thân. Hệ thống
có thể cung cấp tùy chọn điều chỉnh chất lượng in ấn, màu sắc và kích thước giấy, giúp đảm bảo
tài liệu in ra đáp ứng các tiêu chuẩn chất lượng.
• Sinh viên sẽ được cấp một số lượng trang in nhất định từ nhà trường khi sử dụng HCMUT_SSPS,
nâng cao trải nghiệm của sinh viên khi học tại trường. Ngoài ra, sinh viên cũng có thể tiếp tục mua
trang in khi sử dụng hết số trang mặc định với mức giá hợp lí và ổn định, việc thanh toán thông
qua BKPay sẽ hỗ trợ sinh viên thanh toán trực tuyến, giúp sinh viên thuận tiện hơn trong việc
thanh toán.
• Sinh viên sẽ có nơi lưu trữ tài liệu để in. Sinh viên có thể upload tài liệu và chọn in khi có nhu cầu.
Hệ thống cũng sẽ hỗ trợ sinh viên in lại các tài liệu đã in.
• Ứng dụng cho phép sinh viên theo dõi và quản lý số lượng bản in, tình trạng in ấn, và lịch sử in ấn
một cách dễ dàng.
• Sinh viên sẽ được bảo mật thông tin tài liệu hơn đi in ở ngoài.
• Hệ thống có thể được mở rộng và tích hợp với các hệ thống khác của trường trong thời gian sắp
tới.
HCMUT_SSPS tương thích với môi trường đại học hiện đại, nơi sinh viên thường xuyên cần in tài liệu
để làm việc nghiên cứu, học tập và các nhiệm vụ khác. Hệ thống này bao gồm một số máy in đặt tại các
vị trí chiến lược trên toàn bộ các cơ sở của trường. Từ đó, hệ thống cung cấp các tiện nghi cho người sử
dụng. Hệ thống nhóm thực hiện có các chức năng sau:
• Chức năng đặt và hủy lịch in: Sinh viên sau khi đăng nhập sẽ được đặt hẹn lịch in để phù hợp với
thời gian cá nhân. Nếu như sinh viên có việc bận đột xuất không thể đến in theo như lịch hẹn thì
hệ thống cũng cung cấp chức năng hủy lịch in, khi đó sinh viên có thể chọn hủy lịch, hệ thống sẽ
xóa lịch in của sinh viên
• Chức năng cập nhật thông tin cá nhân: Ở chức năng này, sinh viên sẽ được điều chỉnh thông tin
của mình. Cụ thể hơn, sau khi đăng nhập, sinh viên sẽ được chọn thông tin muốn chỉnh sửa và sau
đó điền mới thông tin. Chức năng này giúp sinh viên cập nhật thông tin mới nhất của mình, làm
cho thông tin được chính xác và phù hợp với sinh viên.
• Chức năng tra cứu thông tin: Ở chức năng này, hệ thống giúp sinh viên xem lại thông tin, các
thông tin có thể kể đến như xem lịch sử in ấn, xem số trang còn lại bị giới hạn, xem lịch sử mua
trang in...Chức năng này giúp sinh viên theo dõi chính xác được thông tin của mình
• Chức năng thanh toán: Chức năng này giúp sinh viên thanh toán sau khi mua trang in.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 4/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
1.2 Lợi ích HCMUT-SSPS mang đến cho những bên liên quan
• Sinh viên: HCMUT_SSPS đem lại cho sinh viên giải pháp in ấn tiện lợi, nhanh chóng và tiết kiệm
thời gian. Họ có thể dễ dàng in tài liệu và có thể theo dõi lịch sử in ấn của mình. Ngoài ra, tính
năng mua thêm trang in cho phép họ quản lý ngân sách in ấn cá nhân một cách hiệu quả hơn.
• SPSO: Hệ thống tối ưu hóa công việc quản lý cho SPSO. SPSO có thể quản lý máy in và cấu hình
hệ thống dễ dàng hơn, đồng thời có thể theo dõi hoạt động in ấn của sinh viên và quản lý các tài
liệu được in. Bên cạnh đó việc có thể xem báo cáo định kì giúp đảm bảo hệ thống hoạt động hiệu
quả.
• Ban quản lý trường HCMUT: Thông qua hệ thống dịch vụ này giúp cải thiện trải nghiệm học tập
của sinh viên và nâng cao hình ảnh của trường về việc đảm bảo dịch vụ sinh viên và với dự án
công nghệ tiên tiến như HCMUT_SSPS. Hệ thống cho phép trường xem báo cáo định kì hỗ trợ
việc kiểm tra, lập kế hoạch và phân bổ nguồn lực một cách hợp lý.
• BKPay: Nhờ việc tích hợp việc thanh toán trực tuyến vào dịch vụ làm tăng mức sử dụng của nền
tảng.
• HCMUT_SSO Authentication Service: HCMUT_SSPS sử dụng SSO có thể xem xét, đánh giá các
tính xác thực, bảo mật.
• Nhà cung cấp thiết bị: Dịch vụ HCMUT_SSPS có thể tăng nhu cầu sử dụng các thiết bị dẫn đến
thiết lập mỗi quan hệ ổn định và lâu dài.
1.3 Yêu cầu chức năng - Yêu cầu phi chức năng
1.3.1 Functional requirement - Yêu cầu chức năng
Các yêu cầu chức năng gồm có:
• Sinh viên:
1. Đăng nhập được qua dịch vụ xác thực của nhà trường
2. Xem danh sách máy in đang có.
3. Đặt lịch in và hủy lịch in.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 5/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 6/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
1. Thời gian xử lý giao dịch thanh toán, in tài liệu không quá 2 giây.
2. Thời gian phản hồi của 80% transaction dài không quá 1500 mili giây kể từ lúc user gửi yêu
cầu
3. Thời gian load các component trong trang cũng như giữa các Routers nhanh
4. Khi có số lượng sinh viên truy cập quá giới hạn cho phép, hệ thống sẽ tự động điều chỉnh và
quản lý tải để đảm bảo hiệu suất trang web không bị ảnh hưởng
1. Tổng kích thước của các files tải xuống thiết bị không vượt quá 200MB
• Localization/ Khu vực
1. Trang web hỗ trợ giao diện tiếng Việt, có thể chuyển đổi sang tiếng Anh trong tương lai.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 7/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 8/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 9/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 10/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 11/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 12/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Case C: Xem lịch sử mua trang Hệ thống sẽ hiện danh sách các đơn mua
trang
3.1 Sinh viên thực hiện tìm kiếm đơn hàng mua trang trên thanh tìm kiếm,
trên thanh filter trên màn hình (tìm kiếm theo thời gian, số lượng trang mua
3.2 Sinh viên chọn đơn hàng muốn xem. Hệ thống sẽ hiển thị thông tin đơn
hàng
3.3 (Tùy chọn) Sinh viên có thể chọn in hóa đơn cho đơn mua đó
Alternative Flows:
Exceptions: Case A - 3.1 Hệ thống sẽ thông báo đến sinh viên nếu trang mua không
hợp lệ.
usecase quay lại bước Case A - 3.1
Note and issues:
Bảng 5: Đặc tả use-case Tra cứu thông tin
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 13/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 14/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 15/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Quá trình bắt đầu khi người dùng đã đăng nhập thành công vào hệ thống. Người dùng sau đó chọn
tùy chọn "Cập nhật thông tin cá nhân." Hệ thống tiếp theo gửi yêu cầu tới cơ sở dữ liệu để truy vấn
thông tin cá nhân.
Sau khi cơ sở dữ liệu thực hiện truy vấn, hệ thống hiển thị danh mục thông tin cá nhân, bao gồm
các mục như họ và tên, địa chỉ, số điện thoại, và nhiều mục khác. Người dùng có thể chỉnh sửa thông tin
theo mong muốn của họ.
Khi người dùng hoàn thành chỉnh sửa, hệ thống yêu cầu xác nhận bằng mật khẩu. Người dùng cần
nhập mật khẩu để tiếp tục quá trình.
Hệ thống sau đó kiểm tra mật khẩu mà người dùng đã nhập và gửi yêu cầu đến cơ sở dữ liệu để xác
minh mật khẩu. Cơ sở dữ liệu thực hiện xác minh này.
Nếu mật khẩu không chính xác (1), hệ thống sẽ hiển thị thông báo lỗi và quay lại bước người dùng
nhập mật khẩu để cung cấp mật khẩu chính xác.
Nếu mật khẩu được xác minh là chính xác (2), hệ thống sẽ hiển thị thông báo mật khẩu chính xác
và quá trình kết thúc (End).
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 16/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Quá trình bắt đầu khi người dùng (User) thực hiện đăng nhập vào hệ thống (1) và sau đó chọn tùy
chọn "Cập nhật thông tin cá nhân" (2).
Người dùng (User) sau đó tương tác với trình duyệt (Browser) để gửi yêu cầu (3) đến Dispatcher
Controller (:DispatcherController). Dispatcher Controller thực hiện forward yêu cầu (4) đến UserCon-
troller (:UserController) để kiểm tra thông tin người dùng (5). UserController sẽ tiếp tục truy vấn thông
tin trong UserDAO (:UserDAO) bằng cách gọi executeQuery (6), và thông tin này được truy vấn từ cơ
sở dữ liệu (Database) (7) rồi trả về UserDAO .
UserDAO sau đó gửi danh mục thông tin người dùng (8) đến giao diện View (:View), và View trả về
mã HTML (9) cho trình duyệt (Browser). Trình duyệt hiển thị danh mục thông tin cá nhân cho người
dùng (10), sau đó người dùng có thể chỉnh sửa thông tin cá nhân (10).
Sau khi chỉnh sửa, người dùng xác nhận thay đổi (11), sau đó nhập mật khẩu để xác nhận (12). Trình
duyệt (Browser) kiểm tra mật khẩu (13) và gửi yêu cầu đến Dispatcher Controller (:DispatcherController).
Dispatcher Controller chuyển tiếp yêu cầu này (14) đến UserController (:UserController) để kiểm tra mật
khẩu (15).
UserController sau đó gọi UserDAO để kiểm tra mật khẩu bằng cách thực hiện executeQuery (16)
trên cơ sở dữ liệu (Database) (17). Kết quả kiểm tra mật khẩu được trả về và kiểm tra bởi UserController
(15). Nếu mật khẩu không chính xác, UserController chuyển tiếp yêu cầu (18.1) để hiển thị thông báo
mật khẩu bị sai cho View, View trả về mã HTML (18.1.1) cho Browser. Trình duyệt yêu cầu người dùng
nhập lại mật khẩu (19.1).
Nếu mật khẩu được xác minh là chính xác, UserController chuyển tiếp yêu cầu (18.2)để hiển thị
thông báo mật khẩu nhập đúngcho View và View trả về mã HTML cho Browser. Browser hiển thị thay
đổi thành công cho User (19.2)
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 17/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Sinh viên chọn "Tra cứu thông tin", hệ thống sẽ hiển thị 3 sự lựa chọn: Mua trang in (1), Xem lịch
sử in (2), Xem lịch sử mua trang (3).
(1) Nếu sinh viên chọn "Mua trang in", hệ thống sẽ hiển thị các thông tin liên quan đến việc mua
trang và yêu cầu sinh viên nhập vào số lượng trang mua. Sinh viên nhập số trang cần mua và chọn xác
nhận (nếu số trang không hợp lệ, sinh viên được yêu cầu nhập lại số trang), hệ thống sẽ chuyển hướng
đến trang BKPay để sinh viên thực hiện thanh toán. Sau khi thanh toán thành công, hệ thống sẽ hiển
thị thông báo thanh toán thành công (nếu thanh toán thất bại, hệ thống sẽ hiển thị thông báo thanh
toán thất bại và chuyển hướng về lại bước mua trang).
(2) Nếu sinh viên chọn "Xem lịch sử in", hệ thống sẽ hiển thị danh sách lịch sử các lần in ấn của
sinh viên. Sinh viên có thể thực hiện tìm kiếm các lần in nhanh hơn bằng cách nhập vào khung tìm kiếm
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 18/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
với các thông tin in, hệ thống sẽ hiển thị các lần in ấn khớp với thông tin sinh viên nhập vào tìm kiếm.
(3) Nếu sinh viên chọn "Xem lịch sử mua trang", hệ thống sẽ hiển thị danh sách lịch sử các lần mua
trang của sinh viên (đơn hàng). Sinh viên cũng có thể thực hiện tìm kiếm các lần mua nhanh hơn bằng
cách nhập vào khung tìm kiếm với các thông tin đơn, hệ thống sẽ hiển thị các lần mua trang khớp với
thông tin sinh viên nhập vào tìm kiếm.
Khi User đăng nhập vào hệ thống và chọn tra cứu thông tin thì hệ thống sẽ trả về 3 lựa chọn cho
người dùng. Nếu người dùng chọn vào "Mua trang in" thì hệ thống hiển thị ô nhập số trang cần mua và
xác nhận thanh toán bằng BKPay. Nếu người dùng chọn "Xem lịch sử in ấn" thì hệ thống trả về list lịch
sử in ấn của người đó. Nếu người dùng chọn "Xem lịch sử mua trang" thì hệ thống sẽ trả về ngày mua
và số lượng trang mua của ngày đó.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 19/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Sinh viên chọn "In tài liệu" (Đặt lịch in), hệ thống sẽ hiển thị thời gian biểu làm việc của bên in.
Sau đó sinh viên chọn thời gian muốn in, hệ thống sẽ hiển thị các thôn tin liên quan đến lịch đặt in và
yêu cầu sinh viên thực hiên một số yêu cầu như chọn kích thước trang, số lượng trang in, số mặt in, số
bản in, chọn máy in và tải lên tài liệu. Với mỗi lần chọn hệ thống sẽ xác thực thông tin hợp lệ hay không.
Nếu hợp lệ thì sinh viên cứ tiếp tục chọn, nếu không hợp lệ sinh viên cần điền lại các thông tin cho lần
đặt in. Cuối cùng nếu hợp lệ hoàn toàn, sinh viên chọn xác nhận, hệ thống sẽ lưu lại lần đặt in cho sinh
viên.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 20/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Sinh viên chọn "In tài liệu" (Đặt lịch in) và chọn thời gian in, hệ thống sẽ gọi orderPrint() đến
printController, và controller sẽ truy cập database để trả về cho hệ thống xuất hiện trên giao diện các
thông tin cơ bản của lần đặt in (họ tên sinh viên, mã số sinh viên và thời gian in sinh viên đã chọn).
Sinh viên tiến hành tải lên tài liệu, hệ thống sẽ gọi uploadFile() đến controller và controller sẽ truy cập
database để xác nhận tài liệu có hợp lệ hay không (nếu không hợp lệ sinh viên cần tải tài liệu khác). Sau
đó sin viên chọn tiếp máy in và chọn địa điểm in, hệ thống sẽ gọi listPrinter() đến controller, controller
gọi getPrinter() đến printerModel, và model sẽ truy cập database và trả về danh sách các máy in phù
hợp với thời gian in và địa điểm sinh viên đã chọn. Sau đó sinh viên chọn các thuộc tính in khác, hệ
thống tiếp tục gọi propertiesPrint() đến controller, và controller sẽ truy vào database để xác thực thông
tin, và sẽ phản hồi lại có hợp lệ hay không. Nếu tất cả hợp lệ, sinh viên có thể xác nhận lịch đặt in.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 21/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
SPSO chọn "Quản lý máy in", hệ thống sẽ hiển thị danh sách các máy in. SPSO sẽ chọn hành động
muốn thực hiện: thêm máy in (1), xóa máy in (2), vô hiệu hóa máy in (3), kích hoạt máy in (4) tương
ứng với các máy in trong danh sách.
(1) Nếu SPSO chọn "Thêm máy in", hệ thống sẽ hiển thị các khung nhập các thôn tin cho máy in
mới, SPSO sẽ điền thông tin và xác nhận, hệ thông sẽ kiểm tra thông tin. Nếu hợp lệ thì thông tin máy
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 22/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
in mới sẽ được lưu lại, nếu không hợp lệ (máy in đã tồn tại, sai định dạng...) thì SPSO được yêu cầu điền
lại các thông tin không hợp lệ.
(2) Nếu SPSO chọn "Xóa máy in", hệ thống sẽ hiển thị thông báo đến SPSO để SPSO xác nhận xóa
máy in đã chọn, sau đó toàn bộ thông tin của máy in sẽ bị xóa.
(3) Nếu SPSO chọn "Vô hiệu hóa", hệ thống sẽ hiển thị thông báo đến SPSO để SPSO xác nhận vô
hiệu hóa máy in đã chọn (chỉ đối với các máy in đang hoạt động), sau đó máy in sẽ không còn nằm trong
danh sách được sinh viên lựa chọn để đặt lịch in nữa.
(4) Nếu SPSO chọn "Kích hoạt máy in", hệ thống sẽ hiển thị thông báo đến SPSO để SPSO xác
nhận kích hoạt máy in đã chọn (chỉ đối với các máy in đang bị vô hiệu hóa), sau đó máy in hoạt động
lại bình thường.
SPSO chọn "Quản lý cấu hình", hệ thống sẽ hiển thị các thông tin của hệ thống HCMUT_SSPS
(cấu hình). SPSO chọn "Chỉnh sửa", SPSO sẽ được yêu cầu điền mới thông tin cấu hình và xác nhận
lưu.
SPSO chọn "Quản lý máy in", hệ thống sẽ trả về hiện thị danh sách các máy in và các nút (chức
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 23/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
năng) "thêm máy in", "xóa", "vô hiệu hóa", "kích hoạt".
SPSO chọn "thêm máy in", hệ thống hiển thị các khung nhập cho SPSO điền thông tin. Sau khi
điền thông tin và xác nhận, hệ thống sẽ kiểm tra thông tin và phản hồi thông báo thành công hay thất
bại đến SPSO.
SPSO chọn "xóa", hệ thống sẽ yêu cầu SPSO xác nhận và sẽ xóa thông tin của máy in (xóa trong
database).
SPSO chọn "vô hiệu hóa", hệ thống sẽ yêu cầu SPSO xác nhận và cập nhật trạng thái máy in và ẩn
máy in đó khỏi danh sách máy in được lựa chọn khi sinh viên đặt lịch in.
SPSO chọn "kích hoạt", hệ thống sẽ yêu cầu SPSO xác nhận và cập nhật trạng thái máy in và hiển
thị lại máy in trong danh sách máy in được lựa chọn khi sinh viên đặt lịch in.
SPSPO chọn "Quản lý cấu hình", hệ thống sẽ trả về hiển thị các thông tin hệ thống HCMUT_SSPS.
SPSO chọn "chỉnh sửa", hệ thống sẽ yêu cầu SPSO điền mới thông tin và xác nhận. Sau đó hệ thống sẽ
cập nhật thông tin của cấu hình.
Nhóm thiết kế Class Diagram theo mô hình kiến trúc MVC ((Model-Controller-View).
• Tầng View: lắng nghe sự kiện, thu nhận dữ liệu và tương tác người dùng để chuyển đến Controller
xử lý; hiển thị dữ liệu do Controller chuyển giao từ Model lên, hiển thị các giao diện, biểu mẫu xác
nhận, thông báo, nhập liệu.
• Tầng Controller: xử lý sự kiện, điều khiển luồng dữ liệu, cập nhật giao diện.
• Tầng Model: lưu trữ dữ liệu hệ thống và cung cấp phương thức cơ bản xử lý logic nghiệp vụ.
• Printingconfiguration
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 24/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
• Printermodification
• Bookingprinting
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 25/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
• Systempreservedprintingpages
• Authentication module
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 26/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Link figma:
https://www.figma.com/file/kM9KAhJtVcI2kqRVlQIMTK/BTL-CNPM?type=design&node-id=0%3A1&
mode=design&t=nrRdDlZkgYQgLGZB-1
2.6.1 Đăng ký, Đăng nhập, Quên mật khẩu, Cập nhật thông tin cá nhân
Để có thể sử dụng Dịch vụ in ấn sinh viên HCMUT_SSPS, mỗi sinh viên cần có tài khoản được cấp
quyền từ phía nhà trường (Ban quản lý HCMUT) thông qua Email nhà trường cung cấp. Để có tài khoản,
sinh viên tiến hành đăng ký tài khoản tại trang Đăng ký. Sinh viên nhập đầy đủ các thông tin: Họ và
tên, Email (sử dụng email của trường cung cấp), Mã số sinh viên, Khoa, Số điện thoại, Ngày/tháng/năm
sinh, Mật khẩu. Sinh viên nhấn "Đăng ký", hệ thống sẽ xác thực các thông tin, dựa và Email để cấp
quyền và tạo tài khoản. Nếu hợp lệ, hệ thống sẽ chuyển hướng đến trang Đăng nhập, ngược lại sinh
viên cần nhập lại các thông tin trên.
Sau khi sinh viên đã có tài khoản, sinh viên tiến hành đăng nhập để có thể vào sử dụng dịch vụ.
Sinh viên nhập các thông tin: Tài khoản (Email hoặc Số điện thoại đã dùng để đăng ký tài khoản) và
Mật khẩu. Sinh viên nhấn "Đăng nhập", hệ thống sẽ xác thực các thông tin tài khoản và chuyển hướng
đến trang Trang chủ của hệ thống nếu hợp lệ và ngược lại sinh viên cần nhập lại thông tin đăng nhập.
Đối với lần đăng nhập đầu tiên, sau khi xác thực tài khoản hợp lệ, hệ thống sẽ chuyển hướng đến
HCMUT_SSO để xác thực lần nữa tài khoản.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 27/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Đối với việc đăng nhập thất bại do sai mật khẩu, sinh viên có thể chọn "Quên mật khẩu" để tiến
hành đổi mật khẩu mới tại trang Quên mật khẩu. Sinh viên cần nhập các thông tin: Tài khoản (Email
hoặc Số điện thoại đã dùng để đăng ký), Mật khẩu mới và Xác nhận lại mật khẩu (nhập lại mật khẩu
mới trên). Sinh viên chọn "Xác nhận", hệ thống xác thực thông tin tài khoản trên và xác thực thêm
Ngày/tháng/năm sinh của sinh viên. Sau khi xác nhận hợp lệ, mật khẩu mới của sinh viên đã được lưu,
sinh viên có thể tiến hành đăng nhập và ngược lại sinh viên cần nhập lại các thông tin trên.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 28/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Sau khi đã đăng nhập thành công vào hệ thống, tại trang Trang chủ, sinh viên nhấn vào ảnh đại
diện cá nhân, và chọn "Thông tin cá nhân" để xem thông tin cá nhân và tài khoản của mình (Hệ thống
chuyển hướng đến trang Thông tin cá nhân). Tại đây, sinh viên có thể xem các Thông tin cá nhân
gồm: Họ và tên, Mã số sinh viên, Khoa, Ngày/tháng/năm sinh, Phái, Địa chỉ và Thông tin tài khoản
gồm: Email, Số điện thoại, Mật khẩu, Số trang còn lại. Sinh viên có thể chọn "Đổi mật khẩu" để tiến
hành đổi mật khẩu tài khoản (Các bước tiến hành như Quên mật khẩu). Bên cạnh đó, sinh viên cũng
có thể cập nhật các thông tin cá nhân và thông tin tài khoản trên (trừ Số trang còn lại) bằng cách nhấn
vào "Cập nhật thông tin".
2.6.2 Tra cứu thông tin (Xem lịch sử in ấn, Xem lịch sử mua trang, Mua trang in)
Tại Trang chủ, sinh viên chọn "Tra cứu thông tin" trên thanh menu trái, tiếp tục chọn "Lịch sử
in ấn" để xem lịch sử in ấn của mình. Hệ thống sẽ chuyển hướng đến trang Lịch sử in ấn. Tại đây, hệ
thống sẽ hiển thị danh sách các lần in của sinh viên với các thông tin: Mã in, Thời gian, Máy in và Tài
liệu. Sinh viên có thể tìm kiếm nhanh lần in muốn xem dựa vào thời gian, máy in hoặc tài liệu bằng cách
nhập vào 3 thanh lọc phía trên danh sách. Để có thể xem chi tiết hơn về lịch sử in ấn, sinh viên nhấn
chọn biểu tượng ba chấm ở phía bên phải danh sách, hệ thống sẽ hiển thị các thông tin chi tiết như: Mã
in, Họ và tên (Sinh viên), Mã số sinh viên, Thời gian, Máy in, Tài liệu, Loại tệp (Type), số trang A3, số
trang A4.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 29/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Tại Trang chủ, sinh viên chọn "Tra cứu thông tin" trên thanh menu trái, tiếp tục chọn "Lịch sử
mua trang" để xem lịch sử mua trang của mình. Hệ thống sẽ chuyển hướng đến trang Lịch sử mua
trang. Tại đây, hệ thống sẽ hiển thị danh sách các lần mua trang của sinh viên với các thông tin: Mã
đơn mua, Thời gian, Số trang mua (quy đổi ra A4) và Tổng tiền. Sinh viên có thể tìm kiếm nhanh lần
in muốn xem dựa vào thời gian, mã đơn hoặc số lượng trang bằng cách nhập vào 3 thanh lọc tương ứng
phía trên danh sách. Để có thể xem chi tiết hơn về lịch sử mua trang, sinh viên nhấn chọn biểu tượng
ba chấm ở phía bên phải danh sách, hệ thống sẽ hiển thị các thông tin chi tiết như: Mã đơn, Họ và tên
(Sinh viên), Mã số sinh viên, Thời gian, Số lượng trang mua A4 và Tổng tiền. Bên cạnh đó, sinh viên có
in hóa đơn cho đơn mua trang của mình bằng cách nhân vào "In hóa đơn" ở bên dưới.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 30/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Sinh viên có thể mua thêm trang in tại trang Mua trang in (chọn "Mua thêm trang" tại thanh
menu trái). Tại đây, sinh viên cần nhập số lượng trang muốn mua (tính theo trang A4). Sau khi nhập số
lượng trang muốn mua, hệ thống sẽ hiển thị tổng tiền cần thanh toán, sinh chọn "Thanh toán" để tiến
hành mua trang, hệ thống sẽ chuyển hướng sang BKPay.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 31/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 32/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
chi tiết hơn về các máy in, SPSO có thể chọn vào biểu tượng ba chấm phía bên phải danh sách máy in
tương ứng. Bên cạnh đó, SPSO có thể thực hiện các chức năng như thêm máy in, xóa máy in, vô hiệu
hóa máy in bằng cách nhấn vào "Thêm máy in", "Xóa", "Vô hiệu hóa" tương ứng với các máy in.
Khi chọn "Thêm máy in", SPSO cần nhập đủ các thông tin sau: Mã máy in, Thương hiệu/Nhà sản
xuất, Model, Trường, Tòa, Phòng, Mô tả (nếu có). Sau khi điền đầy đủ các thông tin cho máy in mới,
chọn "Xác nhận" hệ thống sẽ lưu lại thông tin cho máy in mới và có thể xem được tại danh sách máy in.
SPSO cũng có thể quản lý cấu hình cho hệ thống tại trang Quản lý cấu hình (chọn "Quản lý cấu
hình" ở thanh menu trái). Tại đây, hệ thống sẽ hiển thị bảng một số thông tin của hệ thống gồm các
thông tin: Số lượng trang cung cấp mặc định cho sinh viên, Thời gian định kì cung cấp số lượng trang
đó cho sinh viên, Kích thước tệp được chấp nhận và Các loại tệp chấp nhận in. SPSO có thể chỉnh sửa
các cấu hình này bằng cách nhấn "Chỉnh sửa".
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 33/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 34/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
3 Architecture Design
3.1 Layered architecture
Để hiện thực hệ thống in ấn thông minh dành cho sinh viên HCMUT, nhóm chọn hướng tiếp cận kiến
trúc theo mô hình kiến trúc MVC (Model – Controller – View) như sau:
Đầu tiên, Người dùng truy cập vào HCMUT_SSPS trên brower của Client (Chrome, Edge, Cốc Cốc,..)
Client bao gồm View. Server bao gồm Controller và Model.
• View: Đây là khu vực chịu trách nhiệm quản lý hiển thị và tương tác của người dùng với hệ
thống. Nơi này đảm nhận nhiệm vụ quản lý giao diện (View management), bao gồm việc hiển thị
các đối tượng trong hệ thống, các biểu mẫu, thông báo, và các thành phần khác. Chức năng của
UI là cung cấp một giao diện trực quan để người dùng có thể theo dõi và tương tác với các tính
năng của hệ thống.
Ngoài ra, Đây cũng là nơi đóng vai trò là người lắng nghe sự kiện (listener) và thu thập dữ liệu
đầu vào từ người dùng khi họ tương tác với hệ thống. Dữ liệu thu thập được sau đó được chuyển
giao cho Controller để xử lý. Controller sẽ thực hiện xử lý dữ liệu này và cập nhật lại UI để hiển
thị kết quả hoặc thông tin được xử lý.
• Controller: Controller nhận Input và thực hiện các Update lên hệ thống của Server. Controller
bao gồm cả view và Model.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 35/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
• Model: là nơi quản lý dữ liệu của hệ thống, làm việc với database Mỗi model là dữ liệu được sử
dụng bởi chương trình. Model cũng cung cấp những phương thức cơ bản xử lý để logic nghiệp vụ.
3.2.1 View
Tầng View gồm 2 component chính:
1. Component View:
SPSO View:
• Chức năng: Cung cấp giao diện người dùng cho hệ thống in ấn, cho phép người dùng tương tác với
thông tin và thực hiện các hành động.
• Giao tiếp: Nhận thông báo cập nhật từ người dùng và gửi thông tin cập nhật đến Database SPSO.
User View:
• Chức năng: Đại diện cho giao diện người dùng chung, hiển thị thông tin liên quan đến người dùng
hệ thống in ấn.
• Giao tiếp: Gửi thông báo cập nhật đến Database User và nhận thông tin cập nhật từ Database
User.
2. Component Controller:
SPSO Controller:
• Chức năng: Quản lý logic điều khiển cho SPSO View, nhận và xử lý các yêu cầu từ người dùng và
các yêu cầu liên quan đến in ấn.
• Giao tiếp: Gửi yêu cầu xem người dùng, xem máy in, xem nhật ký in ấn đến SPSO View và nhận
thông tin từ Database SPSO.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 36/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
User Controller:
• Chức năng: Quản lý logic điều khiển cho User View, xử lý thông tin liên quan đến người dùng.
• Truyền thông tin hiển thị người dùng đến User View và nhận thông tin từ Database User.
3. Component Database:
SPSO Database:
• Chức năng: Lưu trữ dữ liệu liên quan đến hệ thống in ấn SPSO, bao gồm danh sách người dùng,
danh sách máy in và nhật ký in ấn.
• Giao tiếp: Truy cập dữ liệu như danh sách người dùng, danh sách máy in, nhật ký in ấn và truyền
thông tin đến SPSO Controller.
User Database:
• Chức năng: Lưu trữ dữ liệu liên quan đến người dùng, bao gồm thông tin về máy in và nhật ký in
ấn.
• Giao tiếp: Truy cập dữ liệu như thông tin về máy in và nhật ký in ấn và truyền thông tin đến User
Controller.
• User View gửi thông báo cập nhật đến Database User và nhận thông tin cập nhật từ Database
User.
• User Controller truyền thông tin hiển thị người dùng đến User View và nhận thông tin từ Database
User.
• Database SPSO truyền thông tin như danh sách người dùng, danh sách máy in, nhật ký in ấn và
truyền thông tin đến SPSO Controller.
• Database User truyền thông tin như thông tin về máy in và nhật ký in ấn và truyền thông tin đến
User Controller.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 37/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
4 Implementation - Sprint 1
4.1 Github
Link github: https://github.com/TanSyCS/CNPM
4.2 Tiến hành kiểm tra khả năng sử dụng với giao diện người dùng
4.2.1 Giới thiệu
• Mục tiêu: thu được trải nghiệm người dùng từ đó có chỉnh sửa phù hợp
• Người tham gia: 5 bạn sinh viên (không phải là người trực tiếp tham gia phát triển phần mềm)
• Nhiệm vụ: trải nghiệm thử một vài tính năng mà nhóm đã hiện thực: đăng ký, đăng nhập, xem lịch
sử in ấn và xem lịch sử mua trang.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 38/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
• Nhấn vào biểu tượng 3 chấm ở bên phải danh sách, hệ thống sẽ hiển thị các thông tin chi tiết của
lần in đã chọn.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 39/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
• Nhấn vào biểu tượng 3 chấm ở bên phải danh sách, hệ thống sẽ hiển thị các thông tin chi tiết của
lần mua trang đã chọn.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 40/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 41/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
• Lý do: Sự kết hợp giữa các phương pháp định tính và định lượng đảm bảo sự hiểu biết toàn diện
về tương tác của người dùng với giao diện. Dữ liệu định tính cung cấp bối cảnh phong phú và giúp
xác định các vấn đề về khả năng sử dụng có thể không rõ ràng chỉ thông qua các số liệu. Mặt khác,
dữ liệu định lượng cho phép đánh giá khách quan hơn về các tiêu chuẩn khả năng sử dụng cụ thể.
Cách tiếp cận kép này cho phép diễn giải sắc thái phản hồi của người dùng và đánh giá mạnh mẽ
về khả năng sử dụng tổng thể của giao diện.
• Đưa cho người kiểm thử các yêu cầu chức năng cần kiểm thử
• Quan sát thử nghiệm và thu thập các phản hồi
• Phân tích và đánh giá các dữ liệu thu được
• Dựa vào các dữ liệu thu được, có thể xem xét triển khai cải tiến
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 42/43
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính
Tài liệu
[Dal] Dalgaard, P. Introductory Statistics with R. Springer 2008.
[K-Z] Kenett, R. S. and Zacks, S. Modern Industrial Statistics: with applications in R, MINITAB and
JMP, 2nd ed., John Wiley and Sons, 2014.
[Ker] Kerns, G. J. Introduction to Probability and Statistics Using R, 2nd ed., CRC 2015.
Công nghệ phần mềm (CO3001) - Niên khóa 2023-2024 Trang 43/43