Nhiệm vụ nghiên cứu đề tài: 1.3.1.Về mặt ứng dụng Xây dựng hệ thống quản lý dịch vụ bán hàng trên mạng, trong đó hệ thống chophép dịch vụ đăng ký một không gian để bán những mặt hàng mì
Trang 1MỤC LỤC
Trang bìa phụ……….
Phiếu giao đề tài……….
Lời cam đoan………
Lời cảm ơn………
Mục lục……… i
Danh mục các ký hiệu, các từ viết tắt………iv
Danh mục các bảng……….v
Danh mục các hình……….vi
CHƯƠNG 1: LỜI MỞ ĐẦU 1
1.1 Giới thiệu chung: 1
1.2 Mục tiêu của luận văn: 1
1.3 Nhiệm vụ nghiên cứu đề tài: 2
1.3.1.Về mặt ứng dụng 2
1.3.2 Về phía khách hàng 2
1.3.3 Về phía người quản lý 3
1.3.4 Về mặt kỹ thuật 3
1.4 Kết cấu của luận văn tốt nghiệp: 4
CHƯƠNG 2: CÔNG NGHỆ SỬ DỤNG 5
2.1 Giới thiệu ngôn ngữ lập trình JAVA: 5
2.2 MÔ HÌNH MVC 7
2.2.1 Khái niệm về MVC ( Model View Controller): 7
2.2.1.1 MVC là gì? 7
2.2.1.2 Lịch sử MVC ( Model View Controller): 7
CHƯƠNG 3: MÔ HÌNH XỬ LÝ 15
3.1 Xây dựng biểu đồ use case 15
3.2 Xây dựng biểu đồ trạng thái: 26
3.3 Biểu đồ tuần tự: 27
CHƯƠNG 4: MÔ HÌNH CƠ SỞ DỮ LIỆU 32
4.1.Mô hình chi tiết các thực thể 32
4.2.Mô hình quan hệ các thực thể: 37
Trang 2CHƯƠNG 5: DEMO SẢN PHẨM 38
5.1 BÁO CÁO CHI TIẾT PHÂN HỆ KHÁCH HÀNG 38
5.1.1.Chức năng: Hiển thị sản phẩm “Trang giảm giá hôm nay” 38
5.1.2.Chức năng: Hiển thị sản phẩm “Trang giá tốt gần đây” 41
5.1.3 Chức năng: Hiển thị sản phẩm “Trang giá tốt đã bán” 44
5.1.4.Chức năng: “Trang đăng ký tài khoản” 46
5.1.5 Chức năng: “Đăng nhập” 47
5.1.6 Chức năng: “Đăng xuất” 49
5.1.7 Chức năng: “Quản lý thông tin tài khoản” 50
5.1.8 Chức năng: “Cập nhật thông tin tài khoản (thông tin cá nhân)” 51
5.1.9 Chức năng: “Cập nhật thông tin tài khoản (địa chỉ giao nhận)” 52
5.1.10 Chức năng: “Đổi mật khẩu” 53
5.1.11 Chức năng: Hiển thị thông tin “Giới thiệu chung” 54
5.1.12 Chức năng: Hiển thị thông tin “Liên hệ” 56
5.1.13 Chức năng: Hiển thị thông tin “Dành cho doanh nghiệp” 58
5.1.14 Chức năng: Hiển thị thông tin “Hỏi đáp” 60
5.1.15 Chức năng: Hiển thị thông tin “Thông báo” 62
5.1.16 Chức năng: Hiển thị thông tin “Hướng dẫn sử dụng” 64
5.1.17 Chức năng: Thông báo chuyển khoản cho Nhanhmua.vn 65
5.1.18 Chức năng: Hiển thị chi tiết 1 sản phẩm 67
5.1.19 Chức năng: Đặt hàng - Đưa sản phẩm vào giỏ hàng 69
5.1.20 Chức năng: Xem lịch sử đơn hàng 74
5.1.21 Chức năng: Xem chi tiết một đơn hàng 75
5.1.22 Chức năng: Viết bình luận cho sản phẩm 76
5.1.23 Chức năng: Hỗ trợ trực tuyến 78
5.1.24 Chức năng: Chức năng tìm kiếm sản phẩm 79
5.2.BÁO CÁO CHI TIẾT PHÂN HỆ ADMIN 80
5.2.1.Chức năng: Đăng nhập Admin 80
5.2.2 Chức năng : Thêm xóa sửa sản phẩm 81
5.2.3 Chức năng : Thêm sản phẩm 82
5.2.4.Chức năng: Sửa sản phẩm 83
5.2.5 Chức năng: Quản lý đơn hàng 85
5.2.6 Chức năng: Chi tiết đơn hàng 86
Trang 35.2.7 Chức năng: Quản lý khách hàng 87
5.2.8 Chức năng: Quản lý danh mục 88
5.2.9 Chức năng: Quản lý liên hệ 89
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 90
6.1 Kết quả đạt được: 90
6.2 Những hạn chế của hệ thống: 91
6.3.Hướng cải tiến: 91
CHƯƠNG 7: TÀI LIỆU THAM KHẢO 92
Trang 4DANH MỤC CÁC TỪ VIẾT TẮT
01 CSS Casscading Style Sheet
02 HTML Hypertext Markup Language
03 HTTP Hypertext Transfer Protocol
04 JSP Java Server Pages
05 MVC Model View Controller
06 JVM Java Virtual Machine
07 DBMS Database Management System
08 XML eXtensible Markup Language
Trang 608 Hình 5.15 Trang quản lý thông tin tài khoản 49
Trang 7CHƯƠNG 1: LỜI MỞ ĐẦU
1.1 Giới thiệu chung:
Trong những năm gần đây, sự phát triển của thương mại điện tử ( E-Commerce)
đã đem lại nhiều lợi ích to lớn cho nền kinh tế toàn cầu Thông qua thương mại điện
tử, nhiều loại hình thức kinh doanh mới được hình thành, trong đó có mua bán hàngtrên mạng Với hình thức mới này, người tiêu dùng có thể tiếp cận với hàng hóa mộtcách dễ dàng và nhanh chóng hơn rất nhiều so với phương thức mua bán truyềnthống
Những tưởng với những thế mạnh của mình các trang website bán hàng sẽ dầnthay thế các gian hàng hay các siêu thị truyền thống Nhưng trên thực tế người muavẫn còn rất mặn mà với phương pháp mua bán cũ Một phần vì phương thức muabán cũ dần dần từng bước chuyển từ thói quen thành một nếp văn hóa, văn hóa muasắm Khi đó người ta xem hoạt động mua sắm là một hoạt động không thể thiếutrong nền văn hóa đó Vì vậy, với thương mại điện tử, chúng ta không còn phải đếntrực tiếp cửa hàng vừa tốn thời gian, sức khỏe Giờ đây, chúng ta có thể ngồi tại nhà
mà có thể mua được bất kỳ một món hàng nào mà mình thích Thật là tuyệt vời!
Chính vì thế, nhóm chúng em chọn đề tài “Xây dựng website bán hàng Nhanhmua.vn ứng dụng công nghệ Java - JSP/Servlet” nhằm làm quen với
thương mại điện tử và bắt kịp sự phát triển của nước ta như thế giới Do thời gianhạn chế, việc tìm hiểu và xây dựng một ứng dụng trên công nghệ Java đối với emrất khó khăn Dù vậy, ứng dụng cũng đã triển khai được phần lớn các yêu cầu chính
mà một ứng dụng thương mại điện tử cần đáp ứng
1.2 Mục tiêu của luận văn:
Trước hết luận văn sẽ giúp chúng ta nhận ra những mặt thiếu sót của các trangwebsite bán hàng qua mạng như hiện nay Những tiện ích, dịch vụ mà trang websitenày cần cung cấp hoặc nâng cao hơn để có thể nâng cao vị thế của mình trong nềnkinh tế hàng hóa Bên cạnh đó website nhanhmua.vn còn có những lợi ích sau:
+ Lợi ích đầu tiên và cũng là lợi ích lớn nhất mà website mang lại chính là sựquảng bá trang website nhanhmua.vn cùng với các sản phẩm giảm giá, đưa ra một
Trang 8sản phẩm khuyến mãi giảm giá có thời gian mà khách hàng cần phải mua trướcngày mà website nhanhmua.vn đã đề ra để được giảm giá
+ Việc kinh doanh sẽ mở cửa 24 tiếng/1 ngày, giảm thiểu chi phí nhân viêncho tiếp thị, quảng cáo; dễ dàng nhận phản hồi từ phía khách hàng; cơ hội mở rộngliên kết và hợp tác ở phạm vi quốc tế…
+ Nhờ có website nhanhmua.vn mà khách hàng ở bất kỳ nơi nào nếu có sửdụng Internet sẽ đều được truy cập đến website để được cung cấp những lựa chọnlinh hoạt, tiện lợi trong việc mua tìm sản phẩm thông qua chức năng giỏ hàng, cácthông tin của sản phẩm được hiển thị chi tiết, rõ ràng với giá niêm yết trên từng sảnphẩm, từ đó khách hàng dễ dàng nhận biết và lựa chọn được thứ mình cần
1.3 Nhiệm vụ nghiên cứu đề tài:
1.3.1.Về mặt ứng dụng
Xây dựng hệ thống quản lý dịch vụ bán hàng trên mạng, trong đó hệ thống chophép dịch vụ đăng ký một không gian để bán những mặt hàng mình có trên mạng.Dịch vụ sẽ có 1 account riêng trong hệ thống, họ có thể cập nhật các mặt hàng, quản
lý những đơn đặt hàng của khách hàng thông qua hệ thống Tuy nhiên, dịch vụ haymặt hàng của dịch vụ chỉ thực sự hoạt động khi đã thanh toán những chi phí cầnthiết cho hệ thống Đối với các khách hàng vào hệ thống để mua hàng, hệ thốngphải hỗ trợ sao cho khách hàng có thể tìm kiếm, chọn và đặt hàng một cách dễ dàng.Khi khách hàng đặt mua sản phẩm, hệ thống sẽ chuyển đơn đặt hàng này đến dịch
vụ bán hàng Việc giao và nhận diễn ra nội bộ giữa người bán và người mua Hệthống đóng vai trò như một siêu thị ảo, môi giới cho khách mua hàng với dịch vụ
1.3.2 Về phía khách hàng
Các khách hàng có thể đăng kí mua hàng, cũng như việc xem và lựa chọnnhững sản phẩm qua mạng nếu họ đồng ý với những sản phẩm đó Khách hàng cóthể dễ dàng xem hàng, hoặc đăng ký mua hàng bất cứ lúc nào thông qua mạng máytính khi mà máy chủ đã khởi động
Trang 9Các khách hàng còn có thể theo dõi được những sản phẩm mới màNhanhmua.vn vừa cập nhật
Khi cần thiết thì khách hàng có thể hỏi đáp thông qua công ty, hoặc thông quadiễn đàn nhằm góp ý cũng như việc thắc mắc với công ty Diễn đàn sẽ giúp kháchhàng giải quyết các vấn đề mà mình không giải quyết được
1.3.3 Về phía người quản lý
Người quản lý có thể theo dõi đơn hàng của khách hàng đang tham gia muahàng của công ty mình ( như số lượng mặt hàng của khách hàng, những phản hồi từphía khách hàng về sản phẩm…) và nắm các thông tin của khách hàng như email,địa chỉ để liên hệ khi cần
Người quản lý có thể thêm, sửa, xóa tìm kiếm sản phẩm; quản lý thông tinkhách hàng; quản lý thông tin website; quản lý thông báo, hỏi đáp của khách hàng
1.3.4 Về mặt kỹ thuật
Hệ thống phải có những khả năng về kỹ thuật như sau:
Ứng dụng triển khai trên môi trường JAVA - JSP/SERVLET
Hỗ trợ nhiều trình duyệt như ( IE, Firefox )
Hỗ trợ nhiều người dùng
Số lượng người tham gia đăng ký mua hàng không giới hạn
Số lượng các sản phẩm thêm vào không giới hạn
Một số yêu cầu khác mà ứng dụng có thể:
Dễ dàng cài đặt và dễ dàng sử dụng
Trang 101.4 Kết cấu của luận văn tốt nghiệp:
Luận văn được chia làm 07 chương
Chương I: Mở Đầu
Chương II: Công nghệ sử dụng
Chương III: Mô hình xử lý
Chương IV: Mô hình cơ sở dữ liệu
Chương V: Demo sản phẩm
Chương VI: Kết luận và hướng phát triển
Chương VII: Tài liệu tham khảo
Trang 11CHƯƠNG 2: CÔNG NGHỆ SỬ DỤNG
2.1 Giới thiệu ngôn ngữ lập trình JAVA:
Ông tổ của Java không ai khác chính là James Gosling, một lập trình viên củacông ty Sun Microsystems Cuối năm 1990 James Golsing được Sun Microsystemsgiao nhiệm vụ xây dựng một phần mềm cho các mặt hàng điện dân dụng với mụctiêu nhỏ gọn và tương thích với nhiều thiết bị phần cứng khác nhau, thế là Java rađời Đầu tiên Java có tên là Oak ( cây sồi) nhưng vì có sự trùng tên nên Oak đượcđổi tên thành Java như hiện nay
Java được thiết kế cho mục đích đa nền ( không phụ thuộc vào bất kỳ hệ điềuhành nào) nên chương trình Java sau khi biên dịch cho ra một file nhị phân khác vớicác file nhị phân thực thi của Windows như exe hay com hay java biên dịch ra mãnhị phân gọi là byte – code có đuôi mở rộng là class và được triệu gọi thực thitrong máy ảo Java ( Java Virtual Machine – JVM ) Máy ảo Java thực sự là mộttrình thông dịch bình thường có khả năng thực thi các mã byte – code tương tự như
bộ xử lý của máy tính thực thi các mã nhị phân là các chỉ thị mã máy Nói đúng hơnmáy ảo Java là một kiến trúc của bộ xử lý nhưng thực thi bằng cơ chế phần mềmthay vì phần cứng Chính vì lý do đó mà ta chỉ cần viết máy ảo Java cho từng hệđiều hành thì chương trình Java (.class) có thể chạy như nhau trong mọi hệ điềuhành dưới nền một kiến trúc máy ảo Cha đẻ của Java là hãng Sun Micosystem chịutrách nhiệm xây dựng các máy ảo Java cho những hệ điều hành khác nhau Nhiệm
vụ của lập trình viên là chỉ viết chương trình mã nguồn Java sau đó biên dịchchương trình ra dạng file thực thi byte – code để chạy trên máy ảo
Java có thể dùng để viết chương trình ứng dụng tương tự như mọi ngôn ngữ lậptrình khác, Java thiên về lập trình cho các ứng dụng mạng và Internet Ngoài ra ta
có thể dùng Java để viết các Applet hoặc Servlet hay trang JSP là những thành phầnứng dụng dành cho trình duyệt Internet ( browser) và trình chủ ( Web Server).Java là một ngôn ngữ đơn giản, hướng đối tượng, phân tán, thông dịch mạng
mẽ, bảo mật, cấu trúc độc lập, khả chuyển, hiệu quả cao và linh động ( the Java TM
Trang 12Language an Overview – Sun Microsystems) Đó là những đặc điểm quan trọng màkhông phải bất cứ một ngôn ngữ lập trình nào cũng có được.
Công nghệ Java được chia làm 3 loại ứng dụng:
- J2SE (Java 2 Standard Edition): gồm các công cụ, đặc tả, API của nhânJava giúp phát triển các ứng trên trên desktop và định nghĩa các phần thuộc nhân
của Java
- J2ME (Java 2 Micro Edition): gồm các công cụ, đặc tả, API mở rộng để
phát triển các ứng dụng Java chạy trên điện thoại di động, thẻ thông minh…
- J2EE ( Java 2 Enterprise Edition): gồm các công cụ, đặc tả, API mở rộngI2SE để phát triển các ứng dụng qui mô xí nghiệp, chủ yếu để chạy trên máy chủ(server) và bộ phận được nhắc đến nhất của công nghệ này đó chính JSP/Servlets.JSP và Servlettrong kiến trúc J2EE
Các temlate Data, ngôn ngữ Script,
Custo, Element và các đối tượng Java
Server Side -> nội dung động-> Client
Chương trình java cho phép phát sinhnội dung động và tương tác với cácWeb Client thông qua cơ chế Request -Response
Template Data: XML, HTML
Client: Web Browser
Trang 132.2.1.2 Lịch sử MVC ( Model View Controller):
Bắt đầu vào những năm 70 của thế kỷ 20, tạo phòng thí nghiệm Xerox PARC ởPalo Alto Sự ra đời của giao diện đồ họa ( Graphic User Interface) và lập trìnhhướng đối tượng( Object Oriented Programming) cho phép lập trình viên làm việcvới những thành phần đồ họa như những đối tượng đồ họa có thuộc tính và phươngthức riêng của nó Không dừng lại ở đó, những nhà nghiên cứu ở Xerox PARC còn
đi xa hơn khi cho ra đời cái gọi là kiến trúc MVC(Model View Controller) Kiếntrúc MVC đã được ứng dụng để xây dựng rất nhiều thư viện đồ họa khác nhau Tiêubiểu là bộ thư viện đồ họa của ngôn ngữ lập trình hướng đối tượng SmallTalk( cũng do Xerox PARC nghiên cứu và phát triển vào thập niên 70 của thế kỷ 20)
Trang 142.2.1.3 Các thành phần trong MVC ( Model View Controller):
Mô hình MVC gồm 3 thành phần: Model , View và Controller
Định nghĩa các thành phần trong mô hình MVC như sau:
Model ( mẫu)
o Là các thành phần hỗ trợ ánh xạ dữ liệu vật lý lên bộ nhớ, lưu trữ dữliệu tạm thời trên bộ nhớ, hỗ trợ các cách thức xử lý dữ liệu, hỗ trợkhả năng giao tiếp và trao đổi dữ liệu giữa các đối tượng khác trong
Trang 15o Trong mô hình ứng dụng Web thì html, servlet, jsp … là những thànhphần đại diện cho View.
Controller ( điều khiển )
o Là các thành phần hỗ trợ kết nối người dùng server, nhập yêu cầungười dùng, thực hiện chuyển xử lý, lựa chọn và cập nhật model vàview tương ứng để trình bày về phía người dùng
o Hỗ trợ kết nối giữa người model và view, giúp model xác định đượcview trình bày
o Trong mô hình ứng dụng website thì servlet đóng vai trò củaController
Quá trình phát triển của MVC được thực hiện tuần tự như sau:
Không có khái niệm gì về mô hình: tất cả thiết kế đều tập trung viết code trựctiếp trên các ngôn ngữ script và ngôn ngữ tag để hỗ trợ trình bày dữ liệu trênBrowser – dạng website tĩnh
Mô hình MVC2: Đây là mô hình thực tế áp dụng tiếp cận theo đúng khái niệm
đã nêu ra ở trên, tách biệt riêng biệt thành từng thành phần, tạo nên sự uyển chuyểnkhi vận dụng và cài đặt, đặc biệt là bảo trì nâng cấp
Trang 16Cơ chế thực hiện:
+ Website Browser gửi request đến server thông qua các control trên formHTML hay JSP, hay query string url hay qua cookies
+ Servlet – Controller đón nhận request và xác định Model tương ứng để tạo
ra instance của JavaBean để đón nhận các giá trị nhập từ request để lưu trữ và xử lý
+ Model thực hiện xử lý, kết nối dữ liệu vật lý dưới DBMS (nếu có) và trảkết quả trả về cho Controller
+ Kết quả xử lý được chuyển vào Servlet – Controller, Servlet Controllerthực hiện tạo hay lựa chọn View để từ đó đưa kết quả xử lý hay dữ liệu lấy từModel để cập nhật lại trang kết quả View
+Controller gửi View qua response cho người dùng để browser có thể trìnhbày dữ liệu trong Website Browser
Mô tả Model:
Một thành phần cấu thành object (đối tượng) chứa đầy đủ đặc tính của object đó
là state ( trạng thái ) và behaviors (các hành vi) Bên cạnh đó phải đảm bảo 4 tínhchất: abstraction (mang tính chất chung nhất của object) ; encapsulation (cho phépngười dùng truy cập các trạng thái của object thông qua các behavior); hierarchy (cótính kế thừa); modularity (phân chia module theo từng nhóm chức năng và tách biệt
Trang 17các thành phần theo dạng component để có thể dễ dàng cài đặt, maintenance – bảotrì, và tái sử dụng – reusable ).
Mô tả thành phần Controller (ở đây mô tả khái niệm về Servlets)
Servlet là đoạn chương trình java thực thi trên Website Server hỗ trợ người lậptrình Java xây dựng trang website động mà không cần học ngôn ngữ lập trìnhwebsite mới
Servlet nhận request – yêu cầu từ client, sau đó thực hiện các yêu cầu xử lý đểgửi response – phản hồi đến người dùng sử dụng HTTP
Servlet được load sẵn ở Website Server duy nhất lần đầu tiên khi ứng dụngđược deploy và đáp ứng tức thời yêu cầu của người dùng thông qua WebsiteContainer Người dùng không lo lắng đến chuyện khởi tạo Servlet(như cách chúng
ta phải dùng lệnh new đối với việc tạo ra một instance mới cho một object)
Servletđược server hỗ trợ cơ chế multithread giúp giảm tài nguyên và quá tảitrong việc xử lý của server hay container
Khuyết điểm:
+ Không thích hợp cho việc trình bày và xử lý giao diện vì code html đượcviết trong chuỗi String của các câu lệnh Java, rất khó trong việc checking và kiểmtra lỗi về tính đúng đắn của văn bản xml (well-form)
+ Không hỗ trợ đầy đủ các thành phần liên quan đến session
+ Về phía người dùng có thể nói tương tác chỉ là single thread vì người dùngkhông thể xác định instance Servlet phục vụ cho mình mà container, server tự độngxác định instance tương ứng và yêu cầu nó xử lý Chúng ta chỉ biết được xử lý khithấy kết quả được hiển thị ở browser Nghĩa là mọi thứ xử lý phải lệ thuộccontainer
Trang 18Cơ chế hoạt động
Khi có request từ client gửi đến Server hay Website Container Container sẽ lựachọn một instance Servlet tương ứng để đáp ứng request đó (người dùng sẽ khôngbao giờ biết instance nào được lựa chọn, nó lựa chọn khi nào, Servlet xử lý khinào)
Servlet lựa chọn sẽ thực hiện xử lý và kết nối DB nếu cần Sau khi Servlet thựchiện xong, sẽ gửi kết quả ra container để gửi response về cho người dùng Browserđón nhận kết quả và trình bày ra màn hình dữ liệu
Mô tả về view ( Mô tả về JSP)
Những đối tượng có khả năng trình bày dữ liệu ra màn hình như html, jsp … Đóchính là JSP viết tắt của Java Server Pages
+ Đây là ngôn ngữ scripting được dùng ở server để hỗ trợ ứng dụng trongviệc trình bày trang website động – cập nhật dữ liệu
+ JSP tích hợp bao gồm HTML, XML, Java Code, và kể cả Servlet nghĩa là
nó tạo thuận lợi cho người dùng trong việc xây dựng giao diện – khắc phục nhượcđiểm của Servlet về giao diện; Ngoài ra, nó cho người dùng mở rộng khả năng sửdụng JSP qua việc định nghĩa các tag mới như XML – khắc phục nhược điểm củaHTML; Đặc biệt cho phép người dùng sử dụng nhúng trực tiếp code Java vào trongJSP thông qua Declaration – khai báo biến và hàm, Scriptlets – chứa code trực tiếpcủa Java và Expression – tính toán biểu thức và in kết quả ra màn hình Những điều
Trang 19này tạo điều kiện cho người lập trình Java không cần học các ngôn ngữ script mớikhi lập trình.
Bản chất của JSP là Servlet, do vậy các thành phần của Servlet sẽ có tồn tại hếttrên JSP Ngoài ra, JSP không cần phải biên dịch mà nó được biên dịch khi córequest lần đầu tiên yêu cầu đến server, do vậy JSP khắc phục nhược điểm chỉnhsửa phải cần có source code và biên dịch lại khi deploy sau khi chỉnh sửa củaServlet JSP cung cấp các thành phần implicit Object để người dùng có thể sử dụngcác thành phần tương tác trên server mà không cần khai báo và khởi tạo Kết xuấtcủa JSP thực chất là html file, JSP có phần mở rộng là jsp
Ưu điểm MVC:
Phát triển phần mềm: có tính chuyên nghiệp hóa, có thể chia cho nhiều nhómđược đào tạo nhiều kỹ năng, từ thiết kế mỹ thuật cho đến lập trình đến tổ chứcdatabase
Bảo trì: với các lớp được phân chia thì các thành phần của một hệ thống dễđược thay đổi nhưng sự thay đổi có thể được cô lập trong từng lớp, hoặc chỉ ảnhhưởng đến lớp nga gần kề của nó, chứ không phát tán náo loạn cả chương trình
Mở rộng: Với các lớp được chia theo ba lớp như đã nói, việc thêm chức năngvào cho từng lớp sẽ dễ dàng hơn là phân chia theo cách khác
Tiện về bug lỗi, kiểm soát code, workflow dễ dàng hơn và nhiều người có thểtham gia phát triển cùng trên 1 module
Nhược điểm:
Gia tăng sự phức tạp
Sự kết nối chặc chẽ của View và Controller đối với Model
Sự thay đổi với giao diện Model đòi hỏi sự thay đổi song song trongg View và
có thể đòi hỏi sự thay đổi thêm đối với Controller Sự thay đổi code nào đó có thểtrở nên khó khăn hơn
Cơ chế truyền sự thay đổi có thể không hiệu quả khi Model thay đổi thườngxuyên đòi hỏi nhiều thông báo thay đổi Đây không phải là vấn đề chung nếupassive Model được sử dụng
Trang 203.1 Xây dựng biểu đồ use case
Use case tổng quát
Use case đăng nhập / đăng xuất
Use case cập nhật
Use case cập nhật danh mục sản phẩm
Use case cập nhật sản phẩm
Use case đặt hàng
Use case quản lý đơn hàng
Biểu đồ Use case tổng quát
Từ các yêu cầu về chức năng của hệ thống, ta có thể mô hình hóa các chức năngcủa hệ thống bởi biểu đồ Use case tổng quá sau:
Mô tả Use case tổng quát: Ở mức tổng quát, hệ thống có những chức năng nhưhình trên Người quản trị có thể thực hiện đăng nhập, đăng xuất hệ thống
Trang 21(trang quản trị) để quản lý thông tin cho hệ thống Gồm có cập nhật các thông tin vàthực hiện chức năng quản lý đơn hàng Còn khách hàng thì có thể truy cập hệ thống,thực hiện tìm kiếm sản phẩm, tạo và gửi giỏ hàng ( chức năng đặt hàng).
Phân rã biểu đồ Use case và kịch bản ( scenario)
Phân rã use case cập nhật
Mô tả use case cập nhật: Cập nhật danh mục sản phẩm và cập nhật sản phẩm.Gồm các thao tác thêm, xóa, sửa, tìm kiếm thông tin danh mục ( hoặc sản phẩm) Phân rã use case Cập nhật sản phẩm
Trang 22Mô tả use case cập nhật sản phẩm: Người quản trị thực hiện chức năng cập nhậtsản phẩm trong trang quản trị Bao gồm các chức năng con Thêm, Sửa, Xóa sảnphẩm Các thông tin của sản phẩm sẽ được hiển thị trên trang người dùng cho kháchhàng xem Trong quá trình cập nhật sản phẩm, chức năng tìm kiếm sản phẩm được
sử dụng trong quá trình thực hiện các chức năng trên
Trang 23Kịch bản use case thêm sản phẩm
Tác nhân chính Người quản trị
Người chịu trách nhiệm Người quản trị
Tiền điều kiện Tác nhân đang trong phiên làm việc của mình, đang ở trang Quản
lý sản phẩmĐảm bảo tối thiểu Hệ thống loại bỏ các thông tin đã thêm và quay lui lại bước trướcĐảm bảo thành công Thông tin về sản phẩm mới được bổ xung vào CSDL
Kích hoạt Người quản trị chọn chức năng “ Thêm sản phẩm”
Chuỗi sự kiện chính
1 Hệ thống hiển thị form thêm sản phẩm và yêu cầu người quản trị đưa vào thông tin sảnphẩm
2 Người quản trị nhập thông tin về sản phẩm mới và nhấn “ Lưu”
3 Hệ thống kiểm tra thông tin sản phẩm và xác nhận thông tin hợp lệ
4 Hệ thống nhập thông tin sản phẩm mới vào cơ sở dữ liệu
5 Hệ thống thông báo đã nhập thành công
6 Người quản trị thoát khỏi chức năng thêm sản phẩm
Ngoại lệ
3.a Hệ thống thông báo sản phẩm đã có trong cơ sở dữ liệu
3.a.1 Hệ thống yêu cầu người quản trị nhập lại thông tin
3.a.2 Người quản trị nhập lại thông tin sản phẩm
3.b Hệ thống thông báo thông tin sản phẩm không hợp lệ
3.b.1 Hệ thống yêu cầu người quản trị nhập lại thông tin
3.b.2 Người quản trị nhập lại thông tin sản phẩm
Kịch bản use case sửa sản phẩm
Tác nhân chính Người quản trị
Trang 24Mức 3
Người chịu trách nhiệm Người quản trị
Tiền điều kiện Tác nhân đang trong phiên làm việc của mình, đang ở trang Quản lý
sản phẩmĐảm bảo tối thiểu Hệ thống loại bỏ các thông tin đã thêm và quay lui lại bước trướcĐảm bảo thành công Thông tin về sản phẩm mới được cập nhật vào CSDL
Kích hoạt Người quản trị chọn chức năng “ sửa sản phẩm”
Chuỗi sự kiện chính
1 Hệ thống hiển thị form sửa sản phẩm và yêu cầu người quản trị đưa vào thông tin sảnphẩm
2 Người quản trị nhập thông tin về sản phẩm mới và nhấn “ Lưu”
3 Hệ thống kiểm tra thông tin sản phẩm và xác nhận thông tin hợp lệ
4 Hệ thống nhập thông tin sản phẩm mới vào cơ sở dữ liệu
5 Hệ thống thông báo đã nhập thành công
6 Người quản trị thoát khỏi chức năng thêm sản phẩm
Ngoại lệ
3.a Hệ thống thông báo sản phẩm đã có trong cơ sở dữ liệu
3.a.1 Hệ thống yêu cầu người quản trị nhập lại thông tin
3.a.2 Người quản trị nhập lại thông tin sản phẩm
3.b Hệ thống thông báo thông tin sản phẩm không hợp lệ
3.b.1 Hệ thống yêu cầu người quản trị nhập lại thông tin
3.b.2 Người quản trị nhập lại thông tin sản phẩm
Kịch bản use case xóa sản phẩm
Tác nhân chính Người quản trị
Người chịu trách nhiệm Người quản trị
Tiền điều kiện Tác nhân đang trong phiên làm việc của mình, đang
Trang 25ở trang Quản lý sản phẩm Đảm bảo tối thiểu Hệ thống loại bỏ các thông tin đã thêm và quay lui
lại bước trước
Đảm bảo thành công Thông tin về sản phẩm mới được bổ xung vào cơ sở
2.a Người quản trị nhấn vào nút “ No”
2.a.1 Hệ thống tiếp tục phiên làm việc hiện tại
Kịch bản use case Tìm kiếm sản phẩm
Tác nhân chính Người quản trị
Người chịu trách nhiệm Người quản trị
Tiền điều kiện Tác nhân đang trong phiên làm việc của mình, đang ở
Trang 262 Hiển thị sản phẩm cần tìm kiếm.
Ngoại lệ
2.a Người quản trị viên nhập tên sản phẩm không chính xác thì sẽ hiển thị ra thôngbáo “chưa nhập tên sản phẩm” sau đó nhấn nút OK
2.a.1 Hệ thống tiếp tục phiên làm việc hiện tại
Phân rã use case đặt hàng
Trang 27Mô tả use case đặt hàng: Khách hàng truy cập trang website thực hiện chứcnăng đặt hàng Quá trình tìm sản phẩm để thêm vào giỏ hàng, khách hàng có thể sửdụng chức năng tìm kiếm sản phẩm Sau đó chọn được sản phẩm muốn mua, kháchhàng sẽ thực hiện thêm hàng, sau khi thêm hàng thì sản phẩm được cập nhật và hiểnthị trong giỏ hàng Khi chọn xong những sản phẩm muốn mua, khách hàng có thểthực hiện cập nhật giỏ hàng để cập nhật số lượng hàng của mỗi sản phẩm Nếukhách hàng không muốn mua sản phẩm nào thì có thể xóa hàng Cuối cùng, kháchhàng sẽ thực hiện gửi đơn hàng Trong đó khách hàng sẽ điền đầy đủ thông tin cánhân của mình để người quản trị hệ thống có thể liên lạc lại Thông tin giỏ hàngđược gửi vào email của người quản trị và được lưu lại vào cơ sở dữ liệu Sau đó hệthống sẽ tạo đơn hàng mới trong trường hợp khách hàng tiếp tục đặt hàng.
Kịch bản cho use case Thêm hàng
Trang 28Tên usecase Thêm hàng
Tác nhân chính Khách hàng
Người chịu trách nhiệm Khách hàng
Tiền điều kiện Khách hàng đang ở trang sản phẩm
Đảm bảo tối thiểu Hệ thống giữ nguyên thông tin giỏ hàng và chuyển tới
trang chi tiết giỏ hàngĐảm bảo thành công Sản phẩm vừa được thêm vào giỏ hàng
Kích hoạt Người quản trị nhấn nút vào “ Chọn hàng”
Chuỗi sự kiện chính
1 Hệ thống kiểm tra thông tin sản phẩm và xác nhận có sản phẩm trong cơ
sở dữ liệu
2 Hệ thống kiểm tra sản phẩm trong giỏ hàng
3 Nếu sản phẩm chưa có trong giỏ hàng thì thêm sản phẩm vào giỏ hàng với
1.a Hệ thống kiểm tra không có sản phẩm trong cơ sở dữ liệu
1.a.1 Hệ thống đưa thông báo sản phẩm không có, không thể thêm giỏ hàng.1.a.2 Hệ thống quay lui lại trang trước
Kịch bản cho use case xóa hàng
Trang 29Người chịu trách nhiệm Khách hàng
Tiền điều kiện Khách hàng đang ở trang sản phẩm
Đảm bảo tối thiểu Thông tin giỏ hàng được giữ nguyên
Đảm bảo thành công Sản phẩm được chọn xóa sẽ bị xóa khỏi giỏ
hàng hiện tại trong cơ sở dữ liệuKích hoạt Người quản trị chọn chức năng “ xóa hàng”Chuỗi sự kiện chính
1 Hệ thống đưa ra thông báo yêu cầu người quản trị xác nhận xem có thực sựmuốn xóa sản phẩm khỏi giỏ hàng hay không
2 Người quản trị nhấn nút Yes Hệ thống loại bỏ thông tin sản phẩm đã chọnkhỏi cơ sở dữ liệu
3 Hệ thống chuyển về trang chi tiết giỏ hàng
Ngoại lệ
2.a Người quản trị nhấn nút “No”
2.a.1 Hệ thống tiếp tục phiên làm việc hiện tại
Kịch bản use case gửi đơn hàng
Trang 30Đảm bảo tối thiểu Thông tin giỏ hàng được giữ nguyên.
Đảm bảo thành công Đơn hàng được gửi đi, hệ thống khởi tạo 1 phiên làm việc
mới
Kích hoạt Người quản trị chọn chức năng “ Gửi giỏ hàng”
Chuỗi sự kiện chính
1 Hệ thống chuyển về form gửi giỏ hàng với thông tin sản phẩm hiện có
2 Khách hàng nhập các thông tin liên hệ của mình và nhấn nút “ Gửi giỏ hàng”
3 Hệ thống kiểm tra thông tin giỏ hàng, xác nhận thông tin hợp lệ
4 Hệ thống gửi thông tin giỏ hàng vào email của người quản trị
5 Hệ thống thông báo giỏ hàng đã gửi thành công
6 Hệ thống khởi tạo phiên làm việc mới ứng với giỏ hàng mới cho khách hàng.Ngoại lệ
3.a Hệ thống thông báo thông tin giỏ hàng không hợp lệ
2.a.1 Hệ thống yêu cầu nhập lại thông tin giỏ hàng
2.a.2 Khách hàng nhập lại thông tin giỏ hàng
3.2 Xây dựng biểu đồ trạng thái:
Biểu đồ trạng thái lớp Đơn hàng trong chức năng đặt hàng
Trang 31Thể hiện biểu đồ trạng thái của lớp Đơn hàng xét riêng trong chức năng đặthàng Trong biểu đồ này ta có các trạng thái không có hàng – chưa gửi, có hàng –chưa gửi, có hàng – đã gửi.
Biểu đồ trạng thái lớp Đơn hàng trong chức năng quản lý đơn hàng
Trang 32Thể hiện biểu đồ trạng thái của lớp Đơn hàng xét riêng trong chức năng quản lýđơn hàng Trong biểu đồ này ta có các trạng thái chờ xử lý, đang xử lý, đã xử lý.
3.3 Biểu đồ tuần tự:
Các biểu đồ tuần tự nhằm mô tả lại các scenario (kịch bản) của các use casetương ứng dựa trên các lớp đã được xác định trong pha phân tích Ngoài ra với mỗichức năng còn có thêm một hoặc nhiều lớp giao diện và lớp điều khiển cho chứcnăng đó.Mục này sẽ trình bày các biểu đồ tuần tự gồm:
Biểu đồ tuần tự cho chức năng Đăng nhập
Biểu đồ tuần tự cho chức năng Thêm sản phẩm
Biểu đồ tuần tự cho chức năng Sửa sản phẩm
Biểu đồ tuần tự cho chức năng Tìm kiếm sản phẩm
Biểu đồ tuần tự cho chức năng Đặt hàng
Biểu đồ tuần tự cho chức năng đăng nhập
Các đối tượng tham gia gồm: Người quản trị, form đăng nhập, đối tượng điềukhiển đăng nhập và đối tượng người quản trị
Trang 33Biểu đồ tuần tự cho chức năng thêm sản phẩm
Các đối tượng tham gia gồm: Người quản trị, form quản lý sản phẩm, formthêm sản phẩm, đối tượng điều khiển thêm sản phẩm, đối tượng sản phẩm
Trang 34Biểu đồ tuần tự cho chức năng sửa sản phẩm
Các đối tượng tham gia gồm: Người quản trị, form quản lý sản phẩm, form sửasản phẩm, đối tượng điều khiển sửa sản phẩm, đối tượng sản phẩm
Biểu đồ tuần tự cho chức năng tìm kiếm sản phẩm ( trang quản trị và trangngười dùng)
Các đối tượng tham gia gồm: Người quản trị ( hoặc khách hàng), form tìmkiếm, form kết quả tìm kiếm, đối tượng điều khiển tìm kiếm, đối tượng sản phẩm
Trang 35Biểu đồ tuần tự cho chức năng đặt hàng
Các đối tượng tham gia gồm: Khách hàng, Người quản trị, form chi tiết giỏhàng, form gửi đơn hàng, đối tượng điều khiển khách hàng, đối tượng sản phẩm, đốitượng đơn hàng, đối tượng sản phẩm bán
Trang 37CHƯƠNG 4: MÔ HÌNH CƠ SỞ DỮ LIỆU
4.1.Mô hình chi tiết các thực thể
2 IDLoaibaiviet Int 11 Mã loại bài viết
3 Tenbaiviet Varchar 255 Tên bài viết
Chi tiết đơn hàng (Bảng 4.1.2)
ST
T
Danh mục ( Bảng 4.1.4)
Trang 38T
Đơn đặt hàng ( Bảng 4.1.5)
6 Hinhthucchuyenkhoan Varchar 45 Hình thức chuyển
khoản
chuyển khoản
Email ( Bảng 4.1.6)
ST
T
3 Tendangnhap Varchar 45 Tên đăng nhập
Hình ảnh minh họa ( Bảng 4.1.7)
Trang 392 Mamathang Int 11 Mã mặt hàng
Khách hàng ( Bảng 4.1.8)
10 Avatar Varchar 255 Avatar của khách hàng
Liên hệ ( Bảng 4.1.9)
p
Ngày gửi
Loại bài viết ( Bảng 4.1.10)
Diễn giải
Trang 402 Madanhmuc Varchar 45 Mã danh mục
3 Tendangnhap Varchar 200 Tên đăng nhập
5 Hinhanh Varchar 45 Hình ảnh mặt hàng khuyến mãi
9 Soluongkhuyenmai Int 11 Số lượng khuyến mãi
10 Giakhuyenmai Float Giá khuyến mãi
12 Diemnoibat Longtext Điểm nổi bật
14 Thongtinchitiet Longtext Thông tin chi tiết
15 Soluongdatmua Int 11 Số lượng đặt mua
Tài khoản ( Bảng 4.1.12)
Thông tin tài khoản ( Bảng 4.1.13)
4 Tennguoichuyen Varchar 45 Tên người chuyển
6 Sodienthoai Varchar 45 Số điện thoại
Tình trạng đơn hàng ( Bảng 4.1.14)