Với hệ thống ta phân thành 3 cấp quyền , ứng với mỗi quyền thì user đó có chức năng riêng tương ứng quyền của họ :• Với học viên học có quyền : học , thi, xem điểm, cập nhật thông tin •
Trang 1PHẦN A : PHÂN TÍCH THIẾT KẾ VÀ THỰC THI ĐỀ TÀI CHƯƠNG I : PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
I PHÂN TÍCH YÊU CẦU ĐỀ TÀI :
1 Phạm vi đề tài:
Tìm hiểu về kỹ thuật lập trình JSP với cơ sở dữ liệu SQL Server và triển khai ứng dụng JSP trên Web Site Nhằm đáp ứng nhu cầu học môn Lập Trình Mạng qua mạng của sinh viên, học sinh và một số thành viên khác Đề tài được giới hạn trong 4 chương đầu tiên của môn Lập Trình Mạng phần cơ sở
Chương 1: Client Side Networking
Chương 2: Server Side NetworkingChương 3: UDP
Chương 4: URL
2 Yêu cầu đề tài:
• Website cung cấp đầy đủ các thông tin về: Học viên,Giáo viên , Nội dung chương trình học , Đề thi phục vụ cho việc học qua mạng
• Hệ thống Website yêu cầu triển khai được trên hệ điều hành Windows 2k , hệ quản trị cơ sở dữ liệu MicroSoft SQL Server 2000
3 Quản lý:
• Học viên đăng ký học
• Chương trình học
• Ngân hàng câu hỏi và đề thi
• Giáo viên ra đề thi
• Quản trị hệ thống
Trang 24 Công nghệ sử dụng:
• Hệ thống sử dụng hệ điều hành Windows 2000 server
• Sử dụng SQL Server thiết kế cơ sở dữ liệu và Rational Rose minh hoạ chức năng hệ thống
• Lập trình web với Servlet / JSP
• Với các chương trình hổ trợ : JDK1.3, Dreamweaver MX
• Web Server Tomcat, J2EE
1 Giao diện với người sử dụng :
Khi người sử dụng vào trang Web nếu họ muốn học thì phải đăng ký học chương trình học và từ bây giờ trở đi thông tin của họ đã được lưu trữ và họ trở thành học viên chính thức của Web Site
Chương trình học bao gồm 4 chương :
• Chương 1 : Client Side Networking
• Chương 2 : Server Side Networking
• Chương 3 : UDP
• Chương 4 : URL
Vào cuối mỗi chương học viên phải trải qua một bài kiểm tra kiến thức của chương đó Nếu đạt điểm >=5 học viên mới được học tiếp chương tiếp theo Nếu chưa đạt học viên có thể kiểm tra lần 2, nếu số lần không đạt mà quá 3 lần thì buộc học viên đó phải học lại chương đó để lấy lại kiến thức để thi tốt hơn
Trang 3Với hệ thống ta phân thành 3 cấp quyền , ứng với mỗi quyền thì user đó có chức năng riêng tương ứng quyền của họ :
• Với học viên học có quyền : học , thi, xem điểm, cập nhật thông tin
• Với giáo viên quyền của họ là : cập nhật câu hỏi vào ngân hàng câu hỏi và cập nhật đề thi mới vào hệ thống, đồng thời họ cũng có quyền học như một học viên
• Còn Admin là người có quyền cao nhất trong hệ thống nên họ có quyền : cấp quyền cho các user, xoá các user, cập nhật giáo viên và cập nhật chương trình học và đồng thời Admin cũng có quyền của cả học viên
III PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG VỚI RATIONAL
ROSE
1 Xây dựng mô hình Use- Case :
a) Nhận diện các Actor :
• Học viên là người có quền vào dạo xem Web, đăng ký học , học ,thi, sau đó họ có thể đăng nhập vào hệ thống để cập nhật lại thông tin của mình , đồng thời cũng có thể xem điểm mà mình đã đạt được
• Giáo viên là người mà họ có quyền ra câu hỏi , ra đề thi , sau đó họ đăng nhập vào hệ thống để thay đổi thông tin của mình , đồng thời cũng có quyền cập nhật vào đề thi mới để học viên thi
• Admin là người có quyền cao nhất trong hệ thống nên họ có quyền cập nhật giáo viên mới , đồng thời cập nhật chương trình học mới vào cho học viên học
Trang 4b) Xây dựng mô hình Use Case:
Từ yêu cầu thực tiển ta có mô hình Use Case như sau
Cậpnhậtđềthi Cậpnhậtgiáoviên
Cậpnhậtchươngtrìnhhọc Thayđổimậtkhẩu
Đăngkýhọc
Học Thi
DạoxemWeb
Cậpnhậtthôngtin
Xemđiểmthi
Admin Login
Họcviên
Cậpnhậtthôngtin
Cậpnhậtđềthi Giáoviên
Hình 1 1 Mô hình Use Case
Trang 5a) Nhận diện các lớp chính :
• Users : lưu trữ đầy đủ các thông tin về Usernames , Password và cả quyền của tất cả các User khi vào hệ thống
• Hocvien : lưu trữ thông tin về học viên khi họ đăng nhập vào học
• Giaovien : lưu trữ thông tin Tên, Email, Usernames của giáo viên khi họ đăng nhập vào hệ thống
• Chương : lưu trữ chương trình học bao gồm 4 chương
• Demuc : lưu trữ số đề mục có trong mỗi chương đó
• Tieumuc : lưu trữ số tiểu mục và nội dung chi tiết của mỗi đề mục trong mỗi chương đó
• Hocvienduthi : lưu trữ thông tin học viên khi vào thi đề thi đó , số lần vào thi và điểm của học viên ứng với mỗi lần thi
• Cauhoi : lưu trữ chi tiết về nội dung câu hỏi có trong ngân hàng câu hỏi do giáo viên ra và trong một chương cụ thể
• Dethi : lưu trữ số đề thi trong đó bao nhiêu câu hỏi và thuộc chương nào do giáo viên nào ra
• Cautraloi : lưu trữ số câu trả lời có trong một câu hỏi để học viên có thể chọn lựa khi thi
• Luachon : lưu trữ số câu lựa chọn của học viên trong câu hỏi đó và đáp án câu hỏi đó để so sánh kết quả đúng khi học viên đã chọn
Trang 6b) Xây dựng Class Diagram :
Chitietdethi
Luachon
Hocvienduthi
Users Hocvien
1 1
1 1
1
1 1
n
1
n 1
Dethi n
n
n n
n
n n
1
n
1
Trang 7động (Activity Model ) :
a Lược đồ tuần tự (Sequence Diagram) :
(i) Chức năng Học Viên:
Lược đồ dưới đây mô tả chi tiết các chức năng của học viên khi họ vào trang web
• Đầu tiên vào Học viên đăng ký vào hệ thống
1: Dao xem Web
2: Dang ky hoc
3: Kiem tra dang ky
4: Dang ky thanh cong
Hình 1.3 Lược đồ tuần tự thứ nhất của học viên
Trang 8• Kế đến Học viên sẽ đăng nhập vào hệ thống bằng Usernames và Password mà họ đã đăng ký
1: Usernames, Password
: Hocvien
2: Kiem tra Usernames, Password
3: Login thanh cong
Hình 1.4 Lược đồ tuần tự thứ hai của học viên
Trang 9• Sau khi đăng nhập vào hệ thống thành công học viên sẽ bắt đầu học
1: Usernames, Password
2: Login thanh cong bat dau vao hoc
3: Thi
4: He thong cap nhat diem thi vao co so du lieu
5: Ket qua thi
Hình 1.5 Lược đồ tuần tự thứ ba của học viên
Trang 10• Sau đó học viên cũng có thể đăng nhập vào hệ thống để cập nhật thông tin của mình
: Xemdiemthi
1: Usernames, Password
2: Login vao xem diem thi
3: Login vao cap nhat lai thong tin
4: Kiem tra va cap nhat thong tin moi vao co so du lieu
5: Cap nhat thong tin thanh cong
Trang 11• Đồng thời học viên cũng có thể đăng nhập vào thay đổi lại Password mà mình đã đăng ký trước đó
: Hocvien : Login : Thaydoimatkhau : Database
1: Usernames, Password
2: Login vao thay doi Password moi
3: Kiem tra va cap nhat Password moi vao co so du lieu
4: Thay doi Password thanh cong
Hình 1.7 Lược đồ tuần tự thứ năm của học viên
Trang 12(ii) hức năng Giáo Viên:
Lược đồ dưới đây mô tả chi tiết các chức năng của Giáo viên khi họ vào trang web
• Đầu tiên giáo viên sẽ đăng nhập vào hệ thống để thực hiện quyền của mình
Trang 13• Sau Khi đã đăng nhập thành công thì giáo viên thực thi chức năng cập nhật đề thi vào hệ thống
1: Usernames, Password : Giaovien : Login : Capnhatdethi : Database
2: Login vao cap nhat de thi
3: Kiem tra va cap nhat de thi vao co so du lieu
4: Cap nhat de thi thanh cong
Hình 1.9 Lược đồ tuần tự thứ hai của giáo viên
Trang 14• Kế đến giáo viên cũng có thể đăng nhập vào hệ thống để thay đổi Password của mình
: Giaovien
2: Login vao thay doi Password moi
3: Kiem tra va cap nhat Password moi vao co so du lieu 1: Usernames, Password
4: Thay doi Password thanh cong
Hình 1.10 Lược đồ tuần tự thứ ba của giáo viên
Trang 15(iii) Chức năng Admin:
Lược đồ dưới đây mô tả chi tiết các chức năng của Admin khi họ vào trang web
• Đầu tiên Admin cũng phải đăng nhập vào hệ thống để thực hiện quyền của mình
1: Usernames, Password
2: Kiem tra Usernames, Password
3: Login thanh cong
Hình 1.11 Lược đồ tuần tự thứ nhất của Admin
Trang 16• Sau khi đã đăng nhập thành công thì Admin thực thi quyền đầu tiên của mình là cập nhật chương trình học vào hệ thống để học viên có thể tiếp cận những chương trình mới
3: Kiem tra va cap nhat chuong trinh hoc vao co so du lieu
: Admin : Login : Capnhatchuongtrinhhoc : Database 1: Usernames, Password
2: Login vao cap nhat chuong trinh hoc
4: Cap nhat chuong trinh hoc thanh cong
Hình 1.12 Lược đồ tuần tự thứ hai của Admin
Trang 17• Ngoài ra Admin có quyền cập nhật giáo viên mới vào hệ thống
: Admin : Login : Capnhatgiaovien : Database 1: Usernames, Password
4: Cap nhat giao vien thanh cong
2: Login vao cap nhat giao vien moi
3: Kiem tra va cap nhat giao vien vao co so du lieu
Hình 1.13 Lược đồ tuần tự thứ ba của Admin
Trang 18• Sau cùng Admin cũng có quyền thay đổi thông tin Password của chính mình
: Thaydoimatkhau
: Admin
2: Login vao thay doi Password moi
3: Kiem tra va cap nhat Password moi vao co so du lieu 1: Usernames, Password
4: Thay doi Password thanh cong
Hình 1.14 Lược đồ tuần tự thứ tư của Admin
Trang 19b Sơ đồ hoạt động (Activity Model):
Dăng ký học
Vào trang web
Học viên
Login
Học kiểm tra chương
Thi cuối khóa
Hình 1 15 Sơ đồ hoạt động
Với sơ đồ (hình 1 15) trên đây cho ta thấy chi tiết hơn về họat động của hệ thống kể từ khi học viên bắt đầu đăng ký vào học Để làm rõ hơn nữa các chức năng hệ thống ta bước vào phần thiết kế dữ liệu sẽ mô tả chi tiết các class và xử lý cài đặt chương trình sau đây
Trang 204. Sơ Đồ Entity Relationship:
Để thể hiện rỏ hơn quan hệ giữa các lớp ta sữ dụng công cụ Together tạo ra sơ sau
Trang 21IV THIẾT KẾ DỮ LIỆU:
Mô tả chi tiết các Table trong cơ sở dữ liệu
BUỘC
DIỄN GIẢI
1 Usernames Not
null Varchar(50) Khóa chính Têân đăng nhập vào hệ thống phân biệt với
những tên đăng nhập khác
2 Passwords Not
null
Varchar(50) Ứng với mỗi tên đăng
nhập có một mật khẩu riêng
3 Quyen Null Int(4) Quyền được ưu tiên khi
đăng nhập (1:Admin; 2:Giáoviên;
2 Tengiaovien Null Varchar(50) Ứng với mỗi mã giáo
viên là tên của giáo viên
3 Email Null Varchar(50) Email của giáo viên
4 Usernames Not
null
Varchar(50) Tên đăng nhập của
giáo viên khi vào hệ thống
Trang 23STT THUỘC
TÍNH
GIÁ TRỊ
2 Tenhocvien Not
null Varchar(50) Ứng với mỗi học viên là tên của học viên
Tên đăng nhập của học viên vào hệ thống
Null Int(4) Khóa chính Số thứ tự lần thi sau khi học mỗi chương
4 Diem Null Float Điểm thuộc về lần thi sau
mỗi chương
Trang 24(50) Ứng với mỗi chương là tên
50) Hình vẽ của chương ( nếu có )
5 Chuongtruoc Null Int (4) Mỗi chương có một
mã số chương liền trước
6 Chuongsau Null Int(4) Mỗi chương có một
mã số chương liền sau
Trang 25DIỄN GIẢI
null Int(4) Khóa chính Mỗi đề mục có một mã đề mục riêng để phân biệt
với đề mục khác
2 Tendemuc Null Varchar
(50)
Ứng với mỗi đề mục có tên đề mục
3 Noidungdemuc Null Varchar
(7000) Mỗi đề mục có nội dung đề mục
4 SourceCode Null Varchar
(7000) Source Code cuả mỗi đề mục
5 Machuong Null Int(4) Khóa
null Int(4) Khóa chính Mỗi tiêu mục có một mã số riêng để phân biệt
với tiểu mục khác
2 Tentieumuc Null Varchar
(50) Mỗi tiểu mục có tên tiểu mục
3 Noidungtieumu
c Nul Varchar(7000) Ứng với mỗi tiểu mục có nội dung
4 Mademuc Null Int(4) Tiểu mục thuộc về mã
đề mục nào ?
(50)
Hình vẽ minh họa cho tiểu mục ( nếu có )
Trang 262 Madethi Not
Null
Int(4) Ứng với mã học viên có một
mã đề thi riêng
3 Lanthicuoi Not
Null Int(4) Số thứ tự lần thi sau mỗi khóa học
4 Diem Null Float Điểm thuộc lần thi đó
Trang 2710 Table Đề thi
2 Socaukho Null Int(4) Số câu hỏi khó thuộc về
mã đề thi
3 Socaude Null Int(4) Đề thi gồm bao nhiêu câu
hỏi dễ ?
4 Socautrungbinh Null Int(4) Số câu hỏi trung bình có
trong đề thi
5 Machuong Null Int(4) Đề thi thuộc mã chương gì
null Int(4) Khóa chính Mỗi câu hỏi có moat mã số riêng để phân
biệt với câu hỏi khác
2 Noidungcauhoi Null Varchar
(7000) Mỗi câu hỏi có nội dung riêng
Trang 28null Int(4) Khóa chính Mỗi câu lựa chọn có một mã riêng phân
biệt với những câu lựa chọn khác
2 Noidungcauluacho
n Null Varchar(7000) Ứng với mỗi mã câu lựa chọn có nội dung
câu lựa chọn
Trang 29CHƯƠNG II : CÀI ĐẶT CHƯƠNG TRÌNH
I SƠ ĐỒ PHÂN RÃ CHỨC NĂNG HỆ THỐNG :
Hình 2 1 Sơ đồ phân rã chức năng hệ thống
WEB SITE HỌC QUA MẠNG
CHỨC NĂNG ADMIN
CHỨC NĂNG ADMIN
ĐĂNG KÍ HỌC HỌC
TH I
TH I
ĐĂNG KÍ THI
XEM ĐIỂM THI
CẬP NHẬT THÔNG TIN
DẠO XEM WEB
CHƯƠNG TRÌNH HỌC
CẬP NHẬT CHƯƠNG TRÌNH HỌC
CẬP NHẬT GIÁO VIÊN
CẬP NHẬT GIÁO VIÊN
CẬP NHẬT ĐỀ THI
THAY ĐỔI MẬT KHẨU
THAY ĐỔI PASSWORD
Trang 30II CÀI ĐẶT CHƯƠNG TRÌNH :
1. Phần học viên :
Từ sơ đồ tuần tự ứng với phần học viên (hình 1 3) ở chương 1 , ứng với lược đồ đầu tiên thì học viên muốn vào học phải đăng ký vào học , để làm rõ hơn chức năng này ta có đọan xử lý sau:
Xử lý đăng ký
Bước 1: khai báo kết nối cơ sở dữ liệu
Khai báo trình điều khiển và thông tin cần thiết để kết nối với cơ sở dữ liệu
Drivername=”sun jdbc Odbc jdbcOdbcDriver”
URL=”jdbc: odbc: HOCQUAMANG”
Class forName(Drivername) newInstace();
Connection Cn=null
Cn = DriverManage getConnection(URL,”Usernames”,”Password”)
Statement st=null
ResultSet Rs=null
Bước 4 : Thực thi câu lệnh SQL xem học viên đã đăng ký chưa
String SQL=” Select Usernames From Hocvien
where Usernames=’”+tendangnhap+”’
Trang 31Sau khi đã đăng nhập vào hệ thống với Usernames và Password của mình là họ đã có đầy đủ quyền tương ứng(hình 1.4) Đoạn Chương trình sau đây minh họa xử lý việc login của học viên khi đăng nhập vào hệ thống.
Xử lý Login vào hệ thống của học viên
Kiểm tra nếu chưa tồn tại thì ta thực hiện thêm học viên này vào cơ sở dữ
Sau khi cập nhập học viên mới thành công sẽ chuyển đấn trang thành công
Bước 5 : Cuối cùng đóng các kết nối lại
Rs close
Cn close
Tương tự như đọan xử lý trên
Bước 1 : Khai báo kết nối cơ sở dữ liệu
Bước 2 : Khai báo các tham số nhận từ request
User=requesr getParameter(“txtTendangnhap”)Pass=requesr getParameter(“txtPassword”)Bước 3 : Khai báo các đối tượng cần thiết để kết nối
Bước 4 : Thực thi câu lệnh SQL so sánh xem có học viên này không nếu có thì chấp nhận và cho học viên này vào hệ thống
Select Mahocvien Form Hocvien Where Usernames=’”+User+”’
Nếu không có học viên này thì báo lỗi và mời học viên này đăng nhập lại hoặc đăng ký làm học viên thì mới được vào học
Bước 5 : Đóng các kết nối
Trang 32Khi vào hệ thống với quyền tương ứng của mình học viên có quyền học và thi chương trình học(hình 1.5 ) để minh họa cho chức năng này ta có đọan xử lý
Xử lý chức năng học
Bước 1: Kết nối cơ sở dữ liệu
Bước 2 : Thực thi câu lệnh truy vấn cho việc chọn học phần cuả học viên
• Trong khi đã chọn được chương ta lấymã chương và tên chương hiển thị cho học viên chọn
while (rs.next()){
<%=rs.getString("Machuong") <
%=rs.getString("Tenchuong")%>
}
Bước 3 :Sau khi chọn học phần ,đối tượng request sẽ nhận tham số từ trang
chuong1.jsp gởi đến bằng câu lệnh
Bước 4 : Tương tự như học viên chọn tiểu mục và nội dung tiểu mục
Bước 5 : Đóngkết nối
Trang 33Xử lý chức năng Thi
Bước 1: kết nối cơ sở dữ liệu
Bước 2 : Thực thi câu lệnh sql và xử lý các giải thuật
• Tạo đề thi với số thứ tự đề thi là ngẫu nhiên int t=(int)Math.random()*10+1;
out.println("De thi so "+t)
• Truy xuất câu hoỉ từ câu lệnh truy vấn sql:
String sql="Select Macauhoi,Noidungcauhoi From CauHoi ";
• Khai báo 2 biến và 2 mảng chứa mã câu hoỉ và nội dung câu hoỉ :
String ma,noidungint a[]=new int[100]
//Mảng chứa mã câu hỏi String b[]=new String[100]
//Mảng chứa mã nội dung
• Tạo recordset để lấy về mã câu hỏi và nội dung câu hỏi chưá vào 2 mảng
while( rs.next() )
{ma=rs.getString("Macauhoi");
Ứng với mỗi câu hỏi , cần hiển thị Ghichu , Macauluachon , Noidungcauluachon bằng câu lệnh truy vấn
sql1="SELECT Chonlua.Ghichu AS Ghichu, Cautraloi.Macauluachon, Cautraloi.Noidungcauluachon FROM Chonlua INNER JOIN Cautraloi ON Chonlua.Macauluachon = Cautraloi.Macauluachon Where Chonlua.Macauhoi="+a[r]+" And Chonlua.Macauluachon=Cautraloi.Macauluachon"
Bước 5 : Hiển thị kết quả
Bước 6 : Đóng kết nối
Trang 34Ứng với đường đi từ sơ đồ học viên còn có thể login vào hệ thống để thay đổi thông tin và thay đổi Password của mình(hình 1.6 & hình 1.7) , đọan chương trình sau sẽ làm rõ chức năng này
Xử lý chức năng thay đổi Password
Bước 1:kết nối cơ sở dữ liệu
Bước 2 : xử lý câu lệnh sql
• Lấy tên đăng nhập và mật khẩu cũ và mật khẩu mới do học viên nhập vào
• Nếu thay đồi thành công trả về trang thành công , nếu Usernames và Password cũ sai hệ thống sẻ trả về trang lỗiBước 3 : Đóng kết nối
Trang 35Xử lý chức năng thay đổi thông tin
Bước 1: Kết nối cơ sở dữ liệu
Bước 3 : Thực thi câu lệnh SQL
SQL="UPDATE Hocvien SET Tenhocvien='"+Ten+"',Email='"+EM+"'";