Tiểu luận môn lập trình nâng cao Thiết kế website thương mại điện tử Ngày nay, thương mại điện tử đã trở nên hết sức phổ biến trong cuộc sống của chúng ta.Mua sắm là một nhu cầu không thể thiếu của con người, nhưng không phải ai cũng có thời gian để mất hàng giờ để đi mua món đồ mình ưa thích.Mua bán online chính là một giải pháp hữu hiệu để khắc phục những vấn đề đó.
Trang 1LỜI NÓI ĐẦU
Ngày nay, thương mại điện tử đã trở nên hết sức phổ biến trong cuộc sống của chúng ta.Mua sắm là một nhu cầu không thể thiếu của con người, nhưng không phải ai cũng có thời gian để mất hàng giờ để đi mua món đồ mình ưa thích.Mua bán online chính là một giải pháp hữu hiệu để khắc phục những vấn đề đó.
Vấn đề lớn nhất của việc mua bán online đó chính là chất lượng sản phẩm hay nói cách khác
là độ tin tưởng vào người bán.Và giờ đây, với sự phát triển vượt bậc về công nghệ, vấn đề đó đã được giải quyết dễ dàng : Các trang web bán hàng online có uy tín lần lượt xuất hiện : raovat.com,rongbay.com , chotot.com… là những trang web cực kì nổi tiếng và bạn có thể mua hay bán bất cứ thứ gì trên đó.Thực sự, đó là một cơ hội cho những người muốn bán hàng nhưng chưa có cửa hàng của riêng mình hay những người muốn mua hàng mà lại thiếu thời gian lựa chọn.
Trong khuôn khổ bài tập lớn môn lập trình nâng cao, nhóm em đã quyết định thiết kế một website bán hàng online tương tự như các trang web trên nhưng ở một quy mô nhỏ hơn nhất nhiều.Mục đích chính của nhóm là học thêm kiến thức mới cũng như thực hành lại những kĩ năng đã học.do đó, sản phẩm cuối cùng có thể chưa được hoàn thiện.
Trang 2DANH MỤC HÌNH VẼHình 1: Biểu đồ hoạt động của hệ thống
Hình 2 : Biểu đồ hoạt động của hệ thống
Hình 3: Biểu đồ lớp
DANH MỤC BẢNG BIỂUBảng 1: Ca sử dụng đặt hàng
Trang 3I Phân tích hệ thống
1 Khảo sát yêu cầu hệ thống
1.1 Yêu cầu chức năng
Hệ thống có 3 chức năng chính :
Tìm kiếm
Đặt hàng
Duy trì thông tin sản phẩm để người dùng có thể tra cứu
1.2 Yêu cầu phi chức năng
Giao diện đơn giản , dễ nhìn , thân thiện với người dùng
Các thao tác sử dụng để đặt hàng hay tra cứu thông tin phải đơn giản
Dễ dàng chỉnh sửa cũng như cập nhật thông tin
Dựa vào các chức năng cơ bản của hệ thống, ta xây dựng biểu đồ hoạt động của
hệ thống như hình 1 Ta Như trên biểu đồ ta đã thấy ,hệ thống thưc hiện 5 hoạt độngchính:
Đặt hàng : khi những khách hàng muốn mua sản phẩm được quảngcáo trên Web thì sẽ sử dụng chức năng này
Tìm kiếm : khi người dùng muốn truy vấn tìm kiếm một sản phẩmnào đó thì sẽ sử dụng chức năng này
Duy trì thông tin sản phẩm : luôn luôn duy trì thông tin sản phẩm đểngười dùng có thể tra cứu một cách dễ dàng nhất
Quảng cáo :
Quản lý người dùng : quản lý những người sử dụng
Trang 4Từ biểu đồ hoạt động trên ta sẽ xây dựng biểu đồ ca sử dụng
Trang 5Use case name: Đặt hàng ID: 01 Level: High
Primary actor:Khách hàng-Customer Use Case Type: Detail, essential Stakaholders and Interests:
Normal Flow of Events:
1 Khách hàng khi muốn mua hàng sẽ truy nhập vào menu đặt hàng
2 Khách hàng tiến hành nhập thông tin vào menu đặt hàng
3 Hệ thống sẽ tiến hành kiểm tra đơn hàng
4 Hệ thống sẽ duy trì đơn hàng đến khi nào mặt hàng đó được gửi đi vàthanh toán thì sẽ hủy
Subflows:
Alternate/Exception Flows:
Bảng 1: Ca sử dụng đặt hàng
Trang 6Use case name: Tìm kiếm ID: 02 Level: High
Primary actor:Khách hàng-Customer Use Case Type: Detail, essential Stakaholders and Interests:
Khách hàng : thực hiên thao tác tìm kiếm
Normal Flow of Events:
1 Khách hàng khi muốn tìm thông tin sẽ chọn menu tìm kiếm
2 Khách hàng tiến hành nhập thông tin vào menu tìm kiếm
3 Hệ thống sẽ gửi trả kết quả tìm kiếm là thông tin sản phẩm
Subflows:
Alternate/Exception Flows:
Bảng 2: Ca sử dụng tìm kiếm
Trang 7Use case name: Duy trì thông tin sản
Primary actor:DistributionSystem Use Case Type: Detail, essential
Stakaholders and Interests:
DistributionSystem: duy trì thông tin sản phẩm trên Web
Normal Flow of Events:
1 Hệ thống liên tục duy trì thông tin sản phẩm trên Web : sửa khi thay đổi.thêm vào khi có sản phẩm mới
Subflows:
Alternate/Exception Flows:
Bảng 3: Ca sử dụng duy trì thông tin sản phẩm
Trang 8Use case name: Quảng cáo ID: 04 Level: High
Primary actor:System Use Case Type: Detail, essential Stakaholders and Interests:
AdvSystem : thực hiện việc quảng cáo
Normal Flow of Events:
4 Khách hàng khi muốn tìm thông tin sẽ chọn menu tìm kiếm
5 Khách hàng tiến hành nhập thông tin vào menu tìm kiếm
6 Hệ thống sẽ gửi trả kết quả tìm kiếm là thông tin sản phẩm
Subflows:
Alternate/Exception Flows:
Bảng 4: Ca sử dụng quảng cáo
Trang 9Use case name: Quản lý user ID: 05 Level: High
Primary actor:System Use Case Type: Detail, essential Stakaholders and Interests:
System : quản lý thông tin khách hàng
Normal Flow of Events:
1 Hệ thống quản lý thông tin khách hàng và nhân viên
Subflows:
Alternate/Exception Flows: 1a.Hệ thống tiến hành cập nhật khi có thay
đổi
Bảng 5: Ca sử dụng quản lý User
Trang 10Use case name: Kiểm tra ID: 06 Level: High
Primary actor:System Use Case Type: Detail, essential Stakaholders and Interests:
Hệ thống kiểm tra thông tin
Normal Flow of Events:
1 Hệ thống tiến hành kiểm tra thông tin người dùng và sản phẩm
2 Hệ thống thông báo kết quả kiểm tra lại cho người dùng
Subflows:
Alternate/Exception Flows:
Bảng 6: Ca sử dụng kiểm tra
Trang 11Bảng 7: Mối quan hệ giữa các ca sử dụng
2.3 Biểu đồ hoạt động của hệ thống :
Hình 2 : Biểu đồ hoạt động của hệ thống
Trang 12Ta xây dựng thẻ CRC của các lớp như sau :
Class Name: nhân viên
Description: mô tả thông tin và các hoạt động
của nhân viên
Associated Use Case:
Quản lý thông tin User vàCustomer
Generalization (a kind of):
Aggregation (has parts):
Other Associations: sản phẩm
Trang 13Bảng 8: Thẻ CRC lớp Nhân viên
Class Name:
Description: mô tả thông tin và các hoạt động
của Custormer
Associated Use Case:
Đặt hàngQuản lý User và Customer
Generalization (a kind of):
Aggregation (has parts):
Other Associations: sản phẩm, đơn đặt hàng
Trang 14Bảng 9: Thẻ CRC lớp Customer
Class Name: Đơn
Description: mô tả thông tin của đơn đặt hàng Associated Use Case:
Trang 15Generalization (a kind of):
Aggregation (has parts):
Other Associations: sản phẩm, khách hàng
Bảng 10: Thẻ CRC lớp Đơn đặt hàng
Class Name: Sản
Description: mô tả thông tin của sản phẩm Associated Use Case:
Đặt hàng, Tìm kiếm
Responsibilities
Đưa thông tin đến khách hàng Collaborat khách hàng, nhân viên, đơn đặthàng
Trang 16Generalization (a kind of):
Aggregation (has parts):
Other Associations: sản phẩm, khách hàng, đơn đặt hàng
Bảng 11: Thẻ CRC lớp Sản phẩm
Class Name: Nhóm
Description: mô tả thông tin của một nhóm các
sản phẩm
Associated Use Case:
Đặt hàng, tìm kiếm
Trang 17Generalization (a kind of):
Aggregation (has parts):
Other Associations: sản phẩm, khách hàng
Bảng 12: Thẻ CRC lớp Nhóm sản phẩm
Description: mô tả thông tin của quảng cáo Associated Use Case:
Đặt hàng
Trang 18Generalization (a kind of):
Aggregation (has parts):
Other Associations: sản phẩm, khách hàng
Bảng 13: Thẻ CRC lớp Quảng cáo
Class Name: Đơn
Trang 19Description: mô tả thông tin của đơn đặt hàng Associated Use Case:
Generalization (a kind of):
Aggregation (has parts):
Other Associations: sản phẩm, khách hàng
Bảng 14: Thẻ CRC lớp Đơn đặt hàng
Từ các thẻ CRC ta sẽ lập được biểu đồ lớp như sau :
Trang 20Hình 3: Biểu đồ lớp
II Lập trình theo mô hình 3 lớp
Khi bạn mới tiếp xúc với Windows Form và ADO.NET, việc lập trình bắt đầu trở lên phức tạp khi dự án lớn dần Bởi vậy để dễ quản lý các thành phần của hệ thống, cũng như không bị ảnh hưởng bởi các thay đổi, người ta hay nhóm các thành phần có cùng chức năng lại với nhau và phân chia trách nhiệm cho từng nhóm để công việc không
bị chồng chéo và ảnh hưởng lẫn nhau Một trong những mô hình lập trình như vậy đó
là Mô hình 3 lớp (Three Layers)
Mô hình 3 lớp được cấu thành từ: Presentation Layers, Business Layers, và Data
Layers Các lớp này sẽ giao tiếp với nhau thông qua các dịch vụ (services) mà mỗi
lớp cung cấp để tạo nên ứng dụng, lớp này cũng không cần biết bên trong lớp kia làm
gì mà chỉ cần biết lớp kia cung cấp dịch vụ gì cho mình và sử dụng nó mà thôi
Trang 22Kiến trúc mô hình 3 lớp
1 Presentation Layers
Lớp này làm nhiệm vụ giao tiếp với người dùng cuối để thu thập dữ liệu và hiển thị kết quả/dữ liệu thông qua các thành phần trong giao diện người sử dụng Lớp này sẽ
sử dụng các dịch vụ do lớp Business Logic cung cấp Trong NET thì bạn có thể
dùng Windows Forms, ASP.NET hay Mobile Forms để hiện thực lớp này.
Trong lớp này có 2 thành phần chính là User Interface Components và User
Interface Process Components.
Trang 23là thành phần chịu trách nhiệm quản lý các qui trình chuyển đổi giữa các UI
Components Ví dụ chịu trách nhiệm quản lý các màn hình nhập dữ liệu trong một loạt các thao tác định trước như các bước trong một Wizard…
Lưu ý : Lớp này không nên sử dụng trực tiếp các dịch vụ của lớp Data Access mà nên
sử dụng thông qua các dịch vụ của lớp Business Logic vì khi sử dụng trực tiếp như vậy, có thể bỏ qua các ràng buộc, các logic nghiệp vụ mà ứng dụng cần phải có.
Trang 242 Business Logic Layer
Lớp này thực hiện các nghiệp vụ chính của hệ thống, sử dụng các dịch vụ do lớp Data
Access cung cấp, và cung cấp các dịch vụ cho lớp Presentation Lớp này cũng có thể
sử dụng các dịch vụ của các nhà cung cấp thứ 3 để thực hiện công việc của mình
Trong lớp này có các thành phần chính là Business Components, Business
Entities và Service Interface.
Service Interface:
là giao diện lập trình mà lớp này cung cấp cho lớpPresentation sử dụng
Lớp Presentation chỉ cần biết các dịch vụ thông qua giao diện này mà không cần phải
quan tâm đến bên trong lớp này được hiện thực như thế nào
Business Entities:
là những thực thể mô tả những đối tượng thông tin mà hệ thống xử lý Các Business
Entities này cũng được dùng để trao đổi thông tin giữa lớp Presentation và lớp Data
Layers.
Trang 25Business Components:
Là những thành phần chính thực hiện các dịch vụ mà Service Interface cung cấp,
chịu trách nhiệm kiểm tra các ràng buộc logic (constraints), các qui tắc nghiệp vụ (Business Rules), sử dụng các dịch vụ bên ngoài khác để thực hiện các yêu cầu của ứng dụng
3 Data Layers
Lớp này thực hiện các nghiệp vụ liên quan đến lưu trữ và truy xuất dữ liệu của ứng dụng Thường lớp này sẽ sử dụng các dịch vụ của các hệ quản trị cơ sở dữ liệu như SQL Server, Oracle,… để thực hiện nhiệm vụ của mình Trong lớp này có các thành
phần chính là Data Access Logic, Data Sources, Servive Agents).
Data Access Logic Components (DAL)
Là thành phần chính chịu trách nhiệm lưu trữ vào và truy xuất dữ liệu từ các nguồn dữ
liệu – Data Sources như RDMBS, XML, File systems… Trong NET Các DAL này
thường được hiện thực bằng cách sử dụng thư viện ADO.NET để giao tiếp với các hệ
cơ sở dữ liệu hoặc sử dụng các O/R Mapping Frameworks để thực hiện việc ánh xạ các đối tượng trong bộ nhớ thành dữ liệu lưu trữ trong CSDL
Trang 26Service Agents:
Là những thành phần trợ giúp việc truy xuất các dịch vụ bên ngoài một cách dễ dàng
và đơn giản như truy xuất các dịch vụ nội tại
4 Ba l p ng d ng Web bán hàng ớ ứ ụ
Ở đây ta sẽ bàn về cách tổ chức ứng dụng Web bán hàng thành 3 lớp Presentation
Layers, Business Layers, và Data Layers.
Trang 27nvarchar(500),@UserName varchar(500),@Password varchar(500),@Rule int,
VALUES( @Name , @UserName , @Password , @Rule , @Status )
Ta có thể tạo thêm các StoredProcedure cho thao tác Update, Delete, Select cho bảng User và các bảng khác
5 Các class c n thi t trong ng d ng ầ ế ứ ụ
Mô hình 3 lớp phân chia ứng dụng thành 3 lớp với các chức năng riêng biệt, ta sẽ tổ chức mã nguồn thành các lớp tương ứng: Data, Business and Presentation.
MyWeb.Data Class
Là lớp đóng vai trò tương tác với CSDL Nhiệm vụ của lớp này là tạo kết nối, truy xuất trực tiếp lên CSDL thông qua các SQL StoredProcedure
Ở đây ta khai báo thêm các class UserInfo, SqlDataProvider và UserController
Class UserInfo chứa thông tin về một user dùng làm tham số truyền vào Procedure.Class SqlDataProvider tạo kết nối tới CSDL
Trang 28Class UserController khai báo các hàm để chạy các Procedure.
Ví dụ hàm dùng để Insert, khai báo trong class UserController:
cmd.CommandType = CommandType StoredProcedure;
cmd.Parameters.Add( new SqlParameter ( "@Name" , data.Name)); cmd.Parameters.Add( new SqlParameter ( "@UserName" ,
Lớp này lấy dữ liệu từ lớp Data, xử lý và truyền lên cho lớp Presentation và ngược lại
Ví dụ hàm Insert khai báo trong class UserService:
Trang 29Hàm này khởi tạo một đối tượng db thuộc class UserController, rồi thực hiện hàm User_Insert với tham số vào là một đối tượng kiểu UserInfo.
Trang 301.2 T o t ng Data Access ạ ầ
B c 1: T o m t DataSet và Table Adapter ướ ạ ộ
Trang 31B c 2: T o b ng trong DataSet ướ ạ ả
Trang 371.3 Thêm các ph ươ ng th c vào t ng Data Access ứ ầ 1.4 Chèn, c p nh t và xóa d li u ậ ậ ữ ệ
1.5 Hoàn thi n l p Data Access Layer ệ ớ
2 T o t ng Business Logic ạ ầ
3 Các Master Page và đ nh v site ị ị
4 K t qu ế ả
SiteMaster