ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS...

169
TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ---o0o--- Đề tài: ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS PHONE Cán bộ hướng dẫn: Ks. Hồ Quang Thái MSCB: 2299 HK I, 2013 - 2014 Sinh viên thực hiện: Tô Ngọc Ẩn MSSV: 1091649 LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

Transcript of ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS...

TRƯỜNG ĐẠI HỌC CẦN THƠ

KHOA CÔNG NGHỆ THÔNG TIN

VÀ TRUYỀN THÔNG

---o0o---

Đề tài:

ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ

TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG

WINDOWS PHONE

Cán bộ hướng dẫn:

Ks. Hồ Quang Thái

MSCB: 2299

HK I, 2013 - 2014

Sinh viên thực hiện:

Tô Ngọc Ẩn

MSSV: 1091649

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

Cán bộ phản biện:

Ths.GVC. Võ Huỳnh Trâm MSCB: 1069

Ths. Phan Phương Lan MSCB: 1232

Luận văn được bảo vệ tại Hội đồng bảo vệ luận văn tốt nghiệp Bộ Môn Công

Nghệ Phần Mềm, Khoa Công Nghệ Thông Tin Và Truyền Thông, Trường Đại

Học Cần Thơ vào ngày 28 tháng 11 năm 2013.

Mã đề tài:

Có thể tìm hiểu luận văn tại:

Thư viện Khoa Công nghệ thông tin và Truyền thông, Trường Đại học

Cần Thơ.

Website: http://www.cit.ctu.edu.vn.

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

Cán bộ hướng dẫn:

Ks. Hồ Quang Thái

MSCB: 2299

Sinh viên thực hiện:

Tô Ngọc Ẩn

MSSV: 1091649

TRƯỜNG ĐẠI HỌC CẦN THƠ

KHOA CÔNG NGHỆ THÔNG TIN

VÀ TRUYỀN THÔNG

---o0o---

Đề tài:

ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ

TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG

WINDOWS PHONE

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

LỜI CẢM ƠN

Trước tiên em xin nói lời cảm ơn đến những người thân trong gia đình đã quan

tâm sâu sắc và tạo mọi điều kiện tốt nhất để em được chú tâm học tập, và rèn luyện

tại trường Đại học Cần Thơ trong suốt 4 năm qua.

Em cũng chân thành cảm ơn những thầy cô trường Đại học Cần Thơ nói chung,

Khoa công nghệ thông tin và truyền thông nói riêng đã nhiệt tình chỉ dạy, truyền thụ

kĩ năng và kiến thức cho em trong thời gian em còn trên ghế giảng đường. Xin cám

ơn các thầy cô truyền dạy kiến thức cơ sở ngành, nhờ họ mà em đã có nền tảng vững

chắc và định hướng rõ ràng. Cảm ơn các giảng viên truyền dạy các môn chuyên

ngành, giúp em tiếp thu kinh nghiệm và kĩ năng cần thiết cho công việc và cuộc sống

của mình.

Đặc biệt, xin bày tỏ lòng biết ơn chân thành và sâu sắc nhất tới Thầy, Ks. Hồ

Quang Thái đã tạo điều kiện cho em thực hiện đề tài luận văn này. Thầy giúp em làm

việc có kế hoạch rõ ràng, thực hiện công việc đúng thời gian đã lập ra. Đây là yếu tố

quan trọng sẽ giúp ích cho sự thăng tiến trong công việc của em sau này. Chân thành

cảm ơn sự chỉ dạy và giúp đỡ của Thầy trong suốt thời gian qua.

Xin cám ơn những người bạn tốt, những người bạn cùng lớp, những người ở

bên cạnh tôi luôn hết lòng giúp đỡ khi tôi cần đến trong suốt thời gian học tập và hoàn

thành đề tài của mình.

Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép

nhưng chắc chắn sẽ không tránh khỏi những thiếu sót. Em kính mong nhận được sự

cảm thông và tận tình chỉ bảo của quý Thầy Cô và các Bạn.

Em xin chân thành cảm ơn!

Cần thơ, ngày 11 tháng 11 năm 2013

Sinh viên

Tô Ngọc Ẩn

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

2

NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

..................................................................................................................................

Cần Thơ, ngày 28 tháng 11 năm 2013

Cán bộ hướng dẫn

Ks. Hồ Quang Thái

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

3

NHẬN XÉT CỦA CÁN BỘ PHẢN BIỆN

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

Cần Thơ, ngày 28 tháng 11 năm 2013

Cán bộ phản biện

Ths.GVC Võ Huỳnh Trâm

Ths. Phan Phương Lan

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

4

MỤC LỤC

LỜI CẢM ƠN ........................................................................................................................ 1

NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN ........................................................................ 2 NHẬN XÉT CỦA CÁN BỘ PHẢN BIỆN ........................................................................... 3 MỤC LỤC ............................................................................................................................. 4 DANH MỤC HÌNH ............................................................................................................... 6 KÝ HIỆU VÀ VIẾT TẮT ..................................................................................................... 7

TÓM TẮT .............................................................................................................................. 8 ABSTRACT ......................................................................................................................... 10

CHƯƠNG I: TỔNG QUAN ................................................................................................ 12 I.1. ĐẶT VẤN ĐỀ....................................................................................................... 12 I.2. LỊCH SỬ VẤN ĐỀ ............................................................................................... 13 I.3. PHẠM VI ĐỀ TÀI ................................................................................................ 13

I.3.1. Về phía người dùng ....................................................................................... 13

I.3.2. Về lý thuyết .................................................................................................... 14

I.3.3. Về kỹ thuật ..................................................................................................... 15 I.4. PHƯƠNG PHÁP NGHIÊN CỨU ......................................................................... 15

I.4.1. Thu thập tài liệu ............................................................................................. 15

I.4.2. Phân tích và thiết kế hệ thống ........................................................................ 15 I.4.3. Công nghệ thực hiện ...................................................................................... 15

I.4.4. Công cụ lập trình ............................................................................................ 15

CHƯƠNG II: CƠ SỞ LÝ THUYẾT ................................................................................... 17

II.1. TÌM HIỂU VỀ HỆ ĐIỀU HÀNH WINDOW PHONE ........................................ 17 II.2. TỔNG QUAN VỀ SILVERLIGHT ...................................................................... 17

II.2.1. Silverlight là gì? ............................................................................................. 17

II.2.2. Các đặc tính của Siverlight ............................................................................ 17 II.2.3. Kiến trúc tổng thể và các mô hình lập trình của Silverlight .......................... 19

II.3. XAML ................................................................................................................... 23 II.3.1 Sơ lược về xaml ............................................................................................. 23 II.3.2 Khai báo đối tượng ........................................................................................ 23 II.3.3 Thiết lập đặc tính cho đối tượng .................................................................... 23

II.3.4 Root elements và namespace trong xaml ....................................................... 25 II.3.5 Sự kiện ........................................................................................................... 25

II.4. MÔ HÌNH MVVM ............................................................................................... 26

II.4.1 Data binding ................................................................................................... 27 II.4.2 Data template ................................................................................................. 27 II.4.3 Command ....................................................................................................... 28 II.4.4 Các thành phần của mvvm ............................................................................. 28

II.5. MOODLE .............................................................................................................. 29 II.5.1 Kiến trúc hệ thống moodle ............................................................................. 29 II.5.2 Dịch vụ web của moodle ............................................................................... 33 II.5.3 API Functions Moodle ................................................................................... 39

II.6. TÌM HIỂU VỀ DOM ............................................................................................ 54 II.6.1 Tổng quan về DOM ....................................................................................... 54

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

5

II.6.2 Các thành phần cơ bản của DOM .................................................................. 54 CHƯƠNG III: XÂY DỰNG ỨNG DỤNG ......................................................................... 59

III.1. ĐẶC TẢ YÊU CẦU PHẦN MỀM (IEEE-STD-830-2002) ............................. 59 III.1.1. Giới thiệu.................................................................................................... 59 III.1.2. Mô tả tổng quan ......................................................................................... 60 III.1.3. Các yêu cầu giao tiếp bên ngoài ................................................................. 64 III.1.4. Các tính năng của hệ thống ........................................................................ 65

III.1.5. Các yêu cầu phi chức năng ......................................................................... 81 III.1.6. Các yêu cầu khác ........................................................................................ 82

III.2. THIẾT KẾ PHẦN MỀM (IEEE-V1) ................................................................ 83 III.3. KIỂM THỬ PHẦN MỀM (IEEE-V1) ............................................................ 134

III.3.1. Giới thiệu kế hoạch kiểm thử ................................................................... 134

III.3.2. Chi tiết kế hoạch kiểm thử ....................................................................... 135 III.3.3. Quản lý kiểm thử ...................................................................................... 138

III.3.4. Giới thiệu trường các hợp kiểm thử ......................................................... 142 III.3.5. Môi trường kiểm thử ................................................................................ 142 III.3.6. Các trường hợp kiểm thử ......................................................................... 143

CHƯƠNG IV: KẾT LUẬN ............................................................................................... 162

IV.1. KẾT QUẢ ĐẠT ĐƯỢC .................................................................................. 162 IV.1.1. Lý thuyết .................................................................................................. 162

IV.1.2. Chương trình ............................................................................................ 162 IV.1.3. Thực tế ..................................................................................................... 162

IV.2. HẠN CHẾ ....................................................................................................... 162

IV.3. HƯỚNG PHÁT TRIỂN .................................................................................. 163 PHỤ LỤC CÀI ĐẶT ỨNG DỤNG ................................................................................... 164

TÀI LIỆU THAM KHẢO ................................................................................................. 167

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

6

DANH MỤC HÌNH

Hình 1. Thành phần kiến trúc của Silverlight ........................................................... 20

Hình 2. các lớp trong mô hình MVVM và sự tương tác giữa chúng. ....................... 28

Hình 3: Tree node ...................................................................................................... 55

Hình 4: tree node và mối quan hệ giữa các nút ......................................................... 56

Hình 5. Các chức năng của sản phẩm. ...................................................................... 62

Hình 6. Thiết kế hệ thống. ......................................................................................... 84

Hình 7. Mô hình MVVM. ......................................................................................... 85

Hình 8. Đăng nhập hệ thống. .................................................................................... 87

Hình 9. Tạo người dùng. ........................................................................................... 90

Hình 10. Lấy hồ sơ người dùng. ............................................................................... 94

Hình 11. cập nhật thông tin cá nhân. ......................................................................... 96

Hình 12. Đổi mật khẩu. ............................................................................................. 99

Hình 13. Tạo khóa học mới. .................................................................................... 102

Hình 14. lấy thông tin khóa học. ............................................................................. 105

Hình 15. Xem nội dung khóa học ........................................................................... 107

Hình 16. Tạo nhóm người dùng. ............................................................................. 109

Hình 17. Thêm thành viên vào nhóm. ..................................................................... 112

Hình 18. Xóa thành viên ra khỏi nhóm. .................................................................. 115

Hình 19. Lấy thông tin các nhóm người dùng trong khóa học. .............................. 118

Hình 20. Ghi danh người dùng vào khóa học. ........................................................ 120

Hình 21. Lấy thông tin danh mục............................................................................ 123

Hình 22. Xem nội dung diễn đàn môn học. ............................................................ 125

Hình 23. Tạo chủ đề mới trên diễn đàn. .................................................................. 127

Hình 24. Tải tập tin xuống từ diễn đàn. .................................................................. 129

Hình 25. Gửi tin nhắn. ............................................................................................. 132

Hình 26. Tạo ghi chú. .............................................................................................. 133

Hình 27. Hình cài đặt ứng dụng trên máy ảo. ......................................................... 164

Hình 28. Cấu hình điện thoại. ................................................................................. 165

Hình 29. Deploy ứng dụng vào máy thật. ............................................................... 166

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

7

KÝ HIỆU VÀ VIẾT TẮT

STT KÍ HIỆU DIỄN GIẢI GHI CHÚ

1 CNTT Công nghệ thông tin

2 CNTT – TT Khoa Công nghệ thông tin và Truyền Thông

3 HĐH Hệ điều hành

4 XAML Extensible Application Markup Language

5 LMS Learning Management System

6 PHP Hypertext Preprocessor

7 CSS Cascading Style Sheets

8 DHCP Dynamic Host Configuration Protocol

9 API Application Programming Interface

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

8

TÓM TẮT

Ngày nay, khi cuộc đua công nghệ đang diễn ở hầu hết các lĩnh vực, thì mảng

thiết bị di động đang được sự quan tâm của các nhà phát triển. Trong các hệ điều hành

trên nền tảng di động hiện nay, có thể nói Windows Phone là gương mặt mới nhất.

Với sự hỗ trợ của các nền tảng và công nghệ tiên tiến mà Microsoft dành cho

Windows Phone, các lập trình viên ngày càng dễ dàng sáng tạo ra hàng loạt ứng dụng

có giá trị và hữu ích.

Trước sự phát triển đó, áp dụng công nghệ thông tin vào giáo dục luôn là mục

tiêu hàng đầu của nhà nước ta. Hàng loạt phần mềm giáo dục được tạo ra nhằm hỗ

trợ đổi mới phương pháp giảng dạy, học tập góp phần nâng cao hiệu quả và chất

lượng giáo dục. Một trong những phần mềm giáo dục phổ biến hiện nay không thể

không nhắc đến Moodle – hệ thống quản lý đào tạo trực tuyến vô cùng chặt chẽ. Cùng

với sự phát triển mạnh mẽ của hệ điều hành mới Windows Phone đã thúc đẩy nhà

phát triển tạo ra phần mềm có thể giao tiếp, tương tác với hệ thống học tập trên. Đó

là lý do phần mềm Moodle Windows Phone được tạo ra nhằm thỏa mãn nhu cầu

người dùng.

Ứng dụng Moodle Windows Phone được xây dựng từ nền tảng Silverlight. Đây

là nền tảng công nghệ mới nhưng mang lại hiệu quả cao cho các ứng dụng mạng,

truyền tải thông tin. Ứng dụng tương tác tốt với cơ sở dữ liệu của Moodle thông qua

API Functions mà hệ thống cung cấp, giúp người dùng có thể giao tiếp tốt hơn với hệ

thống. Ngoài ra còn sử dụng mô hình DOM trong phân tích và trích xuất dữ liệu từ

Website. Để thiết kế giao diện đặc trưng cho Windows Phone, ứng dụng được sự hỗ

trợ của ngôn ngữ đánh dấu XAML, dạng ngôn ngữ đánh dấu khá giống với HTML.

Mô hình MVVM được Microsoft xây dựng cũng sẽ được áp dụng vào quá trình phát

triển phần mềm, mục đích là tạo thuận lợi cho công tác quản lý mã nguồn, bảo trì và

nâng cấp ứng dụng.

Kết quả quá trình phát triển ứng dụng Moodle Windows Phone đã đáp ứng được

nhu cầu của người dùng trên hệ thống Moodle. Trước hết, ứng dụng hoạt động ổn

định trên hệ điều hành Windows Phone 8. Người dùng dễ dàng thao tác và sử dụng

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

9

các chức năng mà ứng dụng cung cấp: Tạo người dùng, tạo khóa học, xem thông tin

cá nhân, xem nội dung khóa học, tham gia thảo luận trên diễn đàn và tải xuống các

tài liệu liên quan… Ngoài ra người dùng có thể gửi tin nhắn, tạo ghi chú và nhiều

chức năng mở rộng dành cho người quản trị. Tin chắc rằng ứng dụng Moodle

Windows Phone sẽ làm hài lòng người sử dụng.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

0

ABSTRACT

Nowadays, when the race of technology is taking place in every field, mobile

devices are being interested in by developers. In operating systems based on current

mobile foundation, Windows Phone is the newest operating system. With the support

of advanced technologies and foundation which are reserved for Windows Phone by

Microsoft, it is easy for programmers to create a series of valuable and useful

applications.

For the development, the application of technology in Education is always the

main purpose of our country. A series of educational software are created to help

improve the educational methods, enhance educational effects and quality. One of the

most popular educational software cannot but mention Moodle – E-Learing

Management System. Windows Phone has promoted developers to create software

which can communicate and interact with the above educational system in company

with the powerful development of new operating systems. It is the reason that Moodle

of Windows Phone is created to satisfy user’s demands.

Moodle Application of Windows Phone is built under the Silverlight

foundation. Although this is a new technology foundation, it brings high effects to

network application and information communicating application. The application

interacts with Moodle database through API Functions which are provided to help

users communicate with the system better. Besides that, DOM model is used for

analyzing and extract database from Website. To design a typical interface for

Windows Phone, the application is supported by XAML – a type of Markup

Language which is nearly the same as HTML. MVVM model built by Microsoft is

being used for developing software. The purpose is to advantage the work of source

code management, maintaining and upgrading applications.

The results of the development process of Moodle Windows Phone have

satisfied the users’ demands on Moodle system. Firstly, the application stably

operates on Windows Phone 8 operating system. It is easy for users to manipulate

and use the functions provided by the application: create users, courses, see personal

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

1

information, course content, discuss on forum and download related documents…

Besides that, users can send messages, make note and other extend functions used for

programmer. It is believed that Moodle application of Windows Phone will satisfy

users.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

2

CHƯƠNG I: TỔNG QUAN

I.1. ĐẶT VẤN ĐỀ

Sự bùng nổ của CNTT đã và đang tác động mạnh mẽ vào sự phát triển của tất

cả các ngành trong đời sống xã hội. Khi hiện nay toàn ngành giáo dục được kết nối

internet thì ứng dụng CNTT trong ngành giáo dục là nhu cầu tất yếu với mục tiêu

hướng tới người học nhiều hơn, tăng cường tính chủ động trong học tập và nghiên

cứu, góp phần tạo nên hứng thú học tập cho học sinh – sinh viên.

Công nghệ phần mềm phát triển mạnh, kéo theo là đó hàng loạt các phần mềm

giáo dục được tạo ra nhằm hỗ trợ đổi mới phương pháp giảng dạy, học tập và hỗ trợ

quản lý giáo dục, góp phần nhằm nâng cao hiệu quả và chất lượng giáo dục. Do sự

phát triển của công nghệ thông tin và truyền thông mà mọi người đều có trong tay

nhiều công cụ hỗ trợ cho quá trình dạy học nói chung và phần mềm dạy học nói riêng.

Phần mềm dạy học được sử dụng ở nhà cũng sẽ nối dài cánh tay của giáo viên tới

từng gia đình học sinh thông qua hệ thống mạng. Nhờ có máy tính điện tử mà việc

thiết kế giáo án và giảng dạy trên máy tính trở nên sinh động hơn, tiết kiệm được

nhiều thời gian hơn so với cách dạy theo phương pháp truyền thống.

Trong những phần mềm giáo dục phổ biến hiện nay đã và đang được áp dụng

thành công ở Khoa CNTT – TT Trường Đại học Cần Thơ đó là MOODLE – một

phần mềm mã nguồn mở hoạt động trên nền web, người dùng có thể dễ dàng truy cập

ở bất kì nơi đâu.

Ở thời điểm hiện tại, cuộc chạy đua Công nghệ di động chưa bao giờ chấm

dứt, luôn bùng nổ với các dịch vụ và xuất hiện các ứng dụng nhằm duy trì kết nối,

cập nhật thông tin và hỗ trợ đắc lực cho công việc. Các thiết bị di động thông minh

cũng ngày càng phổ biến. Đặc biệt đầu năm 2010 Microsoft lần đầu tiên công bố

HĐH Windows Phone, tuy còn rất mới nhưng đã phát triển mạnh mẽ và tạo nên chổ

đứng vững chắc trong những năm vừa qua.

Đứng trước sự phát triển đó, việc có thể học tập mọi lúc, mọi nơi trở thành nhu

cầu không thể thiếu đối với mỗi sinh viên nói riêng và sự nghiệp giáo dục của nước

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

3

nhà nói chung. Đó cũng là mục đích cho việc nghiên cứu, xây dựng ứng dụng học tập

trên thiết bị di động sử dụng HĐH Windows Phone.

I.2. LỊCH SỬ VẤN ĐỀ

Hiện nay phần mềm Moodle Mobile trên điện thoại di động đã được phát triển

cách đây không lâu. Phần mềm được phát triển chủ yếu trên một số hệ điều hành nhất

định. Phiên bản đầu tiên sử dụng API Functions của Moodle được viết bằng HTML5

và CSS3 chỉ dành cho Android và iOS. Nhưng không được đánh giá cao từ người

dùng, chức năng còn hạn chế không phát huy được hết ưu điểm của một ứng dụng

học tập trên thiết bị di động.

Với hệ điều hành mới như Windows Phone thì việc tạo ra một ứng dụng học tập

trên hệ thống Moodle là hoàn toàn mới. Chính vì thế đây là ứng dụng Windows Phone

đầu tiên dành cho hệ thống Moodle, mở đầu cho nhiều ứng dụng phát triển sau này.

I.3. PHẠM VI ĐỀ TÀI

I.3.1. Về phía người dùng

Phần mềm Moodle Windows Phone giúp cho người dùng dễ dàng truy cập vào hệ

thống học tập của mình với quyền và những chức năng sau:

Người dùng Sinh viên:

- Đăng nhập

- Cập nhật thông tin cá nhân

- Xem danh sách môn học

- Tham gia môn học

- Xem nội dung môn học, diễn đàn môn học.

Người dùng Giáo viên:

- Đăng nhập

- Cập nhật thông tin cá nhân

- Xem danh sách môn học

- Tham gia môn học

- Ghi danh thành viên vào khóa học

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

4

- Xem nội dung môn học, diễn đàn môn học.

- Quản lý nhóm người dùng

- Quản lý thành viên nhóm người dùng.

Người dùng Admin:

- Quản lý người dùng:

o Tạo người dùng

o Xóa người dùng

o Cập nhật và lấy hồ sơ người dùng

- Quản lý khóa học:

o Tạo khóa học

o Xóa khóa học

o Lấy thông tin và nội dung một khóa học

- Quản lý nhóm người dùng:

o Tạo nhóm người dùng

o Xóa nhóm người dùng

o Thêm, xóa thành viên trong nhóm

o Lấy thông tin các nhóm

- Quản lý diễn đàn.

I.3.2. Về lý thuyết

Để phục vụ cho quá trình phát triển hoàn chỉnh ứng dụng Moodle Windows

Phone ta cần sử dụng các mảng kiến thức sau:

- Tìm hiểu HĐH Windows Phone 8.

- Nền tảng Silverlight cho phát triển ứng dụng Windows Phone, ngôn ngữ

đánh dấu văn bản XAML.

- Tìm hiểu phần mềm MOODLE và các dịch vụ Web của MOODLE.

- Sử dụng thư viện HtmlAgilityPack để xử lý văn bản HTML.

- Phát triển trên mô hình MVVM trên nền tảng Silverlight.

Từ đó xây dựng một ứng dụng truy cập vào hệ thống MOODLE dựa trên nền tảng

Windows Phone.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

5

I.3.3. Về kỹ thuật

Phần mềm Moodle Windows Phone cần đạt những yêu cầu kĩ thuật sau:

- Chạy ổn định trên thiết bị di động sử dụng hệ điều hành Windows Phone 8.

- Chạy ổn định trên giả lập Windows Phone 8 Emulator.

- Hỗ trợ trên cách thiết bị cảm ứng, chạy hệ điều hành Windows Phone 8.

I.4. PHƯƠNG PHÁP NGHIÊN CỨU

I.4.1. Thu thập tài liệu

- Tìm hiểu về cách thức hoạt động của Web Services và ngôn ngữ XML.

- Thu thập các tài liệu liên quan đến cách sử dụng Web Services trên hệ thống

MOODLE.

- Tìm hiểu về quy trình phát triển ứng dụng Windows Phone 8.

- Sưu tầm tài liệu về DOM, HtmlAgilityPack, Silverlight, XAML, chọn lọc sử

dụng các mảng kiến thức cần thiết.

- Tìm hiểu mô hình phát triển ứng dụng MVVM trên nền tảng Silverlight.

I.4.2. Phân tích và thiết kế hệ thống

Cài đặt hệ thống học tập MOODLE, tìm hiểu cách thức lưu trữ CSDL trong hệ

thống nhằm sử dụng các dịch vụ Web của MOODLE một cách hiệu quả.

I.4.3. Công nghệ thực hiện

- Sử dụng ngôn ngữ lập trình C# để viết mã nguồn (code-behind) của ứng

dụng.

- Ngôn ngữ đánh dấu XAML dùng thiết kế giao diện ứng dụng.

- Silverlight cung cấp các control cần thiết cho ứng dụng.

- .NET framework 4.0 cung cấp thư viện giao tiếp giữa máy chủ và máy

khách.

I.4.4. Công cụ lập trình

- Dùng công cụ Microsoft Visual Studio 2012 Ultimate và Windows Phone

SDK 8.0.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

6

- Microsoft Expression Blend cho Visual Studio 2012 thiết kế giao diện cho

ứng dụng.

- Sử dụng bộ Windows Phone Toolkit cho Windows Phone SDK 8.0.

- Công cụ ComponentOne Studio cho Window Phone để hiển thị tập tin PDF.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

7

CHƯƠNG II: CƠ SỞ LÝ THUYẾT

II.1. TÌM HIỂU VỀ HỆ ĐIỀU HÀNH WINDOW PHONE

Microsoft lần đầu công bố hệ điều hành Windows Phone 7 tại triển lãm di động

Mobile World Congress vào tháng 2 năm 2010 tại Tây Ban Nha. Đây là một hệ điều

hành hoàn toàn mới dành cho người dùng smartphone, với những tính năng mạnh mẽ

hỗ trợ tốt về cả phần cứng và phần mềm.

Windows Phone 7 là thế hệ kế tiếp của dòng điện thoại chạy hệ điều hành

Windows Mobile. Windows Phone 7 được phát triển dựa trên phần lõi là Windows

CE 7 giống như Zune HD. Có thể thấy sự khác biệt giữa Windows Phone 7 và

Windows Mobile là rất lớn, khác cả về phần cứng lẫn phần mềm. Hệ điều hành này

hỗ trợ rất mạnh cho các dòng thiết bị di động có màn hình cảm ứng.

Tháng 6 năm 2012, Microsoft giới thiệu Windows Phone 8, một thế hệ hệ điều

hành mới. Windows Phone 8 thay thế kiến trúc Windows CE trên Windows Phone 7

thành kernel của Windows NT vốn được thiết kế cho Windows 8. Ngoài ra, Windows

Phone 8 còn hỗ trợ CPU đa nhân, nhiều độ phân giải và các tùy biến khác.

Tuy Windows Phone là một hệ điều hành mới, nhưng nó được kì vọng cao và

tạo nên vị trí vững chắc để cạnh tranh với các đối thủ còn lại.

II.2. TỔNG QUAN VỀ SILVERLIGHT

II.2.1. Silverlight là gì?

Silverlight là một dạng plug-in dựa trên công nghệ của Microsoft.Net nó độc

lập với đa nền tảng và đa trình duyệt, nó cho phép phát triển các ứng dụng đa phương

tiện đặc biệt là các ứng dụng trên web và Windows Phone. Silverlight cung cấp một

mô hình lập trình mềm dẻo và đồng nhất, nó hỗ trợ Ajax, Python, Ruby và các ngôn

ngữ lập trình như Visual Basic, C#.

II.2.2. Các đặc tính của Siverlight

II.2.2.1 Sự kết hợp của WPF và XAML

Silverlight là một gói nhỏ của công nghệ Windows Presentation Foundation

(WPF). Nó được mở rộng nhiều hơn các Element trong trình duyệt, ứng dụng

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

8

Windows Phone để tạo giao diện người dùng. WPF cho phép ta tạo ra đồ họa 3D,

hình ảnh động, đa phương tiện và nhiều tính năng phong phú khác trên máy khách.

XAML (Extensible Application Markup Language) cung cấp các cú pháp đánh dấu

đặc trưng cho việc tạo các Element.

II.2.2.2 Mở rộng cho ngôn ngữ kịch bản

Silverlight cung cấp việc mở rộng cho các ngôn ngữ kịch bản (Javascript) ở một

số trình duyệt phổ biến để thể hiện việc trình bày giao diện và thao tác người dùng

một cách phong phú hơn.

II.2.2.3 Sự tích hợp với các ứng dụng đã có

Silverlight tích hợp liền mạch với ngôn ngữ Javascript và mã Ajax của

ASP.NET để bổ sung các chức năng ta đã xây dựng được. Ta có thể tạo ra những tài

nguyên trên nền máy chủ có trong ASP.NET và sử dụng các khả năng của Ajax để

tương tác với tài nguyên trên nền máy chủ đó mà không làm gián đoạn người dùng.

II.2.2.4 Mô hình ngôn ngữ lập trình trên nền tảng .NET

Ta có thể tạo các ứng dụng trên nền tảng SL và sử dụng các ngôn ngữ động như

InronPython, C#, Visual Basic. Ta cũng có thể sử dụng các công cụ phát triển như

Visual Studio để tạo ứng dụng trên nền tảng SL.

II.2.2.5 Hỗ trợ mạng

Silverlight bao gồm các hỗ trợ cho HTTP qua TCP. Ta có thể kết nối đến các

dịch vụ của WCF, SOAP hoặc ASP.NET AJAX và nhận về các định dạng theo cấu

trúc XML, JSON hay dữ liệu RSS.

II.2.2.6 Hỗ trợ ngôn ngữ tích hợp truy vấn (LINQ to SQL)

Điều này cho phép ta truy cập dữ liệu bằng cách sử dụng cú pháp trực quan tự

nhiên và mạng mẽ, được gõ bởi các đối tượng có trong các ngôn ngữ .NET

Framework.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

9

II.2.3. Kiến trúc tổng thể và các mô hình lập trình của Silverlight

II.2.3.1 Kiến trúc về các thành phần

Về cơ bản Silverlight là một nền tảng thống nhất của nhiều thành phần khác

nhau. Tuy nhiên ta có thể nhóm lại các thành phần chính của Silverlight vào bảng sau

đây:

Thành phần Diễn tả

Nền tảng trình bày cơ sở

Các thành phần và dịch vụ hướng tới giao diện

người dùng và tương tác người dùng, bao gồm

các control cho dữ liệu mà người dùng nhập,

thiết bị đa phương tiện, quản lý phân quyền số,

trình bày dữ liệu, đồ họa vector, chữ, hình ảnh

động, cũng bao gồm XAML để đặc tả việc bố

trí giao diện.

.NET Framework cho

Silverlight

Là một gói nhỏ trong .NET Framework, bao

gồm các thành phần và các thư viện, kể cả việc

tương tác dữ liệu, khả năng mở rộng các

control, mạng, garbage collection và CRL.

Cài đặt và cập nhật

Là thành phần để xử lý các tiến trình cài đặt

làm sao để đơn giản hóa cho lần cài đặt đầu

tiên, tiếp sau đó chỉ cung cấp cơ chế tự động

cập nhật và tương tác ở mức thấp.

Dưới đây là hình ảnh mô tả những thành phần trong kiến trúc của SL cùng với

các thành phần và dịch vụ liên quan khác.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

2

0

Hình 1. Thành phần kiến trúc của Silverlight

Core Presentation Components

Tính năng Mô tả

Dữ liệu vào (Input)

Xử lý dữ liệu vào từ các thiết bị phần cứng như

bàn phím, chuột, bảng vẽ hoặc các thiết bị đầu vào

khác.

Trình bày giao diện người

dùng (UI Rendering)

Trình bày các vector và các đồ họa ảnh bitmap,

ảnh động và văn bản

Thiết bị nghe nhìn (Media) Các tính năng phát và quản lý một vài thể loại file

âm thanh và hình ảnh như .WMA, .MP3

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

2

1

Controls Hỗ trợ mở rộng cho các control để có khả năng

tùy chỉnh về kiểu dáng và khuôn mẫu

Xếp đặt Layout Cho phép khả năng xếp đặt vị trí động các thành

phần giao diện người dùng

Trình bày dữ liệu (Data

Binding)

Cho phép việc kết nối dữ liệu của các đối tượng

và các thành phần giao diện người dùng

DRM Khả năng quản lý phân quyền số

XAML Cung cấp trình phân tách cho XAML

.Net Frame work for Silverlight:

Tính năng Mô tả

Data

Hỗ trợ ngôn ngữ truy vấn tích hợp (LINQ to SQL) và LINQ với

đặc tả XML, dễ dàng xử lý việc tích hợp và làm việc với dữ liệu

từ nhiều nguồn khác nhau. Hỗ trợ việc sử dụng XML và các lớp

biên đổi hóa (serialization) để xử lý dữ liệu.

Base class

library

Thuộc thư viện của .Net Framework, nó cung cấp các chức năng

lập trình chủ yếu như việc xử lý chuỗi, biểu thức chính quy, đầu

vào và đầu ra, ánh xạ, tập hợp và toàn cục hóa.

Window

Communication

Foundation

(WCF)

Cung cấp các tính năng để đơn giản hóa việc truy cập dữ liệu từ

xa. Cơ chế này bao gồm một đối tượng trình duyệt, HTTP

request và HTTP Response, RSS, JSON, POX, và các SOAP

Common

language

runtime (CLR)

Cung cấp việc quản lý bộ nhớ, dọn dẹp bộ nhớ thừa, xử lý ngoại

lệ…

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

2

2

Windows

Presentation

Foundation

controls (WPF)

Cung cấp các control giầu tính năng như Button, Calendar,

CheckBox, DataGrid, DatePicker, HyperlinkButton, ListBox,

RadioButton, and ScrollViewer.

Dynamic

language

runtime (DLR)

Hỗ trợ việc biên dịch và thi hành với tính năng động của các

ngôn ngữ kịch bản như Javascript và IronPython cho các

chương trình trên nền tảng Silverlight.

II.2.3.2 Các công cụ và công nghệ liên quan của Silverlight

Microsoft Expression Blend: sử dụng công cụ này ta có thể tạo và thay đổi

cách sắp xếp trình bày các lớp ứng dụng bằng cách thao tác đến các Grid và Control

trong XAML, làm việc với các chức năng đồ họa, lập trình với ngôn ngữ Javascript.

Visual Stuido 2012: Visual Studio cung cấp các công cụ hiệu quả cho việc phát

triển các ứng dụng có hỗ trợ thao tác code-behind. Tất cả các phiên bản đã có của

Visual Studio đều có khả năng hỗ trợ Silverlight. Tuy nhiên ở phiên bản mới này nó

còn hỗ trợ các tính năng đặc biệt hơn như bao gồm khả năng IntelliSense, Debugging

và các Template cho việc tạo mới một ứng dụng Silverlight.

Microsoft ASP.NET 3.5 Extensions Preview: Công nghệ này cung cấp chức

năng thêm để việc tăng cường các ứng dụng ASP.NET AJAX. Nó bao gồm 2 control

sử dụng hữu ích cho việc xây dựng ứng dụng nền tảng silverlight cũng như là một

phần của ứng dụng ASP.NET:

- ASP.NET MediaPlayer Server Control

- ASP.NET Silverlight Server Control

Internet Servers: Bao gồm IIS (Microsoft Internet Information Services) và

Apache Web server

Microsoft Windows Communication Foundation (WCF) services.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

2

3

II.3. XAML

II.3.1 Sơ lược về xaml

XAML (Extensible Apllication Markup Language) là một ngôn ngữ dạng khai

báo. Ta có thể tạo ra các phần tử đồ họa (UI) với những khai báo thông qua thẻ trong

XAML. Sau đó ta có thể dùng file mã lệnh tách biệt của nó (code-behind) để trả về

những sự kiện và điều khiển những đối tượng mà ta đã định nghĩa trong XAML. Nó

là một ngôn ngữ mô tả dựa trên XML là rất trực quan trong việc xây dựng giao diện

từ những bước phác thảo cho đến sản xuất sản phẩm.

II.3.2 Khai báo đối tượng

Có 2 cách để khai báo đối tượng trong XAML:

- Khai báo trực tiếp: sử dụng thẻ đóng mở để khai báo một đối tượng giống như

là phần tử XML. Ta cũng có thể sử dụng cú pháp này để khai báo đối tượng

gốc (root object) hoặc để xét các giá trị của các thuộc tính.

- Khai báo gián tiếp: sử dụng giá trị trực tiếp để khai báo một đối tượng. Ta có

thể sử dụng cú pháp này để thiết lập các giá trị của các thuộc tính. Thông

thường, điều này có nghĩa là chỉ những thuộc tính được hỗ trợ bởi một đối

tượng nào đó mới có thể sử dụng được phương pháp này.

II.3.3 Thiết lập đặc tính cho đối tượng

Có những cách sau để khai báo đặc tính cho đối tượng:

- Sử dụng cú pháp theo thuộc tính: Dưới đây là ví dụ xét giá trị cho các thuộc

tính: Width, Height, Fill của đối tượng Rectangle

<Rectangle Width="100" Height="100" Fill="Blue" />

- Sử dụng cú pháp theo đặc tính của thành phần (Element): Dưới đây là ví dụ

xét đặc tính Fill theo cách này cho đối tượng Rectangle

<Rectangle Width="100" Height="100"> <Rectangle.Fill> <SolidColorBrush Color="Blue" /> </Rectangle.Fill> </Rectangle>

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

2

4

- Sử dụng cú pháp theo nội dung: Dưới đây là ví dụ xét đặc tính Text cho đối

tượng TextBlock (giống với đối tượng Label trong Winform, Webform)

<TextBlock> Hello!</TextBlock>

- Sử dụng theo một tập hợp: đây là một trường hợp khá thú vị trong XAML, bởi

có những cách khác nhau để thể hiện tập hợp này. Hơn nữa các khai báo này có

thể xuất hiện ở phần đầu tiên của XAML cho phép ta xét những đặc tính chỉ đọc

(read-only) của đối tượng. Dưới đây là ví dụ xét đặc tính theo những cách khác

nhau sử dụng theo kiểu tập hợp.

Cách 1:

<LinearGradientBrush> <LinearGradientBrush.GradientStops> <!--Ở đây thẻ GradientStopCollention được chỉ rõ--> <GradientStopCollection> <GradientStop Offset="0.0" Color="Red" /> <GradientStop Offset="1.0" Color="Blue" /> </GradientStopCollection> </LinearGradientBrush.GradientStops>

</LinearGradientBrush>

Cách 2:

<LinearGradientBrush> <LinearGradientBrush.GradientStops> <!--Không cần khai báo GradientStopCollention, bộ phân tích sẽ hiểu và tạo ra nó--> <GradientStop Offset="0.0" Color="Red" /> <GradientStop Offset="1.0" Color="Blue" /> </LinearGradientBrush.GradientStops>

</LinearGradientBrush>

Cách 3:

Ngoài ra, có những đặc tính mà chúng có những tập hợp đặc tính nhưng

chúng được xác định như là đặc tính nội dung của lớp. Trong trường hợp này

ta xét đến đặc tính GradientStops được xử dụng ở trên. Bạn có thể loại bỏ

đặc tính này và sẽ có kết quả như sau:

<LinearGradientBrush> <GradientStop Offset="0.0" Color="Red" /> <GradientStop Offset="1.0" Color="Blue" /> </LinearGradientBrush>

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

2

5

II.3.4 Root elements và namespace trong xaml

Một file XAML chỉ được có duy nhất một Root element và phải thỏa mãn cả

hai tiêu chí sau: wellformed XML (có thẻ mở và đóng) và valid XML (tuân thủ

Document Type Definition (DTD)). Ví dụ dưới đây cho Root element điển hình của

XAML cho Silverlight với Root element là thành phần PhoneApplicationPage.

<phone:PhoneApplicationPage x:Class="LVTN_1091649.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" FontFamily="{StaticResource PhoneFontFamilyNormal}" FontSize="{StaticResource PhoneFontSizeNormal}" Foreground="{StaticResource PhoneForegroundBrush}" SupportedOrientations="Portrait" Orientation="Portrait" shell:SystemTray.IsVisible="True"> </phone:PhoneApplicationPage>

II.3.5 Sự kiện

XAML là một ngôn ngữ khai báo cho đối tượng và những đặc tính của chúng,

nhưng nó cũng bao gồm những cú pháp cho sự kết hợp sự kiện cho đối tượng trong

những thẻ đánh dấu. Ta chỉ rõ tên của sự kiện như là một thuộc tính tên trên đối tượng

mà sự kiện được nghe. Về giá trị của thuộc tính, ta chỉ rõ tên của hàm nghe sự kiện

mà bạn định nghĩa ở phần code-behind hoặc ở phần javascript. Việc có khai báo hay

không đặc tính x:Class ở thẻ root trong XAML có ảnh hưởng đến việc xử lý sự kiện.

Nếu ta khai báo x:Class tức là việc xử lý sự kiện của bạn sẽ được thực hiện trong

code-behind, trường hợp này thường xuất hiện trong kiểu lập trình Managed API.

Còn ngược lại thì việc xử lý sự kiện của bạn được thực hiện ngay trong thẻ Javascript

chứa trong HTML, trường hợp này thường xuất hiện trong kiểu lập trình JavaScript

API.

Đoạn code dưới đây ta sẽ thấy rõ cách tạo sự kiện trong XAML và tạo sự kiện

bên trong code – behind:

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

2

6

<phone:PhoneApplicationPage x:Class="LVTN_1091649.MoodleForum"> <Grid x:Name="LayoutRoot" Background="White"> <Button Click="Button_Click" Content="Moodle Windows Phone"></Button> </Grid> </phone:PhoneApplicationPage

Đoạn code trên, trong thẻ root <phone:PhoneApplicationPage> chúng ta đã

khai báo đặc tính x:Class= “LVTN_1091649.MoodleForum”, điều này có nghĩa

trong chương trình của chúng ta có một file chứa class

LVTN_1091649.MoodleForum. Class này sẽ đảm nhiệm việc xử lý các sự kiện đã

khai báo ở file XAML. Trong thẻ <Grid> chúng ta tạo thêm một thẻ <Button>

và khai báo trong thẻ đó một sự kiện Click=”Button_Click”. Sự kiện này được xử

lý trong code-behind như sau:

namespace PanoramaApp1 { public partial class MoodleForum : PhoneApplicationPage { // Constructor public MainPage() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { //Xử lý sự kiện Button_Click tại đây MessageBox.Show("Hello Windows Phone 8"); } } }

II.4. MÔ HÌNH MVVM

Kể từ khi Microsoft giới thiệu hai nền tảng phát triển ứng dụng mới là WPF và

Silverlight, đã có nhiều thay đổi trong việc xử lý sự kiện và binding dữ liệu, giữa các

tầng của ứng dụng với nhau. Qua đó, hầu hết các công việc của tầng kết hợp với lớp

presentation. Điều này làm nảy sinh ra nhu cầu phải có một mô hình phát triển ứng

dụng mới phù hợp hơn. Và do đó, Model – View – ViewModel (MVVM) pattern ra

đời và ngày càng trở nên phổ biến.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

2

7

Đa số các ứng dụng thuộc bất kì nền tảng nào cũng có thể chia thành hai phần:

giao diện (View) và dữ liệu (Model). Vì việc tách riêng các phần này, cần phải có

một phần trung gian nào đó nối kết hai phần này lại, và chúng tạo nên một mô hình

(pattern).

Quen thuộc và phổ biến nhất với chúng ta là mô hình MVC (Model – View –

Controller). Có thể nói MVC là một mô hình tiêu chuẩn bởi sự logic và hợp lý của

nó. Điều này làm cho việc xuất hiện một mô hình phát triển ứng dụng mới có thể

khiến lập trình viên bỡ ngỡ. Trước tiên ta cùng sơ lược về xu hướng phát triển các

ứng dụng hiện nay để từ đó làm nổi bật vai trò của mô hình MVVM.

II.4.1 Data binding

Đây là một khái niệm quen thuộc và làm ta nhớ lại những rắc rối mà chúng đem

lại trong những nền tảng trước đây và thậm chí trong .NET. Tuy nhiên từ khi WPF ra

đời, việc sử dụng kĩ thuật này thực sự chuyển sang một bước tiến mới, thỏa mãn

những điều mà hầu hết các lập trình viên mong đợi. Nếu như tìm hiểu sâu về tính

năng này, ta sẽ không ngạc nhiên gì khi nhiều người nói rằng data binding là thành

phần cốt lỗi tạo nên các cơ chế hoạt động trong WPF.

Ta có thể binding dữ liệu nguồn và đích từ bất kì đối tượng nào: như cửa sổ, các

control đơn giản như TextBlock cho đến một UserControl phức tạp. Tất cả đều được

thực hiện dễ dàng, nhanh chóng, hiệu quả và có thể không cần dùng đến bất kì dòng

code-behind (C#, VB.NET, …) nào.

II.4.2 Data template

Một template trong WPF hay Silverlight xác định cách thức và cấu trúc mà dữ

liệu hoặc control sẽ được hiển thị ra màn hình. Nói riêng về Data Template, chức

năng này giúp cho dữ liệu (thuộc dạng non-visual) được gắn vào một cấu trúc bao

gồm một hoặc nhiều thành phần có khả năng hiển thị. Và do đó, dữ liệu sẽ được hiển

thị lên cửa sổ một cách trực quan theo ý muốn của lập trình viên. Cũng như Data

Binding, tính năng này không yêu cầu bạn phải viết trong code-behind của ứng dụng.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

2

8

II.4.3 Command

Data Binding và Data Template giúp cho người dùng thấy được những gì có trong

dữ liệu và có thể cập nhật lại dữ liệu đó. Tuy nhiên để nhận được tương tác từ người

dùng và xử lý, WPF cung cấp một tính năng gọi là command. Các command có thể

được xem như dữ liệu và được cung cấp cho người dùng thông qua chức năng

binding.

Một command binding cho phép bạn tùy ý xác định các phương thức xử lý, phím

tắt hoặc thao tác chuột để kích hoạt. Ngoài ra, các command có thể tự động thay đổi

thuộc tính của các control dựa vào trạng thái chúng có thể được kích hoạt hay không.

II.4.4 Các thành phần của mvvm

Mẫu thiết kế Model-View-ViewModel (MVVM) giúp tách biệt lớp business và

presentation của ứng dụng khỏi phần giao diện (UI) của nó. Việc duy trì phần tách

biệt giữa lớp ứng dụng và UI giúp chỉ ra những vấn đề trong việc phát triển và thiết

kế và có thể giúp ứng dụng của bạn trở nên dễ dàng để kiểm thử, bảo trì và phát triển

hơn.

Bằng việc sử dụng mẫu thiết kế MVVM, phần giao diện (UI) của ứng dụng,

presentation và business được tách thành 3 lớp riêng biệt: View bao hàm UI và UI

logic (code behind); View Model bao hàm presentation và state; Model bao hàm

business và data.

Hình 2. Các lớp trong mô hình MVVM và sự tương tác giữa chúng.

Tương tự như những mẫu thiết kế có sự tách biệt phần presentation khác, điểm

mấu chốt trong việc sử dụng mẫu MVVM hiệu quả nằm ở việc hiểu cách thích hợp

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

2

9

để tác động mã nguồn của chương trình vào đúng những lớp cần thiết, và hiểu những

cách thức mà những lớp này tương tác trong những ngữ cảnh khác nhau.

Như vậy, MVVM có 3 thành phần và chúng được phát biểu tóm gọn như sau:

- View: Tương tự như trong mô hình MVC, View là phần giao diện của ứng dụng

để hiển thị dữ liệu và nhận tương tác của người dùng. Một điểm khác biệt so với

các ứng dụng truyền thống là View trong mô hình này tích cực hơn. Nó có khả

năng thực hiện các hành vi và phản hồi lại người dùng thông qua tính năng

binding, command.

- Model: Cũng tương tự như trong mô hình MVC. Model là các đối tượng giúp

truy xuất và thao tác trên dữ liệu thực sự.

- ViewModel: Lớp trung gian giữa View và Model. ViewModel có thể được xem

là thành phần thay thế cho Controller trong mô hình MVC. Nó chứa các mã lệnh

cần thiết để thực hiện data binding, command.

- Một điểm cần lưu ý là trong mô hình MVVM, các tầng bên dưới sẽ không biết

được các thông tin gì về tầng bên trên nó.

II.5. MOODLE

II.5.1 Kiến trúc hệ thống moodle

II.5.1.1 Moodle là gì?

Moodle là một Hệ thống quản lý học tập (LMS - Learning Management System),

Hệ thống quản lý khóa học (CMS - Course Management System), hay Môi trường

học tập ảo (VLE - Virtual Learning Environment). Mục tiêu của nó là để cung cấp

cho giáo viên và học sinh các công cụ mà họ cần để giảng dạy và học tập.

Moodle (viết tắt của Modular Object-Oriented Dynamic Learning Environment)

được sáng lập năm 1999 bởi Martin Dougiamas, người tiếp tục điều hành và phát

triển chính của dự án. Do không hài lòng với hệ thống LMS/LCMS thương mại

WebCT trong trường học Curtin của Úc, Martin đã quyết tâm xây dựng một hệ thống

LMS mã nguồn mở hướng tới giáo dục và người dùng hơn. Từ đó đến nay Moodle

có sự phát triển vượt bậc và thu hút được sự quan tâm của hầu hết các quốc gia trên

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

3

0

thế giới và ngay cả những công ty bán LMS/LCMS thương mại lớn nhất như BlackCT

(BlackBoard + WebCT) cũng có các chiến lược riêng để cạnh tranh với Moodle.

Moodle là một ứng dụng web viết bằng PHP. Moodle là mã nguồn mở. Bản quyền

thuộc sở hữu của những cá nhân đóng góp, không giao cho một thực thể duy nhất,

mặc dù công ty Moodle Pty Ltd ở Perth Australia, thuộc sở hữu của người sáng lập

Martin Dougiamas, quản lý dự án.

Do thiết kế dựa trên module nên Moodle cho phép bạn chỉnh sửa giao diện bằng

cách dùng các theme có trước hoặc tạo thêm một theme mới cho riêng mình.

Tài liệu hỗ trợ của Moodle rất đồ sộ và chi tiết, khác hẳn với nhiều dự án mã

nguồn mở khác.

Moodle phù hợp với nhiều cấp học và hình thức đào tạo: phổ thông, đại học/cao

đẳng, không chính quy, trong các tổ chức/công ty.

Moodle rất đáng tin cậy, có trên 91.386 trang đăng kí trên thế giới đã dùng Moodle

tại 241 quốc gia và đã được dịch ra 75 ngôn ngữ khác nhau (thống kê tại moodle.org).

Có khoảng 76.144.736 người dùng trong hơn 8.220.438 khóa học được tạo.

II.5.1.2 Tổng quan về cài đặt Moodle

Một cài đặt Moodle bao gồm các mã xử lý của Moodle trên một máy chủ web hỗ

trợ PHP, một cơ sở dữ liệu được quản lý bởi MySQL, PostgreSQL, Microsoft SQL

Server, Oracle, và một kho dữ liệu cho các tập tin tải lên và tạo ra (thư mục

moodledata).

Tất cả ba bộ phận có thể chạy trên một máy chủ duy nhất, hoặc chúng có thể được

tách ra với nhiều máy chủ web cân bằng tải (load-balanced), một tổ cơ sở dữ liệu, và

một file-server.

Moodle được thiết kế để đơn giản để cài đặt trên bất kỳ máy chủ đáp ứng các yêu

cầu cơ bản. Moodle tự cài đặt một lần với mã nguồn đã được sao chép vào máy chủ

web và một cơ sở dữ liệu trống đã được tạo ra. Tương tự như vậy, Moodle có thể tự

nâng cấp tới một phiên bản tiếp theo.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

3

1

II.5.1.3 Moodle là một hệ thống các mô-đun

Giống như nhiều hệ thống mã nguồn mở đã thành công, Moodle được cấu trúc

như một ứng dụng lõi (Moodle core), bao quanh bởi nhiều plugin cung cấp các chức

năng cụ thể. Moodle được thiết kế để dễ mở rộng và tùy biến mà không sửa đổi các

thư viện lõi, vì nếu không như vậy sẽ tạo ra vấn đề khi nâng cấp lên một phiên bản

mới hơn. Do đó, khi tùy biến hoặc mở rộng cài đặt Moodle của riêng bạn phải thông

qua kiến trúc plugin.

Các plugin trong Moodle là các loại cụ thể. Một plugin xác thực (Authentication

plugin) và một mô-đun hoạt động (activity module) sẽ liên lạc với Moodle core bằng

cách sử dụng các API khác nhau, phù hợp với các loại chức năng plugin cung cấp.

Chức năng phổ biến cho tất cả các plugin (cài đặt - installation, nâng cấp - upgrade,

cho phép - permissions, cấu hình - configuration, ...) được xử lý nhất quán trên tất cả

các loại plugin.

Phân phối Moodle tiêu chuẩn bao gồm Moodle core và một số các plugin của từng

loại, để một cài đặt mới Moodle ngay lập tức có thể được sử dụng bắt đầu giảng dạy

và học tập. Sau khi cài đặt, một site Moodle có thể được điều chỉnh phù hợp cho một

mục đích cụ thể bằng cách thay đổi các tùy chọn cấu hình mặc định, và bằng cách cài

đặt hay gỡ bỏ các plugin. Hầu hết các plugin đã được chia sẻ công khai được liệt kê

trong thư mục Moodle Plugins.

Về vật lý, một plugin Moodle là chỉ là một thư mục của các kịch bản PHP (CSS,

JavaScript, nếu cần thiết). Moodle core giao tiếp với các plugin bằng cách tìm kiếm

các điểm vào cụ thể, thường được định nghĩa trong file lib.php trong plugin.

II.5.1.4 Tổng quan về Moodle core

Moodle core cung cấp tất cả cơ sở hạ tầng cần thiết để xây dựng một LMS. Nó

thực hiện các khái niệm quan trọng mà tất cả các plugin khác nhau sẽ cần phải làm

việc với. Chúng bao gồm:

- Các khóa học và các hoạt động (Courses & activities)

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

3

2

Một khóa học Moodle là một chuỗi các hoạt động và các tài nguyên được

nhóm lại thành các phần. Các khóa học tự chúng được tổ chức thành một bộ

phân cấp các mục trong một site Moodle.

- Người sử dụng (Users)

- Nhóm và phân hệ (Group & Cohort)

- Ghi danh và kiểm soát truy cập (Enrolments & access control)

Các ngữ cảnh - contexts, vai trò - roles, khả năng - capabilities, và cho phép -

permissions, ...

- Hoạt động và hoàn thành khóa học (Activity & course completion)

- Điều hướng, thiết lập và cấu hình (Navigation, settings and configuration)

- Thư viện Form

- Thư viện JavaScript

Moodle đã thông qua các thư viện giao diện người dùng Yahoo. Ngoài ra còn

có một hệ thống tốt cho tải các tập tin JavaScript bổ sung theo yêu cầu của

mỗi trang.

- Cài đặt và nâng cấp (installation & upgrade)

- Nhật ký và thống kê (logs and statistics)

II.5.1.5 Cách tổ chức mã Moodle

Moodle chủ yếu là theo cách tiếp cận kịch bản giao dịch (transaction script). Giả

sử bạn đang tìm kiếm một diễn đàn. URL sẽ là ... / mod / forum / view.php? Id = 123

thì script PHP mod / forum / view.php sẽ tạo ra trang đó. Người ta có thể lập luận

rằng kịch bản giao dịch không phải là một mô hình thích hợp cho một ứng dụng phức

tạp như Moodle. Tuy nhiên, nó là một kiến trúc rất tự nhiên cho một ứng dụng PHP,

và Moodle là một tổng hợp của nhiều plugin khác nhau, chứ không phải là một ứng

dụng phức tạp duy nhất.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

3

3

Đằng sau cách tiếp cận kịch bản giao dịch cơ bản, rất nhiều các chức năng cốt lõi

đã được tái cơ cấu vào các thư viện (chủ yếu là trong thư mục lib). Điều này cung cấp

các yếu tố của một mô hình miền (domain model). Tuy nhiên, dự án Moodle bắt đầu

trước khi PHP có thể xử lý mã hướng đối tượng, do đó, không mong đợi một mô hình

miền theo định hướng đối tượng, ngoại trừ trong một số các bộ phận gần đây của mã

Moodle.

Có hai lớp được sử dụng để phân tách trình diễn (presentation) và nghiệp vụ

(business login). Lớp bên ngoài là theme (xem ở trên) kiểm soát các khía cạnh trực

quan của giao diện Moodle. Sau đó, có các lớp sinh (renderer classes) sẽ tạo ra mã

HTML để xuất các dữ liệu được cung cấp bởi các kịch bản giao dịch và mô hình

miền. Thật không may, cả PHP và kiến trúc Moodle đều không thực hiện một sự tách

biệt rõ ràng với các lớp giao diện người dùng. Nó có thể do sự cẩu thả của các nhà

phát triển đã gây ra sự hỗn độn, và điều này đã xảy ra trong quá khứ. Các mã trong

các tiêu chuẩn phân phối Moodle đang dần dần được làm sạch.

II.5.2 Dịch vụ web của moodle

II.5.2.1 Mô hình hoạt động

1. Máy khách gửi tài khoản và mật khẩu tới dịch vụ web script.

2. Script trả về một chuỗi bảo mật token tương ứng với tài khoản của người dùng.

3. Máy khách gọi một hàm dịch vụ web cụ thể trên máy chủ, thông qua một giao

thức và phải gửi kèm theo token.

4. Máy chủ giao thức sử dụng chuỗi token để kiểm tra xem người dùng có thể gọi

hàm hay không.

5. Máy chủ giao thức gọi các hàm ngoài phù hợp, nằm trong tập tin externallib.php

bên trong các mô-đun có liên quan.

6. Hàm ngoài đó sẽ kiểm tra xem người dùng hiện tại có quyền để thực hiện yêu

cầu này không.

7. Hàm ngoài gọi hàm Moodle core phù hợp, thường ở trong file lib.php.

8. Hàm core trả về một kết quả tới hàm ngoài.

9. Hàm ngoài sẽ trả về một kết quả đến máy chủ giao thức.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

3

4

10. Các máy chủ giao thức trả về kết quả cho máy khách.

II.5.2.2 Cấu hình dịch vụ web

Phiên bản Moodle đang sử dụng cho các cấu hình bên dưới là Moodle 2.4.1.

Kích hoạt dịch vụ

- Truy cập vào Settings -> Site administration -> Advanced features->

Plugins-> Web services -> Enternal services.

- Tích chọn Enable web services for mobile devices sau đó kích Save

Changes.

- Lưu ý: vì lý do bảo mật nên chỉ kích hoạt dịch vụ web khi cần thiết.

Kích hoạt giao thức và tài liệu.

- Truy cập vào Settings -> Site administration -> Advanced features

-> Plugins-> Web services -> Manage protocols.

- Kích hoạt các giao thức (SOAP, REST, XMLRPC, AMF,... ).

- Để kích hoạt tài liệu chọn: web services documentation sau đó chọn

Save Changes.

Tạo một dịch vụ web mới

Nếu không có các dịch vụ web xây dựng trước phù hợp với nhu cầu của bạn, chúng

ta có thể tạo ra một dịch vụ tức là chọn các hàm dịch vụ web cụ thể có sẵn cho dịch

vụ đó.

Bạn có thể kích hoạt các hàm dịch vụ nhất định, vì vậy không ảnh hưởng đến vấn

đề bảo mật.

Các bước tạo một dịch vụ web như sau:

1. Truy cập vào Settings -> Site administration -> Advanced features->

Plugins-> Web services -> Enternal services.

2. Kích Add new custom services.

3. Authorised users only: nếu kích hoạt, bạn cần lựa chọn những người dùng

có thẩm quyền bằng tay. Nếu không tất cả người dùng với các quyền hạn phù

hợp là được phép

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

3

5

4. Required capability: nếu kích hoạt, bất cứ user nào truy cập các dịch vụ

web sẽ được kiểm tra lại các quyền truy cập. (Đây chỉ là lớp bảo mật tùy

chọn bổ sung)

5. Nhập tên và tích chọn Enabled

6. Bấm nút Add service để tạo dịch vụ.

Thêm một hàm vào dịch vụ web

Hàm dịch vụ được tạo ra, nhưng chưa có các hàm được thêm vào, do đó chúng ta sẽ

lựa chọn hàm phù hợp cho phép các ứng dụng bên ngoài sử dụng.

Chúng ta làm theo các bước sau:

1. Truy cập vào Settings -> Site administration -> Advanced features->

Plugins-> Web services -> Enternal services.

2. Tương ứng với từng service đã được tạo trong khung Built – in services

chọn Functions.

3. Lựa chọn hàm cần thiết cho các ứng dụng bên ngoài chi cập và chọn Add

Functions.

Tạo một chuỗi bảo mật token.

Tính năng này cho phép bạn tạo ra một chuỗi bảo mật cho người dùng cụ thể. Nó có

thể là hữu ích nếu người dùng không có quyền tạo token (moodle / create: token).

Đây cũng là cách duy nhất để tạo ra một chuỗi bảo mật cho người quản trị. Vì lý do

an ninh, chuỗi bảo mật không tự động tạo ra trong trang quản trị các khóa bảo mật.

1. Truy cập vào Settings -> Site administration -> Advanced features->

Plugins-> Web services -> Manage tokens.

2. Nhấp vào Add để thêm

3. Chọn người dùng để tạo và dịch vụ

4. Nhấp vào Saves changes để lưu các thay đổi.

Khi bạn tạo ra một chuỗi bảo mật cho người dùng, bạn không cần phải giao quyền

moodle/webservice:createtoken cho người dùng đó. Tuy nhiên, bạn cũng có thể

thiết lập phân quyền này cho người dùng bằng cách truy cập tới Settings > Site

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

3

6

administration > Users > Define roles. Trang quản lý các vai trò trong hệ thống

hiện ra (Manage roles), bạn hãy chọn Edit một role nào đó.

II.5.2.3 Sử dụng dịch vụ web của Moodle

II.5.2.3.1 Lấy token của một người dùng

Máy khách gửi yêu cầu HTTP đơn giản trong tập tin có đường dẫn /login/token.php

với các thông số sau:

- Username = tài khoản người dùng.

- Password = mật khẩu người dùng.

- Service = shortname: nếu sử dụng dịch vụ web cho các thiết bị di động (được

xây dựng sẵn) thì shortname = moodle_mobile_app. Trường shortname có thể

tìm thấy trong bảng cơ sở dữ liệu tên external_services.

Ví dụ:

- Chúng ta có thể dùng URL sau để gởi yêu cầu đến server:

http://mylocalhost/moodle/login/token.php?username=MYUSERNAME&password

=MYPASSWORD&service=SERVICESHORTNAME

- Kết quả trả về dạng:

o Kết quả trả về nếu thành công:

{"token":"bae92815bb780f9c828f1f597a200d9b"}

o Kết quả trả về nếu người dùng không có quyền để tạo webservice

token thì trả về lỗi:

{"error":"No permission to create web service token for the service

[SERVICESHORTNAME].","stacktrace":null, "debuginfo":null,

"reproductionlink":null}

o Nếu username là không tìm thấy trong cơ sở dữ liệu thì trả về:

{"error":"The username was not found in the database",

"stacktrace":null,"debuginfo":null,"reproductionlink":null}

o Nếu service là không tìm thấy thì trả về:

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

3

7

{"error":"Web service is not available (it doesn't exist or might be disabled)",

"stacktrace":null, "debuginfo":null, "reproductionlink":null}

II.5.2.3.2 Lấy danh sách các hàm của một dịch vụ web

Sau khi lấy được chuỗi token ta sẽ sử dụng nó để lấy danh sách các hàm của một

dịch vụ web với giao thức Soap. Để sử dụng được giao thức này cần kích hoạt Use

SOAP protocol như trong 5.2.2 Cụ thể chuỗi url sẽ sử dụng như sau:

http://www.mylocalhost/moodle/webservice/soap/server.php?wsdl=1&wstoken=

TOKEN

Tham số WSDL (Web Service Description Language) định nghĩa cách mô tả dịch

vụ Web theo cú pháp tổng quát của XML, bao gồm các thông tin:

- Tên dịch vụ

- Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của dịch vụ Web

- Loại thông tin: thao tác, tham số, những kiểu dữ liệu (có thể là giao diện của

dịch vụ Web cộng với tên cho giao diện này).

Hiện tại phiên bản 2.4.1 của Moodle hỗ trợ tất cả 43 hàm dịch vụ bắt đầu với tiền

tố core_ (các hàm đã chuẩn hóa), 25 hàm dịch vụ bắt đầu với tiền tố moodle_ (các

hàm này làm việc chưa hiệu quả, sẽ được chuẩn hóa và chuyển thành các hàm core_

trong các phiên bản tiếp theo của Moodle), 2 hàm dịch vụ bắt đầu với tiền tố mod_.

Ngoài ra còn có một hàm khá quan trọng là enrol_manual_enrol_users để thực hiện

việc ghi danh người dùng vào khóa học.

Moodle hiện vẫn đang trong giai đoạn phát triển nên một số hàm dịch vụ web rất

quan trọng liên quan đến Grade (điểm), Cohort (phân hệ) vẫn chưa hoàn thành.

II.5.2.3.3 Giao thức REST

- Giao thức REST đưa ra cách thức giao tiếp dựa vào HTTP URI, thường gọi

là URL query. Kết quả trả về của giao thức REST theo các định dạng XML

hoặc JSON (đơn thuần là văn bản) dễ dàng xử lý với hầu hết các ngôn ngữ.

- Việc giao tiếp trên cơ sở HTTP của REST được thực hiện dễ dàng mà không

cần phải thêm các thư viện khác.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

3

8

- Để gọi thực thi một hàm dịch vụ web của Moodle với giao thức REST ta cần

sử dụng chuỗi URL có định dạng sau:

http://www.mylocalhost/moodle/webservice/rest/server.php?moodlewsrestforma

t=FORMAT&wsfunction=FUNCTION&wstoken=TOKEN&DATA

o Trong đó: FORMAT là XML hoặc JSON(tham số

moodlewsrestformat mặc định là XML), FUNCTION là tên hàm mà

chúng ta cần gọi thực thi, DATA là dữ liệu tham số của hàm cần gọi.

- Ví dụ về hàm lấy thông tin người dùng có id=2, sử dụng hàm

core_user_get_users_by_id và kết quả trả về có dạng XML.

http://mylocalhost/moodle/webservice/rest/server.php?moodlewsrestformat=

xml&wsfunction=core_user_get_users_by_id&wstoken=bae92815bb780f9c

828f1f597a200d9b&userids[0]=2

o Kết quả trả về thành công có dạng sau:

<RESPONSE>

<MULTIPLE>

<SINGLE>

<KEY name="id">

<VALUE>2</VALUE>

</KEY>

<KEY name="username">

<VALUE>admin</VALUE>

</KEY>

<KEY name="firstname">

<VALUE>Your firstname</VALUE>

</KEY>

... các kết quả trả về khác

</SINGLE>

</MULTIPLE>

</RESPONSE>

o Nếu chuỗi token không hợp lệ, kết quả trả về có dạng sau:

<EXCEPTION class="moodle_exception">

<ERRORCODE>invalidtoken</ERRORCODE>

<MESSAGE>Invalid token - token not found</MESSAGE>

</EXCEPTION>

o Nếu không tìm thấy dịch vụ, kết quả trả về sẽ có dạng sau:

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

3

9

<EXCEPTION class="dml_missing_record_exception">

<ERRORCODE>invalidrecord</ERRORCODE>

<MESSAGE>Can not find data record in database table

external_functions.</MESSAGE>

</EXCEPTION>

o Nếu tham số không hợp lệ, kết quả trả về sẽ có dạng sau:

<EXCEPTION class="invalid_parameter_exception">

<MESSAGE>Invalid parameter value detected</MESSAGE>

<DEBUGINFO></DEBUGINFO>

</EXCEPTION>

II.5.2.3.4 Các giao thức khác

Các giao thức khác gồm có: SOAP, XMLRPC, AMF, tuy nhiên trong phạm vi đề

tài này ta sẽ không nghiên cứu cách sử dụng các giao thức này mà chỉ tập trung vào

nghiên cứu giao thức REST, xây dựng ứng dụng trên nền tảng Windows Phone thực

thi các hàm dịch vụ của Moolde.

II.5.3 API Functions Moodle

II.5.3.1 Các hàm liên quan đến người dùng

II.5.3.1.1 Hàm tạo người dùng

core_user_create_users hoặc moodle_user_create_users

STT Tên REST Kiểu Mô tả Null

1 username users[0][username] string Tên đăng nhập

2 password users[0][password] string Mật khẩu

3 firstname users[0][firstname] string Tên

4 lastname users[0][lastname] string Họ và đệm

5 email users[0][email] string Địa chỉ thư điện tử

6 auth users[0][auth] string Phương pháp chứng

thực manual

7 idnumber users[0][idnumber] string Mã id cho hệ thống

ngoài “”

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

4

0

8 lang users[0][lang] string Ngôn ngữ vi

9 theme users[0][theme] string Giao diện

10 timezone users[0][timezone] string Múi giờ 99

11 mailformat users[0][mailformat] int

Định dạng thư điện

tử: 0 cho văn bản

thuần, 1 cho định

dạng html…

x

12 description users[0][description] string Mô tả về người dùng x

13 city users[0][city] string Tỉnh hoặc thành phố

14 country users[0][country] string Quốc gia

II.5.3.1.2 Hàm xóa người dùng

core_user_delete_users hoặc moodle_user_delete_users

STT Tên REST Kiểu Mô tả Null

1 userids userids[0] int Chỉ số của các người dùng

II.5.3.1.3 Lấy thông tin người dùng

core_user_get_users_by_id hoặc moodle_user_get_users_by_id

STT Tên REST Kiểu Mô tả Null

1 userids userids[0] int Chỉ số của các người dùng

II.5.3.1.4 Hàm cập nhật thông tin người dùng

Đầu vào: Ngoài tham số id là chỉ số của người dùng cần cập nhật hồ sơ, các tham

số khác giống như trong hàm tạo người dùng bên trên.

core_user_update_users hoặc moodle_user_update_users

STT Tên REST Kiểu Mô tả Null

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

4

1

1 id users[0][id] Double Chỉ số của các người dùng

II.5.3.2 Các hàm liên quan đến danh mục

II.5.3.2.1. Hàm tạo mục

core_course_create_categories

STT Tên REST Kiểu Mô tả Null

1 name categories[0][name] string Tên mục

2 parent categories[0][parent] int Id mục cấp trên 0 (root)

3 idnumber

categories[0]

[idnumber] string

Mã id cho hệ thống

ngoài x

4 description

categories[0]

[description] string Mô tả mục x

5 descriptionf

ormat

categories[0]

[descriptionformat] string

Định dạng mô tả:

1 = HTML

0 = MOODLE

2 = PLAIN

4 = MARKDOWN

x

6 theme categories[0][theme] string Giao diện mục x

II.5.3.2.2. Hàm xóa mục

core_course_delete_categories

STT Tên REST Kiểu Mô tả Null

1 Id

categories[0][

id] int Chỉ số của các mục

2 newparent categories[0][

newparent] int Id của mục cấp trên mới x

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

4

2

3 recursive categories[0][

recursive] int

Đệ quy: 0 - không xóa các mục

con mà đẩy vào mục cấp trên

mới (ngoại trừ mục root), 1 - xóa

toàn bộ mục con.

0

II.5.3.2.3. Hàm cập nhật mục

Đầu vào: Ngoài tham số id là chỉ số của mục cần cập nhật, các tham số khác giống

như trong hàm tạo mục bên trên.

core_course_update_categories

STT Tên REST Kiểu Mô tả Null

1 id categories[0][id] int Chỉ số của các mục

II.5.3.2.4. Hàm lấy thông tin mục

core_course_delete_categories

STT Tên REST Kiểu Mô tả Null

1 key

criteria[0][

key] string

Trường tìm kiếm có

thể là: id, name,

parent hay idnumber

2 value

criteria[0][

value] string

Giá trị để đối chiếu

tìm kiếm

3 addsubcategories addsubcate

gories int

Đệ quy: 0 - không

xem các mục con, 1 -

xem toàn bộ mục con.

1

II.5.3.3 Các hàm liên quan đến khóa học

II.5.3.3.1. Hàm tạo khóa học

core_user_create_course hoặc moodle_user_create_course

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

4

3

STT Tên REST Kiểu Mô tả Null

1 fullname

courses[0]

[fullname] string Tên đầy đủ

2 shortname

courses[0]

[shortname] string Tên viết tắt

3 categoryid

courses[0]

[categoryid] int Chỉ số mục

4 idnumber courses[0]

[idnumber] string

Mã id sử dụng cho hệ

thống ngoài x

5 summary courses[0]

[summary] string

Giới thiệu về khóa

học x

6

summary

format

courses[0]

[summaryformat] int

Định dạng giới thiệu

khóa học:

1 = HTML

0 = MOODLE

2 = PLAIN

4 = MARKDOWN

1

7 format courses[0]

[format] string

Định dạng khóa học:

weeks, topics, social,

site,..

week

s

8 showgrades courses[0]

[showgrades] int

1 = Hiển thị điểm

0 = Không hiển thị

điểm

1

9 newsitems courses[0]

[newsitems] int

Số lượng tin mục mới

hiển thị trên trang của

khóa học

5

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

4

4

10 startdate courses[0]

[startdate] int

Thời gian bắt đầu

khóa học

11 numsections courses[0]

[numsections] int Số tuần hay chủ đề 10

12 maxbytes courses[0]

[maxbytes] int

Kích thước tệp tin lớn

nhất theo byte có thể

upload lên.

8388

608

13 showreports courses[0]

[showreports] int

1 = Hiển thị báo cáo

0 = Không hiển thị

báo cáo

0

14 visible courses[0][visible] int

1 = Hiển thị khóa học

với sinh viên

0 = Không hiển thị

khóa học

0

15

hidden

sections

courses[0]

[hiddensections] int

1 = Các phần ẩn là

hoàn toàn không nhìn

thấy được.

0 = Các phần ẩn hiển

thị dưới dạng thu gọn.

0

16 groupmode courses[0]

[groupmode] int

0 = Không chia nhóm

1= Các nhóm khác

nhau không thể nhìn

thấy nhau

2 = Các nhóm khác

nhau có thể nhìn thấy

nhau

0

17

groupmode

force

courses[0]

[groupmodeforce] int

1 = Bắt buộc chia

nhóm 0

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

4

5

0 = Không bắt buộc

18

default

groupingid

courses[0]

[defaultgroupingid] int

Chỉ số tổ nhóm mặc

định 0

19

enable

completion

courses[0]

[enablecompletion] int

Kiểm soát từ xa các

cài đặt hoạt động và

hoàn thành khóa học

0

20

completion

startonenrol

courses[0]

[completion

startonenrol]

int

1 = Theo dõi tiến

trình hoàn thành khóa

học của sinh viên sau

khi tham gia khóa học

0 = Không theo dõi

0

21

completion

notify

courses[0]

[completionnotify] int

1 = Thông báo hoàn

thành khóa học.

0 = Không thông báo

hoàn thành

0

22 lang courses[0][lang] string Ngôn ngữ bắt buộc x

23 forcetheme courses[0]

[forcetheme] string Giao diện bắt buộc x

II.5.3.3.2. Hàm xóa khóa học

core_course_delete_courses

STT Tên REST Kiểu Mô tả Null

1 courseids courseids[0] int Chỉ số của các khóa học

II.5.3.3.3. Hàm lấy thông tin một khóa học

core_course_get_contents

STT Tên REST Kiểu Mô tả Null

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

4

6

1 courseid courseid int Chỉ số của khóa học

II.5.3.3.4. Hàm lấy thông tin các khóa học

core_course_get_courses hoặc moodle_course_get_courses

STT Tên REST Kiểu Mô tả Null

1 options options[ids][0] int Chỉ số của các khóa học

II.5.3.4 Các hàm liên quan đến nhóm người dùng

II.5.3.4.1. Hàm tạo nhóm người dùng

core_group_create_groups hoặc moodle_group_create_groups

STT Tên REST Kiểu Mô tả Null

1 courseid

groups[0]

[courseid] int

Chỉ số id của khóa

học

2 name

groups[0]

[name] string Tên nhóm

3 description groups[0]

[description] string Mô tả nhóm x

4 descriptionformat groups[0]

[descriptionformat] int

Định dạng mô tả:

1 = HTML

0 = MOODLE

2 = PLAIN

4 = MARKDOWN

1

5 enrolmentkey groups[0]

[enrolmentkey] string

Từ khóa bí mật để

ghi danh vào nhóm x

II.5.3.4.2. Hàm xóa nhóm người dùng

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

4

7

core_group_delete_groups hoặc moodle_group_delete_groups

STT Tên REST Kiểu Mô tả Null

1 groupids groupids[0] int Chỉ số id của các nhóm

II.5.3.4.3. Hàm thêm thành viên vào nhóm

core_group_add_group_members hoặc moodle_group_add_groupmembers

STT Tên REST Kiểu Mô tả Null

1 groupid members[0][groupid] int Chỉ số id của nhóm

2 userid members[0][userid] int Chỉ số id của người dùng

II.5.3.4.4. Hàm xóa thành viên ra khỏi nhóm

core_group_delete_group_members hoặc moodle_group_delete_groupmembers

STT Tên REST Kiểu Mô tả Null

1 groupid members[0][groupid] int Chỉ số id của nhóm

2 userid members[0][userid] int Chỉ số id của người dùng

II.5.3.4.5. Hàm lấy thông tin các nhóm

core_group_get_groups hoặc moodle_group_get_groups

STT Tên REST Kiểu Mô tả Null

1 groupids groupids[0] int Chỉ số id của các nhóm

II.5.3.5 Các hàm liên quan đến tổ nhóm người dùng

II.5.3.5.1. Hàm tạo tổ nhóm người dùng

core_group_create_groupings

STT Tên REST Kiểu Mô tả Null

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

4

8

1 courseid

groupings[0]

[courseid] int

Chỉ số id của khóa

học

2 name

groupings[0]

[name] string Tên tổ

3 description groupings[0]

[description] string Mô tả tổ x

4 descriptionformat groupings[0]

[descriptionformat] int

Định dạng mô tả:

1 = HTML

0 = MOODLE

2 = PLAIN

4 = MARKDOWN

1

II.5.3.5.2. Hàm xóa tổ nhóm người dùng

core_group_delete_groups

STT Tên REST Kiểu Mô tả Null

1 groupingids groupingids[0] int Chỉ số id của các tổ

II.5.3.5.3. Hàm cập nhật thông tin tổ nhóm người dùng

core_group_update_groupings

STT Tên REST Kiểu Mô tả Null

1 Id

groupings[0]

[id] int Chỉ số id của tổ

2 name groupings[0]

[name] string Tên tổ

3 description groupings[0] string Mô tả tổ x

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

4

9

[description]

4 descriptionformat groupings[0]

[descriptionformat] int

Định dạng mô tả:

1 = HTML

0 = MOODLE

2 = PLAIN

4 = MARKDOWN

1

II.5.3.5.4. Hàm gán các nhóm vào tổ nhóm

core_group_assign_grouping

STT Tên REST Kiểu Mô tả Null

1 groupingid

assignments[0]

[groupingid] int Chỉ số id của tổ

2 groupid assignments[0][groupid] int Chỉ số id của nhóm

II.5.3.5.5. Hàm xóa các nhóm ra khỏi tổ nhóm

core_group_unassign_grouping

STT Tên REST Kiểu Mô tả Null

1 groupingid

unassignments[0]

[groupingid] int Chỉ số id của tổ

2 groupid

unassignments[0]

[groupid] int Chỉ số id của nhóm

II.5.3.5.6. Hàm lấy thông tin các tổ nhóm

core_group_get_groupings

STT Tên REST Kiểu Mô tả Null

1 groupingids groupingds[0] int Chỉ số id của các tổ

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

5

0

II.5.3.5.7. Hàm lấy thông tin các tổ nhóm trong khóa học

core_group_get_course_groupings

STT Tên REST Kiểu Mô tả Null

1 courseid courseid int Chỉ số id của nhóm

II.5.3.6 Các hàm liên quan đến vai trò người dùng

II.5.3.6.1. Hàm chỉ định vai trò người dùng

core_role_assign_roles hoặc moodle_role_assign

STT Tên REST Kiểu Mô tả Null

1 roleid assignments[0][roleid] int Chỉ số id của vai trò

2 userid assignments[0][userid] int Chỉ số id của người

dùng

3 contexid assignments[0][contextid] int

Chỉ số id của ngữ

cảnh để gán vai trò

cho người dùng

II.5.3.6.2. Hàm bỏ chỉ định vai trò người dùng

core_role_unassign_roles hoặc moodle_role_unassign

STT Tên REST Kiểu Mô tả Null

1 roleid unassignments[0][roleid] int Chỉ số id của vai trò

2 userid unassignments[0][userid] int Chỉ số id của người

dùng

3 contexid unassignments[0][contextid] int

Chỉ số id của ngữ

cảnh để hủy vai trò

cho người dùng

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

5

1

II.5.3.7 Các hàm liên quan đến ghi danh khóa học

II.5.3.7.1. Hàm ghi danh người dùng vào khóa học

enrol_manual_enrol_users hoặc moodle_enrol_manual_enrol_users

STT Tên REST Kiểu Mô tả Null

1 roleid enrolments[0][roleid] int Chỉ số id của vai trò

2 userid enrolments[0][userid] int Chỉ số id của người

dùng

3 courseid enrolments[0][courseid] int

Chỉ số id của khóa học

để ghi danh người dùng

vào

4 timestart enrolments[0][timestart] int Thời điểm bắt đầu x

5 timeend enrolments[0][timeend] int Thời điểm kết thúc x

6 suspend enrolments[0][suspend] int Đình chỉ ghi danh của

thành viên x

II.5.3.7.2. Hàm lấy hồ sơ những thành viên ghi danh vào khóa học

core_enrol_get_enrolled_users hoặc moodle_enrol_get_enrolled_users

STT Tên REST Kiểu Mô tả Null

1 courseid course int Chỉ số id của khóa học

2 options options[0][name]

options[0][value] string

* withcapability chỉ trả về

những người dùng có quyền.

Tùy chọn này yêu cầu quyền

'moodle/role:review' trong ngữ

cảnh course.

* groupid chỉ trả về những

người dùng trong groupid. Tùy

chọn này yêu cầu quyền

x

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

5

2

'moodle/site:accessallgroups'

trong ngữ cảnh course.

* onlyactive chỉ trả về những

người dùng đã kích hoạt ghi

danh và đúng với thời gian hạn

chế. Tùy chọn này yêu cầu

quyền

'moodle/course:enrolreview'

trong ngữ cảnh course.

* userfields chỉ trả về các giá

trị trong các trường của người

dùng.

* limitfrom giới hạn sql từ.

* limitnumber số lượng người

dùng lớn nhất trả về.

II.5.3.7.3. Hàm lấy thông tin các khóa học thành viên đã ghi danh

core_enrol_get_users_courses hoặc moodle_enrol_get_users_courses

STT Tên REST Kiểu Mô tả Null

1 userid userid int Chỉ số id của người dung

II.5.3.8 Các hàm khác

II.5.3.8.1. Hàm gửi tin nhắn

core_message_send_instant_messages hoặc

moodle_message_send_instant_messages

STT Tên REST Kiểu Mô tả Null

1 touserid messages[0][touserid] int Id của người nhận

2 Text messages[0][text] string Nội dung tin nhắn

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

5

3

3 textformat messages[0][textformat] int

Định dạng mô tả:

1 = HTML

0 = MOODLE

2 = PLAIN

4 = MARKDOWN

1

4 clientmsgid messages[0][clientmsgid] string

Được cung cấp thì

nếu tin nhắn bị lỗi sẽ

trả về id cho bạn

x

II.5.3.8.2. Hàm tạo ghi chú

core_notes_create_notes hoặc moodle_notes_create_notes

STT Tên REST Kiểu Mô tả Null

1 userid notes[0][userid] int Id của người nhận

2 publishstate notes[0][publishstate] string 'personal', 'course' or

'site'

3 courseid notes[0][courseid] int id của khóa học của

ghi chú

4 Text notes[0][text] string Nội dung ghi chú

5 format notes[0][format] string

Định dạng mô tả:

1 = HTML

0 = MOODLE

2 = PLAIN

4 = MARKDOWN

1

6 clientnoteid notes[0][clientnoteid] string

Được cung cấp thì

nếu note bị lỗi sẽ trả

về id cho bạn

x

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

5

4

II.6. TÌM HIỂU VỀ DOM

II.6.1 Tổng quan về DOM

DOM là một tiêu chuẩn của W3C (World Wide Web Consortium). DOM định

nghĩa một tiêu chuẩn cho truy cập vào các tài liệu HTML và XML:

“W3C Document Object Model (DOM) là một Mô hình Đối tượng Tài liệu, cho

phép các programs và các scripts truy cập và cập nhật nội dung, cấu trúc, và phong

cách của một tài liệu.”

W3C DOM tiêu chuẩn được chia thành 3 phần khác nhau:

Core DOM - mô hình tiêu chuẩn cho bất kỳ tài liệu có cấu trúc;

XML DOM - mô hình tiêu chuẩn cho các tài liệu XML;

Định nghĩa các đối tượng và thuộc tính của tất cả các yếu tố XML, và

các phương pháp để truy cập chúng;

HTML DOM - mô hình tiêu chuẩn cho các tài liệu HTML: Là một tiêu chuẩn để

đọc, thay đổi, thêm, hoặc xóa các phần tử HTML.

II.6.2 Các thành phần cơ bản của DOM

II.6.2.1. DOM Nodes (Nút)

Theo tiêu chuẩn W3C HTML DOM, tất cả mọi thứ trong một tài liệu HTML là nút:

Toàn bộ Document là một nút document;

Mỗi HTML element là một nút element;

Text bên trong các HTML elements là các nút text;

Mỗi HTML attribute là một nút attribute;

Comments là các nút comment.

HTML DOM xem tài liệu HTML như cấu trúc cây. Cấu trúc được gọi là một tree

node:

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

5

5

Hình 3: Tree node

Với DOM HTML, tất cả các nút trong cây có thể được truy cập bằng JavaScript.

Tất cả các HTML elements (nút) có thể được sửa đổi, và các nút có thể được tạo ra

hoặc bị xóa.

II.6.2.2. Nút Parent (cha), Children (con), và Siblings (anh em)

Các nút trong tree node có một mối quan hệ thứ bậc với nhau.

Trong một tree node, nút trên cùng được gọi là gốc (nút gốc);

Mỗi nút có chính xác một nút cha, ngoại trừ gốc (không có nút cha);

Một nút có thể có thể có số lượng nút con bất kỳ;

Nút anh em là các nút có cùng nút cha.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

5

6

Hình 4: tree node và mối quan hệ giữa các nút

Ví dụ:

<html>

<head>

<title>DOM Tutorial</title>

</head>

<body>

<h1>DOM Lesson one</h1>

<p>Hello world!</p>

</body>

</html>

Nút <html> không có nút cha, nó là nút gốc;

Nút cha của các nút <head> và <body> là nút <html>;

Nút cha của nút "Hello world!" là nút <p>;

và:

Nút <html> có hai nút con: <head> và <body>;

Nút <head> có một nút con: <title>;

Nút <title> cũng có một nút con: nút "DOM Tutorial";

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

5

7

Các nút <h1> và <p> là anh em và các nút con của <body>

và:

Các elements <head> là firstChild của element <html>;

Các elements <body> là lastChild của element <html>;

Các elements <h1> là firstChild của element <body>;

Các elements <p> là lastChild của element <body>.

II.6.2.3. HTML DOM Methods (Phương thức) và Properties (Thuộc tính)

Tất cả các phần tử HTML được định nghĩa như là các đối tượng, và các giao diện

lập trình là phương thức và thuộc tính đối tượng.

Phương thức là một hành động bạn có thể làm (như thêm hoặc sửa đổi một phần

tử).

Thuộc tính là giá trị mà bạn có thể nhận được, hoặc thiết lập (như tên hoặc nội

dung của một nút).

Một số phương thức thường dùng:

getElementById (id) – trả về một nút (element) với id xác định;

appendChild (node) - chèn một nút con mới (element);

removeChild (node) - loại bỏ một nút con (phần tử).

Một vài thuộc tính thường dùng

innerHTML – trả về giá trị văn bản của một nút (phần tử);

parentNode – trả về nút cha của một nút (phần tử);

childNodes – trả về các nút con của một nút (phần tử).

II.6.2.1 Truy xuất Elements (Nodes)

Truy cập HTML element (phần tử) cũng giống như truy xuất Node (nút). Có nhiều

cách truy cập một phần tử HTML:

Sử dụng phương thức getElementById();

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

5

8

Sử dụng phương thức getElementsByTagName();

Sử dụng phương thức getElementsByClassName().

Ví dụ

node.getElementById("id");

node.getElementsByTagName("tagname");

node.getElementsByClassName("classname");

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

5

9

CHƯƠNG III: XÂY DỰNG ỨNG DỤNG

III.1. ĐẶC TẢ YÊU CẦU PHẦN MỀM (IEEE-STD-830-2002)

III.1.1. Giới thiệu

III.1.1.1. Mục đích

- Tài liệu đặc tả yêu cầu phần mềm mô tả các chức năng, nhiệm vụ của phần

mềm Moodle Windows Phone trên nền tảng Windows Phone 8 sử dụng

Silverlight.

- Tài liệu cũng là cơ sở để phân tích, thiết kế và triển khai xây dựng ứng dụng

đảm bảo tính chính xác, đầy đủ và phù hợp với yêu cầu đặc tả.

- Tài liệu được lưu trữ cho giai đoạn kiểm thử và bảo trì phần mềm tham khảo.

- Tài liệu đặc tả này dùng cho người phân tích yêu cầu, lập trình viên, kiểm thử

viên, thiết kế viên, người quản lý và khách hàng, được sử dụng trong suốt

quá trình thiết kế, lập trình, cài đặt, vận hành và kiểm thử phần mềm.

III.1.1.2. Phạm vi sản phẩm

Đây là tài liệu mô tả tổng quan các yêu cầu về chức năng và phi chức năng của

phần mềm Moodle Windows Phone trên nền tảng Windows Phone 8 sử dụng

Silverlight.

Tài liệu chỉ mô tả ở mức người dùng về các chức năng của ứng dụng.

III.1.1.3. Bố cục tài liệu

Tài liệu đặc tả yêu cầu phần mềm gồm có 6 phần chính:

- Giới thiệu

- Mô tả tổng quan

- Các yêu cầu giao tiếp bên ngoài

- Các tính năng của hệ thống

- Các yêu cầu phi chức năng

- Các yêu cầu khác

Các mục đề xuất cho người đọc tài liệu:

- Nhóm lập trình viên nên đọc cả 6 phần trên.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

6

0

- Nhóm phân tích và thiết kế đọc phần mô tả tổng quan, các yêu cầu giao tiếp

bên ngoài, các tính năng của hệ thống.

- Nhóm kiểm thử đọc phần các tính năng của hệ thống và các yêu cầu phi chức

năng.

- Nhóm người quản lý cần đọc các yêu cầu của người sử dụng.

III.1.2. Mô tả tổng quan

III.1.2.1. Bối cảnh tổng quan

Ngày nay với sự phát triển vượt trội của công nghệ trên thiết bị di động thì các

điện thoại thông minh dần trở nên phổ biến với người dùng. Trong đó ngành giáo dục

cũng bước vào cuộc đua công nghệ trên thiết bị di động với hàng loạt phần mềm được

tạo ra, nhằm đáp ứng được nhu cầu sử dụng của người dùng. Trong đó phần mềm

giáo dục phổ biến Moodle luôn được sự quan tâm từ nhà phát triển ứng dụng, có

nhiều phần mềm được tạo ra cho giáo viên, sinh viên, những người sử dụng hệ thống

Moodle trên thiết bị di động, thay vì truy cập từ website thì người dùng có thể truy

cập từ ứng dụng trên thiết bị di động của mình thông qua các API được cung cấp.

Tuy nhiên những ứng dụng hiện có, còn quá nghèo nàn về chức năng, có nhiều hạn

chế và chỉ được hỗ trợ trên thiết bị chạy hệ điều hành iOS và Android thông qua trình

duyệt, với hệ điều hành Windows Phone thì đây là một vấn đề mới, chính vì thế đây

là ứng dụng trên Windows Phone đầu tiên cho hệ thống Moodle. Đó cũng là lý do để

phát triển phần mềm Moodle Windows Phone cho người sử dụng hệ thống Moodle.

Với ứng dụng Moodle Windows Phone người dùng phải có một tài khoản trên hệ

thống Moodle, tương ứng với một tài khoản sẽ có một số quyền nhất định, quyền của

người dùng cho phép người dùng truy cập, thêm, sửa, hay xóa các thành phần mà hệ

thống đã cung cấp. Quyền của người dùng phụ thuộc vào người quản trị hệ thống

Moodle, do đó phần mềm Moodle Windows Phone được tạo ra tuân thủ các quyền

của hệ thống. Ứng dụng cho phép người dùng (sinh viên, giáo viên hoặc người quản

trị) đăng nhập vào hệ thống bằng tài khoản cá nhân của mình. Phụ thuộc vào quyền

của người dùng mà ứng dụng sẽ cung cấp những chức năng tương ứng của hệ thống

Moodle.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

6

1

Moodle Windows Phone cung cấp chức năng tạo người dùng, người dùng được

tạo phải có đầy đủ các thông tin sau: tài khoản, mật khẩu, họ và tên, địa chỉ email.

Ngoài ra có thể cung cấp thêm một số thông tin như: Phương pháp chứng thực, mô

tả người dùng, tỉnh hoặc thành phố, quốc gia. Tài khoản đăng nhập phải là duy nhất

trong hệ thống. Người dùng có thể cập nhật thông tin cá nhân như: mật khẩu, họ và

tên, địa chỉ email, tỉnh hoặc thành phố hoặc quốc gia. Ngoài ra người quản trị cũng

có thể xóa người dùng đã tạo.

Các chức năng về khóa học luôn là vấn đề được đề cập trong hệ thống Moodle.

Moodle Windows Phone cho phép tạo một khóa học mới phải đầy đủ các thông tin

sau: Chỉ mục mà khóa học được tạo ra, tên đầy đủ và tên viết tắt của khóa học. Người

dùng có thể ghi danh vào khóa học để xem thông tin khóa học đó, biết được các thành

viên tham gia vào khóa học, và thuộc nhóm nào trong khóa học đó. Vì thế người dùng

dễ dàng trao đổi, thảo luận, cập nhật thông tin từ các thành viên khóa học. Người

quản trị khóa học có thể thêm thành viên vào khóa học, tạo nhóm và thêm thành viên

vào nhóm.

Diễn đàn là nơi trao đổi, thảo luận, chia sẽ kiến thức, người dùng sẽ dễ dàng truy

cập vào diễn đàn với Moodle Windows Phone, xem các thông tin được chia sẽ trên

diễn đàn, tạo một chủ đề mới, tham gia bình luận và tải xuống các tài liệu cần thiết.

Ngoài ra người dùng có thể xem được các liên kết, các tài nguyên từ hệ thống Moodle.

Giữa các người dùng trong hệ thống Moodle có thể gửi và nhận tin nhắn một cách

dễ dàng trên ứng dụng Moodle Windows Phone. Người dùng có thể tạo ghi chú trên

website hệ thống, lưu lại các thông báo, các sự kiện cho khóa học của mình.

III.1.2.2. Các chức năng của sản phẩm

Báo cáo Luận văn tốt nghiệp GVHD Ks. Hồ Quang Thái

SVTH: Tô Ngọc Ẩn

Hình 5. Các chức năng của sản phẩm.

Moodle Windows Phone

Tổng quan

Tin tức - Thông báo

Trao đổi kiến thức

Các liên kết

Tài nguyên

My Document

Hướng dẫn

Tải xuống

Khóa học

Tạo khóa họcXem nội dung

khóa họcDiễn đàn

Tạo chủ đề mới

Xem nội dung diễn đàn

Download tập tin

Thành viên

Thêm thành viên vào khóa học

Nhóm người dùng

Tạo nhóm người dùng

Thêm/xóa người dùng trong

nhóm

Danh mục khóa học

Khóa học đã ghi danh

Người dùng

Tạo người dùng mới

Cập nhật thông tin

Tạo ghi chú

Gửi/ nhận tin nhắn

Báo cáo Luận văn tốt nghiệp GVHD Ks. Hồ Quang Thái

SVTH: Tô Ngọc Ẩn

III.1.2.3. Đặc điểm người sử dụng

Đối tượng mà phần mềm Moodle Windows Phone hướng đến đó là những người sử

dụng hệ thống học tập Moodle. Người dùng thường hay thao tác trên thiết bị cảm

ứng Windows Phone.

III.1.2.4. Môi trường vận hành

- Đối với môi trường thực tế:

o Thiết bị chạy hệ điều hành Windows Phone 8 (hoặc phiên bản cao

hơn).

o Thiết bị có kết nối mạng

- Đối với môi trường giả lập:

o Phần mềm

Hệ điều hành Windows 8 professional 64 bit.

Visual Studio 2012 Ultimate

.NET FrameWork 4.0

Windows Phone SDK 8.0

ComponentOne Studio for Windows Phone.

o Phần Cứng: Dell Vostro 3560, Intel® Core™ i5 CPU 3210M 2.5GHz

(4CPUs), RAM 4GB.

III.1.2.5. Các ràng buộc về thực thi và thiết kế

- Ngôn ngữ lập trình C#, sử dụng công cụ Visual Studio 2012 Ultimate.

- Giao diện đặc trưng của Windows Phone

- Giao diện hài hòa, dễ tương tác với người sử dụng.

III.1.2.6. Các giả định và phụ thuộc

Các yếu tố có thể làm ảnh hưởng đến quá trình phát triển phần mềm:

- Người phát triển thu thập yêu cầu phần mềm không chi tiết đầy đủ, dẫn đến

ứng dụng thiết chức năng.

- Phát triển phần mềm chậm tiến độ, làm ảnh hưởng đến chất lượng phần

mềm.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

6

4

- Áp lực về thời gian phải hoàn thành ứng dụng trong khi hiểu biết công nghệ

chưa thật sự vững vàng.

III.1.3. Các yêu cầu giao tiếp bên ngoài

III.1.3.1. Giao diện người sử dụng

- Cách bố trí và màu chủ đạo: Màu xanh cho phần hiển thị thông tin người dùng,

màu đen hiển thị tiêu đề, và màu trắng hiển thị nội dung.

- Phong cách giao diện Metro UI đặc trưng của Windows Phone.

III.1.3.2. Giao tiếp phần cứng

Yêu cầu tối thiểu cho thiết bị Windows Phone 8 (nguồn từ Wikipedia):

- Chip Qualcomm Snapdragon S4 dual-core processor hoặc Snapdragon 800

- Tối thiểu 512MB RAM cho độ phân giải WVGA, và 1GB cho độ phân giải

HD (720p) và Full HD (1080p).

- Tối thiểu 4GB bộ nhớ flash.

- Hỗ trợ đa chạm với 4 điểm tiếp xúc.

Yêu cầu tối thiểu cho máy tính giả lập Window Phone Emulator (Nguồn MS):

o Phần mềm

Visual studio Ultimate 2012

Windows Phone SDK 8.0

o Yêu cầu hệ thống

Hệ điều hành Windows 8 64bit (bản Pro hoặc cao hơn).

RAM 4GB hoặc cao hơn.

BIOS phải hỗ trợ những số tính năng sau: bộ xử lý phải hỗ trợ

Second Level Address Translation – SLAT và bật Hyper-V.

o Yêu cầu mạng

Máy ảo yêu cầu DHCP, vì nó tự cấu hình với địa chỉ IP riêng

biệt cho thiết bị.

Tự cấu hình DNS và thiết lập gateway cho máy ảo.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

6

5

III.1.3.3. Giao tiếp phần mềm

Yêu cầu phần mềm cho phát triển ứng dụng Windows Phone 8:

- Hệ điều hành Window 8 Professional 64 bit.

- Microsoft Visual Studio 2012 Ultimate.

- Windows Phone SDK 8.0.

- .NET FrameWork 4.0.

III.1.3.4. Giao tiếp truyền thông tin

Ứng dụng giao tiếp với Moodle Server thông qua giao thức truyền tin Basic HTTP,

lấy giá trị trả về của một dịch vụ Web với giao thức REST.

III.1.4. Các tính năng của hệ thống

III.1.4.1. REQ01 – Đăng nhập

Mã yêu cầu REQ01

Tên yêu cầu Đăng nhập

Mức độ ưu tiên Cao

Nội dung Cho phép người dùng sử dụng tài khoản hệ thống Moodle

đăng nhập vào hệ thống.

Đối tượng sử dụng Người sử dụng hệ thống Moodle

Tiền điều kiện

- Người sử dụng được cấp tài khoản và mật khẩu trên hệ

thống Moodle.

- Dịch vụ Web services trên hệ thống Moodle được bật.

- Người dùng có quyền sử dụng dịch vụ Web services.

- Người sử dụng khởi động ứng dụng.

Xử lý

1. Người dùng khởi động ứng dụng.

2. Tại phần đăng nhập, người dùng khai báo các thông tin

sau: Địa chỉ kết nối với hệ thống Moodle, tên tài khoản

và mật khẩu đăng nhập vào máy chủ.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

6

6

3. Chạm đăng nhập.

4. Hệ thống kiểm tra thông tin tài khoản và xác nhận đăng

nhập.

Kết quả Người dùng đăng nhập thành công vào hệ thống.

Ghi chú

- Thông báo với người dùng khi không kết nối được với

server.

- Thông báo tài khoản hoặc mật khẩu không đúng nếu

người dùng đăng nhập sai.

III.1.4.2. REQ02 – Tạo người dùng

Mã yêu cầu REQ02

Tên yêu cầu Tạo người dùng

Mức độ ưu tiên Cao

Nội dung Cho phép tạo người dùng trên hệ thống Moodle.

Đối tượng sử dụng Người dùng (thường là người dùng quản trị hệ thống

Moodle)

Tiền điều kiện Đăng nhập thành công hệ thống, có quyền tạo người dùng.

Xử lý

- Người dùng chọn chức năng tạo người dùng.

- Tại giao diện tạo người dùng:

1. Chọn phương pháp chứng thực người dùng (mặc định

là Manual Accounts).

2. Người dùng nhập các thông tin cần thiết tại giao diện

thêm người dùng mới:

- Tài khoản (*)

- Mật khẩu (*)

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

6

7

- Xác nhận mật khẩu (*)

- Họ người dùng (*)

- Tên người dùng (*)

- Địa chỉ email người dùng (*)

- Tỉnh hoặc thành phố (*)

- Quốc gia (*)

3. Hệ thống kiểm tra thông tin nhập vào của người dùng,

nếu đầy đủ thông tin và hợp lệ thì cho phép gửi yêu

cầu tạo người dùng lên hệ thống Moodle và nhận kết

quả trả về.

Kết quả Thêm người dùng mới thành công vào hệ thống.

Ghi chú

- Tài khoản bao gồm các số, kí tự và phải duy nhất trên

hệ thống.

- Mật khẩu ít nhất 8 kí tự, có chứa ít nhất 2 kí tự thường,

2 kí tự số, 1 kí tự hoa và 1 kí tự đặc biệt.

III.1.4.3. REQ03 – Lấy hồ sơ người dùng

Mã yêu cầu REQ03

Tên yêu cầu Lấy hồ sơ người dùng

Mức độ ưu tiên Cao

Nội dung Cho phép người dùng hiển thị thông tin cá nhân của mình.

Đối tượng sử dụng Người dùng

Tiền điều kiện Đăng nhập thành công vào hệ thống

Xử lý 1. Người dùng chọn chức năng hiển thị thông tin cá

nhân.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

6

8

2. Thông tin người dùng được hiển thị đầy đủ ngoài giao

diện.

Kết quả Thông tin người dùng được hiển thị đầy đủ.

Ghi chú

Các thông tin sau phải được hiển thị: Tên người dùng, tài

khoản người, địa chỉ email, hình ảnh đại diện và các thông

tin khác nếu có.

III.1.4.4. REQ04 – Cập nhật thông tin cá nhân

Mã yêu cầu REQ04

Tên yêu cầu Cập nhật thông tin cá nhân

Mức độ ưu tiên Cao

Nội dung Cho phép người dùng cập nhật thông tin cá nhân.

Đối tượng sử dụng Người dùng

Tiền điều kiện Người dùng đăng nhập thành công vào hệ thống.

Xử lý

1. Người dùng chọn hiển thị thông tin cá nhân.

2. Chọn chỉnh sửa thông tin cá nhân bao gồm 1 trong số

thông tin sau:

- Tên người dùng

- Địa chỉ email.

3. Người dùng chọn vào 1 trong các thông tin cần cập

nhật.

4. Điền đầy đủ các thông tin cần cập nhật

5. Nhấn save để lưu lại thông tin cập nhật

6. Hệ thống kiểm tra thông tin hợp lệ và cập nhật lại

thông tin cá nhân người dùng.

Kết quả Thông tin cá nhân người dùng được cập nhật.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

6

9

Ghi chú

Tên người dùng và địa chỉ email không được bỏ trống.

Địa chỉ email phải hợp lệ.

III.1.4.5. REQ05 – Đổi mật khẩu

Mã yêu cầu REQ05

Tên yêu cầu Đổi mật khẩu

Mức độ ưu tiên Trung bình

Nội dung Cho phép người dùng thay đổi mật khẩu

Đối tượng sử dụng Người dùng

Tiền điều kiện Đăng nhập thành công hệ thống.

Xử lý

1. Người dùng chọn thay đổi mật khẩu.

2. Tại giao diện thay đổi mật khẩu người dùng nhập đầy

đủ thông tin sau:

- Nhập mật khẩu cũ

- Nhập mật khẩu mới

- Xác nhận mật khẩu mới

3. Kiểm tra thông tin hợp lệ và xác nhận yêu cầu thay

đổi mật khẩu của người dùng.

Kết quả Mật khẩu người dùng được thay đổi.

Ghi chú

- Điền đầy đủ thông tin xác nhận đổi mật khẩu.

- Mật khẩu mới ít nhất 8 kí tự, có chứa ít nhất 2 kí tự

thường, 2 kí tự số, 1 kí tự hoa và 1 kí tự đặc biệt.

- Trường xác nhận mật khẩu mới phải giống với trường

mật khẩu mới.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

7

0

III.1.4.6. REQ06 – Tạo khóa học

Mã yêu cầu REQ06

Tên yêu cầu Tạo khóa học

Mức độ ưu tiên Cao

Nội dung Cho phép người dùng tạo khóa học mới.

Đối tượng sử dụng Người dùng (thường là người dùng quản trị hệ thống)

Tiền điều kiện

Đăng nhập thành công hệ thống.

Được cấp quyền tạo khóa học.

Xử lý

Người dùng chọn chức năng tạo mới khóa học

Người dùng điền đầy đủ các thông tin sau:

- Chọn thư mục (*)

- Tên đầy đủ của khóa học (*)

- Tên ngắn gọn của khóa học (*)

- Mô tả khóa học

- Chọn ngày bắt đầu

- Chọn định dạng

- Số thông tin hiển thị

- Cho phép hiển thị bảng điểm

- Cho phép hiển thị báo cáo hoạt động

- Dung lượng tập tin tải lên

Hệ thống kiểm tra thông tin nhập vào của người dùng, nếu

thống tin hợp lệ cho phép tạo khóa học mới.

Kết quả Người dùng tạo thành công khóa học.

Ghi chú - Tên ngắn gọn của khóa học là duy nhất trong hệ thống.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

7

1

- Số thông tin hiển thị mặc định là 5.

- Mặc định cho phép hiển thị báo cáo.

- Mặc định cho phép hiển thị báo cáo hoạt động.

- Dung lượng tập tin tải lên mặc định là 2Mb.

III.1.4.7. REQ07 – Lấy thông tin khóa học

Mã yêu cầu REQ07

Tên yêu cầu Lấy thông tin khóa học

Mức độ ưu tiên Cao

Nội dung Cho phép lấy thông tin tất cả các khóa học trên hệ thống

Moodle

Đối tượng sử dụng Người dùng

Tiền điều kiện Đăng nhập thành công vào hệ thống

Xử lý

1. Người dùng chọn chức năng hiển thị thông tin khóa

học.

2. Thông tin các khóa học của hệ thống được hiển thị.

Kết quả Thông tin khóa học được hiển thị.

Ghi chú Đảm bảo tên khóa học được hiển thị đầy đủ.

III.1.4.8. REQ08 – Xem nội dung khóa học

Mã yêu cầu REQ08

Tên yêu cầu Xem nội dung khóa học

Mức độ ưu tiên Cao

Nội dung Cho phép xem nội dung của khóa học, bao gồm diễn đàn và

các thông tin được chia sẽ trên khóa học.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

7

2

Đối tượng sử dụng Người dùng

Tiền điều kiện Đăng nhập thành công vào hệ thống

Xử lý

- Người dùng chọn khóa học.

- Người dùng chọn hiển thị nội dung khóa học.

- Nội dung khóa học được hiển thị.

Kết quả Nội dung khóa học đã chọn được hiển thị.

Ghi chú Hiển thị đầy đủ các thông tin của khóa học.

III.1.4.9. REQ09 – Tạo nhóm người dùng

Mã yêu cầu REQ09

Tên yêu cầu Tạo nhóm người dùng

Mức độ ưu tiên Trung bình

Nội dung Cho phép tạo nhóm người dùng trong khóa học.

Đối tượng sử dụng Người dùng (thường là người quản trị khóa học đó).

Tiền điều kiện

Đăng nhập thành công vào hệ thống.

Được cấp quyền tạo nhóm người dùng.

Xử lý

1. Người dùng chọn hiển thị tất cả khóa học.

2. Chạm, lựa chọn khóa học cần tạo nhóm người dùng

3. Trên thanh công cụ chọn tạo mới nhóm người dùng.

4. Trên giao diện tạo nhóm người dùng điền đầy đủ thông

tin sau:

- Tên nhóm người dùng (*).

- Mô tả nhóm người dùng.

- Mật khẩu nhóm người dùng.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

7

3

5. Kiểm tra thông tin nhập vào của người dùng, nếu hợp lệ

cho phép tạo nhóm người dùng mới.

Kết quả Nhóm người dùng được tạo trong khóa học được chọn.

Ghi chú Tên nhóm người dùng trong khóa học là duy nhất.

III.1.4.10. REQ10 – Xóa nhóm người dùng

Mã yêu cầu REQ10

Tên yêu cầu Xóa nhóm người dùng

Mức độ ưu tiên Trung bình

Nội dung Cho phép người dùng xóa nhóm người dùng.

Đối tượng sử dụng Người dùng (thường là người quản trị khóa học đó).

Tiền điều kiện Người dùng đăng nhập thành công vào hệ thống.

Xử lý

1. Người dùng chọn hiển thị tất cả khóa học.

2. Chạm, lựa chọn khóa học cần xóa nhóm người dùng.

3. Chạm và giữ nhóm người dùng cần xóa.

4. Chọn Xóa nhóm người dùng.

5. Kiểm tra quyền của người dùng, nếu người dùng có

quyền thì cho phép xóa nhóm người dùng trong khóa học

đó.

Kết quả Nhóm người dùng trong khóa học đó được xóa.

Ghi chú

III.1.4.11. REQ11 – Thêm thành viên vào nhóm

Mã yêu cầu REQ11

Tên yêu cầu Thêm thành viên vào nhóm

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

7

4

Mức độ ưu tiên Trung bình

Nội dung Cho phép người dùng thêm thành viên vào nhóm (trong

một khóa học).

Đối tượng sử dụng Người dùng

Tiền điều kiện Đăng nhập thành công vào hệ thống.

Xử lý

1. Người dùng chọn hiển thị tất cả khóa học.

2. Chạm, lựa chọn khóa học chứa nhóm người dùng cần

thêm.

3. Chọn nhóm người dùng cần thêm thành viên vào nhóm.

4. Trong giao diện thêm thành viên vào nhóm:

- Chọn các thành viên cần thêm vào nhóm người dùng.

- Nhấn nút thêm để thêm thành viên vào nhóm.

Kết quả Thành viên được thêm vào nhóm người dùng.

Ghi chú

III.1.4.12. REQ12 – Xóa thành viên ra khỏi nhóm

Mã yêu cầu REQ12

Tên yêu cầu Xóa thành viên ra khỏi nhóm

Mức độ ưu tiên Trung bình

Nội dung Xóa thành viên ra khỏi nhóm người dùng

Đối tượng sử dụng Người dùng

Tiền điều kiện Người dùng đăng nhập thành công vào hệ thống.

Xử lý

1. Người dùng chọn hiển thị tất cả khóa học.

2. Chạm, lựa chọn khóa học chứa nhóm người dùng cần

xóa.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

7

5

3. Chọn nhóm người dùng cần xóa thành viên trong nhóm.

4. Trong giao diện nhóm người dùng:

- Chọn các thành viên cần xóa.

- Nhấn nút xóa để xóa thành viên ra khỏi nhóm.

Kết quả Thành viên được xóa ra khỏi nhóm người dùng.

Ghi chú

III.1.4.13. REQ13 – Lấy thông tin các nhóm

Mã yêu cầu REQ13

Tên yêu cầu Lấy thông tin các nhóm

Mức độ ưu tiên Cao

Nội dung Cho phép lấy thông tin các nhóm trong khóa học.

Đối tượng sử dụng Người dùng

Tiền điều kiện

Đăng nhập thành công vào hệ thống.

Khóa học và nhóm đã được tạo

Xử lý

1. Người dùng chọn chức năng hiển thị thông tin khóa học.

2. Chạm chọn khóa học cân hiển thị nhóm.

3. Thông tin nhóm thuộc khóa học được hiển thị.

Kết quả Thông tin nhóm thuộc khóa học được hiển thị.

Ghi chú Đảm bảo thông tin nhóm được hiển thị đầy đủ.

III.1.4.14. REQ14 – Ghi danh vào khóa học

Mã yêu cầu REQ14

Tên yêu cầu Ghi danh vào khóa học

Mức độ ưu tiên Cao

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

7

6

Nội dung Cho phép ghi danh người dùng vào khóa học.

Đối tượng sử dụng Người dùng

Tiền điều kiện Người dùng đăng nhập thành công vào hệ thống.

Xử lý

1. Người dùng chọn hiển thị tất cả khóa học

2. Chạm vào khóa học cần ghi danh người dùng.

3. Trong phần nội dung khóa học chọn nút thêm bên dưới

thanh công cụ

4. Giao diện ghi danh người dùng hiện ra:

- Chọn quyền người dùng, 1 trong các quyền sau:

Student

Teacher

Non-editing teacher

Manager

Webservice

None

- Chọn thành viên cần ghi danh

5. Nhấn nút thêm để ghi danh các thành viên đã chọn vào

khóa học.

Kết quả Thành viên được ghi danh vào khóa học.

Ghi chú Quyền của thành viên được ghi danh vào khóa học tương

ứng với quyền của người dùng trong khóa học đó.

III.1.4.15. REQ15 – Lấy thông tin danh mục

Mã yêu cầu REQ15

Tên yêu cầu Lấy thông tin danh mục

Mức độ ưu tiên Cao

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

7

7

Nội dung Cho phép người dùng lấy thông tin danh mục.

Đối tượng sử dụng Người dùng

Tiền điều kiện Người dùng đăng nhập thành công vào hệ thống.

Xử lý

1. Người dùng chọn chức năng hiển thị danh mục khóa học.

2. Thông tin các danh mục được hiển thị.

3. Chạm vào các danh mục cha để xem chi tiết các khóa

học trong danh mục đó.

4. Các khóa học trong danh mục đó được hiển thị.

Kết quả Thông tin danh mục và vị trí khóa học thuộc danh mục

được hiển thị.

Ghi chú Hiển thị số lượng khóa học có trong danh mục cha.

III.1.4.16. REQ16 – Xem nội dung diễn đàn môn học

Mã yêu cầu REQ16

Tên yêu cầu Xem nội dung diễn đàn môn học

Mức độ ưu tiên Cao

Nội dung Cho phép người dùng xem được nội dung trong diễn đàn

tin tức, diễn đàn thông báo và các diễn đàn trong khóa học.

Đối tượng sử dụng Người dùng

Tiền điều kiện Người dùng phải đăng nhập thành công vào hệ thống.

Xử lý

Xem diễn đàn trao đổi kiến thức.

- Tại giao diện chính của chương trình người dùng vào

menu của ứng dụng.

- Tại Main menu – Chọn diễn đàn trao đổi kiến thức.

- Nội dung chính trong diễn đàn được hiển thị.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

7

8

- Chạm vào nội dung cần xem để hiển thị chi tiết.

Xem diễn đàn trong khóa học.

- Người dùng chọn hiển thị tất cả khóa học.

- Chạm, lựa chọn khóa học chứa diễn đàn cần xem nội

dung

- Nội dung khóa học được hiển thị, chọn diễn đàn cần

xem.

- Nội dung chính trong diễn đàn được hiển thị.

- Chạm vào nội dung cần xem để hiển thị chi tiết.

Kết quả Cho phép người dùng xem thông tin được chia sẽ trên các

diễn đàn.

Ghi chú

Kiểm tra quyền của người dùng, đối với diễn đàn trao đổi

kiến thức không yêu cầu người dùng đăng nhập, các diễn

đàn của khóa học yêu cầu xác thực thông tin người dùng.

III.1.4.17. REQ17 – Tạo chủ đề mới trên diễn đàn

Mã yêu cầu REQ17

Tên yêu cầu Tạo chủ đề mới trên diễn đàn

Mức độ ưu tiên Cao

Nội dung Cho phép người dùng tạo chủ đề mới trên diễn đàn

Đối tượng sử dụng Người dùng

Tiền điều kiện Người dùng đăng nhập thành công vào hệ thống.

Diễn đàn tin tức/ môn học phải được tạo.

Xử lý

1. Người dùng chọn hiển thị tất cả khóa học.

2. Chạm, lựa chọn khóa học chứa diễn đàn cần tạo chủ đề

mới

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

7

9

3. Tại giao diện chứa chủ đề diễn đàn, trên thanh công cụ

ApplicationBar chọn tạo mới diễn đàn.

4. Tại trang tạo mới chủ đề, người dùng điền đầy đủ thông

tin sau:

Tên chủ đề (*).

Nội dung chủ đề (*).

Ngày bắt đầu

Ngày kết thúc

5. Hệ thống gửi thông tin yêu cầu và đính kèm thông tin

người dùng lên máy chủ.

Kết quả Chủ đề mới trên diễn đàn được tạo.

Ghi chú

III.1.4.18. REQ18 – Tải xuống tập tin từ diễn đàn

Mã yêu cầu REQ18

Tên yêu cầu Tải xuống tập tin từ diễn đàn

Mức độ ưu tiên Trung bình

Nội dung Cho phép người dùng tải xuống các tập tin được chia sẽ

trên diễn đàn.

Đối tượng sử dụng Người dùng

Tiền điều kiện

Người dùng đăng nhập thành công vào hệ thống.

Người dùng tham gia vào diễn đàn và có quyền tải tập tin

Xử lý

1. Người dùng truy cập vào diễn đàn

2. Người dùng chạm để xem các chủ đề của diễn đàn, chạm

vào các chủ đề để xem thông tin chỉ tiết nội dung diễn

đàn.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

8

0

3. Chạm vào thư mục chứa tập tin cần tải xuống.

4. Hiển thị danh sách các tập tin được đính kèm.

5. Chạm vào nút download để tải xuống tập tin cần tải

xuống.

Kết quả Tập tin được tải xuống.

Ghi chú

III.1.4.19. REQ19 – Gửi tin nhắn

Mã yêu cầu REQ19

Tên yêu cầu Gửi tin nhắn

Mức độ ưu tiên Trung bình

Nội dung Cho phép người dùng gửi tin nhắn đến người dùng khác.

Đối tượng sử dụng Người dùng

Tiền điều kiện Người dùng đăng nhập thành công vào hệ thống.

Xử lý

1 Người dùng hiển thị thông tin thành viên muốn gửi tin

nhắn.

2 Trong phần nhắn tin điền vào trường nội dung (*) muốn

gửi sau đó chạm gửi.

3 Hệ thống gửi yêu cầu nhắn tin đến người nhận.

Kết quả Tin nhắn được gửi tới người nhận.

Ghi chú Tin nhắn gửi đi không được rỗng.

III.1.4.20. REQ20 – Tạo ghi chú

Mã yêu cầu REQ20

Tên yêu cầu Tạo ghi chú

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

8

1

Mức độ ưu tiên Trung bình

Nội dung Cho phép người dùng tạo ghi chú cá nhân, trên site hệ

thống hoặc trong từng khóa học đã ghi danh.

Đối tượng sử dụng Người dùng

Tiền điều kiện

Người dùng đăng nhập thành công vào hệ thống.

Được cấp quyền tạo ghi chú.

Xử lý

1. Người dùng chọn xem thông tin cá nhân.

2. Tạo ghi chú trên site hệ thống:

- Chọn ghi chú trong khung hiển thị thông tin cá nhân

- Nhập thông tin cần ghi chú

- Chạm vào nút sent để tạo ghi chú

3. Tạo ghi chú trong từng khóa học:

- Chọn môn học trong khung hiển thị thông tin cá nhân

- Chạm vào môn học cần ghi chú

- Nhập thông tin cần ghi chú

- Chạm vào nút sent để tạo ghi chú

Kết quả Tạo ghi chú thành công

Ghi chú

III.1.5. Các yêu cầu phi chức năng

III.1.5.1. Yêu cầu thực thi

Phần mềm chạy tốt với đường truyền internet ổn định.

Người dùng gửi yêu cầu và nhận phản hồi thông tin nhanh chóng tối đa trong 5s.

Người dùng nhận kết quả phản hồi tùy thuộc vào số lượng nội dung của yêu cầu đó,

thông tin được hiển thị nhanh chóng tối đa không quá 10s.

Nếu có phát sinh trong quá trình thực thi phải thông báo với người dùng.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

8

2

III.1.5.2. Yêu cầu an toàn

Không có yêu cầu về an toàn.

III.1.5.3. Yêu cầu bảo mật

Xóa các dữ liệu khi người dùng đăng xuất ứng dụng. Vì đây là ứng dụng chạy trên

thiết bị cá nhân, ứng dụng không lưu trữ thông tin của người dùng nên không có

ràng buộc khác.

III.1.5.4. Các đặc điểm chất lượng phần mềm

- Ứng dụng phải hoạt động tốt trên thiết bị Windows Phone 8 như đã thiết kế.

Hoạt động tốt trên các thiết bị Windows Phone bản cao hơn (mới nhất hiện

nay là bản Windows Phone 8 Update 3).

- Không phát sinh lỗi nghiêm trọng, có thể chấp nhận các lỗi nhỏ hoặc chế độ

hiển thị chưa tốt ở màn hình có độ phân giải lớn hơn khi tương thích với hệ

điều hành Windows Phone mới.

- Ứng dụng phải thực thi chính xác các chức năng đã được thiết kết

- Dữ liệu trả về từ hệ thống Moodle và hiển thị trên thiết bị một cách chính

xác, đảm bảo đầy đủ thông tin và không dư thừa.

- Ứng dụng được thiết kế với bố cục rõ ràng, chia nhiều module tạo điều kiện

cho việc bảo trì hệ thống khi cần thiết.

- Ứng dụng phải thông suốt tài liệu.

III.1.5.5. Các quy tắc nghiệp vụ

- Thực hiện nghiêm túc

- Thực hiện đúng tiến độ yêu cầu của phần mềm đề ta.

III.1.6. Các yêu cầu khác

- Sử dụng ngôn ngữ của hệ thống Moodle, từ ngữ rõ ràng, dễ hiểu, thuần việt

và phải chính xác.

- Giao diện thân thiện, người dùng dễ thao tác và tương tác với hệ thống.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

8

3

III.2. THIẾT KẾ PHẦN MỀM (IEEE-V1)

III.2.1. Giới thiệu

III.2.1.1. Mục đích

Tài liệu thiết kế phần mềm nhằm đưa ra mẫu thiết kế chi tiết cho từng chức năng

của hệ thống. Các lập trình viên căn cứ vào thiết kế chi tiết của các chức năng được

mô tả trong tài liệu để tiến hành xây dựng hệ thống.

Mẫu thiết kế chi tiết còn làm tài liệu tham khảo cho giai đoạn kiểm thử, nhằm xác

định xem các chức năng có hoạt động chính xác như trong thiết kế chi tiết đã nêu ra

hay không.

III.2.1.2. Phạm vi

Mô tả về thiết kế kiến trúc, thiết kế dữ liệu, thiết kế giao diện cho người sử dụng

và các thành phần xử lý của phần mềm.

III.2.1.3. Tổng quan về tài liệu

Tài liệu này gồm có 5 phần cơ bản: Giới thiệu, Tổng quan hệ thống, Kiến trúc hệ

thống, Thiết kế dữ liệu, Thiết kế theo chức năng.

- Nhóm lập trình viên và kiểm thử viên nên đọc phần Thiết kế theo chức năng.

- Nhóm thiết kế viên chỉ cần đọc phần Kiến trúc hệ thống, và Thiết kế dữ liệu.

- Nhóm người quản lý cần đọc phần Kiến trúc hệ thống, Thiết kế dữ liệu, Thiết

kế theo chức năng.

III.2.2. Tổng quan hệ thống

Khi cuộc đua công nghệ được bắt đầu thì mọi lĩnh vực phải vươn lên phát triển, khi

đó phần mềm giáo dục Moodle cũng không quên hoàn thiện mình để thích nghi với

sự phát triển đó, với phiên bản 2.4.1 đã thúc đẩy lập trình viên tìm tòi khi có nhiều

API Functions được hỗ trợ từ Moodle. Nhận thức từ tầm quan trọng của lĩnh vực

giáo dục và nhu cầu người dùng trên thiết bị di động Windows Phone, ứng dụng

được tạo ra nhằm cung cấp cho người sử dụng hệ thống Moodle dễ dàng kết nối, dễ

dàng truy cập và dễ dàng học tập thông qua thiết bị di động của mình.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

8

4

III.2.3. Kiến trúc hệ thống

Hình 6. Thiết kế hệ thống.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

8

5

Hình 7. Mô hình MVVM.

MVVM là từ viết tắt của Model-View-ViewModel Desgin parttern. Đó là mô hình

lập trình ứng dụng phổ biến hiện nay, cho phép chúng ta cập nhật, binding dữ liệu

được xuyên suốt trong quá trình tương tác ứng dụng. Với kiến trúc này việc thao tác

dữ liệu trở nên đơn giản hơn. Giao diện sẽ tự động cập nhật khi chúng ta có sự thay

đổi dữ liệu, rất thuận tiện cho ứng dụng truy cập từ webservice với dữ liệu luôn thay

đổi trong phần mềm đang phát triển này.

Với kiến trúc này sẽ tách biệt giữa dữ liệu, quá trình xử lý, và giao diện hiển thị ứng

dụng.

- Model: Chứa kiến trúc dữ liệu của ứng dụng, trong Model chúng ta sẽ định nghĩa

những lớp cấu tạo nên ứng dụng, những cấu trúc dữ liệu cần thiết.

- ViewModel: Lớp trung gian giữa Model và View, chứa dữ liệu để đổ ra ngoài

giao diện, chứa các mã lệnh cần thiết để thực thi chức năng ứng dụng. Ví dụ các

thao tác dữ liệu như thêm, sửa, xóa người dùng, khóa học…sẽ được xử lý trong

ViewModel.

- View: Phần giao diện của ứng dụng để hiển thị dữ liệu và nhận tương tác của

người dùng.

III.2.4. Thiết kế dữ liệu

Sử dụng cơ sở dữ liệu của hệ thống Moodle.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

8

6

III.2.5. Thiết kế theo chức năng

III.2.5.1. REQ01 – Đăng nhập

III.2.5.1.1. Mục đích

Cho phép người dùng hệ thống Moodle đăng nhập vào ứng dụng, sử dụng các chức

năng của ứng dụng.

III.2.5.1.2. Tiền điều kiện

- Người sử dụng được cấp tài khoản và mật khẩu trên hệ thống Moodle.

- Dịch vụ Web services trên hệ thống Moodle được bật.

- Người dùng có quyền sử dụng dịch vụ Web services.

- Người sử dụng khởi động ứng dụng.

III.2.5.1.3. Giao diện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

8

7

Hình 8. Đăng nhập hệ thống.

III.2.5.1.4. Các thành phần trong giao diện

STT Loại điều khiển Tên điều

khiển

Giá trị

mặc định Ghi chú

1

PhoneTextBox

ptbLocalURL Chứa địa chỉ kết nối đến

máy chủ

2 ptbUsername Username Trường chứa tên tài

khoản người sử dụng.

3 PasswordBox pbPassword Password Trường chứa mật khẩu

người sử dụng

4 Button

btnLogin Nút lệnh đăng nhập

5 btnCancel Nút lệnh hủy đăng nhập

6 ProgressBar prbLoading Trạng thái xử lý của ứng

dụng

7

Image

imgHelp Trợ giúp

8 imgBG Hình nền khung đăng

nhập

III.2.5.1.5. Xử lý

- B1: người dùng khai báo địa chỉ (tên miền) để kết nối với máy chủ, kèm theo

đó là tài khoản và mật khẩu hợp lệ vào các ô tương ứng.

- B2: người dùng chọn đăng nhập để đăng nhập vào ứng dụng.

- B3: ứng dụng kiểm tra tính hợp lệ khi người dùng nhấn nút đăng nhập.

o Kiểm tra trường điền địa chỉ có bỏ trống hay không, nếu bỏ trống thì

hiện ra thông báo: “Địa chỉ kết nối không được bỏ trống”.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

8

8

o Kiểm tra dữ liệu trường tài khoản và mật khẩu có bỏ trống hay không,

nếu 1 trong 2 bỏ trống thì hiện ra thông báo: “Tài khoản và mật khẩu

không được bỏ trống”.

o Nếu hợp lệ chuyển đến bước kế tiếp, ngược lại yêu cầu người dùng

nhập lại.

- B4: ứng dụng sử dụng các dữ liệu người dùng đã nhập và gửi yêu cầu đến

máy chủ sử dụng và nhận kết quả trả về.

Lấy token của một người dùng và cú pháp xem tại mục II.5.2.3.1.

- B5: phân tích kết quả trả về từ máy chủ: nếu kết quả trả về có chứa token

người dùng thì chuyển bến bước tiếp theo (kết quả trả về xem tại mục

II.5.2.3.1), ngược lại thông báo và yêu cầu người dùng nhập lại.

- B6: lấy token từ máy chủ trả về, sử dụng token để lấy thông tin người dùng.

- B7: sử dụng tài khoản và mật khẩu để lấy Sesskey và lưu Cookies người

dùng.

Lưu lại các giá trị sau để sử dụng trong suốt quá trình sử dụng phần mềm.

o Địa chỉ kết nối với máy chủ

o Tên người dùng

o Mật khẩu người dùng (sử dụng khi đổi mật khẩu)

o Token của người dùng.

- B8: đăng nhập thành công và hiển thị giao diện chức năng mà người dùng có

thể sử dụng.

III.2.5.1.6. Các hàm và sự kiện

- Sự kiện chạm đăng nhập.

- Sự kiện chạm hủy đăng nhập.

III.2.5.1.7. Các ràng buộc hay yêu cầu khác

STT Tên điều khiển Ràng buộc

1 pbPassword Hiển thị với ký tự đặt biệt (*).

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

8

9

III.2.5.1.8. Các module sử dụng

- Gởi yêu cầu lên máy chủ

o void HttpRequestURI(String URL)

- Xử lý và tách token người dùng từ kết quả trả về của máy chủ

o String GetToken(String Result).

III.2.5.2. REQ02 – Tạo người dùng

III.2.5.2.1. Mục đích

Cho phép tạo người dùng mới trên hệ thống Moodle.

III.2.5.2.2. Tiền điều kiện

Đăng nhập thành công vào hệ thống

Có quyền tạo người dùng mới.

III.2.5.2.3. Giao diện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

9

0

Hình 9. Tạo người dùng.

III.2.5.2.4. Các thành phần trong giao diện

STT Loại điều

khiển Tên điều khiển

Giá trị

mặc định Ghi chú

1

PhoneTextBox

tbUsername Chứa tên tài khoản

2 tbFirstname Chứa họ

3 tbLastname Chứa tên

4 tbYourEmail Địa chỉ email

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

9

1

5 tbYourCity

Địa chỉ, tỉnh hoặc

thành phố nơi người

dùng đang sinh sống

6 tbYourCountry Quốc gia

7 ListPicker lpAuthentication Manual

Accounts

Chứa danh sách các

phương thức chứng

thực người dùng.

8 PasswordBox pbPassword Mật khẩu

9 pbConfirmPassword Xác nhận mật khẩu

10 TextBlock txtTitle Create

User

Tiêu đề trang tạo mới

người dùng.

11

Image

imgBG Hình nền trang tạo

mới người dùng

12 imgHelp Trợ giúp

13 imgCreateUser Biểu tượng tạo mới

người dùng

14 ApplicationBar apbtnNew Nút tạo mới người

dùng

15 Textblock txtInformation

Thông báo nội dung

cho người dùng(trạng

thái ẩn)

III.2.5.2.5. Xử lý

- B1: người dùng điền đầy đủ các thông tin sau:

Lựa chọn phương thức chứng thực người dùng

o Tên tài khoản

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

9

2

o Mật khẩu

o Xác nhận mật khẩu

o Họ

o Tên

o Địa chỉ email

o Tỉnh/thành phố

o Quốc gia

Chương trình kiểm tra trong quá trình nhập dữ liệu của người dùng:

o Nếu người dùng bỏ qua trường nhập tên tài khoản thì txtInformation

sẽ được hiện lên với thông báo “Vui lòng nhập Username – Kí tự hoặc

số”.

o Nếu người dùng bỏ qua trường nhập mật khẩu thì txtInformation sẽ

được hiện lên với thông báo: “Vui lòng nhập mật khẩu”.

o Nếu người dùng bỏ qua trường xác nhận mật khẩu thì txtInformation

sẽ được hiện lên với thông báo: “Vui lòng xác nhận mật khẩu”.

o Các trường dữ liệu sẽ được nổi bật nếu người dùng chưa điền đầy đủ

thông tin.

- B2: chạm chọn tạo người dùng mới.

- B3: chương trình kiểm tra cú pháp hợp lệ và các thông tin người dùng cần

tạo có đầy đủ chưa. Nếu chưa hợp lệ chương trình sẽ thông báo người dùng

yêu cầu nhập lại thông tin, ngược lại chuyển sang bước kế tiếp.

- B4: ứng dụng gửi thông tin người dùng vừa nhập lên máy chủ và nhận kết

quả trả về.

- B5: phân tích kết quả trả về và thông báo cho người dùng.

- B6: kết quả tạo người dùng thành công sẽ khởi tạo rỗng các giá trị sau:

o Tên tài khoản

o Họ

o Tên

o Địa chỉ email

o Tỉnh/thành phố

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

9

3

Viết class _MoodleCreateUser bao gồm các thông tin người dùng nhập vào.

Viết module CreateUsers(string _localUrl, List<_MoodleCreateUser> list, string

_tokenUser).

III.2.5.2.6. Các hàm và sự kiện

- Hàm API trong Web services của Moodle được sử dụng là:

core_user_create_users.

- Sự kiện tạo mới người dùng: kiểm tra thông tin nhập vào của người dùng,

hợp lệ cho phép tạo người dùng mới.

- Sự kiện rời khỏi trường nhập liệu hay mất tiêu điểm(LostFocus()):

o Tên tài khoản

o Mật khẩu

o Xác nhận mật khẩu

o Họ

o Tên

o Địa chỉ email

o Tỉnh/thành phố

o Quốc gia.

III.2.5.2.7. Các ràng buộc hay yêu cầu khác

- Tên tài khoản không chứa kí tự lạ, không phân biệt kí tự hoa hay thường.

- Mật khẩu ít nhất 8 kí tự, có chứa ít nhất 2 kí tự thường, 2 kí tự số, 1 kí tự hoa

và 1 kí tự đặc biệt.

- Trường xác nhận mật khẩu phải trùng khớp với trường mật khẩu.

III.2.5.3. REQ03 – Lấy hồ sơ người dùng

III.2.5.3.1. Mục đích

Cho phép người dùng hiển thị thông tin cá nhân của mình.

III.2.5.3.2. Tiền điều kiện

Người dùng đăng nhập thành công vào hệ thống

III.2.5.3.3. Giao diện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

9

4

Hình 10. Lấy hồ sơ người dùng.

III.2.5.3.4. Các thành phần trong giao diện

STT Loại điều khiển Tên điều

khiển

Giá trị

mặc

định

Ghi chú

1

TextBlock

txtUserName Tài khoản người dùng

2 txtFullName Đầy đủ họ và tên người

dùng

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

9

5

3 txtLastAccess Thời gian truy cập gần

nhất

4 txtFirstName Họ người dùng

5 txtLassName Tên người dùng

6 txtPhone Điện thoại người dùng

7 txtEmail Địa chỉ email người dùng

8 txtAddress Địa chỉ người dùng

9 txtCountry Quốc gia

10 Image imgAvartar Hình ảnh đại diện

III.2.5.3.5. Xử lý

- B1: người dùng chọn hiển thị thông tin cá nhân.

- B2: ứng dụng gửi yêu cầu lên máy chủ và nhận kết quả trả về.

- B3: phân tích kết quả trả về từ máy chủ, lọc các thông tin cần thiết và hiển thị.

III.2.5.3.6. Các hàm và sự kiện

- Hàm API trong Web services của Moodle được sử dụng là:

core_user_get_users_by_id.

- Sự kiện chạm vào gọi điện: PhoneCallTask trong gói Windows Phone SDK

8.0.

III.2.5.3.7. Các ràng buộc hay yêu cầu khác

Người dùng có lưu thông tin về số điện thoại amới thực hiện được chức năng gọi

điện.

III.2.5.3.8. Các module sử dụng

- String GetUsersById(string _localUrl, int userId, string _token): Tạo chuỗi

yêu cầu lấy người dùng.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

9

6

- void HttpRequestURI(String URL): Thực hiện gởi yêu cầu lên máy chủ và

nhận kết quả trả về.

III.2.5.4. REQ04 – Cập nhật thông tin cá nhân

III.2.5.4.1. Mục đích

Cho phép người dùng cập nhật thông tin cá nhân.

III.2.5.4.2. Tiền điều kiện

- Người dùng đăng nhập thành công vào hệ thống.

- Người dùng được cấp quyền chỉnh sửa thông tin cá nhân.

- Người dùng hiển thị thông tin cá nhân.

III.2.5.4.3. Giao diện

Hình 11. cập nhật thông tin cá nhân.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

9

7

III.2.5.4.4. Các thành phần trong giao diện

STT Loại điều khiển Tên điều

khiển

Giá trị

mặc

định

Ghi chú

1

TextBlock

txtUserName Tài khoản người dùng

2 txtFullName Đầy đủ họ và tên người

dùng

3 txtLastAccess Thời gian truy cập gần

nhất

4 txtFirstName Họ người dùng

5 txtLassName Tên người dùng

6 txtPhone Điện thoại người dùng

7 txtEmail Địa chỉ email người dùng

8 txtAddress Địa chỉ người dùng

9 txtCountry Quốc gia

10 Image imgAvartar Hình ảnh đại diện

III.2.5.4.5. Xử lý

- B1: người dùng hiển thị thông tin cá nhân.

- B2: người dùng chọn chỉnh sửa thông tin cá nhân.

- B3: Trang cập nhật thông tin cá nhân được hiển thị, người dùng có thể tùy

chọn các tiêu chí cập nhật.

o Cập nhật họ và tên

o Cập nhật địa chỉ email.

- B4: Xử lý yêu cầu người dùng:

o Cập nhật họ và tên

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

9

8

Chuyển đến giao diện cập nhật họ và tên.

Người dùng chỉnh sửa thông tin cần cập nhật.

Ứng dụng kiểm tra tính hợp lệ thông tin được cập nhật.

Hệ thống gửi yêu cầu cập nhật thông tin lên máy chủ.

o Cập nhật địa chỉ email

Chuyển đến giao diện cập nhật địa chỉ email.

Người dùng chỉnh sửa thông tin cần cập nhật.

Ứng dụng kiểm tra tính hợp lệ thông tin được cập nhật.

Hệ thống gửi yêu cầu cập nhật thông tin lên máy chủ.

- B5: Cập nhật thành công, trở về giao diện chính cập nhật thông tin người

dùng.

III.2.5.4.6. Các hàm và sự kiện

- Hàm API trong Web services của Moodle được sử dụng là:

core_user_get_users_by_id và core_user_update_users.

- Sự kiện chạm cập nhật họ và tên người dùng.

- Sự kiện chạm cập nhật địa chỉ email người dùng.

III.2.5.4.7. Các ràng buộc hay yêu cầu khác

STT Tên điều khiển Ràng buộc

1 txtFullName Không được rỗng

2 txtEmail Không được rỗng và địa chỉ email hợp lệ

III.2.5.5. REQ05 – Đổi mật khẩu

III.2.5.5.1. Mục đích

Cho phép người dùng thay đổi mật khẩu cá nhân.

III.2.5.5.2. Tiền điều kiện

- Người dùng đăng nhập thành công vào hệ thống.

- Người dùng được cấp quyền thay đổi thông tin cá nhân.

III.2.5.5.3. Giao diện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

9

9

Hình 12. Đổi mật khẩu.

III.2.5.5.4. Các thành phần trong giao diện

STT Loại điều

khiển Tên điều khiển

Giá trị mặc

định Ghi chú

1

PasswordBox

pbCurrentPassword Mật khẩu hiện tại

2 pdNewPassword Mật khẩu mới

3 pdConfirmPassword Xác nhận mật khẩu

mới

4 Textblock txtTitle Change your

password

Tiêu đề trang đổi

mật khẩu

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

00

5 Image imgHelp Trợ giúp

6 ApplicationBar apChangePassword Thanh chức năng

III.2.5.5.5. Xử lý

- B1: người dùng nhập vào mật khẩu hiện tại.

o Ứng dụng kiểm tra thông tin người dùng nhập vào, nếu mật khẩu nhập

vào không đúng với mật khẩu hiện tại thì thông báo cho người dùng,

ngược lại cho phép người dùng nhập mật khẩu mới ở bước kế tiếp.

- B2: người dùng nhập vào mật khẩu mới (mật khẩu cần thay đổi).

o Ứng dụng kiểm tra thông tin người dùng nhập vào, cách đặt mật khẩu

phải đúng yêu cầu hệ thống, nếu mật khẩu không đúng yêu cầu yêu cầu

người dùng nhập lại mật khẩu đến khi đúng, ngược lại người dùng có

thể xác nhận mật khẩu ở bước kế tiếp.

- B3: người dùng xác nhận mật khẩu mới.

o Ứng dụng kiểm tra thông tin người dùng nhập vào, trường nhập mật

khẩu mới phải trùng khớp với mật khẩu cần thay đổi.

- B4: ứng dụng kiểm tra thông tin hợp lệ của người dùng nhập vào khi chạm nút

thay đổi mật khẩu. Nếu thông tin hợp lệ cho phép người dùng thay đổi mật

khẩu của mình. Ngược lại yêu cầu người dùng kiểm tra lại thông tin.

III.2.5.5.6. Các hàm và sự kiện

- Sự kiện người dùng rời khỏi trường nhập dữ liệu:

o void pbCurrentPassword_LostFocus(object sender, RoutedEventArgs

e): kiểm tra thông tin người dùng khi rời khỏi khung nhập liệu mật

khẩu hiện tại.

o void pdNewPassword_LostFocus(object sender, RoutedEventArgs e):

kiểm tra thông tin người dùng khi rời khỏi khung nhập liệu mật khẩu

mới.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

01

o void pdConfirmPassword_LostFocus(object sender, RoutedEventArgs

e): kiểm tra thông tin người dùng khi rời khỏi khung xác nhận mật

khẩu mới.

- Sự kiện khi người dùng nhấn nút đổi mật khẩu: kiểm tra thông tin người

dùng nhập vào, nếu hợp lệ gọi hàm ChangePassword(newPass, _tokenUser).

III.2.5.5.7. Các ràng buộc hay yêu cầu khác

STT Tên điều khiển Ràng buộc

1 pbCurrentPassword Mật khẩu nhập vào phải trùng khớp với mật khẩu hiện

tại.

2 pdNewPassword

Mật khẩu mới phải thỏa mãn yêu cầu đặt mật khẩu của

hệ thống: mật khẩu mới ít nhất 8 kí tự, có chứa ít nhất

2 kí tự thường, 2 kí tự số, 1 kí tự hoa và 1 kí tự đặc

biệt.

3 pdConfirmPassword Xác nhận mật khẩu phải trùng khớp với mật khẩu vừa

đặt.

III.2.5.5.8. Các module sử dụng

Không có.

III.2.5.6. REQ06 – Tạo khóa học

III.2.5.6.1. Mục đích

Cho phép người dùng tạo khóa học mới. Người dùng có thể tạo nhanh khóa học với

tên đầy đủ và tên ngắn gọn, khóa học được tạo với một số thông tin mặc định.

III.2.5.6.2. Tiền điều kiện

- Người dùng đăng nhập thành công vào hệ thống.

- Người dùng được cấp quyền tạo khóa học mới.

III.2.5.6.3. Giao diện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

02

Hình 13. Tạo khóa học mới.

III.2.5.6.4. Các thành phần trong giao diện

STT Loại điều

khiển Tên điều khiển

Giá trị mặc

định Ghi chú

1

Textbox

tbFullName

NULL

Tên đầy đủ

2 tbShortName Tên ngắn gọn

3 tbSummary Tóm tắt khóa học

4 ListPicker lpCatelogies Danh sách các danh

mục

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

03

5 lpFormat weeks Định dạng khóa học

6 lpNewsItemShow 5 Số lượng thông tin

hiển thị

7 lpSizeUpload 2M Kích thước tập tin tải

lên

8

ToggleSwitch

tsGradeBook No Hiển thị bảng điểm

9 tsShowActivity No Hiển thị báo cáo hoạt

động

10 DatePicker dpDateStart Ngày hiện tại Ngày bắt đầu khóa

học

12

Textblock

tbTitle Create

Course

Tiêu đề trang tạo

khóa học

13 tbCatelogies Catelogies* tiêu đề danh mục

khóa học

14 tbFullName Course full

name*

tiêu đề tên đầy đủ

khóa học

15 tbShortName Course short

name*

Tiêu đề tên ngắn

gọn của khóa học

16 tbSummary Course

summary

Tiêu đề tóm tắt khóa

học

17 ApplicationBar apCreateCourse Thanh công cụ tạo

khóa học

III.2.5.6.5. Xử lý

- B1: người dùng nhập đầy đủ thông tin để tạo mới khóa học, chương trình sẽ

kiểm tra trong quá trình nhập liệu của người dùng ở các trường sau:

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

04

tbFullName, tbShortName. Nếu thông tin không hợp lệ yêu cầu người dùng

cung cấp đầy đủ thông tin, ngược lại cho phép tạo mới khóa học.

- B2: hệ thống gửi thông tin người dùng lên máy chủ với yêu cầu tạo khóa học

mới và nhận kết quả trả về.

- B3: phân tích kết quả trả về và thông báo cho người dùng, nếu tên của khóa

học trùng với tên đã tồn tại trong hệ thống, thì tạo khóa học không thành công,

yêu cầu nhập lại thông tin. Ngược lại tạo khóa học mới thành công.

- B4: Khởi tạo giá trị của các trường nhập liệu.

III.2.5.6.6. Các hàm và sự kiện

- Hàm API trong Web services của Moodle được sử dụng là:

core_course_create_courses.

- Sự kiện người dùng chạm tạo khóa học mới.

III.2.5.6.7. Các ràng buộc hay yêu cầu khác

STT Tên điều khiển Ràng buộc

1 tbFullName Không được rỗng

2 tbShortName Tên duy nhất trong hệ thống

III.2.5.6.8. Các module sử dụng

Không có.

III.2.5.7. REQ07 – Lấy thông tin khóa học

III.2.5.7.1. Mục đích

Cho phép người dùng hiển thị thông tin các khóa học

III.2.5.7.2. Tiền điều kiện

- Người dùng đăng nhập thành công vào hệ thống.

- Khóa học đó tồn tại trong hệ thống.

III.2.5.7.3. Giao diện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

05

Hình 14. lấy thông tin khóa học.

III.2.5.7.4. Các thành phần trong giao diện

STT Loại điều

khiển Tên điều khiển

Giá trị mặc

định Ghi chú

1 Listbox lbCourseView

Danh sách chứa thông

tin tất cả các khóa học

2 Textblock txtName Tên khóa học

3 Image imgIcon Biểu tượng khóa học.

III.2.5.7.5. Xử lý

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

06

- Hệ thống gửi yêu cầu lấy thông tin tất cả khóa học

- Phân tích thông tin trả về từ máy chủ, lọc và lấy thông tin cần thiết.

- Binding vào trong Listbox, hiển thị thông tin tất cả khóa học cho người dùng.

Viết class _MoodleGetCourse: Chứa thông tin khóa học.

Viết module gửi và nhận yêu cầu từ máy chủ: GetCourse(string _localUrl,

List<_MoodleGetCourse> list, string _tokenUser).

III.2.5.7.6. Các hàm và sự kiện

Sự kiện chạm vào ListboxItem: cho phép người dùng xem nội dung khóa học đó.

III.2.5.7.7. Các ràng buộc hay yêu cầu khác

Không có.

III.2.5.7.8. Các module sử dụng

Sử dụng module GetCourse đã được đề cập bên trên.

III.2.5.8. REQ08 – Xem nội dung khóa học

III.2.5.8.1. Mục đích

Cho phép người dùng xem nội dung chi tiết môn học: xem thông báo, chia sẽ trên

diễn đàn, tải xuống các tập tin và một số thông tin khác.

III.2.5.8.2. Tiền điều kiện

Người dùng đăng nhập thành công vào hệ thống.

Khóa học xem nội dung phải được tạo.

III.2.5.8.3. Giao diện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

07

Hình 15. Xem nội dung khóa học

III.2.5.8.4. Các thành phần trong giao diện

STT Loại điều

khiển Tên điều khiển

Giá trị

mặc định Ghi chú

1 Pivot pvCourseContent Cho phép hiển thị nội

dung qua lại trên 1 trang

2 ListBox lbWeeks Chứa danh sách tên của

nội dung khóa học

3 StackPanel spItem Chứa 1 nhóm các nội

dung

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

08

4 TextBlock txtName Chứa tên của nội dung

khóa học

III.2.5.8.5. Xử lý

- Hệ thống gửi yêu cầu lấy nội dung khóa học đã chọn.

- Phân tích thông tin trả về từ máy chủ, lọc và lấy thông tin cần thiết (lưu trữ

name và id).

- Binding vào trong ListBox, hiển thị nội dung khóa học cho người dùng.

Viết class _MoodleGetCourseContent: Chứa nội dung khóa học.

Viết module gửi và nhận yêu cầu từ máy chủ: GetCourseContent(string _localUrl,

List<_MoodleGetCourseContent> list, string _tokenUser).

III.2.5.8.6. Các hàm và sự kiện

Sự kiện chạm vào ListBoxItem: Cho phép người dùng hiển thị nội dung chi tiết của

khóa học đã chọn.

III.2.5.8.7. Các ràng buộc hay yêu cầu khác

Không có

III.2.5.8.8. Các module sử dụng

Sử dụng module GetCourseContent đã được đề cập bên trên.

III.2.5.9. REQ09 – Tạo nhóm người dùng

III.2.5.9.1. Mục đích

Cho phép người dùng tạo nhóm trong khóa học.

III.2.5.9.2. Tiền điều kiện

- Người dùng đăng nhập thành công vào hệ thống.

- Được cấp quyền tạo nhóm trong khóa học.

- Khóa học phải được tạo trước khi tạo nhóm người dùng.

III.2.5.9.3. Giao diện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

09

Hình 16. Tạo nhóm người dùng.

III.2.5.9.4. Các thành phần trong giao diện

STT Loại điều

khiển Tên điều khiển

Giá trị

mặc định Ghi chú

1 Pivot pvCourseContent Cho phép hiển thị nội

dung qua lại trên 1 trang

2 ListBox lbGroups Chứa danh sách các

nhóm trong khóa học

3 StackPanel spItem Chứa 1 nhóm các nội

dung

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

10

4 TextBlock

txtNameGroup Tên nhóm khóa học

5 txtDescription Mô tả nhóm

III.2.5.9.5. Xử lý

- B1: người dùng nhập đầy đủ thông tin tạo mới nhóm người dùng trong khóa

học. Hệ thống kiểm tra tính hợp lệ thông tin nhập vào của người dùng, nếu

thông tin nhập vào không hợp lệ, yêu cầu người dùng điền đầy đủ thông tin,

ngược lại cho phép gửi yêu cầu tạo mới nhóm người dùng.

- B2: phân tích kết quả trả về và thông báo cho người dùng, nếu tên của nhóm

người dùng trùng với tên đã tồn tại trong hệ thống, thì yêu cầu nhập lại tên

nhóm khác. Ngược lại tạo nhóm người dùng mới thành công.

- B3: Trở về, hiển thị thông tin nhóm người dùng vừa tạo.

III.2.5.9.6. Các hàm và sự kiện

- Hàm API trong Web services của Moodle được sử dụng là:

core_group_create_groups.

- Chạm tạo mới nhóm người dùng: kiểm tra thông tin nhập vào, hợp lệ cho phép

tạo mới nhóm người dùng.

III.2.5.9.7. Các ràng buộc hay yêu cầu khác

Tên nhóm người dùng là duy nhất trong hệ thống.

III.2.5.9.8. Các module sử dụng

Module tạo mới nhóm người dùng: CreateGroups(List infoGroup, _tokenUser).

III.2.5.10. REQ10 – Xóa nhóm người dùng

III.2.5.10.1. Mục đích

Cho phép người dùng xóa nhóm đã tạo trong khóa học.

III.2.5.10.2. Tiền điều kiện

- Người dùng đăng nhập thành công vào hệ thống.

- Có quyền xóa nhóm người dùng trong khóa học.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

11

- Khóa học và nhóm người dùng đã được tạo.

III.2.5.10.3. Giao diện

III.2.5.10.4. Các thành phần trong giao diện

STT Loại điều

khiển Tên điều khiển

Giá trị

mặc định Ghi chú

1 Pivot pvCourseContent Cho phép hiển thị nội

dung qua lại trên 1 trang

2 ListBox lbGroups Chứa danh sách các

nhóm trong khóa học

3 StackPanel spItem Chứa 1 nhóm các nội

dung

4 TextBlock

txtNameGroup Tên nhóm khóa học

5 txtDescription Mô tả nhóm

6 MenuContext mcFunction Nhóm chức năng cho 1

nhóm người dùng.

III.2.5.10.5. Xử lý

- Người dùng chạm và giữ nhóm người dùng cần xóa, ứng dụng hiển thị các

chức năng cho nhóm người dùng, chọn xóa.

- Xác nhận xóa nhóm người dùng đã chọn.

- Hệ thống gửi yêu cầu xóa nhóm người dùng và nhận kết quả trả về từ máy

chủ.

- Xóa nhóm thành công, xóa nhóm vừa tạo ra khỏi ListBox.

III.2.5.10.6. Các hàm và sự kiện

- Hàm API trong Web services của Moodle được sử dụng là:

core_group_delete_groups.

- Sự kiện chạm và giữ: hiển thị chức năng cho nhóm người dùng.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

12

- Sự kiện xóa: Xóa nhóm người dùng ra khỏi khóa học.

III.2.5.10.7. Các ràng buộc hay yêu cầu khác

Không có.

III.2.5.10.8. Các module sử dụng

Không có.

III.2.5.11. REQ11 – Thêm thành viên vào nhóm

III.2.5.11.1. Mục đích

Cho phép thêm thành viên vào nhóm người dùng trong khóa học.

III.2.5.11.2. Tiền điều kiện

- Người dùng đăng nhập thành công vào hệ thống.

- Khóa học và nhóm người dùng được tạo.

III.2.5.11.3. Giao diện

Hình 17. Thêm thành viên vào nhóm.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

13

III.2.5.11.4. Các thành phần trong giao diện

STT Loại điều

khiển Tên điều khiển

Giá trị

mặc định Ghi chú

1 panorama pGroupMember Cho phép hiển thị toàn

bộ nội dung trên 1 trang

2

ListBox

lbGroupsMember Danh sách các thành

viên trong nhóm

3 lbCourseMember

Danh sách các thành

viên đã ghi danh vào

khóa học

4 CheckBox CheckItem Chọn thành viên thêm

vào khóa học

5 TextBlock

txtName Tên thành viên

6 txtEmail Địa chỉ email thành viên

7 ApplicationBar apAddMember Thanh công cụ chức

năng

III.2.5.11.5. Xử lý

- B1: hệ thống gửi yêu cầu lấy toàn bộ thành viên của khóa học.

- B2: hệ thống gửi yêu cầu lấy toàn bộ thành viên thuộc nhóm đã chọn.

- B3: hệ thống nhận kết quả trả về từ máy chủ, xử lý kết quả và loại bỏ các

thành viên thuộc nhóm có trong danh sách thành viên của khóa học.

- B4: hiển thị thông tin các thành viên có thể thêm vào nhóm.

- B5: người dùng chọn các thành viên cần thêm vào nhóm, và xác nhận thêm

vào nhóm.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

14

- B6: hệ thống ghi nhận kết quả lựa chọn của người dùng, tạo thành một danh

sách và gửi yêu cầu thêm người dùng vào nhóm lên máy chủ và nhận kết quả

trả về.

- B7: hệ thống thông báo thêm người dùng vào nhóm thành công.

Viết hàm: loại bỏ các thành viên thuộc nhóm có trong danh sách thành viên của

khóa học.

foreach(var userC in userCourse )

{

for(int i=0; i< userGroup; i++)

{

If(userC.Id==userGoup[i])

{

userCourse.RemoveAt(index)

}

}

}

III.2.5.11.6. Các hàm và sự kiện

- Hàm API trong Web services của Moodle được sử dụng là:

core_group_add_group_members, core_user_get_users_by_id và

core_enrol_get_enrolled_users.

- Hàm loại bỏ các thành viên nhóm có trong khóa học: void

FilterMember(List<_MoodleGroups> userCourse, List<int> userGroups)

III.2.5.11.7. Các ràng buộc hay yêu cầu khác

Không có.

III.2.5.11.8. Các module sử dụng

Không có.

III.2.5.12. REQ12 – Xóa thành viên ra khỏi nhóm

III.2.5.12.1 Mục đích

Cho phép người dùng xóa thành viên ra khỏi nhóm trong khóa học.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

15

III.2.5.12.2 Tiền điều kiện

- Người dùng đăng nhập thành công vào hệ thống.

- Khóa học, nhóm đã được tạo, và thành viên đã tồn tại trong nhóm.

III.2.5.12.3 Giao diện

Hình 18. Xóa thành viên ra khỏi nhóm.

III.2.5.12.4 Các thành phần trong giao diện

STT Loại điều

khiển Tên điều khiển

Giá trị

mặc định Ghi chú

1 panorama pGroupMember Cho phép hiển thị toàn

bộ nội dung trên 1 trang

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

16

2

ListBox

lbGroupsMember Danh sách các thành

viên trong nhóm

3 lbCourseMember

Danh sách các thành

viên đã ghi danh vào

khóa học

4 CheckBox CheckItem Chọn thành viên thêm

vào khóa học

5 TextBlock

txtName Tên thành viên

6 txtEmail Địa chỉ email thành viên

7 ApplicationBar apAddMember Thanh công cụ chức

năng

III.2.5.12.5 Xử lý

- B1: hệ thống gửi yêu cầu lấy toàn bộ thành viên thuộc nhóm đã chọn.

- B2: hệ thống nhận kết quả trả về từ máy chủ, xử lý kết quả và hiển thị thông

tin các thành viên trong nhóm.

- B3: người dùng chọn các thành viên cần xóa ra khỏi nhóm, và xác nhận xóa

thành viên ra khỏi nhóm.

- B4: hệ thống ghi nhận kết quả lựa chọn của người dùng, tạo thành một danh

sách và gửi yêu cầu xóa người dùng ra khỏi nhóm lên máy chủ và nhận kết

quả trả về.

- B5: hệ thống thông báo xóa người dùng ra khỏi nhóm thành công.

III.2.5.12.6 Các hàm và sự kiện

- Hàm API trong Web services của Moodle được sử dụng là:

core_group_delete_group_members.

III.2.5.12.7 Các ràng buộc hay yêu cầu khác

Không có.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

17

III.2.5.12.8 Các module sử dụng

Không có.

III.2.5.13. REQ13 – Lấy thông tin các nhóm

III.2.5.13.1 Mục đích

Cho phép người dùng hiển thị thông tin các nhóm thuộc khóa học.

III.2.5.13.2 Tiền điều kiện

- Người dùng đăng nhập thành công vào hệ thống.

- Người dùng có quyền lấy thông tin các nhóm, khóa học và nhóm đã được khởi

tạo.

III.2.5.13.3 Giao diện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

18

Hình 19. Lấy thông tin các nhóm người dùng trong khóa học.

III.2.5.13.4 Các thành phần trong giao diện

STT Loại điều

khiển Tên điều khiển

Giá trị

mặc định Ghi chú

1 Pivot pvCourseContent Cho phép hiển thị nội dung qua

lại trên 1 trang

2 ListBox lbGroups Chứa danh sách các nhóm trong

khóa học

3 StackPanel spItem Chứa 1 nhóm các nội dung

4 TextBlock

txtNameGroup Tên nhóm khóa học

5 txtDescription Mô tả nhóm

6 MenuContext mcFunction Nhóm chức năng cho 1 nhóm

người dùng.

7 ApplicationB

ar apGroups

Thanh công cụ nhóm người

dùng.

III.2.5.13.5 Xử lý

- Hệ thống gửi yêu cầu lấy thông tin nhóm người dùng trong khóa học.

- Phân tích thông tin trả về từ máy chủ, lọc và lấy thông tin cần thiết (lưu trữ

name và id).

- Binding vào trong ListBox, hiển thị thông tin nhóm người dùng.

- Viết Class _MoodleGroups: chứa thông tin nhóm người dùng.

- Viết module gửi và nhận yêu cầu từ máy chủ: GetGroups(string _localUrl,

List<_MoodleGroups> list, string _tokenUser).

III.2.5.13.6 Các hàm và sự kiện

- Hàm API trong Web services của Moodle được sử dụng là:

core_group_get_course_groups.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

19

- Sự kiện chạm và giữ: nhóm chức năng cho nhóm người dùng.

- Sự kiện chạm: xem thông tin, thành viên nhóm người dùng.

III.2.5.13.7 Các ràng buộc hay yêu cầu khác

Không có.

III.2.5.13.8 Các module sử dụng

Module lấy và hiển thị nhóm thông tin người dùng: GetGroups(_localUrl,

List<_MoodleGroups>, _tokenUser).

III.2.5.14. REQ14 – Ghi danh vào khóa học

III.2.5.14.1. Mục đích

Cho phép người dùng thêm các thành viên vào khóa học.

III.2.5.14.2. Tiền điều kiện

Người dùng đăng nhập thành công vào hệ thống.

III.2.5.14.3. Giao diện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

20

Hình 20. Ghi danh người dùng vào khóa học.

III.2.5.14.4. Các thành phần trong giao diện

STT Loại điều khiển Tên điều

khiển

Giá trị

mặc

định

Ghi chú

1 ListPicker lpRole student Danh sách quyền người dùng

2 ListBoxWithCheck

Boxes lpEnroll

Danh sách chứa thành viên có

thể ghi danh vào khóa học

3 StackPanel spItem Chứa nhóm thông tin thành viên

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

21

4

TextBlock

txtFullname Họ và tên

5 txtEmail Địa chỉ email

6 txtLassAccess Lần truy cập gần nhất

7 txtRoles Quyền người dùng

8 Image imgAvartar Ảnh đại diện

9 TextBlock txtTitle Tiêu đề

10 ApplicationBar apEnrollUser Thanh công cụ chức năng

III.2.5.14.5. Xử lý

- B1: hệ thống gửi yêu cầu lấy thông tin các quyền người dùng trong trên hệ

thống Moodle, binding vào listpicker và hiển thị lên cho người dùng lựa

chọn.

- B2: hệ thống gửi yêu cầu lấy thông tin tất cả người dùng trong hệ thống.

- B3: hệ thống gửi yêu cầu lấy thông tin các thành viên đã ghi danh vào trong

khóa học.

- B4: hệ thống nhận kết quả trả về từ máy chủ, xử lý kết quả và loại bỏ các

thành viên đã được ghi danh vào khóa học đó.

- B5: hiển thị thông tin các thành viên có thể ghi danh vào khóa học.

- B6: người dùng chọn các thành viên cần ghi danh vào khóa học, và xác nhận

ghi danh vào khóa học.

- B7: hệ thống tạo thành danh sách và gửi yêu cầu ghi danh người dùng vào

khóa học lên máy chủ.

- B8: Ghi danh người dùng thành công.

Viết hàm: loại bỏ các thành viên đã ghi danh vào khóa học có trong danh sách tất

cả người dùng trong hệ thống (tương tự hàm FilterMember trong mục II.2.5.11).

III.2.5.14.6. Các hàm và sự kiện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

22

- Hàm API trong Web services của Moodle được sử dụng là:

core_enrol_get_enrolled_users và core_enrol_get_users_courses.

- Hàm loại bỏ thành viên đã ghi danh vào khóa học.

- Sự kiện chạm chọn thành viên cần ghi danh.

- Sự kiện chạm ghi danh người dùng.

III.2.5.14.7. Các ràng buộc hay yêu cầu khác

Thành viên chỉ được ghi danh một lần trong một khóa học.

III.2.5.14.8. Các module sử dụng

Không có.

III.2.5.15. REQ15 – Lấy thông tin danh mục

III.2.5.15.1. Mục đích

Cho phép người dùng lấy thông tin danh mục.

III.2.5.15.2. Tiền điều kiện

Người dùng đăng nhập thành công vào hệ thống.

III.2.5.15.3. Giao diện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

23

Hình 21. Lấy thông tin danh mục.

III.2.5.15.4. Các thành phần trong giao diện

STT Loại điều khiển Tên điều

khiển

Giá trị

mặc

định

Ghi chú

1 ListBox lbCourse Danh sách các khóa học

2 ExpanderView evCatelogies Danh sách mở rộng bao

gồm các khóa học.

3 TextBlock txtName Tên khóa học

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

24

4 TextBlock txtCount Hiển thị số khóa học có

trong danh sách mở rộng.

III.2.5.15.5. Xử lý

- B1: hệ thống gửi yêu cầu lấy thông tin tất cả danh mục.

- B2: hệ thống gửi yêu cầu lấy tất cả thông tin khóa học có trong hệ thống.

- B3: hệ thống nhận kết quả trả về từ máy chủ, xử lý kết quả và đưa các môn

học vào trong từng danh mục tương ứng.

- B4: hiển thị thông tin danh mục dưới dạng ExpanderView.

Viết Class: _MoodleGetCatelogies và _MoodleGetCourse chứa thông tin danh

mục và khóa học sau khi xử lý.

Viết hàm đưa các môn học và trong danh mục tương ứng:

Void CourseCatelogies(List<_ MoodleGetCatelogies > L1, List<

MoodleGetCourse > L2)

{

foreach(duyệt từng phần tử của 2 danh sách) {

if (L1[index].CategoryId == L2[index].Id) {

if(danh mục cha){//Thêm vào danh sách trong ExpanderView

}

}

}

}

III.2.5.15.6. Các hàm và sự kiện

Sử dụng hàm CourseCatelogies đưa môn học vào trong danh mục tương ứng.

III.2.5.15.7. Các ràng buộc hay yêu cầu khác

Không có.

III.2.5.15.8. Các module sử dụng

Sử dụng module tạo và gửi yêu cầu, xử lý thông tin nhận về từ máy chủ:

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

25

async System.Threading.Tasks.Task HttpWebRequestURI().

III.2.5.16. REQ16 – Xem nội dung diễn đàn môn học

III.2.5.16.1. Mục đích

Cho phép người dùng xem được nội dung trong diễn đàn tin tức, diễn đàn thông báo

và các diễn đàn trong khóa học.

III.2.5.16.2. Tiền điều kiện

Người dùng đăng nhập thành công vào hệ thống.

III.2.5.16.3. Giao diện

Hình 22. Xem nội dung diễn đàn môn học.

III.2.5.16.4. Các thành phần trong giao diện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

26

STT Loại điều khiển Tên điều

khiển

Giá trị

mặc

định

Ghi chú

1 ListBox lpForum Danh sách chủ đề

2 Border bForum Khung viền cho mỗi chủ

đề

3 StackPanel spItem Nhóm các chủ đề

4 Image imgAvatar Ảnh đại diện tác giả

5

TextBlock

txtTitle Tiêu đề

6 txtTopic Tên chủ đề

7 txtReply Số người trả lời cho chủ đề

8 txtAuthor Tác giả

III.2.5.16.5. Xử lý

- Hệ thống sử dụng Cookies được lưu lại ở phần đăng nhập, tạo yêu cầu gửi lên

máy chủ bằng phương pháp POST.

- Nhận kết quả trả về và sử dụng HtmlAgilityPack để lọc lấy kết quả cần thiết.

- Binding vào ListBox và hiển thị danh sách các chủ đề cho người dùng xem.

III.2.5.16.6. Các hàm và sự kiện

Sự kiện chạm vào để xem trả lời, bình luận cho từng chủ đề.

III.2.5.16.7. Các ràng buộc hay yêu cầu khác

Không có.

III.2.5.16.8. Các module sử dụng

Sử dụng module gửi và nhận kết quả bằng phương thức POST: void

RequestPOST(string userName, string pass, string url).

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

27

III.2.5.17. REQ17 – Tạo chủ đề mới trên diễn đàn

III.2.5.17.1. Mục đích

Cho phép người dùng tạo chủ đề mới trên diễn đàn.

III.2.5.17.2. Tiền điều kiện

Người dùng đăng nhập thành công vào hệ thống và có quyền tạo chủ đề trên diễn

đàn.

III.2.5.17.3. Giao diện

Hình 23. Tạo chủ đề mới trên diễn đàn.

III.2.5.17.4. Các thành phần trong giao diện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

28

STT Loại điều

khiển Tên điều khiển

Giá trị mặc

định Ghi chú

1 PhoneTextBox

ptbSubject Tên chủ đề mới

2 ptbContents Nội dung chủ đề

3 DatePicker

dpStart Ngày hiển thị

4 dpEnd Ngày kết thúc

5 ApplicationBar apCreateTopic Thanh công cụ

III.2.5.17.5. Xử lý

- Hệ thống gửi yêu cầu và phân tích để lọc lấy ID của diễn đàn cần tạo chủ đề

mới.

- Hệ thống sử dụng Cookies được lưu lại ở phần đăng nhập, tạo yêu cầu gửi lên

máy chủ bằng phương pháp POST.

- Nhận kết quả trả về và sử dụng HtmlAgilityPack để lọc lấy kết quả cần thiết.

- Trở về trang hiển thị nội dung của diễn đàn.

III.2.5.17.6. Các hàm và sự kiện

Hàm tạo chủ đề mới trên diễn đàn.

III.2.5.17.7. Các ràng buộc hay yêu cầu khác

STT Tên điều khiển Ràng buộc

1 ptbSubject Không được rỗng

2 ptbContents Không được rỗng

III.2.5.17.8. Các module sử dụng

Sử dụng module gửi và nhận kết quả bằng phương thức POST: void

RequestTopicForum(string userName, string pass, string url).

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

29

III.2.5.18. REQ18 – Tải xuống tập tin từ diễn đàn

III.2.5.18.1. Mục đích

Cho phép người dùng tải xuống các tập tin được chia sẽ trên diễn đàn

III.2.5.18.2. Tiền điều kiện

Người dùng đăng nhập thành công vào hệ thống.

III.2.5.18.3. Giao diện

Hình 24. Tải tập tin xuống từ diễn đàn.

III.2.5.18.4. Các thành phần trong giao diện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

30

STT Loại điều

khiển Tên điều khiển

Giá trị mặc

định Ghi chú

1 ProgressBar pbStatusDownload Thanh trạng thái

2 TextBlock txtStatus Phần trăm tải

xuống

3 Image imgIconFolder Biểu tượng tải

xuống

4 TextBlock txtFileAttacments File

Attacments Tiêu đề tải xuống

5 ListBox lbFileDownload Danh sách các tập

tin

6 StackPanel spItems Nhóm các tập tin

7 Image imgTypeFile Biểu tượng tập tin

8 TextBlock txtNameFile Tên tập tin

9 Button btnDownload Tải xuống

III.2.5.18.5. Xử lý

- B1: hệ thống sử dụng thông tin được gửi về từ máy chủ trong mục II.2.5.16.6

(phần xử lý – xem nội dung diễn đàn).

- B2: lọc các thông tin bao gồm các tập tin được đính kèm trong bình luận của

người dùng, tạo thành 1 danh sách và binding vào ListBox hiển thị tất cả tập

tin có thể tải cho người dùng.

- B3: sau khi người dùng chạm vào tập tin cần tải, hệ thống sẽ gửi yêu cầu tải

xuống tập tin lên máy chủ.

- B4: nhận kết quả trả về và ghi lưu vào bộ nhớ máy dưới dạng Isolated

Storage.

III.2.5.18.6. Các hàm và sự kiện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

31

Sự kiện chạm vào nút download để tải tập tin xuống bộ nhớ máy.

III.2.5.18.7. Các ràng buộc hay yêu cầu khác

Không có.

III.2.5.18.8. Các module sử dụng

Sử dụng module gửi và nhận kết quả bằng phương thức POST: void

RequestPOST(string userName, string pass, string url).

III.2.5.19. REQ19 – Gửi tin nhắn

III.2.5.19.1. Mục đích

Cho phép người dùng gửi tin nhắn đến người dùng khác trong hệ thống.

III.2.5.19.2. Tiền điều kiện

Người dùng đăng nhập thành công vào hệ thống.

III.2.5.19.3. Giao diện

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

32

Hình 25. Gửi tin nhắn.

III.2.5.19.4. Các thành phần trong giao diện

STT Loại điều

khiển Tên điều khiển

Giá trị mặc

định Ghi chú

1 PhoneTextBox ptbContents Chứa nội dung tin

nhắn

2 Button btnSent Nút gửi tin nhắn

3 TextBlock

txtTitleMessages Note Tiêu đề

4 txtTilte Gửi tin nhắn Tiêu đề tin nhắn

III.2.5.19.5. Xử lý

- Sau khi chọn người dùng cần gửi tin nhắn, ghi nội dung cần gửi và chạm gửi

tin nhắn.

- Hệ thống kiểm tra nội dung tin nhắn, nếu hợp lệ hệ thống tạo yêu cầu và gửi

tin nhắn đến người dùng cần gửi.

- Gửi tin nhắn thành công.

III.2.5.19.6. Các hàm và sự kiện

Hàm API trong Web services của Moodle được sử dụng là:

core_message_send_instant_messages.

Sự kiện chạm vào gửi tin nhắn.

III.2.5.19.7. Các ràng buộc hay yêu cầu khác

Không có.

III.2.5.19.8. Các module sử dụng

Không có.

III.2.5.20. REQ20 – Tạo ghi chú

III.2.5.20.1. Mục đích

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

33

Cho phép người dùng tạo ghi chú cá nhân, trên site hệ thống hoặc trong từng khóa

học đã ghi danh.

III.2.5.20.2. Tiền điều kiện

- Người dùng đăng nhập thành công vào hệ thống.

- Người dùng được cấp quyền tạo ghi chú.

III.2.5.20.3. Giao diện

Hình 26. Tạo ghi chú.

III.2.5.20.4. Các thành phần trong giao diện

STT Loại điều

khiển Tên điều khiển

Giá trị

mặc định Ghi chú

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

34

1 PhoneTextBox ptbContents Chứa nội dung phần

ghi chú

2 Button btnSent Nút gửi và tạo ghi chú

3 TextBlock

txtTitleNote Note Tiêu đề

4 txtTilte Loại ghi chú

III.2.5.20.5. Xử lý

- Tùy thuộc vào người dùng chọn loại để ghi chú: cá nhân, trên site hoặc trong

từng khóa học.

- Hệ thống tạo yêu cầu tương ứng với lựa chọn của người dùng, và gửi yêu cầu

lên máy chủ.

- Nhận kết quả trả về và thông báo cho người dùng.

III.2.5.20.6. Các hàm và sự kiện

- Hàm API trong Web services của Moodle được sử dụng là:

moodle_notes_create_notes.

- Sự kiện chạm vào gửi tin nhắn.

III.2.5.20.7. Các ràng buộc hay yêu cầu khác

Không có.

III.2.5.20.8. Các module sử dụng

Không có.

III.3. KIỂM THỬ PHẦN MỀM (IEEE-V1)

III.3.1. Giới thiệu kế hoạch kiểm thử

III.3.1.1. Mục tiêu

Tài liệu kế hoạch kiểm thử được dùng để:

- Nhằm kiểm tra chương trình có chạy đúng với đặc tả hay không.

- Xác định những thông tin dự án và các thành phần dự án cần được kiểm thử.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

35

- Lặp kế hoạch kiểm tra cho dự án phần mềm.

- Tóm tắt mô tả mọi thành phần kiểm thử được bao trùm bởi kế hoạch kiểm

thử.

- Nêu lên những phương pháp, chiến lược kiểm thử nên sử dụng.

- Xác định nguồn lực cần và tính công.

III.3.1.2. Phạm vi

Quy trình kiểm thử sẽ được kiểm thử qua các giai đoạn sau:

- Kiểm thử thiết kế: tiến hành kiểm thử bản thiết kế có khớp với đặc tả yêu

cầu.

- Kiểm thử cài đặt: kiểm thử hộp trắng, tìm và sửa lỗi, kiểm thử đơn vị.

- Kiểm thử chức năng: kiểm thử hộp đen, kiểm tra các chức năng có xử lý

đúng dữ liệu không.

- Kiểm thử chấp nhận: kiểm tra các chức năng của phần mềm có đáp ứng đặc

tả yêu cầu không.

Các loại kiểm thử sẽ sử dụng:

- Kiểm thử đơn vị

- Kiểm thử hệ thống

III.3.2. Chi tiết kế hoạch kiểm thử

III.3.2.1. Các tính năng sẽ được kiểm thử

- REQ01 – Đăng nhập

- REQ02 – Tạo người dùng

- REQ19 – Gửi tin nhắn

III.3.2.2. Các tính năng sẽ không được kiểm thử

- REQ03 – Lấy hồ sơ người dùng

- REQ04 – Cập nhật thông tin cá nhân

- REQ05 – Đổi mật khẩu

- REQ06– Tạo khóa học

- REQ07 – Lấy thông tin khóa học

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

36

- REQ08 – Xem nội dung khóa học

- REQ09 – Tạo nhóm người dùng

- REQ10 – Xóa nhóm người dùng

- REQ11 – Thêm thành viên vào nhóm

- REQ12 – Xóa thành viên ra khỏi nhóm

- REQ13 – Lấy thông tin các nhóm

- REQ14 – Ghi danh vào khóa học

- REQ15 – Lấy thông tin danh mục

- REQ16 – Xem nội dung diễn đàn môn học

- REQ17 – Tạo chủ đề mới trên diễn đàn

- REQ18 – Tải xuống tập tin từ diễn đàn

- REQ20 – Tạo ghi chú

III.3.2.3. Cách tiếp cận

Kiểm thử chức năng của phần mềm:

- Sử dụng công cụ Visual Studio 2012 Ultimate để thực hiện phân tích mã

nguồn, kiểm tra các lớp, phương thức, viết testcase và tài liệu kết quả.

- Kiểm thử chức năng để kiểm tra thực thi của các chức năng trên nền tảng hệ

điều hành Windows Phone 8, viết testcase và viết tài liệu kết quả.

Kiểm thử giao diện:

- Phân tích bằng thiết kế giao diện, nguyên tắc hoạt động, thử nghiệm giao

diện thực tế, viết tài liệu kết quả.

Kiểm thử các yêu cầu phi chức năng:

- Tiến hành chạy ứng dụng trong môi trường giả lập Windows Phone

Emulator để đánh giá khả năng vận hành dụng của phần mềm.

- Tiến hành chạy ứng dụng trên môi trường hệ điều hành Windows Phone 8,

tìm lỗi, viết testcase và tài liệu kết quả.

Ngoài ra, các công cụ dưới đây sẽ được sử dụng để tham gia vào quá trình kiểm thử

hộp trắng và hộp đen:

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

37

STT Công cụ Nhà cung cấp Phiên bản

1 Microsoft Visual Studio 2012 Microsoft Ultimate

2 Windows Phone SDK Microsoft Version 8.0

3 Blend for Visual Studio 2012 Microsoft Version 4

III.3.2.4. Tiêu chí kiểm thử thành công/ thất bại

Tiêu chí kiểm thử thành công:

- Kết quả thực thi một chức năng đúng với kết quả mong muốn.

- Lỗi phát sinh trong quá trình kiểm thử phải nằm trong các lỗi được dự đoán

trước.

- Chức năng đúng với yêu cầu đặc tả.

Tiêu chí kiểm tra thất bại

- Quá trình kiểm thử phát sinh lỗi nằm ngoài dự đoán.

- Kết quả thực thi chức năng không như mong đợi.

III.3.2.5. Tiêu chí đình chỉ và yêu cầu bắt đầu lại

Trong quá trình kiểm thử một chức năng, ứng dụng bị treo, tự động thoát khỏi ứng

dụng hoặc người dùng không thao tác được với giao diện và các nút lệnh.

III.3.2.6. Sản phẩm bàn giao kiểm thử

- Tài liệu kế hoạch kiểm thử, trường hợp kiểm thử.

- Môi trường kiểm thử.

- Các đặc tả kiểm thử.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

38

III.3.3. Quản lý kiểm thử

III.3.3.1. Các hoạt động kiểm thử

III.3.3.2. Môi trường kiểm thử

Phần Cứng: Dell Vostro 3560, Intel® Core™ i5 CPU 3210M 2.5GHz (4CPUs),

RAM 4GB

Phần mềm:

- Hệ điều hành Windows 8 professional 64 bit.

- Visual Studio 2012 Ultimate

- .NET FrameWork 4.0

- Windows Phone SDK 8.0

- ComponentOne Studio for Windows Phone.

III.3.3.3. Trách nhiệm và quyền hạn

Đối với kiểm thử viên:

- Cài đặt môi trường kiểm thử.

- Tạo ra các bộ kiểm thử, các mẫu, tài liệu và thủ tục cho quá trình kiểm thử.

- Thực hiện đầy đủ các kiểm thử trên các cấp độ kiểm thử.

- Thực thi và ghi nhận kết quả, đánh giá và lập tài liệu cho các lỗi kiểm thử.

- Kiểm thử tự động.

Đối với trưởng nhóm kiểm thử:

- Đưa ra chiến lược kiểm thử và kế hoạch.

- Đánh giá kiểm thử.

- Thu thập tài nguyên kiểm thử.

- Lãnh đạo đặc tả và thực thi kiểm thử.

- Đảm bảo tiến độ kiểm thử.

- Theo dõi quá trình kiểm thử, đánh giá kết quả kiểm thử và sản phẩm.

- Ghi nhận thông tin tóm tắt quá trình và kết quả kiểm thử.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

39

III.3.3.4. Giao tiếp giữa các nhóm liên quan

Không có.

III.3.3.5. Tài nguyên và sự cấp phát chúng

Tài nguyên:

- Mã nguồn chương trình.

- Phần cứng: laptop giả lập thiết bị Windows Phone Emulator.

- Phần mềm: Visual Studio 2012.

- Nhân lực: Lập trình viên, kiểm thử viên.

III.3.3.6. Huấn luyện

Kiểm thử viên cần các kỹ năng kiểm thử hộp trắng và hộp đen.

III.3.3.7. Kế hoạch, dự đoán và chi phí

Báo cáo Luận văn tốt nghiệp GVHD Ks. Hồ Quang Thái

SVTH: Tô Ngọc Ẩn

STT Thời gian cho từng công việc

Nội dung Tài nguyên Từ ngày Đến ngày

1 6/11/2013 8/11/2013

Kiểm thử chức năng REQ01 – Đăng nhập

- Đăng nhập thành công

- Đăng nhập không thành công – không nhập địa chỉ kết nối

với máy chủ

- Đăng nhập không thành công – nhập địa chỉ kết nối với máy

chủ sai.

- Đăng nhập không thành công – bỏ trống tài khoản hoặc mật

khẩu

- Đăng nhập không thành công – tài khoản hoặc mật khẩu sai

Windows Phone

Emulator, Visual

Studio

2 9/11/2013 11/11/2013

Kiểm thử chức năng REQ02 – Tạo khóa học

- Nhập chính xác và đầy đủ thông tin – tạo mới người dùng

thành công.

- Bỏ trống 1 trong các trường tạo người dùng

- Tên tài khoản trùng với tên tài khoản có trong hệ thống

Windows Phone

Emulator, Visual

Studio

3 13/11/2013 15/11/2013 Kiểm thử chức năng REQ19 – Gửi tin nhắn

- Gửi thành công

Windows Phone

Emulator

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

141

- Gửi không thành công

Báo cáo Luận văn tốt nghiệp GVHD Ks. Hồ Quang Thái

SVTH: Tô Ngọc Ẩn

III.3.3.8. Các rủi ro

- Kiểm thử viên thiếu kỹ năng về kiểm thử hộp trắng và kiểm thử hộp đen.

- Kiểm thử không đúng tiến độ.

- Không đủ chi phí kiểm thử.

- Mức tin của tester vào sản phẩm.

III.3.4. Giới thiệu trường các hợp kiểm thử

III.3.4.1. Mục đích

- Kiểm tra chương trình có chạy đúng với đặc tả ban đầu hay không.

- Làm tài liệu cho giai đoạn bảo trì.

- Lập kế hoạch kiểm thử cho dự án phần mềm.

- Liệt kê các yêu cầu kiểm thử.

- Liệt kê các kết quả, tài liệu có được sau quá trình thực thi kiểm thử.

III.3.5.1. Phạm vi

Quá trình kiểm thử sẽ được thực hiện qua các công đoạn sau:

- Kiểm thử thiết kế: tiến hành kiểm thử bản thiết kế có đúng với đặc tả yêu

cầu.

- Kiểm thử cài đặt: kiểm thử đơn vị, kiểm thử hộp trắng, tìm và sửa lỗi.

- Kiểm thử chức năng: kiểm thử hộp đen, kiểm tra các chức năng.

- Kiểm thử chấp nhận: kiểm tra các chức năng của chương trình có đáp ứng

với đặc tả yêu cầu.

Phần mềm Moodle Windows Phone sẽ đề cập đến tài liệu của các trường hợp kiểm

thử của một số chức năng sau:

- REQ01 – Đăng nhập

- REQ02 – Tạo người dùng

- REQ19 – Gửi tin nhắn

III.3.5. Môi trường kiểm thử

III.3.5.2. Cấu hình giả lập

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

43

- Sử dụng máy ảo Windows Phone Emulator để giả lập thiết bị chạy hệ điều

hành Windows Phone 8.

- Windows Phone Emulator được tích hợp vào Visual Studio 2012 khi cài đặt

gói Windows Phone SDK 8.0.

III.3.5.3. Cấu hình laptop

Cấu hình máy tính giả lập môi trường Windows Phone 8:

- Dell Vostro 3560, Intel® Core™ i5 CPU 3210M 2.5GHz (4CPUs), RAM

4GB.

- Windows 8 Professional 64 bit.

III.3.5.4. Công cụ kiểm thử

STT Công cụ Nhà cung cấp Phiên bản

1 Microsoft Visual Studio 2012 Microsoft Ultimate

2 Windows Phone SDK Microsoft Version 8.0

3 Blend for Visual Studio 2012 Microsoft Version 4

III.3.6. Các trường hợp kiểm thử

III.3.6.1. Trường hợp kiểm thử 1: Đăng nhập

III.3.6.1.1. Mô tả

Cho phép người dùng đăng nhập vào hệ thống và sử dụng các chức năng của người

dùng.

III.3.6.1.2. Tiền điều kiện

- Người sử dụng được cấp tài khoản và mật khẩu trên hệ thống Moodle.

- Dịch vụ Web services trên hệ thống Moodle được bật.

- Người dùng có quyền sử dụng dịch vụ Web services.

- Người sử dụng khởi động ứng dụng.

Báo cáo Luận văn tốt nghiệp GVHD Ks. Hồ Quang Thái

SVTH: Tô Ngọc Ẩn

III.3.6.1.3. Kịch bản

Trường hợp kiểm thử 1: đăng nhập thành công

Mô tả các bước Kết quả mong đợi Kết quả thực tế Thành công /

Thất bại

Số của môi

trường

Số ghi

chú

Bước 1: chọn

textbox nhập địa

chỉ kết nối với máy

chủ. Nhập thông

tin.

Textbox nhập địa chỉ được

chọn, đồng thời bàn phím hiện

lên cho người dùng nhập.

Textbox hiển thị đầy đủ thông

tin người dùng nhập vào.

Textbox nhập địa chỉ được

chọn, đồng thời bàn phím hiện

lên cho người dùng nhập.

Textbox hiển thị đầy đủ thông

tin người dùng nhập vào

Thành công

Bước 2: chọn

textbox tài khoản.

Nhập thông tin.

Textbox tài khoản được chọn,

đồng thời bàn phím hiện lên

cho người dùng nhập.

Textbox hiển thị đầy đủ thông

tin người dùng nhập vào.

Textbox tài khoản được chọn,

đồng thời bàn phím hiện lên

cho người dùng nhập.

Textbox hiển thị đầy đủ thông

tin người dùng nhập vào.

Thành công

Bước 3: chọn

passwordbox mật

Passwordbox mật khẩu được

chọn, đồng thời bàn phím hiện

Passwordbox mật khẩu được

chọn, đồng thời bàn phím hiện Thành công

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

145

khẩu. Nhập thông

tin.

lên cho người dùng nhập.

Passwordbox hiển thị đầy đủ

thông tin người dùng nhập

vào dưới dạng *.

lên cho người dùng nhập.

Passwordbox hiển thị đầy đủ

thông tin người dùng nhập

vào dưới dạng *.

Bước 4: chọn nút

login.

Đăng nhập thành công và hiển

thị giao diện chính của người

dùng.

Đăng nhập thành công, ứng

dụng chuyển đến giao diện

chính của người dùng.

Thành công

Trạng thái của trường hợp kiểm thử Thành công

Trường hợp kiểm thử 2: đăng nhập không thành công – không nhập địa chỉ kết nối với máy chủ

Mô tả các bước Kết quả mong đợi Kết quả thực tế Thành công /

Thất bại

Số của môi

trường

Số ghi

chú

Bước 1: Bỏ trống

trường nhập địa chỉ

kết nối với máy chủ

Textbox nhập địa chỉ mang

giá trị rỗng.

Textbox nhập địa chỉ mang

giá trị rỗng. Thành công

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

146

Bước 2: chọn textbox

tài khoản. Nhập thông

tin.

Textbox tài khoản được

chọn, đồng thời bàn phím

hiện lên cho người dùng

nhập. Textbox hiển thị đầy

đủ thông tin người dùng

nhập vào.

Textbox tài khoản được chọn,

đồng thời bàn phím hiện lên

cho người dùng nhập.

Textbox hiển thị đầy đủ thông

tin người dùng nhập vào.

Thành công

Bước 3: chọn

passwordbox mật

khẩu. Nhập thông tin.

Passwordbox mật khẩu

được chọn, đồng thời bàn

phím hiện lên cho người

dùng nhập. Passwordbox

hiển thị đầy đủ thông tin

người dùng nhập vào dưới

dạng *.

Passwordbox mật khẩu được

chọn, đồng thời bàn phím hiện

lên cho người dùng nhập.

Passwordbox hiển thị đầy đủ

thông tin người dùng nhập

vào dưới dạng *.

Thành công

Bước 4: chọn nút

login.

Đăng nhập không thành

công, chương trình thông

báo: “Vui lòng nhập địa chỉ

kết nối với máy chủ”.

Đăng nhập không thành công,

chương trình thông báo: “Vui

lòng nhập địa chỉ kết nối với

máy chủ”.

Thành công

Trạng thái của trường hợp kiểm thử Thành công

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

147

Trường hợp kiểm thử 3: đăng nhập không thành công – nhập địa chỉ kết nối với máy chủ sai.

Mô tả các bước Kết quả mong đợi Kết quả thực tế Thành công /

Thất bại

Số của môi

trường

Số ghi

chú

Bước 1: Chọn

textbox địa chỉ kết

nối với máy chủ,

nhập sai thông tin kết

nối.

Textbox nhập địa chỉ được

chọn, đồng thời bàn phím

hiện lên cho người dùng

nhập. Textbox hiển thị đầy

đủ thông tin người dùng

nhập vào.

Textbox nhập địa chỉ được

chọn, đồng thời bàn phím hiện

lên cho người dùng nhập.

Textbox hiển thị đầy đủ thông

tin người dùng nhập vào.

Thành công

Bước 2: chọn textbox

tài khoản. Nhập thông

tin.

Textbox tài khoản được

chọn, đồng thời bàn phím

hiện lên cho người dùng

nhập. Textbox hiển thị đầy

đủ thông tin người dùng

nhập vào.

Textbox tài khoản được chọn,

đồng thời bàn phím hiện lên

cho người dùng nhập.

Textbox hiển thị đầy đủ thông

tin người dùng nhập vào.

Thành công

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

148

Bước 3: chọn

passwordbox mật

khẩu. Nhập thông tin.

Passwordbox mật khẩu

được chọn, đồng thời bàn

phím hiện lên cho người

dùng nhập. Passwordbox

hiển thị đầy đủ thông tin

người dùng nhập vào dưới

dạng *.

Passwordbox mật khẩu được

chọn, đồng thời bàn phím hiện

lên cho người dùng nhập.

Passwordbox hiển thị đầy đủ

thông tin người dùng nhập

vào dưới dạng *.

Thành công

Bước 4: chọn nút

login.

Đăng nhập không thành

công, thông báo cho người

dùng: “Lỗi kết nối, không

kết nối được với máy chủ”.

Đăng nhập không thành công,

thông báo cho người dùng:

“Lỗi kết nối, không kết nối

được với máy chủ”.

Thành công

Trạng thái của trường hợp kiểm thử Thành công

Trường hợp kiểm thử 4: đăng nhập không thành công – bỏ trống tài khoản hoặc mật khẩu

Mô tả các bước Kết quả mong đợi Kết quả thực tế Thành công /

Thất bại

Số của môi

trường

Số ghi

chú

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

149

Bước 1: chọn textbox

nhập địa chỉ kết nối

với máy chủ. Nhập

thông tin.

Textbox nhập địa chỉ được

chọn, đồng thời bàn phím

hiện lên cho người dùng

nhập. Textbox hiển thị đầy

đủ thông tin người dùng

nhập vào.

Textbox nhập địa chỉ được

chọn, đồng thời bàn phím hiện

lên cho người dùng nhập.

Textbox hiển thị đầy đủ thông

tin người dùng nhập vào.

Thành công

Bước 2: chọn textbox

tài khoản hoặc

passwordbox mật

khẩu. Điền thông tin

vào trường đã chọn.

Textbox tài khoản hoặc

passwordbox mật khẩu

được chọn. Thông tin được

nhập đầy đủ vào 1 trong 2

trường đã chọn.

Textbox tài khoản hoặc

passwordbox mật khẩu được

chọn. Thông tin được nhập

đầy đủ vào 1 trong 2 trường đã

chọn.

Thành công

Bước 3: chọn nút

login.

Đăng nhập không thành

công, thông báo người

dùng: “Tài khoản và mật

khẩu không được bỏ

trống!”.

Đăng nhập không thành công,

thông báo người dùng: “Tài

khoản và mật khẩu không

được bỏ trống!”.

Thành công

Trạng thái của trường hợp kiểm thử Thành công

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

150

Trường hợp kiểm thử 5: đăng nhập không thành công – tài khoản hoặc mật khẩu sai

Mô tả các bước Kết quả mong đợi Kết quả thực tế Thành công /

Thất bại

Số của môi

trường

Số ghi

chú

Bước 1: chọn

textbox nhập địa

chỉ kết nối với máy

chủ. Nhập thông

tin.

Textbox nhập địa chỉ được

chọn, đồng thời bàn phím hiện

lên cho người dùng nhập.

Textbox hiển thị đầy đủ thông

tin người dùng nhập vào.

Textbox nhập địa chỉ được

chọn, đồng thời bàn phím hiện

lên cho người dùng nhập.

Textbox hiển thị đầy đủ thông

tin người dùng nhập vào

Thành công

Bước 2: chọn

textbox tài khoản.

Nhập thông tin.

Textbox tài khoản được chọn,

đồng thời bàn phím hiện lên

cho người dùng nhập.

Textbox hiển thị đầy đủ thông

tin người dùng nhập vào.

Textbox tài khoản được chọn,

đồng thời bàn phím hiện lên

cho người dùng nhập.

Textbox hiển thị đầy đủ thông

tin người dùng nhập vào.

Thành công

Bước 3: chọn

passwordbox mật

khẩu. Nhập thông

tin.

Passwordbox mật khẩu được

chọn, đồng thời bàn phím hiện

lên cho người dùng nhập.

Passwordbox hiển thị đầy đủ

Passwordbox mật khẩu được

chọn, đồng thời bàn phím hiện

lên cho người dùng nhập.

Passwordbox hiển thị đầy đủ

Thành công

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

151

thông tin người dùng nhập

vào dưới dạng *.

thông tin người dùng nhập

vào dưới dạng *.

Bước 4: chọn nút

login.

Đăng nhập không thành công,

thông báo cho người dùng:

“Tài khoản hoặc mật khẩu

không đúng.”

Đăng nhập không thành công,

thông báo cho người dùng:

“Tài khoản hoặc mật khẩu

không đúng.”

Thành công

Trạng thái của trường hợp kiểm thử Thành công

III.3.6.1.4. Mảng các giá trị

Mảng các giá trị

Kịch bản 1 Kịch bản 2 Kịch bản 3 Kịch bản 4 Kịch bản 5

Địa chỉ kết nối với

máy chủ

http://169.254.80

.80/moodle http://test/moodle

http://169.254.80.80

/moodle

Tài khoản Admin admin admin admin testwrong

Mật khẩu Tongocan1608@ Tongocan1608@ Tongocan1608@ testwrong

Kết quả mong đợi

Hiển thị giao diện

chính của người

dùng.

Đăng nhập không

thành công,

chương trình

Đăng nhập không

thành công, thông

báo cho người

Đăng nhập không

thành công, thông

báo người dùng:

Đăng nhập không

thành công, thông

báo cho người dùng:

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

152

thông báo: “Vui

lòng nhập địa chỉ

kết nối với máy

chủ”.

dùng: “Lỗi kết

nối, không kết nối

được với máy

chủ”.

“Tài khoản và mật

khẩu không được

bỏ trống!”.

“Tài khoản hoặc

mật khẩu không

đúng.”

Kết quả thực tế

Hiển thị giao diện

chính của người

dùng.

Đăng nhập không

thành công,

chương trình

thông báo: “Vui

lòng nhập địa chỉ

kết nối với máy

chủ”.

Đăng nhập không

thành công, thông

báo cho người

dùng: “Lỗi kết

nối, không kết nối

được với máy

chủ”.

Đăng nhập không

thành công, thông

báo người dùng:

“Tài khoản và mật

khẩu không được

bỏ trống!”.

Đăng nhập không

thành công, thông

báo cho người dùng:

“Tài khoản hoặc

mật khẩu không

đúng.”

Thành công /

Thất bại Thành công Thành công Thành công Thành công Thành công

Số của môi

trường

Số ghi chú

III.3.6.2. Trường hợp kiểm thử 2: Tạo người dùng

III.3.6.2.1. Mô tả

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

153

Cho phép tạo người dùng trên hệ thống.

III.3.6.2.2. Tiền điều kiện

Đăng nhập thành công vào hệ thống và có quyền tạo người dùng mới

III.3.6.2.3. Kịch bản

Trường hợp kiểm thử 1: Nhập chính xác và đầy đủ thông tin – tạo mới người dùng thành công.

Mô tả các bước Kết quả mong đợi Kết quả thực tế Thành công

/ Thất bại

Số của môi

trường

Số ghi

chú

Bước 1: Chạm vào

Listpicker. Chọn

phương pháp

chứng thực người

dùng.

Listpicker hiển thị danh sách

các phương pháp chứng thực

người dùng. Phương pháp

chứng thực người dùng được

chọn và hiển thị.

Listpicker hiển thị danh sách

các phương pháp chứng thực

người dùng. Phương pháp

chứng thực người dùng được

chọn và hiển thị.

Bước 2: chọn

textbox tài khoản.

Nhập đầy đủ thông

tin

Textbox tài khoản được chọn,

đồng thời bàn phím được hiện

lên cho người dùng nhập.

Textbox tài khoản hiển thị đầy

đủ thông tin người nhập.

Textbox tài khoản được chọn,

đồng thời bàn phím được hiện

lên cho người dùng nhập.

Textbox tài khoản hiển thị đầy

đủ thông tin người nhập.

Thành công

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

154

Bước 3: chọn

passwordbox mật

khẩu. Nhập thông

tin.

Passwordbox mật khẩu được

chọn. Passwordbox hiển thị

đầy đủ thông tin người dùng

nhập vào dưới dạng *.

Passwordbox mật khẩu được

chọn. Passwordbox hiển thị

đầy đủ thông tin người dùng

nhập vào dưới dạng *.

Thành công

Bước 4: chọn

passwordbox xác

nhận mật khẩu.

Nhập thông tin.

Passwordbox xác nhận mật

khẩu được chọn, Passwordbox

hiển thị đầy đủ thông tin người

dùng nhập vào dưới dạng *.

Passwordbox xác nhận mật

khẩu được chọn, Passwordbox

hiển thị đầy đủ thông tin người

dùng nhập vào dưới dạng *.

Thành công

Bước 5: chọn

textbox họ. Nhập

thông tin.

Textbox họ được chọn và hiển

thị đầy đủ thông tin người dùng

nhập.

Textbox họ được chọn và hiển

thị đầy đủ thông tin người dùng

nhập.

Thành công

Bước 6: chọn

textbox địa chỉ

email. Nhập thông

tin.

Textbox địa chỉ email được

chọn và hiển thị đầy đủ thông

tin người dùng nhập.

Textbox địa chỉ email được

chọn và hiển thị đầy đủ thông

tin người dùng nhập.

Thành công

Bước 7: chọn

textbox địa chỉ.

Nhập thông tin.

Textbox địa chỉ được chọn và

hiển thị đầy đủ thông tin người

dùng nhập.

Textbox địa chỉ được chọn và

hiển thị đầy đủ thông tin người

dùng nhập.

Thành công

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

155

Bước 8: chọn

textbox quốc gia.

Nhập thông tin.

Textbox quốc gia được chọn

và hiển thị đầy đủ thông tin

người dùng nhập.

Textbox quốc gia được chọn

và hiển thị đầy đủ thông tin

người dùng nhập.

Thành công

Bước 9: Nhất nút

tạo mới người

dùng.

Thông báo tạo người dùng

thành công.

Thông báo tạo người dùng

thành công. Thành công

Trạng thái của trường hợp kiểm thử Thành công

Trường hợp kiểm thử 2: Bỏ trống 1 trong các trường tạo người dùng

Mô tả các bước Kết quả mong đợi Kết quả thực tế Thành công

/ Thất bại

Số của môi

trường

Số ghi

chú

Bước 1: bỏ trống 1

trong các trường

tạo người dùng.

Trường dữ liệu được bỏ trống

mang giá trị rỗng.

Trường dữ liệu được bỏ trống

mang giá trị rỗng. Thành công

Bước 2: Chọn và

điền đầy đủ các

Các trường dữ liệu được chọn

và hiển thị đầy đủ thông tin

người dùng đã nhập vào.

Các trường dữ liệu được chọn

và hiển thị đầy đủ thông tin

người dùng đã nhập vào.

Thành công

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

156

thông tin người

dùng còn lại.

Bước 3: nhấn nút

tạo người dùng.

Tạo người dùng không thành

công. Thông báo: “vui lòng

nhập đầy đủ thông tin”.

Tạo người dùng không thành

công. Thông báo: “vui lòng

nhập đầy đủ thông tin”.

Thành công

Trạng thái của trường hợp kiểm thử Thành công

Trường hợp kiểm thử 3: Tên tài khoản trùng với tên tài khoản có trong hệ thống

Mô tả các bước Kết quả mong đợi Kết quả thực tế Thành công /

Thất bại

Số của môi

trường

Số ghi

chú

Bước 1: chọn textbox tài

khoản. Nhập tên tài khoản

trùng với tài khoản có trong

hệ thống.

Textbox tài khoản được

chọn và hiển thị đầy đủ

thông tin người dùng đã

nhập vào.

Textbox tài khoản được

chọn và hiển thị đầy đủ

thông tin người dùng đã

nhập vào.

Thành công

Bước 2: Chọn và điền đầy đủ

các thông tin người dùng còn

lại bao gồm các textbox sau:

mật khẩu, xác nhận mật khẩu,

Các trường dữ liệu được

chọn và hiển thị đầy đủ

thông tin người dùng đã

nhập vào.

Các trường dữ liệu được

chọn và hiển thị đầy đủ

thông tin người dùng đã

nhập vào.

Thành công

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

157

họ, tên, địa chỉ email, địa chỉ

và quốc gia.

Bước 3: nhấn nút tạo người

dùng.

Tạo người dùng không

thành công. Thông báo:

“Tên tài khoản không

được trùng!”.

Tạo người dùng không

thành công. Thông báo:

“Tên tài khoản không

được trùng!”.

Thành công

Trạng thái của trường hợp kiểm thử Thành công

III.3.6.2.4. Mảng các giá trị

Mảng các giá trị

Kịch bản 1 Kịch bản 2 Kịch bản 3

Phương pháp chứng

thực Manual Accounts Manual Accounts Manual Accounts

Tên tài khoản demoadduser NULL demoadduser

Mật khẩu Demoadduser2011@ Ngocan1608! Demoadduser2011@

Xác nhận mật khẩu Demoadduser2011@ Ngocan1608! Demoadduser2011@

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

158

Họ người dùng To Tester Demo

Tên người dùng Ngoc An KB2 User

Địa chỉ email [email protected] [email protected] [email protected]

Địa chỉ Can Tho Bac Lieu Ca Mau

Quốc gia VN VN VN

Kết quả mong đợi Tạo người dùng thành công

Tạo người dùng không

thành công, thông báo: “Vui

lòng nhập đầy đủ thông

tin.”.

Tạo người dùng không thành công,

thông báo yêu cầu: “Tên tài khoản

không được trùng”.

Kết quả thực tế Tạo người dùng thành công

Tạo người dùng không

thành công, thông báo: “Vui

lòng nhập đầy đủ thông

tin.”.

Tạo người dùng không thành công,

thông báo yêu cầu: “Tên tài khoản

không được trùng”.

Thành công / Thất

bại Thành công Thành công Thành công

Số của môi trường

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

159

Số ghi chú

III.3.6.3. Trường hợp kiểm thử 3: gửi tin nhắn

III.3.6.3.1. Mô tả

Cho phép gửi tin nhắn đến các thành viên trong hệ thống

III.3.6.3.2. Tiền điều kiện

Người dùng đăng nhập thành công vào hệ thống và được phép gửi tin nhắn đến các thành viên trong hệ thống.

III.3.6.3.3. Kịch bản

Trường hợp kiểm thử 1: Gửi tin nhắn thành công

Mô tả các bước Kết quả mong đợi Kết quả thực tế Thành công /

Thất bại

Số của môi

trường

Số ghi

chú

Bước 1: Người dùng chọn

thành viên cần gửi tin nhắn

Thông tin người dùng

cần gửi tin và trang gửi

tin nhắn được hiển thị

Thông tin người dùng cần

gửi tin và trang gửi tin

nhắn được hiển thị

Thành công

Bước 2: Chọn và ghi nội

dung gửi tin nhắn trong

trường nội dung tin nhắn.

Các trường dữ liệu được

chọn và hiển thị đầy đủ

Các trường dữ liệu được

chọn và hiển thị đầy đủ Thành công

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

160

nội dung tin nhắn người

dùng đã nhập vào.

nội dung tin nhắn người

dùng đã nhập vào.

Bước 3: Nhấn nút gửi tin

nhắn

Tin nhắn được gửi đến

người nhận.

Tin nhắn được gửi đến

người nhận. Thành công

Trạng thái của trường hợp kiểm thử Thành công

Trường hợp kiểm thử 2: Gửi tin nhắn không thành công

Mô tả các bước Kết quả mong đợi Kết quả thực tế Thành công

/ Thất bại

Số của môi

trường

Số ghi

chú

Bước 1: Người dùng

chọn thành viên cần gửi

tin nhắn

Thông tin người dùng cần gửi

tin và trang gửi tin nhắn được

hiển thị

Thông tin người dùng cần gửi

tin và trang gửi tin nhắn được

hiển thị

Thành công

Bước 2: Bỏ trống

trường nội dung tin

nhắn

Các trường dữ liệu được bỏ

trống

Các trường dữ liệu được bỏ

trống Thành công

Bước 3: Nhấn nút gửi

tin nhắn

Thông báo người dùng nhập

nội dung tin nhắn

Thông báo người dùng nhập

nội dung tin nhắn Thành công

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

161

Trạng thái của trường hợp kiểm thử Thành công

III.3.6.3.4. Mảng các giá trị

Mảng các giá trị

Kịch bản 1 Kịch bản 2

Nội dung tin nhắn Tuần 17 báo cáo LVTN NULL

Kết quả mong đợi Gửi tin nhắn thành công. Thông báo vui lòng nhập nội dung tin nhắn.

Kết quả thực tế Tin nhắn gửi đến người nhận Thông báo: Vui lòng nhập nội dung tin nhắn.

Thành công / Thất

bại Thành công Thành công

Số của môi trường

Số ghi chú

Báo cáo Luận văn tốt nghiệp GVHD Ks. Hồ Quang Thái

SVTH: Tô Ngọc Ẩn

CHƯƠNG IV: KẾT LUẬN

IV.1. KẾT QUẢ ĐẠT ĐƯỢC

IV.1.1. Lý thuyết

- Hiểu được quy trình hoạt động Web services trên hệ thống Moodle.

- Nắm được quy trình phát triển ứng dụng Windows Phone.

- Sử dụng thành thạo ngôn ngữ lập trình C#, ngôn ngữ đánh dấu XAML.

- Hiểu được cách lưu trữ dữ liệu với Isolated Storage trên Windows Phone.

- Hiểu được cách thức truy vấn, trích lọc nội dung trong tài liệu HTML.

IV.1.2. Chương trình

- Hiểu được quy trình phát triển ứng dụng Windows Phone trên nền tảng

Silverlight, sử dụng mô hình MVVM đặc trưng trên Silverlight.

- Hiểu được cơ chế hoạt động với Web services trên nền tảng Windows Phone.

- Thao tác với tài liệu HTML tốt hơn, hiểu rõ quy trình Post Data với

HttpWebRequest trên Windows Phone.

IV.1.3. Thực tế

- Phần mềm Moodle Windows Phone được cài đặt thành công trên thiết bị máy

ảo Windows Phone Emulator, và chạy tốt trên thiết bị thật.

IV.2. HẠN CHẾ

- Do Windows Phone SDK 8.0 mới vừa được chính thức phát hành, do đó hỗ

trợ cho lập trình viên vẫn còn khá hạn chế, một số chức năng phải qua nhiều

thao tác để hiển thị và có rất nhiều công cụ chưa được phát triển để sánh ngang

với Android và iOS.

- Ứng dụng đã giải quyết một số chức năng cần thiết cho người dùng, tuy nhiên

API Functions của Moodle chỉ dừng lại ở một số hàm nhất định dẫn đến tương

tác giữa người dùng và hệ thống Moodle vẫn còn khó khăn như: xem bảng

điểm môn học, thi trực tuyến, thêm nội dung môn học, tham gia trên diễn đàn.

- Giao diện tương tác với người dùng hơi khô khan, chưa tạo được các cập nhật

thông tin cho người dùng thường xuyên.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

63

IV.3. HƯỚNG PHÁT TRIỂN

- Cần tìm hiểu và nghiên cứu RadControl hoặc bộ Toolkit cho Windows Phone

để thay thế các thành phần sẳn có của bộ Windows Phone SDK 8.0. Với các

công cụ trên nhà phát triển có thể tạo ra ứng dụng trực quan và dễ dàng tương

tác với người dùng hơn.

- Với sự phát triển không ngừng của hệ thống Moodle, phiên bản mới nhất hiện

tại 2.5.1 đã hỗ trợ nhiều hàm API và tập trung giải quyết các vấn đề còn thiếu

sót cho Web services của hệ thống. Ngoài ra chúng ta có thể tìm hiểu công

nghệ HTML5 trên Windows Phone để giải quyết vấn đề xem bảng điểm, thi

trực tuyến và thao tác tốt hơn trên các diễn đàn.

- Tìm hiểu rõ hơn về quy trình hoạt động Toast notifications, sử dụng luồng dữ

liệu trên Windows Phone và nguyên tắc gửi nhận tin trên máy chủ của

Microsoft.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

64

PHỤ LỤC CÀI ĐẶT ỨNG DỤNG

Cài đặt ứng dụng trên máy ảo:

Bước 1: tải và cài đặt gói Microsoft Windows Phone SDK 8.0

Bước 2: Theo đường dẫn đến thư mục và chạy phần mềm Application Deployment

Windows Phone: C:\Program Files (x86)\Microsoft SDKs\Windows

Phone\v8.0\Tools\XAP Deployment\ XapDeploy.exe.

Hình 27. Hình cài đặt ứng dụng trên máy ảo.

Bước 3: tại phần Taget chọn Emulator WVGA 512MB, chọn đường dẫn đến tập

tin .XAP của ứng dụng. Click vào Depploy.

Bước 4: Máy ảo sẽ được khởi động và nạp tập tin .XAP vào, cuối cùng mở phần

mềm đăng nhập và sử dụng.

Cài đặt ứng dụng trên thiết bị thật:

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

65

Bước 1: tải và cài đặt các phần mềm sau:

- Microsoft Windows Phone SDK 8.0

- Cài đặt .NET Framework 4.0

- Tải phần mềm WPV XAP Deployer 2.0

Bước 2: Yêu cầu máy phải đăng kí tài khoản Microsoft, đăng kí tài khoản mới tại

đây. Sau đó đăng nhập tài khoản Live vừa mới đăng kí vào điện thoại. Tại giao diện

điện thoại vào setting -> email+accounts -> Live Mail

Hình 28. Cấu hình điện thoại.

Bước 3: Mở phần mềm WPV XAP Deployer.exe vừa cài đặt.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

66

Hình 29. Deploy ứng dụng vào máy thật.

Bước 4: Chọn đường dẫn đến tập tin .XAP và nhấn DEPLOY, ứng dụng sẽ được

deploy lên máy thật, mở ứng dụng đăng nhập và sử dụng.

SVTH: Tô Ngọc Ẩn GVHD Ks. Hồ Quang Thái

1

67

TÀI LIỆU THAM KHẢO

[1] Trần Cao Đệ, Đỗ Thanh Nghị. Kiểm thử phần mềm, Trường ĐH Cần Thơ,

Khoa Công Nghệ Thông Tin và Truyền Thông.

[2] Rob Cameron. Pro Windows Phone App Development Second Edition.

[3] Elena Kosinska and Chris Leeds. Microsoft Expression Blend 4 Step by Step.

[4] Magazine Geek. The First Windows Phone Development.

[5] Hướng dẫn sử dụng hệ thống MOODLE, Đại học Sư phạm Hà Nội.