1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

54 1K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 54
Dung lượng 2,74 MB

Nội dung

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ântí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ảnlý các trình ứng

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

Tel (84-511) 736 949, Fax (84-511) 842 771

Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn

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

Trang 2

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

Trang 3

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,

Trang 4

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

Trang 5

.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

Trang 6

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

Trang 7

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

Trang 8

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

Trang 9

.I Giới thiệu

.I.1 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ọilĩ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ờigian, 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, conngườ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àmviệ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 doanhthu 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àmcho 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ìnhcả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 thaotá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 TOCASOnơ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ự dichuyể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ệpcủa mình

Trang 10

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ờimó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àngtrong đó 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ọimó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ảmgiá

.IV Phương pháp

- 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ụngcô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 Net2008

.V 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àiphả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ờigian 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ảitiế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

Trang 11

.I Tổng quan Net Framework

.I.1 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 LanguageRuntime) 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ầuhế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ụngchính của Net là ứng dụng mạng (Web Form, Web Service) và Window Form

Trang 12

.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à CommonLanguage Runtime (CLR) hoặc NET runtime Mã của các điều khiển trong CLRthườ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ặccá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 ratheo 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ấtcần thiết, bởi vì trạng thái của Microsoft Intermediate Language (mã có quản) là chìakhoá cung cấp nhiều lợi ích trong NET

Intermediate Language

Microsoft Intermediate Language (thường được viết tắt là “IntermediateLanguage ” hay “IL”) tương tự như ý tưởng về mã Java byte, nó là một ngôn ngữ cấpthấ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 NETcũ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

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ịchtừ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 chotớ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ộ ứngdụ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ữ

Trang 13

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ữngkhá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ầncomponent, lập trình hướng đối tượng Những tính chất đó hiện diện trong một ngônngữ 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ệutoà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óinhư 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ụngchung của bộ Visual Studio.Net Các kiểu dữ liệu trong C# hoàn toàn hướng đốitượ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 Mô tả

Object Lớp cơ sở của tất cả các đối tượng

String Dãy các ký tự ở dạng Unicode

Sbyte Nguyên có dấu 8 bit

Short Nguyên có dấu 16 bit

Int Nguyên có dấu 32 bit

Long Nguyên có dấu 64 bit

Byte Nguyên không dấu 8 bit

Ushort Nguyên không dấu 16 bit

Uint Nguyên không dấu 32 bit

Ulong Nguyên không dấu 64 bit

Trang 14

.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ácstruct 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áchkhác nhau

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]

get { return xVal;}

set { xVal = value;}

} public int y {

Trang 15

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;

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 đó TrongC# 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ẽ đượcchứ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ồngnhau 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áocá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 khaibáo một lớp như sau:

[Thuộc tính] [Bổ sung truy cập] class <Định danh lớp> [: Lớp_

Trang 16

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 ) {

static void Main() {

System.DateTime currentTime = System.DateTime.Now;

ThoiGian t = new ThoiGian( currentTime );

t.ThoiGianHienHanh();

} }

Ví dụ sau minh hoạ việc tạo và sử dụng các lớp cơ sở và dẫn xuất

Trang 17

// 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ủakhái niệm đa hình

Trang 18

Hãy xem xét ví dụ trước, để chỉ định rằng phương thức DrawWindow() của lớpWindow 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ìnhtrong phiên bản mới của phương thức DrawWindow() Để làm được điều này chỉ cầnthê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

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()

} 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()

{

Trang 19

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ảotrì 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ậtngữ 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 quacá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ốngcá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ộtgó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

Trang 20

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ântí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 (systemconfiguration 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 haystored 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ẽ copytoàn bộ các system objects (tables, stored procedures ) từ Model database sangdatabase 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ệckiểm soát hoạt động của SQL Server

Trang 21

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

- Câu lệnh truy xuất

SELECT [ten_truong1, ten_truong2,…] FROM <ten_bang> [WHERE dieu_kien]

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ầnthiế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áctrigger 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ưởngbở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òngnà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

Trang 22

đặ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ủaTransaction-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ácgiả 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ìnhhoá

- Giải quyết vấn đề về mức độ thừa kế trong các hệ thống phức tạp, có nhiềuràng buộc khác nhau

Trang 23

- 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ớithự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ứctạ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ạithiế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ằngviệ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ệnngườ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 địnhnghĩ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ạnhriê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ợpkhá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

Trang 24

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áiniệ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òncung cấp thêm các cơ chế để có thể mở rộng ngôn ngữ UML cho phù hợp với mộtphươ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ênkế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ănbả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 cungcấ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êucầ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à đạidiện cho các “vật” được xử lý trong hệ thống Các lớp có thể quan hệ với nhau trongnhiề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 nhauthành một đơn vị) Tất cả các mối quan hệ đó đều được thể hiện trong biểu đồ lớp, đikè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

Trang 25

(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ộtlớp có thể tham gia vào nhiều biểu đồ lớp

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ộtbiể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ểmnào đó Biểu đồ đối tượng sử dụng chung các ký hiệu của biểu đồ lớp, chỉ trừ haingoạ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ộtmố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ữngmối quan hệ như thế thì bức tranh toàn cảnh sẽ ra sao Một biểu đồ đối tượng thườngthườ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

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

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

Tài liệu

Khách hàng

Có ► 1 *

Sở hữu ▼ 1 3

1 *

▲ Có

1 *

▲ Có

:Car :Engine

:Wheel:Wheel

:Wheel

Trang 26

Biểu đồ trạng thái (State Diagram)

Một biểu đồ trạng thái thường là một sự bổ sung cho lời miêu tả một lớp Nóchỉ ra tất cả các trạng thái mà đối tượng của lớp này có thể có, và những sự kiện(event) nào sẽ gây ra sự thay đổi trạng thái Một sự kiện có thể xảy ra khi một đốitượng tự gửi thông điệp đến cho nó - ví dụ như để thông báo rằng một khoảng thờigian được xác định đã qua đi – hay là một số điều kiện nào đó đã được thoả mãn Một

sự thay đổi trạng thái được gọi là một sự chuyển đổi trạng thái (State Transition) Mộtchuyển đổi trạng thái cũng có thể có một hành động liên quan, xác định điều gì phảiđược thực hiện khi sự chuyển đổi trạng thái này diễn ra

Biểu đồ trạng thái không được vẽ cho tất cả các lớp, mà chỉ riêng cho nhữnglớp có một số lượng các trạng thái được định nghĩa rõ ràng và hành vi của lớp bị ảnhhưởng và thay đổi qua các trạng thái khác nhau Biểu đồ trạng thái cũng có thể được

vẽ cho hệ thống tổng thể

Hình 2.5: Một ví dụ về biểu đồ trạng thái

Biểu đồ trình tự (Sequence Diagram)

Một biểu đồ trình tự chỉ ra một cộng tác động giữa một loạt các đối tượng.Khía cạnh quan trọng của biểu đồ này là chỉ ra trình tự các thông điệp (message) đượcgửi giữa các đối tượng Nó cũng chỉ ra trình tự tương tác giữa các đối tượng, điều sẽxảy ra tại một thời điểm cụ thể nào đó trong trình tự thực thi của hệ thống Các biểu

đồ trình tự chứa một loạt các đối tượng được biểu diễn bằng các đường thẳng đứng.Trục thời gian có hướng từ trên xuống dưới trong biểu đồ, và biểu đồ chỉ ra sự trao đổithông điệp giữa các đối tượng khi thời gian trôi qua Các thông điệp được biểu diễnbằng các đường gạch ngang gắn liền với mũi tên (biểu thị thông điệp) nối liền giữanhững đường thẳng đứng thể hiện đối tượng Trục thời gian cùng những lời nhận xétkhác thường sẽ được đưa vào phần lề của biểu đồ

Trang 27

Hình 2.6: Ví dụ về một biểu đồ trình tự

Biểu đồ cộng tác (Collaboration Diagram)

Một biểu đồ cộng tác chỉ ra một sự cộng tác động, cũng giống như một biểu đồtrình tự Thường người ta sẽ chọn hoặc dùng biểu đồ trình tự hoặc dùng biểu đồ cộngtác Bên cạnh việc thể hiện sự trao đổi thông điệp (được gọi là tương tác), biểu đồcộng tác chỉ ra các đối tượng và quan hệ của chúng (nhiều khi được gọi là ngữ cảnh).Việc nên sử dụng biểu đồ trình tự hay biểu đồ cộng tác thường sẽ được quyết địnhtheo nguyên tắc chung sau: Nếu thời gian hay trình tự là yếu tố quan trọng nhất cầnphải nhấn mạnh thì hãy chọn biểu đồ trình tự; nếu ngữ cảnh là yếu tố quan trọng hơn,hãy chọn biểu đồ cộng tác Trình tự tương tác giữa các đối tượng được thể hiện trong

cả hai loại biểu đồ này

Hình 2.7: Ví dụ về biểu đồ cộng tác

Ngày đăng: 30/12/2015, 18:38

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w