5.5.1 Kịch bản ứng dụng
User truy cập ứng dụng. Nếu đã có tài khoản, User sử dụng tài khoản đã đăng ký nhập username và password. Quá trình kiểm tra username và password nhập vào với dữ liệu của ứng dụng. Nếu một trong hai thông tin không chính xác (không trùng khớp với dữ liệu trong database) thì yêu cầu User cung cấp lại thông tin và thực hiện lại bước kiểm tra. Khi các thông tin đã chính xác user có thể bắt đầu chơi game. Thời gian tối đa của một câu đố là 60 phút nếu hết 60 phút mà User không thực hiện xong câu đố Sudoku thì sẽ bị xử thua và dữ liệu được đưa vào database. Trong vòng 60 phút người chơi hoàn thành hết các ô còn trống sẽ được xem là thắng cuộc và thời gian hoàn thành được lưu
Điền tự động một số ngẫu nhiên Thực hiện giải thuật Kỹ thuật xáo trộn Ẩn ngẫu nhiên
vào database để phục vụ cho quá trình xếp hạng. User cũng có thể xem danh sách hạng của các User đã chơi trên màn hình chính và có thể thống kê hạn theo điểm, thời gian chơi ở từng mức độ: dễ, trung bình, khó. User cũng có thể xêm các thông tin cá nhân và thực hiện cập nhật các thông tin này cũng như thay đổi password.
Đối với User chưa có tài khoản (chưa đăng ký tài khoản) cần thực hiện chức năng đăng ký ở trang đăng nhập. Điền các thông tin đăng ký và phải thỏa các điều kiện như: Username không được để trống hoặc trùng với các username đã có trong hệ thống; Password phải gồm các ký tự in hoa, in thường, ký tự số và ít nhất phải có 6 ký tự. Email phải chính xác là một địa chỉ email có ký tự @ và tên miền. Khi user nhập xong các thông tin ứng dụng sẽ bắt đầu kiểm tra và trả về kết quả nếu thông tin không chính xác yêu cầu user nhập lại và thực hiện kiểm tra lại. Nếu thông tin đã thỏa các yêu cầu tài khoản cho user đã được tạo và chuyển tiếp đến trang chơi game chính.
Đối với quản trị ứng dụng, thực hiện các bước đăng nhập như User thông thường. Nhưng khi đăng nhập ứng dụng sẽ kiểm tra User có quyền admin hay không. Nếu có quyền admin thì trên màn hình trang chủ có thêm một button chuyển tiếp đến trang quản lý ứng dụng hoặc User quản trị có thể gõ trực tiếp địa chỉ trang quản lý nếu cần thiết (nhưng phải thực hiện đăng nhập trước đó để tại session). Có 2 trang quản lý chính là Quản lý User và Quản lý lịch sử chơi của từng User.
Với trang Quản lý User thì User quản trị có thể tạo một user mới (với các thông tin nhập vào cũng được kiểm tra như quá trình đăng ký) và có thêm một lựa chọn là user mới này có phải là một quản trị viên ứng dụng hay không? User quản trị cũng có quyền cập nhật các thông tin cho các user khác và xóa một user database của ứng dụng. Nếu một User được xóa thì các lịch sử chơi game của user đó cũng được xóa toàn bộ
Với trang Quản lý lịch sử chơi từng User thì User quản trị chỉ có quyền xóa các lịch sử chơi của từng User.
5.5.2 đối tượng User Biểu đồ Usecase Biểu đồ Usecase
Hình 5.4. Usecase của đối tượng User
Actor: Người dùng
Usecase: truy cập vào trang login, đăng nhập, kiểm tra đăng nhập, đăng ký, kiểm tra đăng ký, thao tác với trang chủ, chơi game sudoku, chọn lượt mới, chọn mục mới, yêu cầu giải kết quả, lưu kết quả chơi, xem xếp hạng người dùng, xem thông tin cá nhân, thay đổi thông tin cá nhân
Luồng sự kiện
Bước 1. User truy cập trang login thực hiện đăng nhập (Bước 2) hoặc đăng ký (Bước 3). Bước 2. Nhập thông tin đăng nhập và kiểm tra.
Bước 2.1. Nhập thông tin đăng nhập. Nguoi dung
truy cap vao trang login
xem thong tin ca nhan
choi game sudoku
Thoat ung dung
Chon luot choi moi
Xem xep hang cua nguoi choi Kiem tra dang ky
<<extend>>
Chon muc choi <<extend>>
thay doi thong tin ca nhan <<extend>> Dang ky
<<include>>
Kiem tra dang nhap
thao tac voi ung dung trang chu
<<include>> <<extend>>
<<extend>>
<<extend>>
yeu cau giai giup ket qua
<<extend>> Luu ket qua choi
<<include>> Co so du lieu dang nhap <<include>> <<extend>> <<include>> <<include>>
Bước 2.2. Kiểm tra thông tin đăng nhập với database. Nếu đúng thực hiện bước 4. Nếu sai Quay lại bước 2.1.
Bước 3: Đăng ký tài khoản mới.
Bước 3.1 Nhập thông tin cho tài khoản mới.
Bước 3.2 Kiểm tra các thông tin đã nhập vào. Nếu thỏa các điều kiện thực hiện lưu vào database và thực hiện bước 4. Nếu sai (các thông tin nhập không thỏa) quay lại bước 3.1.
Bước 4:Thao tác với trang chủ như: Chơi game, xem bảng xếp hạng, cập nhật thông tin cá nhân, đổi password.
Sơ đồ trình tự
Chú thích:
Màu đen: Quy trình nghiệp vụ chuẩn cho người dùng đã có tài khoản đăng nhập. Màu xanh: Quy trình thực hiện nếu nhập sai tài khoản đăng nhập.
Màu đỏ: Quy trình này được thực hiện nếu người dùng chưa có tài khoản đăng nhập. Màu hồng: Quy trình này được thực hiện nếu người dùng nhập sai thông tin tạo tài khoản.
: User : User
Trang login
Trang login Trang chuTrang chu CSDLCSDL
1. User & password
2. User & password
3. Kiem tra truy cap
4. Tra ket qua
5. Thong bao khong hop le
5. Tu dong chuyen sang trang tro choi
6. Nhap lai user va password
7. User & password
8. Kiem tra lai truy cap
9. tra ket qua kiem tra
1. Cung cap thong tin tao tai khoan
2. Thong tin tao tai khoan
3. Kiem tra tao tai khoan
4. Tra lai ket qua kiem tra
5. Tu dong chuyen sang trang tro choi
5. Thong tin chua hop le 6. Cung cap lai thong tin
7. Thong tin tao tai khoan
8. Kiem tra lai tao tai khoan
9. Tra ket qua kiem tra
7. Truy cap ung dung tren trang tro choi
8. Thong tin yeu cau truy cap
9. Kiem tra va truy xuat ket qua
10. Tra ket qua ung dung 11. tt hien thi tren man hinh
6. tt hien thi tren man hinh
6. Hien thi tren man hinh
5.5.3 User quản trị Biểu đồ Use case Biểu đồ Use case
Hình 5.6. Usecase của đối tượng quản trị
Actor: Người dùng (admin)
Usecase: truy cập vào trang login, đăng nhập, kiểm tra đăng nhập, xóa lịch sử người chơi, xem lịch sử người chơi, xêm thông tin người dùng, tạo mới người dùng, xóa người dùng khỏi danh sách, cấp quền admin, kiểm tra thai đổi, thay đổi thông tin người dùng, thoát ứng dụng.
Luồng sự kiện
Bước 1. User truy cập trang login thực hiện đăng nhập Bước 2. Nhập thông tin đăng nhập và kiểm tra
Bước 2.1. Nhập thông tin đăng nhập Nguoi dung
truy cap vao trang login
Kiem tra dang nhap
Xem lich su nguoi choi
xoa lich su nguoi choi <<extend>>
Kiem tra thay doi Xoa nguoi dung khoi danh sach
Cap quyen admin
Thay doi thong tin nguoi dung
<<include>>
Thoat ung dung Xem thong tin nguoi dung
<<include>> <<include>>
Tao moi nguoi dung
<<extend>> Kiem tra tao moi
<<include>>
Thao tac trang Admin Page <<extend>> <<include>> <<extend>> <<extend>> Co so du lieu Dang nhap <<include>> <<include>> <<include>>
Bước 2.2. Kiểm tra thông tin đăng nhập với database. Nếu đúng thực hiện bước 3. Nếu sai Quay lại bước 2.1
Bước 3:Thao tác với trang quản trị như: Thêm, xóa, cập nhật, cấp quyền quản trị cho user, xóa lịch sử chơi game của user.
Sơ đồ trình tự
Mô tả:
Màu đen: Quy trình thực hiện bình thường khi user nhập đúng user và password đăng nhập.
Màu xanh: Quy trình thực hiện khi user nhập sai tài khoản đăng nhập.
Hình 5.7. Sơ đồ trình tự của quản trị ứng dụng
: User : User
Trang login
Trang login Trang tro choiTrang tro choi CSDLCSDL
1. User & password
2. User & password
3. Kiem tra dang nhap
4. Tra ket qua kiem tra 5. Tu chuyen sang trang tro choi
5. Thong bao tt khong hop le
6. Cung cap lai tt
7. User & password
8. Kiem tra dang nhap
9. Tra ket qua kiem tra
7. Thao tac them, xoa, sua, trao quyen cho user, xoa lich su tro choi 6. tt hien thi tren man hinh
8. Yeu cau thao tac
9. Kiem tra va truy xuat ket qua
10. Tra ra ket qua 11. tt hien thi tren man hinh
5.6 Xây dựng ứng dụng
5.6.1 Xây dựng database Bảng Users Bảng Users
Lưu trữ các thông tin của một User đã đăng ký vào hệ thống như: Tên đăng nhập, Password, họ tên, ảnh đại diện, Email, ngày đăng ký, giới tính, quyền (User có quyền quả trị không)
Users(UserName, Password, FullName, Avatar, EmailAddress, RegisterDate, Sex,
Role)
Mô tả: Role : 1 : Có quyền quả trị.
Role : 0 : Không có quyền quả trị. Câu lệnh tạo bảng Users trong SAP HANA
Hình 5.8. Câu lệnh tạo bảng users
Hình 5.9. Bảng Users đã được tạo
Bảng HistoryPlayer
Lưu trữ các thông tin mỗi lần chơi game của từng user. Các thông tin lưu trữ như: Tên đăng nhập, Thời gian chơi game, độ khó, tổng thời gian hoàn thành, điểm, ghi chú.
HistoryPlayer(HistoryId, UserName, TimeOfPlay, Difficult, CompleteTime, Score,
Remark)
Mô tả: Difficult : 0: Dễ (Easy); 1: Trung bình (Medium); 2: Khó (Hard). Câu lệnh tạo bảng HistoryPlayer trong SAP HANA
Hình 5.10. Câu lệnh tạo bảng Historyplayer
Hình 5.11. Bảng HistoryPlayer đã được tạo
Tạo Sequence cho HistoryId
HistoryId ghi nhận Id cho mỗi lịch sử chơi game. Các chỉ số này có thể tự tăng sau mỗi lần thêm vào một record mới. Tạo một hdbsequence (Hana databse) để lưu và tự động tăng của trường HistoryId.
Giá trị bắt đầu là :1; Mỗi lần tăng 1 đơn vị và áp dụng cho bản HistoryPlayer. (Các dòng có ký tự “//” là các comment không có tác dụng đến việc thực hiện câu lệnh)
Hình 5.12. Câu lệnh tạo sequence
5.6.2 Thiết kế giao diện
Đối với người dùng đã có tài khoản chỉ cần thực hiện đăng nhập (login) để vào giao diện chính.
Đối với người dùng chưa có tài khoản cần thực hiện đăng ký (Register) để vào giao diện chính.
Hình 5.13. Trang login
Popup đăng nhập (Login): User cung cấp Username và Password để đăng nhập vào ứng dụng.
Hình 5.14. Popup login
Popup đăng ký (Register): User nhập các thông tin tài khoản mới để thực hiện đăng ký
Hình 5.15. Popup đăng ký
Giao diện trang chính của ứng dụng: Giao diện tổng hợp các chức năng chính của User như: khung chơi Sudoku, thông tin cá nhân, lịch sử chơi game, bảng xếp hạng, thay đổi thông tin cá nhân, thay đổi password,…
Giao diện chơi game Sudoku: Gồm các chức năng hỗ trợ và kiểm soát việc chơi game
của User như: chọn cấp độ, buttton tạo bảng câu đố mới, xóa các giá trị đã điền vào, yêu cầu kết quả, thời gian,…
Hình 5.17. Giao diện chức năng chơi sudoku
Hình 5.18. Giao diện bảng xếp hạng
Quản lý thông tin cá nhân: hiển thị các thông tin cá nhân và lịch sử chơi game của User
Hình 5.19. Giao diện quản lý thông tin cá nhân
Popup User đổi password: Cho phép User cập nhật lại Password. User phải cung cấp
Hình 5.20. Popup đổi password
Trang quản lý User của quản trị ứng dụng: bảng quản lý của quản trị ứng dụng với
các chức năng cơ bản: thêm, xóa, cập nhật thông tin User.
Hình 5.21. Giao diện trang quản lý users của quản trị viên
Giao diện quản lý lịch sử của quản trị ứng dụng: Hỗ trợ quản trị ứng dụng quản lý
lịch sử chơi game của User và xóa những lịch sử nếu cần.
CHƯƠNG 6: KẾ LUẬN 6.1 Kết quả đạt được
Trong thời gian thực tập tại công ty thực tập được tìm hiểu công nghệ mới, hệ thống mới, môi trường làm việc chuyên nghiệp và được sự hướng dẫn tận tình của những anh chị hướng dẫn tôi đã có cơ hội vận dụng các kiến thức, các kỹ thuật được trang bị trong thời gian học tập đồng thời tiếp thu và học hỏi thêm rất nhiều điều có ích.
Trong quá trình tập huấn của công ty
Được hướng dẫn và ôn lại các kiến thức về JavaScript, Jquery.
Học được những kỹ thuật và được truyền đạt những “pattern”.
Tiếp cận với In-memory computing được xem là một công nghệ tiên tiến và mạnh mẽ.
Tiếp cận và làm quen với nền tảng mới SAP HANA với nhiều tính năng vượt trội.
Sử dụng JavaScript trên server-side.
Sử dụng bộ công cụ SAPUI5 như một thư viện hỗ trợ phát triển giao diện rất chuyên nghiệp.
Công nghệ lưu trữ theo cột (Columnar Storage) rất tối ưu.
Trong quá trình thực hiện ứng dụng minh họa
Được làm việc nhóm và phân chia trách nhiệm, nhiệm vụ.
Áp dụng những cách thức, kỹ thuật lập trình được học và training vào quá trình lập trình.
Tìm hiểu và chuyển đổi các thuật toán thực tế sang ngôn ngữ lập trình.
Xây dựng được ứng dụng có thể triển khai nội bộ nhằm mục đích giải trí.
Chương trình đáp ứng được yêu cầu người hướng dẫn đặt ra.
6.2 Những hạn chế
- Do thời gian, kiến thức hạn chế, thiếu kinh nghiệm làm việc và chưa phản ứng nhanh
trong xử lý vấn đề nên quá trình tìm hiểu và thực hiện ứng dụng minh họa còn gặp nhiều hạn chế sau:
Chỉ mới dừng lại ở mức tổng quát ở nền tảng mới SAP HANA.
Kiến thức mới và kỹ năng ngoại ngữ chưa cao nên vẫn còn gặp khó khăn trong quá trình đọc tài liệu chuyên ngành và dịch thuật để viết báo cáo.
Ứng dụng còn gặp vấn đề về bảo mật và phân quyền.
Ứng dụng còn chưa tương thích cao với các trình duyệt khác nhau (phụ thuộc vào phiên bản trình duyệt).
Quá trình lập trình chưa tối ưu được các câu lệnh. Nhiều câu lệnh trùng lắp. Đặt biến chưa đồng bộ.
6.3 Hướng phát triển
Dựa vào những kiến thức tìm hiểu căn bản có thể đi sâu vào tìm hiểu những tính năng và khả năng cao cấp hơn của nền tảng hiện đại này
Ứng dụng được định hướng để hỗ trợ người dùng thuận tiện và hoàn thiện hơn. Thêm các chức năng như hướng dẫn, hướng dẫn chơi game sudoku, gợi ý khi User yêu cầu … Phát triển chức năng tạo những giải đấu, những cuộc thi mang tính nội bộ.
Phát triển ứng dụng sang nền tảng mobile và có thể chạy trên các hệ điều hành đang phổ biến.
Có thể phát triển và mở rộng phạm vi là mạng xã hội ở mức nội bộ trong công ty để các đồng nghiệp có thể giao lưu, thư giãn và chia sẻ trong quá trình làm việc.
6.4 Tổng kết quá trình thực hiện
Sau hơn 2 tuần tìm hiểu SAP HANA và training về JavaScript được đánh giá là nắm được nội dung cơ bản và có thể vận dụng các kiến thức vào một bài tập Sudoku để tìm hiểu cách thức làm việc và làm quen với việc lập trình trên hệ thống mới.
Sau hơn 5 tuần tìm hiểu và làm quen công ty đã tổ chức buổi đánh giá và xem xét cho tham gia nhóm dự án thực tế để thực hành và tìm hiểu sâu hơn..
Sau gần 3 tuần phát triển ứng dụng game Sudoku đã được đưa vào thử nghiệm trong công ty và nhận được rất nhiều nhận xét và góp ý của các anh chị mang tính xây dựng. Các góp ý xoay quanh vấn đề về bảo mật và các lỗi nhập liệu … Và cũng đã tiến hành khắc phục hiệu quả.
Tài liệu tham khảo
[1] SAP HANA Developer Guide, SAP HANA Platform SPS 07, document version: 1.0,
27-11-2013
[2] ERICH SCHNEIDER, SAP HANA Platform – technical overview, 2012
[3] DR.-ING. JÜRGEN MÜLLER of the Hasso Plattner Institute, slide về In-Memory
Data Management In a Nutshell, 2013
[4] THOMAS JUNG, slide về Introduction to Software Development on SAP HANA,