TRƯỜNG ĐẠI HỌC SAO ĐỎ
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO ĐỒ ÁN KIẾN THỨC NGÀNH
ĐỀ TÀI: XÂY DỰNG PHÀN MỀM QUẢN LÝ QUÁN CAFE
Sinh viên thực hiện: Phạm Thị Ngọc Ánh
Lớp: DK9 - CNTT
Hải Dương - 2021
MỤC LỤC
2
LỜI NĨI ĐẦU
Trong thời buổi Kinh tế thị trường, cơng việc kinh doanh cần phải được chun nghiệp
hóa thì mới đủ sức cạnh tranh với các đối thủ. Việc sử dụng Phần mềm Quản lý cho công
việc kinh doanh nhà hàng, cà phê, karaoke, bi-a, shop, tạp hóa, siêu thị đà một trong
những yếu tố góp phần nên sự thành cơng của người chủ.
Kinh doanh cà phê cịn là một trong những loại hình kinh doanh đầy thử thách. Nó đòi
hỏi sự tận tâm và khả năng nắm bắt chi tiết. Vì vậy việc ứng dụng phần mềm trong quản
lý cà phê là một nhu cầu tất yếu để nâng cao chất lượng phục vụ và hiệu quả quản lý.
Kiều kinh doanh truyền thống không sử dụng phần mềm, quản lý hiệu quả thấp, dễ gây
thất thoát và gặp một số nhược điểm như quản lý không chặt chẽ, thất thốt tiền của, hóa
đơn thiếu tính thẩm mỹ và dễ gây nhầm lẫn, khó hiểu. Muốn biết doanh thu cuối ngày,
cuối tháng, cuối năm thì phải tự động cộng lại bằng tay ... dẫn đến tốn thời gian, công sức
và thiếu tính chính xác.
Kiểu kinh doanh hiện đại có sử dụng phần mềm quản lý chạy trên máy vi tính sẽ khắc
phục được các nhược điểm của kiều kinh doanh truyền thống nêu trên quản lý bán hàng
chặt chẽ từ việc bán hàng, quản lý bàn, quản lý món ăn, quản lý nhân viên..., hạn chế thất
thốt tiên của hóa đơn tính tiền chính xác, thẩm mỹ cao, báo cáo tổng doanh thu vào cuối
ngày cuối tuần, cuối tháng, cuối năm hay bất cứ thời điểm nào muốn lấy báo cáo.
Cách sử dụng phần mềm quản lý trên máy vi tính cũng rất đơn giản, trực quan, dễ sử
dụng. Chỉ cần biết qua máy tính là có thể sử dụng được phần mềm và ứng dụng vào quản
lý.
Thực tế, Café vẫn đang còn sử dụng kiểu kinh doanh truyền thống nêu trên nên vấn đề
thay đổi sang kiểu kinh doanh hiện đại là nhu cầu cấp thiết.
Đó cũng là yêu cầu thiết thực cho tất cả các quán cà phê đang hoạt động hiện nay.
3
Chính vì những lý do kể trên, tơi thực hiện đề tài “Xây dựng phần mềm quản lý bán hàng
quán Cafe” nhằm giúp đối tượng thuận tiện hơn trong việc quản lý hàng hóa, giảm thiểu
chi phí trong các hoạt động kinh doanh bán hàng.
Mục tiêu của đề tài là đánh giá được thực trạng hoạt động của quán Café, đi vào phân
tích, đánh giá mơ hình hoạt động, đưa ra được ưu và nhược điểm từ đó tiến hành phân
tích thiết kế hệ thống mới ứng dụng cơng nghệ thơng tin.
Giải quyết được các nghiệp vụ như: thanh tốn, hỗ trợ nhiều báo cáo theo các tiêu chí
khác nhau.
4
MỞ ĐẦU
1.
Đặc tả vấn đề
Công nghệ thông tin là một trong những ngành khoa học ngày càng phát triển
mạnh mẽ và ứng dụng rộng rãi trong mọi lĩnh vực. Bên cạnh phát triển về phần cứng
thì phần mềm cũng được phát triển khá là vượt bậc. Đặc biệt, một trong những công
tác được ấp dụng vào công nghệ thông tin đó là cơng tác quản lý. Việc áp dụng cơng
nghệ thông tin vào quản lý, sản xuất kinh doanh là một xu hướng tất yếu.
Ứng dụng công nghệ thông tin vào quản lý sẽ giúp người dùng giảm thiểu đi việc
quản lý thủ công làm mất nhiều thời gian, tiết kiệm được chi phí và nguồn nhân lực,
từ đó sẽ nâng cao hiệu quả công việc và chất lượng sản phẩm cũng được nâng cao.
Nắm bắt được xu thế đó, em đã nghiên cứu và xây dựng chương trình quản lý
quán Cà Phê để hỗ trợ quản lý quán Cà Phê một cách hiện đại và chuyên nghiệp.
2.
Mô tả bài toán
Quán Cà Phê 1985 cần xây dựng hệ thống: Tất cả hoạt động chính của quán được
chủ quán thực hiện và quản lý trực tiếp, nhân viên chỉ thực hiện được các cơng gọi món,
chuyển bàn, thanh tốn và in hóa đơn. Hoạt động quản lý được thực hiện bởi các hoạt
động chính như sau: Quản lý nhập bàn và tính tiền, quản lý số lượng bàn, quản lý doanh
thu hằng tháng, quản lý xuất thống kê báo cáo.
• Phần mềm gồm các chức năng:
Quản lý quán:
• Quản lý thơng tin như: Tên bàn, hóa đơn, món ăn, danh mục món
ăn.
Quản lý danh sách bàn:
5
• Quản lý các thông tin như: mã bàn, khu vực, tình trạng bàn,....
Quản lý danh sách món:
• Quản lý các thơng tin như: mã món, danh mục, tình trạng bàn,
....
Quản lý nhân viên:
• Quản lý các thơng tin như: tài khoản, mật khẩu, tên hiển thị, loại tài
khoản.
Quản lý lịch sử người dùng
• Quản lý các thông tin như: tài khoản, thao tác, thời gian thực hiện
thao tác.
Sao lưu và phục hồi dữ liệu.
Đổi mật khẩu.
Thống kê báo báo:
• Thống kê số hóa đơn bán ra, số món đã bán, tong tiền, tiền đã giảm,
tiền thực thu trong ngày, tháng, khoảng thời gian.
3.
Yêu cầu hệ thống
Giúp nhân viên có thể dễ dàng chọn bàn phù hợp với khách đang ngồi và thêm
món, ngồi ra cịn giúp nhân viên có thể quản lý tốt bàn nào cịn trống và đã có người
ngồi để có thể hướng dẫn khách hàng tìm được chỗ ngồi thuận tiện nhất. Dễ dàng tính
tốn và xuất các hóa đơn cho khách hàng khi tính tiền. Để dễ dàng quản lý món và chọn
món cho khách hàng một cách nhanh chóng và chính xác.
6
Hỗ trợ cho việc cập nhật thông tin bàn, các món và tình trạng bàn một cách nhanh
nhất và chính xác nhất.
Giúp cho việc tính tốn tiền bàn một cách nhanh chóng.
Hệ thống với giao diện gần gũi giúp cho nhân viên có thể sử dụng thành thạo và
tối ưu được các chức năng có trong phần mềm.
4.
Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu: kỹ thuật phân tích hướng đối tượng, kỹ thuật lập trình
hướng đối tượng, kỹ thuật lập trình 3 lớp.
Phạm vi nghiên cứu: chương trình quản lí qn café
5.
Ý nghĩa khoa học và ý nghĩa thực tiễn đề tài
Ý nghĩa khoa học: đề xuất hệ thống quản lý siêu thị thay thế cho phương pháp hiện
tại.
Ý nghĩa thực tiễn: đề xuất chương trình quản lý siêu thị đơn giản hiệuc
7
CHƯƠNG 1: CỞ SỞ LÝ THUYẾT
1.1. Giới thiệu về ngôn ngữ lập trình C#
1.1.1. Giới thiệu chung về ngơn ngữ lập trình C#
C# (đọc là "C thăng" hay "C sharp" ("xi-sáp")) là một ngơn ngữ lập trình hướng đối
tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. Tên
của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng theo ECMA là C#, chỉ bao
gồm dấu số thường. Microsoft phát triển C# dựa trên C++ và Java. C# được miêu tả là
ngơn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java.
C# được thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc sư phần mềm nổi tiếng với
các sản phẩm Turbo Pascal, Delphi, J++, WFC. Phiên bản gần đây nhất là 8.0, được
phát hành vào năm 2019 cùng với Visual Studio 2019 phiên bản 16.3.
Mục tiêu của việc phát triển C#:
+ Ngôn ngữ được dự định là một ngôn ngữ lập trình đơn giản, hiện đại, hướng
đến nhiều mục đích sử dụng, và là một ngơn ngữ lập trình hướng đối tượng.
+ Ngôn ngữ và việc triển khai đáp ứng các nguyên tắc của ngành kỹ thuật phần
mềm như kiểm tra chặt chẽ kiểu dữ liệu, kiểm tra giới hạn mảng, phát hiện các trường
hợp sử dụng các biến chưa có dữ liệu, và tự động thu gom rác. Tính mạnh mẽ, sự bền
bỉ, và năng suất của việc lập trình là rất quan trọng đối với ngôn ngữ này.
+ Ngôn ngữ sẽ được sử dụng để phát triển các thành phần của phần mềm theo
hướng thích hợp cho việc triển khai trong các môi trường phân tán.
+ Khả năng di chuyển (portability) là rất quan trọng, đặc biệt là đối với những
lập trình viên đã quen với C và C++.
+ Hỗ trợ quốc tế hóa (i18n).
+ Ngơn ngữ sẽ được thiết kế để phù hợp với việc viết các ứng dụng cho cả hai
hệ thống: hosted và nhúng, từ các phần mềm quy mô lớn, đến các phần mềm chỉ có
các chức năng đơn giản.
8
+ Mặc dù các ứng dụng C# có tính kinh tế đối với các yêu cầu về bộ nhớ và
chế độ xử lý, ngôn ngữ này không cạnh tranh trực tiếp về hiệu năng và kích thước đối
với ngơn ngữ C hoặc assembly.
-
Đặc điểm ngôn ngữ
C#, theo một hướng nào đó, là ngơn ngữ lập trình phản ánh trực tiếp nhất
đến .NET Framework mà tất cả các chương trình.NET chạy, và nó phụ thuộc mạnh
mẽ vào framework này. Mọi dữ liệu cơ sở đều là đối tượng, được cấp phát và hủy bỏ
bởi trình dọn rác Garbage-Collector (GC), và nhiều kiểu trừu tượng khác chẳng hạn
như class, delegate, interface, exception... phản ánh rõ ràng những đặc trưng của.NET
runtime.
So sánh với C và C++, ngôn ngữ này bị giới hạn và được nâng cao ở một vài
đặc điểm nào đó, nhưng không bao gồm các giới hạn sau đây:
+ Các con trỏ chỉ có thể được sử dụng trong chế độ khơng an tồn. Hầu hết các
đối tượng được tham chiếu an tồn, và các phép tính đều được kiểm tra tràn bộ đệm.
Các con trỏ chỉ được sử dụng để gọi các loại kiểu giá trị; còn những đối tượng thuộc
bộ gom rác (garbage-collector) thì chỉ được gọi bằng cách tham chiếu.
+ Các đối tượng khơng thể được giải phóng tường minh.
+ Chỉ có đơn kế thừa, nhưng có thể cài đặt nhiều interface trừu tượng (abstract
interfaces). Chức năng này làm đơn giản hóa sự thực thi của thời gian thực thi.
+ C# thì an-tồn-kiểu (typesafe) hơn C++.
+ Cú pháp khai báo mảng khác nhau("int[] a = new int[5]" thay vì "int a[5]").
+ Kiểu thứ tự được thay thế bằng tên miền khơng gian (namespace).
+ C# khơng có tiêu bản.
+ Có thêm Properties, các phương pháp có thể gọi các Properties để truy cập
dữ liệu.
9
+ Có reflection.
1.1.2. Lập trình hướng đối tượng
a. Giới thiệu về lập trình hướng đối tượng:
Lập trình hướng đối tượng (tiếng Anh: Object-oriented programming, viết tắt:
OOP) là một mẫu hình lập trình dựa trên khái niệm "cơng nghệ đối tượng", mà trong
đó, đối tượng chứa đựng các dữ liệu, trên các trường, thường được gọi là các thuộc
tính; và mã nguồn, được tổ chức thành các phương thức. Phương thức giúp cho đối
tượng có thể truy xuất và hiệu chỉnh các trường dữ liệu của đối tượng khác, mà đối
tượng hiện tại có tương tác (đối tượng được hỗ trợ các phương thức "this" hoặc
"self"). Trong lập trình hướng đối tượng, chương trình máy tính được thiết kế bằng
cách tách nó ra khỏi phạm vi các đối tượng tương tác với nhau. Ngơn ngữ lập trình
hướng đối tượng khá đa dạng, phần lớn là các ngơn ngữ lập trình theo lớp, nghĩa là
các đối tượng trong các ngôn ngữ này được xem như thực thể của một lớp, được dùng
để định nghĩa một kiểu dữ liệu.
OOP được xem là giúp tăng năng suất, đơn giản hóa độ phức tạp khi bảo trì
cũng như mở rộng phần mềm bằng cách cho phép lập trình viên tập trung vào các đối
tượng phần mềm ở bậc cao hơn. Ngồi ra, nhiều người cịn cho rằng OOP dễ tiếp thu
hơn cho những người mới học về lập trình hơn là các phương pháp trước đó. Một
cách giản lược, đây là khái niệm và là một nỗ lực nhằm giảm nhẹ các thao tác viết mã
cho người lập trình, cho phép họ tạo ra các ứng dụng mà các yếu tố bên ngồi có thể
tương tác với các chương trình đó giống như là tương tác với các đối tượng vật lý.
Những đối tượng trong một ngôn ngữ OOP là các kết hợp giữa mã và dữ liệu
mà chúng được nhìn nhận như là một đơn vị duy nhất. Mỗi đối tượng có một tên riêng
biệt và tất cả các tham chiếu đến đối tượng đó được tiến hành qua tên của nó. Như
vậy, mỗi đối tượng có khả năng nhận vào các thơng báo, xử lý dữ liệu (bên trong của
nó), và gửi ra hay trả lời đến các đối tượng khác hay đến môi trường.
10
Đa phần các ngơn ngữ lập trình thơng dụng nhất hiện nay (như C++, Delphi,
Java, Python etc.) là các ngôn ngữ lập trình đa mẫu hình và đều hỗ trợ lập trình hướng
đối tượng ở nhiều mức độ khác nhau, thường được kết hợp với lập trình mệnh lệnh,
lập trình thủ tục. Các ngơn ngữ lập trình hướng đối tượng đáng chú ý gồm có Java,
C++, C#, Python, PHP, Ruby, Perl, Object Pascal, Objective-C, Dart, Swift, Scala,
Common Lisp, và Smalltalk.
b. Các tính chất cơ bản của lập trình hướng đối tượng:
Đối tượng (object): Các dữ liệu và chỉ thị được kết hợp vào một đơn vị đầy đủ
tạo nên một đối tượng. Đơn vị này tương đương với một chương trình con và vì thế
các đối tượng sẽ được chia thành hai bộ phận chính: phần các phương thức (method)
và phần các thuộc tính (attribute / Properties). Trong thực tế, các phương thức của đối
tượng là các hàm và các thuộc tính của nó là các biến, các tham số hay hằng nội tại
của một đối tượng (hay nói cách khác tập hợp các dữ liệu nội tại tạo thành thuộc tính
của đối tượng). Các phương thức là phương tiện để sử dụng một đối tượng trong khi
các thuộc tính sẽ mơ tả đối tượng có những tính chất gì.
Các phương thức và các thuộc tính thường gắn chặt với thực tế các đặc tính và
sử dụng của một đối tượng.
Trong thực tế, các đối tượng thường được trừu tượng hóa qua việc định nghĩa
của các lớp (class).
Tập hợp các giá trị hiện có của các thuộc tính tạo nên trạng thái của một đối
tượng.
Mỗi phương thức hay mỗi dữ liệu nội tại cùng với các tính chất được định
nghĩa (bởi người lập trình) được xem là một đặc tính riêng của đối tượng. Nếu khơng
có gì lầm lẫn thì tập hợp các đặc tính này gọi chung là đặc tính của đối tượng.
- Lập trình hướng đối tượng có 4 tính chất chính sau:
11
+ Tính trừu tượng (abstraction): Đây là khả năng của chương trình bỏ qua hay
khơng chú ý đến một số khía cạnh của thơng tin mà nó đang trực tiếp làm việc lên,
nghĩa là nó có khả năng tập trung vào những cốt lõi cần thiết. Mỗi đối tượng phục vụ
như là một "động tử" có thể hồn tất các công việc một cách nội bộ, báo cáo, thay đổi
trạng thái của nó và liên lạc với các đối tượng khác mà không cần cho biết làm cách
nào đối tượng tiến hành được các thao tác. Tính chất này thường được gọi là sự trừu
tượng của dữ liệu.
Tính trừu tượng còn thể hiện qua việc một đối tượng ban đầu có thể có một số
đặc điểm chung cho nhiều đối tượng khác như là sự mở rộng của nó nhưng bản thân
đối tượng ban đầu này có thể khơng có các biện pháp thi hành. Tính trừu tượng này
thường được xác định trong khái niệm gọi là lớp trừu tượng hay lớp cơ sở trừu tượng.
+ Tính đóng gói (encapsulation) và che giấu thơng tin (information hiding):
Tính chất này khơng cho phép người sử dụng các đối tượng thay đổi trạng thái nội tại
của một đối tượng. Chỉ có các phương thức nội tại của đối tượng cho phép thay đổi
trạng thái của nó. Việc cho phép mơi trường bên ngoài tác động lên các dữ liệu nội tại
của một đối tượng theo cách nào là hoàn toàn tùy thuộc vào người viết mã. Đây là
tính chất đảm bảo sự tồn vẹn của đối tượng.
+ Tính đa hình (polymorphism): Thể hiện thông qua việc gửi các thông điệp
(message). Việc gửi các thơng điệp này có thể so sánh như việc gọi các hàm bên trong
của một đối tượng. Các phương thức dùng trả lời cho một thông điệp sẽ tùy theo đối
tượng mà thơng điệp đó được gửi tới sẽ có phản ứng khác nhau. Người lập trình có
thể định nghĩa một đặc tính (chẳng hạn thơng qua tên của các phương thức) cho một
loạt các đối tượng gần nhau nhưng khi thi hành thì dùng cùng một tên gọi mà sự thi
hành của mỗi đối tượng sẽ tự động xảy ra tương ứng theo đặc tính của từng đối tượng
mà không bị nhầm lẫn.
12
Ví dụ khi định nghĩa hai đối tượng "hinh_vuong" và "hinh_tron" thì có một
phương thức chung là "chu_vi". Khi gọi phương thức này thì nếu đối tượng là
"hinh_vuong" nó sẽ tính theo cơng thức khác với khi đối tượng là "hinh_tron".
+ Tính kế thừa (inheritance): Đặc tính này cho phép một đối tượng có thể có
sẵn các đặc tính mà đối tượng khác đã có thơng qua kế thừa. Điều này cho phép các
đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà khơng phải tiến hành định
nghĩa lại. Tuy nhiên, không phải ngôn ngữ định hướng đối tượng nào cũng có tính
chất này.
1.1.3. Giới thiệu về mơ hình 3 lớp
Mơ hình 3 lớp gồm: Presentation, Business Logic, Data Access. 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.
Các lớp không cần biết bên trong lớp khác làm gì, chỉ quan tâm đến dịch vụ được
cung cấp và sử dụng nó
Mơ hình 3 lớp được cấu thành từ: Presentation Layers, Business Logic Layers,
và Data Access Layers.
+ Presentation Layers: Giao diện xử lý của ứng dụng.Nhiệm vụ: nhập liệu,
trình bày dữ liệu, kiểm tra dữ liệu đầu vào. Người dụng giao tiếp với GUI để gửi đi
thông tin và yêu cầu. Tại lớp này, các thông tin sẽ được kiểm tra, nếu thỏa mãn chúng
sẽ được chuyển xuống BLL.
+ Business Logic Layers: Kiểm tra các yêu cầu nghiệp vụ trước khi cập nhật
dữ liệu, quản lý các transaction (giao tác), quản lý các concurrent access… Gọi các xử
lý của lớp Data Access, nếu gặp ngoại lệ sẽ “quăng” lên GUI. Tại BLL, các thông tin
được xử lý, tính theo đúng yêu cầu đã gửi, nếu khơng cần đến csdl thì BLL trả kết quả
về GUI, ngược lại, nó sẽ đẩy dữ liệu (thơng tin đã xử lý) xuống DAL.
13
+ Data Access Layers: Kết nối CSDL, tìm kiếm, thêm, sửa, xóa,… trên
CSDL/XML. DAL sẽ thao tác với csdl và trả về kết quả cho BLL, BLL kiểm tra và
gửi nó lên GUI để hiển thị cho người dùng.
Ưu điểm:
- Phân chia thành từng lớp giúp code tường minh hơn, giảm sự kết dính.
- Dễ bảo trì khi được phân chia. Việc thay đổi có thể được cơ lập trong 1 lớp
hoặc ảnh hưởng đến lớp gần nhất mà không ảnh hưởng đến cả chương trình.
- Dễ phát triển, tái sử dụng.
- Thêm 1 chức năng.
- Thay đổi giữa 2 môi trường (từ Winform sang Webform: thay đổi lớp GUI)
- Dễ bàn giao (khi cùng theo 1 quy chuẩn)
- Dễ phân phối khối lượng công việc.
1.2. Giới thiệu về ngôn ngữ UML
1.2.1. Giới thiệu chung về UML
Ngơn ngữ mơ hình hóa thống nhất (tiếng Anh: Unified Modeling Language,
viết tắt thành UML) là một ngơn ngữ mơ hình gồm các ký hiệu đồ họa mà các phương
pháp hướng đối tượng sử dụng để thiết kế các hệ thống thông tin một cách nhanh
chóng.
Cách xây dựng các mơ hình trong UML phù hợp mô tả các hệ thống thông tin
cả về cấu trúc cũng như hoạt động. Cách tiếp cận theo mô hình của UML giúp ích rất
nhiều cho những người thiết kế và thực hiện hệ thống thông tin cũng như những
người sử dụng nó; tạo nên một cái nhìn bao quát và đầy đủ về hệ thống thông tin dự
định xây dựng. Cách nhìn bao quát này giúp nắm bắt trọn vẹn các yêu cầu của người
dùng; phục vụ từ giai đoạn phân tích đến việc thiết kế, thẩm định và kiểm tra sản
phẩm ứng dụng công nghệ thông tin. Các mơ hình hướng đối tượng được lập cũng là
14
cơ sở cho việc ứng dụng các chương trình tự động sinh mã trong các ngơn ngữ lập
trình hướng đối tượng, chẳng hạn như ngôn ngữ C++, Java,... Phương pháp mơ hình
này rất hữu dụng trong lập trình hướng đối tượng. Các mơ hình được sử dụng bao
gồm Mơ hình đối tượng (mơ hình tĩnh) và Mơ hình động.
UML sử dụng một hệ thống ký hiệu thống nhất biểu diễn các Phần tử mơ hình
(model elements). Tập hợp các phần tử mơ hình tạo thành các Sơ đồ UML (UML
diagrams). Có các loại sơ đồ UML chủ yếu sau:
UML ra đời do công của James Rumbaugh, Grady Booch và Ivar Jacobson sau
khi đã có các cuộc chiến về mơ hình bất phân thắng bại.
1.2.2. Các loại biểu đồ:
1, Biểu Đồ Lớp (Class Diagram)
Class diagram là xương sống của hầu như tất cả các phương pháp hướng đối
tượng, bao gồm cả UML. Chúng mô tả các cấu trúc tĩnh của hệ thống.
2, Biểu Đồ Gói (Package Diagram)
Package Diagram là tập hợp các class diagram. Các package diagram thiết lập
mối quan hệ giữa các pakage, trong đó pakage là những nhóm phần tử của hệ thống
có mối quan hệ liên quan đến nhau.
3, Biểu Đồ Chức Năng
Uses case diagram đưa ra cách nhìn bao quát (từ trên xuống) cách sử dụng của
hệ thống cũng như cách nhìn hệ thống từ bên ngồi.
Biểu đồ này hiển thị những chức năng của hệ thống hoặc các lớp và tương tác
của hệ thống với thế giới bên ngoài như thế nào.
Uses case diagram được dùng trong q trình phân tích hệ thống để nắm bắt
được yêu cầu của hệ thống và hiểu được sự hoạt động của hệ thống.
4, Biểu Đồ Tương Tác
15
Collaboration Diagram cung cấp về cách nhìn sự tương tác hoặc mối quan hệ
có cấu trúc giữa các đối tượng trong mơ hình hiện thời. Collaboration Diagram bao
gồm các đối tượng, liên kết và thơng báo.
Sử dụng mơ hình như là một phương tiện chính để mơ tả những tương tác và
cách giải quyết của các hành vi trong hệ thống.
5, Biểu Đồ Tiến Trình
Sequence diagram mơ tả sự tương tác của các lớp trong trình tự về thời gian.
Những mơ hình này được liên kết với phương pháp case (tình huống).
Sequence diagram hiển thị cho bạn từng bước những sự kiện xảy ra trong
phương pháp case.
Biểu đồ này là cách tốt nhất để phân tích và thiết kế hệ thống bởi vì nó khá đơn
giản và dễ lĩnh hội.
6, Biểu Đồ Trạng Thái (Statechart Diagram)
Bạn sử dụng Statechart Diagram mô tả những hành động của các lớp và đối
tượng riêng lẻ, mơ tả trình tự những trạng thái mà các đối tượng sẽ đi qua.
7, Biểu Đồ Hoạt Động (Activity Diagram)
Activity Diagram mơ tả tiến trình xử lý và trình tự những hành động trong tiến
trình xử lý, Trơng nó giống như biểu đồ tiến trình (flowchart) bởi vì nó mơ tả dịng
làm việc từ hoạt động sang hoạt động và từ hoạt động sang trạng thái.
Khi xây dựng activity diagram nó giúp bạn có thể hiểu được tồn bộ tiến trình
hoạt động. Nó rất hữu dụng khi bạn mơ tả những tiến trình song song hoặc mơ tả một
vài tương tác trong use case.
8, Biểu Đồ Thành Phần (Component Diagram)
16
Component Diagram cho chúng ta cách nhìn vật lý của mơ hình thực tế. Nó thể
hiện rõ cho chúng ta thấy sự cấu tạo và sự phụ thuộc giữa các thành phần của phần
mềm bao gồm mã nguồn, mã nhị phân (binary code) và những thành phần có khả
năng thực thi.
9, Biểu Đồ Triển Khai (Deployment Diagram)
Deployment Diagrams mô tả các tài nguyên vật lý trong hệ thống, bao gồm các
nút (node), thành phần và kết nối. Mỗi mơ hình chỉ bao gồm một deployment diagram
hiển thị ánh xạ giữa những tiến trình xử lý tới thiết bị phần cứng.
1.3. Giới thiệu về Microsoft SQL Server
Microsoft SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ được phát triển bởi
Microsoft. Là một máy chủ cơ sở dữ liệu, nó là một sản phẩm phần mềm có chức năng
chính là lưu trữ và truy xuất dữ liệu theo yêu cầu của các ứng dụng phần mềm khác. Có
thể chạy trên cùng một máy tính hoặc trên một máy tính khác trên mạng (bao gồm cả
Internet).
+ Phần mềm được Microsoft phát triển dựa trên RDBMS.
+ Cũng là một ORDBMS (Hệ quản trị cơ sở dữ liệu quan hệ đối tượng).
+ Một nền tảng độc lập.
+ Phần mềm sử dụng cả giao diện dòng lệnh và giao diện GUI.
+ Hỗ trợ ngôn ngữ SQL (trước đây là SEQUEL - ngôn ngữ truy vấn tiếng Anh có cấu
trúc) - vốn là sản phẩm của IBM
Microsoft tiếp thị ít nhất một chục phiên bản Microsoft SQL Server khác nhau,
nhắm vào các đối tượng khác nhau và cho khối lượng công việc khác nhau, từ các ứng
dụng máy đơn nhỏ đến các ứng dụng Internet lớn có nhiều người dùng đồng thời. Trong
đồ án này, em sử dụng phiên bản MS SQL Server Express 2019.
17
1.3.1. Một số câu lệnh thông dụng trong Microsoft SQL Server
1. UPDATE
Truy vấn UPDATE trong SQL được sử dụng để sửa đổi các bản ghi đang tồn tại
trong một bảng. Bạn có thể sử dụng mệnh đề WHERE với truy vấn UPDATE sửa đổi các
hàng đã lựa chọn, nếu không, hệ thống sẽ mặc định là tất cả các hàng đều bị tác động.Cú
pháp:
UPDATE ten_bang
SET cot1 = giatri1, cot2 = giatri2...., cotN = giatriN
WHERE [dieu_kien];
2. INSERT
Lệnh INSERT INTO trong SQL được sử dụng để thêm các hàng dữ liệu mới vào
một bảng trong Database.Cú pháp:
+ Xác định cột để chèn dữ liệu:
INSERT INTO TABLE_TEN (cot1, cot2, cot3,...cotN)]
VALUES (giatri1, giatri2, giatri3,...giatriN);
+ Thao tác trên tất cả các cột trong bảng
INSERT INTO TABLE_TEN VALUES
(giatri1,giatri2,giatri3,...giatriN);
3.SELECT
Lệnh SELECT trong SQL được sử dụng để lấy dữ liệu từ một bảng trong Database
mà trả về dữ liệu ở dạng bảng dữ liệu kết quả.Cú pháp:
18
SELECT cot1, cot2, cotN FROM ten_bang;
SELECT * FROM ten_bang;
4.ORDER BY
Mệnh đề ORDER BY trong SQL được sử dụng để sắp xếp dữ liệu theo thứ tự tăng
dần hoặc theo thứ tự giảm dần, trên một hoặc nhiều cột.Cú pháp:
SELECT danh_sach_cot
FROM ten_bang
[WHERE dieu_kien]
[ORDER BY cot1, cot2, .. cotN] [ASC | DESC];
5.GROUP BY
Mệnh đề GROUP BY trong SQL được sử dụng kết hợp với lệnh SELECT để sắp
xếp dữ liệu đồng nhất vào trong các nhóm.Cú pháp:
SELECT cot1, cot2
FROM ten_bang
WHERE [ dieu_kien ]
GROUP BY cot1, cot2
ORDER BY cot1, cot2
6.DISTINCT
Mệnh đề DISTINCT trong SQL được sử dụng kết hợp với lệnh SELECT để loại
tất cả các bản sao của bản ghi và chỉ lấy các bản ghi duy nhất.Cú pháp:
19
SELECT DISTINCT cot1, cot2,.....cotN
FROM ten_bang
WHERE [dieu_kien]
7.WHERE
Mệnh đề WHERE trong SQL được sử dụng để xác định một điều kiện trong khi
lấy dữ liệu từ bảng đơn hoặc nhiều bảng kết hợp. Bạn sẽ sử dụng mệnh đề WHERE để
lọc các bản ghi và chỉ lấy lại các bản ghi cần thiết. Cú pháp:
SELECT cot1, cot2, cotN
FROM ten_bang
WHERE [dieu_kien]
8.AND & OR
Các toán tử AND và OR trong SQL được sử dụng để kết hợp nhiều điều kiện để
thu hẹp phạm vi dữ liệu trong một lệnh SQL. Hai loại toán tử này được gọi là tốn tử liên
hợp. Nó cho phép tồn tại nhiều điều kiện trong mệnh đề WHERE của một lệnh SQL. Cú
pháp:
SELECT cot1, cot2, cotN
FROM ten_bang
WHERE [dieu_kien_1] AND [dieu_kien_2]...AND
[dieu_kien_N];
1.3.2. Stored Procedure
- Là các chương trình trong SQL Server.
20
- Đặc tính:
+ Cho phép truyền các tham số đầu vào và chấp nhận trả về các giá trị chứa trong
các tham số hoặc trả về các trạng thái giá trị để gọi những thủ tục hoặc thực hiện các xử
lý theo lô để biết việc thực hiện thành công hay thất bại, nếu thất bại thì có thể đưa ra
nguyên nhân thấp bại.
+ Bao gồm cả các lệnh gọi các thủ tục thực thi khác, chứa các lệnh SQL của
chương trình để thực hiện các xử lý trong database.
- Ta có thể dùng Transact–SQL EXCUTE để thực thi các stored procedure. Stored
procedure khác với các hàm xử lý là giá trị trả về của chúng không chứa trong tên và
chúng không được sử dụng trực tiếp trong biểu thức.
- So với các chương trình cục bộ, Stored procedure co ưu điểm hơn là:
+ Động: Stored procedure cho phép điều chỉnh chương trình cho phù hợp: Chúng
ta có chỉ tạo stored procedure một lần và lưu trữ trong database một lần, trong chương
trình chúng ta có thể gọi nó với số lần bất kỳ. Stored procedure có thể được chỉ rõ do một
người nào đó tạo ra và sự thay đổi của chúng hoàn toàn độc lập với source code của
chương trình.
+ Nhanh hơn: Stored procedure có khả năng phân tích cú pháp và tối ưu hóa trong
lần thực thi đầu tiên và một phiên bản dịch của chúng trong đó sẽ được lưu trong bộ nhớ
để sử dụng cho lần sau, nghĩa là trong những lần thực hiện sau chúng khơng cần phải
phân tích cú pháp và tối ưu lại, mà chúng sẽ sử dụng kết quả đã được biên dịch trong lần
đầu tiên. Do đó stored procedure có khả năng thực thi nhanh hơn là việc xử lý một đoạn
lệnh Transact – SQL lớn, lặp.
+ Giảm thiểu bandwidth: Với một sử lý sử dụng Transact-SQL có tới hàng trăm
câu lệnh đơn được đồng thời gửi đi dẫn tới tình trạng ngốn bandwidth hoặc có thể là q
tải. Stored procedure cải thiện được vấn đề này bằng cách gửi theo trình tự xử lý. Đồng
21
thời stored procedure cịn có thể phân tích cú pháp và tối ưu hóa cậu lệnh trong lần thực
thi đầu, giúp cải thiện câu lệnh tốt hơn.
+ Bảo mật: Phân cấp quyền sử dụng cho các user, cấp quyền, giới hạn quyền cho
các user thậm chí họ khơng được phép thực thi trực tiếp những stored procedure này. Khi
đó sẽ hạn chế, loại bỏ các vấn đề xâm phạm dữ liệu không được cấp phép.
- Định nghĩa về một stored procedure:
+ Tên của stored procedure
+ Các tham số
+ Thân của stored procedure: bao gồm các lệnh của Transact-SQL dùng để thực thi
procedure.
Cú pháp:
CREATE PROCEDURE
procedure_name
-- The variable parameter in/out
{@parameter data_type
input/output }
AS
Begin
[Declare variables for processing]
{Transact-SQL statements}
End
- Biên dịch và gọi thực thi một stored-procedure
+ Biên dịch : Chọn toàn bộ mã lệnh Tạo stored-procedure => Nhấn F5
+ Gọi thực thi một store-Procedure đã được biên dịch bằng lệnh exec
22
EXECUTE procedure_name --Stored-proc nonparametric
EXEC procedure_name Para1_value, Para2_value, … --Stored-proc with
parameters
23
CHƯƠNG 2: PHÂN TÍCH HỆ THỐNG
2.1. Sơ đồ use case
2.1.1. Danh sách các Actor
STT
Tên Actor
Ý nghĩa
1
Admin
Người có quyền cao nhất trong phần mềm
2.1.2. Danh sách chi tiết các use case
STT
1
Tên use case
Tong quat
2
Quan ly quan
3
Bao cao thong ke
4
Quan ly ban
5
Quan ly khu vuc
6
Quan ly mon
7
Quan ly danh muc
8
Xem lich su
9
Quan ly tai khoan
2.1.3. Đặc tả use case
Ý nghĩa
Tổng quát
Quản lý qn (gọi món, chuyển bàn, thanh tốn, in
hóa đơn,...)
Xem và xuất thống kê doanh thu
Quản lý danh sách bàn
Quản lý danh sách khu vực
Quản lý danh sách món
Quản lý danh sách danh mục
Xem lịch sử thao tác của người dùng
Quản lý các tài khoản sử dụng phần mềm
1. Đăng nhập
Tóm tắt
• Người sử dụng cần đăng nhập để sử dụng hệ thống
• Use case “Đăng nhập” dùng để bảo vệ hệ thống
Dịng sự kiện khác:
• Click “Thốt”
•
Kết thúc chương trình
24
2. Quản lý quán
Use case này để thực hiện gọi món, giảm giá, thanh tốn và in hóa đơn.
Các yêu cầu đặc biệt:
Đăng nhập
3. Báo cáo thống kê
Tóm tắt :
Thống kê doanh thu, các hóa đơn đã xuất và tong số lượng món đã bán.
Các yêu cầu đặc biệt:
Đăng nhập
4. lý quán
Tóm tắt: Quản lý danh sách các bàn và khu vực của quán.
Các yêu cầu đặc biệt:
Đăng nhập
5. Quản lý món
Tóm tắt: Quản lý danh sách món ăn và danh mục của quán
25