Tên Use Case Danh sách địa điểm
Tác nhân chính Người dùng
Kích hoạt Người dùng chọn chức năng xem
danh sách địa điểm Luồng sự kiện chính:
Liệt kê toàn bộ danh sách địa điểm trong cơ sở dữ liệu lên màn hình Luồng sự kiện phụ:
Hiển thị thông tin chi tiết địa điểm khi người dùng chọn địa điểm muốn xem từ danh sách.
Bảng 2: Mô tả ca sử dụng Danh sách địa điểm
Tên Use Case Danh sách khu vực
Tác nhân chính Người dùng
Kích hoạt Người dùng chọn chức năng xem
danh sách theo khu vực Luồng sự kiện chính:
25
Liệt kê toàn bộ danh sách khu vực trong cơ sở dữ liệu lên màn hình Luồng sự kiện phụ:
Hiển thị danh sách các địa điểm trong khu vực người dùng chọn
Bảng 3: Mô tả ca sử dụng Danh sách địa điểm khu vực
Tên Use Case Tìm kiếm
Tác nhân chính Người dùng
Kích hoạt Người dùng chọn chức năng tìm
kiếm. Luồng sự kiện chính:
- Hiện textbox cho phép người dùng nhập địa điểm
- Tìm kiếm trong cơ sở dữ liệu các bản ghi phù hợp và hiển thị lên màn hình
Luồng sự kiện phụ:
Hiển thị thông tin chi tiết địa điểm khi người dùng kích hoạt chức năng xem chi tiết địa điểm
Bảng 4: Mô tả ca sử dụng Tìm kiếm địa điểm
Tên Use Case Quản lý địa điểm
Tác nhân chính Người dùng
Kích hoạt Người dùng chọn chức năng xem
danh sách địa điểm Luồng sự kiện chính:
26
Liệt kê toàn bộ danh sách địa điểm trong cơ sở dữ liệu lên màn hình Luồng sự kiện phụ:
Hiển thị thông tin chi tiết địa điểm khi người dùng chọn địa điểm muốn xem từ danh sách.
Bảng 5: Mô tả ca sử dụng Quản lý địa điểm
Tên Use Case Gửi tin nhắn SMS
Tác nhân chính Người dùng
Kích hoạt Người dùng chọn chức năng gửi
tin Luồng sự kiện:
- Tạo kết nối tới trung tâm tin nhắn - Gửi tin nhắn có cú pháp đi
Bảng 6: Mô tả ca sử dụng Gửi tin nhắn SMS
Tên Use Case Xem hướng dẫn sử dụng
Tác nhân chính Người dùng
Kích hoạt Người dùng chọn chức năng xem
hướng dẫn sử dụng Luồng sự kiện chính:
Hiển thị lên màn hình các hướng dẫn giúp đỡ người dùng sử dụng hệ thống dưới dạng text
27 5.2. Biểu đồ lớp
5.2.1. Biểu đồ lớp mức tổng thể:
Hình 13: Biểu đồ lớp mức tổng thể
5.2.2. Các biểu đồ lớp chi tiết.
5.2.2.1. Biểu đồ lớp cho gói SMS.data:
Các lớp nằm trong gói data được thiết kế để lưu trữ những thông tin về tuyến đường, khu vực dựa trên hệ thống quản lý bản ghi RMS của J2ME
28
Hình 14: Biểu đồ lớp Location
Lớp Location chứa các trường thông tin về địa điểm, gồm có tên địa điểm, mã địa điểm và mã khu vực chứa địa điểm đó.
Ngoài hàm khởi tạo chứa các tham số tương ứng với các thuộc tính, lớp Location cũng có một hàm khởi tạo nhận tham số là một mảng kiểu byte. Hàm này sẽ được dùng khi dữ liệu về địa điểm được lấy từ cơ sở dữ liệu RMS, nó là một mảng kiểu byte.
Phương thức toByteArray() trả về một luồng byte dùng để lưu đối tượng Location vào RMS.
-Biểu đồ lớp Zone
Hình 15: Biểu đồ lớp Zone
Lớp Zone chứa các thông tin về khu vực bao gồm tên, mã và một danh sách lưu mã các địa điểm nằm trong khu vực. Danh sách này được cài đặt bằng kiểu Vector được hỗ trợ trong Java
Trong lớp Zone cũng có hàm khởi tạo và phương thức cho phép ghi và đọc trực tiếp lên cơ sở dữ liệu RMS.
29
Hình 16: Biểu đồ lớp DataRMS
5.2.2.2 Biểu đồ lớp cho gói SMS.gui
Gói SMS.gui chứa các lớp xây dựng nên các Form giao diện người dùng. Để đơn giản, trong ứng dụng demo này, em chỉ dùng các thành phần giao diện mức cao thuộc lớp con Screen của lớp Displayable
-Lớp DisplayManager
30
Đối với các ứng dụng di động trong J2ME, tại một thời điểm, trên màn hình thiết bị chỉ hiển thị một thể hiện Displayable. Lớp DisplayManager dùng để quản lý việc điều hướng giữa các khung giao diện một cách logic. Lớp DisplayManager đơn giản sử dụng cấu trúc dữ liệu ngăn xếp để lưu trữ tham chiếu đến các đối tượng form khác. Mỗi khi người dùng chọn một chức năng điều hướng (lệnh “chọn” hay “quay lại”), mỗi đối tượng Displayable tương ứng sẽ được đẩy vào ngăn xếp. Và lớp GiaoThongMIDlet sẽ thực hiện công việc lấy phần tử đầu tiên trong ngăn xếp và hiển thị lên màn hình. Khi người dùng muốn quay lại màn hình trước đó (khi người dùng chọn chức năng “quay lại”) thì đối tượng DisplayManager sẽ đẩy phần tử đầu tiên ra khỏi ngăn xếp.
Hình 18: Cơ chế hoạt động của Stack
-Lớp BaseForm
31
BaseForm là một lớp trừu tượng thừa kế từ lớp List. Nó khai báo các thuộc tính dùng chung đối với các Form dạng danh sách trong ứng dụng. Phương thức trừu tượng builForm() sẽ do các Form kế thừa nó cài đặt.
Hình 20: Các lớp kế thừa từ BaseForm
Các lớp SearchForm, ZoneForm, LocationInZoneForm đều kế thừa từ lớp BaseForm, chúng hiển thị lên màn hình một danh sách các địa điểm hoặc khu vực. Nếu người dùng chọn chức năng danh sách địa điểm, lớp SearchForm sẽ được đặt vào trong ngăn xếp của đối tượng DisplayManager. Từ màn hình này, nếu người dùng chọn các lệnh chức năng hiển thị theo khu vực, hay hiển thị chi tiết một địa điểm cụ thể, thì các form tương ứng sẽ được đẩy vào ngăn xếp theo cơ chế như đã nói trên.
32
Hình 21: Biểu đồ lớp SettingForm
Lớp SettingForm cho phép người dùng thay đổi một số thông số cơ bản của ứng dụng:
Tùy chọn kiểu hiển thị mặc định bao gồm hiển thị theo khu vực hay theo địa điểm. Ứng dụng sẽ dựa theo thuộc tính này để hiển thị cho phù hợp trong form tìm kiếm.
-Lớp DetailForm
Hình 22: Biểu đồ lớp DetailForm
Khi lựa chọn một địa điểm mà người dùng muốn xem các thông tin chi tiết, màn hình sẽ hiện ra form DetailForm. Từ màn hình này, người dùng có thể tùy chọn các chức năng gửi tin truy vấn SMS, hay nhắn tin đóng góp cho tổng đài bằng cách cập nhật tình hình tắc đường đối với địa điểm đã chọn.
33 - Lớp HelpForm
Lớp HelpForm đơn giản chi là một Form chứa thành phần StringItem, nó hiện lên màn hình các chuỗi chỉ dẫn hướng dẫn người dùng sử dụng hệ thống
5.2.2.3 Biểu đồ lớp cho gói SMS.connection
Gói SMS.connection gồm 2 lớp là Sender và Receiver dùng để xử lý việc gửi và nhận tin nhắn SMS cho ứng dụng
34
Chương 6. Các màn hình chính và hướng dẫn demo ứng dụng
Trong phạm vi khóa luận này, ứng dụng Client đã đáp ứng được những chức năng cơ bản của hệ thống. Vì lý do không có điều kiện để tiến hành cài đặt và chạy thử ứng dụng trên các thiết bị thật, nên việc cài đặt và chạy thử ứng dụng demo được thực hiện trên máy điện thoại giả lập của bộ công cụ phát triển Sun Java Wireless Toolkit.
Như đã mô tả trong phần tổng quan, Client và Server sẽ giao tiếp với nhau thông qua một SMS Gateway. Để thuận tiện cho việc demo ứng dụng Client trên thiết bị điện thoại giả lập, tôi hệ thống sử dụng một điện thoại giả lập khác đóng vai trò của SMS Gateway. Thiết bị Gateway giả lập này sẽ chỉ có 2 chức năng chính là gửi và nhận SMS.
Hình 24: Màn hình chính của SMS Gateway giả lập
6.1. Demo các chức năng xem danh sách địa điểm hay khu vực
Bước 1: Khởi động ứng dụng bằng cách chạy tập tin JAD, màn hình chính hiện ra:
35
Hình 25: Màn hình chính ứng dụng Client
Bước 2: Từ màn hình chính, chọn chức năng “Danh sách địa điểm”, Màn hình danh sách địa điểm sẽ hiện ra. Màn hình này có chức năng chuyển đổi qua lại với màn hình khu vực cho phép người dùng thay đổi:
36 6.2. Demo chức năng quản lý địa điểm:
Bước 1: Từ màn hình danh sách địa điểm, chọn địa điểm hay tra cứu nhất, sau đó chọn chức năng “Thêm vào danh sách ưa thích”.
Bước 2: Lần lượt chọn “Thêm vào danh sách ưa thích” đối với các địa điểm khác mà bạn muốn thêm vào
Bước 3: Quay ra màn hình chính, chọn chức năng “Quản lý địa điểm”, danh sách các địa điểm người dùng quan tâm sẽ hiện ra. Từ màn hình này, có chức năng cho phép loại địa điểm ra khỏi danh sách.
Hình 27: Màn hình quản lý địa điểm
6.3. Demo chức năng Tìm kiếm địa điểm.
Bước 1: Từ màn hình danh sách địa điểm, chọn chức năng Tìm kiếm, một màn hình mới hiện ra yêu cầu người dùng nhập ký tự tìm kiếm vào.
Bước 2: Nhập đầy đủ hoặc một phần tên địa điểm mà bạn muốn tìm kiếm.
Bước 3: Chọn chức năng Tìm, màn hình danh sách địa điểm sẽ hiện ra với kết quả tìm kiếm đã được lọc.
37
Hình 28: Màn hình tìm kiếm địa điểm
6.4. Demo chức năng thiết lập cấu hình:
Bước 1: Từ màn hình chính, chọn chức năng “Cấu hình”, màn hình thiết lập cấu hình hiện lên.
Bước 2: Trong ô Tổng đài tin nhắn, nhập 5550001, đây là số điện thoại của thiết bị SMS Gateway giả lập sẽ sử dụng để demo chức năng tra cứu hay cập nhật.
38
Hình 29: Màn hình thiết lập cấu hình
Bước 3: Chọn chức năng Lưu để lưu lại các thiết lập và quay trở lại màn hình chính
6.5. Demo chức năng nhắn tin tra cứu:
Bước 1: Khởi động thiết bị giả lập SMS Gateway bằng cách chạy tập tin MyGateway.jad
39
Hình 30: Màn hình chờ tin nhắn đến trên SMS Gateway
Bước 3: Từ màn hình danh sách địa điểm, xem chi tiết địa điểm rồi chọn chức năng Nhắn tin tra cứu. Chọn yes để đồng ý xác thực sẽ gửi tin, xem màn hình SMS Gateway sẽ nhận được tin nhắn với cú pháp VG TTGT Ma_Duong
40
Bước 4: Từ SMS Gateway, chọn Trả lời và nhập vào : Duong thong Client nhận được tin nhắn thông báo và hiện lên trên màn hình:
Hình 32: Hiển thị tin nhắn nhận được lên màn hình
6.6 Demo chức năng Nhắn tin cập nhật.
Bước 1: Từ màn hình chi tiết địa điểm, chọn chức nang nhắn tin cập nhật
Bước 2: Trong menu dạng đổ xuống tiếp theo, chọn trạng thái thông hay tắc rồi gửi tin
41
Hình 33: Màn hình chọn tình trạng địa điểm Bước 3: SMS Gateway sẽ nhận được tin nhắn theo cú pháp GT TTGT Ma_Duong TinhTrang
42 6.7 Demo chức năng Hướng dẫn sử dụng:
Từ màn hình chính, chọn chức năng Hướng dẫn sử dụng, màn hình hướng dẫn sẽ hiện ra
43
Chương 7. Kết luận
Kết thúc khóa luận này, thông qua ứng dụng Client của hệ thống thông tin giao thông, tôi đã có điều kiện tiếp cận và nghiên cứu những kiến thức nền tảng về lập trình J2ME cho điện thoại di động. Biết cách xây dựng ứng dụng với giao diện đồ họa mức cao, sử dụng linh hoạt hệ quản trị RMS và gửi tin nhắn SMS thành công tới một thiết bị di động khác.
Ứng dụng Client sau khi cài đặt lên điện thoại giả lập có chức năng đơn giản, dễ sử dụng, đã chạy thử nghiệm và cho kết quả tốt đối với các chức năng của hệ thống.
Để ứng dụng có thể áp dụng trong thực tế, cần thời gian cài đặt thử nghiệm lên thiết bị thật, nghiên cứu áp dụng các kỹ thuật đồ họa mức thấp để làm cho giao diện đẹp hơn.
Xây dựng một phiên bản có hỗ trợ xem bản đồ giao thông cũng là một hướng phát triển của ứng dụng, khi mà người dùng hiện nay ngày càng sử dụng nhiều các thiết bị di động cao cấp với giao diện cảm ứng và bộ nhớ máy không quá hạn chế.
44
Tài liệu tham khảo
[1]. John W. Muchow, Core J2ME Technology; 1st edition (December 21, 2001), tr.1-10.
[2]. Vartan Piroumian, Wireless J2ME Platform Programming; 1st edition (March 25,2002), tr.11-14 [3]. http://articles.techrepublic.com.com/5100-10878_11-1046647.html, tr.4 [4]. http://developers.sun.com/mobility/midp/articles/fsm/, tr.8 [5]. http://www.ibm.com/developerworks/java/library/wi-jio/, tr.14-16 [6]. http://developers.sun.com/mobility/midp/articles/midp2network/, tr.15 [7]. http://www.alexfactoryillustration.com/how-sms-working.html#more-96, tr.18 [8]. http://www.clearsms.com/blog/2008/3/5/history-of-sms-messaging.html , tr.17 [9]. http://www.sparxsystems.com/uml_tool_guide/index.html, tr.36-32