Xây dựng website bán hàng trực tuyến” bằng công nghệ Java công nghệ lập trình web bằng Java, Hệ quản trị cơ sở dữ liệu SQL Ngôn ngữ mô hình hợp nhất UML Phân tích và thiết kế hệ thống Demo giao diện: trang chủ, danh mục sản phẩm, chi tiết sản phẩm, giỏ hàng, liên hệ, và các module chính full code
Trang 1MỤC LỤC
MỤC LỤC 1
CÁC DANH MỤC 3
1 Danh mục các từ viết tắt 3
2 Danh mục các hình ảnh 3
3 Danh mục các bảng 3
LỜI CẢM ƠN 4
LỜI CAM ĐOAN 5
LỜI MỞ ĐẦU 6
1 LÝ DO CHỌN ĐỀ TÀI 6
2 MỤC TIÊU VÀ NHIỆM VỤ 6
3 ĐỐI TƯỢNG NGHIÊN CỨU 7
4 PHẠM VI NGHIÊN CỨU 7
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 8
1.1 CÔNG NGHỆ LẬP TRÌNH WEB BẰNG JAVA 8
1.2 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 21
1.3 NGÔN NGỮ MÔ HÌNH HỢP NHẤT UML 21
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 25
2.1 ĐẶC TẢ YÊU CẦU ĐỀ TÀI 25
2.2 BIỂU ĐỒ USE CASE 29
2.3 BIỂU ĐỒ TUẦN TỰ 34
2.4 BIỂU ĐỒ HOẠT ĐỘNG 41
2.5 BIỂU ĐỒ LỚP 42
2.6 BIỂU ĐỒTRIỂN KHAI 43
2.7 BIỂU ĐỒ THỰC THỂ QUAN HỆ 45
2.8 CƠ SỞ DỮ LIỆU TRONG SQL SERVER 46
Trang 2CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH 48
3.1 GIAO DIỆN CHƯƠNG TRÌNH 48
3.2 MỘT SỐ MODULE CHÍNH 51
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 52
TÀI LIỆU THAM KHẢO 53
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 54
Trang 3CÁC DANH MỤC
1 Danh mục các từ viết tắt
Từ viết tắt Nghĩa tiếng việt
2 Danh mục các hình ảnh
Hình 1 1: Tổng quát các máy logic của J2EE 9
Hình 1 2: Sơ đồ giao tiếp giữa Client tier và J2EE server 10
Hình 1 3: Sơ đồ tầng Web tier 10
Hình 1 4: Sơ đồ tầng Business tier 11
Hình 1 5: Kiến trúc tổng thể của hệ thống J2EE 12
Hình 1 6: Các xử lý của Servlet 13
Hình 1 7: Cơ chế hoạt động của trang JSP 15
Hình 1 8: Sự hợp nhất của UML 22
3 Danh mục các bảng Bảng 2 1: Đặc tả actor 33
Bảng 2 2: Bảng Khachhang 46
Bảng 2 3: Bảng Danhmuc 46
Bảng 2 4: Bảng Sanpham 46
Bảng 2 5: Bảng HinhanhSP 46
Bảng 2 6: Bảng Hoadon 47
Bảng 2 7: Bảng Chitiethoadon 47
Bảng 2 8: Bảng Phanquyen 47
Bảng 2 9: Bảng Nhanvien 47
Trang 4LỜI CẢM ƠN
Em xin gửi lời cảm ơn ??? đã tận tình hướng dẫn và giúp đỡ em trong quátrình hoàn thành luận văn này Em cũng xin cám ơn các thầy cô trong khoa Côngnghệ thông tin – trường Đại học Duy Tân đã dạy dỗ và cung cấp thêm cho em nhiềukiến thức
Bên cạnh đó, để hoàn thành khóa luận này, em cũng đã nhận được rất nhiều sựgiúp đỡ nhiệt tình từ các bạn học cùng lớp cũng như các bạn sinh viên lớp khác Emxin cám ơn tất cả mọi người
Trang 5LỜI MỞ ĐẦU
1 LÝ DO CHỌN ĐỀ TÀI
Trong thời đại bùng nổ về công nghệ thông tin và Internet như hiệnnay thì việc bán hàng qua mạng là một kênh thông tin cần thiết giúp chokhách hàng dễ dàng tìm thấy sản phẩm của doanh nghiệp Và để giảm bớt chiphí cũng như thời gian cho khách hàng trong việc đi mua sắm, nhiều doanhnghiệp đã xây dựng cho mình các website bán hàng online
Đồng thời qua khảo sát thực tế, em nhận thấy rằng việc quản lý trựctiếp ở các cửa hàng còn gặp một số khó khăn và hạn chế như sau:
- Khó khăn trong việc thông tin đến khách hàng các mặt hàng mới,
các cập nhật thông tin mới về sản phẩm
- Thay đổi giá cả sản phẩm còn gặp nhiều khó khăn trong việc cập
nhật hàng ngày
- Quản lý thống kê, báo cáo còn nhiều bất cập, mất thời gian.
- Hạn chế trong việc thanh toán bằng thẻ tự động, ngân hàng online,
Cụ thể là:
Khách hàng:
- Tìm kiếm nhanh chóng các loại sản phẩm mình cần mua.
- Xem được hình ảnh và thông tin tóm tắt về sản phẩm.
Trang 6- Có thể thanh toán bằng tiền mặt hoặc chuyển khoản…
Doanh nghiệp:
- Đơn giản hóa trong việc nhập, xuất hàng hóa.
- Thông tin nhanh nhất đến khách hàng các sản phẩm mới, các
chương trình khuyến mãi hấp dẫn
- Thống kê doanh thu, quản lý công nợ dễ dàng.
- Xuất hóa đơn bán hàng cho khách hàng nhanh chóng…
3 ĐỐI TƯỢNG NGHIÊN CỨU
Để thực hiện đề tài này, em nghiên cứu và sử dụng các công cụ sau:
- Phần mềm Rational Rose: Dùng để phân tích thiết kế bài toán theo
hướng đối tượng UML
- Ngôn ngữ lập trình Java với các công nghệ JSP, JavaBean, Strust
- Khảo sát hiện trạng, đặc tả tính năng và yêu cầu của đề tài.
- Xây dựng biểu đồ Use Case.
- Xây dựng biểu đồ trình tự, biểu đồ hoạt động, biểu đồ lớp phân
tích, biểu đồ triển khai, mô hình quan hệ thực thể
- Thiết kế các bảng cơ sở dữ liệu trong SQL Server.
Trang 7CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 CÔNG NGHỆ LẬP TRÌNH WEB BẰNG JAVA
Yêu cầu đặt ra của bài toán là triển khai ứng dụng trên môi trườngWeb Và hiện nay công nghệ để lập trình web có rất nhiều như: ASP.NET,PHP, JSP, … mỗi công nghệ đều có một cấu trúc riêng của nó
Để xây dựng một ứng dụng có thể triển khai được trên môi trườngWeb thì một trong những công nghệ nêu trên đều có thể lập trình tốt Nhưngđối với bài toán này, em lựa chọn công nghệ JSP để triển khai
Từ những yêu cầu trên và việc đặt vấn đề, dễ dàng nhận thấy hệ thốnghoạt động trên môi trường mạng theo mô hình Client/Server Công nghệ JSP
là một trong những công nghệ sáng giá và thuận lợi cho việc thực hiện nhữngtrang web động
1.1.1 Java J2EE
J2EE là nền để phát triển các ứng dụng phần mềm phân tán Từ lúc bắtđầu của ngôn ngữ Java, nó đã thích nghi và phát triển tốt Ngày càng nhiều côngnghệ đã trở thành một phần của nền Java, các API và các chuẩn mới được pháttriển đến nhiều địa chỉ cần thiết Sau cùng, Sun và 1 nhóm nhà lãnh đạo côngnghiệp, dưới sự bảo trợ của open Java Community Process (JCP) hợp nhất tất cảcác chuẩn liên quan đến hãng vào nền J2EE
Một hệ thống J2EE về tổng quát có thể bao gồm 3 máy logic như sau:máy dùng cho Client, máy J2EE Server, máy dùng cho Database Server Xét vềcác lớp để xây dựng ứng dụng thì bao gồm 4 lớp chính: client tier, web tier,business tier và EIS tier
Trang 8Hình 1 1: Tổng quát các máy logic của J2EE
Client tier:
Application clients: là ứng dụng client thực thi trên máy client (logic) và
chuẩn bị trước một số cách thức để cho user có thể giao tiếp hệ thống J2EE đểthực hiện một công việc nào đó Cách thức giao tiếp có thể là thông qua giaodiện đồ họa hoặc dòng lệnh
Application client có thể truy xuất trực tiếp đến các EJB của lớp Businesshoặc có thể thể thiết lập một kết nối HTTP đến các servlet của lớp Web
Web Browsers: là môi trường để thực thi các ứng dụng trên web của
máy logic client
Applets: cũng là một hình thức của application client nhưng được thiết
kế để được download xuống và thực thi trên Java VM của Web Browser, do đókhả năng của Applet được khống chế bởi Web Browser
JavaBeans component: client cũng có thể bao gồm một số JavaBean để
quản lý dòng data giao tiếp giữa các application client hoặc applet để giao tiếpvới các component thực thi trên J2EE server
Sau đây là sơ đồ giao tiếp giữa Client tier và J2EE server:
Trang 9Hình 1 2: Sơ đồ giao tiếp giữa Client tier và J2EE server
Web tier:
Bao gồm các trang JSP và các servlet và có thể có các JavaBean để quản
lý các dòng dữ liệu giữa các web components và business tier của hệ thốngJ2EE
Hình 1 3: Sơ đồ tầng Web tier
Trang 10Business tier:
Business tier là một lớp logic dùng để thực hiện việc xử lý của hệ thốngJ2EE server
Hình 1 4: Sơ đồ tầng Business tier
Hình vẽ minh họa cho ta thấy một Enterprise Bean có thể nhận dữ liệu từclient, xử lý nó (nếu cần thiết) và gửi nó đến EIS tier (Enterprise InformationSystem tier) để lưu trữ Một Enterprise Bean cũng có thể nhận dữ liệu từ EIStier, xử lý dữ liệu đó (nếu cần thiết) và sau đó là gửi nó trở lại các chương trìnhclient
Có 3 loại Enterprise Bean: session bean, entity bean, message-drivenbean
Session Bean thể hiện cho một phiên giao dịch với client, với 1 client sẽ
có 1 instance của session bean tương ứng, và instance này có thể lưu giữ cácthông tin của client đó Tuy nhiên, khi phiên giao dịch kết thúc (client kết thúcviệc thực thi), các instance này cũng sẽ bị hủy Ngược lại với session bean,entity bean có thể lưu giữ lâu dài các thông tin về client Còn message-drivenbean là sự kết hợp giữa sesssion bean và JMS message listener
Trang 11Enterprise Information System tier (EIS tier):
Lớp này thực hiện việc lưu trữ dữ liệu cho hệ thống J2EE, bao gồm cảcác interface để giao tiếp với các Database khác nhau, và giữa các OS khác nhautrong việc quản lý và lưu trữ file…
Kiến trúc tổng thể của một hệ thống J2EE:
EJB container (Enterprise JavaBean container) quản lý việc thực thi
của tất cả các enterprise bean cho một ứng dụng J2EE Các enterprise bean vàcontainer của nó đều được chạy trên J2EE server
Web container quản lý và thực thi của tất cả các trang JSP và các servlet
cho một ứng dụng J2EE Các web component và container của nó đều đượcchạy trên J2EE server
Application client container quản lý và thực thi của tất cả các thành
phần application client cho một ứng dụng J2EE Các application client vàcontainer của nó đều được thực thi trên máy client
Applet container chính là web browser (có các Java Plug-in) chạy trên
máy client
Trang 12Web Browser Web Server
Servlet có thể được xem như một applet phía server (server side) Cácservlets được nạp và được thực thi tại trình chủ Web (Web Server) Hìnhdưới đây chỉ ra một servlet chấp nhận các yêu cầu từ trình khách (thông quatrình chủ Web), thi hành một số tác vụ và trả về các kết quả
Trang 13Hình 1 6: Các xử lý của Servlet
Các bước cơ bản khi sử dụng servlet:
- Trình khách tạo ra một yêu cầu (request) lên máy chủ yêu cầu dịch
vụ Web dựa trên nghi thức HTTP Tài nguyên mà trình khách yêucầu có thể là một tập tin (.html hay hình ảnh) Tài nguyên cũng cóthể ở dạng thông tin động do servlet sinh ra
- Trình chủ Web nhận các yêu cầu này và chuyển cho servlet Nếu
servlet chưa được nạp, trình chủ Web sẽ nạp nó vào trong máy ảoJava và thực thi nó
- Servlet sẽ nhận yêu cầu này dựa trên nghi thức HTTP và xử lý.
- Servlet sẽ trả ngược về cho trình chủ Web một phản hồi
(response)
- Trình chủ Web sẽ chuyển phản hồi (response) này rồi chuyển cho
trình khách dựa trên nghi thức HTTP
Phần lớn servlets là một sự thay thế tuyệt vời cho các kịch bản CGI(Common Gateway Interface) Các kịch bản CGI thông thường được viếtbằng ngôn ngữ Perl hoặc C và thường gắn chặt với một môi trường(platform) chủ cụ thể Vì servlet được viết bằng ngôn ngữ Java, nên cácservlet này cũng độc lập với môi trường hệ điều hành
Servlets rất an toàn Cách duy nhất để gọi một servlet từ bên ngoài làthông qua trình chủ Web Điều này mang lại một mức bảo mật cao, đặc biệt
là nếu như trình chủ Web được bảo vệ đằng sau firewall
Bằng trình duyệt, máy khách gọi ứng dụng servlet trên máy chủ
Tương tự như ứng dụng CGI, ứng dụng servlet chạy trên máy chủ và gởi kết
quả ngược về trình duyệt ở máy khách Cũng như mọi ứng dụng Java, ứngdụng servlet có thể nhận đối mục (parameter, argument) vào lúc chạy Trìnhduyệt trao đổi mục cho ứng dụng servlet theo cách thức giống trường hợp
CGI: ghi dấu chấm hỏi (?) sau địa chỉ của ứng dụng servlet và tiếp sau đó là
từng cặp tên-trị (name-value) được phân cách bằng “dấu và” (&) Do vậy
Trang 14Web Browser
Trình diễn dịch JSP
Trang JSP HTTP Service
1.1.3 Java Server Page (JSP)
JSP (Java Server Page) là cách kết hợp ngôn ngữ HTML truyền thống
và ngôn ngữ Java phía máy chủ để sinh ra các trang web động phục vụ cácứng dụng web uyển chuyển hơn các công nghệ CGI, Servlet
1.1.3.1 Cơ chế hoạt động của JSP :
Công nghệ JSP gắn liền với Servlet JSP đưa lệnh Java vào các mã(hay thẻ) HTML Các trang JSP chứa các thẻ đặc biệt qui định gần giống nhưthẻ của ngôn ngữ HTML Khi bạn yêu cầu một trang JSP, trình chủ sẽ đọctrang JSP từ đĩa cứng, bộ diễn dịch JSP (JSP Page Compiler) sẽ diễn dịch mãlệnh Java chứa trong trang JSP thành một servlet Sau đó trình chủ WebServer sẽ triệu gọi servlet trả kết xuất thuần HTML về cho trình khách Vớitrang JSP bạn hoàn toàn có thể lấy dữ liệu do trình duyệt phía máy kháchchuyển lên trình chủ xử lý sau đó gửi trả kết quả về cho trình khách
Trang 15xây dựng theo đặc tả và chuẩn XML (Extension Markup Language) nên cóhơi khác với thẻ HTML vì chuẩn XML không xem chữ hoa và chữ thườnggiống nhau Mỗi thẻ có các thuộc tính quy định cách dùng thẻ.
a- Thẻ <jsp:scriptlet> hay <% %>
Thẻ này cho phép đặt các đoạn mã lệnh Java ở giữa cặp thẻ tương tựmột chương trình java thông thường
b- Thẻ khai báo và thực hiện biểu thức <%! , <%=
Thẻ này dùng để khai báo một biến dùng cho toàn trang jsp Biến khaibáo phải đúng theo cú pháp của ngôn ngữ Java Thẻ <%= được dùng để hiểnthị một biểu thức
c- Thẻ nhúng mã nguồn <%@ include file %>
Với thẻ này có thể nhúng một trang html vào trang jsp hiện hành.Thẻ này tương tự chỉ dẫn #include trong ngôn ngữ C Cú pháp đầy đủ của thẻnày là:
<%@ include file = “URL or FilePath “ %>
d- Thẻ chỉ dẫn biên dịch trang <%@ page %>
Thẻ này chỉ dẫn một số tính chất biên dịch áp dụng cho toàn trang jsp
Có thể sử dụng thẻ này để khai báo các thư viện import của java, chỉ định tùychọn trang jsp có cần giữ trên cache bộ nhớ của trình chủ để tăng tốc haykhông …
e- Thẻ chuyển hướng <jsp:forward>
Thẻ này giúp chuyển hướng trang Web sang địa chỉ khác Ví dụ, khi
xử lý trang nhận dữ liệu đăng nhập (login page) bạn kiểm tra mật khẩu, nếuhợp lệ bạn chuyển người dùng đến trang tài nguyên cho phép truy cập Nếukhông hợp lệ, bạn chuyển người dùng đến trang thông báo lỗi
f- Thẻ sử dụng thành phần Bean <jsp:useBean>
Bạn có thể tự tạo các lớp đối tượng Java và triệu gọi chúng từ bêntrong trang jsp Hướng theo công nghệ thành phần (component) Java gọinhững đối tượng có thể gắn vào những ứng dụng là thành phần Bean
g- Thẻ đặt thuộc tính cho Bean <jsp:setProperty>
Thẻ này được sử dụng để triệu gọi một phương thức nào đó của Bean
Trang 16h- Thẻ lấy thuộc tính của Bean <jsp:getProperty>
Ngược với thẻ <jsp:setProperty>, thẻ <jsp:getProperty> dùng để lấy
về nội dung của một thuộc tính
1.1.3.3 Các đối tượng mặc định của trang JSP:
- Trang diễn dịch JSP cho phép sử dụng một số đối tượng đã khaibáo trước Điều này giúp viết mã lệnh trong trang jsp nhanh hơnservlet
- Đối tượng out : xuất phát từ lớp PrintWriter Bạn có thể sử dụng
đối tượng này để định dạng kết xuất gửi về máy khách
Ví dụ: <% out.println(“Hello!”)%>
- Đối tượng request: xuất phát từ lớp HttpServletRequest Đối
tượng này giúp lấy về các tham số hay dữ liệu do trình kháchchuyển lên
Ví dụ: <%String a= request.getParameter(“param1”)%>
- Đối tượng response: tương tự đối tượng out, đối tượng response
dùng để đưa kết xuất trả về trình khách Tuy nhiên, đối tượng out
được dùng thường xuyên hơn, out hỗ trợ thêm luồng đệm để tăng
tốc kết xuất
- Đối tượng session: xuất phát từ lớp HttpSesssion Sử dụng đối
tượng session để theo dõi kết nối và lưu vết một phiên làm việc
giữa trình khách và trình chủ
1.1.3.4 Truy xuất cơ sở dữ liệu trong trang JSP:
Có thể dễ dàng dùng trình JDBC để truy xuất cơ sở dữ liệu của hệquản trị cơ sở dữ liệu SQL Server Ví dụ: để khai báo cơ sở dữ liệu Shopthông qua SQL Server
<%
String Driver ="sun.jdbc.odbc.JdbcOdbcDriver";
String Conn ="jdbc:odbc:Shop";
String username="sa";
String password="123456";
Trang 17try { Class.forName(Driver);
} catch (ClassNotFoundException e) {
1.1.4 Java Server Faces 2.0 (JSF 2.0)
JSF là một môi trường phát triển GUI khá truyền thống, giống nhưAWT, SWT và Swing Một trong những lợi ích chính của nó là làm cho việcphát triển các ứng dụng Web dễ dàng bằng việc mang đến một sự hỗ trợmạnh mẽ giàu tính năng với các thành phần giao diện người dùng
Phát triển các ứng dụng Web trong JSF dể dàng hơn nhiều so với hầuhết các khung công tác khác: nó đòi hỏi viết mã ít hơn, ít phức tạp hơn và ítviệc cấu hình hơn
Ưu điểm
- Tách biệt hoàn toàn giữa hành vi và cách trình bày.
- Kiểm soát tính có trạng thái (statefulness) ở mức thành phần.
- Các sự kiện dễ dàng được liên kết với mã phía máy chủ.
- Sử dụng các khái niệm thành phần UI và tầng Web (Web-tier)
Trang 18 Thành phần chính của JSF
- UI Component
Dùng phát triển giao diện Web
Gồm các thành phần giản đơn như Button đến Table và kếthợp chúng lại với nhau
Thêm hoặc bớt đơn giản một component
Có thể truy cập đến thẻ tag của JSF thông qua JSP
- UI Component Class
Gồm các hàm xử lý cho các UI Component
UI Component Class kế thừa từ UI Component Base
- Mô hình Conversion
Mô hình cho phép kết hợp dữ liệu với mô hình Server-Side
Hai thành phần của dữ liệu gồm:
o Model View
o Presentaion View
- Renderer
Hiển thị các Component
Chuyển giá trị input thành giá trị của component
Một Renderer có thể làm việc với một hoặc nhiềuComponent
Được tổ chức thành các Renderkit tương ứng cho các outputkhác nhau
HTML
Wireless-Makeup Language (WML)
- Validator
Kiểm tra dữ liệu người dùng nhập vào
Một Component có nhiều Validator
Event listener method
Liên kết UI Component và Backing beans là JSF ExpressionLanguage
- Event/listener
Trang 19 UI Component phát sinh ra các sự kiện.
Thông tin hiển thị cho user
Chỉ bất kỳ phần ứng dụng nào (backing beans, validators )
có thể tạo ra thông tin hoặc thông điệp lỗi nhằm hiển thị chouser
- Navigation
Chuyển trình duyệt sang trang khác
JSF có các Navigation mạnh mẽ kết hợp với cácEventListener
Ví dụ khi bấm nút thì ActionEvent sẽ được thực hiện
Nếu ứng dụng yêu cầu Invoke thì các ActionListener sẻ thựchiện yêu cầu
Ví dụ:
1.1.5 Maven
Maven là một công cụ để quản lý project và việc build một cách tựđộng Nó phục vụ chính cho các project viết bằng Java nhưng cũng có thể hỗtrợ cho các project khác viết bằng C#, Ruby, Scala
Maven dùng khái niệm Project Object Model (POM) để mô tả việcbuild project, các thành phần phụ thuộc và các module Nó định nghĩa trướccác target cho việc khai báo task, trình biên dịch, đóng gói và thứ tự hoạtđộng để mọi việc diến ra tốt nhất Maven tải các thư viện, plug-in từ 1 hoặc
Trang 20nhiều repositories Cũng có thể upload các sản phẩm lên repository sau khi
đã build xong
Lợi ích của Maven
- Tự động hóa toàn bộ quá trình release project: khởi tạo, cập nhật
thư viện, build & test, release và tạo tài liệu mô tả
- Tự động hóa quá trình test với các plugin: Toàn bộ quá trình test
được tự động, từ đó các lỗi được phát hiện sớm hơn Thậm chí lỗi
có thể phát hiện ở giai đoạn phát triển, do các developer đều có thểchạy các test case một cách dễ dàng bằng Maven như:
+ JUnit, TestNG – Unit test,+ Selenium, Canoo – Web GUI test+ SoapUI – Web services tests+ JMeter – Performances tests
- Quản lý các dependencies(các thư viện) trong project một các ưu
việt: tự động cập nhật, mở rộng dễ dàng, đóng gói (có thể hiểu làphụ thuộc các thư viện bắc cầu)
- Phân chia 1 project lớn thành các module nhỏ: từ đó cho phép làm
việc đồng thời trên các module khác nhau, đồng thời vẫn tạo đượctính thống nhất
- Không phụ thuộc vào IDE: cho phép chuyển đổi tử Eclipse sang
NetBeans, một cách dễ dàng
- Hệ thống plugin phong phú trong đó có cả Ant.
1.2 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER
Khối lượng thông tin trên Intenet là rất lớn và đòi hỏi tính bảo mật caonên việc chọn SQL Server là phù hợp Em chọn SQL Server để lưu trữ dữ liệuvới những lý do sau:
- Là một trong những hệ quản trị cơ sở dữ liệu thông dụng nhất
- Đáp ứng được nhu cầu thực hiện nhiều truy vấn cùng một lúc.
- Cho phép thực hiện mô hình cơ sở dữ liệu phân tán Tính bảo mật
cao
Trang 21- Mô tả đầy đủ được một cơ sở dữ liệu quan hệ
Máy chủ SQL Server cho phép hàng ngàn người dùng kết nối và làm việcvới nhiều cơ sở dữ liệu khác nhau trên cùng một máy chủ tại cùng một thờiđiểm Máy chủ SQL Server cung cấp khả năng kết nối, truy cập cho người dùngđến mọi cơ sở dữ liệu trên máy, tùy thuộc vào mức độ bảo mật cho phép củangười đang kết nối
Bảo mật là một trong những điểm mạnh giúp cho SQL Server được sửdụng trong thương mại điện tử Chế độ bảo mật của SQL Server vượt trội hơnhẵn các chế độ cơ sở dữ liệu khác SQL Server kiểm soát và cấp quyền để ngườidùng có thể tra cứu, thêm, xóa, sửa cơ sở dữ liệu Điều này hết sức thuận lợitrong việc phát triển các ứng dụng cần có chế độ an toàn và bảo mật cao, chẳnghạn như thương mại điện tử, bán hàng trên mạng
1.3 NGÔN NGỮ MÔ HÌNH HỢP NHẤT UML
Thiết kế hướng đối tượng là một cách suy nghĩ về vấn đề sử dụng các môhình được tổ chức xung quanh các khái niệm thế giới thực Cấu trúc nền tảng làđối tượng, nó kết hợp cả cấu trúc dữ liệu và hành vi vào trong một thực thể đơn.Các mô hình hướng đối tượng là có ích cho việc hiểu vấn đề, việc trao đổi vớingười dùng, mô hình hoá các tổ chức kinh doanh, chuẩn bị tài liệu và thiết kếchương trình cùng cơ sở dữ liệu
Phát triển hướng đối tượng là một cách suy nghĩ mới về phần mềm đặt cơ
sở trên những khái niệm trừu tượng đang tồn tại trong thế giới thực Bản chấtcủa việc phát triển hướng đối tượng là nhận biết và tổ chức các khái niệm thuộclĩnh vực ứng dụng
1.4.1 Các khái niệm cơ bản của hướng đối tượng
Trang 22nhất của UMLUML được gọi là một ngôn ngữ mô hình hóa dùng để đặc tả, trực quanhóa dùng để xây dựng và làm tư liệu cho các hệ thống phần mềm.
- Mô hình hóa: giúp cho chúng ta hiểu được thế giới thực, mô hình
hóa thế giới thực để có thể hiểu được những đặc trưng, tính toáncác thông số và dự đoán kết quả sẽ đạt được
- Ngôn ngữ: Chức năng của UML như là một phương tiện để bày tỏ
và trao đổi tri thức (giao tiếp)
- Trực quan hóa hệ thống: được sử dụng để diễn tả hệ thống một
cách trực quan trước khi nó được thực hiện
- Xây dựng hệ thống: được sử dụng để hiện thực hóa hệ thống.
- Làm tư liệu: được sử dụng để nắm bắt kiến thức về hệ thống thông
qua vòng đời của nó
UML không phải là :
Trang 23- Một ngôn ngữ lập trình trực quan, mà nó là một ngôn ngữ mô
Mô hình chứa các đối tượng (objects) tác động lẫn nhau bằng cách gởicác thông tin (messages) khác nhau Nếu một đối tượng đang tồn tại thì đốitượng đó có thuộc tính (attributes) và có các hành vi (behaviors hoặcoperations) Giá trị của các thuộc tính trong đối tượng được xác định bởi trạngthái của nó (state)
Lớp (Classes) là bảng thiết kế cho các đối tượng Lớp bao gồm các thuộctính (dữ liệu) và các hành vi (phương thức hoặc hàm) trong một thực thể riêngbiệt đơn giản Các đối tượng là các thể hiện (instance) của các lớp
1.4.3 Các đặc điểm của UML
Bốn đặc điểm chính của UML để có thể phân biệt với các ngôn ngữ môhình khác:
- Đa năng (general-purpose)
- Khả năng ứng dụng rộng rãi (broadly applicable)
- Được hỗ trợ bởi các công cụ (tool- supported)
- Là một chuẩn công nghiệp (industrial standerdized) 1.4.4 Các lược đồ trong UML
Trọng tâm của việc giải quyết vấn đề hướng đối tượng là xây dựng một
mô hình Mô hình trừu tượng hóa các chi tiết cần thiết của vấn đề cơ bản về thếgiới thực Trọng tâm của UML được thể hiện qua 8 loại lược đồ khác nhau:
- Use case diagrams (Lược đồ Use case)
- Class diagrams (Lược đồ lớp)
- Sequence diagrams (Lược đồ tuần tự)
Trang 24- Collaboration diagrams (Lược đồ cộng tác)
- Statechart diagrams (Lược đồ trạng thái)
- Activity diagrams (Lược đồ hoạt động)
- Component diagrams (Lược đồ thành phần)
- Deployment diagrams (Lược đồ triển khai)
Trang 25CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1 ĐẶC TẢ YÊU CẦU ĐỀ TÀI
Qua quá trình nghiên cứu và khảo sát tình hình hoạt động thực tế tạimột số doanh nghiệp bán hàng, em nhận thấy việc cần phải có một website
hỗ trợ cho doanh nghiệp những nghiệp vụ sau:
2.1.1 Yêu cầu chức năng:
Hệ thống cần có được các chức năng sau:
2.1.1.1 Quản lý thông tin:
- Đối với mặt hàng:
+ Mã mặt hàng+ Tên mặt hàng+ Hình ảnh+ Đơn giá+ Chi tiết sản phẩm
- Đối với khách hàng
+ Mã khách hàng+ Username+ Password+ Họ tên khách hàng+ Giới tính
+ Email+ Điện thoại+ Địa chỉ
- Đối với hóa đơn đặt hàng
+ Mã đơn đặt hàng+ Mã khách hàng+ Ngày mua hàng+ Địa chỉ giao hàng+ Ngày giao hàng
Trang 26+ Tổng tiền
- Đối với nhân viên
+ Mã nhân viên+ Username+ Password+ Họ tên nhân viên+ Email
+ Điện thoại+ Địa chỉ
- Chức năng Tìm kiếm
+ Tìm kiếm theo mã sản phẩm+ Tìm kiếm theo tên sản phẩm+ Tìm kiếm theo danh mục
- Chức năng thống kê
+ Thống kê tình hình bán hàng+ Thống kê hàng bán chạy
2.1.1.2 Chức năng khách hàng
- Khách hàng có thể tìm kiếm, xem thông tin sản phẩm hay mua
hàng
- Sau khi truy cập vào website, khách hàng có thể xem thông tin,
tìm kiếm sản phẩm mình cần mua bằng công cụ tìm kiếm hoặc cácdanh mục sản phẩm riêng biệt
- Khách hàng phải đăng ký thành viên và đăng nhập để thực hiện
chức năng “Đặt hàng” và quản lý giỏ hàng của mình
- Khách hàng nhận được sản phẩm mình cần mua sau khi đã thanh
toán tiền bằng một trong các hình thức thanh toán tại website
2.1.1.3 Chức năng Nhân viên
- Có 2 nhóm vai trò: Quản trị và Nhân viên Họ phải đăng nhập vào
hệ thống để thực hiện chức năng quản trị
- Quản trị và nhân viên có tất cả các quyền của khách hàng.
Trang 27- Nhân viên được quyền tạo, thay đổi, xóa thông tin mặt hàng, loại
hàng
- Nhân viên được quyền thay đổi, xóa thông tin đơn đặt hàng.
- Nhân viên được quyền xem, xóa thông tin khách hàng
- Quản trị có tất cả các quyền của nhân viên.
- Quản trị được quyền tạo, thay đổi, xóa thông tin nhân viên.
- Quản trị được quyền xem thông tin thống kê bán hàng.
2.1.1.4 Chức năng bán hàng:
Hệ thống bán hàng qua mạng phải tối ưu hóa và thay thế dần phươngthức bán hàng truyền thống là khách hàng đến trực tiếp cửa hàng của doanhnghiệp, lựa chọn hàng hóa, mẫu mã rồi mua hàng Việc này sẽ gây mất thờigian cho khách hàng và gây khó khăn cho cả doanh nghiệp trong việc quảnlý
2.1.1.5 Chức năng thanh toán
- Hệ thống có nhiều chức năng thanh toán thuận lợi cho khách hàng.
- Khi thanh toán bằng hình thức chuyển khoản thì phải xác thực
thông tin tài khoản với ngân hàng
2.1.2 Yêu cầu phi chức năng
Xây dựng ứng dụng webdựa trên mô hình Client – Server, liên quanđến một máy chủ và một hay nhiều máy khách nối mạng Internet.Máy kháchgởi yêu cầu đến máy chủ và máy chủ hồi đáp yêu cầu Máy khách bắt đầubằng cách thiết lập nối kết với máy chủ Máy chủ có thể chấp nhận hay từchối nối kết
Yêu cầu của bài toán được đặt ra cụ thể như sau:
- Hỗ trợ nhiều hệ điều hành.
- Hỗ trợ nhiều trình duyệt (như IE, Firefox )
- Số lượng người truy cập không giới hạn.
- Số lượng sản phẩm không giới hạn.
Trang 28- Dễ dàng cài đặt
- Dễ dàng sử dụng
- Dễ nâng cấp và bảo trì.
Trang 292.2 BIỂU ĐỒ USE CASE
2.2.1 Use case của tác nhân quản trị
Hình 2 1: Biểu đồ Use Case của tác nhân quản trị