Hệ thống này đã giải quyết được những vấn đề khó khăn đó như: chogiảng viên đăng ký trước giờ rảnh của mình, hệ thống sẽ tự động lấy các lớp học phần để xếp vào các tiết mà giảng viên đã
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BỘ MÔN CÔNG NGHỆ THÔNG TIN
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
Đề tài Ứng dụng xếp thời khóa biểu cho giảng viên giảng dạy tại Khoa Phát Triển Nông Thôn
Họ và tên: Nguyễn Trung Kiên ThS Nguyễn Tí Hon MSSV: B1412464
Khoá: K40
Cần Thơ, 05/2019
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BỘ MÔN CÔNG NGHỆ THÔNG TIN
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
Đề tài
Ứng dụng xếp thời khóa biểu cho giảng viên giảng dạy tại Khoa Phát Triển Nông Thôn
Sinh viên thực hiện Cán bộ hướng dẫn
Họ và tên: Nguyễn Trung Kiên ThS Nguyễn Tí Hon MSSV: B1412464
Khoá: K40
Cán bộ phản biện ThS Nguyễn Ngọc Mỹ ThS Sử Kim Anh Luận văn được bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ Công Ngh
ệ Thông Tin,Khoa CNTT & TT, Trường Đại học Cần Thơ
vào ngày 20 tháng 05 năm 2019
Mã số đề tài:
Có thể tìm hiểu luận văn tại:
-Trung tâm Học liệu, Trường Đại học Cần Thơ
Website: http://www.lrc.ctu.edu.vn/
Trang 3LỜI CẢM ƠN
Đầu tiên, em xin trân trọng cảm ơn Bộ môn Công Nghệ Thông Tin, KhoaCông Nghệ Thông Tin và Truyền Thông trường Đại học Cần Thơ đã tạo điều kiện tốtnhất để em có thể hoàn thành tốt đề tài này
Dưới sự phân công và hướng dẫn của ThS Nguyễn Tí Hon em đã thực hiện đề
tài “Ứng dụng xếp lịch thời khóa biểu cho giảng viên giảng dạy tại Khoa Phát Triển Nông Thôn” Để đề tài có thể hoàn thành một cách thuận lợi và tốt đẹp nhất,
em xin chân thành cảm ơn thầy Nguyễn Tí Hon với lòng biết ơn sâu sắc nhất vì đã tậntình chỉ dẫn cũng như định hướng và tạo mọi điều kiện tốt nhất cho em và cùng emđồng hành trong quá trình thực hiện đề tài luận văn này
Em cũng xin bày tỏ lòng biết ơn tất cả các thầy cô đã giảng dạy và truyền đạtkiến thức quý báu cho em trong suốt thời gian em học tập ở trường, đây là nên tảngquý giá để em có thể thực hiện tốt luận văn
Bên cạnh đó, em xin gửi lời cảm ơn đến những người thân trong gia đình, bạn
bè đã giúp đỡ, động viên em trong suốt quá trình thực hiện luận văn
Trong quá trình thực hiện luận văn, em đã có thể tích luỹ thêm được nhiềukiến thức mới đây là điều vô cùng quý báu cho bản thân em, song song đó em đã kếthợp với nền tảng có sẳn để cố gắng thực hiện đề tài một cách hoàn chỉnh nhất nhưng
do những hạn chế về kiến thức và cũng như kinh nghiệm trong lập trình nên nhữngthiếu sót là không thể tránh khỏi
Em rất mong nhận được sự góp ý của quý Thầy, Cô cùng các bạn để đề tàiđược hoàn chỉnh hơn, đồng thời tạo tiền đề tốt hơn cho những nghiên cứu về sau
Cuối lời em xin gửi lời chúc quý Thầy Cô luôn dồi dào sức khoẻ, hạnh phúc
và luôn đạt được nhiều thành công trong công tác cũng như trong cuộc sống của mình.Xin chân thành cảm ơn!
Cần Thơ, ngày 20 tháng 05 năm 2019
Sinh viên thực hiện
Nguyễn Trung Kiên
Trang 4MỤC LỤC
LỜI CẢM ƠN i
MỤC LỤC ii
DANH MỤC HÌNH ẢNH iv
DANH MỤC BIỂU BẢNG v
DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT vi
TÓM TẮT vii
ABSTRACT viii
CHƯƠNG 1: TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.1.1 Hiện trạng 1
1.1.2 Mục tiêu 1
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ 2
1.3 PHẠM VI CỦA ĐỀ TÀI 3
1.3.1 Về cơ sở lý thuyết 3
1.3.2 Về chức năng 4
1.3.3 Về kỹ thuật 4
1.4 PHƯƠNG PHÁP NGHIÊN CỨU 5
1.4.1 Thu thập dữ liệu 5
1.4.2 Phân tích hệ thống 5
Trang 5CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 7
2.1 PHÂN TÍCH THIẾT KẾ HỆ THỐNG THÔNG TIN 7
2.2 Lập trình hướng đối tượng 8
2.2.1 Khái niệm cơ bản 8
2.2.2 Các đặc trưng của lập trình hướng đối tượng 9
2.2.3 Các khái niệm khác trong lập trình hướng đối tượng 9
2.2.4 Các tính chất của Lập trình hướng đối tượng 10
2.3 NODEJS 12
2.4 Mô hình MVC 13
2.5 Mongo DB 16
CHƯƠNG 3: NỘI DUNG NGHIÊN CỨU 17
3.1 MÔ TẢ BÀI TOÁN 17
3.1.1 Mô tả quy trình bài toán 18
3.1.2 Sơ đồ use case 19
3.2 CÀI ĐẶT HỆ THỐNG 20
3.2.1 Lưu đồ giải thuật đăng nhập 20
3.2.2 Lưu đồ giải thuật xử lý sắp xếp thời khóa biểu 21
3.2.3 Lưu đồ giải thuật xuất file thời khóa biểu đã xếp 23
3.3 THIẾT KẾ HỆ THỐNG 24
3.3.1 Các mô hình thiết kế 24
3.3.2 CƠ SỞ DỮ LIỆU 26
3.3.3 MÔ TẢ CÁC THỰC THỂ 27
3.4 KIỂM THỬ 29
Trang 6CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM 30
4.1 Biểu mẫu thu thập tiết dạy 30
4.2 WebSite 31
4.2.1 Giao diện đăng nhập 31
4.2.2 Giao Diện Chính 31
4.2.3 Giao Diện Kết quả 32
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 33
1 KẾT QUẢ ĐẠT ĐƯỢC 33
2 KẾT QUẢ ĐẠT ĐƯỢC 33
3 HƯỚNG PHÁT TRIỂN 34
PHỤ LỤC 35
TÀI LIỆU THAM KHẢO 36
Trang 7DANH MỤC HÌNH ẢNH
HÌNH 2.2 MÔ HÌNH MVC 14
HÌNH 3.1 QUY TRÌNH TỔNG QUÁT CỦA HỆ THỐNG 18
HÌNH 3.2 SƠ ĐỒ USE CASE CÁC CHỨC NĂNG CỦA WEBSITE 19
HÌNH 3.3 LƯU ĐỒ GIẢI THUẬT ĐĂNG NHẬP 20
HÌNH 3.4 LƯU ĐỒ XỬ LÝ VÀ SẮP XẾP DỮ LIỆU 21
HÌNH 3.5 LƯU ĐỒ GIẢI THUẬT XUẤT FILE THỜI KHÓA BIỂU 23
HÌNH 3.6 MÔ HÌNH CDM CỦA HỆ THỐNG 24
HÌNH 3.7 MÔ HÌNH LDM CỦA HỆ THỐNG 24
HÌNH 3.8 MÔ HÌNH PDM CỦA HỆ THỐNG 25
HÌNH 3.9 MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ 26
HÌNH 4.1 BIỄU MẪU THU THẬP GIỜ RẢNH CHO GIẢNG VIÊN ĐĂNG KÝ 30
HÌNH 4.2 GIAO DIỆN ĐĂNG NHẬP 31
HÌNH 4.3 GIAO DIỆN CHÍNH 31
HÌNH 4.4 GIAO DIỆN KẾT QUẢ 32
HÌNH 4.5 GIAO DIỆN LỌC DỮ LIỆU KẾT QUẢ THEO MÃ CÁN BỘ 32
Trang 8DANH MỤC BIỂU BẢNG
Bảng 1.1 Các công cụ và công nghệ được sử dụng 6
Bảng 3.1 Lớp Học Phần 27
Bảng 3.2 Cán bộ giảng viên 27
Bảng 3.3 Danh Sách Học Phần 27
Bảng 3.4 Nhóm học 28
Bảng 3.5 Phòng học 28
Bảng 3.7 User 28
Bảng 3.8 Kiểm thử chức năng Website 29
Trang 9DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT
HTML5 HyperText Markup Language version 5
Trang 10TÓM TẮT
Khoa Phát Triển Nông Thôn ngày càng phát triển và mở rộng về ngành học nên
số lượng sinh viên và số lượng các tiết học ngày càng tăng, nó đã trở thành sự khókhăn trong việc sắp xếp thời khóa biểu cho các lớp học phần Ở mỗi đầu học kỳ, cán
bộ phụ trách phải vất vả về thời gian và công sức để sắp xếp được một thời khóa biểuhoàn chỉnh Việc xây dựng một hệ thống hỗ trợ việc sắp lịch là cần thiết để tạo nên sựtiện lợi, nhanh chóng và giảm tải được một phần công việc cho các cán bộ phụ tráchmảng công việc này
Đề tài “Ứng dụng xếp lịch thời khóa biểu cho giảng viên giảng dạy tại Khoa PhátTriển Nông Thôn” nhằm tạo ra một hệ thống để phục vụ cho các cán bộ phụ trách lẫncác giảng viên Hệ thống này đã giải quyết được những vấn đề khó khăn đó như: chogiảng viên đăng ký trước giờ rảnh của mình, hệ thống sẽ tự động lấy các lớp học phần
để xếp vào các tiết mà giảng viên đã đăng ký, tận dụng được thời gian của tất cả cácphòng học, xuất ra được file xls của thời khóa biểu hoàn chỉnh Nhằm nâng cao tínhtiện lợi và nhanh chóng nên hệ thống sẽ được xây dựng dưới dạng nền tảng mô hìnhMVC và một ứng dụng web được viết bằng HTML, Javascript sử dụng kèm theo cácthư viện và framework nổi bật hiện nay, cùng với đó là hệ thống thu thập biểu mẫu củaGoogle và sử dụng Microsoft® Office Excel cho việc lưu trữ thông tin trước và saukhi thu thập
Về Website sẽ được viết bằng NodeJS để đảm bảo tính mạnh mẽ, nhanh chóng,
ổn định, bên cạnh đó còn kết hợp với cơ sở dữ liệu MongoDB để việc lưu trữ và xử lý
dữ liệu tốt hơn Đây như một bộ đôi tương thích với nhau cho một hệ thống lớn Hệthống này cũng sẽ đảm bảo các chức năng xử lý nhập xuất dữ liệu từ file Excel Bêncạnh đó, sử dụng biểu mẫu của Google để thu thập và lưu trữ các tiết dạy mà giảngviên đăng ký trong học kỳ tới
Từ khoá: Hệ thống, sắp xếp thời khóa biểu, ứng dụng web, Excel, Biễu mẫu Google
Trang 11College of Rural Development is growing and expanding in the field of study sothe number of students and the number of classes are increasing, it has becomedifficult to arrange a schedule for the classes At the beginning of each semester, theofficer must work hard on time and effort to arrange a complete schedule Theconstruction of a scheduling support system is necessary to create convenience,quickness and partial load reduction for the staff in charge of this work
The topic "Scheduling application for lecturers at the College of RuralDevelopment" aims to create a system to serve the officials and lecturers This systemhas solved such difficult problems such as: for teachers to register before their freetime, the system will automatically take the classes to classify the items that theinstructor has registered and used get the time of all classrooms, export the completetimetable xls file In order to improve convenience and quickness, the system will bebuilt in the form of MVC model platform and a web application written in HTML,Javascript is used together with today's outstanding libraries and frameworks, alongwith it is Google's form collecting system and uses Microsoft® Office Excel forstoring information before and after collection
About Website will be written in NodeJS to ensure the robustness, fast, stable,besides combining with MongoDB database for better data storage and processing.This is like a compatible couple for a large system This system will also ensure theprocessing functions of importing and exporting data from Excel files In addition, usethe Google template to collect and store the lessons taught by teachers during the nextsemester
Keywords: System, schedule, Web Applications, Excel, GoogleForms
Trang 12CHƯƠNG 1: TỔNG QUAN
1.1 ĐẶT VẤN ĐỀXuất phát từ thực tế đó, việc xây dựng “Ứng dụng xếp lịch thời khóa biểu chogiảng viên giảng dạy tại Khoa Phát Triển Nông Thôn” là một điều cần thiết, hệ thốngnày sẽ đảm bảo được việc sắp xếp trở nên tiện lợi hơn, với mục đích là tạo ra mộttrang web tích hợp các chức năng giúp cho việc sắp xếp và quản lý các thông tin dùng
để nhập xuất dữ liệu trở nên dễ dàng hơn, hi vọng có thể đem lại sự tiện lợi cho người
sử dụng hệ thống
1.1.2 Mục tiêu
Nghiên cứu và xây dựng hệ thống hỗ trợ xếp thời khóa biểu tự động cho giảngviên với việc ứng dụng công nghệ NodeJS dùng để viết một website với mô hình
MVC có các chức năng được thiết kế như sau:
Hệ thống tự động xử lý sau khi nhập dữ liệu:
Tổng hợp và xử lý các thông tin
Quét qua tất cả các mảng thông tin để cho ra kết quả tối ưu nhất
Website dùng cho các bộ phụ trách công việc quản lý và sắp xếp thời khóa biểu
Quản lý việc nhập dữ liệu cho hệ thống
Quản lý xuất kết quả theo yêu cầu
Quản lý thông tin phòng học
Cùng với đó là ứng dụng Microsoft Office Excel cho việc quản lý dữ liệu đãđược thu thập
Quản lý thông tin các lớp học phần
Quản lý các tiết dạy mà cán bộ giảng viên đã đăng ký
Trang 13vọng đem lại hiệu suất cao hơn trong việc vận hành cũng như những tiện lợi nhất địnhtrong quá trình phát triển hệ thống.
Ngoài ra có thể thấy được hiện nay việc sử dụng công nghệ NodeJs để viết ramột website với mô hình MVC không còn xa lạ nữa, Nodejs có thể tạo ra được cácứng dụng có tốc độ xử lý nhanh, realtime thời gian thực Ngoài ra, NodeJs cũng được
áp dụng chó các sản phẩm có lượng truy cập lớn, cần mở rộng nhanh, cần đổi mớicông nghệ, hoặc tạo ra các dự án khởi nghiệp nhanh nhất có thể
Ứng dụng các công nghệ đề xuất như trên vào việc xây dựng nhằm tạo ra một hệthống thật sự hoàn chỉnh để có thể hỗ trợ người dùng như cán bộ phụ trách việc xếpthời khóa biểu và các giảng viên có thể cảm thấy sự thoải mái và tiện lợi tối đa khithực hiện công tác quản lý và sắp xếp thời khóa biểu, hoặc là giảng viên có thể dễ dàngđăng ký thu thập các tiết dạy linh hoạt
Hệ thống được tạo là một hệ thống bao gồm một mô hình để xử lý, một websitecho người dùng và ứng dụng thu thập biểu mẫu của Google và Office Excel Là một hệthống phục vụ cho các công tác quản lý sắp xếp thời khóa biểu cho giảng viên
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Khi mà sự phát triển về các ngành học ngày càng tăng, cùng với đó là số lượngsinh viên lớn, các lớp học phần được đăng ký ở đầu mỗi học kỳ ngày càng nhiều thìkhó khăn trong việc sắp xếp thời khóa biểu giảng dạy cho các giảng viên ngày càngtăng Ở thời điểm hiện tại, để sắp xếp được một thời khóa biểu hoàn chỉnh thì cán bộphụ trách mảng công việc này phải rất vất vả về thời gian và công sức
Vì thế việc thực hiện đề tài “Ứng dụng xếp lịch thời khóa biểu cho giảng viêngiảng dạy tại Khoa Phát Triển Nông Thôn” nhằm tạo ra một ứng dụng bắt kịp xuhướng công nghệ hiện nay và đem đến sự tiện lợi cho người dùng Cùng với đó hệthống cũng đã giải quyết được một phần khó khăn mà các cán bộ quản lý giáo vụ gặpphải
Trang 141.3 PHẠM VI CỦA ĐỀ TÀI
Hệ thống sắp xếp thời khóa biểu, lịch dạy cho giảng viên, nó còn giúp cho giảngviên đăng ký các thông tin về tiết dạy của mình ở học kì tới, cán bộ phụ trách sẽ giámsát, quản lý việc thu thập sau đó tiến hành xếp thời khóa biểu giảng dạy cho các giảngviên có trong các lớp học phần Sau khi xếp xong sẽ tổng hợp lại và cho ra thời khóabiểu bao gồm các thông tin lớp học phần, mã nhóm, mã cán bộ, các tiết dạy, ngày dạytrong tuần và phòng học
Đối tượng sử dụng: cán bộ phụ trách việc xếp thời khóa biểu, giảng viên
Chức năng của hệ thống sẽ xử lý:
Thông tin các lớp học phần: mã học phần, mã nhóm, mã cán bộ giảng dạy
Thông tin các học phần: mã học phần, tên học phần, tín chỉ, số tiết dạy
Thông tin các nhóm học thuộc học phần: tên nhóm học, ký hiệu
Thông tin các cán bộ giảng dạy: mã cán bộ, tên cán bộ, phòng bộ môn, email,…
Thông tin các tiết đăng ký của cán bộ giảng dạy
Thông tin từng phòng học: tên phòng học, trạng thái phòng học
Nắm vững phương pháp tổ chức, phân tích và thiết kế cơ sở dữ lịeu
Có kiến thức cơ bản về lập trình hướng đối tượng với Java
Có kiến thức cơ bản về lập trình HTML, Javascript, NodeJS
Cách sử dụng Bootstrap 3, JQuery, AJAX, JSON
Nắm vững kiến thức cơ bản về mô hình MVC
Trang 151.3.2 Về chức năng
Mục tiêu chính của đề tài là xây dựng hệ thống bao gồm một website dùng choviệc quản lý sắp xếp thời khóa biểu, một bảng biểu mẫu của Google dùng để thu thậpthông tin tiết dạy, một file Excel dùng để lưu trữ và đưa dữ liệu đầu vào và mộtWebsite để xử lý thông tin gửi tới server, hệ thống sẽ có các chức năng tương ứng nhưsau:
Đối với website có 1 quyền người cho dùng chính, với các chức năng như sau.Chức năng:
Đăng nhập – Đăng xuất
Import/Export file dữ liệu
Tổng hợp và xử lý
Quyền quản lý:
Quản lý thông tin thông tin các lớp học phần: mã học phần, tên học phần, mãcán bộ giảng dạy, số tiết học trong một buổi,…
Quản lý thông tin các cán bộ giảng dạy: mã cán bộ, tên cán bộ,…
Quản lý thông tin các tiết đăng ký của cán bộ giảng dạy
Xuất file thời khóa biểu hoàn chỉnh sau khi sắp xếp
Hệ thống cần đạt được:
Import file Excel và xử lý các chức năng của việc sắp xếp thời khóa biểu
Export file chứa các dữ liệu sau khi việc sắp xếp hoàn thành
Website ổn định, hoạt động tốt và nhanh chóng trong việc xử lý yêu cầu
1.3.3 Về kỹ thuật
Thiết kế và tạo giao diện đơn giản, thân thiện
Tốc độ xử lý thông tin nhanh
Đảm bảo tính chính xác dữ liệu
Đảm bảo an toàn, bảo mật
Chương trình dễ mở rộng, phát triển và bảo trì
Sử dụng cơ sở dữ liệu MongoDB để quản lý cơ sở dữ liệu
Trang 16 Sử dụng ngôn ngữ lập trình web: HTML5, CSS3, Bootstrap 3, Javascript, JQuery,AJAX
Sử dụng ngôn ngữ để lập trình cho hệ thống và Website: NodeJS
Website chạy tốt trên các trình duyệt thông dụng như Google Chrome, Firefox,Safari, Microsoft Edge,
1.4 PHƯƠNG PHÁP NGHIÊN CỨU
1.4.1 Thu thập dữ liệu
Tham khảo cách thức lưu trữ dữ liệu của MongoDB cũng như NoSQL
Rút kinh nghiệm từ những hạn chế, khó khăn trong việc sắp xếp thời khóa biểu từ
đó xây dựng những dữ liệu cần thiết cho hệ thống
1.4.2 Phân tích hệ thống
Lập quy trình tiến hành xây dựng website và hệ thống xử lý
Phân tích hệ thống theo mô hình hướng đối tượng UML
Xây dựng mô hình và sơ đồ cho website
Nghiên cứu về cơ sở dữ liệu NoSQL
Nghiên cứu các tài liệu về việc quản lý thu thập dữ liệu từ Google Forms, áp dụng
và nâng cao được sự linh hoạt cho hệ thống
Trang 171.4.3 Công cụ và ngôn ngữ lập trình
Để thực hiện đề tài các công cụ và ngôn ngữ lập trình sau đây đã được sử dụng:
Bảng 1.1 Các công cụ và công nghệ được sử dụng
ST
1 Visual Studio Code Lập trình ngôn ngữ NodeJS,HTML, CSS, JavaScript,
JQuery, AJAX
3 Microsoft Excel 2013 Lưu trữ dữ liệu sau khi thu thập
Xuất file dữ liệu theo yêu cầu
4 Creately – Diagram Maker Thiết kế lưu đồ, biểu bảng
5 Robomongo và MongoDB Compass Xây dựng cơ sở dữ liệu
6
1.5 BỐ CỤC QUYỂN LUẬN VĂN
Bố cục quyển báo cáo luận văn này gồm 4 chương:
Chương 1: Tổng quan – trình bày lý do chọn đề tài, lịch sử giải quyết đề tài, phạm
vi đề tài, các phương pháp nghiên cứu khoa học
Chương 2: Cơ Sở Lý Thuyết – trình bày các cơ sở lý thuyết được áp dụng trong đề
tài như: lập trình hướng đối tượng, NodeJS, NoSQL MongoDB,…
Chương 3: Nội dung nghiên cứu – trình bày các mô hình dữ liệu cũng như các
thiết kế cài đặt của hệ thống, lưu đồ giải thuật, các sơ đồ liên quan và kiểm thử
Trang 18 Chương 4: Kết quản thực nghiệm – trình bày các chức năng cũng như giao diện đã
làm được trong hệ thống và những vấn đề vẫn chưa được giải quyết trong hệthống
Trang 19CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 PHÂN TÍCH THIẾT KẾ HỆ THỐNG THÔNG TINHệ thống thông tin là một tập hợp và kết hợp của các phần cứng, phần mềm vàcác hệ mạng truyền thông được xây dựng và sử dụng để thu thập, tạo, tái tạo, phânphối và chia sẻ các dữ liệu, thông tin và tri thức nhằm phục vụ các mục tiêu đã định ra.Vai trò của hệ thống thông tin
Thu thập thông tin: thực hiện phân tích, sàng lọc và ghi nhận những thông tincần thiết cho hệ thống quản lý
Xử lý thông tin: Thực hiện tính toán, cập nhật, lưu trữ dữ liệu
Truyền thông tin: Thực hiện truyền thông thông tin trong thông suốt, đảm bảo
về mặt thời gian, đảm bảo tính bảo mật hỗ trợ cho việc ra quyết định đúng đắn
Hệ thống thông tin quản lý là một tập hợp gồm nhiều phương tiện thông tin được
Các giai đoạn xây dựng HTTT:
Giai đoạn 1: Phân tích hiện trạng - là giai đoạn nắm bắt các thông tin liên quanđến hiện trạng hệ thống thông tin hiện thời cần tin học hoá
Giai đoạn 2: Nghiên cứu khả thi - là giai đoạn đề xuất các giải pháp khả thi
Giai đoạn 3: Thiết kế - là giai đoạn xác định cách thực hiện các giải pháp được
Trang 20 Giai đoạn 4: Phát triển – là giai đoạn chuyển các kết quả của giai đoạn thiết kếsang ứng dụng.
Giai đoạn 5: Thử nghiệm – là giai đoạn kiểm tra tính đúng đắn của hệ thốngdưới góc độ người sử dụng
Giai đoạn 6: Cài đặt – là giai đoạn bố trí các thành phần dữ liệu và xử lý của hệthống trên các thiết bị vật lý để thực thi
Giai đoạn 7: Khai thác – là giai đoạn kể từ lúc sử dụng hệ thống mới thay thếcho hoạt động của hệ thống cũ
Giai đoạn 8: Bảo trì: là giai đoạn tiếp tục phát hiện sự cố của hệ thống mớitrong quá trình sử dụng
Bên cạnh đó trong quy trình thiết kế HTTT cũng có sử dụng đến một thành phầnkhông thể thiếu đó là mô hình hoá dữ liệu
Mô hình hoá dữ liệu là cách thức biểu dữ các dữ liệu được sử dụng và tạo ra bởi
hệ thống Công việc bắt đầu là phân tích và thu thập các nhu cầu thông tin cần thiếtcho các hoạt động nghiệp vụ Cần phải đảm bảo rằng các nhu cầu thông tin sẽ được càiđặt một cách đầy đủ bên trong CSDL và phải làm cho người dùng hiểu được nội dungcủa thông tin ấy Mô hình hoá dữ liệu có thể dùng biểu diễn thông tin ở nhiều mứckhác nhau Ví dụ: mô hình dữ liệu mức quan niệm, mô hình dữ liệu mức luận lý, môhình dữ liệu mức vật lý,…
2.2 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
2.2.1 Khái niệm cơ bản
Lập trình hướng đối tượng (gọi tắt là OOP - object-oriented programming) là mộtngôn ngữ vận dụng Đó cũng là phương pháp lập trình dựa trên mô hình đối tượng đểchuyển một bài toán và những vấn đề vào ngôn ngữ lập trình máy tính
Chi tiết hơn về lập trình hướng đối tượng là:
Đối tượng được xây dựng dựng dựa trên thuộc tính và hành vi (hoặc làphương thức)
Có sự gắn kết chặt chẽ giữa các thuộc tính
Bao gói được phần dữ liệu
Chương trình được tạo bởi tập các đối tượng
Trang 212.2.2 Các đặc trưng của lập trình hướng đối tượng
Trong lập trình hướng đối tượng liên kết chặt chẽ giữa dữ liệu và thao tác (hàm)của một đối tượng Cho phép ta tập trung vào bản chất của vấn đề hơn là các chitiết bên trong vấn đề Các dữ liệu và hàm được “bao gói” trong một đối tượng Cóthể che dấu được những dữ liệu cần thiết, hoặc chỉ cho phép truy xuất thông quacác hàm
Tổng quát các đặc trưng của lập trình hướng đối tượng:
Tất cả điều là đối tượng
Mọi đối tượng bao gồm các thuộc tính và hành vi Các đối tượng này tương tácvới nhau thông qua cơ chế truyền thông điệp
Mọi đối tượng đều có bộ nhớ riêng
Mỗi đối tượng thuộc về một kiểu
Các đối tượng sẽ tạo nên một chương trình
2.2.3 Các khái niệm khác trong lập trình hướng đối tượng
Đối tượng (Object)
Là sự thể hiện hóa các giá trị cho các thuộc tính của một lớp Và lớp được dùng
để tạo ra các đối tượng
Mỗi đối tượng có hai thành phần:
Thuộc tính (property, attribute): là đặc trưng mô tả về lớp hay đối tượng đó
Hành vi (behavior, method): là các hoạt động của lớp hoặc các đặc trưng
Trang 22 Thông điệp và truyền thông điệp
Thông điệp là các hành vi và phương thức
Truyền thông điệp là việc thực hiện lời gọi các phương thức của một đối tượng,khi một đối tượng nhận được một thông điệp nó sẽ kích hoạt phương thức/hàm tươngứng
⇒Việc thực hiện phương thức của một đối tượng chỉ ảnh hưởng đến dữ liệu củachính đối tượng đó chứ không ảnh hưởng đến các đối tượng khác trong cùng lớp
2.2.4 Các tính chất của Lập trình hướng đối tượng
Sự trừu tượng hóa (Abstraction)
Là sự mô hình hóa của nhiều đối tượng Quá trình xây dựng các lớp, thuộc tính,phương thức từ một bài toán hay một vấn đề chính là quá trình trừu tượng hóa
Tính bao gói (Encapsulation)
Xác định đường truy xuất đến các đặc trưng của một lớp hay đối tượng
Phạm vi truy cập (access modifier)
Public (dùng chung): được gọi là thành phần chung, được truy cập bởi mọithành phần của một lớp khác
Private (dùng riêng): những thành phần chỉ được truy cập bởi các thành phầntrong cùng một lớp đó
Protected (thành phần bảo vệ): những thành phần chỉ được truy cập bởi cácthành phần trong cùng một lớp và các lớp con của nó
Thừa kế sử dụng “sự tương tự” (similarities) và “sự khác nhau” (differences) để
mô hình một nhóm các đối tượng có liên quan với nhau
Lớp được thừa kế: Lớp cha (superclass), lớp cơ sở (based class)
Lớp thừa kế: lớp con (subclass), lớp dẫn xuất (derived class)
Trang 23Trong thừa kế, lớp con “là” lớp cha lớp con có tất cả thuộc tính và phương⇒thức của lớp cha (“thừa kế” từ lớp cha!) Tuy nhiên, chỉ được truy xuất vào các thànhphần nào mà lớp cha cho phép
Một lớp con được tạo ra bằng cách:
Thêm vào một số thuộc tính, phương thức mới
Tái định nghĩa các phương thức của lớp cha
Tính đa hình (Polymorphism)
Có thể tái định nghĩa (nạp chồng) là thêm bổ sung và nạp đè là thay thế
Một thành phần sẽ có những ý nghĩa khác nhau trong các ngữ cảnh hoặc môitrường khác nhau
Trang 242.3 NODEJS
Nodejs là gì ?
Nodejs là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine.Nodejs sử dụng rộng bởi hàng ngàn lập trình viên trên toàn thế giới NodeJS có thểchạy trên nhiều nền tảng hệ điều hành khác nhau từ Windows cho tới Linux, MacOsnên đó cũng là một lợi thế NodeJS cung cấp các thư viện phong phú ở dạng JavascriptModule khác nhau giúp đơn giản hóa việc lập trình và giảm thời gian ở mức thấp nhất.Khi nói đến NodeJS thì phải nghĩ tới vấn đề Realtime Realtime ở đây chính là xử lýgiao tiếp từ client tới máy chủ theo thời gian thực
Các tính năng vượt trội của Nodejs
Không đồng bộ: Tất cả các API của Nodejs đều không đồng bộ (none-blocking),
nó chủ yếu dựa trên nền của Nodejs Server và chờ đợi Server trả dữ liệu về Việc dichuyển máy chủ đến các API tiếp theo sau khi gọi và cơ chế thông báo các sự kiện củaNode.js giúp máy chủ để có được một phản ứng từ các cuộc gọi API trước (Realtime).Chạy rất nhanh: Nodejs được xây dựng dựa vào nền tảng V8 Javascript Enginenên việc thực thi chương trình rất nhanh
Đơn luồng nhưng khả năng mở rộng cao: Node.js sử dụng một mô hình luồngduy nhất với sự kiện lặp cơ chế tổ chức sự kiện giúp các máy chủ để đáp ứng mộtcách không ngăn chặn và làm cho máy chủ cao khả năng mở rộng như trái ngược vớicác máy chủ truyền thống mà tạo đề hạn chế để xử lý yêu cầu Node.js sử dụng mộtchương trình đơn luồng và các chương trình tương tự có thể cung cấp dịch vụ cho một
số lượng lớn hơn nhiều so với yêu cầu máy chủ truyền thống như Apache HTTPServer
Không đệm: Nodejs không đệm bất kỳ một dữ liệu nào và các ứng dụng này chủyếu là đầu ra dữ liệu
Khi nào nên sử dụng Node.js?
Xây dựng ứng dụng Restful API (JSON)
Trang 25 Những ứng dụng đòi hỏi các giao thức kết nối khác nhau chứ không phải chỉ cóhttp.
Trang 26Một ví dụ nhỏ cài đặt với Nodejs
Tạo file app.js với nội dung:
// khai báo sử dụng module HTTP
var http = require('http');
//Khởi tạo server chạy cổng 3000
http.createServer(function (request, response) {
//thiết lập giá trị server trả về
response.write('Hello - Nguyễn Trung Kiên');
Mô hình MVC (Model - View - Controller) là một kiến trúc phần mềm hay mô
hình thiết kế được sử dụng trong kỹ thuật phần mềm Nó giúp cho các developer tách ứng dụng của họ ra 3 thành phần khác nhau Model, View và Controller Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác
Lịch sử ra đời MVC
Vào những năm 70 của thế kỷ XX, tại phòng thí nghiệm Xerox PARC ở PaloAlto Sự ra đời của giao diện đồ họa (Graphical User Interface – GUI) và lập trìnhhướng đối tượng (Object Oriented Programming – OOP) cho phép lập trình viên
làm việc với những thành phần đồ họa như những đối tượng đồ họa có thuộc tính và phương riêng của nó Không dừng lại ở đó, những nhà nghiên cứu ở Xerox PARC còn
đi xa hơn nữa khi họ cho ra đời cái gọi là kiến trúc MVC (viết tắt của Model – View – Controller)
Kiến trúc này ngày càng phát triển và hoàn thiện nhằm giải quyết các vấn đề
phát sinh cũng như các giải pháp cho quá trình phát triển phần mềm
Các thành phần trong mô hình MVC
Trong kiến trúc này, hệ thống được chia thành 3 phần tương ứng đúng với tên gọi