ỨNG DỤNG MOBILE CHO HỆ THỐNG HỖ TRỢ HỌC TẬP MOODLE TRÊN NỀN TẢNG WINDOWS...
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
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
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.