Ngày nay, với sự phát triển mạnh mẽ của ngành Công nghệ thông tin, mà đặc biệt là sự phát triển của Internet, thì mọi việc giao dịch mua bán diễn ra dễ dàng hơn. Intenet được sử dụng để mua bán hàng trực tuyến và các website quảng cáo bán hàng trực tuyến là công cụ hỗ trợ. Các trang web này rất phong phú về hình thức và đa dạng về chủng loại các mặt hàng cũng như các hình thức thanh toán. Tại Việt Nam, tuy Internet xuất hiện hơi trễ so với các nước trên thế giới nhưng đã phát triển rất nhanh và hiện nay việc quảng cáo giới thiệu sản phẩm và bán hàng trực tuyến cũng khá phổ biến . Bên cạnh đó, đời sống con người ngày càng phát triển, nhu cầu mua sắm của con người cũng không ngừng được nâng cao để họ có cuộc sống tiện nghi hơn. Để hỗ trợ cho người dùng có thể dễ dàng mua sắm được những mặt hàng đúng theo yêu cầu của mình thì họ cần có những thông tin giới thiệu về các mặt hàng mới nhất, rẻ nhất, phù hợp với yêu cầu người tiêu dùng. Các trang web giới thiệu sản phẩm và bán hàng là công cụ hỗ trợ đắc lực cho những yêu cầu trên. Ở Trà Vinh, tôi thấy có rất ít trang web để quảng cáo giới thiệu sản phẩm khiến cho người tiêu dùng gặp khó khăn trong việc tìm kiếm thông tin các sản phẩm và rất khó để tìm ra nơi mua hàng hiệu quả. Ngoài ra các công ty cũng cần quảng cáo giới thiệu sản phẩm của họ, ngoài việc quảng cáo trên báo, tivi, radio thì việc giới thiệu quảng cáo sản phẩm trên mạng internet cũng là một chiến lược quan trọng giúp sản phẩm của họ được nhiều người chú ý hơn. Do đó, tôi đã chọn thực hiện đề tài “Xây dựng Website quảng cáo và giới thiệu sản phẩm siêu thị Vinatex – chi nhánh Trà Vinh”. Do vốn kiến thức còn hạn chế nên tuy tôi cố gắng hết tìm hiểu, phân tích thiết kế và cài đặt hệ thống nhưng không thể tránh khỏi còn nhiều sai sót. Tôi rất mong nhận được sự thông cảm và góp ý của thầy cô để đồ án ngày càng phát triển hơn.
Trang 1LỜI MỞ ĐẦU
Ngày nay, với sự phát triển mạnh mẽ của ngành Công nghệ thông tin, mà đặc biệt
là sự phát triển của Internet, thì mọi việc giao dịch mua bán diễn ra dễ dàng hơn Intenetđược sử dụng để mua bán hàng trực tuyến và các website quảng cáo bán hàng trực tuyến
là công cụ hỗ trợ Các trang web này rất phong phú về hình thức và đa dạng về chủng loạicác mặt hàng cũng như các hình thức thanh toán Tại Việt Nam, tuy Internet xuất hiện hơitrễ so với các nước trên thế giới nhưng đã phát triển rất nhanh và hiện nay việc quảng cáogiới thiệu sản phẩm và bán hàng trực tuyến cũng khá phổ biến
Bên cạnh đó, đời sống con người ngày càng phát triển, nhu cầu mua sắm của conngười cũng không ngừng được nâng cao để họ có cuộc sống tiện nghi hơn Để hỗ trợ chongười dùng có thể dễ dàng mua sắm được những mặt hàng đúng theo yêu cầu của mìnhthì họ cần có những thông tin giới thiệu về các mặt hàng mới nhất, rẻ nhất, phù hợp vớiyêu cầu người tiêu dùng Các trang web giới thiệu sản phẩm và bán hàng là công cụ hỗtrợ đắc lực cho những yêu cầu trên Ở Trà Vinh, tôi thấy có rất ít trang web để quảng cáogiới thiệu sản phẩm khiến cho người tiêu dùng gặp khó khăn trong việc tìm kiếm thôngtin các sản phẩm và rất khó để tìm ra nơi mua hàng hiệu quả
Ngoài ra các công ty cũng cần quảng cáo giới thiệu sản phẩm của họ, ngoài việcquảng cáo trên báo, tivi, radio thì việc giới thiệu quảng cáo sản phẩm trên mạng internetcũng là một chiến lược quan trọng giúp sản phẩm của họ được nhiều người chú ý hơn
Do đó, tôi đã chọn thực hiện đề tài “Xây dựng Website quảng cáo và giới thiệu sảnphẩm siêu thị Vinatex – chi nhánh Trà Vinh”
Do vốn kiến thức còn hạn chế nên tuy tôi cố gắng hết tìm hiểu, phân tích thiết kế
và cài đặt hệ thống nhưng không thể tránh khỏi còn nhiều sai sót Tôi rất mong nhậnđược sự thông cảm và góp ý của thầy cô để đồ án ngày càng phát triển hơn
Trang 2LỜI CẢM ƠN
Trong quá trình thực hiện đồ án có rất nhiều khó khăn và trở ngại cũng nhờ sựgiúp đỡ tân tình của Quý Thầy Cô và bè bạn cho nên cuối cùng đồ án của tôi cũng hoànthành mặc dù còn nhiều sai sót và khuyết điểm
Xin chân thành cảm ơn Ban Giám Hiệu trường Đại học Trà Vinh cùng toàn thểQuý Thầy Cô ở Khoa Kỹ thuật và Công nghệ đã tạo điều kiện thuận lợi để chúng tôi cómột môi trường học tập thật tốt, cung cấp cho chúng tôi những kiến thức quý báu để tạonền tảng cho việc học tập và làm việc sau này
Tôi cũng xin chân thành cảm ơn quý Thầy Cô ở Bộ môn Công nghệ thông tintrường đại học Trà Vinh đã dạy cho tôi những môn học, cung cấp những kiến thức cănbản cần thiết để tôi có thể thực hiện được đồ án tốt nghiệp lần này
Tôi xin chân thành cảm ơn thầy Phạm Minh Đương là giáo viên hướng dẫn thựchiện đồ án đã nhiệt tình truyền đạt kiến thức, cung cấp những tài liệu cần thiết, giảng giảinhững chi tiết khó hiểu và hướng dẫn tôi trong suốt thời gian thực hiện đồ án tốt nghiệpvừa qua
Bên cạnh đó, tôi cũng xin cảm ơn gia đình bạn bè đã chia sẽ và giúp đỡ tôi trongquá trình học tập tại trường cũng như trong những sinh hoạt ngoài xã hội, cảm ơn nhữngngười thân đã nuôi nấng và dạy dỗ tôi trong thời gian qua
Ngoài ra, tôi cũng xin chân thành cảm ơn các bạn đã giúp đỡ sưu tập các tài liệu,góp ý các chi tiết cần thiết trong việc thực hiện đồ án và giúp đỡ sửa chữa các sai sóttrong đồ án
Xin chân thành cảm ơn!!!
Trang 3NHẬN XÉT CỦA GIÁO VIÊN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………, ngày… tháng… năm 2011
Chữ ký của giáo viên
Trang 4NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………, ngày… tháng… năm 2011
Chữ ký của giáo viên
Trang 5MỤC LỤC
Chương 1: ĐẶT VẤN ĐỀ 1
1.1.Bối cảnh đề tài 1
1.2.Mục tiêu đề tài 3
Chương 2: CƠ SỞ LÝ THUYẾT 4
2.1.Giới thiệu ngôn ngữ ASP.NET 4
2.2.Một số khái niệm cơ bản về CSDL và ngôn ngữ truy vấn SQL 6
2.3.Tổng quan công nghệ phần mềm 10
Chương 3: PHÂN TÍCH – THIẾT KẾ HỆ THỐNG 19
Chương 4: CÀI ĐẶT- THỬ NGHIỆM 60
Chương 5: KẾT LUẬN & HƯỚNG PHÁT TRIỂN 64
MỤC LỤC HÌNH Hình 1 Mô hình ERD 21
Hình 2 Mối kết hợp thuoclsp 23
Hình 3 Mối kết hợp thuocqh 23
Hình 4 Mối kết hợp thuocnsx 23
Hình 5 Mối kết hợp nhan 24
Hình 6 Mối kết hợp NVtruycap 24
Hình 7 Mối kết hợp KHtruycap 24
Hình 8 Mối kết hợp dathang 25
Hình 9 Mối kết hợp CT_DDH 25
Hình 10 Mối kết hợp co 25
Hình 11 Mô hình MLD 26
Hình 12 Bảng tầm ảnh hưởng 1 30
Hình 13 Bảng tầm ảnh hưởng 2 31
Hình 14 Bảng tầm ảnh hưởng 3 31
Hình 15 Bảng tầm ảnh hưởng 4 32
Trang 6Hình 16 Mô hình xử lý dữ liệu 34
Hình 17 Giao diện memu chính 36
Hình 18 Giao diện menu tìm kiếm 37
Hình 19 Giao diện menu đối tác 38
Hình 20 Giao diện menu hệ thống 38
Hình 21 Giao diện menu quản trị 39
Hình 22 Giao diện menu nhân viên 40
Hình 23 Giao diện chính 43
Hình 24 Giao diện trang hệ thống 44
Hình 25 Giao diện đối tác 45
Hình 26 Giao diện liên hệ 46
Hình 27 Giao diện tìm kiếm 47
Hình 28 Giao diện menu tìm kiếm gần đúng 48
Hình 29 Giao diện tìm kiếm chính xác 48
Hình 30 Giao diện tìm kiếm theo giá 49
Hình 31 Giao diện tìm kiếm theo loại 49
Hình 32 Giao diện tìm kiếm theo quầy hàng 50
Hình 33 Giao diện tìm kiếm tổng hợp 50
Hình 34 Giao diện chi tiết sản phẩm 51
Hình 35 Giao diện trang danh sách tin tức 51
Hình 36 Giao diện trang chi tiết tin tức 52
Hình 37 Giao diện trang quên mật khẩu 52
Hình 38 Giao diện thêm sản phẩm 53
Hình 39 Giao diện thêm users 54
Hình 40 Giao diện thêm tin tức 55
Hình 41 Giao diện thêm đối tác 56
Hình 42 Giao diện thêm hệ thống 56
Hình 43 Giao diện xem doanh thu 57
Hình 44 Giao diện thông tin nhân viên 57
Trang 7MỤC LỤC BẢNG
Bảng 1 Danh sách các đối tượng 22
Bảng 2 Danh sách các table 27
Bảng 3 Bảng mô tả các table 29
Bảng 4 Bảng chức năng menu chính 36
Bảng 5 Bảng chức năng menu tìm kiếm 37
Bảng 6 Bảng chức năng menu đối tác 38
Bảng 7 Bảng chức năng menu hệ thống 38
Bảng 8 Bảng chức năng menu quản trị 39
Bảng 9 Bảng chức năng menu nhân viên 40
Bảng 10 Bảng danh mục các màn hình 42
Bảng 11 Bảng dữ liệu thử nghiệm 61
Bảng 12 Bảng kết quả thử nghiệm 63
Trang 8Ngày nay, đời sống của con người không ngừng được nâng cao cho nên nhu cầumua sắm cũng được nâng cao Các website bán hàng trực tuyến ra đời để phục vụ nhucầu mua sắm cho con người, tiết kiệm thời gian mua sắm Các website quảng cáo và giớithiệu sản phẩm cũng giúp cho con người tìm hiểu về thông tin giá cả các mặt hàng màkhách hàng quan tâm, giúp khách hàng có thể mua đúng giá và đúng sản phẩm cần thiết.Tôi quyết định chọn đề tài “Xây dựng website quảng cáo và giới thiệu sản phẩm siêu thịVinatex – CN Trà Vinh” cũng là vì muốn giúp cho khách hàng tìm kiếm các mặt hàngtheo đúng yêu cầu của họ và họ có thể cập nhật những thông tin khuyến mãi của Siêu thịhoặc của công ty sản xuất một cách kịp thời.
Trang 91.1.2 Bối cảnh: Siêu thị Vinatex – CN Trà Vinh
1.1.2.1 Tổng quan công ty
Hệ thống Siêu thị Vinatex (Vinatex Mart) thuộc Tập Đoàn Dệt May Việt Nam.Thành lập ngày 10/10/2001 Là chuỗi Siêu thị tổng hợp trong đó ngành hàng dệt may làngành hàng chủ lực Với phương châm “Chăm sóc bạn từng đường kim mũi chỉ” ,Vinatex Mart luôn nổ lực không ngừng, từng bước hoàn thiện mình, luôn quan tâm chămsóc khách hàng, tạo sự tin tưởng ủng hộ đối với người tiêu dùng Đến đầu năm 2010 đơn
vị đã phát triển được 57 điểm bán hàng có mặt trên 25 tỉnh thành trong nước Hiện nay,đơn vị đang kinh doanh 50.000 mặt hàng do trên 800 nhà cung ứng gồm 5 ngành hàngchính: dệt may, thực phẩm, hóa phẩm, hàng gia dụng, lưu niệm và đồ chơi trẻ em.Thương hiệu Vinatex Mart khẳng định trên thương trường và khu vực
Định hướng phát triển đến năm 2015, hệ thống siêu thị Vinatex phát triển mạnglưới bán lẻ và bán sỉ với 80 cửa hàng, siêu thị, trung tâm thương mại và có mặt hầu hếtcác tỉnh thành trong cả nước Hệ thống Vinatex Mart phấn đấu trở thành Tập đoàn bán lẻhàng đầu ngành dệt may và nằm trong top 3 của Hệ thống bán lẻ Việt Nam
Là một trong 57 điểm bán hàng của hệ thống siêu thị Vinatex , chi nhánh Trà
Vinh Quý khách có thể đến mua hàng tại chỉ :81 Trần Quốc Tuấn, P.3, TP Trà Vinh.Nơi đây chuyên mua bán các loại sản phẩm như: dệt may, thời trang nam, nữ ,trẻ em, cácloại thực phẩm chế biến, thực phẩm công nghệ, thực phẩm tươi sống, các mặt hàng hóaphẩm, gia dụng và nhiều loại sản phẩm cần thiết khác
Trang 10Chi tiết liên hệ:
Trang 11Chương 2: CƠ SỞ LÝ THUYẾT2.1 Giới thiệu ngôn ngữ ASP.NET
2.1.1 Giới thiệu
Hiện tại ASP 3.0 đã và đang trở thành kịch bản được nhiều người sử dụng để thiết
kế ứng dụng thương mại điện tử dưới nhiều hình thức khác nhau Chúng được sự hỗ trợcủa nhiều ngôn ngữ lập trình như: C#, VB.NET… và cơ sở dữ liệu SQL Server 2000cùng với sự ra đời của công nghệ COM và DCOM, ứng dụng trở nên hoàn hảo và ưu việthơn trong quá trình trao đổi thông tin trên mạng Internet và Intranet
Tuy nhiên, Microsoft đã cho một công nghệ Web xử lý phía máy chủ hoàn toànmới đó là ASP.NET độc lập với mọi trình duyệt Điều này có nghĩa là trình duyệt khôngcần phải cài đặt bất kỳ công cụ hỗ trợ nào để duyệt trang Web dạng ASP.NET(.aspx).Với kỹ thuật cho phép mọi thực thi đều nằm trên trình chủ (Server), có nghĩa là trìnhduyệt xử lý nhiều vấn đề cùng một lúc cho nhiều người dùng, chính vì vậy đòi hỏi cấuhình máy chủ có cấu hình mạnh và đòi hỏi băng thông có khả năng truyền dữ liệu vớikhối lượng lớn và tốc độ truy cập nhanh
ASP.NET được thiết kế tương thích với các phiên bản ASP trước đó Bạn có thểtriển khai ứng dụng phát triển bằng ASP.NET chung với ứng dụng phát triển bằng ASPtrên cùng một máy chủ mà không cần thay đổi cấu hình của ứng dụng ASP
Những ngôn ngữ được dùng để viết ASP.NET là VBScript, Jscript, C# Tùy thuộcvào khai báo chỉ mục trong đối tượng chỉ dẫn đầu trang ASP.NET, bạn có thể chỉ rõ ngônngữ lập trình bạn sử dụng để xây dựng trang ASP.NET
Công nghệ ASP.NET có những đặc điểm nổi bật sau:
• Tính mềm dẻo và khả năng nâng cấp: Cho phép chúng ta quản lý trạng tháicủa các Sesion và tạo form trên một ứng dụng sử dụng hệ thống Server
• Hỗ trợ nhiều trình khách có thể tự động nhận dạng trình khách để hiện thịcho phù hợp
Trang 12• Thay vì sử dụng mô hình DLL, COM, DCOM trước đây, trong trường hợpứng dụng sử dụng công nghệ ASP.NET bạn có thể sử dụng dịch vụ tương tự có tên làWeb Services.
2.1.2 Ưu điểm của ASP.NET
ASP.NET có nhiều ưu điểm hơn các nền tảng khác khi dùng nó để tạo ứng dụngWeb Có thể phần lớn những ưu điểm quan trọng của nó đi kèm với các máy chủWindows và các công cụ lập trình Windows Ứng dụng web được tạo bởi ASP.NET đượctạo ra, bắt lỗi và triển khai rất dễ dàng thông qua các tác vụ có thể thực thi trọn vẹn trongmột môi trường phát triển duy nhất - Visual Studio NET
Với những nhà phát triển ứng dụng Web, ASP.NET có những ưu điểm sau đây :
- Những phần thực thi được của ứng dụng Web được biên dịch, vì vậy chúng thựcthi nhanh hơn là các kịch bản thông dịch
- Các cập nhập ngay lập tức giúp cho việc triển khai các ứng dụng Web mà khôngphải khởi động lại máy chủ
- Truy cập tới NET Framework, có thể đơn giản hóa nhiều khía cạnh trong lậptrình Windows
- Sử dụng nhiều những hiểu biết về ngôn ngữ lập trình C#, VB, vốn đã được tăngcường để hỗ trợ lập trình hướng đối tượng
- Giới thiệu ngôn ngữ lập trình mới mà nó cung cấp khả năng an toàn kiểu, hướngđối tượng, so với ngôn ngữ lập trình C
- Tự động quản lý trạng thái để điều khiển trang Web (được gọi là ServerControls) vì vậy chúng có gì đó giống với các Windows Controls
- Các tính năng bảo mật được xây dựng sẵn thông qua máy chủ Windows hoặcthông qua các phương thực xác nhận/phân quyền khác
- Tích hợp chặt chẽ với ADO.NET để cung cấp các truy xuất CSDL và các công
cụ thiết kế CSDL trực quan trong bộ VS.NET
Trang 13- Hỗ trợ đầy đủ XML, CSS và các chuẩn Web đã được thiết lập hoặc mới khác
- Các tính năng sẵn có để đệm các trang web thường xuyên được yêu cầu trênmáy chủ, các nội dung bản địa hóa cho các ngôn ngữ và trao đổi, nhận ra khả năng tươngthích trình duyệt
2.2 Một số khái niệm cơ bản về CSDL và ngôn ngữ truy vấn SQL
2.2.1 Cơ sở dữ liệu
Cơ sở dữ liệu (database) có thể hiểu là nơi chứa dữ liệu Có nhiều loại cơ sở dữ liệukhác nhau như cơ sở dữ liệu quan hệ, CSDL hướng đối tượng, CSDL phân tán Hiện nay, trong phần lớn các ứng dụng, người ta thường sử dụng CSDL quan hệ.Trong mô hình CSDL quan hệ, dữ liệu thường được chia thành các bảng có liên quan vớinhau
Hệ quản trị CSDL là chương trình dùng để quản lý một CSDL nào đó Chẳng hạnnhư chương trình Access là một hệ quản trị CSDL để quản lý CSDL Access Thôngthường thì tên của hệ quản trị CSDL gắn liền với tên của loại CSDL VD như: CSDLAccess <-> Hệ quản trị CSDL Access, CSDL MySQL <-> Hệ quản trị CSDL MySQL,CSDL Oracle <-> Hệ quản trị CSDL Oracle Trong trường hợp này thì người ta thườngnhầm lẫn giữa khái niệm CSDL và cấu trúc (dạng nhị phân) của một CSDL do hệ quản trịCSDL quy định
Người ta gọi các cột trong một bảng là các trường, các dòng trong một bảng là cácbản ghi
Trang 14Mỗi trường sẽ có một kiểu dữ liệu xác định Đó có thể là kiểu số, kiểu chuỗi, kiểungày tháng
VD về một bảng có chứa thông tin người dùng Bảng này sẽ có tên là NSD, các cột(trường) là: Ma_ND, Ten_ND, Tuoi_ND, Matkhau_ND; trong đó Ma_ND có kiểunguyên, Ten_ND có kiểu chuỗi, Tuoi_ND có kiểu số, Matkhau_ND có kiểu chuỗi
2.2.2 Ngôn ngữ truy vấn CSDL SQL
SQL là một ngôn ngữ được sử dụng trong các ngôn ngữ lập trình để truy vấnthông tin trong CSDL Điểm mạnh của ngôn ngữ này là cấu trúc đơn giản, có thể nhậplệnh vào dưới dạng các chuỗi văn bản, sau đó chuyển câu lệnh tới các chương trình điềukhiển trung gian để truy vấn dữ liệu rồi trả về cho chương trình Như vậy, mọi thao táckết xuất, truy vấn hoàn tòan dễ dàng thông qua việc điều khiển chuỗi văn bản có chứacâu lệnh SQL
2.2.2.1 Câu lệnh chèn dữ liệu vào một bảng.
Cú pháp của câu lệnh này có dạng:
Code:
INSERT INTO tên_bảng (danh_sách_trường) VALUES (danh_sách_giá_trị)
Trong đó:
Các từ khóa cố định là INSERT, INTO và VALUES
tên_bảng là tên của một bảng quan hệ trong CSDL
danh_sách_trường là danh sách các trường trong bảng quan hệ được sử dụng đểchèn giá trị vào, mỗi trường cách nhau một dấu phảy
danh_sách_giá_trị là danh sách các giá trị tương ứng với các trường, có bao nhiêutrường thì phải chèn vào bấy nhiêu giá trị
Trang 15Chú ý:
Thông thường, các giá trị chuỗi phải được đặt trong cặp dấu nháy hoặc dấu
ngoặc kép tùy thuộc vào ngôn ngữ biểu diễn và kiểu dữ liệu của trường Mỗi giá trị cáchnhau bởi một dấu phẩy
Ví dụ: với bảng dữ liệu ở trên (Bảng NSD có các cột (trường) là: Ma_ND,Ten_ND, Tuoi_ND, Matkhau_ND), ta có thể dùng câu lệnh SQL để chèn thông tin vàonhư sau:
Code:
INSERT INTO NSD (Ten_ND,MatKhau_ND) VALUES('Sinh','123456')
Hoặc ta có thể chèn nhiều thông tin hơn:
Code:
INSERT INTO NSD (Ten_ND,Tuoi_ND,MatKhau_ND)
VALUES ('Sinh',30,'123456')
2.2.2.2 Câu lệnh chỉnh sửa dữ liệu trong bảng
Để chỉnh sửa (cập nhật) thông tin trong bảng, ta dùng câu lệnh UPDATE với cúpháp sau:
Trang 16UPDATE NSD SET Matkhau_ID = 'JQKA' WHERE Ten_ND='Sinh'
Chú ý mệnh đề điều kiện WHERE Mệnh đề này sẽ được mô tả chi tiết hơn ở phíadưới
2.2.2.3 Câu lệnh xóa dữ liệu trong bảng
Để xóa dữ liệu trong bảng, ta dùng câu lệnh DELETE với cú pháp sau:
Code:
DELETE FROM tên_bảng WHERE điều_kiện
Câu lệnh này sẽ xóa tất cả những bản ghi thỏa mãn điều kiện nằm sau mệnh đềWHERE
VD:
Quote
DELETE FROM NSD WHERE Ten_ND='Sinh'
2.2.2.4 Câu lệnh truy vấn (tìm kiếm) dữ liệu trong bảng
Đây là câu lệnh phức tạp nhất trong nhóm các câu lệnh của SQL
Cú pháp của lệnh này như sau:
SELECT [danh_sách_trường] FROM [danh_sách_bảng] WHERE[danh_sách_điều_kiện] [ORDER BY]
Trang 172.3 Tổng quan công nghệ phần mềm
2.3.1 Khái niệm:
Công nghệ phần mềm là sự áp dụng một cách tiếp cận có hệ thống, có kỷ luật, và
định lượng được cho việc phát triển, sử dụng và bảo trì phần mềm.Ngành học công nghệphần mềm bao trùm kiến thức, các công cụ, và các phương pháp cho việc định nghĩa yêu
cầu phần mềm, và thực hiện các tác vụ thiết kế, xây dựng, kiểm thử (software testing), và
bảo trì phần mềm Kỹ nghệ phần mềm còn sử dụng kiến thức của các lĩnh vực như kỹthuật máy tính, khoa học máy tính, quản lý, toán học, quản lý dự án, quản lý chất lượng,công thái học phần và công nghệ hệ thống Tổng quan phân tích thiết kế hệ thống
2.3.2 Lịch sử công nghệ phần mềm:
Thập niên 1940: Các chương trình cho máy tính được viết bằng tay
Thâp niên 1950: Các công cụ đầu tiên xuất hiện như là phần mềm biên dịchMacro Assembler và phần mềm thông dịch đã được tạo ra và sử dụng rộng rãi để nângcao năng suất và chất lượng Các trình dịch được tối ưu hoá lần đầu tiên ra đời
Thập niên 1960: Các công cụ của thế hệ thứ hai như các trình dịch tối ưuhoá và công việc kiểm tra mẫu đã được dùng để nâng cao sản phẩm và chất lượng Kháiniệm công nghệ phần mềm đã được bàn thảo rộng rãi
Thập niên 1970: Các công cụ phần mềm, chẳng hạn trong UNIX các vùngchứa mã, lệnh make, v.v được kết hợp với nhau Số lượng doanh nghiệp nhỏ về phầnmềm và số lượng máy tính cỡ nhỏ tăng nhanh
Thập niên 1980: các PC và máy trạm ra đời Cùng lúc có sự xuất hiện của
mô hình dự toán khả năng Lượng phần mềm tiêu thụ tăng mạnh
Thập niên 1990: Phương pháp lập trình hướng đối tượng ra đời Các quátrình nhanh như là lập trình cực hạn được chấp nhận rộng rãi Trong thập niên này,WWW và các thiết bị máy tính cầm tay phổ biến rộng rãi
Trang 18 Hiện nay: Các phần mềm biên dịch và quản lý như là NET, PHP, Java, làmcho việc thiết kế, viết phần mềm ứng dụng trở nên dễ dàng hơn nhiều.
2.3.3 Thuộc tính của sản phẩm phần mềm
Thuộc tính của một sản phẩm phần mềm là các đặc tính xuất hiện từ sản phẩm một
khi nó được cài đặt và được đưa ra dùng Các thuộc tính này không bao gồm các dịch vụ
được cung cấp kèm theo sản phẩm đó Ví dụ: mức hiệu quả, độ bền, khả năng bảo trì, khảnăng dùng ở nhiều nền là các thuộc tính
Các thuộc tính biến đổi tùy theo phần mềm Tuy nhiên những thuộc tính tối quantrọng bao gồm:
Khả năng bảo trì: Nó có khả năng thực hành những tiến triển để thỏa mãnyêu cầu của khách hàng
Khả năng tin cậy: Khả năng tin cậy của phần mềm bao gồm một loạt cácđặc tính như là độ tin cậy, an toàn, và bảo mật Phần mềm tin cậy không thể tạo ra cácthiệt hại vật chất hay kinh tế trong trường hợp hư hỏng
Độ hữu hiệu: Phần mềm không thể phí phạm các nguồn tài nguyên như là
bộ nhớ và các chu kì vi xử lý
Khả năng sử dụng: Phần mềm nên có một giao diện tương đối dễ cho ngườidùng và có đầy đủ các hồ sơ về phần mềm
2.3.4 Mô tả chu trình phát triển phần mềm:
Chu trình phát triển phần mềm là một chuỗi các hoạt động của nhà phân tích(Analyst), nhà thiết kế (Designer), người phát triển (Developer) và người dùng (User) đểphát triển và thực hiện một hệ thống thông tin Những hoạt động này được thực hiệntrong nhiều giai đọan khác nhau
Trang 19Nhà phân tích (Analyst): là người nghiên cứu yêu cầu của khách hàng/người
dùng để định nghĩa một phạm vi bài toán, nhận dạng nhu cầu của một tổ chức, xác địnhxem nhân lực, phương pháp và công nghệ máy tính có thể làm sao để cải thiện một cáchtốt nhất công tác của tổ chức này
Nhà thiết kế (Designer): thiết kế hệ thống theo hướng cấu trúc của database,
screens, forms và reports – quyết định các yêu cầu về phần cứng và phần mềm cho hệthống cần được phát triển
Chuyên gia lĩnh vực (Domain Experts): là những người hiểu thực chất vấn đề
cùng tất cả những sự phức tạp của hệ thống cần tin học hoá Họ không nhất thiết phải lànhà lập trình, nhưng họ có thể giúp nhà lập trình hiểu yêu cầu đặt ra đối với hệ thống cầnphát triển Quá trình phát triển phần mềm sẽ có rất nhiều thuận lợi nếu đội ngũ làm phầnmềm có được sự trợ giúp của họ
Lập trình viên (Programmer): là những người dựa trên các phân tích và thiết kế
để viết chương trình (coding) cho hệ thống bằng ngôn ngữ lập trình đã được thống nhất
Người dùng (User): là đối tượng phục vụ của hệ thống cần được phát triển.
2.3.5 Các giai đoạn của chu trình phát triển phần mềm:
- Nghiên cứu sơ bộ (Preliminary Investigation hay còn gọi là Feasibility Study)
- Phân tích yêu cầu (Analysis)
- Thiết kế hệ thống (Design of the System)
- Xây dựng phần mềm (Software Construction)
- Thử nghiệm hệ thống (System Testing)
- Thực hiện, triển khai (System Implementation)
Trang 20- Bảo trì, nâng cấp (System Maintenance)
Trang 21a) Nghiên cứu sơ bộ:
Câu hỏi quan trọng nhất khi phát triển một hệ thống hoàn toàn không phải câu hỏimang tính phương pháp luận Mà cũng chẳng phải câu hỏi về kỹ thuật Nó là một câu hỏidường như có vẻ đơn giản, nhưng thật ra đặc biệt khó trả lời: “Đây có đúng là một hệthống để thực hiện không?” Đáng buồn là chính câu hỏi này trong thực tế thường chẳng
hề được đặt ra và lại càng không được trả lời Mặc dù việc lầm lẫn về phương pháp hayquyết định sai lầm về kỹ thuật cũng có thể dẫn tới thất bại, nhưng thường thì dự án có thểđược cứu vãn nếu có đầy đủ tài nguyên cùng sự cố gắng quên mình của các nhân viên tàigiỏi Nhưng sẽ chẳng một ai và một điều gì cứu vãn cho một hệ thống phần mềm hoàntoàn chẳng được cần tới hoặc cố gắng tự động hóa một quy trình lầm lạc
Trước khi bắt tay vào một dự án, bạn phải có một ý tưởng cho nó Ý tưởng này đisong song với việc nắm bắt các yêu cầu và xuất hiện trong giai đoạn khởi đầu Nó hoàntất một phát biểu: "Hệ thống mà chúng ta mong muốn sẽ làm được những việc nhưsau " Trong suốt giai đoạn này, chúng ta tạo nên một bức tranh về ý tưởng đó, rấtnhiều giả thuyết sẽ được công nhận hay loại bỏ Các hoạt động trong thời gian nàythường bao gồm thu thập các ý tưởng, nhận biết rủi ro, nhận biết các giao diện bên ngoài,nhận biết các các chức năng chính mà hệ thống cần cung cấp, và có thể tạo một vàinguyên mẫu dùng để “minh chứng các khái niệm của hệ thống” Ý tưởng có thể đến từnhiều nguồn khác nhau: khách hàng, chuyên gia lĩnh vực, các nhà phát triển khác, chuyêngia về kỹ nghệ, các bản nghiên cứu tính khả thi cũng như việc xem xét các hệ thống khácđang tồn tại Một khía cạnh cần nhắc tới là code viết trong thời kỳ này thường sẽ bị "bỏđi”, bởi chúng được viết nhằm mục đích thẩm tra hay trợ giúp các giả thuyết khác nhau,chứ chưa phải thứ code được viết theo kết quả phân tích và thiết kế thấu đáo
Trong giai đọan nghiên cứu sơ bộ, nhóm phát triển hệ thống cần xem xét các yêucầu của doanh nghiệp (cần dùng hệ thống), những nguồn tài nguyên có thể sử dụng, côngnghệ cũng như cộng đồng người dùng cùng các ý tưởng của họ đối với hệ thống mới Có
Trang 22thể thực hiện thảo luận, nghiên cứu, xem xét khía cạnh thương mại, phân tích khả nănglời-lỗ, phân tích các trường hợp sử dụng và tạo các nguyên mẫu để xây dựng nên mộtkhái niệm cho hệ thống đích cùng với các mục đích, quyền ưu tiên và phạm vi của nó
Thường trong giai đoạn này người ta cũng tiến hành tạo một phiên bản thô của lịchtrình và kế hoạch sử dụng tài nguyên
Một giai đoạn nghiên cứu sơ bộ thích đáng sẽ lập nên tập hợp các yêu cầu (dù ởmức độ khái quát cao) đối với một hệ thống khả thi và được mong muốn, kể cả vềphương diện kỹ thuật lẫn xã hội Một giai đoạn nghiên cứu sơ bộ không được thực hiệnthoả đáng sẽ dẫn tới các hệ thống không được mong muốn, đắt tiền, bất khả thi và đượcđịnh nghĩa lầm lạc – những hệ thống thừơng chẳng được hoàn tất hay sử dụng
Kết quả của giai đoạn nghiên cứu sơ bộ là Báo Cáo Kết Quả Nghiên Cứu TínhKhả Thi Khi hệ thống tương lai được chấp nhận dựa trên bản báo cáo này cũng là lúcgiai đoạn Phân tích bắt đầu
b) Phân tích yêu cầu
Sau khi đã xem xét về tính khả thi của hệ thống cũng như tạo lập một bức tranh sơ
bộ của dự án, chúng ta bước sang giai đoạn thường được coi là quan trọng nhất trong cáccông việc lập trình: hiểu hệ thống cần xây dựng Người thực hiện công việc này là nhàphân tích
Quá trình phân tích nhìn chung là hệ quả của việc trả lời câu hỏi "Hệ thống cầnphải làm gì?" Quá trình phân tích bao gồm việc nghiên cứu chi tiết hệ thống doanhnghiệp hiện thời, tìm cho ra nguyên lý hoạt động của nó và những vị trí có thể được nângcao, cải thiện Bên cạnh đó là việc nghiên cứu xem xét các chức năng mà hệ thống cầncung cấp và các mối quan hệ của chúng, bên trong cũng như với phía ngoài hệ thống.Trong toàn bộ giai đoạn này, nhà phân tích và người dùng cần cộng tác mật thiết với
Trang 23nhau để xác định các yêu cầu đối với hệ thống, tức là các tính năng mới cần phải đượcđưa vào hệ thống
Những mục tiêu cụ thể của giai đoạn phân tích là:
- Trao định nghĩa vấn đề cho chuyên gia lĩnh vực để nhận sự đánh giá, góp ý
- Kết quả của giai đoạn phân tích là bản Đặc Tả Yêu Cầu (RequirementsSpecifications)
c) Thiết kế hệ thống
Sau giai đoạn phân tích, khi các yêu cầu cụ thể đối với hệ thống đã được xác định,giai đoạn tiếp theo là thiết kế cho các yêu cầu mới Công tác thiết kế xoay quanh câu hỏichính: Hệ thống làm cách nào để thỏa mãn các yêu cầu đã được nêu trong Đặc Tả YêuCầu?
Một số các công việc thường được thực hiện trong giai đoạn thiết kế:
- Nhận biết form nhập liệu tùy theo các thành phần dữ liệu cần nhập
- Nhận biết reports và những output mà hệ thống mới phải sản sinh
- Thiết kế forms (vẽ trên giấy hay máy tính, sử dụng công cụ thiết kế)
- Nhận biết các thành phần dữ liệu và bảng để tạo database
Trang 24- Ước tính các thủ tục giải thích quá trình xử lý từ input đến output.
Kết quả giai đoạn thiết kế là Đặc Tả Thiết Kế (Design Specifications) Bản Đặc TảThiết Kế Chi Tiết sẽ được chuyển sang cho các lập trình viên để thực hiện giai đoạn xâydựng phần mềm
d) Xây dựng phần mềm
Đây là giai đoạn viết lệnh (code) thực sự, tạo hệ thống Từng người viết code thựchiện những yêu cầu đã được nhà thiết kế định sẵn Cũng chính người viết code chịu tráchnhiệm viết tài liệu liên quan đến chương trình, giải thích thủ tục (procedure) mà anh tatạo nên được viết như thế nào và lý do cho việc này
Để đảm bảo chương trình được viết nên phải thoả mãn mọi yêu cầu có ghi trướctrong bản Đặc Tả Thiết Kế Chi Tiết, người viết code cũng đồng thời phải tiến hành thửnghiệm phần chương trình của mình Phần thử nghiệm trong giai đoạn này có thể đượcchia thành hai bước chính:
Thử nghiệm đơn vị:
Người viết code chạy thử các phần chương trình của mình với dữ liệu giả(test/dummy data) Việc này được thực hiện theo một kế hoạch thử, cũng do chính ngườiviết code soạn ra Mục đích chính trong giai đoạn thử này là xem chương trình có cho ranhững kết quả mong đợi Giai đoạn thử nghiệm đơn vị nhiều khi được gọi là "Thử hộptrắng" (White Box Testing)
Trang 25e) Thử nghiệm hệ thống
Sau khi các thủ tục đã được thử nghiệm riêng, cần phải thử nghiệm toàn bộ hệthống Mọi thủ tục được tích hợp và chạy thử, kiểm tra xem mọi chi tiết ghi trong Đặc TảYêu Cầu và những mong chờ của người dùng có được thoả mãn Dữ liệu thử cần đượcchọn lọc đặc biệt, kết quả cần được phân tích để phát hiện mọi lệch lạc so với mong chờ
f) Thực hiện, triển khai
Trong giai đoạn này, hệ thống vừa phát triển sẽ được triển khai sao cho phía ngườidùng Trước khi để người dùng thật sự bắt tay vào sử dụng hệ thống, nhóm các nhà pháttriển cần tạo các file dữ liệu cần thiết cũng như huấn luyện cho người dùng, để đảm bảo
hệ thống được sử dụng hữu hiệu nhất
Trang 26Chương 3: PHÂN TÍCH – THIẾT KẾ HỆ THỐNG
3.1 Yêu cầu chức năng
3.1.1 Yêu cầu lưu trữ
Website quảng cáo sản phẩm siêu thị Vinatex – CN Trà Vinh có những yêucầu lưu trữ về hệ thống như sau:
• Lưu trữ các thông tin chi tiết của sản phẩm
• Lưu trữ các thông tin cá nhân của khách hàng, nhân viên
• Lưu trữ các đơn đặt hàng, chi tiết liên hệ
• Lưu trữ thông tin về các loại sản phẩm, nhà sản xuất, các quầy hàng
3.1.2 Yêu cầu tra cứu
Website quảng cáo sản phẩm siêu thị Vinatex – CN Trà Vinh có những yêucầu tra cứu như sau:
• Tra cứu thông tin về các sản phẩm bán chạy, sản phẩm mới
• Tìm kiếm sản phẩm theo tên, theo loại, theo giá, theo quầy hàng,theo nhà sản xuất
• Tra cứu tin tức, tin khuyến mãi, tin dành cho khách hàng
3.1.3 Yêu cầu tính toán
Website quảng cáo và giới thiệu sản phẩm siêu thị Vinatex – CN Trà Vinh
có những yêu cầu tính toán như sau:
• Tính doanh thu của website trong ngày, tuần, tháng, quý
• Tính tổng số tiền khách hàng phải trả cho 1 đơn đặt hàng
Trang 273.1.4 Yêu cầu kết xuất
Website quảng cáo và giới thiệu sản phẩm siêu thị Vinatex – CN Trà Vinh cónhững yêu cầu kết xuất như sau:
• In chi tiết đơn hàng khi khách hàng mua hàng tại website
• In chi tiết mua hàng của khách hàng
3.2 Yêu cầu phi chức năng:
Trang web sau khi hoàn thành cần phải đảm bảo một số yêu cầu sau đây:
- Trang web có thể dễ dàng chỉnh sửa và thêm các chức năng mới
- Có giao diện thân thiện với người sử dụng, sử dụng dễ dàng, hiệu quả, nhanhchóng, chính xác
- Có tính tương thích cao sử dụng ở nhiều môi trường
- Phần mềm được chạy trên nền Microsoft Visual Studio 2005, NET Framework2.0, ngôn ngữ cài đặt SQL Server 2000
Trang 283.3 Thiết kế dữ liệu
3.3.1 Mô hình thực thể kết hợp (ERD)
3.3.1.1 Mô hình
Hình 1 Mô hình ERD
Trang 293.3.1.2 Danh sách các đối tượng
1 Thực thể SanPham Lưu trữ thông tin sản phẩm
2 Thực thể LoaiSP Lưu trữ tên các loại sản phẩm
3 Thực thể NhanVien Lưu trữ thông tin nhân viên
4 Thực thể KhachHang Lưu trữ thông tin khách hàng
5 Thực thể NhaSX Lưu trữ thông tin về nhà sản xuất
6 Thực thể QuayHang Lưu trữ thông tin về các quầy hàng
7 Thực thể HinhThucTT Lưu trữ nội dung các hình thưc thanh toán
8 Thực thể DonDatHang Lưu trữ thông tin đặt hàng của khách
QuyenTruyCap
Lưu tên các quyền truy cập
10 Mối kết hợp thuocqh Mối quan hệ giữa LoaiSP và QuayHang
11 Mối kết hợp thuoclsp Mối quan hệ giữa LoaiSP và SanPham
12 Mối kết hợp thuocnsx Mối quan hệ giữa NhaSX và SanPham
Mối quan hệ giữa KhachHang và DonDatHang
16 Mối kết hợp co Mối quan hệ giữa HinhThucTT và DonDatHang
17 Mối kết hợp nhan Mối quan hệ giữa NhanVien và DonDatHang
18 Mối kết hợp
CT_DDH
Mối quan hệ giữa SanPham và DonDatHang
Bảng 1 Danh sách các đối tượng
3.3.1.3 Bảng mô tả các thực thể, mối kết hợp
• Mối kết hợp giữa thực thể SanPham và LoaiSP: một loại sản
phẩm có thể không có hoặc có nhiều sản phẩm, một sản phẩm chỉ thuộc một loại sản phẩm
Trang 30Hình 2 Mối kết hợp thuoclsp
• Mối kết hợp giữa thực thể QuayHang và LoaiSP: một quầy
hàng có nhiều loại sản phẩm, một loại sản phẩm chỉ thuộc một quầy hàng
Hình 3 Mối kết hợp thuocqh
• Mối kết hợp giữa thực thể SanPham và NhaSX: một sản phẩm thuộc một nhà sản
xuất, một nhà sản xuất có một hoặc nhiều sản phẩm
Hình 4 Mối kết hợp thuocnsx
• Mối kết hợp giữa thực thể NhanVien và DonDatHang: một
đơn đặt hàng được ghi bởi một nhân viên, một nhân viên có thể không ghi hoặcghi nhiều đơn đặt hàng
Trang 31Hình 5 Mối kết hợp nhan
• Mối kết hợp giữa thực thể NhanVien và QuyenTruyCap :
nhân viên có một quyền truy cập, quyền truy cập có thể có nhiều nhân viên
Hình 6 Mối kết hợp NVtruycap
• Mối kết hợp giữa thực thể KhachHang và QuyenTruyCap :
khách hàng có một quyền truy cập, quyền truy cập có thể có nhiều khách hàng
Hình 7 Mối kết hợp KHtruycap
• Mối kết hợp giữa thực thể KhachHang và DonDatHang :
khách hàng có thể không có hoặc có nhiều đơn đặt hàng, đơn đặt hàng có một khách hàng
Trang 32Hình 8 Mối kết hợp dathang
• Mối kết hợp giữa thực thể SanPham và DonDatHang : sản
phẩm có thể không có hoặc có nhiều đơn đặt hàng, đơn đặt hàng có một haynhiều sản phẩm
Hình 9 Mối kết hợp CT_DDH
• Mối kết hợp giữa thực thể HinhThucTT và DonDatHang :
đơn đặt hàng có một hình thức thanh toán, hình thức thanh toán thể không cóhoặc có nhiều đơn đặt hàng
Hình 10 Mối kết hợp co
Trang 333.3.2 Mô hình vật lý
3.3.2.1 Mô hình cơ sở dữ liệu
Hình 11 Mô hình MLD
Trang 343.3.2.2 Danh sách các bảng
SanPham Lưu trữ thông tin sản phẩmLoaiSP Lưu trữ tên các loại sản phẩmNhanVien Lưu trữ thông tin nhân viênKhachHang Lưu trữ thông tin khách hàngNhaSX Lưu trữ thông tin về nhà sản xuấtQuayHang Lưu trữ thông tin về các quầy hàngHinhThucTT Lưu trữ nội dung các hình thức thanh toánDonDatHang Lưu trữ thông tin đặt hàng của kháchQuyenTruyCap Lưu tên các quyền truy cậpCT_DDH Lưu chi tiết đặt hàng của đơn đặt hàng
Bảng 2 Danh sách các table 3.3.2.3 Mô tả chi tiết các bảng
Tên table STT Thuộc tính Kiểu DL Diễn giải chức năng Ghi chú
SanPham
chính
3 DonViTinh nvarchar Đơn vị tính
6 TinhTrang nvarchar Tình trạng sản phẩm
8 TT_ChiTiet nvarchar Thông tin chi tiết sản phẩm
9 NgayCapNhat datetime Ngày cập nhật sản phẩm
10 SoLuongBan int Số lượng sản phẩm đã bán
11 MaLoaiSP nvarchar Mã loại sản phẩm Khóa
ngoại
Trang 35LoaiSP
1 MaLoaiSP nvarchar Mã loại sản phẩm Khóa
chính
2 TenLoaiSP nvarchar Tên loại sản phẩm
3 Stt_QuayHang int Số thứ tự quầy hàng Khóa
ngoại
NhanVien
chính
3 MatKhau nvarchar Mật khẩu nhân viên
4 HoTen nvarchar Họ tên nhân viên
6 NgaySinh datetime Ngày sinh nhân viên
7 DiaChi nvarchar Địa chỉ (số nhà, tên đường,
thôn, ấp, khóm)
8 DienThoai nvarchar Điện thoại của nhân viên
nhanvien)
Khóangoại
Khach
Hang
chính
2 MatKhauKH nvarchar Mật khẩu khách hàng
3 HoTenKH nvarchar Họ tên khách hàng
4 NgaySinh datetime Ngày sinh của khách hàng
5 GioiTinh nvarchar Giới tính của khách hàng
6 DienThoai nvarchar Điện thoại của khách hàng
7 DiaChi nvarchar Địa chỉ (số nhà, tên đường,
thôn, ấp, khóm)
8 SoTienMua float Tổng cộng số tiền khách
hàng đã mua tại website
ngoại
NhaSX
chính
2 TenNSX nvarchar Tên nhà sản xuất
3 ViTri nvarchar Vị trí nhà sản xuất
Trang 361 Stt_QuayHang int Số thứ tự quầy hàng Khóa
chính
2 TenQuayHang nvarchar Tên quầy hàng
3 VitriQH nvarchar Vị trí quầy hàng
2 TenHTTT nvarchar Tên hình thức thanh toán
3 NoiDung nvarchar Nội dung hình thức thanh
3 HoTenKH nvarchar Họ tên của khách hàng
4 DiaChi nvarchar Địa chỉ của khách hàng
5 DienThoai nvarchar Số điện thoại khách hàng
6 NgayLap datetime Ngày đặt hàng
7 NgayGiao datetime Ngày giao hàng
8 LoiNhan ntext Yêu cầu của khách hàng khi
đặt hàng
9 TongTien float Tổng số tiền cần trả
10 MaNV nvarchar Nhân viên nhận đơn đặt
hàng
Khóangoại
11 Stt_HTTT int Số thứ tự hình thức thanh
toán khi mua hàng
KhóangoạiQuyen