Giống như việc bạn có thể tái sử dụng các khối xây dựnghay 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
Trang 1MỤ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 toá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
Trang 22.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ế toá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
Trang 3LỜ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 toà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
Trang 4CHƯƠ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 ngoài đời Vì quá 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
Trang 5Mộ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 toà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
Trang 6Trong 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 chuyên 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
Trang 7Lậ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
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 hoá Họ không nhất
Trang 8thiế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 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)
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 hoá 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 hoá, đặ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ử
Trang 9Từ 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 quá 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 yêu cầu, thử nghiệm, mô hình hoá 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ử 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:
Trang 10 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
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 ngoà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 hoá 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
Trang 11vớ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 toán Có thể đặt tập các thành phần (Hình 1.7)
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
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ó
Trang 12 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 hoàn toà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ó 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
Trang 13 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 toà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 hoá khái
quát hoá 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 hoá được mô tả trên hình
1.15
Hiện thực hoá (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
Trang 14đồ 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 hoá
hệ thống Vì UC biểu diễn yê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
Trang 15 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):
Trang 16Biể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 hoá 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:
Trang 17 Đặ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 toà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
Trang 18CHƯƠNG 2: BÀI TOÁN QUẢN LÝ NHÀ HÀNG
KHẢO SÁT BÀI TOÁ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 toán tiền thì nhân viên nhà hàng phải đưa cho khách hàng hóa đơn thanh toán Mẫu hóa đơn như sau:
Trang 192.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
Trang 202.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 quá 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 quá 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 hoàn thành nhiệm vụ hoặc có biểu hiện tiêu cực
Trang 21Bê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ế toá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ế toán in hóa đơn thanh toán
và thanh toá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ế toá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 toá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
Trang 222 4 Yê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 TOÁ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 toà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ế toá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
Trang 232 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
Đ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
Trang 242 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
tiep tuc Kiem tra
no
Nhap ten va pas s word
Cho dang nha p
vao h e thong yes
Đ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
Trang 25Tá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>
Doi nguoi dung
Huy nguoi dung Them nguoi Thay doi quyen
Trang 26Thay đổi quyền
Mục đích sử dụng : Use Case “ đổi quyền sử dụng ” cho phép nhân viên nhà hàng đổi quyền sử dụng
Điều kiện tiên quyết: Actor phải đăng nhập hệ thống
Actor Đổi password : Actor nhập tên và password cũ và sau đó nhập password mới
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 lựa trùy chọn đổi password
2 Người sử dụng nhập vào tên và password cũ, sau đó nhập password mới
3 Hệ thống sẽ đổi password người sử dụng
4 Hoạt vụ kết thúc
Trang 272.6.2 Mô hình Use Case Diagram của Actor kế toán
Dang Nhap
Doi Password
Tinh Luong
Ke toan
Sua cham cong
<<uses>>
<<uses>>
<<uses>>
Them BH Ban Hang
Sua BH
<<uses>>
Sua HH Xoa HH
Trang 28Phân tích Use case của Actor kế toán
Điều kiện tiên quyết : Actor phải đăng nhập vào hệ thống
Kết quả : Use case thực hiện xong sẽ chấm công được cho các nhân viên của nhà hàng
Actor Chấm công : Kế toán chấm công cho nhân viên
2 Kịch bản chính
Các bước của luồng sự kiện chính bao gồm:
1 Hoạt vụ bắt đầu khi nhân viên kế toán lựa chọn chức năng chấm công
2 Người kế toán nhập những thông tin cho việc chấm công của nhân viên
3 Hệ thống lưu thông tin
4 Hoạt vụ kết thúc
Trang 30Them BH Sua BH
Ke toan
Ban hang
Kết quả : Use Case thực hiện xong sẽ lưu thông tin về khách hàng và những đồ
ăn thức uống đã bán cho khách hàng
Actor Bán hang : Nhập thông tin khách hàng và những đồ ăn thức uống đã bán
2 Kịch bản chính
1 Hoạt vụ bắt đầu khi khách hàng vào bàn gọi món ăn hoặc khách hàng đặt bàn
2 Người kế toán nhập thông tin về khách hàng và những món ăn, thức uống khách hàng yêu cầu
3 Hệ thống sẽ lưu thông tin về khách hàng, món ăn của khách, và tổng số tiền cần phải thanh toán
Sửa bán hàng
Trang 31Mục đích sử dụng : Use case “Sửa bán hàng” cho phép nhân viên kế toán sửa thông tin về bàn ăn đang được sử dụng, ở đây kế toán chỉ thêm những đồ ăn thức uống mà khách hàng yêu cầu thêm và những thay đổi đồ ăn thức uống của khách hàng
Các bước của luồng sự kiện chính bao gồm:
1 Hoạt vụ bắt đầu khi nhân viên kế toán lựa chọn tùy chọn nhập hàng hóa
2 Nhân viên kế toán nhập thông tin về hàng hóa
3 Hệ thống sẽ lưu những thông tin về hàng hóa đã được nhập
4 Hoạt vụ kết thúc