Khóa luận Hỗ trợ phát hiện và thông báo ùn tắc giao thông trên android

Mục lục

Chương 1. TỔNG QUAN . 1

1.1 Yêu cầu và lý do thực hiệ n đề tài. 1

1.2 Mục tiêu của đề tài: . 2

1.3 Hướng tiếp cận của luận văn: . 2

Chương 2. CÁC KỸ THUẬT ĐưỢC SỬ DỤNG . 3

2.1 Giới thi ệu về Android . 3

2.1.1 Phát triển ứng dụng trên Android . 3

2.1.1.1 Cấu trúc của các tầng phần mềm trên Android . 3

2.1.1.2 Kiến trúc ứng dụng trên Android . 5

2.1.1.3 Các thư viện trên Android . 5

2.1.1.4 Các thành phần của ứng dụng Android . 7

2.1.1.4.1 Activity . 7

2.1.1.4.2 Service . 8

2.1.1.4.3 Broadcast receiver . 9

2.1.1.4.4 Content Provider . 10

2.1.1.4.5 Manifest file . 10

2.1.1.4.6 Các thành phần khác . 10

2.2 Giới thi ệu về ASP.NET MVC . 10

2.2.1 ASP.NET . 10

2.2.1.1 Đặc điểm của ASP.NET. 10

2.2.1.2 Một số khái niệm mới trong ASP.NET 3.5 . 12

2.2.1.2.1 ASP.NET AJAX . 12

2.2.1.2.2 LINQ . 12

2.2.2 ASP.NET MVC . 13

2.2.2.1 Khái niệm MVC . 13

2.2.2.2 Một vài chi tiết về ASP.NET MVC . 14

2.2.2.2.1 Cấu trúc một dự án trong Visual Studio . 14

2.2.2.2.2 Truyền dữ liệu từ Controller sang View . 15

2.2.2.2.3 Dữ liệu động trong View của MVC . 15

2.3 Giới thi ệu về Google Maps . 16

Chương 3. PHÂN TÍCH THIẾT KẾ. 18

3.1.1 Phân tích . 18

3.1.1.1 Phân tích dịch vụ Google Maps . 18

3.1.1.2 Phân tích yêu cầu . 18

3.1.1.2.1 Yêu cầu người dùng . 18

3.1.1.2.2 Yêu cầu hệ thống. 18

3.1.2 Xây dựng biểu đồ ca sử dụng . 19

3.1.2.1 Xác định Actor và ca sử dụng . 19

3.1.2.1.1 Tác nhân . 19

3.1.2.1.2 Ca sử dụng. 19

3.1.2.2 Biểu đồ ca sử dụng . 20

3.1.2.3 Đặc tả sơ đồ ca sử dụng . 20

3.1.2.3.1 Xem theo bả n đồ . 20

3.1.2.3.2 Xem theo danh sách . 20

3.1.2.3.3 Gửi thông báo . 21

3.1.2.3.4 Thêm mới dữ li ệu đường. 21

3.1.2.3.5 Chỉnh sử dữ li ệu đường . 22

3.1.2.3.7 Xem trạng thái theo tên đường. 22

3.1.2.3.8 Tạo trạng thái mới . 22

3.1.2.3.9 Cập nhật trạ ng thái . 23

3.1.2.3.10 Kết thúc trạng thái . 23

3.1.3 Biểu đồ tuầ n tự . 24

3.1.3.1 Xem theo bả n đồ . 24

3.1.3.2 Xem theo danh sách . 25

3.1.3.3 Thông báo trạng thái . 25

3.1.3.4 Xem thông tin trạng thái đường . 26

3.1.3.5 Tạo trạng thái mới . 26

3.1.3.6 Cập nhật trạ ng thái . 27

3.1.3.7 Kết thúc trạng thái . 28

3.1.4 Biểu đồ lớp . 29

3.1.5 Biểu đồ hoạt động . 30

3.1.5.1 Xem theo bả n đồ . 30

3.1.5.2 Xem theo danh sách . 31

3.1.5.3 Thông báo tình trạng giao thông . 32

3.1.5.4 Xem thông tin trạng thái theo đường . 33

3.1.5.5 Thêm trạng thái mới . 34

3.1.5.6 Cập nhật trạ ng thái . 35

3.1.5.7 Kết thúc trạng thái . 36

3.1.6 Biểu đồ thành phần . 36

3.1.7 Biểu đồ triể n khai . 37

3.1.8 Thi ết kế giao diện . 38

3.1.8.1 Màn hình chính chương trình trên Android . 38

3.1.8.2 Giao diện xem bản đồ . 39

3.1.8.3 Giao diện xem theo danh sách . 40

3.1.8.4 Gửi thông báo . 41

3.1.8.5 Màn hình hướng dẫn . 42

3.1.8.6 Màn hình điều khiển trạng thái . 43

3.1.8.7 Màn hình chỉnh sửa thông tin . 44

Chương 4. CÀI ĐẶT VÀ THỬ NGHIỆM . 45

4.1 Cài đặt . 45

4.1.1 Cài đặt server . 45

4.1.2 Cài đặt Client . 47

4.2 Thử nghiệm . 47

Chương 5. ĐÁNH GIÁ TỔNG KẾT . 48

pdf59 trang | Chia sẻ: maiphuongdc | Lượt xem: 1748 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Khóa luận Hỗ trợ phát hiện và thông báo ùn tắc giao thông trên android, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
tiện phổ biến, thoại trên nền GSM, Bluetooth EDGE, 3G và Wifi - Hỗ trợ Camera, GPS, la bàn, máy đo gia tốc… - Bộ phát triển ứng dụng SDK đầy đủ gồm thiết bị giả lập, công cụ sửa lỗi, tích hợp với Eclipse SDK. 2.1.1 Phát triển ứng dụng trên Android 2.1.1.1 Cấu trúc của các tầng phần mềm trên Android Cấu trúc của Android đƣợc chia theo tầng các phần mềm bao gồm tầng ứng dụng (Application Layer), Ứng dụng khung (Application Framework), Các thƣ viện (Libraries), Android Runtime và nhân Linux (Linux Kernel). Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG 4 Hình 2.1 Cấu trúc của các tầng phần mềm trên Android1 - Android Runtime: Bao gồm máy ảo Dalvik và các thƣ viện Android. o Các thư viện cơ bản: Các ứng dụng Android đƣợc phát triển trên môi trƣờng Java, nhƣng Dalvik lại không phải là một Java VM. Các thƣ viện cơ bản của Android cung cấp hầu hết các chức năng có trong thƣ viên cơ bản của Java cũng nhƣ là thƣ viện riêng của Android. o Máy ảo Dalvik: Dalvik là máy ảo để chạy các ứng dụng trên Android, đã đƣợc tối ƣu để đảm bảo rằng một thiết bị có thể chạ đƣợc nhiều Instance một cách hiệu quả. Nó dựa vào nhân Linux để thực hiện đa luồng và quản lý bộ nhớ cấp thấp. - Tầng ứng dụng khung: Cung cấp các lớp đƣợc sửa dụng để tạo ra các ứng dụng trong Android. Nó cũng cung cấp các lớp trừu tƣợng truy cập phần cứng và quản lý tài nguyên của ứng dụng. 1 Nguồn: Reto Meier. Professional Android™ Application Development. Indiana : Wiley Publishing, Inc., 2008, trang 13. Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG 5 - Tầng ứng dụng: Tất cả các ứng dụng, bao gồm ứng dụng sẵn có và ứng dụng từ nhà cung cấp thứ 3 đƣợc xếp vào tầng Ứng dụng với cùng một thƣ viện các giao diện lập trình(API). Tầng ứng dụng chạy trong Android Runtime (Dalvik) sử dụng các lớp và dịch vụ có sẵn trong lớp Ứng dụng khung. 2.1.1.2 Kiến trúc ứng dụng trên Android Kiến trúc của Android khuyến khích khái niệm Thành phần sử dụng lại, cho phép công bố và chia sẻ các Activity, Service, dữ liệu, với các ứng dụng khác với quyền truy cập đƣợc quản lý bởi khai báo. Cơ chế đó cho phép ngƣời lập trình tạo ra một trình quản lý danh bạ hoặc trình quay số điện thoại mà có các thành phần ngƣời khác có thể tạo mới giao diện và mở rộng chức năng thay vì tạo lại chúng. Những dịch vụ sau là những dịch vụ kiến trúc cơ bản nhất của tất cả các ứng dụng, cung cấp một framework cho mọi mọi phần mềm đƣợc xây dựng: - Actitvity Manager: Điều khiển vòng đời của các Activity bao gồm cả quản lý các tầng Activity. - Views: Đƣợc sử dụng để tạo lập cá giao diện ngƣời dùng cho các Activity - Notification Mamager: Cung cấp một cơ chế cố định và quy củ cho việc gửi các thông báo đến ngƣời dùng. - Content Provider: Cho phép ứng dụng chia sẻ dữ liệu giữa các ứng dụng. - Resource Manager: Hỗ trợ các thành phần không thuộc mã nguồn nhƣ là chuỗi ký tự, đồ họa đƣợc đặt bên ngoài. 2.1.1.3 Các thư viện trên Android Android cung cấp một số các APIs cho phát triển ứng dụng. Danh sách các API cơ bản sau đƣợc cung cấp bởi tất cả các thiết bị trên nền Android: - android.util: Gói tiện ích cơ bản bao gồm nhiều lớp mức thấp nhƣ là các lớp quản lý (List, Stack…) lớp xử lý chuỗi, lớp xử lý XML - android.os Gói hệ điều hành cung cấp truy cập đến các dịch vụ cơ bản nhƣ là chuyển tin nhắn, thông tin chéo, đồng hồ và gỡ lỗi. - android.graphics Cung cấp các lớp đồ họa mức thấp thực hiện các chức năng đồ họa, màu, vẽ cơ bản. - android.text Công cụ hiển thị và xử lý văn bản - android.database Cung cấp các lớp mức thất bắt buộc cho việc điều khiển cursor khi làm việc với các cơ sở dữ liệu Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG 6 - android.content Các giao tiếp lập trình nội dung đƣợc dùng để quản lý truy cập dữ liệu và xuất bản bằng cách cung cấp các dịch vụ thao tác với tài nguyên, Content Provider, và các gói - android.view View là lớp giao diện ngƣời dùng cơ bản nhất. Tất cả giao diện ngƣời dùng đƣợc tạo ra đều phải sử dụng một tập các View để cung cấp cho các thành phần tƣơng tác ngƣời dùng. - android.widget Xây dựng dựa trên gói View. Những lớp Widget những thành phần giao diện đƣợc tạo sẵn đƣợc sử dụng để tạo nên giao diện ngƣời dùng. Các Widget bao gồm danh sách, nút bấm, hộp nhập, các kiểu trình bày(layout) - com.google.android.maps bộ API mức cao cung cấp truy cập đến điều khiển bản đồ sẵn trong Androif từ ứng dụng đƣợc xây dựng. Bao gồm cả lớp MapView cũng nhƣ Overlay và MapController để tƣơng tác với bản đồ bên trong ứng dụng. - android.app Một gói thƣ viện bậc cao, cung cấp truy cập đến dữ liệu của ứng dụng. Gói ứng dụng cũng bao gồm lớp Activity và Service là thành phần cơ bản của mọi ứng dụng Android. - Android.provider Để tạo thuận lợi cho ngƣời phát triển truy cập đến các Content Provider tiêu chuẩn(nhƣ là dữ liệu danh bạ), gói Cung cấp(Provider) bao gồm các lớp cho phép truy cập đến cơ sở dữ liệu chuẩn trong tất cả các bản phân phối Android. - Android.telephony Các API điện đàm cung cấp khả năng tƣơng tác trực tiếp với tầng điện thoại trong các thiết bị, cho phép tạo, nhận, theo dõi các cuộc gọi, tình trạng các cuộc gọi và tin nhắn SMS. - android.webkit Gói WebKit cung cấp các API để làm việc với các nội dung Web-based bao gồm một lơp WebView để tạo ra giao diên web, nhúng trong ứng dụng và một trình quản lý cookie. - Cùng với các API của Android, còn có một tập các thƣ viện C/C++ nhƣ: o OpenGL Thƣ viện dùng để tạo ra các đồ họa 3D dựa vào chuẩn OpenGLES 1.0 API o FreeType Hỗ trợ xử lý bitmap và font vector o GGL Thƣ viện cơ bản, dùng để cung cấp các engine đồ họa 2D o Libc Thƣ viện C chuẩn, đƣợc tối ƣu cho các thiết bị Linux-based o SQLite Engine cơ sở dữ liệu quan hệ gọn nhẹ, dùng để lƣu trữ dữ liệu của ứng dụng Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG 7 o SSL Hỗ trợ sử dụng giao thức mã hóa Secure Sockets Layer trong bảo mật truyền thông Internet - Ngoài các thƣ viện chuẩn của Android, để đáp ứng tiêu chí phù hợp với nhiều thiết bị khác nhau, Android còn có thể có các API phụ thuộc thiết bị nhƣ android.location, android.media, android.opengl, android.hardware, android.bluetooth, android.net.wifi, và android.telephony. [1] 2.1.1.4 Các thành phần của ứng dụng Android 2.1.1.4.1 Activity Một Activity là đại diện cho một giao diện ngƣời dùng, tiếp nhận tƣơng tác ngƣời dùng với ứng dụng. Ví dụ một Activity có thể là một danh sách các mục mà ngƣời dùng có thể chọn lựa hoặc là một của sổ trình diễn ảnh với các thông tin khác. Một ứng dụng có thể có một hoặc nhiều Activity. Việc di chuyển giữa các Activity đƣợc thực hiện bằng cách từ Activity hiện tại mở ra Activity mới Giao diện của Activity đƣợc quy định bởi một đối tƣợng View có trật tự. Một View là một vùng hình chữ nhật bên trong cửa sổ màn hình. Một View cũng có thể chứa nhiều View khác. View có thể đƣợc tạo mới thông qua việc thừa kế lớp View hoặc khai báo thông qua file XML. Một activity có 3 trạng thái chính: - Active hoặc running khi nó ở trên nhất màn hình và nhận tƣơng tác ngƣời dùng - Paused khi Activity không còn là trọng tâm trên màn hình nhƣng vẫn hiện thị trƣớc ngƣời dùng. - Stopped Khi một activity hoàn toàn bị che khuất, nó sẽ rơi vào trạng thái Stopped. Tuy nhiên, nó vẫn còn lƣu trữ toàn bộ thông tin trạng thái. Và nó thƣờng bị hệ thống đóng lại khi có tình trạng thiếu bộ nhớ. Khi chuyển giữa các trạng thái, ứng dụng sẽ gọi các hàm callback ứng với các bƣớc chuyển: void onCreate(Bundle savedInstanceState) void onStart() void onRestart() void onResume() void onPause() void onStop() void onDestroy() Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG 8 Sơ đồ chuyển trạng thái đƣợc biểu diễn nhƣ hình dƣới. Hình 2.2 Sơ đồ chuyển trạng thái của Activity2 2.1.1.4.2 Service Một Service không có giao diện và chạy ngầm trong khoảng thời gian không xác định. Ví dụ, một Service có thể chơi nhạc ở chế độ ngầm khi ngƣời dùng chuyển ra khỏi trình nghe nhạc. Mỗi Service đề đƣợc mở rộng từ lớp cơ sở là Service trong gói android.app. Có thể kết nối tới hoặc kích hoạt một Service thông qua interface mà Service đƣa ra. 2 Nguồn: Application Fundamentals, 20/5/2010, fundamentals.html Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG 9 Cũng giống nhƣ Activity và cũng và những thành phần khác, các dịch vụ chạy trong luồng chính của ứng dụng. Vòng đời của một service Hình 2.3 Sơ đồ chuyển trạng thái của Service3 2.1.1.4.3 Broadcast receiver Một Broadcast receiver là một thành phần mà không làm gì khác ngoài việc nhận các thông báo đƣợc broadcast. Một ứng dụng có thể có nhiều broadcast receiver để đáp lại những thông báo đƣợc phát đến. Tất cả các broadcast receiver đƣợc thừa kế từ lớp cơ sở BroadcastReceiver. Một Broadcast receiver không có giao diện nhƣng nó có thể thực hiện gọi một Activity hay là sử dụng NotificationManager để thông báo cho ngƣời dùng. 3 Nguồn: Application Fundamentals, 20/5/2010, fundamentals.html Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG 10 2.1.1.4.4 Content Provider Một Content Provider tạo ra một tập các dữ liệu cụ thể nào đó của ứng dụng cung cấp cho các ứng dụng khác. Các lớp Content Provider thừa kế từ cơ sở ContentProvider để cài đặt một số hàm tiêu chuẩn cho phép ứng dụng khác nhận và lƣu trữ dữ liệu. 2.1.1.4.5 Manifest file File AndroidManifest.xml là file có cấu trúc XML đƣợc dùng để khai báo các thành phần trong ứng dụng Android. Nó cũng là nơi để khai báo các quyền truy cập của ứng dụng cũng nhƣ các thƣ viện cần thiết. 2.1.1.4.6 Các thành phần khác Ngoài các thành phần chính ở trên, còn có các thành phần khác nhƣ Resource bao gồm các file đồ họa, âm thanh, string,… và các thƣ viện do nhà cung cấp thứ 3. Tham khảo thêm về các thành phần trong [2]. 2.2 Giới thiệu về ASP.NET MVC 2.2.1 ASP.NET 2.2.1.1 Đặc điểm của ASP.NET ASP.NET có tên đầy đủ là Active Server Page .NET. ASP.NET là mô hình phát triển ứng dụng Web hợp nhấ bao gồm nhiều dịch vu cho phép xây dựng các ứng dụng Web tiên tiến với số code nhỏ nhất. ASP.NET là một phần của .NET Framework, khi lập trình với ASP.NET ngƣời lập trình có thể sử dụng các thự viện của .NET Framework. ASP.NET hỗ trợ lập trình với nhiều ngôn ngữ nhƣ là MS Visual Basic, C#, Jscript .NET và J#, các ngôn ngữ này đều phải tƣơng thích với “Common Language Runtime” (CLR). Các ngôn ngữ đều đƣợc dịch ra mã IL. ASP.NET là ngôn ngữ lập trình hƣớng đối tƣợng sử dụng các ngôn ngữ .NET. Nó cung cấp bộ các đối tƣợng nhỏ và thực sự là một tầng làm việc trên nguyên lý của HTTP và HTML. Mã nguồn không đƣợc truy cập toàn bộ các đối tƣợng trong .NET Framework nhƣng có thể khai thác tất cả các quy ƣớc của một môi trƣờng OOP (Object Oriented Programming). Thiết kế hƣớng đối tƣợng giúp tạo các lớp, giao diện, kế thừa các lớp. Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG 11 Hình 2.4 Vị trí của ASP.NET trong .NET Framework4 Một ứng dụng ASP.NET luôn luôn đƣợc biên dịch, nó không chạy bằng mã của C# hoặc Visual Basic mà không đƣợc biên dịch trƣớc. Một ứng dụng ASP.NET thực sự đƣợc biên dịch thông qua 2 giai đoạn: - Giai đoạn đầu tiên những các mã (C#, Visual Basic hoặc ngôn ngữ .NET khác) đƣợc dịch bởi Microsoft Intermediate Language (MSIL). Giai đoạn dịch này đƣợc dịch tự động khi trang web đầu tiên yêu cầu. Các file đƣợc dịch thành mã IL (Intermediate Language Code). - Giai đoạn tiếp theo đƣợc dịch trƣớc khi trang Web đƣợc thực thi. Tại giai đoạn này mã IL đƣợc dịch thành bản mã máy (Native Machine Code). Giai đoạn này đƣợc gọi là Just-In-Time (JIT). Khía cạnh quang trọng nhất của công cụ ASP.NET là nó chạy trong môi trƣờng thời gian thực (Runtime) của CLR (Common Language Runtime). CLR là máy ảo 4 Nguồn: .NET Framework, 20/5/2010, Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG 12 (virtual machine) trong Microsoft .NET, do có ngôn ngữ trung gian IL nên việc phát triển ứng dụng trên .NET sẽ không bị phụ thuộc vào thiết bị, có nghĩa là ứng dụng .NET có thể chạy trên bất kỳ thiết bị nào có .NET Framework. Tất cả các namespace, các ứng dụng, các lớp trong bộ .NET Framework đƣợc gọi tắt là bộ quản lý mã. CLR cũng cung cấp các dịch vụ quan trọng khác nhƣ: - Quản lý bộ nhớ - Thu nhặt rác trong bộ nhớ - Quản lý các luồng - Xử lý ngoại lệ - Bảo mật Mọi sự cài đặt .NET Framework đều cung cấp các lớp nhƣ nhau. Để triển khai ứng dụng ASP.NET chỉ cần sao chép các tập tin vào thƣ mục ảo trên máy chủ (server) và máy chỉ chỉ cần có .NET Framework. Việc cấu hình dễ dàng đơn giản không phụ thuộc vào IIS (Internet Information Services). Cấu hình trong ASP.NET đƣợc đặt trong file web.config. File web.config đƣợc để cùng với thƣ mực chứa trang web. File web.config không bao giờ bị khóa, Nó có thể truy cập bất kỳ lúc nào, việc sửa file này hoàn toàn dễ dàng vì chúng đƣợc lƣu dƣới dạng XML. 2.2.1.2 Một số khái niệm mới trong ASP.NET 3.5 2.2.1.2.1 ASP.NET AJAX Trong ASP.NET 2.0, ASP.NET AJAX đƣợc cài đặt thêm vào. Tuy nhiên trong ASP.NET 3.5, ASP.NET AJAX đã đƣợc tích hợp. vào trong .NET Framework, do đó quá trình xây dựng giao diện ngƣời dùng đƣợc dễ dàng và trực quan. ASP.NET AJAX Control Extenders đã đƣợc tích hợp ToolBox của Visual Studio 2008. 2.2.1.2.2 LINQ LINQ (Language Integrated Query) đƣa ra khả năng lập trình mới trong .NET. Giải pháp lập trình hợp nhất, đem đến khả năng truy vấn dữ liệu theo cú pháp SQL trực tiếp trong C# hay VB.NET, áp dụng cho tất cả các dạng dữ liệu từ đối tƣợng đến Cơ sở dữ liệu quan hệ và XML. Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG 13 Hình 2.5 Cấu trúc LINQ5 2.2.2 ASP.NET MVC 2.2.2.1 Khái niệm MVC MVC là một phƣơng pháp cài đặt chia một ứng dụng thành 3 phần với vai trò khác nhau : Model, View, Controller. - Model trong một ứng dụng MVC là thành phần giữa vai trò quản lý các trạng thái của ứng dụng. Trạng thái này thƣờng đƣợc lƣu trữ bên trong một cơ sở dữ liệu(ví dụ: một lớp Product đại diện cho dữ liệu trong bảng Products của một server SQL). - View là thành phần đảm nhận chức năng hiển thị giao diện ngƣời dùng của ứng dụng. Giao diện này thƣờng đƣợc tạo ra từ dữ liệu của Model(ví dụ nhƣ chúng ta có thể tạo ra một màn hình chỉnh sửa là “Edit Product” có các textbox, dropdown, và checkbox biểu thị trạng thái hiện thời của một Product) - Controller là thành phần đáp lại những tƣơng tác ngƣời dùng, thao tác với model và cuối cùng chọn một View phù hợp để trình bày kết quả. Trong một 5 Nguồn: What is LINQ, 20/5/2010, What-LINQ.aspx Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG 14 ứng dụng MVC, View chỉ hiển thị thông tin, còn Controller mới thao tác với các dữ liệu do ngƣời dùng nhập vào. Hình 2.6 Cấu trúc của mô hình MVC trên môi trường Web6 Lợi ích to lớn của phƣơng pháp MVC là giúp chia chƣơng trình ra thành các phần riêng lẻ, tạo ra sự minh bạch giữa dữ liệu, điều khiển, và hiển thị. Điều này khiến cho việc kiểm thử, bảo trì một hệ thống MVC dễ dàng và tiết kiệm hơn nhiều. 2.2.2.2 Một vài chi tiết về ASP.NET MVC 2.2.2.2.1 Cấu trúc một dự án trong Visual Studio Một project ASP.NET MVC trong Visual Studio có cấu trúc nhƣ sau: Hình 2.7 Cấu trúc dự án ASP.NET MVC trong Visual Studio 2008 6 Nguồn: S. Sanderson, 2009, Pro ASP.NET, trang 41 Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG 15 - /App_Data thƣờng dùng để chứa các file dữ liệu, thƣờng là các file *.mdf hoặc *.mdb, cũng có thể là cái file dữ liệu dạng xml. - /bin. Thƣ mục chứa các file đã đƣợc biên dịch cũng nhƣ các thƣ viện tham chiếu của ứng dụng - /Content thƣờng đƣợc dùng để chứa các file tĩnh nhƣ là đồ họa, âm thanh hoặc CSS. - /Controllers Lƣu trữ các lớp Controller (Các lớp thừa kế từ lớp cơ sơ là Controller hoặc cài đặt giao diện IController). - /Models Thƣ mục chứa các lớp model - /Views. Đây là nơi lƣu trữ các file View có phần mở rộng là *.aspx, *.ascx. Mỗi file đều đƣợc chứa trong thƣ mục con tƣơng ứng với tên của Controller. - /Views/Shared: chứa các file template và không thuộc một Controller cụ thể nào cả, ví dụ nhƣ file master page, file 404.html… - Default.aspx: không thực hiện một chức năng hiển thị nào cả, chỉ đơn giản là file mặc định để chỉ định vào cấu hình URL của ứng dụng - Global.asax Lƣu trữ các chỉ dẫn map URL, cũng nhƣ là cài đặt các quy định khởi động, tắt ứng dụng khi cần thiết. - Web.config Là file có cấu trúc XML, lƣu trữ toàn bộ các cấu hình của ứng dụng. 2.2.2.2.2 Truyền dữ liệu từ Controller sang View Việc truyền Model từ Controller sang View có thể thực hiện theo nhiều cách. Đơn giản là thực hiện gọi hàm: return View("MyView", modelObject); Nếu cần truyền nhiều dữ liệu khác, có thể sử dụng Mảng ViewData trong Controller để truyền dữ liệu: ViewData[“dataname”] = modelObject; ViewData sẽ đƣợc truyền qua View và sử dụng trở lại bằng cách lấy giá trị của ViewData[“dataname”]. 2.2.2.2.3 Dữ liệu động trong View của MVC Các View đƣợc khai báo theo định dạng HTML. Vì thế không sẽ không có đƣợc những ứng dụng tốt nếu nhƣ chỉ làm việc với các dữ liệu tĩnh. Có nhiều cách để Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG 16 thêm dữ liệu động trong View của MVC. Có thể sử dụng Inline Code, HTML helpers, Server controls, Partial views, và phƣơng thức Html.RenderAction(). Trong đó sử dụng Inline code cho những phần nhỏ đƣợc khuyến khích trong ASP.NET MVC. Inline code đƣợc đặt khai báo bằng thẻ . Ví dụ khi viết mã trong HTML là: Information about . 2.3 Giới thiệu về Google Maps 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, và Amazon… Google là hãng cung cấp dịch vụ tốt nhất với sản phẩm Google Maps với nhiều chức năng bản đồ cũng nhƣ cung cấp các APIs mở. Nhiều hạn chế trong các sản phẩm bản đồ nền Web-based đã đƣợc Google Maps khác phục. Để hiểu làm 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 sẽ 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ủa dữ liệu, phần cứng, phần mềm và nguồn lực con ngƣời. Dữ liệu trong ứng dụng 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ƣ là các 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à lƣu trữ trên máy chủ bởi chính tổ chức đó và nó cần đƣợc cập nhật định kỳ. Với Google Maps, sẽ không còn phải định vị và quản lý dữ liệu cơ sở nữa. Dữ liệu vùng, đƣờng đã đi kèm trong Google Maps. Tuy nhiên, ngƣời sử dụng cũng cần phải quản lý ứng dụng của mình bằng dữ liệu XML hoặc là cá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 để cài đặt bảo trì, quản trị phần mềm, lập trình tạo ra ứng dụng. Tuy không hoàn toàn loại bỏ các yêu cầu phần cứng và phần mềm, nhƣng chúng đã đƣợc giảm thiểu đáng kể với Google Maps. Vẫn cần phần cứng để triển khai ứng dụng nhƣng yêu cầu phần mềm thì đã đƣợc hạn chế một cách tối đa. Google Maps 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. Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG 17 Google Maps 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 hơn bao giờ hết. 18 Chương 3. PHÂN TÍCH THIẾT KẾ 3.1.1 Phân tích 3.1.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 đƣợc 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 và điểm cuối của một con đƣờng theo tên, phố. Ngƣợc lại, việc quản lý giao thông thì lại phải căn cứ vào tên đƣờng phố. Vì thế cần có thêm cơ sở dữ liệu để quản lý tên đƣờng phố là bắt buộc với ứng dụng trong đề tài này. 3.1.1.2 Phân tích yêu cầu 3.1.1.2.1 Yêu cầu người dùng Xây dựng phần mềm “Hỗ trợ phát hiện và thông báo ùn tắc giao thông trên nền Android” phải thực hiện đƣợc các chức năng sau: - Chức năng biên tập, dành cho ngƣời biên tập có thể đặt các trạng thái bằng cách thao tác trực tiếp trên bản đồ. - Chức năng xem thông tin dành cho ngƣời dùng dịch vụ có thể biết trạng thái các điểm đƣợc thông báo. 3.1.1.2.2 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ó công trình thi công, hoặc là có tai nạn giao thông. Những trạng thái này có thể đƣợc 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ế nguời biên tập có thể 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 chỉ định đƣợc tọa độ, tên đƣờng, tên trạng thái của nút giao thông trên bản đồ. - Ngƣời dùng thiết bị di động nền Android có thể xem các trạng thái đó trên điện thoại ở chế độ bản đồ hoặc theo danh sách. - Ngƣời dùng cũng có thể thông báo một con đƣờng đang bị tắc với mô tả và gửi lên cho Server. Chƣơng 3: PHÂN TÍCH THIẾT KẾ 19 - Client có thể tự động cập nhật các trạng thái sau một khoảng thời gian nào đó. Ngƣời dùng cũng có thể cập nhật bằng tay để có những thông tin cập nhật nhất. - Phần Server đƣợ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ực tiếp trên bản đồ vì thế yêu cầu Trạng thái đƣợc đặt cần phải đúng với một con đƣờng nào đó trên bản đồ. 3.1.2 Xây dựng biểu đồ ca sử dụng 3.1.2.1 Xác định Actor và ca sử dụng 3.1.2.1.1 Tác nhân - Nguoi dung: Ngƣời dùng điện thoại Android và phần mềm. - Nguoi bien tap: Ngƣời cập nhật thông tin trạng thái giao thông. 3.1.2.1.2 Ca sử dụng - Xem ban do: Ngƣời dùng thực hiện xem các thông tin giao thông trên bản đồ. - Xem theo danh sach: Ngƣời dùng xem các thông tin giao thông ở chế độ danh sách. - Cap nhat: thực hiện lại các việc gửi yêu cầu lên hệ thống để lấy thông tin. Các - Gui thong bao: Ngƣời dùng gửi thông báo các trạng thái giao thông cho hệ thống. - Xem trang thai theo duong: Ngƣời biên tập chọn một đƣờng trong danh sách để xem thông tin trạng thái đƣờng đó. - Tao trang thai: 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 đồ. - Cap nhat trang thai: Ngƣời biên tập thực hiện cập nhật trạng thái tại đ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. - Ket thuc trang thai: Ngƣời biên tập 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 đến cho ngƣời dùng nữa. Chƣơng 3: PHÂN TÍCH THIẾT KẾ 20 3.1.2.2 Biểu đồ ca sử dụng Hình 3.1 Biểu đồ ca sử dụng 3.1.2.3 Đặc tả sơ đồ ca sử dụng 3.1.2.3.1 Xem theo bản đồ Bảng 3.1 Ca sử dụng Xem theo bản đồ Tên ca sử dụng Xem theo bản đồ Tác nhân Ngƣời dùng Sự kiện kích hoạt Ngƣời dùng chọn nút Xem theo bản đồ trong phần Client Luồng sự kiện chính: 1. Khởi tạo Map Activity, chuyển đến vị trí của ngƣời dùng 2. Tạo luồng mới truy vấn dữ liệu từ hệ thống chờ dữ liệu trả về 3. Hiển thị lên bản đồ Luồng sự kiện phụ: 3.1. 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 3.1.2.3.2 Xem theo danh sách Bảng 3.2 Ca sử dụng Xem theo danh sách Tên ca sử dụng Xem theo danh sách Tác nhân Ngƣời dùng Sự kiện kích hoạt Ngƣời dùng chọn nút Xem theo danh sách trong phần Client Chƣơng 3: PHÂN TÍCH THIẾT KẾ 21 Luồng sự kiện chính: 1. Khởi tạo màn hình xem theo danh sách 2. Tạo luồng mới truy vấn dữ liệu từ hệ thống chờ dữ liệu trả về 3. Liệt kê ra màn hình các trạng thái nhận đƣợc Luồng sự kiện phụ: 2.1. Không tìm thấy hệ thống. Kết thúc luồng truy vấn, chờ thời gian cập nhật lại 2.2. Ngƣời dùng sử dụng hộp thoại lọc kết quả theo quận huyện. Hiện thị kết quả những quận huyện tƣơng ứng 3.1.2.3.3 Gửi thông báo Bảng 3.3 Ca sử dụng Gửi thông báo Tên ca sử dụng Gửi thông báo Tác nhân Ngƣời dùng Sự kiện kích hoạt Ngƣời dùng chọn nút Gửi thông báo trong phần Client Luồng sự kiện chính: 1. Khởi tạo màn hình Gửi thông báo 2. Khởi tạo luồng mới, truy xuất dữ liệu về danh sách thành phố và quận huyện từ hệ thống, để tạo bộ lọc địa chỉ 3. Ngƣời dùng sử dụng bộ lọc để nhập vào các thông tin về địa chỉ và mô tả 4. Tạo luồng mới gửi thông tin lên hệ thống. 5. Hiển thị thông báo thành công, qua

Các file đính kèm theo tài liệu này:

  • pdfDau Thanh Hai_K51CNPM_Khoa luan tot nghiep dai hoc.PDF