« Home « Kết quả tìm kiếm

Nghiên cứu và ứng dụng framework phát triển ứng dụng đa nền tảng vào thi trắc nghiệm trực tuyến.


Tóm tắt Xem thử

- Luận văn thạc sỹ: Viện Công nghệ thông tin và truyền thông Đại học Bách Khoa Hà Nội Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 1 LỜI CÁM ƠN Trước tiên, em xin dành những lời cảm ơn chân thành tới các thầy cô giáo Đại học Bách Khoa Hà Nội, đặc biệt là các thầy cô Viện Công Nghệ Thông Tin và Truyền Thông, Viện đào tạo sau đại học đã hết sức tận tình giảng dạy, hướng dẫn em trong suốt năm học vừa qua, từng bước xây dựng, vun đắp những kiến thức em tích lũy được ngày nay.
- Đặc biệt em xin được dành những lời cảm ơn sâu sắc nhất tới thầy giáo TS.Nguyễn Thanh Hùng – giảng viên bộ môn Công Nghệ Phần Mềm, là người đã trực tiếp hướng dẫn em hoàn thành luận văn này.
- Hà Nội, Tháng 4 năm 2015 Chân thành cám ơn! Luận văn thạc sỹ: Viện Công nghệ thông tin và truyền thông Đại học Bách Khoa Hà Nội Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 2 MỤC LỤC LỜI CÁM ƠN.
- 6 Nội dung luận văn.
- 6 CHƢƠNG 1: CƠ SỞ LÝ THUYẾT VÀ CÁC CÔNG NGHỆ SỬ DỤNG.
- 8 1.1.2 Tại sao chọn GWT xây dựng ứng dụng.
- 24 Luận văn thạc sỹ: Viện Công nghệ thông tin và truyền thông Đại học Bách Khoa Hà Nội Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 3 Lƣu trữ dữ liệu trong Java.
- 333 Tại sao sử dụng Phonegap.
- 344 Kiến trúc của ứng dụng phonegap.
- 45 CHƢƠNG 2: MÔ HÌNH XÂY DỰNG ỨNG DỤNG.
- 48 2.1 Mô hình sử dụng trong ứng dụng – Mô hình MVP (MVP Activity and Place.
- 5959 Luận văn thạc sỹ: Viện Công nghệ thông tin và truyền thông Đại học Bách Khoa Hà Nội Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 4 3.1.2 Đặc tả chức năng.
- 7979 4.2 Cài đặt ứng dụng và kết quả.
- 82 4.2.1 Đăng ký ứng dụng với facebook.
- 82 4.2.2 Ứng dụng trên android.
- 855 4.2.3 Ứng dụng trên web.
- 86 4.2.4 Một số hình ảnh kết quả chạy ứng dụng.
- 9797 Luận văn thạc sỹ: Viện Công nghệ thông tin và truyền thông Đại học Bách Khoa Hà Nội Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 5 PHẦN MỞ ĐẦU Cơ sở lý luận và thực tiễn của đề tài Hiện nay một số khó khăn gặp phải đã và đang đƣợc giải quyết trong kiểm tra đánh giá chất lƣợng giáo dục là khó khăn trong đánh giá kết quả học tập một cách trung thực khách quan, tiết kiệm thời gian chấm bài và trả bài, giảm gánh nặng cho cả giảng viên và học viên đồng thời có thể thanh lọc, sửa chữa, bổ sung ngân hàng đề thi câu hỏi một cách nhanh chóng dễ dàng.
- Ứng dụng công nghệ thông tin trong dạy và học là một trong những xu thế phát triển nhằm nâng cao chất lƣợng giáo dục và đào tạo, góp phần đổi mới phƣơng pháp dạy và học cũng nhƣ quản lý trong các trƣờng học.
- Chỉ thị số 55/2008/CT-BGDĐT ngày 30/9/2008 về tăng cƣờng giảng dạy, đào tạo và ứng dụng công nghệ thông tin trong nghành giáo dục giai đoạn 2008-2012 đã chỉ rõ việc đẩy mạnh xây dựng trên website các cơ sở dữ liệu và thƣ viện học liệu điện tử ( bao gồm cả đề thi trắc nghiệm).
- Chính vì thế, luận văn đã lựa chọn công nghệ và tìm hiểu về framework phát triển ứng dụng đa nền tảng nhƣ Google Web Toolkit (GWT) và PhoneGap để xây dựng ứng dụng thi trắc nghiệm trực tuyến.
- Cùng với tính ngày càng gia tăng của thị trƣờng di động đặc biệt là SmartPhone với nhiều hệ điều hành khác nhau và sự phát triển của Luận văn thạc sỹ: Viện Công nghệ thông tin và truyền thông Đại học Bách Khoa Hà Nội Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 6 máy tính điện tử sử dụng nhiều hệ điều hành khác nhau là tiền đề cơ sở để tạo điều kiện thúc đẩy lƣợng cầu về sản phẩm ứng dụng của luận văn này.
- Mục đích của hệ thống: Là áp dụng công nghệ vào hỗ trợ giảng dạy trong các trƣờng học.
- Hệ thống xây dựng cho phép bất cứ học viên nào với chiếc máy tính (cả laptop và desktop) hay thậm chí ngay cả với chiếc di động nhỏ gọn smartphone có thể đăng nhập vào hệ thống đều có thể nhận và gửi trả lời các câu hỏi trắc nghiệm khách quan từ giáo viên và hệ thống sẽ tự chấm bài trực tuyến.
- Giải pháp Tìm hiểu về Framework đa nền tảng Google Web Toolkit và Phone Gap Hiện nay có rất nhiều sự lựa chọn về mặt công nghệ lập trình, framework để phát triển ứng dụng.
- Qua khảo sát bài toán yêu cầu thực tế, Luận văn đã xây dựng một ứng dụng dựa trên web sử dụng framework đa nền tảng là GWT và Phonegap.
- Đồng thời với sự phát triển của thị trƣờng di động smartphone ngày càng gia tăng thì PhoneGap là một framework dành cho xây dựng ứng dụng trên các thiết bị điện thoại di động (hybrid application).
- PhoneGap đƣợc phát triển bởi Nitobi đƣợc Adobe mua lại năm 2011, tuy công nghệ mới xuất hiện vài năm lại đây nhƣng nó đã khẳng định đƣợc chỗ đứng trên thị trƣờng framework xây dựng ứng dụng dành cho di động.
- Lý do chọn Google Web Toolkit và Phone Gap Luận văn thạc sỹ: Viện Công nghệ thông tin và truyền thông Đại học Bách Khoa Hà Nội Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 7 Từ nắm bắt nhu cầu thực tế thị trƣờng của việc gia tăng sử dụng các loại thiết bị điện tử khác nhau vào phục vụ học tập, sự phát triển ngày càng nâng cao về chất lƣợng phục vụ internet.
- Cùng với đó là mục tiêu hƣớng đến luận văn không chỉ dừng lại ở áp dụng cho các kỳ thi trắc nghiệm mà tham vọng mở rộng áp dụng cho nhiều lĩnh vực hoạt động nhƣ: trợ giảng trong các buổi học tại lớp hoặc tích hợp vào lĩnh vực E_learning đã dẫn đến quyết định xây dựng ứng dụng web application trên đa nền tảng.
- Luận văn đã quyết định lựa chọn framework đa nền tảng GWT và PhoneGap vào xây dựng ứng dụng của mình.
- Ƣu điểm và nhƣợc điểm của các framework nêu trên sẽ đƣợc ngƣời viết đề cập sâu hơn ở chƣơng 2 Cơ sở lý thuyết và các công nghệ sử dụng.
- Phần mở đầu: Trong phần này nêu rõ thực tiễn vấn đề khó khăn đang gặp phải và kết quả luận văn có thể làm đƣợc là xây dựng một ứng dụng để hỗ trợ giải quyết khó khăn này.
- Chƣơng 1: Công nghệ sử dụng.
- Trong phần này đi sâu vào phân tích các công nghệ đƣợc lựa chọn để áp dụng giải quyết vấn đề đƣa ra trên.
- Chƣơng 2: Mô hình xây dựng ứng dụng.
- Trong phần này đƣa ra mô hình MVP để xây dựng ứng dụng.
- Trong phần này sẽ giới thiệu về các tính năng mà hệ thống có thể làm đƣợc.
- Đồng thời đi vào phân tích cách thiết kế ứng dụng và cài đặt.
- Trong chƣơng này đi vào phân tích cách cài đặt ứng dụng trên web và điện thoại di động hệ điều hành Android.
- Kết luận và hƣớng phát triển Luận văn thạc sỹ: Viện Công nghệ thông tin và truyền thông Đại học Bách Khoa Hà Nội Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 8 CHƢƠNG 1: CƠ SỞ LÝ THUYẾT VÀ CÁC CÔNG NGHỆ SỬ DỤNG 1.1 Google Web Toolkit (GWT) 1.1.1 Google Web Toolkit là gì? GWT là tập hợp các công cụ (tool), các thƣ viện và các plugin.
- Nó đƣợc xây dựng nhƣ một nền tảng ổn định cho các ứng dụng dựa trên web (của Google) mà phải chạy trên hầu hết các trình duyệt.
- Điều cốt lỗi, GWT là một trình biên dịch đặc biệt có thể chuyển đổi từ Java sang Javascript với thời gian chạy rất nhỏ.
- Những tập Java API chuẩn đƣợc thực hiện trong JavaScript bởi vậy code của bạn có thể gọi chúng ngay cả khi đã chuyển đổi.
- Bạn có thể xem danh sách đầy đủ các API Java mô phỏng tại http://code.google.com/webtoolkit/doc/latest/RefJreEmulation.html.
- GWT không chỉ đơn thuần là trình biên dịch.
- Trình biên dịch có thể tạo đầu ra khác biệt cho mỗi trình duyệt.
- 1.1.2 Tại sao chọn GWT xây dựng ứng dụng Luận văn thạc sỹ: Viện Công nghệ thông tin và truyền thông Đại học Bách Khoa Hà Nội Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 9 Trong mục này chúng ta sẽ đi giải quyết các câu hỏi và bố cục tổng thể cách tiếp cận GWT.
- Tìm hiểu tại sao GWT đƣợc tạo ra, nó đƣợc ứng dụng ở đâu và tại sao nó lại quan trọng khi xây dựng (quản lý) phát triển một phần mềm.
- Tại sao phải code ứng dụng web với GWT? Tại sao không chỉ dừng lại với JavaScript? Ƣu điểm của GWT là gì? Tại sao khuyên bạn nên dùng GWT - GWT là một công cụ cho phép bạn phát triển code phía client với Java, và phiên dịch code của bạn sang JavaScript để có thể chạy trên trình duyệt của máy client.
- Sản phẩm cuối cùng là một ứng dụng web với hầu hết mức độ tƣơng tác của ứng dụng desktop, cho phép chạy trên máy khách với yêu cầu tối thiểu code hoặc tƣơng tác phía server.
- Tại sao lại là ứng dụng dựa trên web? Ngày nay, với sự phát triển không ngừng của thế hệ Web 2.0, việc xây dựng 1 ứng dụng chạy trên nền web, gọi tắt là RIA (Rich Internet Application) đã trở nên khá phổ biến.
- Ứng dụng nền web (Web App) là khái niệm xuất hiện trên thế giới từ lâu với những tên gọi quen thuộc và nổi tiếng nhƣ: Apps FaceBook, Google Apps, Microsoft Apps.
- Hiện nay, ở Việt nam, sự phát triển của các ứng dụng trên nền web cũng là một trong những điểm sáng đáng chú ý trong lĩnh vực công nghệ thông tin.
- Việc xây dựng ứng dụng trên nền web có khá nhiều lợi thế so với ứng dụng desktop thông thƣờng.
- Trong khi 1 ứng dụng desktop thông thƣờng sẽ phải tốn nhiều chi phí cho việc cài đặt, bảo trì, nâng cấp trên từng máy tính thì ứng dụng trên web có thể chạy bất cứ nơi đâu thông qua một trình duyệt web mà không hề phải cài đặt.
- Tuy nhiên, những ứng dụng trên web vẫn tồn tại những hạn chế nhất định, đó là khả năng hỗ trợ ứng dụng, các control không mạnh bằng ứng dụng desktop, tốc độ chƣơng trình Luận văn thạc sỹ: Viện Công nghệ thông tin và truyền thông Đại học Bách Khoa Hà Nội Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 10 phụ thuộc vào server, đƣờng truyền.
- Cùng với quá trình chạy đua trong việc nâng cấp hệ điều hành (OS) từ các nhà cung cấp cũng nhƣ sự phát triển của HTML5, thì các ứng dụng chạy trên nền web (web app) đang dần thu hẹp khoảng cách với ứng dụng gốc.
- Sự phát triển và những tiện lợi đi đầu của ngôn ngữ HTML5 (bên cạnh đó là jQuery/CSS) đã giúp cho ứng dụng web có thể làm đƣợc những điều mà ứng dụng gốc đã và đang có.
- Có thể nói khi phần cứng và hệ điều hành của smartphone đƣợc nâng cấp thì đó cũng chính là “thời” của ứng dụng web, vì hạn chế trƣớc đây của ứng dụng web nhƣ tốc độ truy cập, giao diện ngƣời dùng không hấp dẫn đã dần đƣợc khắc phục.
- Các nhà phát triển phần mềm đang dần chuyển sang mảnh đất đƣợc cho là khá màu mỡ này, vì không bị giới hạn bởi hệ điều hành cụ thể, và đặc biệt phần mềm có thể đƣợc nâng cấp nhanh chóng hơn.
- Các phần hƣớng phát triển của web và các khó khăn là lý do để các công nghệ ra đời, đầu tiên là RIA và sau này có GWT.
- Các công nghệ luôn đi kèm với nhƣng ƣu và nhƣợc điểm của nó, nhƣng điểm tốt đó là GWT đƣợc thiết kế theo hƣớng thiết kế web tier.
- Sau khi biên dịch mã sang JavaScript, cùng một thử nghiệm có thể sử dụng lại nền sâu hơn cung cấp bởi GWT.
- Phƣơng tiện kiểm thử và công cụ hỗ trợ là đích hƣớng tới và trọng tâm của GWT, là chế độ tiêu chuẩn trong lập trình truyền thống nhƣng không phải phổ biến cho các Luận văn thạc sỹ: Viện Công nghệ thông tin và truyền thông Đại học Bách Khoa Hà Nội Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 11 công nghệ web phía máy client.
- Giải quyết với sự thay đổi công nghệ: Theo phong cách lập trình truyền thống, để phát triển web cần yêu cầu trình độ cao để giải quyết với sự khác nhau trong cách xử lý giữa các loại trình duyệt và các phiên bản.
- Thậm chí ngay cả khi bạn chỉ viết một ứng dụng web chuẩn sử dụng HTML và các form thì kéo theo đó bạn phải biết chi tiết, cụ thể về phiên bản nào của HTML, DOM (Document Oject Model), CSS, JavaScript và các chuẩn HTTP.
- Ngƣời phát triển cần nhận thức ra đƣợc cách mà các lỗi và các thói quen ảnh hƣởng đến mỗi trình duyệt… GWT không giải quyết các khó khăn trực tiếp đó, nhƣng nó đóng gói lại và cho phép ngƣời phát triển chỉ cần quan tâm đến ứng dụng của họ mà không phải quan tâm đến sự khác nhau giữa các trình duyệt.
- Bởi vì ứng dụng đƣợc tạo ra tự động, công cụ tìm kiếm không đánh chỉ mục cho nội dung của nó.
- Nếu mô hình doanh nghiệp của bạn phụ thuộc vào Search Engine Optimization (SEO) thì GWT có thể không phù hợp cho bạn.
- Ngoài ra các trang GWT không giảm sự tinh xảo khi trình diện trong trình duyệt cũ vì vậy nó có thể không chạy hoặc chạy đƣợc nhƣng không có middle ground với chức năng giới hạn và phạm vi hạn chế.
- Luận văn thạc sỹ: Viện Công nghệ thông tin và truyền thông Đại học Bách Khoa Hà Nội Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 12 Về bảo mật, ứng dụng GWT cũng dễ bị tấn công nhƣ bất cứ ứng dụng JavaScript nào.
- Sử dụng GWT không cho phép bạn bỏ qua bất cứ bảo mật nào, tuy nhiên trƣớc khi có một số cải tiến bảo mật sắp tới bạn nên phòng ngừa nhƣ đối với các ứng dụng web phát triển với bất kỳ công cụ nào khác.
- Có ít công cụ hơn cho code bằng JavaScript, ứng dụng của bạn sẽ có nhiều vấn đề về trình duyệt nếu kiểm thử với IE8.
- Một số quan điểm cho rằng để ứng dụng internet phong phú bạn nên trực tiếp làm việc với JavaScript vì đó là những gì lập trình viên thực sự làm và hãy quên đi sự lựa chọn thay thế.
- Code thực sự độc lập trên các trình duyệt khá là khó viết, và nó khó để đảm bảo yêu cầu kỷ luật của ứng dụng.
- 1.1.4 Các thành phần cơ bản của GWT? GWT cung cấp một số công nghệ để xây dựng ứng dụng Ajax: GWT compiler ( java-to-JavaScript compiler), tầng UI, hệ thống RPC, hàng loạt tiện ích bổ sung giúp web tier dễ quản lý hơn, GWT shell, thƣ viện mô phỏng JRE.
- Để biên dịch một chƣơng trình GWT chạy chƣơng trình Luận văn thạc sỹ: Viện Công nghệ thông tin và truyền thông Đại học Bách Khoa Hà Nội Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 13 javacom.google.gwt.dev.GWTCompiler, truyền vào cho nó vị trí module và một số tham số khác.
- Thành phần quan trọng nhất của GWT là trình biên dịch Java sang JavaScript.
- Nó đƣa code Java 1.5 tạo ra các phiên bản JavaScripts tƣơng đƣơng khác nhau để có thể chạy trên tất cả các trình duyệt đƣợc hỗ.
- Tuy nhiên bằng cách xác định nhiệm vụ biên dịch GWT thành các module, trình biên dịch có thể thực hiện nhiều hơn các phân tích trong code mà nó xử lý và phân nhánh thành nhiều thành phần biên dịch cho các mục tiêu đầu ra khác nhau.
- Điều này có nghĩa khi biên dịch một lớp, bạn có thể xác định việc triển khai khác nhau dựa trên các thông số đƣợc biết đến.
- Thƣ viện JRE Emulation Trong khi nhìn chung Java có thể sử dụng thƣ viện đóng gói sẵn mà không cần quan tâm gì hơn, thì GWT Compiler khi làm việc nó yêu cầu phải truy cập vào mã nguồn thực tế cho bất cứ lớp nào bạn có thể dùng.
- Công việc của JRE Emulation library là cung cấp một ánh xạ của Java Runtime Environment (JRE) Luận văn thạc sỹ: Viện Công nghệ thông tin và truyền thông Đại học Bách Khoa Hà Nội Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 14 lên JavaScript.
- Phần thứ hai giải quyết với các lớp đƣợc mô phỏng bởi GWT và có thể đƣợc sử dụng bởi các nhà lập trình.
- Hỗ trợ ngôn ngữ Bạn có thể sử dụng toàn bộ ngôn ngữ Java khi phát triển ứng dụng GWT, tuy nhiên có một vài sự khác biệt bạn cần nhận thức đƣợc để tránh các vấn đề xuất hiện trong các giai đoạn sau.
- Tuy nhiên, bạn có thể an toàn sử dụng kiểu long nếu nhƣ nó đƣợc giữ lại trong context code Java của bạn.
- Đơn luồng: Vì trình biên dịch JavaScript là đơn luồng nên ứng dụng của bạn tốt hơn nên là đơn luồng.
- Không reflection: Bạn không thể sử dụng reflection để tải các lớp động.
- Luận văn thạc sỹ: Viện Công nghệ thông tin và truyền thông Đại học Bách Khoa Hà Nội Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 15 Các lớp được mô phỏng Nhƣ đã chỉ ra ở trên, chúng ta có thể sử dụng hầu hết các ngôn ngữ java khi phát triển ứng dụng GWT.
- Nhƣng không phải tất cả mọi thứ là có thể khi phát triển mã mà điều cần thiết là phải dịch sang đƣợc JavaScript và sau đó là chạy trên một môi trƣờng trình duyệt.
- Có bốn thƣ viện chuẩn của Java đƣợc hỗ trợ trong GWT là java.io (rất hạn chế), java.lang, java.sql (cũng khá hạn chế) và java.util bạn có thể thấy thiếu một số lớp và một số phƣơng thức( điều này cũng là hợp lý: Ví dụ: Bởi vì JavaScript không thể sử dụng các file hầu nhƣ là các lớp trong java.io nó chỉ không làm việc khi biên dịch sang javaScript).
- Ngoài ra còn có hai sự khác biệt nhỏ mà bạn nên nhớ khi viết code ứng dụng GWT.
- Sau đây là một số lớp tiện ích hay đƣợc dùng khi xây dựng ứng dụng GWT thực tế.
- com.google.gwt.i18n.client.NumberFormat: Thay thế cho lớp java.util.NumberFormat Luận văn thạc sỹ: Viện Công nghệ thông tin và truyền thông Đại học Bách Khoa Hà Nội Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 16  com.google.gwt.user.client.Timer: Lớp browser-safetimer có thể đƣợc dùng để bắt chƣớc một môi trƣờng luồng cho phép bạn tạo ra các schedule task và các hành động.
- Sử dụng các widget khá giống với Swing trong java.
- Style có thể đƣợc thực hiện trên cơ sở object-per-object hoặc tổng quát hơn bằng cách sử dụng CSS.
- Một số đối tƣợng tổng hợp, thƣờng dùng cho các ứng dụng máy tính để bàn, chẳng hạn nhƣ DatePicker cho đầu vào ngày, SuggestBox cho các đề xuất thời gian thực dựa trên những gì ngƣời dùng gõ vào, RichTextArea cho đầu vào văn bản… Các panel là các container cho các widget hoặc các panel khác.
- Giao thức RPC Chúng ta có thể lựa chọn một số chiến lƣợc để thực hiện giao tiếp với server mà GWT cung cấp tùy theo từng dạng dữ liệu mà ta muốn lấy về nhƣ ba cách chính sau: Tạo ra một GWT RPC, lấy về một JSON data thông qua HTTP hay tạo ra các yêu cầu Cross-Site cho JSONP.
- Điểm khác biệt cơ bản giữa ứng dụng GWT và ứng dụng web HTML là ứng dụng GWT không cần tìm về các trang HTML mới trong khi chạy bởi vì nó chạy nhƣ một

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt