Phương pháp luận và nghiên cứu khoa học_Xây dựng phần mềm hỗ trợ phát hiện và thông báo tắc nghẽn giao thông trên lịch trình đi của người dùng dùng cho smartphone
Trang 1HỌC VIỆN
CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
ĐỀ TÀI:XÂY DỰNG PHẦN MỀM HỖ TRỢ PHÁT HIỆN
VÀ THÔNG BÁO TẮC NGHẼN GIAO THÔNG TRÊN LỊCH TRÌNH ĐI CỦA NGƯỜI DÙNG DÙNG CHO
SMARTPHONE
GIẢNG VIÊN: ĐẶNG HOÀI BẮC
Trang 2CHƯƠNG I TÍNH CẤP THIẾT CỦA ĐỀ TÀI
1 Khái quát thực trạng tắc nghẽn giao thông hiện nay
Từ khi nền kinh tế Việt Nam chuyển từ nền kinh tế kế hoạch tập trung sang nền kinh
tế thị trường thì bức tranh kinh kinh tế Việt Nam có nhiều điểm sáng,mức sống của người dân được cải thiện từng bước, được bạn bè các nước trong khu vực và quốc tế hết lòng ca ngợi về những thành tựu đổi mới trong quá trình xây dựng đất nước Tuy mức tăng trưởng của Việt Nam khá cao nhưng đi liền với nó là vấn đề tai nạn giao thông, tắc nghẽn giao thông, nhất là giao thông đường bộ Với các thành phố lớn thì chủ đề giao thông ngay càng thu hút sự quan tâm đông đảo dư luận, chưa bao giờ giảm nhiệt và rất khó kiểm soát, đặc biết là vấn đề tắc nghẽn giao thông đã và đang xảy ra hằng ngày, hàng giờ luôn là bài toán khó, một vấn đề nóng bỏng, nan giải đối với các nhà chức trách hiện nay Tắc nghẽn giao thông đang là nỗi bức xúc của người dân thành phố, với mỗi người dân thì bất cứ ai cũng
đã từng là nạn nhân của tình trạng tắc đường, nhất là giờ cao điểm hay những ngày mưu báo ngập úng Đặc biệt trong những năm gần đây, khi mật độ cung đường và thời gian ách tắc ngày càng tăng lên đang là vấn đề xã hội bức xúc, nó gây ra những thiệt hại không nhỏ
về kinh tế và ảnh hưởng xấu đến xức khỏe, đời sống và sinh hoạt của mọi tầng lớp nhân dân ở thành phố
2 Lý do chọn đề tài
Từ tình hình tắc nghẽn giao thông đó, các cơ quan chức năng đã có nhiều cố gắng đề ra các giải pháp chống tắc nghẽn giao thông Từ các giải pháp kỹ thuật phân làn đường, bịt các ngã tư, tăng cường người chỉ huy ở các nút giao thông hay bị tắc nghẽn đến giải pháp tận dụng sức mạnh cộng đồng như thực hiện chương trình VOV giao thông, tăng cường giáo dục, tuyên truyền, kêu gọi ý thức của mọi người tham gia giao thông Tuy nhiên, do mật độ giao thông quá lớn, cơ sở hạ tầng không đáp ứng được, một phần ý thức người tham gia giao thông chưa cao, nên các biện pháp đề ra hiệu quả chưa mang lại hiểu quả như mong muốn
Thực tế, hiện tượng tắc nghẽn giao thông chỉ thường xuyên xảy ra ở một số điểm cố định vào các giờ cao điểm Nếu chúng ta có cách thông báo cho mọi người tham gia giao thông biết được đoạn đường nào đi đang bị ùn tắc thì có thể giảm được một số điểm ùn tắc
Trang 3Trong thời gian qua, chương trình VOV giao thông của đài tiếng nói Việt Nam đã ra đời
và nhận được sử hưởng ứng tích cực của mọi người Cách làm của chương trình VOV giao thông đó là cùng người tham gia giao thông và các cộng tác viên tại các điểm hay xảy ra ùn
điểm của VOV giao thông là vì sử dụng chương trình phát thanh nên thông tin chỉ đến được một số ít người tham gia giao thông, thông tin được truyền tải dưới dạng âm thanh nên giảm bớt tính hiệu quả của thông tin
Hướng đến một cách tiếp cận khác đó là thông qua Internet và các thiết bị di động, em
đã chọn đề tài “ Xây dựng phần mềm hỗ trợ phát hiện và thông báo các điểm tắc nghẽn giao thông trên lịch trình đi của người dùng thông qua smartphone ” Bài toán giải quyết vấn đề chủ yếu dựa trện bản đồ của dịch vụ Google Map và các điện thoại smartphone Nó
sẽ giúp chúng ta có thể biết được các điểm đang tắc nghẽn giao thông trên lịch trình đi của mình Qua đó, sẽ giảm bớt tình trạng tắc nghẽn giao thông
CHƯƠNG II MỤC ĐÍCH, MỤC TIÊU
1 Mục đích
Với ý tưởng phần mềm này, giúp cho người dùng có thể phát hiện tình trạng điểm nút
2 Mục tiêu
như VOV giao thông
CHƯƠNG III TÌM HIỂU CÁC CÔNG NGHÊ ĐƯỢC SỬ DỤNG
1 Tổng quan về hệ điều hành Android
1.1 Giới thiệu về Android
Android là một hệ điều hành được phát triển bởi tập đoàn Google Được xây dựng trên một nền tảng mở, và một bộ thư viện đa năng, mạnh mẽ với nguyên lý mở Nền tảng Android tích hợp nhiều tính năng nổi bật:
lý bộ nhớ, điều khiển các tiến trình tối ưu cho các thiết bị di động
Trang 4- Bộ ứng dụng khung cho phép sử dụng lại và thay thế các thành phần riêng lẻ.
trình Java
trình quản lí đa phườn tiện
Eclipse SDk
1.2 Cấu trúc hệ điều hành
- Application: Android được phát hành cùng với một bộ các ứng dụng gốc bao gồm: email,
trình tin nhắn SMS, lịch bản đồ, trình duyệt web, danh bạ và một số ứng dụng khác Tất cả các ứng dụng trên được viết bằng ngôn ngữ lập trình Java
Trang 5- Application Framework: Bằng cách phát triển một nền tảng nhớ, Android cung cấp cho
các nhà phát triển khả năng xây dựng các ứng dụng vô cùng phong phú Bên cạnh đó, họ
có thể tự do tận dụng ưu điểm của các thiết bị phần cứng, thông tin địa điểm truy cập hay các dịch vụ chạy nền để thiết lập hệ thống báo động thông báo trên thanh trạn thái và rất nhiều dịch vụ khác nữa Ngoài ra, các nhà phát triển có toàn quyền truy cập vào nền tảng API ( Application Programming Interface – giao diện lập trình ứng dụng) mà các ứng dụng gốc sử dụng Cấu trúc của các ứng dụng được đơn giản hó thiết kế giúp cho việc tái sử dụng, thay thế các thành phần của bất kỳ ứng dụng nào đó một cách dễ dàng(nhưng phải tùy thuộc vào cơ chế bảo mật riêng của từng ứng dụng)
những trình duyệt web nhúng
chia sẻ dữ liệu của riên mình
thanh trạng thái
1.3 Các thư viện
Android được tích hợp một thư viện ngôn ngữ C/C++ được sử dụng bởi nhiều thành phần khác nhau của hệ thống Thư viện ngôn ngữ này sẽ tiếp xúc với các nhà phát triển ứng dụng thông qua nền tảng hệ điều hành Android Một số thư viện như:
- System C library: co gốc từ hệ thống thư viện chuẩn C (LIBC) giúp điều chỉnh nhúng cho
các thiết bị sử dụng nền tảng Linux
- Media Libraries: dựa trên OpenCore của PacketVideo, hỗ trợ ghi và phát lại âm thanh,
hình ảnh, video dưới dạng nhiều định dạng phổ biến như MPEG4, H.264, MP3, AAC, AMR, JPG và PNG
- Surface Manager: quản lý truy cập vào các hệ thống hiển thị và tổng hợp đồ họa 2D và
3D các lớp từ nhiều ứng dụng trên thiết bị
- LibWebCore: trình duyệt web hiện đại hỗ trợ cả trình duyệt web của Android và các
trình duyệt web nhúng khác
- SGL: công cụ đồ họa 2D cơ bản.
- 3D libraries: dựa trên OpenGL ES 1.0 API, dùng để tăng tốc phần cứng 3D(nếu có) hoặc
để tối ưu hóa các thành phần 3D
- SQlite: cơ sở dữ liệu dùng cho tất cả các ứng dụng.
2.Tìm hiểu về dịch vụ Google Map
Hiện tại, có nhiều nhà cung cấp dịch vụ bản đồ trực tuyến miễn phí như là Google, Yahoo, Microsoft…Google là hãng cung cấp dịch vụ tốt nhât với sản phầm Google Map với
Trang 6nhiều chức năng bản đồ cũng như cung cấp APIs mở Nhiều hạn chế trong các sản phẩm của bản đồ Web- based đã được Google Map khắc phục Để hiểu cách nào mà công nghệ này có khả năng thay đổi cách thức tạo bản đồ số chúng ta tìm hiểu qua cách tiếp cận cổ điển trong xuất bản bản đồ môi trường Web Bản đồ web cổ điển dựa vào cơ sở hạ tầng phức tạp cảu dữ liệu phần cứng, phần mềm và nguồn lực con người
Dữ liệu trong bản đồ Web cổ điển có thể chia làm 2 danh mục riêng biệt: dữ liệu cơ sở
và dữ liệu của ứng dụng Dữ liệu cơ sở, hay dữ liệu nền thường bao gồm dữ liệu địa lý và thường có nhiều lớp như là lớp khí quyển, ảnh, đường và các đường biên lãnh thổ Dữ liệu cụ thể của ứng dụng bao gồm các tầng dữ liệu cụ thể cho ứng dụng được phát triển
Ví dụ một ứng dụng bản đồ web cho một thành phố thì sẽ có các lớp như vùng trực thuộc,
vị trí các trường học, các công trình công cộng và nhiều lớp khác Mỗi lớp dữ liệu này phải được định vị và được lưu trữ trên máy chủ của tổ chức đó và được cập nhật định kỳ Với Google Map sẽ không còn phải quản lý và định vị cơ sở dữ liệu nữa Dữ liệu vùng, đường
đã được đi kèm trong Google Maps Tuy nhiên người sử dụng cần phải quản lý ứng dụng của mình bằng dữ liệu XML Hoặc định dạng khác
Không chỉ có các yêu cầu dữ liệu phức tạp, các ứng dụng bản đồ cổ điển còn có các vấn
đề với phần cứng phần mềm và sức lực con người Phải mua thêm phần cứng và phần mềm, cũng như cần có sự quản lý của con người để bảo trì, quản lý phần mềm, lập trình tạo ứng dụng Tuy không hoàn toàn loại bỏ các phần cứng và phần mềm, nhưng chúng đã giảm thiểu đáng kể với Google Map Vẫn cần phần cứng để khai triển ứng dụng nhưng yêu cầu phần mềm thì đã được hạn chế tối đa Google Map là sản phầm miễn phí, không cần cài đặt, hay quản lí Sản phầm hỗ trợ các APIs để tạo ra các chức năng tùy biến của ứng dụng Google Map hỗ trợ các dịch vụ như định vị, tìm đường, thêm dữ liệu cá nhân, các điều khiển làm cho việc ứng dụng bản đồ trong ứng dụng Web trở nên dễ dàng và thuận tiện
3 Tìm hiểu về ASP.NET MVC
Mẫu kiến trúc Model - View – Controller được sử dụng nhằm chỉ ứng dụng ba thành phần chính: model, view và controller Nền tảng ASP.NET MVC giúp cho chúng ta có thể tạo
ra được các ứng dụng web áp dụng mô hình MVC thay vì tạo ứng dụng theo mẫu ASP.NET Web Forms Nền tảng ASP.NET MVC có đặc điểm nổi bật là nhẹ, dễ kiểm tra thử phần giao diện tích hợp các tính năng có sẵn của ASP.NET Nền tảng ASP.NET MVC được định nghĩa trong namespace System.Web.Mvc và là một phần của namespace System.Web MVC là một mẫu thiết kế chuẩn mà nhiều lập trình viên đã quen thuộc Một số loại ứng dụng web
sẽ thích hợp với kiến trúc MVC Một số khác vẫn thích hợp với ASP.NET WEB Forms và cơ chế postbcaks Đôi khi có những ứng dụng kết hợp cả hai kiến trúc trên
Trang 7Nền tảng MVC bao gồm các thành phần dưới đây:
Model: Các đối tượng Models là một phần cảu ứng dụng, các đối tượng này thiết lập
logic cảu phần dữ liệu của ứng dụng Thông thường, các đối tượng model lấy và lưu trạng thái cảu model trong CSDL Ví dụ như một đối tượng Product sẽ lấy dữ liệu từ CSDL thao tác trên dữ liệu và sẽ cập nhật dữ liệu trở lại vào bảng Products ở SQL Server Trong các ứng dụng nhỏ, model thường là chỉ một khái niệm nhằm nhằm phân biệt hơn là cài đặt thực thụ, ví dụ nếu ứng dụng chỉ đọc dữ liệu từ CSDL và gởi chúng đến view, ứng dụng không cần phải có tầng model và các lớp lien quan Trong trường hợp này, dữ liệu được lấy như là một đối tượng model(hơn là một tầng model)
Views: Views là các thành phần dùng để hiển thị giao diện người dùng Thông thường, view được tạo dựa vào thông tin dữ liệu mode, Ví dụ như, view dùng để cập nhật bảng Products sẽ hiển thị các hộp văn bản, drop-down list và các check box dựa trên trạng thái hiện tại cảu một đối tượng Product
Controller: Controller là các thành phâng dùng để quản lý tương tác ngườ dùng, làm việc với model và chọn view để hiện thỉ giap diện người dùng Trong một ứng dụng MVC, view chỉ được dùng để hiển thị thông tin, controller chịu trách nhiệm quản lý và đáp trả nôi dung người dùng nhập và tương tác với người dùng Ví dụ, controller sẽ quản lý các dữ liệu người dùng gửi lên và gửi các giá trị đó đến model, model sẽ lấy giá trị từ CSDL nhờ vào các giá trị này
Mẫu MVC giúp bạn tạo được các ứng dụng mà chúng nhận phân tách rạch ròi các khía cạnh của ứng dụng Mẫu MVC chỉ ra mỗi loại logic kể trên nên được thiết lập ở đâu trên ứng dụng Logic giao diện thuộc về views Logic nhập liệu thuộc về controller và logic tác vụ thuộc về model Sự phân chia này giúp bạn giảm bớt sự phức tạp của ứng dụng và chỉ tập
Trang 8trung vào mỗi khía cạnh cần được cài đặt ở mỗi thời điểm Ví dụ như bạn chỉ tập trung vào giao diện view mà không cần quan tâm đến logic xử lý thông tin của ứng dụng
Để quản lý sự phức tạp của ứng dụng, mẫu MVC giúp cho chúng ta có thể kiểm thử ứng dụng dễ dàng hơn hẳn so với khi áp dụng mẫu Web Forms Ví dụ, trong một ứng dụng ASP.NET Web Forms, một lớp thường được sử dụng để hiển thị thông tin xuất ra cho người dùng và đồng thời xử lý thông tin người dùng nhập Việc xây dựng các bộ test tự động cho ứng dụng Web Forms là rất phức tạp, bởi để kiểm thử mỗi trang web, bạn phải khởi tạo đối tượng trang, khởi tạo tất cả các control được sử dụng trong trang và các lớp phụ thuộc trong ứng dụng Và bởi vì có quá nhiều lớp cần được khởi tạo để chạy được trang, thật khó
để có thể viết các test chỉ tập trung vào một khía cạnh nào đó của ứng dụng Và vì thế, kiểm thử đối với các ứng dụng dứa trên nền tảng Web Forms sẽ khó khăn hơn nhiều so với khi áp dụng trên ứng dụng MVC Hơn thế nữa, việc kiểm thử trên nền tảng Web Forms yêu cầu phải sử dụng đến web server Nền tảng MVC phân tách các thành phần và sử dụng các interface (khái niệm giao diện trong lập trình hướng đối tượng), và nhờ đó có thể kiểm thử các thành phần riêng biệt trong tình trạng phân lập với các yếu tố còn lại của ứng dụng
Sự phân tách rạch ròi ba thành phần của ứng dụng MVC còn giúp cho việc lập trình diễn ra song song Ví dụ như một lập trình viên làm việc với view, lập trình viên thứ hai lo cài đặt logic của controller và lập trình viên thứ ba có thể tập trung vào logic tác vụ của model tại cùng một thời điểm
CHƯƠNG IV PHÂN TÍCH THIẾT KẾ
1 Phân tích
1 1 Phân tích dịch vụ Google Maps
Dịch vụ bản đồ số Google Maps có hỗ trợ một số chức năng như: tìm đường đi giữa 2 điểm, ước lượng khoảng cách, xác định tọa độ của một điểm theo tên nhập vào, hoặc lấy tọa độ từ một điểm trên bản đồ Tuy nhiên Google Maps lại không hỗ trợ xác định điểm đầu điểm cuối con đường theo tên, phố Ngược lại, việc quản lý giao thông lại căn cứ vào tên đường phố Vì thế cần có cơ sở dữ liệu để quản lý tên đường phố là bắt buộc với đề tài này
1.2 Phân tích yêu cầu
1.2.a Yêu cầu người dùng
Xây dựng phần mềm phải thực hiện được chức năng:
Trang 9- Chức năng biên tập, dành cho người biên tập có thể đặt trạng thái bằng cách thao tác trực tiếp trên bản đồ
giao thông mà mình cần biết
1.2.b Yêu cầu hệ thống
- Một nút giao thông có thể có nhiều trạng thái như tắc đường, cấm đường, công trình đang thi công, hoặc tai nạn giao thông Những trạng thái có thể thêm vào hoặc sửa đổi cho phù hợp
- Dữ liệu đường phố, vùng địa lý thực tế có thể bị thay đổi, vì thế người biên tập cần cập nhật được cơ sở dữ liệu đường phố, quân huyện khi cần thiết để đảm bảo tính chính xác
- Chức năng báo tắc đường phải được chỉnh tọa độ, tên đường, trạng thái điểm giao thông trên bản đồ
- Người dùng thiết bị smartphone nền Android có thể xem các trạng thái đó trên smartphone ở chế độ bản đồ hoặc theo danh sách
- Người dùng có thể thông báo một con đường đang bị tắc với mô tả gửi lên Sever
- Người dùng có thể tự động cập nhật các trạng thái sau một thời gian nào đó Người dùng có thể cập nhật bằng tay để có những thông tin cập nhật mới nhất
- Phần Sever được lập trình trên nền Web phải hỗ trợ các thao tác như bấm chuột phải
để đặt trạng thái Người biên tập thao tác trên bản đồ vì thế yêu cầu đặt trạng thái phải đúng với một con đường nào đó trên bản đồ
2 Xây dựng các trạng thái trong phần mềm
2.1 Các trạng thái
- Xem bản đồ: Người dùng thực hiện xem các thông tin giao thông trên bản đồ.
- Xem theo điểm nút: Người dùng có thể xem tình trạng giao thông tại các điểm mà mình
định đi qua
- Gửi thông báo: Người dùng gửi thông báo các trạng thái giao thông cho hệ thống.
- Tạo trạng thái: Người biên tập thông báo một trạng thái mới qua một điểm trên bản đồ.
Trang 10- Cập nhật trạng thái: Người biên tập thực hiện cập nhật trạng thái tại một điểm Mục
đích cập nhật là thay đổi mô tả, hoặc thời gian dự kiến kết thúc
- Kết thúc trạng thái: Người biên tập sẽ kết thúc một trạng thái sớm hơn thời gian dự
kiến, thông tin về trạng thái sẽ không được gửi về người dùng nữa
2.2 Chi tiết các trạng thái sử dụng
2.2.a Xem theo bản đồ
phần Client Các sự kiện chính diễn ra:
Sự kiện phụ diễn ra:
Không liên lạc được với hệ thống Kết thúc luồng truy vấn chớ thời gian cập nhật lại.
1.Chọn chức năng xem biểu đồ
2.Load dữ liệu map
3.Dữ liệu bản đồ
4.Request Data
5.Dữ liệu trạng thái
2.2.b Xem theo điểm nút
phần Client Các sự kiện diễn ra:
Người
dùng
Màn hình điều khiển
Server