Tải bản đầy đủ (.pdf) (63 trang)

Xây dựng phần mềm quản lý nhà hàng khánh linh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.3 MB, 63 trang )

MỤC LỤC
LỜI NÓI ĐẦU ...................................................................................................3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT..................................................................4
1.1 Phương pháp hướng đối tượng .............................................................4
1.1.1 Khái niệm hướng đối tượng...........................................................4
1.1.2 Các ưu điểm và các giai đoạn của chu trình phát triển phần
mềm với mơ hình hướng đối tượng........................................................4
1.1.2.1 Ưu điểm .......................................................................................4
1.1.2.2 Giai đoạn của chu trình phát triển phần mềm với mơ hình
hướng đối tượng......................................................................................5
1.2 Chu trình phát triển phần mềm.............................................................7
1.2.1- Chu Trình Phát Triển Phần Mềm (Software Development Life
Cycle): .....................................................................................................7
1.2.2 Các giai đoạn của chu trình phát triển phần mềm. ......................8
1.3 Sơ lược về UML.....................................................................................8
1.3.1. UML là gì?.....................................................................................8
1.3.2 Mơ hình khái niệm của UML: .......................................................9
1.3.3 Qui trình phát triển phần mềm hướng đối tượng bằng UML: ..16
1.4 Cơ sở dữ liệu PostgreSql .....................................................................17
CHƯƠNG 2: BÀI TOÁN QUẢN LÝ NHÀ HÀNG .......................................18
2.1. Mơ tả bài tốn.....................................................................................18
2.1.1 Các loại hóa đơn được sử dụng trong nhà hàng .........................18
2.1.2 Cách tính lương cho nhân viên nhà hàng ..................................20
2.3. Nghiên cứu hiện trạng và giải quyết vấn đề.......................................20
2. 4. Yêu cầu tin học hóa ...........................................................................22
2.5. Xác định các Actor .............................................................................22
2.5.1 Nhân viên quản trị hệ thống ........................................................22
2.5.2 Nhân viên kế toán.........................................................................22
2.5.3 Nhân viên hành chính ..................................................................22

1




2.5.4 Nhân viên bán hàng .....................................................................22
2. 6 Use Case Diagram và các sơ đồ hoạt động.........................................23
2.6.1 Mơ hình Use case Diagram của Actor quản trị hệ thống ..........23
2.6.2 Mơ hình Use Case Diagram của Actor kế tốn...........................27
2.6.3 Mơ hình Use case Diagram của Actor quản lý...........................33
2.6.4 Mơ hình Use case Diagram actor bán hàng ................................40
2.7 SEQUENCE DIAGRAM....................................................................42
2.7.1 Quản trị hệ thống .........................................................................42
2.7.2 Kế toán..........................................................................................43
2.7.3 Quản lý .........................................................................................46
2.7.4 Bộ phận bán hàng ........................................................................48
2.8 PHÂN TÍCH CLASS DIAGRAM.......................................................50
2.8.1 Xác định các lớp ...........................................................................50
2.8.2 Danh sách các thuộc tính và phương thức ..................................50
2.8.3 Class Diagram ..............................................................................52
CHƯƠNG 3 : THIẾT KẾ CƠ SỞ DỮ LIỆU .................................................53
VÀ CÀI ĐẶT CHƯƠNG TRÌNH ...................................................................53
3.1. Thiết kế cơ sở dữ liệu..........................................................................53
3.2 Sơ đồ quan hệ .....................................................................................54
3.3 Cài đặt phần mềm................................................................................55
TÀI LIỆU THAM KHẢO...............................................................................61
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN .. ERROR! BOOKMARK NOT
DEFINED.

2


LỜI NĨI ĐẦU

Nhịp độ phát triển của Cơng Nghệ Thơng Tin đang là một vấn đề rất được
các ngành Khoa Học, Giáo Dục, Kinh Tế… quan tâm. Nó hiện hữu với một tầm
vóc hết sức mạnh mẽ, to lớn và ngày đang một lớn mạnh thêm.
Việc ứng dụng Công Nghệ Thông Tin vào các lĩnh vực làm sao để đạt
đuợc một cách có hiệu quả. Sự lựa chọn và vận dụng những phần mềm sao cho
phù hợp và đạt được kết quả tốt.
Để lựa chọn một phần mềm phù hợp bao giờ cũng quan trọng đối với các
doanh nghiệp. Ngày nay các phần mềm cơ bản đã được ứng dụng và phát triển
rộng rãi trong hầu hết mọi doanh nghiệp. Thế nhưng yêu cầu của người sử dụng
phần mềm ngày càng đa dạng và nhiều tính năng hơn. Do đó yêu cầu người làm
phần mềm phải đáp ứng được yêu cầu trên.
Cũng nhằm mục đích nói trên, mà đề tài “Xây Dựng Phần Mềm Quản Lý
Nhà Hàng Khánh Linh” được ra đời.
Phần mềm Quản Lý Nhà Hàng là một trong những phần mềm phổ biến
hiện nay mà hầu như cơ sở kinh doanh nhà hàng nào cũng cần đến.
Em xin chân thành cảm ơn cô giáo Hà Thị Thanh, cùng tồn thể các thầy cơ
trong bộ mơn cơng nghệ phần mềm và các bạn trong khoa đã giúp đỡ em hoàn
thành đề tài này.

3


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1 Phương pháp hướng đối tượng
1.1.1 Khái niệm hướng đối tượng
Hướng đối tượng là thuật ngữ thông dụng hiện thời của nghành công nghiệp
phần mềm. Các cơng ty đang nhanh chóng tìm cách áp dụng và tích hợp cơng
nghệ mới này vào các ứng dụng của họ. Thật sự là đa phần các ứng dụng hiện
thời đều mang tính hướng đối tượng. Nhưng hướng đối tượng có nghĩa là gì?

Lối tiếp cận hướng đối tượng là một nối tư duy về vấn đề theo lối ánh xạ các
thành phần trong bài toán vào các đối tượng ngoài đời thực. Với lối tiếp cận này,
chúng ta chia ứng dụng thành các thành phần nhỏ, gọi là các đối tượng, chúng
tương đối độc lập với nhau. Sau đó ta lại có thể xây dựng ứng dụng bằng cách
chắp các đối tượng đó lại với nhau. Hãy nghĩ đến trò chơi xây lâu đài bằng các
mẩu gỗ. Bước đầu tiên là tạo hay mua một vài loại mẩu gỗ căn bản, từ đó tạo nên
các khối xây dựng căn bản của mình. Một khi đã có những khối xây dựng đó bạn
có thể chắp ráp chúng lại với nhau để tạo lâu đài. Tương tự như vậy một khi xây
dựng một số đối tượng căn bản trong thế giới máy tính, bạn có thể chắp chúng lại
với nhau để tạo ứng dụng của mình.
1.1.2 Các ưu điểm và các giai đoạn của chu trình phát triển phần mềm với
mơ hình hướng đối tượng.
1.1.2.1 Ưu điểm
Tính tái sử dụng(Reusable): Phương pháp phân tích và thiết kế hướng đối
tượng thực hiện theo các thuật ngữ và khái niệm của phạm vi lĩnh vực ứng
dụng(Tức là của doanh nghiệp hay đơn vị mà hệ thống tương lai cần phục vụ),
nên nó tạo sự tiếp cận tương ứng giữa hệ thống và vấn đề thực ngồi đời. Vì q
trình phát triển phần mềm đồng thời là quá trình cộng tác của khách hang,/người
dung, nhà phân tích nhà thiết kế, nhà phát triển, chuyên gia lĩnh vực, chuyên gia
kỹ thuật,… nên lối tiếp cận này khiến cho việc giao tiếp giữa họ với nhau được
dễ dàng hơn.

4


Một trong những ưu điểm quan trọng bậc nhất của phương pháp phân tích
thiết kế hướng đối tượng là tính tái sử dụng: bạn có thể tạo các thành phần(đối
tượng) một lần và dùng chúng nhiều lần sau đó. Giống như việc bạn có thể tái sử
dụng các khối xây dựng(hay bản sao của nó) trong một tịa lâu đài, một ngôi nhà
ở, một con tàu vũ trụ, bạn cũng có thể tái sử dụng các thành phần (đối tượng) căn

bản trong các thiết kế hướng đối tượng cũng như code của một hệ thống kế toán,
hệ thống kiểm kê, hoặc một hệ thống đặt hàng.
Vì các đối tượng đã được thử nghiệm kỹ càng trong lần dùng trước đó, nên khả
năng tái sử dụng đối tượng có tác dụng giảm thiểu lỗi và các khó khăn trong việc
bảo trì, giúp tăng tốc độ thiết kế và phát triển phần mềm.
Phương pháp hướng đối tượng giúp chúng ta xử lý các vấn đề phức tạp trong
phát triển phần mềm và tạo ra các thế hệ phần mềm có khả năng thích ứng và bền
chắc.
-

Quy ước truyền thơng điệp giữa các đối tượng đảm bảo cho việc mô tả các

giao diện giữa các đối tượng thành phần bên trong với hệ thống bên ngoài dễ
dàng hơn.
-

Nguyên lý bao bọc và che giấu thơng tin hỗ trợ cho hệ thống an tồn

hơn(public, private, protectec, package).
-

Nguyên lý kế thừa dựa chính vào dữ liệu phù hợp với ngữ cảnh trong cài đặt.
Phương pháp hướng đối tượng được hỗ trợ bởi các công cụ rất hữu

hiệu(đủ mạnh, đủ hiệu quả).
-

Xóa bỏ được hố ngăn cách giữa các pha phân tích thiết kế cài đặt trong quá

trình phát triển phần mềm.

1.1.2.2 Giai đoạn của chu trình phát triển phần mềm với mơ hình hướng
đối tượng
Phân tích hướng đối tượng(Object Oriented Analysis - OOA)
Là giai đoạn phát triển một mơ hình chính xác và súc tích của vấn đề, có thành
phần là các đối tượng và khái niệm đời thực, dễ hiểu đối với người sử dụng.

5


Trong giai đoạn OOA, vấn đề được trình bày bằng các thuật ngữ tương ứng với
các đối tượng có thực. Thêm vào đó, hệ thống cần phải được định nghĩa sao cho
người dùng khơng chun tin học cũng có thể dễ dàng hiểu được.
Dựa trên một vấn đề có sẵn, nhà phân tích cần ánh xạ các đối tượng hay thực
thể có thực như khách hang, ơ tơ, người bán hang,… vào thiết kế để tạo ra được
bản thiết kế gần cận với tình huống thực. Mơ hình thiết kế sẽ chứa các thực thể
trong một vấn đề có thực và giữ nguyên các mẫu hình về cấu trúc, quan hệ, cũng
như hành vi của chúng. Nói một cách khác, sử dụng phương pháp hướng đối
tượng chúng ta có thể mơ hình hóa các thực thể thuộc một vấn đề thực mà vẫn
giữ được cấu trúc, quan hệ cũng như hành vi của chúng.
Thiết kế hướng đối tượng (Object Oriented Design - OOD):
Là giai đoạn tổ chức chương trình thành các tập hợp đối tượng cộng tác,mỗi
đối tượng trong đó là thực thể của một lớp. Các lớp là thành viên của một cây cấu
trúc với mối quan hệ kế thừa.
Mục đích của giai đoạn OOD là tạo thiết kế dựa trên kết quả của giai đoạn OOA,
dựa trên những quy định phi chức năng, những yêu cầu về môi trường, những
yêu cầu về khả năng thực thi,… OOD tập trung vào việc cải thiện kết quả của
OOA, tối ưu hóa giải pháp đã được cung cấp trong khi vẫn đảm bảo thỏa mãn tất
cả các yêu cầu đã được xác lập.
Trong giai đoạn OOD, nhà thiết kế định nghĩa các chức năng, thủ tục(operation),
thuộc tính(attributes) cũng như mối quan hệ của một hay nhiều lớp(classs) và

quyết định chúng ta cần phải được điều chỉnh sao cho phù hợp với môi trường
phát triển. Đây cũng là giai đoạn để thiết kế ngân hang dữ liệu và áp dụng các kỹ
thuật tiêu chuẩn hóa.
Về cuối giai đoạn OOD, nhà thiết kế đưa ra một loạt các biểu đồ(diagram) khác
nhau. Các biểu đồ này có thể được chia thành hai nhóm chính là tĩnh và động.
Các biểu đồ này tĩnh biểu thị các lớp và đối tượng, trong khi đó biểu đồ động
biểu thị tương tác giữa các lớp và phương thức hoạt động chính xác của chúng.
Các lớp đó sau này có thể được nhóm thành các gói (Packages) tức là các đơn vị
thành phần nhỏ hơn của ứng dụng.

6


Lập trình hướng đối tượng (Object Oriented Proggamming - OOP)
Giai đoạn xây dựng phần mềm có thế được thực hiện sử dụng kỹ thuật lập
trình hướng đối tượng. Đó là phương thức thực hiện thiết kế hướng đối tượng
qua việc sử dụng một ngơn ngữ lập trình có hỗ trợ các tính năng hướng đối
tượng. Một vài ngơn ngữ hướng đối tượng thường được nhắc đến là C++, Java,
C#,… Kết quả chung cuộc của giai đoạn này là một loạt các code chạy được, nó
chỉ được đưa vào sử dụng sau khi đã trải qua nhiều vòng quay của nhiều bước
thử nghiệm khác nhau.
1.2 Chu trình phát triển phần mềm.
1.2.1- Chu Trình Phát Triển Phần Mềm (Software Development Life
Cycle):
Vì phát triển phần mềm là một bài tốn khó, nên có lẽ trước hết ta cần điểm
qua một số các công việc căn bản của quá trình này. Thường người ta hay tập
hợp chúng theo tiến trình thời gian một cách tương đối, xoay quanh chu trình của
một phần mềm, dẫn tới kết qủa khái niệm Chu Trình Phát Triển Phần Mềm
(Software Development Life Cycle - SDLC) như sau:
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ện trong nhiều giai đọan khác nhau.
Nhà 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 định xem 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ách tố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 hố. Họ khơng nhất

7


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ần phá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ần mề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.
1.2.2 Các giai đoạn của chu trình phát triển phần mềm.
Chu trình của một phần mềm có thể được chia thành các giai đoạn như sau:
Nghiên cứu sơ bộ (Preliminary Investigation hay cịn gọi là Feasibility Study)
Phân tích 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)
Bảo trì, nâng cấp (System Maintenance)
1.3 Sơ lược về UML
1.3.1. UML là gì?
UML là ngơn ngữ chuẩn để viết kế hoạch chi tiết phần mềm. Nó phù hợp cho
việc mơ hình hố các hệ thống như hệ thống thông tin doanh nghiệp, các ứng
dụng phân tán trên nền web, hệ thống thời gian thực… UML là ngôn ngữ mơ
hình hố, đặc tả, hiển thị, xây dựng làm tài liệu vật phẩm của phân tích hình thức
và thiết kế.
* UML là ngôn ngữ: Ngôn ngữ ở đây không giống như ngơn ngữ tự nhiên hay
ngơn ngữ lập trình. Tuy nhiên, nó cũng có một tập các qui luật xác định cách sử
dụng. UML là ngôn ngữ chuẩn công nghiệp để lập kế hoạch chi tiết phần mềm.

8


Từ vựng và qui tắc ngôn ngữ UML cho ta cách thức xây dựng mơ hình và đọc
mơ hình, nhưng khơng cho biết mơ hình nào cần phải được lập và khi nào lập
chúng.
* UML là ngôn ngữ hiển thị.
* UML là ngôn ngữ đặc tả: Đặc tả là mô tả rõ ràng những điểm mấu chốt của
vấn đề. UML cho phép mơ tả mơ hình chính xác, khơng nhập nhằng và hoàn
thiện. UML hướng tới đặc tả thiết kế, phân tích và quyết định cài đặt trong q
trình phát triển, triển khai hệ thống phần mềm.
* UML là ngôn ngữ để xây dựng: UML không phải là ngôn ngữ trực quan, nhưng
mơ hình của nó có thể kết nối trực tiếp tới các ngơn ngữ lập trình khác nhau. Có
nghĩa rằng có thể ánh xạ mơ hình trong UML tới các ngơn ngữ lập trình khác
nhau như Java, C++ hay các bảng CSDL quan hệ, csdl hướng đối tượng. Ánh xạ
này cho khả năng biến đổi ngược lại từ cài đặt về mơ hình UML; có nghĩa rằng
nó cho khả năng làm việc với văn bản hay đồ hoạ một cách nhất quán.

* UML là ngôn ngữ làm tài liệu: UML hướng tới làm tài liệu kiến trúc hẹ thống
và các chi tiết của nó. UML cho khả năng biểu diễn u cầu, thử nghiệm, mơ
hình hố các hoạt động lập kế hoạch và quản lý sản phẩm.
1.3.2 Mô hình khái niệm của UML:
Để hiểu được UML ta phải hình dung được mơ hình khái niệm của ngơn ngữ.
Nó địi hỏi nắm được ba vấn đề chính, bao gồm các phần tử cơ bản để xây dựng
mơ hình, quy tắc liên kết các phần tử mơ hình và một số cơ chế chung sử dụng
cho ngôn ngữ. Khi nắm vững được các vấn đề này thì ta có thể đọc được mơ hình
UML và tạo ra một vài mơ hình cơ bản.


Phần tử mơ hình trong UML:



Phần tử cấu trúc:
Phần tử cấu trúc là các danh từ trong mô hình UML. Chúng là bộ phận tĩnh của

mơ hình để biểu diễn các thành phần khái niệm hay vật lý. Có bảy loại phần tử
cấu trúc sau:

9




Lớp. Lớp là mô tả tập hợp các đối tượng cùng chung thuộc tính, thao tác,

quan hệ và ngữ nghĩa. Biểu diễn đồ hoạ lớp bằng hình chữ nhật, thơng thường
chúng có tên, thuộc tính và phương thức (Hình 1.2).




Giao diện: Giao diện là tập hợp các thao tác làm dịch vụ của lớp hay

thành phần. Giao diện mô tả hành vi thấy được từ ngoài của thành phần. Giao
diện biểu diễn toàn bộ hay một phần hành vi của lớp. Giao diện định nghĩa tập
đặc tả thao tác chứ khơng định nghĩa cài đặt của chúng (Hình 1.3).


Phần tử cộng tác: Phần tử cộng tác mô tả ngữ cảnh của tương tác. Ký

pháp đồ hoạ của nó là hình elip với đường nét đứt, kèm theo tên như trên hình
1.4.



Trường hợp sử dụng (Use case): Mơ tả tập trình tự các hành động mà hệ

thống sẽ thực hiện để đạt được một kết quả cho tác nhân nào đó. Tác nhân là
những gì bên ngồi tương tác với hệ thống. Tập hợp các UC của hệ thống sẽ hình
thành các trường hợp mà hệ thống được sử dụng. Sử dụng UC để cấu trúc các
phần tử có tính chất hành vi trong mơ hình. Nó được thực hiện hố bởi phần tử
cộng tác như mơ tả trên (Hình 1.5).


Lớp tích cực (active class): Lớp tích cực là lớp có đối tượng làm chủ một

hay nhiều tiến trình hay luồng. Lớp tích cực được xem như lớp thơng thường
nhưng đối tượng của nó biểu diễn các thành phần có hành vi đang tương tranh


10


với các phần tử khác. Ký pháp đồ hoạ tương tự như lớp bình thường nhưng biên
của nó được tơ đậm.


Thành phần: Thành phần biểu diễn vật lý mã nguồn, các tệp nhị phân

trong quá trình phát triển hệ thống. Ký pháp đồ hoạ của nó thể hiện trong hình
1.6.


Nút (note): Nút là thể hiện thành phần vật lý, tồn tại khi chương trình chạy

và biểu diễn các tài nguyên tính tốn. Có thể đặt tập các thành phần (Hình 1.7).



Phần tử hành vi:
Phần tử hành vi là bộ phận động của mơ hình UML. Chúng là các động từ của

mơ hình, biểu diễn hành vi theo thời gian và khơng gian. Có hai loại chính là
tương tác và trạng thái.


Tương tác: Tương tác là hành vi bao gồm tập các thông điệp trao đổi

trao đổi giữa các đối tượng trong ngữ cảnh cụ thể để thực hiện mục đích cụ thể.

Hành vi của nhóm đối tượng hay của mỗi thao tác có thể được chỉ ra bằng tương
tác. Biểu diễn đồ hoạ của thông điệp được thể hiện như trên hình 1.8.


Máy trạng thái: Máy trạng thái là hành vi chỉ ra trật tự các trạng thái

mà đối tượng hay tương tác sẽ đi qua để đáp ứng sự kiện. Hành vi của lớp hay
cơng tác của lớp có thể được xác định bằng máy trạng thái. Máy trạng thái kích
hoạt nhiều phần tử, bao gồm trạng thái, chuyển tiếp (từ máy trạng thái này sang
máy trạng thái khác), sự kiện và hoạt động (đáp ứng sự kiện). Ký pháp đồ hoạ
của trạng thái được thể hiện trên hình 1.9, nó chứa tên và trạng thái con nếu có.

11




Phần tử nhóm: Phần tử nhóm là bộ phận tổ chức của mơ hình UML. Chỉ có

một phần tử thuộc nhóm này có tên là gói (package). Gói là cơ chế đa năng để tổ
chức các phần tử nhóm. Các phần tử cấu trúc, hành vi và ngay cả phần tử nhóm
có thể cho vào gói. Khơng giống thành phần (component), phần tử nhóm hồn
tồn là khái niệm, có nghĩa rằng chúng chỉ tồn tại vào thời điểm phát triển hệ
thống chứ không tồn tại vào thời gian chạy chương trình. Ký pháp đồ hoạ của
nhóm được biểu diễn hình 1.10. Gói cho phép ta quan sát hệ thống ở mức tổng
quát hơn.


Chú thích: Phần tử chú thích là bộ phận chú giải của mơ hình UML. Đó là


lời giải thích áp dụng để mơ tả các phần tử khác trong mơ hình. Phần tử chú thích
được gọi là lời ghi chú (note). Ký pháp đồ hoạ của chúng được thể hiện trên hình
1.10.



Các quan hệ trong UML:

Có bốn loại quan hệ trong UML, bao gồm quan hệ phụ thuộc, kết hợp, khái quát
hoá và hiện thực hoá. Chúng là các khối cơ sở để xây dựng mọi quan hệ trong
UML.


Phụ thuộc (dependency): Phụ thuộc là quan hệ ngữ nghĩa giữa hai phần tử

trong đó thay đổi phần tử độc lập sẽ tác động đến ngữ nghĩa của phần tử phụ
thuộc. Ký pháp đồ hoạ của nó được thể hiện trên hình 1.11.

12




Kết hợp (association): Kết hợp là quan hệ cấu trúc để mô tả tập liên kết

(một liên kết là kết nối giữa các đối tượng). Khi đối tượng của lớp này gửi / nhận
thông điệp đến từ đối tượng của lớp kia thì ta gọi chúng lầ có quan hệ kết hợp.
Ký pháp đồ hoạ của kết hợp được mô tả trên hình 1.12, chúng có thể chứa tên
nhiệm vụ và tính nhiều (multiplicity).



Tụ hợp (arggegation): là dạng đặc biệt của nó trên hình 1.13. Một dạng đặc

biệt của tập hợp là quan hệ hợp thành (composition), trong đó nếu như đối tượng
tồn thể bị huỷ bỏ thì các đối tượng bộ phận của nó cũng bị huỷ bỏ theo. Biểu
diễn đồ hoạ của tập hợp như trên hình 1.14.



Khái quát hoá (generalization): Khái quát hoá là quan hệ đặc biệt hố khái

qt hố trong đó đối tượng cụ thể sẽ kế thừa các thuộc tính và phương pháp của
đối tượng tổng quát. Ký pháp đồ hoạ của khái quát hố được mơ tả trên hình
1.15.


Hiện thực hố (ralization): Hiện thực hoá là quan hệ ngữ nghĩa giữa giao

diện và lớp (hay thành phần) hiện thực lớp; giữa UC và hợp tác hiện thực UC.
Biểu diễn đồ hoạ của nó được mơ tả trên hình 1.16.

 Biểu đồ UML:
Biểu đồ là biểu diễn đồ hoạ tập các phần tử mô hình. Vẽ biểu đồ để biểu diễn
hệ thống đang xây dựng dưới các góc độ quan sát khác nhau. Có thể hiểu biểu

13


đồ là ánh xạ của hệ thống. Một phần tử có thể xuất hiện ở một hay nhiều biểu đồ.
Về lý thuyết thì biểu đồ có thể bao gồm tổ hợp vô số phần tử và quan hệ vừa mô

tả trên. UML cho khả năng xây dựng một vài biểu đồ trực quan để biểu diễn các
khía cạnh khác nhau của hệ thống, bao gồm biểu đồ trường hợp sử dụng (use
case diagram), biểu đồ trình tự (sequence diagram), biểu đồ cộng tác
(collaboration diagram), biểu đồ lớp (class diagram), biểu đồ trạng thái (state
transition diagram), biểu đồ thành phần (component diagram), và biểu đồ triển
khai (deployment diagram).


Biều đồ trường hợp sử dụng (Use case):
Biểu đồ này chỉ ra tương tác giữa các UC và tác nhân. UC biểu diễn các chức

năng của hệ thống. Tác nhân là con người hay hệ thống khác cung cấp hay thu
nhận thông tin từ hệ thống. Biểu đồ UC tập trung vào quan sát trạng thái tĩnh của
các UC trong hệ thống. Nó đặc biệt quan trọng trong việc tổ chức và mơ hình hố
hệ thống. Vì UC biểu diễn u cầu hệ thống từ góc nhìn của người dùng, cho nên
UC là chức năng mà hệ thống phải có. Biểu đồ chỉ ra tác nhân nào khởi động
UC và khi nào tác nhân nhận thơng tin từ hệ thống. Biểu đồ hình 2.16 chỉ ra
tương tác giữa các UC và tác nhân của hệ thống rút tiền tự động ATM.



Biểu đồ trình tự (sequence):
Biểu đồ trình tự chỉ ra luồng chức năng xuyên qua các UC, nó là biểu đồ mơ tả

tương tác giữa các đối tượng và tập trung vào mô tả trật tự các thông điệp theo
thời gian.

14





Biểu đồ cộng tác (collaboration):

Biểu đồ cộng tác chỉ ra các thơng tin như biểu đồ trình tự nhưng theo cách
khác, nó tập trung vào tổ chức cấu trúc của các đối tượng gửi và nhận thông điệp.


Biểu đồ lớp (class diagram):

Biểu đồ lớp chỉ ra tương tác giữa các lớp trong hệ thống. Các lớp được xem
như kế hoạch chi tiết của các đối tượng. Thí dụ biểu đồ lớp cho UC Rút tiền
được mơ tả trên hình 1.19.



Biểu đồ chuyển trạng thái (state transition):

15


Biểu đồ chuyển trạng thái mơ tả vịng đời của đối tượng, từ khi nó được sinh ra
đến khi nó bị phá huỷ. Biểu đồ chuyển trạng thái cung cấp cách thức mơ hình hố
các trạng thái khác nhau của đối tượng. Trong khi biểu đồ lớp cung cấp bức tranh
tĩnh về các lớp và quan hệ của chúng thì biểu đồ chuyển trạng thái được sử dụng
để mơ hình hoá các hành vi động của hệ thống. Biểu đồ chuyển trạng thái chỉ ra
hành vi động của đối tượng. Thí dụ, đối tượng tài khoản trong ngân hàng có thể ở
trong một vài trạng thái như mở, đóng, hay rút quá mức. Tài khoản sẽ ứng xử
khác nhau với mỗi trạng thái khác nhau. Hình 1.20 là thí dụ biểu đồ chuyển trạng
thái của lớp Tài khoản.


Hình 1.20 Biểu đồ chuyển trạng thái của lơp tài khoản


Biểu đồ thành phần (component):

Biểu đồ thành phần cho ta cái nhìn vật lý của mơ hình. Biểu đồ thành phần cho
ta thấy các thành phần phần mềm trong hệ thống và quan hệ giữa chúng. Hai loại
thành phần trong biểu đồ, đó là thành phần khả thực và thành phần thư viện.


Biểu đồ triển khai (deployment):

Biểu đồ triển khai chỉ ra bố cục vật lý của mạng và các thành phần hệ thống sẽ
đặt ở đâu. Trong thí dụ hệ thống ATM thì ATM gồm nhiều hệ thống con chạy
tách biệt trên các thiết bị vật lý khác nhau hay còn gọi là nút.
1.3.3 Qui trình phát triển phần mềm hướng đối tượng bằng UML:
Quy trình phát triển phần mềm hướng đối tượng bằng UML gồm có các giai
đoạn sau:

16




Đặc tả yêu cầu (Requirement Specification): Trong giai đoạn này, mục

đích chính là nắm bắt được các yêu cầu của khách hàng đối với hệ thống, tạo ra
mơ hình Use case và mơ hình khái niệm.



Thiết kế (design): Giai đoạn này tập trung vào tạo các biểu đồ tương tác

(interaction diagrams) và thiết kế các biểu đồ lớp (class diagrams).


Sự thực thi hay thi hành dự án (Implementation): Đây là một quy trình

vạch ra chiến lược đưa ra các bước thiết kế mã trong ngơn ngữ lập trình thực sự.
1.4 Cơ sở dữ liệu PostgreSql
PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ và đối tượng dựa trên
POSTGRES, bản 4.2, được khoa điện toán của đại học California tại Berkeley
phát triển . POSTGRES mở đường cho nhiều khái niệm quan trọng mà các hệ
quản trị dữ liệu thương mại rất lâu sau mới có.
PostgreSQL là một chương trình mã nguồn mở xây dựng trên mã nguồn ban
đầu của đại học Berkeley. Nó theo chuẩn SQL99 và có nhiều đặc điểm hiện đại:
Câu truy vấn phức hợp (complex query)
Khóa ngoại (foreign key)
Thủ tục sự kiện (trigger)
Các khung nhìn (view)
Tính tồn vẹn của các giao dịch (integrity transactions)
Việc kiểm tra truy cập đồng thời đa phiên bản (multiversion concurrency
control)








Hơn nữa, PostgreSQL có thể dùng trong nhiều trường hợp khác, chẳng hạn như
tạo ra các khả năng mới như:







Kiểu dữ liệu
Hàm
Tốn tử
Hàm tập hợp
Phương pháp liệt kê
Ngơn ngữ theo thủ tục

PostgreSQL được phổ biến bằng giấy phép BSD cổ điển. Nó khơng quy định
những hạn chế trong việc sử dụng mã nguồn của phần mềm. Bởi vậy PostgreSQL
có thể được dùng, sửa đổi và phổ biến bởi bất kỳ ai cho bất kỳ mục đích nào.

17


CHƯƠNG 2: BÀI TOÁN QUẢN LÝ NHÀ HÀNG

KHẢO SÁT BÀI TỐN THỰC TẾ VÀ GIẢI QUYẾT VẤN ĐỀ
2.1. Mơ tả bài toán
Nhà hàng Khánh Linh là nhà hàng cao cấp, chuyên phục vụ những khách hàng
có nhu cầu về ẩm thực. Nhà hàng có một thực đơn phong phú với nhiều món ăn
ngon và mới lạ. Nhà hàng có một số lượng nhân viên lớn, với nhiều nhà cung cấp

và rất nhiều khách hàng. Công việc quản lý nhà hàng từ trước tới nay chủ yếu là
dựa trên sổ sách giấy tờ. Việc cập nhật các thông tin và kết xuất thơng tin đều
làm bằng tay vì vậy khó tránh khỏi sai sót, thêm vào đó cùng một thơng tin nhiều
khi phải vào nhiều lần ở nhiều sổ sách khác nhau.
Vì vậy cơng việc thiết kế và xây dựng một phần mềm quản lý nhà hàng để
giúp cho việc quản lý nhà hàng có hiệu quả, nhanh chóng, chính xác là nhu cầu
thực tế và hoàn toàn cần thiết.
2.1.1 Các loại hóa đơn được sử dụng trong nhà hàng
2.1.1.1 Hóa đơn bán hàng
Khi khách hàng thanh tốn tiền thì nhân viên nhà hàng phải đưa cho khách
hàng hóa đơn thanh tốn. Mẫu hóa đơn như sau:

18


2.1.1.2 Phiếu đặt bàn
Khi khách hàng có nhu cầu đặt bàn trước thì nhân viên bán hàng sẽ lập một
phiếu đặt bàn, việc lập phiếu đặt bàn giúp cho việc quản lý được dễ dàng hơn.
Mẫu phiếu đặt bàn:

2.1.1.3 Hóa đơn nhập hàng
Khi Nhà cung cấp đến cung cấp hàng cho nhà hàng, nhân viên nhà hàng có
nhiệm vụ nhập hàng và lập hóa đơn nhập hàng.

19


2.1.2 Cách tính lương cho nhân viên nhà hàng
Do đặc thù của việc kinh doanh nhà hàng lên nhân viên nhà hàng có mức
lương là cố định, mỗi nhân viên có một mức lương cụ thể(mức lương này do

người quản lý nhà hàng đề xuất), việc tính lương của nhân viên dựa vào số ngày
công của nhân viên nhân với mức lương cơ bản tính theo ngày của nhân
viên(Mức lương cơ bản hàng ngày = Lương tháng/ 27 ngày)
2.2 Các vấn đề chính của cơng tác quản lý nhà hàng
Cơng tác quản lý nhà hàng gồm các vấn đề chính: Quản lý hàng hóa(các loại
thực phẩm để chế biến món ăn), quản lý món ăn, quản lý đặt bàn, quản lý món
ăn, quản lý nhân viên, nhà cung cấp, quản lý tính lương cho nhân viên.
2.3. Nghiên cứu hiện trạng và giải quyết vấn đề.
Trong nhà hàng Khánh Linh hệ thống tổ chức có sự hỗ trợ lẫn nhau bao gồm:
Bộ phận điều hành, bộ phận hành chính, bộ phận bán hàng(nhân viên), bộ phận
đầu bếp, bộ phận kế toán.
2.3.1 Bộ phận điều hành
- Quản lý phân phối hoạt động của nhà hàng.
- Quản lý và điều hành hoạt động của nhân viên.
- Phân loại khách hàng.
- Quyết định giá chính thức cho từng món ăn.
- Nhận báo cáo từ các bộ phận khác như: kế toán, nhân viên bán hàng, đầu
bếp…Để từ đó có cách nhìn cụ thể về nhà hàng và thị hiếu của khách hàng, để từ
đó có kế hoạch định hướng phát triển nhằm đáp ứng yêu cầu thị hiếu của khách
hàng và tiến triển của cho cơng ty.
2.3.2 Bộ phận hành chính
Ghi chép những chi phí vận chuyển, mua hàng từ nhà cung cấp, chế độ tiền
lương cơng ty.
Theo dõi q trình làm việc để có chế độ khen thưởng đối với những người
có đóng góp tích cực vào q trình phát triển của nhà hàng hoặc kỷ luật đối với
những cá nhân khơng hồn thành nhiệm vụ hoặc có biểu hiện tiêu cực.

20



Bên cạnh đó phải có sự theo dõi về biến động giá cả và đây là biến động theo
thời gian. Để từ đó có sự điều chỉnh về giá cả trong nhà hàng.
2.3.3 Bộ phận bán hàng(nhân viên)
Làm việc trực tiếp tại cửa hàng: Tại cửa hàng công việc bán hàng là lập đơn
đặt bàn, đặt món ăn và yêu cầu món ăn của khách, sau đó đưa cho bộ phận kế
tốn để nhập dữ liệu vào máy tính. Khi khách hàng có yêu cầu đặt bàn trước
khách hàng phải đăng ký ở bộ phận bán hàng các thông tin về mình để dễ liên lạc
và quản lý như: tên khách hàng, địa chỉ liên lạc, số điện thoại…
Khách hàng có thể chọn các món ăn từ bảng thực đơn sau đó chuyển qua nhân
viên để được phục vụ. Khi khách hàng có nhu cầu gọi món ăn nào hay đặt bàn
nào thì nhân viên bán hàng phải trao đổi thông tin với khách hàng, như vậy việc
phục vụ khách hàng sẽ được thuận tiện hơn.
Khi khách hàng đã thỏa mãn nhu cầu của mình(đã ăn uống xong) nhân viên
bán hàng chuyển qua bộ phận kế toán để nhân viên kế tốn in hóa đơn thanh tốn
và thanh tốn cho khách hàng.
3.3 Bộ phận đầu bếp
Bộ phận này có nhiệm vụ chính là chế biến các món ăn theo các thực đơn của
khách hàng. Theo dõi số lượng các loại thực phẩm để báo lên bộ phận hành
chính.
3.4 Bộ phận kế tốn
Cơng việc của bộ phận này là thực hiện các nghiệp vụ như thống kê các hóa
đơn bán hàng, các phiếu nhập hàng, các đơn đặt hàng và doanh thu chi của cửa
hàng vào cuối mỗi kỳ.
Thống kê các loại thực phẩm và đồ uống: Nhân viên kế toán phải kiểm tra quá
trình nhập hàng, bán hàng. Đa phần các chứng từ là phiếu nhập, hóa đơn thanh
tốn, đơn đặt hàng… thống kê các món ăn, đồ uống bán chạy nhất hay chậm
nhất.
Thống kê năng suất của nhân viên trong từng công việc.

21



2. 4. u cầu tin học hóa
Với nhu cầu thơng tin và kinh doanh của nhà hàng, tạo sự thuận lợi cho quá
trình quản lý. Vì vậy chương trình được xây dựng cần phải tiện lợi, đơn giản đẹp
mắt, dễ dùng và cách hướng dẫn sử dụng chương trình sao cho dễ hiểu, các thao
tác dễ dàng, việc cập nhật dữ liệu thuận tiện.

PHÂN TÍCH BÀI TỐN.
2.5. Xác định các Actor
2.5.1 Nhân viên quản trị hệ thống
Người sử dụng thuộc nhóm này sẽ được tồn quyền truy xuất những chức năng
trong hệ thống và có thể cấp quyền hay thay đổi quyền của những người sử dụng
khác. Quyền này thường dành riêng cho người quản trị chương trình.
2.5.2 Nhân viên kế tốn
Người dùng thuộc nhóm này có thể truy xuất được một số các chức năng trong
menu hệ thống: phần quản lý nhân viên, nghiệp vụ…
2.5.3 Nhân viên hành chính
Coi được tất cả báo cáo và theo dõi, nhưng không thể truy xuất chức năng cập
nhật hay điều chỉnh dữ liệu.
2.5.4 Nhân viên bán hàng
Người dung thuộc nhóm này chỉ có thể truy suất vào chức năng đặt bàn trong
hệ thống quản lý, cịn mọi việc đều được thơng qua nhân viên kế toán.

22


2. 6 Use Case Diagram và các sơ đồ hoạt động
2.6.1 Mơ hình Use case Diagram của Actor quản trị hệ thống


DangNhap

ThemNguoiDung

<<uses>>

DoiNguoiDung
HuyNguoiDung

QuanTriHT
<<uses>>

DoiPassword

ThayDoiQuyen

Phân tích Use Case của actor quản trị hệ thống
2.6.1.1 Đăng nhập
Đặc tả Use Case
< Quản trị hệ thống > : < Đăng nhập >
1. Mơ tả:
Mục đích sử dụng :

Use Case “ đổi người dùng ” cho phép quản trị

hệ

thống Thêm Mới/ Sửa/ Xóa hoặc đổi quyền của người dùng.
Điều kiện tiên quyết : Actor phải đang nhập vào hệ thống.
Kết quả : Use Case thực hiện xong sẽ lưu thơng tin người dùng.

Tác nhân chính : Actor quản trị hệ thống nhập thông tin người dùng hoặc
sửa quyền của người dùng.

23


2. Kịch bản chính:
Các bước của luồng các sự kiện chính bao gồm:
1. Hoạt vụ bắt đầu khi người sử dụng khởi động chương trình.
2. Người sử dụng nhập vào tên và password.
3. Hệ thống sẽ đăng nhập vào chương trình.
4. Hoạt vụ kết thúc.
Sơ đồ hoạt động
Qua n tr i he thong

Nhap ten va
pas s word
yes
Kiem tra

tiep tuc

no
yes

no

Cho dang nha p
vao h e thong


2.6.1.2 Đổi người dùng
Đặc tả Use Case
< Quản trị hệ thống > : < Đổi người dùng >
1. Mơ tả:
Mục đích sử dụng : Use Case “ đổi người dùng ” cho phép quản trị hệ thống
Thêm Mới/ Sửa/ Xóa hoặc đổi quyền của người dùng.
Điều kiện tiên quyết :

Actor phải đang nhập vào hệ thống.

Kết quả : Use Case thực hiện xong sẽ lưu thông tin người dùng.

24


Tác nhân chính : Actor quản trị hệ thống nhập thông tin người dùng hoặc sửa
quyền của người dùng.
2. Kịch bản chính :
Các bước của luồng các sự kiện chính bao gồm:
1. Hoạt vụ bắt đầu khi quản trị hệ thống tùy chọn đổi người dùng.
2. Người quản trị hệ thống nhập vào thông tin người dùng hay sửa thông
tin người dùng.
3. Hệ thống sẽ lưu thông tin.
4. Hoạt vụ kết thúc.
3. Kịch bản mở rộng : <Sơ đồ hoạt động>
Quan tri he thong

Doi nguoi dung

Huy nguoi dung


Them nguoi
dung moi

Thay doi quyen

Thêm người dùng
Mục đích sử dụng : Use Case “ thêm mới người dùng” cho phép nhân
viên nhà hàng thực hiện thao tác thêm người dùng mới.
Hủy người dùng
Mục đích sử dụng : Use Case “ Hủy người dùng ” cho phép nhân viên nhà hàng
thực hiện thao tác hủy người dùng.

25


×