• Tĩm tắt
Use case này mơ tả cách thức một người dùng phĩng to hay thu nhỏ phần khơng gian hiển thị của bản đồ.
• Luồng các sự kiện
o Luồng sự kiện chính
Use case bắt đầu khi cĩ một người dùng muốn phĩng to hay thu nhỏ vùng khơng gian hiển thị của bản đồ.
Người dùng nhất chuột phải/trái lên bản đồ nếu muốn phĩng to/thu nhỏ bản đồ tại vùng khơng gian đang hiển thị.
Hệ thống sẽ truy cập cơ sở dữ liệu lấy ra phần thơng tin trong khơng gian mới và hiện ra cho người dùng.
o Các luồng sự kiện khác Khơng cĩ. • Các yêu cầu đặc biệt o Khơng cĩ. • Điều kiện tiên quyết o Khơng cĩ. • Post – conditions
o Nếu use case thực hiện thành cơng, hệ thống sẽ hiển thị bản đồ vùng khơng gian mới ra cho người dùng, ngược lại hệ thống sẽ hiện thơng báo lỗi và quay trở về luồng sự kiện chính.
KHOA CNTT – ĐH KHTN • Điểm mở rộng o Khơng cĩ. 3.6.9 Fit2Window (Hiện tồn bộ bản đồ) • Tĩm tắt
Use case này mơ tả cách thức một người dùng hiện tồn bộ bản đồ. • Luồng các sự kiện
o Luồng sự kiện chính
Use case bắt đầu khi cĩ một người dùng muốn xem tồn bộ bản đồ.
Người dùng nhấn nút “Xem tồn bộ bản đồ”. Hệ thống sẽ truy cập vào cơ sở dữ liệu lấy và hiển thị tồn bộ bản đồ ra cho người dùng. o Các luồng sự kiện khác Khơng cĩ. • Các yêu cầu đặc biệt o Khơng cĩ. • Điều kiện tiên quyết
o Người dùng thực hiện use case này thơng qua Web Application.
• Post – conditions
o Nếu use case thực hiện thành cơng, hệ thống sẽ hiển thị tồn bộ bản đồ ra cho người dùng, ngược lại hệ thống sẽ hiển thị thơng báo lỗi và quay trở về luồng sự kiện chính.
• Điểm mở rộng
o Khơng cĩ.
3.6.10 Maintain BusLine Info (Quản lý thơng tin Tuyến xe buýt)
• Tĩm tắt
Use case thực hiện chức năng quản lý thơng tin của các tuyến xe buýt. Use case cho phép Admin thực hiện việc thêm, xĩa, sửa thơng tin của các tuyến xe buýt.
KHOA CNTT –
ĐH KHTN
• Luồng các sự kiện
o Luồng sự kiện chính
Use case bắt đầu khi Admin muốn thực hiện một trong các thao tác thêm, xĩa, sửa thơng tin của tuyến xe buýt.
Hệ thống yêu cầu người dùng chọn một trong các chức năng muốn thực hiện: Thêm tuyến xe buýt, Xĩa tuyến xe buýt, Sửa tuyến xe buýt.
Người dùng chọn một chức năng cần thực hiện.
Hệ thống tiến hành xử lý chức năng này. Tùy theo chức năng được chọn mà cĩ thể gọi thực hiện một trong các dịng sự kiện con sau: Thêm tuyến xe buýt (Add new BusLine), Xĩa tuyến xe buýt (Delete a BusLine), Sửa tuyến xe buýt (Edit a BusLine).
o Các luồng sự kiện khác
Ởđây cĩ các dịng sự kiện con sau:
Add new BusLine (Thêm tuyến xe buýt)
Người dùng nhập vào thơng tin của một tuyến xe buýt bao gồm: Số hiệu tuyến, tên tuyến, chiều dài tuyến, đơn vị chủ quản, giá vé, thời gian hoạt động, thời gian giãn cách, trạm đầu, trạm cuối, lộ trình đi qua (dưới dạng chuỗi danh sách các con đường và địa điểm mà tuyến đi qua).
Người dùng nhấn nút “Lưu” để xác nhận thao tác thêm tuyến xe buýt.
Hệ thống phát sinh mã tuyến xe buýt và tạo ra các cung xe buýt tương ứng.
Hệ thống lưu trữ thơng tin tuyến xe buýt mới vào cơ sở dữ liệu.
Delete a BusLine (Xĩa tuyến xe buýt)
KHOA CNTT –
ĐH KHTN
Hệ thống thâm nhập vào cơ sở dữ liệu lấy và hiển thị thơng tin về tuyến xe buýt tương ứng (nếu khơng tồn tại mã số tuyến, hệ thống sẽ hiển thị thơng tin rỗng về tuyến xe buýt).
Người dùng xác nhận thơng tin tuyến xe buýt và nhấn nút “Xĩa” để xĩa tuyến xe buýt này.
Hệ thống nhắc người dùng xác nhận việc xĩa tuyến xe buýt.
Người dùng xác nhận thao tác xĩa tuyến.
Hệ thống xĩa thơng tin về tuyến xe buýt và các thơng tin cĩ liên quan (lộ trình, cung xe buýt) ra khỏi cơ sở dữ liệu.
Edit a BusLine (Sửa tuyến xe buýt)
Người dùng nhập vào mã số tuyến xe buýt cần sửa đổi thơng tin.
Hệ thống thâm nhập vào cơ sở dữ liệu lấy và hiển thị thơng tin tuyến xe buýt tương ứng ra cho người dùng (nếu khơng tồn tại mã số tuyến, hệ thống sẽ hiển thị thơng tin rỗng về tuyến xe buýt).
Người sử dụng sửa đổi thơng tin của tuyến xe bao gồm: số hiệu tuyến, tên tuyến, chiều dài tuyến, đơn vị chủ quản, giá vé, thời gian hoạt động, thời gian giãn cách.
Nếu người dùng muốn sửa đổi thơng tin về lộ trình thì nhấn nút “Sửa lộ trình”.
Hệ thống sẽ tiến hành xử lý chức năng này và gọi dịng sự kiện con “Edit a BusRoute”.
Người dùng nhấn nút “Cập nhật” để xác nhận thao tác sửa đổi.
Hệ thống cập nhật thơng tin về tuyến xe buýt tương ứng vào trong cơ sở dữ liệu.
KHOA CNTT –
ĐH KHTN
Người dùng chọn lộ trình của tuyến cần sửa thơng tin (lộ trình đi hay lộ trình về). Thơng tin sửa này bao gồm: thêm trạm dừng vào lộ trình, hay loại bỏ trạm dừng ra khỏi lộ trình.
Người dùng nhấn nút “Tạo/Chọn trạm dừng” để bắt đầu việc thêm hay loại bỏ trạm ra khỏi lộ trình tuyến xe buýt.
Người dùng nhấn chuột phải vào một vị trí muốn tạo mới trạm (hay chọn trạm hiện cĩ) trên bản đồ nếu muốn thêm trạm tương ứng vào lộ trình.
Người dùng nhấn chuột trái vào một trong các trạm đã thêm vào lộ trình nếu muốn loại bỏ trạm ra khỏi lộ trình.
Người dùng nhấn nút “Kết thúc sửa đổi” để xác nhận thơng tin sửa đổi.
Hệ thống sẽ cập nhật thơng tin về lộ trình của tuyến xe buýt vào cơ sở dữ liệu.
Lộ trình khơng liên thơng
Trong dịng sự kiện con Add new BusLine, nếu người dùng nhập thơng tin lộ trình với danh sách các con đường và địa điểm đi qua mà các con đường khơng liên thơng với nhau (khơng thểđi tới được) thì hệ thống sẽ hiển thị thơng báo lỗi và quay về luồng sự kiện chính để người dùng nhập lại.
Trạm khơng nằm trên lộ trình
Trong dịng sự kiện con Add new BusLine, Edit a BusRoute nếu người dùng nhập trạm khơng nằm trên đường trong lộ trình thì hệ thống sẽ hiển thị thơng báo lỗi và quay về luồng sự kiện chính cho người dùng nhập lại.
• Các yêu cầu đặc biệt
o Khơng cĩ • Điều kiện tiên quyết
KHOA CNTT –
ĐH KHTN
• Post – conditions
o Nếu use case thành cơng, thơng tin của tuyến xe buýt sẽ đươc thêm, hủy hoặc sửa đổi. Ngược lại, tình trạng hệ thống khơng đổi.
• Điểm mở rộng
o Khơng cĩ.
3.6.11 Maintain BusStation Info (Quản lý thơng tin Trạm dừng)
• Tĩm tắt
Use case thực hiện chức năng quản lý thơng tin trạm dừng xe buýt. Use case cho phép Admin thực hiện việc thêm, xĩa, sửa thơng tin về trạm dừng xe buýt. • Luồng các sự kiện
o Luồng sự kiện chính
Use case bắt đầu khi cĩ một Admin muốn thực hiện một trong các thao tác thêm, xĩa, sửa đổi thơng tin của một trạm dừng xe buýt.
Hệ thống yêu cầu người dùng chọn một trong các chức năng muốn thực hiện: Thêm trạm dừng, Xĩa trạm dừng, Sửa đổi thơng tin trạm dừng.
Người dùng chọn một chức năng thực hiện.
Hệ thống tiến hành xử lý chức năng này. Tùy theo chức năng được chọn mà cĩ thể gọi một trong các dịng sự kiện con sau: Thêm trạm dừng (Add new BusStation), Xĩa trạm dừng (Delete a BusStation), Sửa đổi trạm dừng (Edit a BusStation).
o Các luồng sự kiện khác
Ởđây cĩ các dịng sự kiện con sau:
Add new BusStation (Thêm trạm dừng)
Người dùng nhập thơng tin về trạm dừng bao gồm: vị trí địa lý bằng cách nhấn chọn trên bản đồ, số hiệu trạm, loại trạm, tên trạm, địa chỉ trạm, và trạm đầu mối mà nĩ thuộc về.
KHOA CNTT –
ĐH KHTN
Người dùng nhấn nút “Lưu” để xác nhận việc tạo mới thơng tin trạm dừng.
Hệ thống phát sinh mã trạm tương ứng và lưu trữ thơng tin vào cơ sở dữ liệu.
Delete a BusStation (Xĩa trạm dừng)
Người dùng nhập vào mã số trạm dừng muốn xĩa.
Hệ thống thâm nhập vào cơ sở dữ liệu lấy và hiện ra thơng tin của trạm tương ứng.
Người dùng xác nhận thơng tin trạm và nhấn nút “Xĩa” để xĩa trạm.
Hệ thống nhắc người dùng xác nhận thao tác xĩa.
Người dùng xác nhận thao tác xĩa.
Hệ thống xĩa thơng tin về trạm dừng ra khỏi cơ sở dữ liệu.
Edit a BusStation (Sửa đổi thơng tin trạm dừng)
Người dùng nhập mã số trạm dừng cần sửa đổi thơng tin.
Hệ thống truy cập cơ sở dữ liệu lấy và hiển thị thơng tin của trạm tương ứng.
Người dùng sửa đổi thơng tin của trạm dừng bao gồm: số hiệu trạm, loại trạm, tên trạm, địa chỉ, trạm đầu mối mà trạm thuộc về.
Người dùng nhấn nút “Cập nhật” để xác nhận thao tác sửa đổi.
Hệ thống cập nhật thơng tin của trạm dừng tương ứng vào trong cơ sở dữ liệu.
Trạm khơng nằm trên đường trong địa chỉ của trạm
Trong dịng sự kiện con Add new BusStation, Edit a BusStation nếu người dùng chọn vị trí trạm khơng nằm trên địa chỉ đường của trạm thì hệ thống sẽ hiện thơng báo lỗi. Người dùng cĩ thể nhập lại hoặc hủy bỏ thao tác thêm mới, lúc này use case kết thúc.
KHOA CNTT –
ĐH KHTN
Khơng thể xĩa trạm
Trong dịng sự kiện con Delete a BusStation nếu tồn tại một tuyến khác cĩ lộ trình đi qua trạm muốn xĩa thì hệ thống sẽ hiện thơng báo khơng thể xĩa trạm này. Người dùng cĩ thể nhập lại hoạc hủy bỏ thao tác xĩa trạm, lúc này use case kết thúc.
• Các yêu cầu đặc biệt
o Khơng cĩ. • Điều kiện tiên quyết
o Admin thực hiện use case này thơng qua Desktop Application.
• Post – conditions
o Nếu use case thành cơng thơng tin về trạm dừng sẽ được thêm, hủy hoặc sửa đổi. Ngược lại, tình trạng hệ thống khơng thay đổi.
• Điểm mở rộng
KHOA CNTT –
ĐH KHTN
Chương 4 Thiết kế
4.1.1 Thiết kế kiến trúc hệ thống
Hệ thống được thiết kế với 3 tầng khác nhau như sau
Client Layer Application Layer Data Layer Máy tính cá nhân Trình duyệt web (HTML + DHTML + Javascript) Web Server Cơ sở dữ liệu quan hệ
Web form + MapRender
Kiến trúc hệ thống
¾ Tầng client : được xây dựng bằng Javascirpt, HTML và DHTML, thực hiện nhiệm vụ xử lý các thao tác, lưu trữ thơng tin ứng với từng người sử dụng, đảm nhận vai trị trung gian, truyền nhận dữ liệu, giữa người sử dụng với web server.
¾ Tầng ứng dụng : chia làm 2 thành phần : WebForm và MapRender. Cả 2 đều được phát triển dựa trên cơng nghệ .NET (ASP.NET và C#)
y WebForm : đảm nhận trách nhiệm phát sinh giao diện và các đoạn script để tương tác với client, đĩng vai trị trung gian giữa client và
KHOA CNTT –
ĐH KHTN
MapRender, nĩ sẽ gởi yêu cầu của client tới MapRender và nhận dữ liệu trả vềđể gởi ngược cho client.
y MapRender : xử lý các thao tác về phát sinh bản đồ, tìm đường đi tối ưu, tra cứu thơng tin các đối tượng và tạo/xĩa/sửa các thơng tin về trạm/tuyết trên bản đồ. Nĩ là thành phần trung gian giữa WebForm và tầng cơ sở dữ liệu, tiếp nhận yêu cầu từ WebForm rồi gọi xuống tầng cơ sở dữ liệu để rút trích thơng tin sau đĩ tiến hành xử l ý rồi trả kết quả về cho WebForm.
¾ Tầng cơ sở dữ liệu : đĩng vai trị trung gian giữa tầng ứng dụng với cơ sở dữ liệu.
KHOA CNTT –
ĐH KHTN
4.1.2 Thiết kế giao diện
• Màn hình Web chính
Website hỗ trợ tìm đường đi xe buýt
KHOA CNTT –
ĐH KHTN
• Màn hình tra cứu thơng tin
Website hỗ trợ tìm đừng đi xe buýt
KHOA CNTT –
ĐH KHTN
• Màn hình tìm đường đi ngắn nhất
Website hỗ trợ tìm đừng đi xe buýt
KHOA CNTT –
ĐH KHTN
• Màn hình Desktop chính
KHOA CNTT –
ĐH KHTN
• Màn hình quản lý thơng tin tuyến xe buýt
KHOA CNTT –
ĐH KHTN
• Màn hình quản lý thơng tin trạm dừng
KHOA CNTT –
ĐH KHTN
4.1.3 Mơ hình lớp đối tượng
Hình 4.7 Mơ hình lớp đối tượng
4.1.4 Mơ hình dữ liệu (Data Model) 4.1.4.1 Phân tích 4.1.4.1 Phân tích
Trong bản đồ giao thơng, với mạng lưới các cung đường và cung tuyến dày đặc, việc trả lời cho câu hỏi truy vấn thơng tin, tìm đường với độ chính xác và nhanh chĩng là rất khĩ khăn. Đặc biệt trên mơi trường ứng dụng web, tốc độđược coi là yêu cầu hàng đầu. Do đĩ, để giải quyết các bài tốn trên mạng giao thơng chúng em đã thiết kế cơ sở dữ liệu cho hệ thống theo quan hệ topology, dựa trên nền tảng thiết kế cơ sở dữ liệu Vector Product Format (VPF) của Bộ quốc phịng Mỹ đưa ra, cho cả mạng giao thơng đường bộ và mạng tuyến xe buýt.
KHOA CNTT –
ĐH KHTN
• Mơ tả các đối tượng bản đồ chính
- Lớp đường giao thơng
Hình 4.8 Các đối tượng chính trên lớp đường giao thơng
- Lớp mạng tuyến xe buýt
KHOA CNTT –
ĐH KHTN
• Các khái niệm chính về Topology
- Topology là một cấu trúc định nghĩa mối quan hệ hình học giữa các đối tượng, nhằm giúp cho việc truy xuất các đối tượng một cách nhanh chĩng và chính xác.
- Winged-edge Topology là một cấu trúc topology liên kết mỗi cung với hai cung kề với nĩ, cho phép hình thành mối quan hệ giữa mạng lưới các đường (line) và mặt (face) trong bản đồ giao thơng.
Hình 4.10 Mơ hình Winged-edge Topology
- Các thành phần chính trong mơ hình Winged-edge Topology:
o Thơng tin đỉnh: một cung cĩ một đỉnh đầu và một đỉnh cuối. Thơng tin topology này được dùng đểđịnh nghĩa hướng của cung.
o Thơng tin cung: cung trái và cung phải nối một cung với các cung kề với nĩ. Cung trái là cung đầu tiên nối với cung tại đỉnh đầu của cung theo ngược chiều kim đồng hồ. Cung phải là cung đầu tiên nối với đỉnh cuối của cung theo ngược chiều kim đồng hồ.
o Thơng tin mặt: mỗi cung cĩ một mặt trái và một mặt phải, được định nghĩa bởi chiều của cung.
KHOA CNTT –
ĐH KHTN
- Các cấp Topology:
o Topology cấp 0: Quản lý các dữ liệu khơng gian thuần túy. Các thơng tin khơng theo quan hệ topology được lưu trữở cấp topology 0.
Hình 4.11 Topology cấp 0
o Topology cấp 1: Duy trì một đồ thị khơng phẳng. Tập các cung cĩ thể giao nhau tại nút.
o Topology cấp 2: Duy trì một đồ thị phẳng. Các cung và nút khi chiếu lên mặt phẳng các cung chỉ giao nhau tại nút.
KHOA CNTT –
ĐH KHTN
Hình 4.12 Topology cấp 1 và 2
o Topology cấp 3: Topology hồn tồn. Các cung chỉ giao nhau tại nút. Các mặt khơng che phủ nhau, tất cả các mặt phủ tồn bộ.
KHOA CNTT –
ĐH KHTN
KHOA CNTT –
ĐH KHTN
4.1.4.2 Áp dụng Topology cho việc tổ chức dữ liệu tuyến xe buýt
• Mơ hình vật lý BUSLINETYPEID = BUSLINETYPEID INCHARGEUNITID = INCHARGEUNITID TICKETFEEID = TICKETFEEID BUSLINEID = BUSLINEID BUSROUTEID = BUSROUTEID ROADID = ROADID BUSROUTEID = BUSROUTEID BUSEDGEID = BUSEDGEID BUSSTATIONID = FROMBUSSTATIONID BUSSTATIONID = TOBUSSTATIONID BUSSTATIONTYPEID = BUSSTATIONTYPEID BUSEDGEID = BUSEDGEID ROADEDGEID = ROADEDGEID ROADID = ROADID ROADEDGEID = ROADEDGEID ROADEDGEID = ROADEDGEID ROADNODEID = STARTROADNODEID ROADNODEID = ENDROADNODEID BUSSTATIONID = STARTBUSSTATIONID BUSSTATIONID = ENDBUSSTATIONID BUSSTATIONID = KEYBUSSTATIONID BUSEDGEID = LEFTBUSEDGEID BUSEDGEID = RIGHTBUSEDGEID BUSEDGEID = FIRSTBUSEDGEID ROADEDGEID = LEFTROADEDGEID ROADEDGEID = RIGHTROADEDGEID ROADEDGEID = FIRSTROADEDGEID PLACETYPEID = PLACETYPEID ROADEDGEID = ROADEDGEID BUSLINETYPE BUSLINETYPEID BUSLINETYPE INCHARGEUNIT INCHARGEUNITID INCHARGEUNITNAME TICKETFEE TICKETFEEID TICKETFEE1 TICKETFEE2 TICKETFEE3 BUSLINE BUSLINEID BUSLINETYPEID INCHARGEUNITID TICKETFEEID STARTBUSSTATIONID