Tải bản đầy đủ (.doc) (54 trang)

QUẢN LÝ BÁN HÀNG CHO CÁC NHÀ HÀNG

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 (3.4 MB, 54 trang )

ĐẠI HỌC ĐÀ NẴNG

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA CÔNG NGHỆ THÔNG TIN
Tel. (84-511) 736 949, Fax. (84-511) 842 771
Website: itf.ud.edu.vn, E-mail:

LUẬN VĂN TỐT NGHIỆP KỸ SƯ
NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH : 05115

ĐỀ TÀI :
QUẢN LÝ BÁN HÀNG CHO CÁC NHÀ HÀNG
Mã số : 03T4-019
Ngày bảo vệ : 10-11/06/2008

SINH VIÊN :
LỚP :
CBHD :

ĐÀ NẴNG, 06/2008
i


LỜI CẢM ƠN
Em cảm ơn các thầy cô đã tận tình dạy dỗ trong suốt 5 năm qua. Đặc biệt, em
xin chân thành cảm ơn TS. GVC. Võ Trung Hùng đã trực tiếp hướng dẫn nhiệt tình,
tạo mọi điều kiện thuận lợi và góp nhiều ý kiến quý báu trong suốt quá trình thực hiện
đề tài.
Em cũng xin cảm ơn các anh trong công ty TNHH TOCASO đã hướng dẫn,


động viên em, đặc biệt là anh KS. Bùi Duy Khánh đã gợi mở cho em những định
hướng phát triển mới của công nghệ thông tin mà em đã ứng dụng trong đề tài.
Đà Nẵng, 05/2008
Sinh viên

ii


LỜI CAM ĐOAN
Tôi xin cam đoan :
1

Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn
trực tiếp của TS. GVC. Võ Trung Hùng và KS. Bùi Duy Khánh.

2

Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên
tác giả, tên công trình, thời gian, địa điểm công bố.

3

Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá,
tôi xin chịu hoàn toàn trách nhiệm.
Sinh viên,

iii


MỤC LỤC

TỔNG QUAN ĐỀ TÀI....................................................................................1
.I Giới thiệu........................................................................................................................1
.I.1. Bối cảnh..............................................................................................................1
.I.2. Vấn đề đặt ra.......................................................................................................1
.II Mục đích.......................................................................................................................1
.III Nội dung và phạm vi...................................................................................................2
.IV Phương pháp................................................................................................................2
.V Kết quả đạt được...........................................................................................................2
.VI Ý nghĩa........................................................................................................................2

CƠ SỞ LÝ THUYẾT......................................................................................3
.I Tổng quan .Net Framework...........................................................................................3
.I.1. Cấu trúc .Net Framework....................................................................................3
.I.2. Common Language Runtime(CLR)....................................................................4
CLR...........................................................................................................................4
Intermediate Language.............................................................................................4
.II Ngôn ngữ lập trình C# (C Sharp)..................................................................................5
.II.1. Giới thiệu...........................................................................................................5
.II.2. Hệ thống kiểu trong c#.......................................................................................5
.II.3. Các khái niệm lập trình......................................................................................6
Không gian tên..........................................................................................................6
Cấu trúc (Struct).......................................................................................................6
Lớp (Class)................................................................................................................7
Kế thừa......................................................................................................................8
Đa hình......................................................................................................................9
.III Hệ quản trị cơ sở dữ liệu SQL Server.......................................................................11
.III.1. Giới thiệu........................................................................................................11
.III.2. Các thành phần cấu thành cơ bản...................................................................12
.III.3. Đối tượng cơ sở dữ liệu..................................................................................12
.III.4. Các công cụ chính...........................................................................................12

.III.5. Phát biểu T-SQL.............................................................................................13
.III.6. Thủ tục............................................................................................................13
.III.7. Trigger............................................................................................................13
.III.8. Kết nối cơ sở dữ liệu SQL Server...................................................................14
.IV Ngôn ngữ mô hình hoá UML....................................................................................14
.IV.1. Giới thiệu chung.............................................................................................14
.IV.2. Các thành phần của ngôn ngữ UML..............................................................15
.IV.3. Các biểu đồ UML...........................................................................................16
Biểu đồ Use case (Use Case Diagram):.................................................................16
Biểu đồ lớp (Class Diagram)..................................................................................16
Biểu đồ đối tượng (Object Diagram)......................................................................17
Biểu đồ trạng thái (State Diagram)........................................................................18
Biểu đồ trình tự (Sequence Diagram).....................................................................18
Biểu đồ cộng tác (Collaboration Diagram)............................................................19
iv


Biểu đồ hoạt động(Activity Diagram).....................................................................20

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG.................................................21
.I Khảo sát bài toán..........................................................................................................21
.I.1. Yêu cầu..............................................................................................................21
.I.2. Hiện trạng..........................................................................................................21
.I.3. Đánh giá............................................................................................................21
.II Phân tích và thiết kế....................................................................................................22
.II.1. Xác định các Actor...........................................................................................22
.II.2. Xác định Use case............................................................................................22
.II.3. Biểu đồ Use case..............................................................................................23
.II.4. Xác định lớp.....................................................................................................24
Các lớp thực thể (Entity Classes)............................................................................24

Các lớp biên (Boundary Classes)...........................................................................25
Các lớp điều khiển (Control Classes).....................................................................25
.II.5. Biểu đồ lớp.......................................................................................................27
.II.6. Biểu đồ trình tự biểu diễn quá trình đăng nhập...............................................28
.II.7. Biểu đồ trình tự biểu diễn quá trình chọn ca....................................................28
.II.8. Biểu đồ hoạt động biểu diễn các thao tác nghiệp vụ........................................29

XÂY DỰNG VÀ CÀI ĐẶT CHƯƠNG TRÌNH.........................................33
.I Các yêu cầu đối với hệ thống.......................................................................................33
.II Cơ sở dữ liệu của hệ thống.........................................................................................33
.III Xây dựng chương trình..............................................................................................35
.IV Cài đặt và thử nghiệm chương trình..........................................................................35
.IV.1. Cài đặt............................................................................................................35
.IV.2. Môi trường thử nghiệm..................................................................................35
.IV.3. Triển khai và thử nghiệm...............................................................................36
.IV.4. Kết quả thử nghiệm chương trình...................................................................36

KẾT LUẬN....................................................................................................43
.I Những kết quả đã đạt được..........................................................................................43
.II Những tồn tại..............................................................................................................43
.III Hướng phát triển........................................................................................................43
[1] Trey Nash. Accelerated C# 2008. Apress, 2007, 510 tr............................................45
[2] Phương Lan. Lập trình Windows với C# .Net. Nhà Xuất bản Lao Động - Xã Hội...45
[3] TS Hồ Tường Vinh, ThS.Phạm Nguyễn Cường. Phân tích thiết kế hệ thống hướng đối
tượng bằng UML. Đại học KHTN-TP HCM..................................................................45
[4] Phạm Hữu Khang, Hoàng Đức Hải. Lập trình ứng dụng chuyên nghiệp SQL Server
2000. Nhà Xuất bản Giáo Dục, 2002, 494 tr...................................................................45

v



DANH MỤC HÌNH VẼ
HÌNH 2.1: CẤU TRÚC CỦA .NET FRAMEWORK .................................3
HÌNH 2.2: BIỂU ĐỒ USE CASE CỦA MỘT CÔNG TY BẢO HIỂM...16
HÌNH 2.3: MỘT SƠ ĐỒ LỚP TIÊU BIỂU................................................17
HÌNH 2.4: BIỂU ĐỒ ĐỐI TƯỢNG.............................................................17
HÌNH 2.5: MỘT VÍ DỤ VỀ BIỂU ĐỒ TRẠNG THÁI.............................18
HÌNH 2.6: VÍ DỤ VỀ MỘT BIỂU ĐỒ TRÌNH TỰ...................................19
HÌNH 2.7: VÍ DỤ VỀ BIỂU ĐỒ CỘNG TÁC............................................19
HÌNH 2.8: VÍ DỤ VỀ BIỂU ĐỒ HOẠT ĐỘNG.........................................20
HÌNH 3.1: BIỂU ĐỒ USE CASE BIỂU DIỄN CÁC CHỨC NĂNG CỦA
BỒI BÀN........................................................................................................23
HÌNH 3.2: BIỂU ĐỒ USE CASE BIỂU DIỄN CÁC CHỨC NĂNG CỦA
THU NGÂN....................................................................................................23
HÌNH 3.3: BIỂU ĐỒ USE CASE BIỂU DIỄN CÁC CHỨC NĂNG CỦA
QUẢN LÝ.......................................................................................................23
HÌNH 3.4: BIỂU ĐỒ LỚP CỦA HỆ THỐNG............................................27
HÌNH 3.5: BIỂU ĐỒ TRÌNH TỰ CỦA QUÁ TRÌNH ĐĂNG NHẬP......28
HÌNH 3.6: BIỂU ĐỒ TRÌNH TỰ CỦA QUÁ TRÌNH CHỌN CA...........28
HÌNH 3.7: BIỂU ĐỒ HOẠT ĐỘNG CỦA QUÁ TRÌNH MỞ BÀN........29
HÌNH 3.8: BIỂU ĐỒ HOẠT ĐỘNG CỦA QUÁ TRÌNH DỜI MÓN......29
HÌNH 3.9: BIỂU ĐỒ HOẠT ĐỘNG CỦA QUÁ TRÌNH GHÉP BÀN....30
HÌNH 3.10: BIỂU ĐỒ HOẠT ĐỘNG CỦA QUÁ TRÌNH CHIA BÀN...30
HÌNH 3.11: BIỂU ĐỒ HOẠT ĐỘNG CỦA QUÁ TRÌNH CHIA HOÁ ĐƠN
.........................................................................................................................31
HÌNH 3.12: BIỂU ĐỒ HOẠT ĐỘNG CỦA QUÁ TRÌNH GIẢM GIÁ...31
HÌNH 3.13: BIỂU ĐỒ HOẠT ĐỘNG CỦA QUÁ TRÌNH THANH TOÁN
.........................................................................................................................32
HÌNH 4.0.3: SƠ ĐỒ BIỂU DIỄN QUAN HỆ DỮ LIỆU GIỮA CÁC BẢN34
HÌNH 4.2: MÔ HÌNH BA TẦNG...............................................................35

HÌNH 4.3: GIAO DIỆN MỞ MÁY..............................................................36

vi


HÌNH 4.4: GIAO DIỆN ĐĂNG NHẬP.......................................................37
HÌNH 4.5: GIAO DIỆN CHỌN CA LÀM VIỆC.......................................37
HÌNH 4.6: GIAO DIỆN CHÍNH CỦA QUÁ TRÌNH BÁN HÀNG..........38
HÌNH 4.7: GIAO DIỆN NHẬP MÔ TẢ BÀN SAU KHI CHỌN CHỨC
NĂNG MỞ BÀN............................................................................................38
HÌNH 4.8: GIAO DIỆN NHẬP SỐ NGƯỜI CỦA BÀN............................39
HÌNH 4.9: GIAO DIỆN GỌI MÓN.............................................................39
HÌNH 4.10: GIAO DIỆN XEM BÀN ĐANG MỞ......................................40
HÌNH 4.0.4: GIAO DIỆN TRƯỚC KHI CHIA BÀN................................40
HÌNH 4.12: GIAO DIỆN SAU KHI CHIA BÀN........................................41
HÌNH 4.13: GIAO DIỆN GIẢM GIÁ.........................................................41
HÌNH 4.14: GIAO DIỆN THANH TOÁN..................................................42

vii


DANH MỤC BẢNG
BẢNG 2.1: DANH SÁCH CÁC KIỂU CÓ SẴN TRONG C#.....................5
BẢNG 4.2: MÔ TẢ CÁC BẢNG TRONG CƠ SỞ DỮ LIỆU CỦA HỆ
THỐNG..........................................................................................................33

viii


CHƯƠNG 1


TỔNG QUAN ĐỀ TÀI
.I
.I.1.

Giới thiệu
Bối cảnh

Với sự bùng nổ của công nghệ thông tin làm cho tốc độ tin học hoá trong mọi
lĩnh vực của cuộc sống cũng phát triển theo. Trong đó có sự góp sức của công nghệ
thông tin vào trong các hệ thống quản lý giúp chúng ta tiết kiệm được rất nhiều thời
gian, công sức và chi phí. Những hệ thống quản lý ngày càng hiệu quả và hoạt động
đáng tin cậy hơn. Sự xuất hiện của máy tính đã làm thay đổi nhiều mặt cuộc sống, con
người ngày càng phát triển, tìm tòi và chế tạo những thiết bị mới giúp chúng ta làm
việc thuận tiện và dễ dàng hơn. Trong đó có sự chế tạo ra chiếc màn hình cảm ứng là
thiết bị tiện dụng hơn khi ta không phải dùng chuột để điều khiển.
Ngày nay các nhà hàng ở nước ta mọc lên ngày càng nhiều, để có được doanh
thu cao các nhà hàng sẽ tìm mọi cách để phục vụ khách hàng một cách tốt nhất.
Những nhà hàng có phạm vi khá lớn việc di chuyển của nhân viên khá bất tiện, vì vậy
sự chậm trễ làm cho khách hàng không vừa lòng. Hơn nữa việc quản lý thủ công làm
cho nhà hàng mất nhiều thời gian, nguồn nhân lực và sự chính xác không cao.
Nếu ta ứng dụng công nghệ thông tin vào việc quản lý và dùng chiếc màn hình
cảm ứng cho những máy trạm sẽ làm cho nhân viên phục vụ tiện hơn trong việc thao
tác nghiệp vụ. Vậy làm sao để đưa thiết bị này vào lĩnh vực quản lý nhà hàng?
Sau khi tìm hiểu về nghiệp vụ bán hàng cùng với kiến thức đã được học ở
trường, sự hướng dẫn của thầy Võ Trung Hùng và sự giúp đỡ của công ty TOCASO
nơi em thực tập. Em xây dựng chương trình quản lý trong đó làm giảm thiểu sự di
chuyển của nhân viên và giúp cho việc quản lý trở nên dễ dàng và thuận tiện hơn nhờ
sự trợ giúp của màn hình cảm ứng và hệ thống mạng.
Được sự đồng ý của giáo viên hướng dẫn và ban chủ nhiệm khoa, em đã chọn

đề tài “QUẢN LÝ BÁN HÀNG CHO CÁC NHÀ HÀNG” làm luận văn tốt nghiệp
của mình.

.I.2.

Vấn đề đặt ra

Ứng dụng công nghệ phần mềm vào công tác quản lý nhà hàng giúp cho công
việc bán hàng được thực hiện nhanh chóng và tiện lợi.
Chương trình xây dựng xong phải giúp nhân viên phục vụ thực hiện các thao
tác nghiệp vụ trong nhà hàng tương tự như trong thực tế.
Chương trình phải đem lại hiệu quả quản lý cao hơn so với thực tế đang diễn ra
tại các nhà hàng.

.II Mục đích
Với đề tài đã chọn, em muốn xây dựng một hệ thống các máy client trao đổi dữ
liệu với máy server kết hợp sự tiện dụng của màn hình cảm ứng. Đề tài có thể được

1


Quản lý bán hàng cho các nhà hàng

mô tả như sau: Khi xây dựng chương trình thành công. Gói client sẽ thực thi và xử lý
những hoạt động nghiệp vụ như đặt bàn, đặt tiệc, ghép bàn, chia bàn, dời bàn, dời
món, xoá món, chia bill, thanh toán, giảm giá, báo cáo, kiểm tra… tất cả các thao tác
xử lý đều nằm trong gói client và nó chỉ gởi dữ liệu về server để lưu vào cơ sở dữ liệu.
Nếu có một máy client mất kết nối thì client sẽ dùng dữ liệu cục bộ trên máy client đó
và sau khi có kết nối sẽ được đồng bộ với dữ liệu ở server. Gói quản lý chỉ có nhiệm
vụ nhập dữ liệu.


.III Nội dung và phạm vi
Nội dung trong chương trình xây dựng hệ thống quản lý bàn hàng cho nhà hàng
trong đó mọi chức năng hoạt động nghiệp vụ trong nhà hàng: đặt bàn, đặt tiệc, mở
bàn, gọi món, xoá món, ghép tàn, chia bàn, dời bàn, chia bill, thanh toán, giảm giá,
báo cáo, kiểm tra, …
Nhưng trong phạm vi của đề tài em sẽ xây dựng các chức năng: mở bàn, gọi
món, xoá món, dời món, ghép bàn, chia bàn, dời bàn, chia hoá đơn, thanh toán, giảm
giá.

.IV Phương pháp
-

.V

Tìm hiểu nghiệp vụ quản lý và bán hàng ở nhà hàng để xây dựng hệ thống.
Nghiên cứu tìm hiểu UML để phân tích và thiết kế chương trình và vận dụng
công cụ MS Visio để vẽ những biểu đồ.
Sử dụng SQL Server 2000 để thiết kế và quản lý dữ liệu.
Nghiên cứu tìm hiểu công nghệ .Net 2008 để xây dựng chương trình trong đó
chú trọng ngôn ngữ C# và vận dụng có hiệu quả vấn đề đồng bộ trong .Net
2008.

Kết quả đạt được
Khi chương trình xây dựng xong cơ bản cần phải đạt được những kết quả sau:
Thiết kế cơ sở dữ liệu phải tối ưu.
Dữ liệu phải được đồng bộ chính xác.
Khi mất kết nối đến server thì client phải hoạt động tốt.
Các chức năng về nghiệp vụ bán hàng được đưa ra trong phạm vi của đề tài
phải thực thi được.

- Giao diện phải hợp lý và dễ thao tác
-

.VI Ý nghĩa
Đề tài xây dựng thành công sẽ có ý nghĩa lớn đối với nhà hàng: làm giảm thời
gian của nhân viên di chuyển, giúp nhân viên làm việc khoa học và chính xác hơn, cải
tiến độ chính xác của dữ liệu, giảm thời gian chờ đợi của khách. Giúp người quản lý
dễ dàng hơn trong việc theo dõi và vận hành toàn bộ hệ thống bán hàng

2


CHƯƠNG 2

CƠ SỞ LÝ THUYẾT
.I
.I.1.

Tổng quan .Net Framework
Cấu trúc .Net Framework

.Net Framework là một nền tảng cung cấp các tiện nghi cho việc xây dựng và
chạy các ứng dụng. Các thành phần chính của nó là: CLR (Common Language
Runtime) và FCL (. Net Framework Class Library).
CLR nằm ở phần trên cùng của hệ điều hành và cung cấp một môi trường ảo để
chạy các ứng dụng dưới sự quản lý của nó.
FCL cung cấp API hướng đối tượng để viết các ứng dụng .Net. Khi viết các
ứng dụng .Net ta bỏ lại phía sau các công cụ như Com, ATL, MFC, Window API, …
và chỉ sử dụng FCL.
Cấu trúc cụ thể của .Net Framework như sau:


Hình 2.1: Cấu trúc của .Net Framework .

Framework Base Class cung cấp các lớp đối tượng để lập trình ứng dụng.
ADO.NET là phiên bản tiếp theo của ADO phục vụ cho việc truy cập dữ liệu từ hầu
hết các nguồn cung cấp dữ liệu hiện nay, đặc biệt có hỗ trợ XML. Hai dòng ứng dụng
chính của .Net là ứng dụng mạng (Web Form, Web Service) và Window Form.

3


Quản lý bán hàng cho các nhà hàng

.I.2.

Common Language Runtime(CLR)

CLR
Trung tâm của .NET framework là môi trường thời gian chạy, gọi là Common
Language Runtime (CLR) hoặc .NET runtime. Mã của các điều khiển trong CLR
thường là mã có quản.
Tuy nhiêu, trước khi được thực thi bởi CLR, mã được phát triển trong C# (hoặc
các ngôn ngữ khác) cần phải được biên dịch. Quá trình biên dịch trong .NET xảy ra
theo hai bước:
- Dịch mã nguồn thành Microsoft Intermediate Language (MS-IL)
- Dịch IL thành mã nền cụ thể bởi CLR
Mới nhìn có vẻ hơi dài dòng. Nhưng thật sự, một tiến trình dịch hai mức là rất
cần thiết, bởi vì trạng thái của Microsoft Intermediate Language (mã có quản) là chìa
khoá cung cấp nhiều lợi ích trong .NET.


Intermediate Language
Microsoft Intermediate Language (thường được viết tắt là “Intermediate
Language ” hay “IL”) tương tự như ý tưởng về mã Java byte, nó là một ngôn ngữ cấp
thấp với những cú pháp đơn giản (dựa trên cơ sở mã số hơn text), chính vì điều này sẽ
làm cho quá trình dịch sang mã máy nhanh hơn. Bất kì ngôn ngữ nào hướng .NET
cũng sẽ hỗ trợ các đặc tính chính của IL.
Sau đây là những đặc tính chính của Intermediate Language:
- Hướng đối tượng và dùng interfaces
- Sự tách biệt giữa kiểu giá trị và kiểu tham chiếu
- Định kiểu mạnh
- Quản lỗi thông qua các ngoại lệ
- Sự dụng các thuộc tính
Các lợi ích của mã có quản:
Độc lập nền
Trước tiên, nó có nghĩa là các file chứa mã lệnh có thể chạy trên bất kì nền nào,
vào thời gian chạy trình biên dịch cuối sẽ hoạt động và mã có thể chạy trên một nền
cụ thể. Nói cách khác việc dịch mã nguồn sang Intermediate Language cho phép độc
lập nền trong .NET, nó giống như cách dịch mã nguồn sang Java byte code cung cấp
sự độc lập nền trong Java.
Sự cải tiến trong thực thi
Thay vì phải dịch toàn bộ ứng dụng một lần, trình biên dịch JIT sẽ biên dịch
từng phần mã khi nó được gọi. Khi mã được dịch rồi, mã kết quả sẽ được giữ lại cho
tới khi thoát khỏi ứng dụng, chính vì thế nó không phải biên dịch lại trong lần chạy kế
tiếp. Microsoft quả quyết rằng cách xử lý này có hiệu lực cao hơn là dịch toàn bộ ứng
dụng, bởi vì có trường hợp một khối lượng lớn mã của ứng dụng không bao giờ được
sử dụng trong thời gian chạy. Khi sử dụng trình biên dịch JIT , các đoạn mã này sẽ
không bao giờ được dịch.
Tương hoạt giữa các ngôn ngữ
Chúng ta đã biết cách thức IL cho phép độc lập nền, trình biên dịch JIT có thể
cải thiện quá trình thực thi. Tuy nhiên, IL cũng làm cho tương hoạt giữa các ngôn ngữ

4


Quản lý bán hàng cho các nhà hàng

trở nên dễ dàng hơn. Bạn có thể biên dịch IL từ một ngôn ngữ, và mã này sau đó có
thể tương hoạt với IL được biên dịch bởi một ngôn ngữ khác.

.II Ngôn ngữ lập trình C# (C Sharp)
.II.1. Giới thiệu
Ngôn ngữ C# khá đơn giản, chỉ khoảng 80 từ khoá và hơn mười mấy kiểu dữ
liệu được xây dựng sẵn. Tuy nhiên, ngôn ngữ C# có ý nghĩa cao khi nó thực thi những
khái niệm lập trình hiện đại. C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần
component, lập trình hướng đối tượng. Những tính chất đó hiện diện trong một ngôn
ngữ lập trình hiện đại. Và ngôn ngữ C# hội đủ những điều kiện như vậy, hơn nữa nó
được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java.
Không như các ngôn ngữ thủ tục, ngôn ngữ C# không quan tâm đến dữ liệu
toàn cục hay các hàm toàn cục. Tất cả các dữ liệu và phương thức phải được đóng gói
như một đơn vị chức năng. Các đơn vị chức năng này là những đối tượng có thể sử
dụng lại, chúng độc lập và có thể hoàn toàn độc lập.

.II.2. Hệ thống kiểu trong c#
Hệ thống kiểu dữ liệu trong C# cũng là hệ thống kiểu dữ liệu được sử dụng
chung của bộ Visual Studio.Net. Các kiểu dữ liệu trong C# hoàn toàn hướng đối
tượng, thời gian sống của chúng bị giới hạn trong thời gian mà chúng khai báo.
Bảng 2.1: Danh sách các kiểu có sẵn trong C#

Kiểu
Object
String

Sbyte
Short
Int
Long
Byte
Ushort
Uint
Ulong
Float
Double
Bool
Char
Decimal

Mô tả
Lớp cơ sở của tất cả các đối tượng
Dãy các ký tự ở dạng Unicode
Nguyên có dấu 8 bit
Nguyên có dấu 16 bit
Nguyên có dấu 32 bit
Nguyên có dấu 64 bit
Nguyên không dấu 8 bit
Nguyên không dấu 16 bit
Nguyên không dấu 32 bit
Nguyên không dấu 64 bit
Số chấm động có độ chính xác đơn
Số chấm động có độ chính xác đôi
Kiểu logic
Ký tự Unicode
Số thập phân có 28 chữ số có nghĩa


5


Quản lý bán hàng cho các nhà hàng

.II.3. Các khái niệm lập trình
Không gian tên
Không gian tên hỗ trợ cho sự cô lập và sự đóng gói các lớp, các giao diện, các
struct có liên quan thành một đơn vị.
Cú pháp cho việc khai báo một không gian tên như sau:
namespace ten_khong_gian_ten
{
// các lớp (class), các giao diện, các struct, …
}

Sử dụng các thực thể bên trong một không gian tên có thể thực hiện hai cách
khác nhau.
- Sử dụng từ khoá using
- Sử dụng tên đầy đủ của một thực thể riêng biệt. Ví dụ lớp Console tồn tại bên
trong không gian tên System
System.Console.WriteLine(“Xin chao”);

Cấu trúc (Struct)
Trong C#, một cấu trúc được xem như là một kiểu tham trị và được quản lý
trong vùng nhớ ngăn xếp chứ không phải trong heap.
Struct dùng rất thích hợp với các dữ liệu đơn giản hoặc lưu trữ cơ chế tuần tự
hoá và trạng thái của đối tượng. Struct có thể chứa các thành phần dữ liệu, thuộc tính,
phương thức và constructor (phương thức khởi tạo). Struct tương tự như class tuy
nhiên struct không thể kế thừa từ một lớp hay một struct khác. Struct không thể tạo

các constructor với tham số bên ngoài truyền vào
Cú pháp khai báo struct
[thuộc tính] [bổ sung truy cập] struct <tên cấu trúc> [: danh_
sách giao diện]
{
[thành viên của cấu trúc]
}

Ví dụ về một struct đơn giản. Kiểu Location thể hiện một điểm trong không
gian hai chiều.
using System;
public struct Location
{
public Location( int xCoordinate, int yCoordinate)
{
xVal = xCoordinate;
yVal = yCoordinate;
}
public int x
{
get { return xVal;}
set { xVal = value;}
}
public int y
{

6


Quản lý bán hàng cho các nhà hàng

get { return yVal;}
set { yVal = value;}
}
public override string ToString()
{
return (String.Format(“{0}, {1}”, xVal, yVal));
}
// thuộc tính private lưu toạ độ x, y
private int xVal;
private int yVal;
}
public class Tester
{
public void myFunc( Location loc)
{
loc.x = 50;
loc.y = 100;
Console.WriteLine(“Loc1 location: {0}”, loc);
}
static void Main()
{
Location loc1 = new Location( 200, 300);
Console.WriteLine(“Loc1 location: {0}”, loc1);
Tester t = new Tester();
t.myFunc( loc1 );
Console.WriteLine(“Loc1 location: {0}”, loc1);
}
}

Lớp (Class)

Lớp là sự gói gọn các dữ liệu và phương thức hoạt động trên dữ liệu đó. Trong
C# lớp được xem là kiểu dữ liệu tham chiếu, như vậy các thể hiện của lớp sẽ được
chứa tại vùng nhớ heap và được quả lý bởi bộ thu dọn rác (GC).
Lớp có thể chứa các trường, phương thức, sự kiện, thuộc tính và các lớp lồng
nhau. Lớp cũng có thể kế thừa từ các lớp khác và phát triển đa giao diện.
Cũng như struct, mức độ bảo vệ của lớp cũng là private. Lớp có thể khai báo
các thành phần là public, protected, private, internal hay protected internal.
Khai báo một lớp bằng cách sử dụng từ khoá class. Cú pháp đầy đủ của khai
báo một lớp như sau:
[Thuộc tính] [Bổ sung truy cập] class <Định danh lớp> [: Lớp_
cơ sở]
{
phương thức hành động >
}

Ví dụ sau đây tạo một lớp đơn giản có chức năng hiểu thị thời gian trong một
ngày. Lớp này có hành vi thể hiện ngày, tháng, năm, giờ, phút, giây hiện hành.
using System;
public class ThoiGian
{
public void ThoiGianHienHanh()
{

7


Quản lý bán hàng cho các nhà hàng
Console.WriteLine(“ Thoi gian hien hanh la :_
{0}/{1}/{2} {3}:{4}:{5}”,_

Ngay, Thang, Nam, Gio, Phut, Giay);

}
// Phương thức khởi dựng
public ThoiGian( System.DateTime dt )
{
Nam = dt.Year;
Thang = dt.Month;
Ngay = dt.Day;
Gio = dt.Hour;
Phut = dt.Minute;
Giay = dt.Second;
}
// Biến thành viên private
int Nam;
int Thang;
int Ngay;
int Gio;
int Phut;
int Giay;

}
public class Tester
{
static void Main()
{
System.DateTime currentTime =
System.DateTime.Now;
ThoiGian t = new ThoiGian( currentTime );
t.ThoiGianHienHanh();

}
}

Kế thừa
Kế thừa là khái niệm then chốt của thiết kế trong các ngôn ngữ hướng đối
tượng. Kế thừa cho phép các chức năng và thuộc tính dùng chung ở trong lớp cơ sở,
và những chỉ định có thể kế thừa những chức năng ở lớp cơ sở. C# chỉ hỗ trợ kế thừa
đơn. C++ cho phép đa kế thừa và nếu được sử dụng đúng cách, đây là điểm rất mạnh.
Tuy nhiên phải thừa nhận là đa kế thừa rất khó quản lý và như vậy cũng rất khó áp
dụng. Đây là một trong những lý do C# chỉ hỗ trợ kế thừa đơn.
Ví dụ sau minh hoạ việc tạo và sử dụng các lớp cơ sở và dẫn xuất.
using System;
public class Window
{
// Hàm khởi dựng lấy hai số nguyên chỉ đến vị trí
của cửa sổ trên console
public Window( int top, int left)
{
this.top = top;
this.left = left;
}

8


Quản lý bán hàng cho các nhà hàng
// mô phỏng vẽ cửa sổ
public void DrawWindow()
{
Console.WriteLine(“Drawing Window at {0},

{1}”, top, left);
}
// Có hai biến thành viên private do đó
// hai biến này sẽ không thấy bên trong lớp
// dẫn xuất.
private int top;
private int left;

}
// ListBox dẫn xuất từ Window
public class ListBox: Window
{
// Khởi dựng có tham số
public ListBox(int top, int left, string_
theContents) : base(top, left) // gọi khởi dựng
//của lớp cơ sở
{
mListBoxContents = theContents;
}
// Tạo một phiên bản mới cho phương thức DrawWindow
vì //trong lớp dẫn xuất muốn thay đổi hành vi thực
hiện bên //trong phương thức này
public new void DrawWindow()
{
base.DrawWindow();
Console.WriteLine(“ ListBox write: {0}”,
mListBoxContents);
}
// biến thành viên private
private string mListBoxContents;

}
public class Tester
{
public static void Main()
{
// tạo đối tượng cho lớp cơ sở
Window w = new Window(5, 10);
w.DrawWindow();
// tạo đối tượng cho lớp dẫn xuất
ListBox lb = new ListBox( 20, 10, “Hello
world!”);
lb.DrawWindow();
}
}

Đa hình
Trong lập trình hướng đối tượng, khả năng ghi đè phương thức của lớp cơ sở
và cung cung cấp một phát triển khác ở trong lớp dẫn xuất là một hình thức cơ bản của
khái niệm đa hình.

9


Quản lý bán hàng cho các nhà hàng

Hãy xem xét ví dụ trước, để chỉ định rằng phương thức DrawWindow() của lớp
Window là đa hình, đơn giản là ta thêm từ khoá virtual vào khai báo như sau:
public virtual void DrawWindow()

Lúc này thì các lớp dẫn xuất được tự do thực thi các cách xử riêng của mình

trong phiên bản mới của phương thức DrawWindow(). Để làm được điều này chỉ cần
thêm từ khoá override để chồng lên phương thức ảo DrawWindow() của lớp cơ sở.
Sau đó thêm các đoạn mã nguồn mới vào phương thức viết chồng này.
Ví dụ sau minh hoạ cho sự thực thi tính chất đa hình.
using System;
public class Window
{
public Window( int top, int left )
{
this.top = top;
this.left = left;
}
// phương thức được khai báo ảo
public virtual void DrawWindow()
{
Console.WriteLine( “Window: drawing window at_
{0}, {1}”, top, left );
}
// biến thành viên của lớp
protected int top;
protected int left;
}
public class ListBox : Window
{
// phương thức khởi dựng có tham số
public ListBox(int top, int left, string contents):
_base( top, left)
{
listBoxContents = contents;
}

// thực hiện việc phủ quyết phương thức DrawWindow
public override void DrawWindow()
{
base.DrawWindow();
Console.WriteLine(“ Writing string to the
listbox: {0}”, listBoxContents);
}
// biến thành viên của ListBox
private string listBoxContents;
}
public class Button : Window
{
public Button(int top, int left) : base(top, left)
{
}
// phủ quyết phương thức DrawWindow của lớp cơ sở
public override void DrawWindow()
{

10


Quản lý bán hàng cho các nhà hàng
Console.WriteLine(“ Drawing a button at {0}:_
{1}”, top, left);
}
}
public class Tester
{
static void Main()

{
Window win = new Window(1,2);
ListBox lb = new ListBox( 3, 4, “ Stand alone
list box”);
Button b = new Button( 5, 6 );
win.DrawWindow();
lb.DrawWindow();
b.DrawWindow();
Window[] winArray = new Window[3];
winArray[0] = new Window( 1, 2 );
winArray[1] = new ListBox( 3, 4, “List box is
array”);
winArray[2] = new Button( 5, 6 );
for( int i = 0; i < 3; i++)
{
winArray[i].DrawWindow();
}
}
}

.III Hệ quản trị cơ sở dữ liệu SQL Server
.III.1. Giới thiệu
Hệ quản trị cơ sở dữ liệu là phần mềm cho phép bạn định nghĩa, khởi tạo, bảo
trì cơ sở dữ liệu và cung cấp các truy xuất điều khiển đến dữ liệu. Thông thường thuật
ngữ cơ sở dữ liệu ám chỉ kho dữ liệu được lưu trữ. Tuy nhiên trong các hệ cơ sở dữ
liệu tin học hoá, cơ sở dữ liệu còn bao gồm nhiều thành phần khác như phần cứng,
phần mềm và cả người sử dụng. Trong các hệ thống này dữ liệu được truy xuất qua
các trình ứng dụng hoặc giao diện do hệ quản trị cơ sở dữ liệu cung cấp.
Tập hợp các sự kiện được trình bày trong cơ sở dữ liệu được gọi là hệ thống
các diễn dịch (universe of discourse - UOD) . UOD chỉ bao gồm các sự kiện chặt chẽ

và phù hợp cho người sử dụng. Vì vậy cơ sở dữ liệu phải được thiết kế, xây dựng và
phát triển dựa trên yêu cầu của người sử dụng đặc thù và mục đích sử dụng cụ thể.
Hệ quản trị cơ sở dữ liệu quan hệ là hệ quản trị dữ liệu dựa trên mô hình dữ
liệu quan hệ. Đối với loại cơ sở dữ liệu này, mọi thông tin tạo nên UOD được gọi là
quan hệ. Thuật ngữ quan hệ được sử dụng trong nhiều lĩnh vực, tuy nhiên trong một
góc nhìn nào đó, quan hệ là một bảng dữ liệu hai chiều. Trong cơ sở dữ liệu, bảng và
quan hệ đều lưu trữ dữ liệu. Mối quan hệ bao gồm tên và tập hợp các cột (hay còn gọi
là thuộc tính). Dữ liệu xuất hiện trong bảng là tập hợp các hàng (hay còn gọi là bộ dữ
liệu).
Microsoft SQL Server 2000 là một công cụ thiết kế và xây dựng cơ sở dữ liệu
có tính thực thi cao. Được trải nghiệm qua nhiều phiên bản nhằm đem lại sự tối ưu.
11


Quản lý bán hàng cho các nhà hàng

Những người phát triển ứng dụng, những người quản lý cơ sở dữ liệu, những nhà phân
tích hay thiết kế hệ thống và tất cả những ai quan tâm đến thiết kế, phát triển và quản
lý các trình ứng dụng đều có thể sử dụng công cụ này.

.III.2. Các thành phần cấu thành cơ bản
-

Database: cơ sở dữ liệu của SQL Server.
Tập tin log: Tập tin lưu trữ những chuyển tác của SQL.
Tables: Bảng dữ liệu.
Filegroups: Tập tin nhóm.
Diagrams: Sơ đồ quan hệ.
View: Khung nhìn (hay bảng ảo mà sồ liệu dựa trên bảng).
Stored Procedure: Thủ tục và hàm nội.

User defined Function: Hàm do người dùng định nghĩa.
Users: Người sử dụng cơ sở dữ liệu.
Roles: Các quy định vai trò và chức năng trong hệ thống SQL Server.
Rules: Những quy tắc.
Defaults: Các giá trị mặc định.
User-defined data types: Kiểu dữ liệu do người dùng định nghĩa.
Full-text catalogs: Tập phân loại dữ liệu text.

.III.3. Đối tượng cơ sở dữ liệu
Master: Chứa tất cả những thông tin cấp hệ thống (system-level information)
bao gồm thông tin về các database khác trong hệ thống như vị trí của các data files,
các login account và các thiết đặt cấu hình hệ thống của SQL Server (system
configuration settings).
Tempdb: Chứa tất cả những table hay stored procedure được tạm thời tạo ra
trong quá trình làm việc bởi user hay do bản thân SQL Server engine. Các table hay
stored procedure này sẽ biến mất khi khởi động lại SQL Server hay khi ta disconnect.
Model: Database này đóng vai trò như một bản kẽm (template) cho các
database khác. Nghĩa là khi một user database được tạo ra thì SQL Server sẽ copy
toàn bộ các system objects (tables, stored procedures...) từ Model database sang
database mới vừa tạo.
Msdb: Database này được SQL Server Agent sử dụng để hoạch định các báo
động và các công việc cần làm (schedule alerts and jobs).

.III.4. Các công cụ chính
Trình Enterprise Manager: Màn hình điều khiển khi quản trị SQL Server,
cung cấp cho người quản trị nhiều chức năng để quản lý bằng giao diện đồ hoạ.
Trình Query Analyzer: Giúp phát triển và gỡ rối trong SQL Server, nó là
trình soạn thảo và thực thi câu lệnh SQL hay Stored Procedure.
SQL Profiler: Nó có khả năng "chụp" (capture) tất cả các sự kiện hay hoạt
động diễn ra trên một SQL server và lưu lại dưới dạng text file rất hữu dụng trong việc

kiểm soát hoạt động của SQL Server.

12


Quản lý bán hàng cho các nhà hàng

.III.5. Phát biểu T-SQL
-

Câu lệnh truy xuất

-

Tạo bảng

SELECT [ten_truong1, ten_truong2,…] FROM <ten_bang>
[WHERE dieu_kien]
CREAT TABLE <ten_bang> (ten_truong1 kieu_du_lieu,…)

-

Nhập dữ liệu
INSERT INTO <ten_bang> [(ten_truong1, ten_truong2,…)]
[VALUES (value1, value2,…)]

-

Cập nhật dữ liệu


-

Xoá dữ liệu

UPDATE <ten_bang> SET <ten_truong1> = value1,
<ten_truong2> = value2,…
DELETE [FROM] <ten_bang>

[WHERE dieu_kien]

.III.6. Thủ tục
Trong khi thực hiện những chuyển tác cơ sở dữ liệu, đôi khi bạn không dùng
đến phát biểu SQL trực tiếp. Tất cả phát biểu SQL được viết dưới dạng như một đối
tượng của SQL Server là Stored Procedure.
Thủ tục được tạo ra như sau:
CREATE PROCEDURE | PROC <ten_thu_tuc>
[<ten_doi_so> <kieu_du_lieu> [=<gia_tri_mac_dinh> [OUT PUT] [,


]]
AS
<ma>
GO

Đoạn <ma> là các phát biểu SQL Server và T-SQL bao gồm cả biến, phép toán
và các toán tử nếu có, chúng đặt sau phát biểu AS.
Trước phát biểu AS và sau khai báo tên thủ tục là danh sách các tham số cần
thiết từ bên ngoài truyền vào.

.III.7. Trigger

Trigger là một loại đặc biệt của thủ tục, nó được gắn chặt vào một bảng và
được thực thi bởi SQL Server khi có các thao tác xử lý dữ liệu liên quan đến bảng.
Cách sử dụng thông thường nhất của trigger là tuân theo các quy tắc của thủ tục. Các
trigger còn được sử dụng xoá và cập nhật chồng cho các bảng con và để quản lý dữ
liệu không bình thường.
Khi tạo trigger, ta chỉ định thao tác hay các thao tác (INSERT, UPDATE VÀ
DELETE) nào làm cho trigger đó hoạt động. Có thể có nhiều trang trigger cập nhật,
trong đó mỗi trigger về cơ bản trông coi các thay đổi trong một cột được chỉ định.
Trigger hoạt động mà không phụ thuộc vào có bao nhiêu dòng bị ảnh hưởng
bởi truy vấn. Các trigger luôn luôn hoạt động ngay cả khi nếu truy vấn không có dòng
nào bị ảnh hưởng.
Trigger hoạt động ngay sau khi SQL Server hiệu chỉnh dữ liệu, trigger có thể
xem kết quả trước và sau truy vấn. Việc này được thể hiện bởi việc sử dụng hai bảng

13


Quản lý bán hàng cho các nhà hàng

đặc biệt gọi là Inserted và Deleted. Các bảng Inserted và Deleted tồn tại trong bộ nhớ
và chỉ tồn tại trong thời gian trigger đó.
Tạo một trigger bằng cách sử dụng câu lệnh CREATE TRIGGER của
Transaction-SQL. Một phần cú pháp được trình bày sau đây:
CREATE TRIGGER ten_trigger
ON ten_bang
FOR [Insert][,][Update][,][Delete]
AS
<Câu lệnh SQL>

.III.8. Kết nối cơ sở dữ liệu SQL Server

// Conn là biến kết nối cơ sở dữ liệu
Conn = new System.SQLClient.SQLConnection();

// Khởi tạo biến Conn với đối tượng kết nối cơ sở dữ liệu
strConn = “Server = 192.168.1.1”;
strConn += “uid = sa; pwd = 12345;”;
strConn += “database = qlBanhang”;

// Khởi tạo biến strConn với chuỗi kết nối dữ liệu
Conn.ConnectionString = strConn;

-

Diễn giải chuỗi kết nối:
Server =: Tên của server cài đặt SQL Server.
uid =: Tài khoản đăng nhập cơ sở dữ liệu SQL Server.
pwd: Mật mã đăng nhập cơ sở dữ liệu SQL Server.
database =: Tên cơ sở dữ liệu.
Hàm kết nối cơ sở dữ liệu:

public void OpenConnection (string strConn)
{
// Khai báo biến kết nối lớp SqlConnection
SqlConnection Conn;
// Khởi tạo biến kết nối
Conn = new SqlConnection();
// Gán chuỗi kết nối vào biến kết nối
Conn.ConnectionString = strConn;
// Mở kết nối
Conn.Open();

}

.IV Ngôn ngữ mô hình hoá UML
.IV.1. Giới thiệu chung
Ngôn ngữ mô hình hoá thống nhất (Unifield Modeling Language – UML) là
một ngôn ngữ để biểu diễn mô hình theo hướng đối tượng được xây dựng bởi ba tác
giả trên với chủ đích là:
- Mô hình hoá các hệ thống sử dụng các khái niệm hướng đối tượng.
- Thiết lập một kết nối từ nhận thức của con người đến các sự kiện cần mô hình
hoá.
- Giải quyết vấn đề về mức độ thừa kế trong các hệ thống phức tạp, có nhiều
ràng buộc khác nhau.
14


Quản lý bán hàng cho các nhà hàng

-

Tạo một ngôn ngữ mô hình hoá có thể sử dụng được bởi người và máy.

UML có thể được sử dụng trong nhiều giai đoạn, từ phát triển, thiết kế cho tới
thực hiện và bảo trì. Vì mục đích chính của ngôn ngữ này là dùng các biểu đồ hướng
đối tượng để mô tả hệ thống nên miền ứng dụng của UML bao gồm nhiều loại hệ
thống khác nhau như:
Hệ thống thống tin (Information System): Cất giữ, lấy, biến đổi biểu diễn
thông tin cho người sử dụng. Xử lý những khoảng dữ liệu lớn có các quan hệ phức
tạp, mà chúng được lưu trữ trong các cơ sở dữ liệu quan hệ hay hướng đối tượng.
Hệ thống kỹ thuật (Technical System): Xử lý và điều khiển các thiết bị kỹ
thuật như viễn thông, hệ thống quân sự, hay các quá trình công nghiệp. Đây là loại

thiết bị phải xử lý các giao tiếp đặc biệt, không có phần mềm chuẩn và thường là các
hệ thống thời gian thực (real time).
Hệ thống nhúng (Embeded System): Thực hiện trên phần cứng gắn vào các
thiết bị như điện thoại di động, điều khiển xe hơi, … Điều này được thực hiện bằng
việc lập trình mức thấp với hỗ trợ thời gian thực. Những hệ thống này thường không
có các thiết bị như màn hình đĩa cứng, …
Hệ thống phân bố (Distributed System): Được phân bố trên một số máy cho
phép truyền dữ liệu từ nơi này đến nơi khác một cách dễ dàng. Chúng đòi hỏi các cơ
chế liên lạc đồng bộ để đảm bảo toàn vẹn dữ liệu và thường được xây dựng trên một
số các kỹ thuật đối tượng như CORBA, COM/DCOM, hay Java Beans/RMI.
Hệ thống Giao dịch (Business System): Mô tả mục đích, tài nguyên (con
người, máy tính, …), các quy tắc (luật pháp, chiến thuật kinh doanh, cơ chế, …), và
công việc hoạt động kinh doanh.
Phần mềm hệ thống (System Software): Định nghĩa cơ sở hạ tầng kỹ thuật
cho phần mềm khác sử dụng, chẳng hạn như hệ điều hành, cơ sở dữ liệu, giao diện
người sử dụng.

.IV.2. Các thành phần của ngôn ngữ UML
Ngôn ngữ UML bao gồm một loạt các phần tử đồ hoạ (graphic element) có thể
được kết hợp với nhau để tạo ra các biểu đồ. Bởi đây là một ngôn ngữ, nên UML cũng
có các nguyên tắc để kết hợp các phần tử đó.
Một số những thành phần chủ yếu của ngôn ngữ UML:
Hướng nhìn (view): Hướng nhìn chỉ ra những khía cạnh khác nhau của hệ
thống cần phải được mô hình hoá. Một hướng nhìn không phải là một bản vẽ, mà là
một sự trừu tượng hoá bao gồm một loạt các biểu đồ khác nhau. Chỉ qua việc định
nghĩa của một loạt các hướng nhìn khác nhau, mỗi hướng nhìn chỉ ra một khía cạnh
riêng biệt của hệ thống, người ta mới có thể tạo dựng nên một bức tranh hoàn thiện về
hệ thống. Cũng chính các hướng nhìn này nối kết ngôn ngữ mô hình hoá với quy trình
được chọn cho giai đoạn phát triển.
Biểu đồ (diagram): Biểu đồ là các hình vẽ miêu tả nội dung trong một hướng

nhìn. UML có tất cả 9 loại biểu đồ khác nhau được sử dụng trong những sự kết hợp
khác nhau để cung cấp tất cả các hướng nhìn của một hệ thống.
Phần tử mô hình hoá (model element): Các khái niệm được sử dụng trong
các biểu đồ được gọi là các phần tử mô hình, thể hiện các khái niệm hướng đối tượng
15


Quản lý bán hàng cho các nhà hàng

quen thuộc. Ví dụ như lớp, đối tượng, thông điệp cũng như các quan hệ giữa các khái
niệm này, bao gồm cả liên kết, phụ thuộc, khái quát hoá. Một phần tử mô hình thường
được sử dụng trong nhiều biểu đồ khác nhau, nhưng nó luôn luôn có chỉ một ý nghĩa
và một ký hiệu.
Cơ chế chung: Cơ chế chung cung cấp thêm những lời nhận xét bổ sung, các
thông tin cũng như các quy tắc ngữ pháp chung về một phần tử mô hình; chúng còn
cung cấp thêm các cơ chế để có thể mở rộng ngôn ngữ UML cho phù hợp với một
phương pháp xác định (một quy trình, một tổ chức hoặc một người dùng).

.IV.3. Các biểu đồ UML
Biểu đồ Use case (Use Case Diagram):
Một biểu đồ Use case chỉ ra một số lượng các tác nhân ngoại cảnh và mối liên
kết của chúng đối với Use case mà hệ thống cung cấp. Một Use case là một lời miêu
tả của một chức năng mà hệ thống cung cấp. Lời miêu tả Use case thường là một văn
bản tài liệu, nhưng kèm theo đó cũng có thể là một biểu đồ hoạt động. Các Use case
được miêu tả duy nhất theo hướng nhìn từ ngoài vào của các tác nhân (hành vi của hệ
thống theo như sự mong đợi của người sử dụng), không miêu tả chức năng được cung
cấp sẽ hoạt động nội bộ bên trong hệ thống ra sao. Các Use case định nghĩa các yêu
cầu về mặt chức năng đối với hệ thống.

Hình 2.2: Biểu đồ use case của một công ty bảo hiểm


Biểu đồ lớp (Class Diagram)
Một biểu đồ lớp chỉ ra cấu trúc tĩnh của các lớp trong hệ thống. Các lớp là đại
diện cho các “vật” được xử lý trong hệ thống. Các lớp có thể quan hệ với nhau trong
nhiều dạng thức: liên kết (associated - được nối kết với nhau), phụ thuộc (dependent một lớp này phụ thuộc vào lớp khác), chuyên biệt hoá (specialized - một lớp này là
một kết quả chuyên biệt hoá của lớp khác), hay đóng gói ( packaged - hợp với nhau
thành một đơn vị). Tất cả các mối quan hệ đó đều được thể hiện trong biểu đồ lớp, đi
kèm với cấu trúc bên trong của các lớp theo khái niệm thuộc tính (attribute) và thủ tục

16


Quản lý bán hàng cho các nhà hàng

(operation). Biểu đồ được coi là biểu đồ tĩnh theo phương diện cấu trúc được miêu tả
ở đây có hiệu lực tại bất kỳ thời điểm nào trong toàn bộ vòng đời hệ thống.
Một hệ thống thường sẽ có một loạt các biểu đồ lớp – chẳng phải bao giờ tất cả
các biểu đồ lớp này cũng được nhập vào một biểu đồ lớp tổng thể duy nhất – và một
lớp có thể tham gia vào nhiều biểu đồ lớp.
Tài liệu
1..*


Bộ phận dịch vụ tài
khoản tiết kiệm

Có ► 1..*

Tài khoản
tiết kiệm

1..*

Sở hữu


1..3
Khách hàng

Hình 2.3: Một sơ đồ lớp tiêu biểu

Biểu đồ đối tượng (Object Diagram)
Một biểu đồ đối tượng là một phiên bản của biểu đồ lớp và thường cũng sử
dụng các ký hiệu như biểu đồ lớp. Sự khác biệt giữa hai loại biểu đồ này nằm ở chỗ
biểu đồ đối tượng chỉ ra một loạt các đối tượng thực thể của lớp, thay vì các lớp. Một
biểu đồ đối tượng vì vậy là một ví dụ của biểu đồ lớp, chỉ ra một bức tranh thực tế có
thể xảy ra khi hệ thống thực thi: bức tranh mà hệ thống có thể có tại một thời điểm
nào đó. Biểu đồ đối tượng sử dụng chung các ký hiệu của biểu đồ lớp, chỉ trừ hai
ngoại lệ: đối tượng được viết với tên được gạch dưới và tất cả các thực thể trong một
mối quan hệ đều được chỉ ra.
Biểu đồ đối tượng không quan trọng bằng biểu đồ lớp, chúng có thể được sử
dụng để ví dụ hoá một biểu đồ lớp phức tạp, chỉ ra với những thực thể cụ thể và những
mối quan hệ như thế thì bức tranh toàn cảnh sẽ ra sao. Một biểu đồ đối tượng thường
thường được sử dụng làm một thành phần của một biểu đồ cộng tác (collaboration),
chỉ ra lối ứng xử động giữa một loạt các đối tượng.

:Wheel

:Car

:Engine


:Wheel

:Wheel

Hình 2.4: Biểu đồ đối tượng

17


×