Thuật ngữ World Wide Web hay gọi tắc là Web không còn xa lạ với chúng ta. Cùng với sự bùng nổ của công nghệ thông tin và Internet, Web ảnh hưởng hầu hết đến tất cả các lĩnh vực trong cuộc sống của chúng ta.
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN
Tel (84-511) 736 949, Fax (84-511) 842 771 Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn
LUẬN VĂN TỐT NGHIỆP KỸ SƯ
NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH : 05115
ĐỀ TÀI : NGHIÊN CỨU XÂY DỰNG HỆ THỐNG WEBSITE QUẢN LÝ ĐÀO TẠO TÍN CHỈ CHO ĐẠI HỌC ĐÀ NẴNG
Mã số : 02T4-15 02T4-21 Ngày bảo vệ : 13/06/2007 – 15/06/2007
SINH VIÊN : Lê Văn Minh
Nguyễn Minh Quang
ĐÀ NẴNG, 05/2007
Trang 2Chúng tôi cũng xin chân thành cảm ơn anh Nguyễn Thanh Nam, chuyên viên phòng Đào tạo và Công tác Sinh viên, trường Đại học Bách khoa Đà Nẵng đã giúp đỡ, hỗ trợ số liệu và tư vấn về nghiệp vụ quản lý sinh viên cho chúng tôi trong thời gian làm đề tài
Cuối cùng, xin chân thành cảm ơn bạn bè gần xa, bạn bè trong khoa Công nghệ Thông tin đã giúp đỡ, chia sẻ kiến thức cũng như kinh nghiệm
và tài liệu cho chúng tôi trong quá trình nghiên cứu thực hiện đề tài này Một lần nữa, xin chân thành cảm ơn!
Đà Nẵng, ngày 25 tháng 05 năm 2006
Sinh viên thực hiện
Lê Văn Minh Nguyễn Minh Quang
Trang 3LỜI CAM ĐOAN Tôi xin cam đoan :
1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thạc sĩ Huỳnh Hữu Hưng
2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm
Sinh viên,
Lê Văn Minh Nguyễn Minh Quang
Trang 4TỔNG QUAN ĐỀ TÀI .1
I Bối cảnh đề tài 1
II Mục đích 2
III Hướng nghiên cứu 2
CƠ SỞ LÝ THUYẾT 4
I Lập trình Java trong môi trường Web 4
I.1 Một số khái niệm liên quan đến Web 4
I.2 Kết nối cơ sở dữ liệu 9
II Mô hình phát triển ứng dụng Web 11
II.1 Kiến trúc mô hình 1 11
II.2 Kiến trúc mô hình 2 (Model – View – Controller) 12
III Ngôn ngữ mô hình hóa thống nhất (UML) 12
III.1 Giới thiệu UML 12
III.2 UML và các giai đoạn của chu trình phát triển phần mềm 15
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 17
I Phân tích hiện trạng 17
II Phân tích chức năng của hệ thống 29
II.1 Các tác nhân (actor) 29
II.2 Usecase của admin 29
II.3 Usecase của giáo viên 34
II.4 Usecase của sinh viên 36
III Thiết kế 39
III.1 Sơ đồ lớp (class diagram) 39
III.2 Sơ đồ thành phần (component diagram) 43
III.3 Sơ đồ triển khai (deployment diagram) 44
XÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT QUẢ ĐẠT ĐƯỢC 45
I Xây dựng chương trình 45
I.1 Xây dựng dữ liệu 45
I.2 Xây dựng giao diện 56
I.3 Xây dựng gói theo mô hình MVC 58
I.4 Các giải pháp 61
II Kết quả đạt được 69
KẾT LUẬN 75
I Đánh giá kết quả 75
I.1 Về mặt lý thuyết 75
I.2 Về mặt chương trình 75
II Hướng phát triển 76
II.1 Về mặt lý thuyết 76
Trang 5DANH MỤC HÌNH VẼ
Hình 1 – Cách thức servlet làm việc 6
Hình 2 – JDBC kết nối trực tiếp với trình điều khiển 10
Hình 3 – JDBC sử dụng cầu nối ODBC 10
Hình 4 – JDBC kết nối thông qua các ứng dụng mạng trung gian 11
Hình 5 – Mô hình 1 11
Hình 6 – Mô hình 2 (MVC) 12
Hình 7 – Quy trình sinh viên đăng ký lớp học phần 26
Hình 8 – Admin Usecase 29
Hình 9 – Activity diagram của usecase admin đăng nhập 30
Hình 10 – Sequence diagram của usecase admin đăng nhập 31
Hình 11 – Activity Diagram của usecase admin upload điểm 32
Hình 12 – Sequence Diagram của usecase admin upload điểm 33
Hình 13 – Usecase của giáo viên 34
Hình 14 – Activity Diagram của usecase giáo viên xem thời khóa biểu 35
Hình 15 – Sequence Diagram của usecase giáo viên xem thời khóa biểu 35
Hình 16 – Usecase của sinh viên 36
Hình 17 – Activity Diagram của usecase sinh viên đăng ký lớp học phần 37
Hình 18 – Sequence Diagram của usecase sinh viên đăng ký lớp học phần 38
Hình 19 – Class Diagram: Sinh viên, Lớp sinh hoạt, Ngành, Khóa học 39
Hình 20 – Class Diagram: Học phần, quan hệ học phần 39
Hình 21 – Object Diagram: Học phần, quan hệ học phần 40
Hình 22 – Class Diagram: Lớp học phần, học kỳ 40
Hình 23 – Class Diagram: Khung chương trình 41
Hình 24 – Object Diagram: Khung chương trình 41
Hình 25 – Class Diagram: Sinh Viên Đăng ký 42
Hình 26 – Class Diagram: Sinh viên và điểm 42
Hình 27 – Class Diagram: Sinh viên và thời khóa biểu 43
Hình 28 – Biểu đồ thành phần của hệ thống 43
Hình 29 – Sơ đồ triển khai của ứng dụng 44
Hình 30 – Điểm của sinh viên 45
Hình 31 – Khung chương trình 46
Hình 32 – Sinh viên đăng ký 46
Hình 33 – Sinh viên, lớp sinh hoạt 47
Hình 34 – Thời khóa biểu sinh viên 47
Hình 35 – Lớp học phần theo kỳ 48
Hình 36 – Bố cục trang Web 56
Hình 37 – Header 56
Hình 38 – Footer 56
Hình 39 – Right Pane, Giáo viên Left Menu, Sinh viên Left Menu 57
Hình 40 – Giáo viên Top Menu 57
Hình 41 – Admin Top Menu 57
Hình 42 – Sinh Viên Top Menu 57
Hình 43 – Admin Left Menu 57
Trang 6Hình 44 – Nội dung gói AdminInterface 58
Hình 45 – Nội dung gói SinhVienInteface 58
Hình 46 – Nội dung gói GiaoVienInterface 59
Hình 47 – Nội dung gói BusinessObject 59
Hình 48 – Nội dung gói Bean 60
Hình 49 – Nội dung gói DataAcessObject 60
Hình 50 – Nội dung gói Default 60
Hình 51 – Đồ thị mô tả học phần và các quan hệ 61
Hình 52 – Kiểm tra xung đột thời khóa biểu bằng AND bit (không xung đột) 65
Hình 53 – Kiểm tra xung đột thời khóa biểu bằng AND bit (có xung đột) 65
Hình 54 – Cập nhật quỹ thời gian của sinh viên sau khi đăng ký 65
Hình 55 – Cập nhật quỹ thời gian của sinh viên sau khi hủy bỏ lớp học phần 66
Hình 56 – Quy trình ánh xạ dữ liệu 67
Hình 57 – Trang thiết kế khung chương trình của Admin 69
Hình 58 – Trang thiết kế thời khóa biểu của lớp học phần 69
Hình 59 – Trang web chọn file upload của Admin 70
Hình 60 – Trang Web hiện thị danh sách sau khi upload thành công 70
Hình 61 – Trang xem thời khóa biểu của giáo viên 71
Hình 62 – Trang xem lớp học phần của giáo viên 71
Hình 63 – Trang xem cây quan hệ học phần của sinh viên 72
Hình 64 – Trang xem điểm của sinh viên 72
Hình 65 – Trang xem khung chương trình của sinh viên 73
Hình 66 – Trang xem lớp học phần 73
Hình 67 – Trang liệt kê danh sách lớp học phần hiện có 74
Hình 68 – Trang xem thời khóa biểu của sinh viên 74
Trang 7DANH MỤC BẢNG BIỂU
Bảng 1 – Một số thẻ (tag) thường sử dụng trong ngôn ngữ HTML 4
Bảng 2 – Các lệnh của giao thức HTTP 5
Bảng 3 – Các tùy chọn của chỉ thị page 8
Bảng 4 – Các hành động trong JSP 9
Bảng 5 – Chi tiết từng loại khóa học 19
Bảng 6 – Điểm rèn luyện quy đổi 20
Bảng 7 – Mã của một số trường thuộc ĐH Đà Nẵng 21
Bảng 8 – Mã của các khoa 22
Bảng 9 – Mã của các ngành thuộc đại học Bách Khoa Đà Nẵng 23
Bảng 10 – Bảng tblChiTietDiemCuaSinhVien 48
Bảng 11 – Bảng tblChiTietKhungChuongTrinh 48
Bảng 12 – Bảng tblChiTietHocPhan 49
Bảng 13 – Bảng tblDiemCuaSinhVien 49
Bảng 14 – Bảng tblDonVi 49
Bảng 15 – Bảng tblGiaoVien 50
Bảng 16 – Bảng tblHocKy 51
Bảng 17 – Bảng tblHocKyHienHanh 51
Bảng 18 – Bảng tblHocPhan 51
Bảng 19 – Bảng tblKhoa 51
Bảng 20 – Bảng tblKhoaHoc 52
Bảng 21 – Bảng tblKhungChuongTrinh 52
Bảng 22 – Bảng tblLoaiDiem 52
Bảng 23 – Bảng tblLopHocPhan 52
Bảng 24 – Bảng tblLopHocPhan 53
Bảng 25 – Bảng tblNganh 53
Bảng 26 – Bảng tblNhomLopHocPhan 53
Bảng 27 – Bảng tblPhongHoc 53
Bảng 28 – Bảng tblQuanHe 53
Bảng 29 – Bảng tblQuanHeHocPhan 54
Bảng 30 – Bảng tblSinhVienDangKy 54
Bảng 31 – Bảng tblThoiKhoaBieu 54
Bảng 32 – Bảng tblThoiKhoaBieuSinhVien 54
Bảng 33 – Bảng tblSinhVien 55
Bảng 34 – Biểu diễn quan hệ theo danh sách đỉnh kề 62
Bảng 35 – Bảng quan hệ học phần 63
Bảng 36 – Nội dung một class đọc file excel 68
Trang 8DANH MỤC TỪ VIẾT TẮT
HTML Hypertext Markup Language
URL Uniform Resource Locator
HTTP Hypertext Tranfer Protocol
HTTPS HTTP over SSL
JSP Java Server Page
XML Extensible Markup Language
ODBC Open Database Connectivity
JDBC Java Database Connectivity
MVC Model – View – Controller
UML Unifield Modeling Language
WML Wireless Markup Language
API Application Programming Interface
Trang 9TỔNG QUAN ĐỀ TÀI
Giáo dục là nền tảng cho sự phát triển của cả một dân tộc, đặc biệt là giáo dục ở bậc đại học Người ta thường dùng các chỉ số kinh tế để đánh giá sự phát triển của một quốc gia, thế nhưng để đánh giá sự phát triển của cả một dân tộc thì người ta lại xét đến các khía cạnh của giáo dục đặc biệt là giáo dục đại học Trên thế giới, các quốc gia đã phát triển đều là những nước có nền giáo dục tiên tiến, với những trường đại học hàng đầu tiêu biểu là Hoa Kỳ, Nhật Bản, Anh và gần chúng ta nhất là Singapore
Nền giáo dục của nước ta đang từng bước cải cách và phát triển đại học Đà Nẵng là một trong ba trọng điểm trong việc phát triển nền giáo dục đại học của nước ta
Trong quá trình phát triển của mình, đại học Đà Nẵng đang chuyển dần từ Đào tạo theo niên chế sang Đào tạo theo tín chỉ Quản lý đào tạo tín chỉ tuy là một công việc khó khăn và phức tạp nhưng công việc này vô cùng quan trọng; quản lý tốt thì chất lượng đào tạo được nâng cao
Hiện tại, việc quản lý đào tạo tín chỉ tại Đại học Đà Nẵng đang gặp một số khó khăn, xuất phát từ nhiều nguyên nhân khác nhau: mới đầu chuyển sang đào tạo tín chỉ, hệ thống quản lý mới xây dựng, chưa thống nhất,… và việc quản lý này vẫn còn mang nhiều ảnh hưởng của hệ thống quản lý niên chế hiện có Sinh viên phải đăng ký môn học bằng tay, việc kiểm tra xung đột về thời khóa biểu của sinh viên không được thực hiện trong quá trình đăng ký Sinh viên vẫn chưa biết được quan hệ của các học phần, học phần nào nên học trước học phần nào nên học sau… Việc quản lý của nhân viên quản trị cũng gặp nhiều khó khăn như xây dựng khung chương trình, xây dựng thời khóa biểu, nhập điểm…
Bài toán đặt ra lúc này là làm sao để xây dựng được một hệ thống website quản lý đào tạo tín chỉ đáp ứng được tất cả nhu cầu cho giáo viên, sinh viên và quản trị viên Cụ thể là hệ thống website phải có những chức năng sau:
− Hệ thống cho phép giáo viên dễ dàng biết được thời khóa biểu của mình và danh sách các lớp học phần mà mình dạy, cụ thể là giáo viên sẽ dạy ở phòng nào, môn gì vào thời điểm hiện tại
− Hệ thống cho phép sinh viên dễ dàng biết được điểm của mình, số tín chỉ mà mình đã đạt được, biết được rằng nên đăng ký môn học nào trước và cuối cùng là cho phép sinh viên đăng ký một lớp học phần
− Hệ thống còn giúp quản trị viên dễ dàng cập nhật các thông tin liên quan đến đào tạo,
dễ dàng xây dựng khung chương trình và dễ dàng xây dựng thời khóa biểu cho các lớp học phần mà không lo xung đột về thời gian
Trang 10II Mục đích
Trong bối cảnh trên, chúng tôi, bằng những kiến thức đã học và sự hướng dẫn tận tình của giáo viên, chúng tôi thực hiện đề tài này nhằm mục đích nghiên cứu những vấn đề gặp phải trong việc quản lý đào tạo tín chỉ; từ đó chúng tôi đưa ra những giải pháp khắc phục và cuối cùng là cụ thể hóa các giải pháp bằng việc xây dựng một hệ thống website quản lý đào tạo tín chỉ có đầy đủ chức năng nêu trên Ngoài ra, khi xây dựng hệ thống website này chúng tôi mong muốn góp một phần nhỏ trong sự nghiệp phát triển của giáo dục Việt Nam Hệ thống xây dựng không tránh khỏi những hạn chế, chúng tôi mong nhận được ý kiến đóng góp để hoàn thiện sau này
III Hướng nghiên cứu
Đưa ra các định hướng phát triển của đề tài
III.2 Công cụ xây dựng đề tài
Công cụ nghiên cứu cơ sở lý thuyết: các tài liệu liên quan đến đào tạo tín chỉ do Đại học
Đà Nẵng phát hành, các tài liệu liên quan đến lập trình Java (giáo trình và ebook), các trang web liên quan…
Công cụ xây dựng hệ thống website: Sun Java JDK 1.5, Sun IDE NetBean 4.1, Apache Tomcat 5.5, Microsoft SQL Server 2000 Service Pack 4, Microsoft Visio 2003 beta
III.3 Dự kiến kết quả đạt được
Với những công cụ và kiến thức thu thập được, chúng tôi sẽ xây dựng hệ thống website phục vụ quản lý đào tạo tín chỉ Hệ thống website gồm các chức năng ứng với từng loại người dùng như sau
− Giáo viên xem thời khóa biểu: Sau khi đăng nhập, giáo viên xem được thời khóa biểu của mình, cụ thể là giáo viên có thể biết được trong tuần mình sẽ phải dạy những lớp nào, ở phòng nào vào những thời gian nào
− Giáo viên xem danh sách lớp học phần: Giáo viên có thể xem danh sách các lớp học phần mà mình dạy Cụ thể là có thể xem được số lượng sinh viên tối đa, số lượng sinh viên tối thiểu và số lượng sinh viên hiện tại
Trang 11Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
− Sinh viên xem khung chương trình: Sinh viên xem khung chương trình mà mình cần học Cụ thể là sinh viên có thể biết được trong một học kỳ cụ thể, mình sẽ phải học những môn nào
− Sinh viên xem học phần và quan hệ học phần: Sinh viên có thể xem danh sách các học phần và quan hệ giữa chúng Các học phần này được trình bày ở dạng cây để sinh viên dễ dàng biết được học phần nào nên học trước và học phần nào nên học sau
− Sinh viên xem điểm: Sinh viên xem điểm của mình Cụ thể là sinh viên có thể biết được điểm của từng học phần mà mình đã học, biết được số tín chỉ mình đã đạt được
và biết được mình đã hoàn tất bao nhiêu phần của quá trình học đại học tại trường
− Sinh viên đăng ký lớp học phần: Sinh viên xem danh sách các lớp học phần đang được mở trong học kỳ hiện hành để từ đó đăng ký vào một trong các lớp đó Quá trình đăng ký này sẽ được kiểm tra chặt chẽ các ràng buộc Ngoài ra, sinh viên có thể hủy
− Nhân viên quản trị cập nhật thông tin: Nhân viên quản trị dễ dàng cập nhật thông tin của đối tượng bất kỳ liên quan đến quá trình quản lý đào tạo
− Nhân viên quản trị xây dựng khung chương trình: Nhân viên quản trị dễ dàng xây dựng khung chương trình cho từng khóa học của từng ngành
− Nhân viên quản trị xây dựng thời khóa biểu: Nhân viên quản trị dễ dàng xây dựng thời khóa biểu cho từng lớp học phần mà không lo ngại xung đột thời khóa biểu Với kết quả dự kiến đạt được của chương trình, luận văn được tổ chức thành các chương
cụ thể như sau:
Chương 1 Cơ sở lý thuyết: Giới thiệu tổng quan lý thuyết và công cụ thực hiện để tài Trong chương này, chúng tôi trình bày lý thuyết xây dựng một hệ thống website bằng ngôn ngữ JSP theo mô hình Model View Controller
Chương 2 Phân tích thiết kế hệ thống: Trong chương này, chúng tôi trình bày về phân tích hiện trạng, phân tích hệ thống và thiết kế hệ thống
Chương 3 Xây dựng chương trình và kết quả đạt được: Trong chương này, chúng tôi trình bày các bước xây dựng chương trình và các kết quả đạt được
Trang 12CƠ SỞ LÝ THUYẾT
I.1 Một số khái niệm liên quan đến Web
Thuật ngữ World Wide Web hay gọi tắc là Web không còn xa lạ với chúng ta Cùng với sự bùng nổ của công nghệ thông tin và Internet, Web ảnh hưởng hầu hết đến tất cả các lĩnh vực trong cuộc sống của chúng ta Đề tài này được xây dựng trên nền Web chính vì vậy trong phần này chúng tôi chỉ đưa ra một số định nghĩa liên quan đến Web được sử dụng trong đề tài thay vì làm rõ từng yếu tố của công nghệ này
I.1.1 Ngôn ngữ HTML (Hypertext Markup Language)
Cơ sở để xây dựng và phát triển hệ thống website trên Internet là ngôn ngữ HTML Trang Web là trang thông tin, chứa dữ liệu văn bản, âm thanh, hình ảnh kể cả khả năng tương tác dữ liệu… luôn được cập nhật liên tục thông qua thông qua hệ thống mang toàn cầu Internet HTML đơn giản chỉ là các file thuần văn bản (text) sử dụng các thẻ (tag) yêu cầu thể hiện dữ liệu đặt giữa các thẻ theo một định dạng nào đó Mỗi thẻ sẽ mang một định dạng khác nhau
và được nhận biết bởi trình duyệt (browser) thông qua tên thẻ Chức năng cụ thể của từng thẻ được thể hiện qua bản sau
Tên thẻ Chức năng
<html> </html> Cặp thẻ này quy ước mở đầu và kết thúc cho tài liệu HTML Nội dung của
HTML được đặt giữa hai thẻ này
<b>, <i> Thẻ định dạng in đậm và in nghiêng của một chuỗi văn bản trong tài liệu
<h1>, <h2>, <h3> Thẻ định dạng in cỡ chữ cho tiêu đề
<body> </body> Thẻ định dạng phần thân của tài liệu HTML
<table> </table> Thẻ định dạng một bảng trong tài liệu HTML
<tr> </tr> Thẻ định dạng một hàng trong bảng của tài liệu HTML
<td> </td> Thẻ định dạng một ô trong một bảng của tài liệu HTML
Trang 13Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
I.1.2 Trình duyệt (browser)
Trình duyệt là một chương trình ở phía Client dùng để hiển thị tài liệu HTML Để có được tài liệu HTML, trình duyệt sẽ liên hệ với trình chủ Web Server để lấy tài liệu qua một địa chỉ Web là Url Khi nhận được tài liệu, trình duyệt sẽ đọc, phân tích và hiển thị tài liệu theo các định dạng nhất định như font chữ, màu sắc, hình ảnh, âm thanh thậm chí còn thực hiện một số lệnh tương tác như JavaScript, VBScript Người sử dụng có thể nhập dữ liệu và trình duyệt thông qua các thành phần điều khiển của form như textBox, textArea, checkBox, listBox,
và yêu cầu trình duyệt gửi về máy chủ xử lý thông qua thao tác được gọi là submit Với đề tài này có thể chạy bằng bất cứ trình duyệt nào, tuy nhiên, chúng ta nên sử dụng Ms Internet Explorer phiên bản 4.0 trở về sau để nội dung được hiển thị chính xác hơn
I.1.3 Địa chỉ định vị tài nguyên Url (Uniform Resource Locator)
Url (Uniform Resource Locator) là địa chỉ định vị tài nguyên thống nhất, địa chỉ này trỏ tới
vị trí tài nguyên trên máy chủ Địa chỉ này gồm 4 phần: phần giao thức (protocol), phần địa chỉ máy chủ (address), số hiệu cổng của dịch vụ và phần đường dẫn tương đối đến nơi chứa tài nguyên
I.1.4 Giao thức HTTP (Hypertext Tranfer Protocol)
Giao thức HTTP (Hypertext Tranfer Protocol) là cách thức để trình duyệt kết nối với máy chủ server HTTP là một giao thức phi kết nối, giao thức này cho phép trình duyệt ở phía máy khách (client) gửi một yêu cầu (request) đến trình server (web server) ở máy chủ Máy chủ sẽ nhận được lệnh và trả về tài liệu tương ứng Tập lệnh của giao thức này rất đơn giản, gồm các lệnh sau:
I.1.5 Một số khái niệm về Servlet và JSP
Với HTTP và HTML, chúng ta có thể tạo trang web một cách dễ dàng, tuy nhiên, muốn xây dựng một hệ thống website tác nghiệp và các trang web động có khả năng tương tác cơ sở
dữ liệu chúng ta phải sử dụng công nghệ lập trình web ở phía máy chủ Ở đây, chúng tôi trình bày công nghệ lập trình web của Java do Sun Microsystem Co cung cấp
Trang 14I.1.6 Web Server
Web Server là một máy tính có cài phần mềm Web server, nó nhận các yêu cầu (request) HTTP từ phía client và trả lời phục vụ các yêu cầu đó bằng dữ liệu tương ứng
Cách thức servlet làm việc: Một Servlet sẽ được nạp bởi servlet container khi lần đầu tiên servlet được yêu cầu Servlet sẽ xử lý các yêu cầu người sử dụng và trả về hồi đáp đến servlet container Sau đó servlet vẫn ở trong bộ nhớ để đợi các yêu cầu khác nó sẽ được unload khi servlet container thấy bộ nhớ còn ít
Hình 1 – Cách thức servlet làm việcChu trình sống Servlet:
Trang 15Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
− Nạp Servlet: Một Servlet có thể nạp vào bộ nhớ ở 3 thời điểm khác nhau: khi server khởi động, khi người quản trị yêu cầu hoặc khi trình duyệt triệu gọi Servlet từ máy khách Để nạp Servlet, trình chủ Web server cần phải biết tên lớp của Servlet Thông thường tên lớp của Servlet (tên file class) cũng là tên mà trình duyệt dùng triệu gọi Servlet khi bạn thực hiện quá trình đăng ký và ánh xạ Tuy nhiên, bạn cũng có thể ánh
xạ đổi tên Servlet khác với tên file *.class của nó thậm chí đổi tên tiếp đầu ngữ dùng
để triệu gọi Servlet Khi có một yêu cầu triệu gọi Servlet, trình chủ Web Server sẽ xem Servlet đã nạp vào bộ nhớ hay chưa, nếu chưa nó sẽ nạp Servlet vào bộ nhớ Một khi Servlet được nạp, Web Server sẽ tiến đến giai đoạn khởi tạo Servlet
− Khởi tạo Servlet: Trình chủ Web Server khởi tạo Servlet bằng cách gọi đến phương thức init() mà Servlet cài đặt Phương thức này được gọi một lần duy nhất
− Thực thi Servlet: Khi trình duyệt gọi hoặc các trang JSP triệu gọi Servlet thông qua địa chỉ URL, trình chủ Web Server sẽ chính thức gọi Servlet thực thi thông qua các phương thức như doGet(), doPost() hoặc service() Sau khi các phương thức này thực thi xong, Servlet vẫn giữ lại trong bộ nhớ để phục vụ cho lần triệu gọi tiếp theo Điều này giúp cho Servlet thực thi nhanh hơn
− Dọn dẹp Servlet: Servlet không giữ lại trong bộ nhớ vĩnh viễn, sẽ đến lúc cần loại bỏ Servlet ra khỏi bộ nhớ Trước khi chấm dứt, Web Server sẽ triệu gọi đến phương thức destroy() của Servlet
I.1.8 Java Server Page (JSP)
Java Server Page còn được biết đến với một cái tên khác là Java Scripting Preprocessor
- tạm dịch là "Bộ xử lý văn lệnh Java tiền trình" - là một công nghệ Java cho phép các nhà phát triển tạo nội dung HTML, XML hay một số định dạng khác của trang web một cách năng động, trong khi hồi âm yêu cầu của trình khách Công nghệ này cho phép người ta nhúng mã Java và một số hành động xử lý đã được định trước (pre-defined actions) vào trong nội dung tĩnh của trang
Cú pháp của JSP cho thêm các thẻ XML mới, gọi là JSP actions - hành động JSP Những
"hành động JSP" này được dùng để khởi động chức năng sẵn có, là những chức năng đã được xây dựng trước Cộng thêm vào đó, công nghệ còn cho phép chúng ta tạo ra các thư viện thẻ JSP (JSP tag libraries), là những cái đóng vai trò vào việc mở rộng các thẻ HTML hay XML tiêu chuẩn Thư viện thẻ (Tag libraries) là phương pháp mở rộng khả năng của một máy chủ web trong khi những mở rộng đó không phụ thuộc vào hệ nền (về cả cấu trúc máy cũng như
hệ điều hành được dùng)
Trước khi hiển thị ra trình duyệt, tập tin JSP phải được biên dịch thành Servlet, dùng bộ biên dịch JSP (JSP compiler) Bộ biên dịch JSP có thể tạo servlet thành mã nguồn Java trước, rồi biên dịch mã nguồn ra tập tin class dùng bộ biên dịch Java, hoặc có thể trực tiếp tạo mã byte code cho servlet từ trang JSP
Một trang JSP có thể được phân thành từng phần nhỏ như sau:
− dữ liệu tĩnh, như HTML
− các chỉ thị JSP (JSP directives) như chỉ thị include: <jsp:include>
Trang 16− các phần tử kịch bản JSP (scripting elements) và các biến (variables), ví dụ:
− page – Có nhiều tùy chọn với chỉ thị page
contentType Chỉ định nội dụng của tập tin được khởi tạo Chúng ta nên dùng chỉ
phối này nếu chúng ta không dùng HTML, hoặc bộ ký tự (character set) được dùng không phải là bộ ký tự mặc định
errorPage Chỉ định rằng trang web sẽ được hiển thị nếu có một ngoại lệ
(exception) xảy ra trong quá trình xử lý yêu cầu HTTP isErrorPage Nếu định giá trị là true thì nó nói rằng trang này là trang báo lỗi
(error page)
isThreadSafe Chỉ định cho biết servlet tạo ra có tính an toàn về luồng xử lý
(threadsafe) hay không
Bảng 3 – Các tùy chọn của chỉ thị page
− Taglib – Chỉ thị taglib thông báo rằng chúng ta sẽ sử dụng một thư viện thẻ JSP (JSP tag library) Chỉ thị này đòi hỏi một tiền tố (prefix) (tương tự như namespace trong C++), cũng như kết nối URI của phần mô tả thư viện thẻ (URI for the tag library description) phải được xác định
Các đối tượng chuẩn:
− out (xuất) – JSPWriter sử dụng nó để ghi dữ liệu vào luồng dữ liệu hồi âm (response stream)
− page (trang) – Bản thân servlet
− pageContext (ngữ cảnh của trang) – Một PageContext là một thực thể có chứa dữ liệu liên kết với toàn bộ trang web Một trang HTML nào đấy có thể được truyền qua nhiều trang JSP
− request (yêu cầu) – Đối tượng yêu cầu HTTP
− response (hồi âm) – Đối tượng hồi âm HTTP
− session (phiên giao dịch) – Đối tượng phiên giao dịch HTTP Cái này có thể được
Trang 17Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
Các thẻ hành động của JSP:
Hành động Giải thích
servlet tạm thời trao nhiệm vụ đặt yêu cầu và hồi âm cho trang JavaServer (JavaServer Page) chỉ định nào đấy Quyền khống chế sẽ được hoàn lại cho trang JSP hiện tại, một khi trang JSP kia hoàn thành nhiệm vụ của nó Dùng phương pháp này, mã trang JSP được chia sẻ với nhiều trang JSP, thay vì phải sao mã
khối jsp:params Nó được dùng để xác định một thông số, và thông số này sẽ được cộng thêm vào chuỗi các thông số hiện có của yêu cầu
trang JSP khác, hoặc cho một servlet khác Quyền khống chế sẽ được hoàn trả lại cho trang JSP hiện tại
dùng những thẻ khác để nhúng một chương trình nhỏ (applet) Hành động này tạo nên thẻ thuộc trình duyệt web cần thiết để bao gồm applet
jsp:fallback Phần nội dung sẽ được hiển thị nếu trình duyệt web không hỗ trợ
applets
jsp:getProperty Lấy thuộc tính của một JavaBean chỉ định
jsp:setProperty Thiết lập thuộc tính của một JavaBean chỉ định
jsp:useBean Kiến tạo hoặc dùng lại một JavaBean, là cái có thể dùng được trong
trang JSP
I.2 Kết nối cơ sở dữ liệu
I.2.1 Kết nối trực tiếp bằng trình điều khiển cơ sở dữ liệu
JDBC kết nối trực tiếp với các trình điều khiển CSDL Khi Java phát triển, các nhà cung cấp hỗ trợ trình điều khiển JDBC kết nối trực tiếp với các trình điều khiển đặc thù của mỗi hệ
mà không cần phải qua trung gian ODBC của Window nữa Các kết nối này nhanh và hiệu quả hơn kiểu JDBC-ODBC Tuy nhiên, bạn phải mua các trình điều khiển CSDL đặc thù do những nhà phát triển cơ sở dữ liệu cung cấp
Trang 18Hình 2 – JDBC kết nối trực tiếp với trình điều khiển
I.2.2 Kết nối thông qua cầu nối ODBC (Open Database Connectivity)
ODBC (Open Source Connectivity) là cách kết nối tổng quát nhất đến mọi hệ cơ sở dữ liệu thông qua trình quản lý ODBC của Windows Mỗi hệ cơ sở dữ liệu sẽ cung cấp một trình điều khiển có khả năng đọc hiểu được cơ sở dữ liệu của chúng Trình điều khiển này sẽ được đăng ký với bộ quản lý ODBC Tất cả các lệnh truy xuất cơ sở dữ liệu sau đó được thực thi bằng lệnh SQL Java cho bạn sử dụng JDBC để gọi ODBC và bằng cách này bạn có thể kiểm soát nhiều hệ quản trị cơ sở dữ liệu khác nhau Quan hệ cầu nối JDBC-ODBC được thể hiện
ở hình dưới Sun cung cấp sẵn thư viện JDBC-ODBC kèm theo bộ JDK và bạn có thể dùng miễn phí
CSDL
Java Application, Applet, Servlet
JDBC Driver
Database Driver ODBC
I.2.3 Kết nối thông qua ứng dụng mạng trung gian
Ngày nay các ứng dụng đều gắn liền với mạng Internet Theo mô hình lập trình phân tán, ứng dụng mạng trung gian (middle-ware) trên một máy chủ sẽ chịu trách nhiệm kết nối CSDL Nhiệm vụ của trình khách là sử dụng những trình điều khiển JDBC gọn nhẹ, có khả năng giao tiếp với ứng dụng trung gian qua Internet để truy vấn dữ liệu
Trang 19Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
II Mô hình phát triển ứng dụng Web
Khi giới thiệu công nghệ JSP, Sun cũng đưa ra những cách để làm việc với nó và định nghĩa 2 mô hình để xây dựng ứng dụng Web dựa trên JSP Hai mô hình đó được biết như là
Mô hình 1 và Mô hình 2 và chúng biểu diễn những cách tiếp cận khác nhau để xây dựng ứng dụng Web dựa trên JSP Mô hình 1 đơn giản hơn Mô hình 2 và là giải pháp chính để xây dựng ứng dụng Web khi công nghệ JSP được giới thiệu lần đầu tiên Tuy nhiên, qua thời gian
Mô hình 2 được chấp nhận là giải pháp tốt nhất để xây dựng ứng dụng Web dựa trên JSP
II.1 Kiến trúc mô hình 1
Hình 5 – Mô hình 1
Cấu trúc Mô hình 1 rất đơn giản, một request tạo bởi JSP hoặc Servlet và sau đó JSP hoặc Servlet kia sẽ xử lý request, kiểm tra tính hợp lệ dữ liệu, xử lý các nguyên tắc tác nghiệp và tạo ra một response Mặc dù đơn giản, nhưng Mô hình 1 không thích hợp để phát triển những ứng dụng lớn bởi vì chắc hẳn một số lượng lớn các hàm sẽ đươc nhân bản trong mỗi trang JSP Không những thế, Mô hình 1 còn không cần thiết phải có sự liên kết giữa bussiness logic
và presentation logic của ứng dụng Khi kết hợp business logic với presentation logic làm cho
nó khó có thể đưa vào một “view” mới hay một điểm truy cập mới trong ứng dụng Ví dụ như
Trang 20trong một giao diện HTML, bạn muốn thêm vào một giao diện mới như Wireless Markup Language (WML) cho truy cập không dây thì việc đó là rất khó
II.2 Kiến trúc mô hình 2 (Model – View – Controller)
Mô hình 2 hay mô hình Model – View – Controller (MVC) đã giải quyết nhiều vấn đề cố hữu của Mô hình 1 Trong mô hình MVC Controller là một Servlet trung tâm nhận tất cả các request từ phía client Controller sẽ phân loại và xử lý các request Khi xử lý các request, tầng Model bên dưới sẽ cung cấp các phương thức cho Controller Bên trong Model có 2 tầng tách biệt là Business Logic và Data Manipulation Business Logic đặc tả tất cả các đối tượng tương tác trong toàn bộ hệ thống còn Data Manipulation đặc tả tất cả các luật và phương thức
xử lý của các đối tượng trên Sau khi xử lý, Controller sẽ trả dữ liệu về cho client thông qua đối tượng response, sau đó đối tượng này được trình diễn ở tầng View View bao gồm tất cả các JSP thực hiện việc trình diễn dữ liệu và các form để nhận các request tiếp theo Trong mô hình này business logic với presentation logic được tách biệt lẫn nhau, sự tách biệt này cung cấp nhiều loại giao diện khác nhau cho ứng dụng, có thể là Web, wireless, hoặc GUI (Swing) Thêm vào đó, sự tách biệt này cũng cho phép chúng ta sử dụng lại mã lệnh một cách dễ dàng
III Ngôn ngữ mô hình hóa thống nhất (UML)
III.1 Giới thiệu UML
III.1.1 Mô hình hóa hệ thống phần mềm
Mục tiêu của giai đoạn phân tích hệ thống là sản xuất ra một mô hình tổng thể của hệ thống cần xây dựng Mô hình này cần phải được trình bày theo hướng nhìn (View) của khách hàng hay người sử dụng và làm sao để họ hiểu được Mô hình này cũng có thể được sử dụng
để xác định các yêu cầu của người dùng đối với hệ thống và qua đó giúp chúng ta đánh giá tính khả thi của dự án
Tầm quan trọng của mô hình đã được lĩnh hội một cách thấu đáo trong hầu như tất cả các ngành khoa học kỹ thuật từ nhiều thế kỷ nay Bất kỳ ở đâu, khi muốn xây dựng một vật thể nào đó, đầu tiên người ta đã tạo nên các bản vẽ để quyết định cả ngoại hình lẫn phương thức
Trang 21Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
trong một số giai đoạn nhất định, dù đó là giai đoạn thiết kế hay giai đoạn xây dựng hoặc chỉ
là một kế hoạch Nhà thiết kế cần phải tạo ra các mô hình mô tả tất cả các khía cạnh khác nhau của sản phẩm Ngoài ra, một mô hình có thể được chia thành nhiều hướng nhìn, mỗi hướng nhìn trong số chúng sẽ mô tả một khía cạnh riêng biệt của sản phẩm hay hệ thống cần được xây dựng Một mô hình cũng có thể được xây dựng trong nhiều giai đoạn và ở mỗi giai đoạn, mô hình sẽ được bổ sung thêm một số chi tiết nhất định
Mô hình thường được mô tả trong ngôn ngữ trực quan, điều đó có nghĩa là đa phần các thông tin được thể hiện bằng các ký hiệu đồ họa và các kết nối giữa chúng, chỉ khi cần thiết một số thông tin mới được biểu diễn ở dạng văn bản; Theo đúng như câu ngạn ngữ "Một bức tranh nói nhiều hơn cả ngàn từ" Tạo mô hình cho các hệ thống phần mềm trước khi thực sự xây dựng nên chúng, đã trở thành một chuẩn mực trong việc phát triển phần mềm và được chấp nhận trong cộng đồng làm phần mềm giống như trong bất kỳ một ngành khoa học kỹ thuật nào khác Việc biểu diễn mô hình phải thõa mãn các yếu tố sau:
− Chính xác (accurate): Mô tả đúng hệ thống cần xây dựng
− Đồng nhất (consistent): Các view khác nhau không được mâu thuẩn với nhau
− Có thể hiểu được (understandable): Cho những người xây dựng lẫn sử dụng
− Dễ thay đổi (changeable)
− Dễ dàng liên lạc với các mô hình khác
Có thể nói thêm rằng mô hình là một sự đơn giản hoá hiện thực Mô hình được xây dựng nên để chúng ta dễ dàng hiểu và hiểu tốt hơn hệ thống cần xây dựng Tạo mô hình sẽ giúp cho chúng ta hiểu thấu đáo một hệ thống phức tạp trong sự toàn thể của nó
Nói tóm lại, mô hình hóa một hệ thống nhằm mục đích:
− Hình dung một hệ thống theo thực tế hay theo mong muốn của chúng ta
− Chỉ rõ cấu trúc hoặc ứng xử của hệ thống
− Tạo một khuôn mẫu hướng dẫn nhà phát triển trong suốt quá trình xây dựng hệ thống
− Ghi lại các quyết định của nhà phát triển để sử dụng sau này
III.1.2 Trước khi UML ra đời
Đầu những năm 1980, ngành công nghệ phần mềm chỉ có duy nhất một ngôn ngữ hướng đối tượng là Simula Sang nửa sau của thập kỷ 1980, các ngôn ngữ hướng đối tượng như Smalltalk và C++ xuất hiện Cùng với chúng, nảy sinh nhu cầu mô hình hoá các hệ thống phần mềm theo hướng đối tượng Và một vài trong số những ngôn ngữ mô hình hoá xuất hiện những năm đầu thập kỷ 90 được nhiều người dùng là:
− Grady Booch’s Booch Modeling Methodology
− James Rambaugh’s Object Modeling Technique – OMT
− Ivar Jacobson’s OOSE Methodology
Trang 22− Hewlett- Packard’s Fusion
− Coad and Yordon’s OOA and OOD
Mỗi phương pháp luận và ngôn ngữ trên đều có hệ thống ký hiệu riêng, phương pháp xử lý riêng và công cụ hỗ trợ riêng, khiến xảy ra cuộc tranh luận phương pháp nào là tốt nhất Đây
là cuộc tranh luận khó có câu trả lời, bởi tất cả các phương pháp trên đều có những điểm mạnh và điểm yếu riêng Vì thế, các nhà phát triển phần mềm nhiều kinh nghiệm thường sử dụng phối hợp các điểm mạnh của mỗi phương pháp cho ứng dụng của mình Trong thực tế,
sự khác biệt giữa các phương pháp đó hầu như không đáng kể và theo cùng tiến trình thời gian, tất cả những phương pháp trên đã tiệm cận lại và bổ sung lẫn cho nhau Chính hiện thực này đã được những người tiên phong trong lĩnh vực mô hình hoá hướng đối tượng nhận ra và
họ quyết định ngồi lại cùng nhau để tích hợp những điểm mạnh của mỗi phương pháp và đưa
ra một mô hình thống nhất cho lĩnh vực công nghệ phần mềm
III.1.3 Sự ra đời của UML
Trong bối cảnh trên, người ta nhận thấy cần thiết phải cung cấp một phương pháp tiệm cận được chuẩn hoá và thống nhất cho việc mô hình hoá hướng đối tượng Yêu cầu cụ thể là đưa
ra một tập hợp chuẩn hoá các ký hiệu (Notation) và các biểu đồ (Diagram) để nắm bắt các quyết định về mặt thiết kế một cách rõ ràng, rành mạch Đã có ba công trình tiên phong nhắm tới mục tiêu đó, chúng được thực hiện dưới sự lãnh đạo của James Rumbaugh, Grady Booch
và Ivar Jacobson Chính những cố gắng này dẫn đến kết quả là xây dựng được một Ngôn Ngữ
Mô Hình Hoá Thống Nhất (Unifield Modeling Language – UML)
UML là một ngôn ngữ mô hình hoá thống nhất có phần chính bao gồm những ký hiệu hình học, được các phương pháp hướng đối tượng sử dụng để thể hiện và miêu tả các thiết kế của một hệ thống Nó là một ngôn ngữ để đặc tả, trực quan hoá, xây dựng và làm sưu liệu cho nhiều khía cạnh khác nhau của một hệ thống có nồng độ phần mềm cao UML có thể được sử dụng làm công cụ giao tiếp giữa người dùng, nhà phân tích, nhà thiết kế và nhà phát triển phần mềm
Trong quá trình phát triển có nhiều công ty đã hỗ trợ và khuyến khích phát triển UML có thể kể tới như : Hewlett Packard, Microsoft, Oracle, IBM, Unisys
III.1.4 UML (Unifield Modeling Language)
Ngôn ngữ mô hình hóa thống nhất (Unifield Modeling Language – UML) là một ngôn ngữ
để biểu diễn mô hình theo hướng đối tượng được xây dựng bởi ba tác giả trên với chủ đích là:
− Mô hình hoá các hệ thống sử dụng các khái niệm hướng đối tượng
− Thiết lập một kết nối từ nhận thức của con người đến các sự kiện cần mô hình hoá
− Giải quyết vấn đề về mức độ thừa kế trong các hệ thống phức tạp, có nhiều ràng buộc khác nhau
− Tạo một ngôn ngữ mô hình hoá có thể sử dụng được bởi người và máy
Trang 23Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
III.2 UML và các giai đoạn của chu trình phát triển phần mềm
III.2.1 Giai đoạn nghiên cứu sơ bộ
UML đưa ra khái niệm Use Case để nắm bắt các yêu cầu của khách hàng (người sử dụng) UML sử dụng biểu đồ Use case (Use Case Diagram) để nêu bật mối quan hệ cũng như sự giao tiếp với hệ thống
Qua phương pháp mô hình hóa Use case, các tác nhân (Actor) bên ngoài quan tâm đến hệ thống sẽ được mô hình hóa song song với chức năng mà họ đòi hỏi từ phía hệ thống (tức là Use case) Các tác nhân và các Use case được mô hình hóa cùng các mối quan hệ và được miêu tả trong biểu đồ Use case của UML Mỗi một Use case được mô tả trong tài liệu, nó sẽ đặc tả các yêu cầu của khách hàng: Anh ta hay chị ta chờ đợi điều gì ở phía hệ thống mà không hề để ý đến việc chức năng này sẽ được thực thi ra sao
III.2.2 Giai đoạn phân tích
Giai đoạn phân tích quan tâm đến quá trình trừu tượng hóa đầu tiên (các lớp và các đối tượng) cũng như cơ chế hiện hữu trong phạm vi vấn đề Sau khi nhà phân tích đã nhận biết được các lớp thành phần của mô hình cũng như mối quan hệ giữa chúng với nhau, các lớp cùng các mối quan hệ đó sẽ được miêu tả bằng công cụ biểu đồ lớp (class diagram) của UML
Sự cộng tác giữa các lớp nhằm thực hiện các Use case cũng sẽ được miêu tả nhờ vào các mô hình động (dynamic models) của UML Trong giai đoạn phân tích, chỉ duy nhất các lớp có tồn tại trong phạm vi vấn đề (các khái niệm đời thực) là được mô hình hóa Các lớp kỹ thuật định nghĩa chi tiết cũng như giải pháp trong hệ thống phần mềm, ví dụ như các lớp cho giao diện người dùng, cho ngân hàng dữ liệu, cho sự giao tiếp, trùng hợp, v.v , chưa phải là mối quan tâm của giai đoạn này
III.2.3 Giai đoạn thiết kế
Trong giai đoạn này, kết quả của giai đoạn phân tích sẽ được mở rộng thành một giải pháp
kỹ thuật Các lớp mới sẽ được bổ sung để tạo thành một hạ tầng cơ sở kỹ thuật: Giao diện người dùng, các chức năng để lưu trữ các đối tượng trong ngân hàng dữ liệu, giao tiếp với các
hệ thống khác, giao diện với các thiết bị ngoại vi và các máy móc khác trong hệ thống, Các lớp thuộc phạm vi vấn đề có từ giai đoạn phân tích sẽ được "nhúng" vào hạ tầng cơ sở kỹ thuật này, tạo ra khả năng thay đổi trong cả hai phương diện: Phạm vi vấn đề và hạ tầng cơ
sở Giai đoạn thiết kế sẽ đưa ra kết quả là bảng đặc tả chi tiết cho giai đoạn xây dựng hệ thống
III.2.4 Giai đoạn xây dựng
Trong giai đoạn xây dựng (giai đoạn lập trình), các lớp của giai đoạn thiết kế sẽ được biến thành những dòng code cụ thể trong một ngôn ngữ lập trình hướng đối tượng cụ thể (không nên dùng một ngôn ngữ lập trình hướng chức năng!) Phụ thuộc vào khả năng của ngôn ngữ được sử dụng, đây có thể là một công việc khó khăn hay dễ dàng Khi tạo ra các mô hình phân tích và thiết kế trong UML, tốt nhất nên cố gắng né tránh việc ngay lập tức biến đổi các
mô hình này thành các dòng code Trong những giai đoạn trước, mô hình được sử dụng để dễ hiểu, dễ giao tiếp và tạo nên cấu trúc của hệ thống; vì vậy, vội vàng đưa ra những kết luận về
Trang 24việc viết code có thể sẽ thành một trở ngại cho việc tạo ra các mô hình chính xác và đơn giản Giai đoạn xây dựng là một giai đoạn riêng biệt, nơi các mô hình được chuyển thành code
III.2.5 Thử nghiệm
Một hệ thống phần mềm thường được thử nghiệm qua nhiều giai đoạn và với nhiều nhóm thử nghiệm khác nhau Các nhóm sử dụng nhiều loại biểu đồ UML khác nhau làm nền tảng cho công việc của mình: Thử nghiệm đơn vị sử dụng biểu đồ lớp (class diagram) và đặc tả lớp, thử nghiệm tích hợp thường sử dụng biểu đồ thành phần (component diagram) và biểu đồ cộng tác (collaboration diagram), và giai đoạn thử nghiệm hệ thống sử dụng biểu đồ Use case (use case diagram) để đảm bảo hệ thống có phương thức hoạt động đúng như đã được định nghĩa từ ban đầu trong các biểu đồ này
III.2.6 Các thành phần của ngôn ngữ UML
Ngôn ngữ UML bao gồm một loạt các phần tử đồ họa (graphic element) có thể được kết hợp với nhau để tạo ra các biểu đồ Bởi đây là một ngôn ngữ, nên UML cũng có các nguyên tắc để kết hợp các phần tử đó
Một số những thành phần chủ yếu của ngôn ngữ UML:
− Hướng nhìn (view): Hướng nhìn chỉ ra những khía cạnh khác nhau của hệ thống cần phải được mô hình hóa Một hướng nhìn không phải là một bản vẽ, mà là một sự trừu tượng hóa bao gồm một loạt các biểu đồ khác nhau Chỉ qua việc định nghĩa của một loạt các hướng nhìn khác nhau, mỗi hướng nhìn chỉ ra một khía cạnh riêng biệt của hệ thống, người ta mới có thể tạo dựng nên một bức tranh hoàn thiện về hệ thống Cũng chính các hướng nhìn này nối kết ngôn ngữ mô hình hóa với quy trình được chọn cho giai đoạn phát triển
− Biểu đồ (diagram): Biểu đồ là các hình vẽ miêu tả nội dung trong một hướng nhìn UML có tất cả 9 loại biểu đồ khác nhau được sử dụng trong những sự kết hợp khác nhau để cung cấp tất cả các hướng nhìn của một hệ thống
− Phần tử mô hình hóa (model element): Các khái niệm được sử dụng trong các biểu
đồ được gọi là các phần tử mô hình, thể hiện các khái niệm hướng đối tượng quen thuộc Ví dụ như lớp, đối tượng, thông điệp cũng như các quan hệ giữa các khái niệm này, bao gồm cả liên kết, phụ thuộc, khái quát hóa Một phần tử mô hình thường được
sử dụng trong nhiều biểu đồ khác nhau, nhưng nó luôn luôn chỉ có một ý nghĩa và một
kí hiệu
− Cơ chế chung: Cơ chế chung cung cấp thêm những lời nhận xét, bổ sung các thông tin cũng như các quy tắc ngữ pháp chung về một phần tử mô hình; chúng còn cung cấp thêm các cơ chế để có thể mở rộng ngôn ngữ UML cho phù hợp với một phương pháp xác định (một quy trình, một tổ chức hoặc một người dùng)
Trang 25Ðể tiếp thu được một tiết học lý thuyết trên lớp sinh viên cần khoảng 2 - 3 tiết chuẩn bị, một tiết học thực hành hoặc bài tập cần 1 - 2 tiết chuẩn bị Một tiết học trên lớp được quy định là 45 phút
Kiến thức trong mỗi học phần được thiết kế kiểu môđun theo từng môn học hoặc được kết cấu dưới dạng tổ hợp từ nhiều môn học thành một môn học mới Mỗi học phần phải được ký hiệu bằng một mã riêng do trường qui định
I.2.2 Các loại học phần
− Học phần bắt buộc là học phần chứa đựng những nội dung chính yếu của ngành hay nhóm ngành đào tạo, mà tất cả mọi sinh viên thuộc ngành hay nhóm ngành đào tạo đó đều phải theo học và tích luỹ được
Trang 26− Học phần tự chọn bắt buộc là học phần chứa đựng những mảng nội dung chính yếu của ngành hay nhóm ngành đào tạo, mà sinh viên bắt buộc phải chọn một số lượng xác định trong số nhiều học phần tương đương được quy định cho ngành đó
− Học phần tự chọn tự do là học phần sinh viên có thể tự do đăng ký học hay không tùy theo nguyện vọng
Theo nội dung và tính chất tương đối giữa các mảng kiến thức, các học phần trên có thể được chia ra:
− Học phần tiên quyết đối với học phần X là học phần bắt buộc sinh viên phải học trước học phần X và thi đạt mới được theo học học phần X
− Học phần tương đương đối với học phần X, là học phần có nội dung và thời lượng đáp ứng được yêu cầu của học phần X, cụ thể là có nội dung giống nhau từ 80% trở lên và có số tín chỉ tương đương hoặc lớn hơn
Năm học có tối thiểu 2 học kỳ chính:
− Một học kỳ chính có 15 tuần thực học, 1 tuần kiểm tra giữa kỳ và 3 tuần thi;
− Ngoài các học kỳ chính, tùy theo điều kiện, trường có thể tổ chức thêm học kỳ hè dành cho những sinh viên thi không đạt ở các học kỳ chính được đăng ký học lại và những sinh viên học giỏi có điều kiện kết thúc sớm chương trình đào tạo Một học kỳ hè có
từ 4 đến 6 tuần thực học và một tuần thi
Trang 27Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
I.4 Khóa học
Khoá học là thời gian để sinh viên hoàn thành chương trình đào tạo của một chuyên ngành đào tạo ở trình độ đại học hoặc cao đẳng Thời gian của một khoá học, được quy định tuỳ thuộc vào bậc học và chuyên ngành đào tạo Tuỳ theo khả năng và điều kiện học tập, sinh viên có thể rút ngắn hoặc kéo dài thời gian học tối đa như sau :
đào tạo
Số tín chỉ tích luỹ tối đa
Thời gian rút ngắn tối đa
Thời gian kéo dài tối đa
I.5.2 Lớp sinh hoạt
Những sinh viên cùng khoá tuyển sinh, đăng ký học cùng chuyên ngành đào tạo trong cùng một khoá đào tạo, được tổ chức thành lớp sinh hoạt Lớp sinh hoạt có mã số riêng, được tổ chức tương đối ổn định từ đầu cho đến cuối khoá học
I.6 Các loại điểm
I.6.1 Điểm bảo lưu, diểm tương đương
Sinh viên đã thi đạt yêu cầu một học phần hoặc học phần tương đương (xem mục 3.2.2) ở một trường nào đó trong thời gian không quá 5 năm, nếu muốn xin miễn học học phần đó, phải làm đơn kèm theo xác nhận (số tiết học, số tín chỉ và điểm) gửi về phòng Đào tạo của trường chậm nhất là 1 tháng trước khi thi kết thúc học phần Nếu được chấp thuận thì học phần đó sẽ được điểm mà sinh viên đã đạt và kèm theo chữ bảo lưu (BL) Đối với học phần tương đương điểm học phần sẽ được ghi kèm ký hiệu (TĐ)
I.6.2 Các loại điểm khác
− Điểm trung bình chung học tập (ĐTBCHT) được tính theo mỗi học kỳ hoặc năm học ĐTBCHT được tính dựa theo điểm và số tín chỉ của tất cả các học phần mà sinh viên
đã đăng ký học và dự thi trong học kỳ (kể cả các học phần được đăng ký học lại), trừ các học phần được bảo lưu và được miễn
Trang 28− Điểm trung bình chung tích lũy (ĐTBCTL) là điểm trung bình chung của tất cả các học phần mà sinh viên đã đăng ký học và dự thi cũng như các học phần được bảo lưu
và tương đương được miễn tính từ đầu khoá học cho đến thời điểm xét
− Điểm rèn luyện quy đổi (ĐRLqđ) là điểm quy đổi từ kết quả rèn luyện của sinh viên Theo Quy chế đánh giá kết quả rèn luyện của học sinh, sinh viên các Trường Đại học, Cao đẳng, Trung học chuyên nghiệp hệ chính quy ban hành theo Quyết định số 42/2002/QĐ-BGD&ĐT ngày 21/10/2002 của Bộ trưởng Bộ Giáo dục và Đào tạo, mức quy đổi được tính như sau:
Rèn luyện loại yếu -0,5 điểm
Rèn luyện loại kém -1,0 điểm
− Điểm trung bình chung mở rộng (ĐTBCMR) bằng tổng điểm trung bình chung học tập và điểm rèn luyện quy đổi
Cách tính điểm trung bình chung học tập, trung bình chung tích lũy và trung bình chung
mở rộng được quy định tại Điều 22 của Quy chế này
I.7 Chương trình đào tạo
I.7.1 Nội dung đào tạo
Nội dung đào tạo trong toàn khoá học ở mỗi trình độ của từng chuyên ngành đào tạo được thể hiện thành chương trình đào tạo Chương trình đào tạo của mỗi chuyên ngành đào tạo do các trường thành viên xây dựng trên cơ sở chương trình khung của Bộ Giáo dục & Ðào tạo qui định và được Giám đốc Ðại học Đà Nẵng phê duyệt Chương trình khung gồm cơ cấu nội dung và số tín chỉ các học phần, thời gian đào tạo, tỷ lệ phân bổ thời gian đào tạo giữa khối kiến thức giáo dục đại cương và khối kiến thức giáo dục chuyên nghiệp, giữa lý thuyết và thực hành
I.7.2 Chương trình đào tạo bao gồm 2 khối kiến thức
− Khối kiến thức giáo dục đại cương (GDĐC) gồm các học phần thuộc các lĩnh vực: khoa học xã hội và nhân văn, khoa học tự nhiên và toán, ngoại ngữ, giáo dục quốc phòng và giáo dục thể chất, nhằm trang bị cho sinh viên nền học vấn rộng để tiếp thu tốt kiến thức chuyên môn, tạo tiềm lực cho người được đào tạo dễ dàng thích nghi với môi trường làm việc, tự cập nhật kiến thức trước tình hình phát triển nhanh của khoa học và công nghệ
− Khối kiến thức giáo dục chuyên nghiệp (GDCN) gồm các học phần cơ sở, ngoại ngữ
Trang 29Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
I.7.3 Mỗi khối kiến thức có 2 nhóm học phần sau
− Nhóm học phần bắt buộc gồm những học phần chứa đựng những nội dung kiến thức chính yếu của ngành đào tạo, bắt buộc sinh viên phải học và chiếm khoảng 70 - 80% khối lượng kiến thức toàn khoá
Nhóm học phần tự chọn gồm những học phần chứa đựng những nội dung cần thiết nhưng sinh viên được tự chọn để tích lũy đủ số tín chỉ qui định và chiếm khoảng 20 - 30% khối lượng kiến thức toàn khoá
I.8 Quy tắc đánh mã
I.8.1 Mã trường
Mã trường: 1 ký tự, có dạng
Mã Ký hiệu in Tên đơn vị
− DD: Số thứ tự khoa trong trường
Mã Khoa Tên Khoa Ghi chú
nghiệp
Trang 303xx Khoa Lý – Đại học Sư Phạm
Ngoại Ngữ
Mã ngành Tên ngành Thuộc khoa
Trang 31Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
10711 Công nghệ hóa dược (Dự kiến) Hóa
(Dự kiến)
Sư phạm Kỹ thuật
kiến)
Xây dựng Cầu đường
Bảng 9 – Mã của các ngành thuộc đại học Bách Khoa Đà Nẵng
I.9.2 Mã học phần
Mã học phần: 7 ký tự, có dạng
Trang 32− UDD: Mã khoa quản lý học phần
− MMM: Số thứ tự học phần trong khoa
− Z: Đặc thù học phần (0 - HP chung toàn trường; 1 - HP chung toàn trường hệ (Cao đẳng / trung cấp); 2 - HP chung cho một số ngành khác nhau; 3 - HP chuyên ngành )
Ví dụ: Một học phần có mã là 1010070 thì
− 3 ký số "101" đầu tiên: có nghĩa học phần này thuộc Khoa Cơ Khí
− Số "007" tiếp theo: có nghĩa đây là học phần được đánh số thứ tự 007 trong Khoa đó
− Ký số "0" cuối cùng: có nghĩa đây là học phần dạy cho toàn trường (ví dụ: các môn Mác - LêNin)
I.9.3 Mã lớp sinh hoạt
− L: Số thứ tự lớp (Class) trong một khoa của niên khóa đó (bắt đầu từ 1 đến 9)
− H: Mã hình thức đào tạo (1- chính qui, 2- vừa học vừa làm, …)
− C: Cấp đào tạo (1- Đại học, 2- Cao đẳng, 3-Trung cấp)
Ví dụ: Một lớp có mã là 1010420511 thì
− 3 ký số "101" tiếp theo: có nghĩa lớp này thuộc Khoa Cơ Khí của trường
− 2 ký tự “04” là mã ngành Cơ khí chế tạo trong khoa cơ khí
− 1 ký số "2" tiếp theo: có nghĩa đây là lớp sinh hoạt được đánh số thứ tự 2 trong Khoa
Cơ Khí của trường
− 2 ký số "05" đầu tiên: có nghĩa lớp này thuộc khoá học vào trường năm 2005
− Ký số "1" tiếp theo: có nghĩa lớp này thuộc hệ chính quy
− Ký số "1" tiếp theo nữa: có nghĩa lớp này thuộc cấp đại học
Trang 33Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
− KK: Khóa học (2 số cuối của niên khóa)
− H: Mã hình thức đào tạo (1- chính qui, 2- vừa học vừa làm, …)
− C: Cấp đào tạo (1- Đại học, 2- Cao đẳng, 3-Trung cấp)
− SS: Số thứ tự sinh viên trong lớp
Ví dụ: một sinh viên có mã số 102101061115
Có nghĩa như sau:
− 10210 (tương ứng với UDDNS): sinh viên thuộc Ngành Công nghệ thông tin
− 1 (tương ứng với L): lớp số 1
− 06 (tương ứng với KK): khóa 2006 – 2011
− 1 (tương ứng với H): hệ chính qui
− 1 (tương ứng với C): cấp đào tạo - đại học
− 15 (tương ứng với SS): số thứ tự của sinh viên trong lớp sinh hoạt là 15
Trang 34I.10 Quy trình sinh viên đăng ký lớp học phần
Hiện tại, quá trình sinh viên đăng ký học một lớp học phần tiến hành bằng tay theo nhiều bước Với các bước, sinh viên được phát tài liệu và giấy đăng ký đi kèm Nếu quá trình đăng
ký có sự xung đột hoặc bất hợp lý thì phòng đào tạo sẽ tự điều chỉnh hoặc thông báo cho các sinh viên để chỉnh sửa
I.10.1 Mô tả quy trình
Hình 7 – Quy trình sinh viên đăng ký lớp học phần
Trang 35Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
I.10.2 Diễn giải quy trình
Quy trình được thực hiện từng bước như sau:
Bước 1: Phòng đào tạo sẽ phát hành “Chương trình đào tạo khóa 2006 – 2011” vào đầu năm học Tài liệu này là kế hoạch học tập của sinh viên của tất cả các ngành khóa 06 Tài liệu này bao gồm khung chương trình, danh sách các học phần, quan hệ các học phần, các quy định liên quan đến dạy, học, đánh giá và các vấn đề liên quan
Bước 2: Phòng đào tạo sẽ phát hành “Sổ tay sinh viên” trước mỗi học kỳ cho sinh viên Tài liệu này gồm tất cả các lớp học phần và chi tiết lớp học phần được dạy trong học kỳ đó Các lớp học phần này được chia thành nhóm và mỗi nhóm tương ứng với một lớp niên chế Trong tài liệu này, phòng đào tạo gợi ý cho sinh viên mỗi khoa nên đăng ký vào những nhóm nào cho hợp lý Sinh viên sẽ dựa vào tài liệu này để chọn ra lớp học phần mà mình cần Bước 3: Phát hành mẫu đăng ký lớp học phần Mẫu đăng ký này được phát theo từng lớp sinh hoạt Mẫu đăng ký này là một bảng gồm nhiều dòng và nhiều cột Cột đầu tiên là tên sinh viên của lớp, các cột tiếp theo tương ứng với các học phần có mở lớp trong học kỳ hiện hành Sinh viên sẽ ghi mã lớp học phần (thực chất là mã nhóm) tại ô có học phần tương ứng cần đăng ký
Bước 4: Sinh viên đăng ký và nộp lại cho phòng đào tạo Sinh viên sẽ điền vào các ô tương ứng mã nhóm lớp học mà mình cần đăng ký rồi nộp cho phòng đào tạo
Bước 5: Kiểm tra điều kiện ràng buộc Như ta đã biết, các học phần có quan hệ với nhau Bước này kiểm tra học phần cần đăng ký liệu có cần phải học trước một số học phần khác hay không, nếu có thì sinh viên đó đã học hoặc đã vượt qua các học phần ràng buộc hay không Nếu có sự xung đột nghĩa là sinh viên vẫn chưa học hoặc không thể vượt qua học phần ràng buộc thì phòng quy trình sẽ chuyển sang bước 6 Ngược lại, quy trình sẽ chuyển sang bước 7 Bước 6: Thông báo lỗi cho sinh viên Vì kế hoạch đào tạo của trường rất chặt chẽ nên, thông thường có rất ít sinh viên không đáp ứng yêu cầu về các ràng buộc học phần Do đó, phòng đào tạo sẽ phát hành thông báo cho những sinh viên vẫn chưa đăng ký được và dán ở từng khoa Sinh viên đọc được thông báo này sẽ liên hệ với phòng đào tạo để chỉnh sửa cho phù hợp Nghĩa là sinh viên sẽ thực hiện lại bước 4
Bước 7: Kiểm tra xung đột thời khóa biểu Bước này kiểm tra liệu thời khóa biểu của sinh viên có bị xung đột hay không Nghĩa là kiểm tra xem có hiện tượng trong cùng một thời điểm, sinh viên có học 2 lớp học phần khác nhau hay không Nếu có xung đột thì tiến trình sẽ chuyển sang bước 6 Ngược lại tiến trình sẽ chuyển sang bước 8
Bước 8: Kiểm tra số lượng từng lớp học phần Khi đăng ký, sinh viên không hề biết được
có bao nhiêu người cùng đăng ký như mình vào một lớp học phần do đó sẽ có hiện tượng số sinh viên đăng ký vào lớp học phần vượt quá số lượng cho phép của lớp học phần đó Nếu số lượng sinh viên đăng ký vượt quá số lượng cho phép thì tiến trình chuyển sang bước 9 Ngược lại, tiến trình sẽ chuyển sang bước 10
Bước 9: Kiểm tra số lượng sinh viên vượt quá mức Nếu số lượng không đáng kể thì phòng đào tạo sẽ phát hành thông báo và tiến trình sẽ quay lại bước 6
Trang 36Bước 10: Tự điều chỉnh số lượng Trong trường hợp số lượng đăng ký vượt trội, phòng đào tạo sẽ điều chỉnh số lượng cho phù hợp Việc điều chỉnh này là rất khó khăn
Bước 11: Xác nhận đăng ký thành công Khi tất cả các bước trên đều hoàn tất, phòng đào tạo sẽ phát hành cho sinh viên danh sách các lớp mà sinh viên đã đăng ký để sinh viên thực hiện việc nộp học phí
I.10.3 Các biểu mẫu liên quan
− Chương trình đào tạo khóa 2006 – 2011
− Sổ tay sinh viên
− Mẫu đăng ký học phần
− Thời khóa biểu
− Biên lai thu học phí
I.11 Đánh giá hiện trạng
I.11.1 Ưu điểm
− Chương trình đào tạo được thực hiện rất khoa học
− Kế hoạch đào tạo được biên soạn chặt chẽ
I.11.2 Nhược điểm
− Quy trình đăng ký học tín chỉ quá rườm rà
− Việc kiểm tra ràng buột và kiểm tra xung đột thời khóa biểu của sinh viên diễn ra khó khăn Bản thân sinh viên sau khi đăng ký cũng chưa thể biết được mình có được học lớp học phần đó hay không
− Khi số lượng sinh viên đăng ký vào một lớp học phần vượt quá giới hạn thì có sự tự điều chỉnh của phòng đào tạo Sự điều chỉnh này vẫn còn chưa hợp lý vì với việc đăng
ký bằng tay thì không thể biết được sinh viên nào đăng ký trước và sinh viên nào đăng
ký sau để sắp xếp ưu tiên
I.11.3 Những đề xuất cải tiến
− Để tiết kiệm thời gian và công sức của phòng đào tạo, việc sinh viên đăng ký học lớp học phần nên được thực hiện qua mạng
− Quá trình kiểm tra ràng buộc các học phần, kiểm tra xung đột thời khóa biểu cũng như kiểm tra số lượng sinh viên đã đăng ký phải được thực hiện với một tốc độ thật cao để khi một sinh viên đăng ký, sinh viên đó có thể biết ngay lập tức là mình đã đăng ký được hay không
Trang 37Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
II Phân tích chức năng của hệ thống
II.1 Các tác nhân (actor)
Hệ thống quản lý tín chỉ hiện tại được tương tác bởi 3 tác nhân
− Admin: Nhân viên quản trị Nhân viên quản trị là người trực tiếp vận hành và điều khiển hệ thống quản lý đào tạo tín chỉ, người thực hiện cung cấp thông tin cho hệ thống để các tác nhân khác sử dụng
− Sinh viên: Sinh viên đang học tại trường Sinh viên là tác nhân sử dụng hệ thống Các chức năng chính của hệ thống được xây dựng để hướng tới tác nhân này
− Giáo viên: Giáo viên đang giảng dạy tại trường Giáo viên cũng là tác nhân sử dụng hệ thống
II.2 Usecase của admin
Đăng nhập Chỉnh sửa giáo viên
Admin Chỉnh sửa đơn vị
Upload Danh sách Sinh Viên
Upload danh sách Học Phần
Upload danh sách giáo viên
Upload điểm
Upload danh sách phòng học
Upload danh sách khoa
Upload danh sách đơn vị
Upload danh sách ngành
Upload danh sách lớp sinh hoạt
Danh sách lớp học phần
Chỉnh sửa sinh vien
Chỉnh sửa lớp học phần
Download các report
Hình 8 – Admin Usecase
Trang 38a Usecase Admin Đăng nhập: Usecase này cho phép người dùng sử dụng tên và mật khẩu của mình để đăng nhập vào hệ thống với quyền admin trước khi thực hiện các chức năng quản lý
− Dòng sự kiện chính: Usecase này bắt đầu khi người dùng muốn đăng nhập vào hệ thống
1 Người dùng chọn chức năng đăng nhập hoặc bắt đầu vào trang web của admin
2 Hệ thống hiển thị form đăng nhập
3 Người dùng nhập tên và mật khẩu
4 Hệ thống sẽ kiểm tra tên, mật khẩu tương ứng để lấy ra quyền truy cập tương ứng
và cho phép người dùng đăng nhập vào hệ thống với quyền admin nếu kiểm tra thành công
− Dòng sự kiện khác: Tên hoặc mật khẩu không hợp lệ Trong dòng sự kiện chính, nếu người dùng nhập sai tên hoặc mật khẩu thì hệ thống sẽ hiển thị một thông báo lỗi Hệ thống sẽ hiển thị form đăng nhập và người dùng sẽ bắt đầu lại dòng sự kiện chính Người dùng có thể thoát khỏi hệ thống bằng cách tắt chương trình browser
− Các yêu cầu đặc biệt: không có
− Điều kiện tiên quyết: Người dùng phải ở trạng thái chưa đăng nhập mới có thể thực hiện được chức năng này
− Điều kiện chuyển tiếp: Nếu usecase thành công, người dùng sẽ đăng nhập vào hệ thống với quyền admin Ngược lại, trạng thái của hệ thống sẽ không thay đổi
− Biểu đồ hoạt động (Activity Diagram)
Trang 39Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
− Biểu đồ trình tự (Sequence Diagram)
Admin LogIn Page LogInController DB User
7: Kiểm tra quyền truy cập
8: Trả kết lỗi nếu UserId và Password không hợp lệ
9: Thiết lập session
10: Trả về trang của admin
Hình 10 – Sequence diagram của usecase admin đăng nhập
b Usecase admin upload điểm: Usecase này mô tả cách admin upload danh sách điểm của sinh viên dưới dạng file excel
− Dòng sự kiện chính: Usecase này bắt đầu khi admin thực hiện updoad điểm của sinh viên
5 Admin chọn chức năng upload điểm
6 Hệ thống đưa ra form để admin nhập đường dẫn file excel hoặc thực hiện chức năng browse để tìm file
7 Admin click vào nút upload
8 Hệ thống ở phía client sẽ thực hiện việc upload file excel đó đến server
9 Hệ thống ở phía server thực hiện việc đọc file excel và trả về phía client danh sách sinh viên và điểm của sinh viên
Trang 40− Admin sẽ click vào nút Update Database
− Hệ thống sẽ thực hiện việc cập nhật danh sách này vào cơ sở dữ liệu
− Dòng sự kiện khác:
− Upload gặp lỗi kết nối: Nếu trong quá trình upload, kết nối bị ngắt thì hệ thống trả về thông báo lỗi ở phía client Hệ thống ở phía client sẽ đưa ra form để admin thực hiện việc upload lại, admin sẽ thực hiện lại dòng sự kiện chính
− Lỗi đọc file excel: Trong quá đọc file excel để cập nhật vào cơ sở dữ liệu, nếu việc đọc có sự cố về kiểm tra lỗi ràng buộc, sự cố về kiểu dữ liệu, hệ thống sẽ trả về thông báo lỗi ở phía client Hệ thống ở phía client sẽ đưa ra form để admin thực hiện việc upload lại, admin sẽ thực hiện lại dòng sự kiện chính
− Các yêu cầu đặc biệt: không có
− Điều kiện tiên quyết: Người dùng phải đăng nhập vào hệ thống với quyền admin
− Điều kiện chuyển tiếp: Nếu usecase thành công, hệ thống sẽ gửi về phía người dùng thông báo update thành công Ngược lại, trạng thái của hệ thống không thay đổi
− Biểu đồ hoạt động (Activity Diagram)