Phiên bản Visual Studio 2008 Professional được thiết kế nhằm hỗ trợ cho các dự án phát triển hướng đến nềntảng Web như ASP.NET AJAX, Windows Vista, Visual Studio 2008, hệ thốngMicrosoft
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Tel (84-511) 736 949, Fax (84-511) 842 771Website: 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 : XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ KHÁCH SẠN
Mã số : 06T2-39 Ngày bảo vệ : 15/06/2011
SINH VIÊN : DƯƠNG AN TIÊN
ĐÀ NẴNG, 06/2011
Trang 2Tôi xin chân thành cảm ơn các thầy cô trong khoa Công Nghệ Thông Tin, Trường đại học Bách Khoa, Đại học Đà Nẵng đã tận tình dạy dỗ tôi trong suốt thời gian học tập.
Đặc biệt xin gửi lời cảm ơn đến cô Nguyễn Thị Minh Hỷ, người đã trực tiếp hướng dẫn tôi thực hiện đồ án.Cảm ơn ban quản lý khách sạn Phước
An đã giúp tôi hoàn thành đồ án này.
Xin cảm ơn cha mẹ, bạn bè, nhũng người luôn đứng sau động viên, giúp
đỡ cho tôi thêm niềm tin và nghị lực trong suốt quá trình học tập và thực hiện đồ án này.
Xin chân thành cảm ơn!
Dương An Tiên
LỜI CAM ĐOAN
Trang 3dẫn trực tiếp của cô ThS Nguyễn Thị Minh Hỷ
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 qui chế đào tạo, hay gian trá, tôi
xin chịu hoàn toàn trách nhiệm.
Dương An Tiên
Trang 4MỤC LỤC
GIỚI THIỆU
CƠ SỞ LÝ THUYẾT 1
I Công cụ hỗ trợ lập trình: 1
I.1 Microsoft Visual Studio 2008 1
I.1.1 Lịch sử phát triển 1
Một số tính năng nổi bật: 2
I.1.1.1 Tốc độ 2
I.1.1.2 Truy xuất dữ liệu 2
I.1.1.3 Thiết kế giao diện nhanh, hiệu quả 3
I.1.1.4 Nền tảng mới, hỗ trợ mới 3
I.1.1.5 Kết nối với Microsoft Office 3
I.1.1.6 Hỗ trợ Vista từ trong ra ngoài 3
I.1.1.7 Cộng tác 4
I.1.1.8 Mở rộng nhóm 4
I.1.1.9 Nhắm tới chất lượng 4
I.2 Nhìn nhận và trải nghiệm 4
I.2.1 Nhìn nhận 4
I.2.2 Trải nghiệm 5
II Ngôn ngữ lập trình C#: 5
II.1 Microsoft NET: 5
II.1.1 Thư viện lớp NET Framework: 5
II.2 Ngôn ngữ C# 6
II.2.1 C# là ngôn ngữ đơn giản 6
II.2.2 C# là ngôn ngữ hiện đại 7
II.2.3 C# là ngôn ngữ hướng đối tượng 7
II.2.4 C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo 7
II.2.5 C# là ngôn ngữ ít từ khóa 7
II.2.6 C# là ngôn ngữ hướng module 8
II.2.7 C# sẽ là một ngôn ngữ phổ biến 8
II.2.8 Ngôn ngữ C# và những ngôn ngữ khác 8
III Cơ sở dữ liệu SQL Server 2005 9
III.1 Khái niệm SQL: 9
III.2 Đặc điểm, đối tượng làm việc của SQL Server: 9
III.2.1 Đặc điểm: 9
III.2.2 Các kiểu dữ liệu cơ bản của SQL Server: 9
III.3 Đối tượng làm việc của SQL 10
III.4 Giới thiệu các tập lệnh cơ bản của SQL : 10
III.5 Những đặc điểm khiến SQL Server 2005 nổi trội hơn SQL Server 2000.10 IV Giới thiệu về UML 11
IV.1 Sự ra đời của UML 11
IV.1.1 UML là gì? 12
Trang 5IV.1.2 Vai trò của UML 12
IV.1.3 Những lĩnh vực có thể sử dụng UML 12
IV.2 Ứng dụng của mô hình UML 13
IV.2.1 UML là ngôn ngữ dùng để trực quan hóa 13
IV.2.2 UML là ngôn ngữ để chi tiết hóa 15
IV.2.3 UML là ngôn ngữ dùng để sinh ra mã ở dạng nguyên mẫu 15
IV.2.4 UML là ngôn ngữ dùng để lập và cung cấp tài liệu 15
IV.3 Các loại biểu đồ UML 16
IV.3.1 Biểu đồ lớp(class diagram) 16
IV.3.2 Biểu đồ đối tượng(Object diagram) 16
IV.3.3 Biểu đồ use case 16
IV.3.4 Biểu đồ trình tự(Sequence Diagram) 16
IV.3.5 Biểu đồ hợp tác (Collaboration) 16
IV.3.6 Biểu đồ chuyển trạng thái (Statechart) 17
IV.3.7 Biểu đồ hoạt động(Activity) 17
IV.3.8 Biểu đồ thành phần (Component) 17
PHÂN TÍCH THIẾT KẾ HỆ THỐNG 18
I Mô tả hệ thống bằng sơ đồ Use Case 18
I.1 Danh sách Use case 18
I.2 Mô tả các tác nhân 19
I.3 Sơ đồ Use case tổng thể: 19
I.4 Phân rã các Use case 20
I.4.1 Use Case quản lý việc đặt phòng cho khách 20
I.4.2 Use case quản lý việc trả phòng cho khách 22
I.4.3 Use case tra cứu thông tin phòng 24
I.4.4 Use case quản lý việc sử dụng dịch vụ phòng 25
I.4.5 Use case tìm kiếm phòng 27
I.4.6 Use case đăng nhập, đăng xuất 31
I.4.7 Quản lý thêm, xóa, cập nhật thông tin phòng 33
I.4.8 Use case quản lý thêm, xóa, cập nhật dịch vụ 35
I.4.9 Use case quản lý thêm, xóa, cập nhật nhân viên 38
II Các thuật toán sử dụng 40
II.1 Thuật toán tìm kiếm phòng 40
II.2 Thuật toán thêm phòng mới 41
II.3 Thuật toán xóa một phòng 42
II.4 Thuật toán cập nhật thông tin phòng 43
II.5 Thuật toán quản lý thuê phòng 44
II.6 Thuật toán quản lý trả phòng 45
XÂY DỰNG CHƯƠNG TRÌNH 47
I Thiết kế cơ sở dữ liệu 47
I.1 Các bảng dữ liệu: 47
I.1.1 Mô hình dữ liệu quan hệ 50
II Thiết kế giao diện 51
II.1 Giao diện chính của chương trình 51
Trang 6II.2 Giao diện chức năng quản lý phòng 52
II.3 Giao diện quản lý dịch vụ 52
II.4 Giao diện quản lý nhân viên 53
II.5 Giao diện quản lý thuê phòng 54
II.6 Giao diện quản lý trả phòng 55
II.7 Giao diện quản lý dùng dịch vụ 56
III Kết quả Demo 57
III.1 Giao diện chính hiển thị danh sách các phòng bao gồm: 57
III.2 Chức năng tìm kiếm phòng (không cần phải đăng nhập): 58
III.2.1 Tìm kiếm theo tình trạng phòng 58
III.2.2 Tìm kiếm theo Tình trạng phòng là đã có khách 59
III.2.3 Tìm kiếm theo loại phòng như : tất cả , thường, VIP 60
III.3 Chức năng đăng nhập 60
III.4 Chức năng Quản lý phòng: 60
III.5 Chức năng Quản lý dịch vụ 62
III.6 Chức năng Quản lý nhân viên 64
III.7 Chức năng thuê phòng : 65
III.8 Trả phòng - Thanh toán Hóa đơn - Xuất hóa đơn: 66
KẾT LUẬN 67
I Kết quả đạt được 67
II Mặt hạn chế: 67
III Hướng phát triển của đề tài 67
Trang 7DANH MỤC HÌNH
Hình 1: Microsoft Visual Studio 2008 1
Hình 2:Hai phiên bản Professional và Standard 2
Hình 3 : Các Use case chính của hệ thống 18
Hình 4 : Các tác nhân chính của hệ thống 19
Hình 5 : Sơ đồ Use Case tổng thể 20
Hình 6 : Use Case quản lý việc đặt phòng cho khách 20
Hình 7 : Use case quản lý việc trả phòng cho khách 22
Hình 8 : Use case tra cứu thông tin phòng 24
Hình 9 : Use case quản lý việc sử dụng dịch vụ phòng 25
Hình 10 : Use case tìm kiếm phòng 27
Hình 11 : Use case đăng nhập, đăng xuất 31
Hình 12: Use case quản lý thêm, xóa, cập nhật thông tin phòng 33
Hình 13: Use case quản lý thêm, xóa, cập nhật dịch vụ 35
Hình 14: Use case quản lý thêm, xóa, cập nhật nhân viên 38
Hình 15 : Thuật toán tìm kiếm phòng 41
Hình 16 : Thuật toán thêm phòng mới 42
Hình 17 : Thuật toán xóa một phòng 43
Hình 18 : Thuật toán cập nhật thông tin phòng 44
Hình 19 : Thuật toán quản lý thuê phòng 45
Hình 20 : Thuật toán quản lý trả phòng 46
Hình 21 : Mô hình quan hệ dữ liệu 51
Hình 22 : Giao diện chính của chương trình 51
Hình 23 : Giao diện chức năng quản lý phòng 52
Hình 24 : Giao diện quản lý dich vụ 53
Hình 25 : Giao diện quản lý nhân viên 54
Hình 26 : Giao diện quản lý thuê phòng 55
Hình 27 : Giao diện quản lý trả phòng 56
Hình 28 : Giao diện quản lý dùng dịch vụ 57
Hình 29 : Giao diện chính của chương trình 58
Hình 30 : Tìm kiếm theo tình trạng phòng 59
Hình 31 : Tìm kiếm theo Tình trạng phòng là đã có khách 59
Hình 32 : Tìm kiếm phòng theo Loại phòng là phòng Vip 60
Hình 33 : Chức năng đăng nhập 60
Hình 34 : Chức năng quản lý phòng 61
Hình 35 : Chức năng thêm, sửa, xóa phòng 61
Hình 36 : Thêm phòng mới và điền thông tin phòng 62
Hình 37 : Xóa phòng được chọn 62
Hình 38 : Chức năng quản lý dịch vụ 63
Hình 39: Chức năng Thêm, Sửa, Xóa dịch vụ 63
Hình 40 : Chức năng quản lý nhân viên 64
Hình 41 : Chức năng thêm, sửa nhân viên 64
Hình 42 : Chức năng thuê phòng 65
Trang 8Hình 43 : Nhập thông tin phiếu thuê phòng 65 Hình 44 : Chức năng trả phòng 66 Hình 45 : Xuất hóa đơn 66
Trang 9DANH MỤC BẢNG
Bảng 1 : Bảng dữ liệu người dùng 47
Bảng 2 : Bảng dữ liệu ngoại tệ 47
Bảng 3 : Bảng dữ liệu dịch vụ phòng 47
Bảng 4 : Bảng dữ liệu các tầng 47
Bảng 5 : Bảng dữ liệu nhóm phòng 48
Bảng 6 : Bảng dữ liệu tình trạng phòng 48
Bảng 7 : Bảng dữ liệu dịch vụ phòng 48
Bảng 8 : Bảng dữ liệu phòng 48
Bảng 9 : Bảng dữ liệu chi tiết phiếu thuê phòng 49
Bảng 10 : Bảng dữ liệu hóa đơn 49
Bảng 11 : Bảng dữ liệu chi tiết hóa đơn 49
Bảng 12 : Bảng dữ liệu phiếu thuê phòng 50
Bảng 13 : Bảng dữ liệu đoàn khách 50
Bảng 14 : Bảng dữ liệu khách 50
Bảng 15 : Bảng dữ liệu giới tính 50
Trang 10NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 11NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 12GIỚI THIỆU
I.Giới thiệu bối cảnh của đề tài:
Hiện nay, dịch vụ du lịch ngày càng phát triển mạnh mẽ, các khách sạn xuấthiện khắp nơi, lượng khách du lịch ngày càng đông, việc quản lý khách sạn ngày càngkhó khăn, do đó nhu cầu tin học hoá việc quản lý khách sạn là điều tất yếu
Chính vì vậy, tôi đã chọn đề tài “Xây dựng chương trình quản lý khách sạn”
làm luận văn tốt nghiệp.Để giải quyết đề tài tôi chọn công cụ lập trình MicrosoftVisual Studio 2008, ngôn ngữ lập trình C# và cơ sở dữ liệu SQL 2005
II.Mục đích :
Với đề tài “Xây dựng chương trình quản lý khách sạn”, mục đích chính của
tôi là xây dựng một chương trình hỗ trợ cho việc quản lý khách sạn hiệu quả và có thểứng dụng trong thực tế, quản lý tốt các vấn đề về đặt phòng, trả phòng, quản lí nhânviên và các dịch vụ
Chương trình có giao diện đơn giản, quản lý hiệu quả, dễ sử dụng và nâng cấpmang lại lợi ích về kinh tế
III.Nhiệm vụ phải thực hiện và kết quả dự kiến:
Nhu cầu đặt ra của hệ thống quản lý Khách sạn:
1 Quản trị hệ thống
Bao gồm các chức năng quản trị như sau:
- Phân quyền người dùng trên hệ thống
- Quản lý nhân viên
- Quản lý giá cả, thông tin phòng
- Tra cứu thông tin phòng
- Tìm kiếm theo thông tin phòng
Trang 13- Nắm được những kiến thức cơ bản về việc xây dựng một phần mềm quản lý.
- Chương trình chạy ổn định, hiệu quả cao
IV.Tóm tắt phương pháp triển khai:
Tóm tắt phương pháp triển khai:
- Khảo sát các Khách sạn ở Đà Nẵng, tìm hiểu về cơ chế quản lý phòng, nhân viêndịch vụ
- Tìm hiểu ngôn ngữ lập trình C#, cơ sở dữ liệu SQL Server 2005
- Công cụ hỗ trợ lập trình Visual Studio 2008
- Phân tích các chức năng của bài toán
- Thiết kế cơ sở dữ liệu
- Viết chương trình
- Triển khai và đánh giá kết quả
Tóm tắt nội dung các chương:
Chương 1: Nghiên cứu về cơ sở lý thuyết, ngôn ngữ lập trình và công cụ hỗtrợ lập trình, hệ cơ sở dữ liệu Nêu ra thực trạng mà phần mềm yêu cầu
Chương 2 : Phân tích thiết kế hệ thống quá trình tìm hiểu để hoàn thành phầnmềm một cách thành công và đạt yêu cầu, hiệu quả
Chương 3 : Quá trình thực hiện phần mềm, cung cấp Demo và kết quả phầnmềm đạt được
Chương 4 : Kết luận, so sánh, đánh giá kết quả đã thực hiện và khả năng mởrộng của đề tài
Trang 14cụ có tên InterDev.
Năm 2002 và 2003, Microsoft trình làng cặp sản phẩm mang tính đột phá VisualStudio NET 2002 và Visual Studio NET 2003 cùng với Net Framework Đây là mộtIDE đa năng, bạn có thể viết ứng dụng bằng bất cứ ngôn ngữ gì, từ C++, Visual Basiccho dến J++ hay C#; chỉ cần duy nhất một IDE là bạn sẽ làm chủ tất cả, từ thiết kếgiao diện cho tới soạn thảo mã lệnh, tất cả đều thật dễ dàng
Ba năm sau, Visual Studio 2005 ra đời, nó giúp cho nhà phát triển làm việc nhóm dễdàng và hiệu quả, cũng như giúp họ giảm bớt công sức và thời gian trong quá trìnhphát triển
Hình 1: Microsoft Visual Studio 2008
Phiên bản Visual Studio 2008 tăng cường sức mạnh cho các cá nhân và các nhóm pháttriển phần mềm nhỏ chuyển giao các ứng dụng nối mạng tận dụng được công nghệmới nhất mà vẫn đáp ứng hiệu quả hơn các mục tiêu kinh doanh
Microsoft® Visual Studio® 2008 thể hiện tầm nhìn rộng của Microsoft về các ứng
Trang 15phiên bản trước trong việc capture và phân tích dữ liệu, điều đó có nghĩa họ có thểđưa ra được các quyết định hiệu quả trong công việc Visual Studio 2008 cho phépmọi tổ chức có thể nhanh chóng tạo được các ứng dụng tin cậy, có khả năng quản lý
và an toàn hơn để tận dụng Windows Vista™ và hệ thống Office 2007
Microsoft Visual Studio 2008 có hai phiên bản phổ biến:
Hình 2:Hai phiên bản Professional và Standard
+ Visual Studio 2008 phiên bản Professional là một bộ công cụ đầy đủ đẩy nhanh quá trình biến các ý tưởng của nhà phát triển thành hiện thực Phiên bản Visual Studio
2008 Professional được thiết kế nhằm hỗ trợ cho các dự án phát triển hướng đến nềntảng Web (như ASP.NET AJAX), Windows Vista, Visual Studio 2008, hệ thốngMicrosoft Office 2007, SQL Server 2008 và các thiết bị sử dụng Windows Mobile.+ Phiên bản Visual Studio 2008 Standard cung cấp một mội trường phát triển đủ tínhnăng cho các nhà phát triển Web và Windows.Phiên bản này có những cải tiến nângcao năng suất xây dựng các ứng dụng khách và ứng dụng Web hướng dữ liệu.Các nhàphát triển đang tìm cách tạo ra các ứng dụng kết nối với kinh nghiệm người dùng thế
hệ kế tiếp sẽ thấy Visual Studio phiên bản Standard là sự lựa chọn hoàn hảo
Một số tính năng nổi bật:
I.1.1.1 Tốc độ
Với mỗi phiên bản, Microsoft luôn cố gắng cải thiện Visual Studio để sao cho bạnluôn đạt được hiệu suất làm việc ngày càng cao hơn
I.1.1.2 Truy xuất dữ liệu
Có thể nói những thay đổi về truy xuất dữ liệu trong Visual Studio 2008 là một cuộccách mạng Ở phiên bản này Microsoft giới thiệu LINQ (Language Integrated Query –Ngôn ngữ truy vấn tích hợp) giúp nhà phát triển có thể tương tác với dữ liệu dựa trênmột mô hình hoàn toàn mới với rất nhiều hỗ trợ cho hai ngôn ngữ C# và Visual Basic
Xử lý dữ liệu luôn là trở ngại chính mà các nhà phát triển thường phải đối mặt, đặc
Trang 16biệt là quá trình làm việc với những dữ liệu mang tính trao đổi cao như XML(eXtensible Markup Language - Ngôn ngữ đánh dấu mở rộng) Nhưng với LINQ, mọithứ dường như được giải tỏa, bởi như tên gọi của nó, LINQ được tích hợp vào ngaybản thân ngôn ngữ lập trình.
I.1.1.3 Thiết kế giao diện nhanh, hiệu quả
Với Visual Studio 2008, chỉ với một IDE duy nhất, chúng ta có thể làm việc được vớitất cả các phiên bản của Net Framework từ phiên bản mới nhất 3.5 đến phiên cũ hơn3.0 hay thậm chí là 2.0 Đặc biệt Windows Form designer của Visual Studio 2008được tích hợp chặt chẽ với WPF (Windows Presentation Foundation), giúp nhà pháttriển có được một giao diện thật bắt mắt nhưng lại chẳng tốn nhiều thời gian, côngsức
Không chỉ có vậy, chúng ta có thể sử dụng bộ công cụ thiết kế giao diện hàng đầu củaMicrosoft là Microsoft Expression Suite để quản lý bố cục, các control cũng như việcgắn kết dữ liệu MES được thiết kế giúp cho việc chuyên biệt hóa thiết kế, giờ đây dữliệu giữa Visual Studio 2008 và Expression có thể chia sẻ với nhau một cách dễ dàng,nhà thiết kế và nhà phát triển có thể dễ dàng cộng tác với nhau hơn
I.1.1.4 Nền tảng mới, hỗ trợ mới
Sinh sau đẻ muộn, Visual Studio 2008 hỗ trợ toàn bộ các nền tảng lớn của Microsoftnhư Microsoft Office 2007, Microsoft Windows Vista, Microsoft SQL Server 2008 vàMicrosoft Windows Server 2008
I.1.1.5 Kết nối với Microsoft Office
Tích hợp chặt chẽ với Microsoft Office thông qua bộ công cụ Visual Studio Tools forOffice (VSTO), nhà phát triển có thể tận dung toàn bộ ưu thế, năng lực tính toán, xử
lý và kết xuất dữ liệu của Microsoft Office để cho ra đời một sản phẩm đặc thù củariêng mình Theo một số nhận định, VSTO là nhịp cầu nối hoàn hảo giữa Office vàVisual Studio
I.1.1.6 Hỗ trợ Vista từ trong ra ngoài
Không chỉ là hỗ trợ về mảng thiết kế giao diện trực quan thông qua Windows FormDesigner, Visual Studio 2008 còn hỗ trợ nhà phát triển can thiệp sâu vào XAML đểxây dựng giao diện cho các ứng dụng dựa trên nền WPF Ngoài ra, theo Microsoft thìVisual Studio 2008 hỗ trợ tới trên 8000 API (Application Programming Interface)dành riêng cho Vista Thậm chí Visual Studio 2008 còn hỗ trợ cả WF (WindowsWorkflow Foundation) giúp nhà phát triển dễ dàng hơn khi triển khai ứng dụng, cóthể không cần viết một dòng mã nào
I.1.1.7 Cộng tác
Trang 17Với Visual Studio Team System 2008, nhóm phát triển có được những hỗ trợ đặc biệt
từ các tính năng mới, có thể quản lý được chất lượng của sản phẩm ở mọi khâu trongquá trình phát triển
Trong khi đó nhà thiết kế giao diện có thể tung hoành với bộ công cụ MicrosoftExpression Studio để tạo ra những giao diện bắt mắt nhất với hiệu năng cao nhất Vànhà phát triển có thể sử dụng ngay Visual Studio để soạn thảo code
I.1.1.9 Nhắm tới chất lượng
Càng ngày mức độ phức tạp của các ứng dụng càng được nâng cao tuy nhiên chấtlượng của sản phẩm vẫn cần được đảm bảo Với Visual Studio 2008 nhà phát triển cóthể đảm bảo được cả tiến độ công việc cũng như chất lượng, có thể triển khai Unit testmột cách dễ dàng thông qua công cụ dòng lệnh được tích hợp với IDE
I.2 Nhìn nhận và trải nghiệm
I.2.1 Nhìn nhận
Tổng quan, Visual Studio 2008 được xây dựng dựa trên bộ ba trụ cột chính:
• Cải thiện hiệu năng sản phẩm
• Hỗ trợ quản lý vòng đời ứng dụng
• Sử dụng công nghệ mới
Visual Studio 2008 đem tới cho nhà phát triển, nhóm phát triển những hỗ trợ chuyênbiệt như:
• Hỗ trợ phát triển cho thiết bị thông minh
• Xây dựng các ứng dụng dựa trên nền Microsoft Office
• Xây dựng ứng dụng tương thích Windows Vista
• Nâng cao hiệu suất xử lý dữ liệu
• Đem đến những trải nghiệm mới về web
• Nâng cao hỗ trợ cho nhà phát triên
• Hỗ trợ quản lý vòng đời ứng dụng chi tiết
I.2.2 Trải nghiệm
Tính tới thời điểm này, Visual Studio 2008 Beta 2 bao gồm các phiên bản sau:
Trang 18• Visual Studio 2008 Beta 2 Express Editions
Chia ra các gói nhỏ cho mỗi IDE (VB, VC#,VC++, VWD), mỗi gói xấp xỉ 450 MB
• Visual Studio 2008 Beta 2 Standard Edition (722 MB)
• Visual Studio 2008 Beta 2 Professional Edition (3,1 GB)
• Visual Studio Team System 2008 Beta 2 Team Suite (3,2 GB)
• Visual Studio Team System 2008 Beta 2 Team Foundation Server (1,4 GB)
• Visual Studio Team System 2008 Beta 2 Test Load Agent (232 MB)
kèm với
• MSDN Library for Visual Studio 2008 Beta 2 (1,9 GB)
Chúng được đóng gói dưới dạng file ảnh “.img”, bạn cần ghi ra đĩa CD/DVD để càiđặt hoặc mount trực tiếp file ảnh để cài Tải bản dùng thử 90 ngàytại http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx.
Ngoài ra bạn cũng có thể sử dụng Virtual PC để thử nghiệm Visual Studio 2008,Microsoft có cung cấp Virtual PC cài sẵn Visual Studio 2008 (có thể tải ở địa chỉ trên)gồm 2 file ảnh:
• Visual Studio Team System 2008 Beta 2 Team Suite (4,6 GB)
• Visual Studio Team System 2008 Beta 2 Team Suite & Team Foundation Server(5.6 GB)
II Ngôn ngữ lập trình C#:
II.1 Microsoft NET:
II.1.1.Thư viện lớp NET Framework:
Thư viện lớp NET Framework là một tập hợp những kiểu dữ liệu được dùng lại
và được kết hợp chặt chẽ với Comman Language Runtime Thư viện lớp là hướng đốitượng cung cấp những kiểu dữ liệu là mã nguồn được quản lý của chúng ta có thể dẫnxuất Điều này không chỉ làm cho những kiểu dữ liệu của .NETFramework dễ sử dụng mà còn làm giảm thời gian liên quan đến việc học đặc tínhmới của NET Framework Thêm vào đó, các thành phần của các hãngthứ ba có thể tích hợp với những lớp trong NET Framework
Cũng như mong đợi của người phát triển với thư viện lớp hướng đối tượng, kiểu
dữ liệu NET Framework cho phép người phát triển thiết lập nhiều mức độ thông dụngcủa việc lập trình, bao gồm các nhiệm vụ như: quản lý chuỗi, thu thập hay chọn lọc dữliệu, kết nối với cơ cở dữ liệu, và truy cập tập tin Ngoài những nhiệm vụ thông dụngtrên Thư viện lớp còn đưa vào những kiểu dữ liệu để hỗ trợ cho những kịch bản pháttriển chuyên biệt khác Ví dụ người phát triển có thể sử dụng NET Framework đểphát triển những kiểu ứng dụng và dịch vụ như sau:
Trang 19như viết các ứng dụng ASP.NET thì có thể sử dụng các lớp Web Forms trong thư viện.NET Framework.
II.2 Ngôn ngữ C#
C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, làphần khởi đầu cho kế hoạch NET của họ Tên của ngôn ngữ bao gồm kí tự thăng theoMicrosoft nhưng theo ECMA là C#, chỉ bao gồm dấu số thường.Microsoft phát triểnC# dựa trên C++ và Java C# là ngôn ngữ có được sự cân bằng giữa C++, Visuabasic,Dephi và Java
C# hỗ trợ giao diện interface, nó được xem như một cam kết với một lớp chonhững dịch vụ mà giao diện quy định Trong ngôn ngữ C#, một lớp chỉ có thể kế thừa
từ duy nhất một lớp cha, tức là không cho đa kế thừa như trong ngôn ngữ C++, tuynhiên một lớp có thể thực thi nhiều giao diện Khi một lớp thực thi một giao diện thì
nó sẽ hứa là nó sẽ cung cấp chức năng thực thi giao diện
Ngôn ngữ C# cung cấp những đặc tính hướng thành phần (component-oriented),như là những thuộc tính, những sự kiện Lập trình hướng thành phần được hỗ trợ bởiCLR cho phép lưu trữ metadata với mã nguồn cho một lớp Metadata mô tả cho mộtlớp, bao gồm những phương thức và những thuộc tính của nó, cũng như những sự bảomật cần thiết và những thuộc tính khác Mã nguồn chứa đựng những logic cần thiết đểthực hiện những chức năng của nó Do vậy, một lớp được biên dịch như là một khốiself-contained, nên môi trường hosting biết được cách đọc metadata của một lớp và
mã nguồn cần thiết mà không cần những thông tin khác để sử dụng nó
C# là một ngôn ngữ đơn giản:
C# là một ngôn ngữ hiện đại:
C# là ngôn ngữ hướng đối tượng
C# là ngôn ngữ mạnh mẽ và mềm dẻo
C# là ngôn ngữ ít từ khóa
C# là ngôn ngữ hướng module
C# sẽ là một ngôn ngữ phổ biến trong tương lai
II.2.1.C# là ngôn ngữ đơn giản
C# loại bỏ một vài sự phức tạp và rối rắm của những ngôn ngữ như Java và c++, bao gồm việc loại bỏ những macro, những template, đa kế thừa, và lớp cơ sở ảo(virtual base class) Chúng là những nguyên nhân gây ra sự nhầm lẫn hay dẫn đếnnhững vấn đề cho các người phát triển C++ Nếu chúng ta là người học ngôn ngữ nàyđầu tiên thì chắc chắn là ta sẽ không trải qua những thời gian để học nó! Nhưng khi đó
ta sẽ không biết được hiệu quả của ngôn ngữ C# khi loại bỏ những vấn đề trên
Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++ Nếu chúng ta thânthiện với C và C++ hoậc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diệnmạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngônngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn Một vàitrong các sự cải tiến là loại bỏ các dư thừa, hay là thêm vào những cú pháp thay đổi
Ví dụ như, trong C++ có ba toán tử làm việc với các thành viên là ::, , và -> Để biếtkhi nào dùng ba toán tử này cũng phức tạp và dễ nhầm lẫn Trong C#, chúng được
Trang 20thay thế với một toán tử duy nhất gọi là (dot) Đối với người mới học thì điều này vànhững việc cải tiến khác làm bớt nhầm lẫn và đơn giản hơn.
- Ghi chú: Nếu chúng ta đã sử dụng Java và tin rằng nó đơn giản, thì chúng ta cũng sẽtìm thấy rằng C# cũng đơn giản Hầu hết mọi người đều không tin rằng Java là ngônngữ đơn giản Tuy nhiên, C# thì dễ hơn là Java và C++
II.2.2.C# là ngôn ngữ hiện đại
Điều gì làm cho một ngôn ngữ hiện đại? Những đặc tính như là xử lý ngoại lệ,thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật mã nguồn là nhữngđặc tính được mong đợi trong một ngôn ngữ hiện đại C# chứa tất cả những đặc tínhtrên Nếu là người mới học lập trình có thể chúng ta sẽ cảm thấy những đặc tính trênphức tạp và khó hiểu
- Ghi chú: Con trỏ được tích hợp vào ngôn ngữ C++ Chúng cũng là nguyên nhân gây
ra những rắc rối của ngôn ngữ này C# loại bỏ những phức tạp và rắc rối phát sinh bởicon trỏ.Trong C#, bộ thu gom bộ nhớ tự động và kiểu dữ liệu an toàn được tích hợpvào ngôn ngữ, sẽ loại bỏ những vấn đề rắc rối của C++
II.2.3.C# là ngôn ngữ hướng đối tượng
Những đặc điểm chính của ngôn ngữ hướng đối tượng (Object-orientedlanguage) là sự đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình(polymorphism) C# hỗ trợ tất cả những đặc tính trên Phần hướng đối tượng của C#
sẽ được trình bày chi tiết trong một chương riêng ở phần sau
II.2.4.C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo
Như đã đề cập trước, với ngôn ngữ C# chúng ta chỉ bị giới hạn ở chính bởi bảnthân hay là trí tưởng tượng của chúng ta Ngôn ngữ này không đặt những ràng buộclên những việc có thể làm C# được sử dụng cho nhiều các dự án khác nhau như là tạo
ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bản tính, hay thậm chí những trình biêndịch cho các ngôn ngữ khác
II.2.5.C# là ngôn ngữ ít từ khóa
C# là ngôn ngữ sử dụng giới hạn những từ khóa Phần lớn các từ khóa được sửdụng để mô tả thông tin Chúng ta có thể nghĩ rằng một ngôn ngữ có nhiều từ khóa thì
sẽ mạnh hơn Điều này không phải sự thật, ít nhất là trong trường hợp ngôn ngữ C#,chúng ta có thể tìm thấy rằng ngôn ngữ này có thể được sử dụng để làm bất cứ nhiệm
vụ nào Bảng sau liệt kê các từ khóa của ngôn ngữ C#
abstract default foreach object sizeof unsafe
as delegate goto operator stackalloc ushort
base do if out static using
bool double implicit override string virtual
break else in params struct volatile
byte enum int private switch void
case event interface protected this while
catch explicit internal public throw
char extern is readonly true
checked false lock ref try
Trang 21class finally long return typeof
const fixed namespace sbyte uint
continue float new sealed ulong
decimal for null short unchecked
II.2.6.C# là ngôn ngữ hướng module
Mã nguồn C# có thể được viết trong những phần được gọi là những lớp, nhữnglớp này chứa các phương thức thành viên của nó Những lớp và những phương thức
có thể được sử dụng lại trong ứng dụng hay các chương trình khác Bằng cách truyềncác mẫu thông tin đến những lớp hay phương thức chúng ta có thể tạo ra những mãnguồn dùng lại có hiệu quả
II.2.7.C# sẽ là một ngôn ngữ phổ biến
C# là một trong những ngôn ngữ lập trình mới nhất Vào thời điểm cuốn sáchnày được viết, nó không được biết như là một ngôn ngữ phổ biến Nhưng ngôn ngữnày có một số lý do để trở thành một ngôn ngữ phổ biến.Một trong những lý do chính
là Microsoft và sự cam kết của NET Microsoft muốn ngôn ngữ C# trở nên phổ biến.Mặc dù một công ty không thể làm một sản phẩm trở nên phổ biến, nhưng nó có thể
hỗ trợ Cách đây không lâu, Microsoft đã gặp sự thất bại về hệ điều hành MicrosoftBob Mặc dù Microsoft muốn Bob trở nên phổ biến nhưng thất bại C# thay thế tốthơn để đem đến thành công sơ với Bob Thật sự là không biết khi nào mọi ngườitrong công ty Microsoft sử dụng Bob trong công việc hằng ngày của họ Tuy nhiên,với C# thì khác, nó được sử dụng bởi Microsoft Nhiều sản phẩm của công ty này đãchuyển
đổi và viết lại bằng C# Bằng cách sử dụng ngôn ngữ này Microsoft đã xác nhận khảnăng của C# cần thiết cho những người lập trình
Micorosoft NET là một lý do khác để đem đến sự thành công của C# .NET làmột sự thay đổi trong cách tạo và thực thi những ứng dụng Ngoài hai lý do trên ngônngữ C# cũng sẽ trở nên phổ biến do những đặc tính của ngôn ngữ này được đề cậptrong mục trước như: đơn giản, hướng đối tượng, mạnh mẽ
Microsoft nói rằng C# mang đến sức mạnh của ngôn ngữ C++ với sự dễ dàng củangôn ngữ Visual Basic Có thể nó không dễ như Visual Basic, nhưng với phiênbản Visual Basic.NET (Version 7) thì ngang nhau Bởi vì chúng được viết lại từ mộtnền tảng Chúng ta có thể viết nhiều chương trình với ít mã nguồn hơn nếu dùng C#.Mặc dù C# loại bỏ một vài các đặc tính của C++, nhưng bù lại nó tránh được nhữnglỗi mà thường gặp trong ngôn ngữ C++ Điều này có thể tiết kiệm được hàng giờ haythậm chí hàng ngày trong việc hoàn tất một chương trình Chúng ta sẽ hiểu nhiều vềđiều này trong các chương của giáo trình
Trang 22Một điều quan trọng khác với C++ là mã nguồn C# không đòi hỏi phải có tậptin header Tất cả mã nguồn được viết trong khai báo một lớp Như đã nói ở bêntrên .NET runtime trong C# thực hiện việc thu gom bộ nhớ tự động Do điều này nênviệc sử dụng con trỏ trong C# ít quan trọng hơn trong C++ Những con trỏ cũng có thểđược sử dụng trong C#, khi đó những đoạn mã nguồn này sẽ được đánh dấu là không
an toàn (unsafe code)
III Cơ sở dữ liệu SQL Server 2005
III.1 Khái niệm SQL:
SQL Server là một viết tắt của Structured Query Language, một hệ thống quản lý
cơ sở dữ liệu (Relational Database Management System (RDBMS)), sử dụng phổ biến
ở nhiều lĩnh vực hầu hết đều được sử dụng ở các ngôn ngữ bậc cao, sử dụng SQl (T-SQL) để trao đổi dữ liệu giữa Client Computer và SQL Server Computer MộtRDBMS bao gồm Databases, database engine và các ứng dụng dùng để quản lý dữliệu và các bộ phận khác nhau trong RDBMS
Transact-III.2 Đặc điểm, đối tượng làm việc của SQL Server:
III.2.1 Đặc điểm:
- SQL là ngôn ngữ phi thủ tục, nó không yêu cầu ta cách thức truy nhập CSDL
như thế nào Tất cả các thông báo của SQL đều rất dễ sử dụng và ít khả năngmắc lỗi
- SQL cung cấp tập lệnh phong phú cho việc hỏi đáp DL:
+ Chèn, cập nhật, xóa các hàng trong một quan hệ
+ Tạo, sửa đổi, thêm và xóa các đối tượng trong CSDL
+ Điều khiển việc truy nhập tới CSDL và các đối tượng của CSDL để đảmbảo tính bảo mật của CSDL
+ Đảm bảo tính nhất quán và sự ràng buộc của CSDL
- Yêu cầu duy nhất để sử dụng cho các hỏi đáp là phải nắm vững các cấu trúc
Char: Xâu có độ dài cố định là n, n<= 255.
Varchar(n): Xâu có độ dài biến đổi (0-:-n)
Long varchar: Xâu có độ dài không cố định, độ dài có thể thay đổi
4Kb -:- 32Kb
Date: Kiểu dữ liệu ngày.
Trang 23III.3 Đối tượng làm việc của SQL
Là các bảng ( tổng quát là các quan hệ ) dữ liệu hai chiều Các bảng này bao gồmmột hoặc nhiều cột và hàng Các cột gọi là các trường, các hàng gọi là các bảng ghi,cột với tên gọi và kiểu dữ liệu (kiểu dữ liệu ở mỗi cột là duy nhất) xác định tạo nêncấu trúc của bảng Khi bảng đã được tổ chức hệ thống cho một mục đích nào đó củaCSDL
III.4 Giới thiệu các tập lệnh cơ bản của SQL :
Tập lệnh SELECT: đây là lệnh thường được dùng nhiều nhất trong CSDL, nóthường được sử dụng để nhận dữ liệu từ CSDL
Tập lệnh INSERT, UPDATE, DELETE : các lệnh này thường hay được dùng đểvào một hàng mới, sửa đổi hay xóa bỏ các hàng đã tồn tại trong các quan hệ củaCSDL
Tập lệnh CREATE, ALTER,DROP : 3 lệnh này dùng để tạo, thay đổi, xóa bỏ bất
kỳ cấu trúc dữ liệu nào của các quan hệ như TABLE , VIEW, INDEX…
Tập lệnh GRANT, REVOKE: 2 lệnh này được sử dụng để cho phép quyền truynhập hay không cho phép quyền truy nhập tới CSDL của Oracle và cấu trúc bên trongnó
III.5 Những đặc điểm khiến SQL Server 2005 nổi trội hơn SQL
Server 2000
Khi SQL Server 2005 ra đời thì những kiến thức về SQL 2000 thực sự không đủ
để bạn làm chủ được SQL 2005 Khả năng và độ linh hoạt của SQL Server 2005 đượcphản ánh rất rõ trong công cụ Management Studio mới và BIDS
Một số đặc điểm trội hơn:
- Nâng cao bảo mật
- Tăng cường hỗ trợ người phát triển
- Tăng cường khả năng quản lý
- Nâng cao độ sẵn sàng của CSDL
Trang 24IV Giới thiệu về UML
IV.1 Sự ra đời của UML
Đầu thập kỷ 80, ngành CNPM chỉ có duy nhất một ngôn ngữ hướng đối tượng
là Simula Sang nửa thập kỷ 80, các ngôn ngữ hướng đối tượng như Smalltalk và C++xuất hiện Cùng với chúng, nhu cầu mô hình hóa các hệ thống phần mềm theo hướngđối tượng đã nảy sinh Và vào đầu thập kỷ 90, một số ngôn ngữ mô hình hóa xuấthiện và được nhiều người sử dụng:
Grady Booch’s Mooch Modeling Methodology
James Rambaugh’s Object Modeling Technique – OMF
Ivar Jacobson’s OOSE Methodology
Hewlett-Packard’s Fusion
Coad and Yordon’s OOA and OOD
Mỗi phương pháp và ngôn ngữ trên đều có hệ thống ký hiệu riêng, phươngpháp xử lý riêng và công cụ hỗ trợ riêng, khiến nảy ra cuộc tranh luận phương phápnào là tốt nhất Trong thực tế, sự khác biệt giữa các phương pháp đó hầu như khôngđáng kể và theo cùng tiến trình thời gian, tất cả những phương pháp trên đã tiệm cậnlại và bổ sung lẫn nhau
Trong bối cảnh trên, người ta nhận thấy cần thiết phải cung cấp một phuơng pháp
mô hình hóa chuẩn và thống nhất cho việc mô hình hóa hướng đối tượng Yêu cầu cụthể là đưa ra một tập hợp chuẩn hóa các ký hiệu (Notations) và các biểu đồ(Diagrams) để nắm bắt các quyết định về mặt thiết kế một cách rõ ràng, rành mạch
Đã có ba công trình tiên phong nhắm đến mục tiêu đó,c húng được thực hiện dưới sựlãnh đạo của James Rumbaugh, Grady Booch và Ivar Jacobson Chính những cố gắngnày đã dẫn đến kết quả là xây dựng được một Ngôn Ngữ Mô Hình Hóa Thống NhấtUML (Unified Modeling Language)
IV.1.1 UML là gì?
UML là một ngôn ngữ mô hình hóa thống nhất có phần chính bao gồm những
ký hiệu hình học, được các phương pháp hướng đối tượng sử dụng để thể hiện vàmiêu tả các thiết kế của một hệ thống
Trang 25UML là ngôn ngữ để đặc tả, trực quan hóa, xây dựng và làm sưu liệu cho nhiềukhía cạnh khác nhau của một hệ thống.
IV.1.2 Vai trò của UML
UML có thể được sử dụng làm công cụ giao tiếp giữa người dùng, nhà phântích, nhà thiết kế và nhà phát triển phần mềm
UML được xây dựng với chủ đích chính là:
Mô hình hóa 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
Hệ thống thông tin (Information Systems)
Hệ thống kỹ thuật (Technical Systems)
Hệ thống nhúng (Embeded Systems)
Hệ thống phân bố (Distributed Systems)
Hệ thống giao dịch (Business Systems)
Phần mềm hệ thống (System Softwares)
IV.2 Ứng dụng của mô hình UML
UML là một ngôn ngữ dùng để:
Trang 26 Trực quan hóa
Cụ thể hóa
Sinh mã ở dạng nguyên mẫu
Lập và cung cấp tài liệu
UML là một ngôn ngữ bao gồm một bảng từ vựng và các quy tắc để kết hợpcác từ vựng đó phục vụ cho mục đích giao tiếp Một ngôn ngữ dùng cho việc lập
mô hình là ngôn ngữ mà bảng từ vựng( các ký hiệu) và các quy tắc của nó tậptrung vào việc thể hiện về mặt khái niệm cũng như vật lý của một hệ thống
Mô hình hóa mang lại sự hiểu biết về một hệ thống Một mô hình không thểgiúp chúng ta hiểu rõ một hệ thống, thường là phải xây dựng một số mô hình xét
từ những góc độ khác nhau Các mô hình này có quan hệ với nhau
UML sẽ cho ta biết cách tạo ra và đọc hiểu được một mô hình đươc cấu trúctốt, nhưng nó không cho ta biết những mô hình nào nên tạo ra và khi nào tạo rachúng Đó là nhiệm vụ của quy trình phát triển phần mềm
IV.2.1 UML là ngôn ngữ dùng để trực quan hóa
Đối với nhiều lập trình viên, không có khoảng cách nào giữa ý tưởng để giảiquyết một vấn đề và việc thể hiện điều đó thông qua các đoạn mã Họ nghĩ ra và
họ viết mã Trên thực tế, điều này gặp một số vấn đề Thứ nhất, việc trao đổi vềcác ý tưởng giữa những người lập trình sẽ gặp khó khăn, trừ khi tất cả đều nóicùng một ngôn ngữ Thậm chí ngay cả khi không gặp trở ngại về ngôn ngữ thì đốivới từng công ty, từng nhóm cũng có những “ngôn ngữ” riêng của họ Điều nàygây trở ngại cho một người mới vào để có thể hiểu được những việc đang đượctiến hành Hơn nữa, trong lĩnh vực phần mềm, nhiều khi khó có thể hiểu được nếuchỉ xem xét các đoạn mã lệnh Ví dụ như sự phân cấp của các lớp, ta có thể phảiduyệt rất nhiều đoạn lệnh để hiểu được sự phân cấp của các lớp Và nếu như ngườilập trình không mô tả các ý tưởng mà anh ta đã xây dựng thành mã lệnh thì nhiều
Trang 27khi cách tốt nhất là xây dựng lại trong trường hợp một người khác đảm nhận tiếpnhiệm vụ khi anh ta rời khỏi nhóm
Đối với nhiều lập trình viên, không có khoảng cách nào giữa ý tưởng để giảiquyết một vấn đề và việc thể hiện điều đó thông qua các đoạn mã Họ nghĩ ra và
họ viết mã Trên thực tế, điều này gặp một số vấn đề Thứ nhất, việc trao đổi vềcác ý tưởng giữa những người lập trình sẽ gặp khó khăn, trừ khi tất cả đều nóicùng một ngôn ngữ Thậm chí ngay cả khi không gặp trở ngại về ngôn ngữ thì đốivới từng công ty, từng nhóm cũng có những “ngôn ngữ” riêng của họ Điều nàygây trở ngại cho một người mới vào để có thể hiểu được những việc đang đượctiến hành Hơn nữa, trong lĩnh vực phần mềm, nhiều khi khó có thể hiểu được nếuchỉ xem xét các đoạn mã lệnh Ví dụ như sự phân cấp của các lớp, ta có thể phảiduyệt rất nhiều đoạn lệnh để hiểu được sự phân cấp của các lớp Và nếu như ngườilập trình không mô tả các ý tưởng mà anh ta đã xây dựng thành mã lệnh thì nhiềukhi cách tốt nhất là xây dựng lại trong trường hợp một người khác đảm nhận tiếpnhiệm vụ khi anh ta rời khỏi nhóm
Xây dựng mô hình sử dụng ngôn ngữ UML đã giải quyết được các khó khăntrên.Khi trở thành một chuẩn trong việc lập mô hình, mỗi kí hiệu mang một ýnghĩa rõ rang và duy nhất, một nhà phát triển có thể đọc được mô hình xây dựngbằng UML do một người khác viết.Những cấu trúc mà việc nắm bắt thông qua đọc
mã lệnh là khó khăn nay đã được thực hiện trực quan.Một mô hình rõ ràng, sángsủa làm tăng khả năng giao tiếp, trao đổi giữa các nhà phát triển
IV.2.2 UML là ngôn ngữ để chi tiết hóa
Có nghĩa là xây dựng các mô hình một các tỉ mỉ, rõ ràng, đầy đủ ở các mức độchi tiết khác nhau Đặc biệt là UML thực hiện việc chi tiết hoá tất cả các quyếtđịnh quan trọng trong phân tích, thiết kế và thực thi một hệ thống phần mềm
Trang 28IV.2.3 UML là ngôn ngữ dùng để sinh ra mã ở dạng nguyên mẫu
Các mô hình xây dựng bởi UML có thể ánh xạ tới một ngôn ngữ lập trình cụthể như : Java, C++… thậm chí cả các bảng trong một CSDL quan hệ hay CSDLhướng đối tượng
Việc các yêu cầu có khả năng thường xuyên thay đổi trong quá trình phát triển
hệ thống dẫn đến việc các cấu trúc và hành vi của hệ thống được xây dựng có thểkhác mô hình mà ta đã xây dựng Điều này có thể làm cho một mô hình tốt trở nên
vô nghĩa vì nó không còn phản ánh đúng hệ thống nữa Cho nên phải có một cơchế để đồng bộ xhóa giữa mô hình và mã lệnh
UML cho phép cập nhật một mô hình từ các mã thực thi ( ánh xạ ngược) Điềunày tạo ra sự nhất quán giữa mô hình của hệ thống và các đoạn mã thực thi mà taxây dựng cho hệ thống đó
IV.2.4 UML là ngôn ngữ dùng để lập và cung cấp tài liệu
Một tổ chức phần mềm ngoài việc tạo ra các đoạn mã lệnh( thực thi) thì còn tạo
ra các tài liệu sau:
Ghi chép về các yêu cầu của hệ thống
Trang 29IV.3 Các loại biểu đồ UML
IV.3.1 Biểu đồ lớp(class diagram)
Bao gồm một tập hợp các lớp, các giao diện, các collaboration và mối quan hệgiữa chúng Nó thể hiện mặt tĩnh của hệ thống
IV.3.2 Biểu đồ đối tượng(Object diagram)
Bao gồm một tập hợp các đối tượng và mối quan hệ giữa chúng Đối tượng làmột thể hiện của lớp, biểu đồ đối tượng là một thể hiện của biều đồ lớp
IV.3.3 Biểu đồ use case
Khái niệm actor: là những người, hệ thống khác ở bên ngoài phạm vi của hệthống mà có tương tác với hệ thống
Biểu đồ Use case bao gồm một tập hợp các Use case, các actor và thể hiện mốiquan hệ tương tác giữa actor và Use case Nó rất quan trọng trong việc tổ chức và
mô hình hóa hành vi của hệ thống
IV.3.4 Biểu đồ trình tự(Sequence Diagram)
Là một dạng biểu đồ tương tác (interaction), biểu diễn sự tương tác giữa cácđối tượng theo thứ tự thời gian Nó mô tả các đối tượng liên quan trong một tìnhhuống cụ thể và các bước tuần tự trong việc trao đổi các thông báo(message) giữacác đối tượng đó để thực hiện một chức năng nào đó của hệ thống
IV.3.5 Biểu đồ hợp tác (Collaboration)
Gần giống như biểu đồ Sequence, biểu đồ Collaboration là một cách khác để thểhiện một tình huống có thể xảy ra trong hệ thống Nhưng nó tập trung vào việc thểhiện việc trao đổi qua lại các thông báo giữa các đối tượng chứ không quan tâmđến thứ tự của các thông báo đó Có nghĩa là qua đó chúng ta sẽ biết được nhanhchóng giữa 2 đối tượng cụ thể nào đó có trao đổi những thông báo gì cho nhau
Trang 30IV.3.6 Biểu đồ chuyển trạng thái (Statechart)
Chỉ ra một máy chuyển trạng, bao gồm các trạng thái, các bước chuyển trạng
và các hoạt động Nó đặc biệt quan trọng trong việc mô hình hóa hành vi của mộtlớp giao diện(interface class) hay collaboration và nó nhấn mạnh vào các đáp ứngtheo sự kiện của một đối tượng, điều này rất hữu ích khi mô hình hóa một hệ thốngphản ứng(reactive)
IV.3.7 Biểu đồ hoạt động(Activity)
Là một dạng đặc biệt của biểu đồ chuyển trạng Nó chỉ ra luồng đi từ hoạt độngnày sang hoạt động khác trong một hệ thống Nó đặc biệt quan trọng trong việcxây dựng mô hình chức năng của hệ thống và nhấn mạnh tới việc chuyển đổiquyền kiểm soát giữa các đối tượng
IV.3.8 Biểu đồ thành phần (Component)
Chỉ ra cách tổ chức và sự phụ thuộc của các thành phần(component) Nó liênquan tới biểu đồ lớp, trong đó một thành phần thường ánh xạ tới một hay nhiềulớp, giao diện , collaboration
Trang 31CHƯƠNG 2
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
I Mô tả hệ thống bằng sơ đồ Use Case
I.1 Danh sách Use case
Use case chung của hệ thống được xác định là :
Hình 3 : Các Use case chính của hệ thống STT USE-CASE Ý NGHĨA
1 Quản lý việc đặtphòng cho khách Quản lý việc thuê phòng, lập phiếu thu
2 Quản lý việc trả
phòng cho khách Quản lý việc trả phòng, thanh toán, xuất hóa đơn
3 Tra cứu thông tinphòng Tra cứu thông tin, tình trạng phòng, thông tin kháchtrong phòng
4 Quản lý việc sửdụng dịch vụ phòng Quản lý các dịch vụ trong phòng, thêm bớt các dịchvụ
5 Tìm kiếm phòng Tìm kiếm phòng theo các tiêu chí có sẵn
6 Đăng nhập, đăngxuất Đăng nhập, đăng xuất hệ thống
Trang 327 Quản lý thêm, xóa,cập nhật thông tin
phòng
Quản lý việc thêm một phòng mới, xóa phòng đãchọn hay điều chỉnh thông tin phòng cũ
8 Quản lý thêm, xóa,cập nhật dịch vụ Quản lý việc thêm một dịch vụ mới, xóa các dịch vụđã có hay điều chỉnh giá dịch vụ cũ
9 Quản lý thêm, xóa,cập nhật nhân viên Quản lý việc thêm một nhân viên mới, xóa nhânviên cũ và thay đổi thông tin nhân viên
I.2 Mô tả các tác nhân
Là người làm việc trực tiếp với khách, các chức năng nhân viên được trao quyền
sử dụng là để đáp ứng yêu cầu của khách: thuê phòng, trả phòng,…
I.3 Sơ đồ Use case tổng thể:
Dựa trên các tác nhân và Use case của hệ thống ta có được mô hình tổng quát của
hệ thống như sau:
Trang 33Hình 5 : Sơ đồ Use Case tổng thểI.4 Phân rã các Use case
I.4.1 Use Case quản lý việc đặt phòng cho khách
Hình 6 : Use Case quản lý việc đặt phòng cho khách Quản lý thông tin khách
Tên use-case Quản lý thông tin khách
Tác nhân chính Nhân viên, quản lý
Người chịu trách Nhân viên , quản lý
Trang 34Tiền điều kiện Phòng được chọn phải là phòng còn trống
Đảm bảo tối thiểu Đã đăng nhập vào hệ thống
Đảm bảo thành công Tình trạng phòng sẽ cập nhật là phòng đã có khách
Kích hoạt Chức năng này sẽ được sử dụng khi người dùng chọn vào mục
“Thuê phòng” trên giao diện hệ thống
Chuỗi sự kiện chính:
1 Hệ thống sẽ đưa ra danh sách các phòng cho người dùng chọn
2 Người dùng click chọn phòng còn trống(theo trạng thái màu)
3 Khi người dùng nhấn nút “Thuê phòng” thì hệ thống sẽ tự động chuyển qua trangthông tin phiếu thuê phòng
4 Điền thông tin khách hàng vào phiếu thuê phòng
Ngoại lệ:
1- Nếu CMND và Số điện thoại của khách hàng nhập kí tự chữ thì sẽ thông báo lỗi2- Nếu thông tin khách hàng không đầy đủ thì sẽ báo lỗi
Quản lý ngày đến và ngày đi
Tên use-case Quản lý ngày đến và ngày đi
Tác nhân chính Nhân viên, quản lý
Người chịu trách
nhiệm
Nhân viên , quản lý
Tiền điều kiện Phòng được chọn phải là phòng còn trống
Đảm bảo tối thiểu Đã đăng nhập vào hệ thống
Đảm bảo thành công Tình trạng phòng sẽ cập nhật là phòng đã có khách
Kích hoạt Chức năng này sẽ được sử dụng khi người dùng chọn vào mục
“Thuê phòng” trên giao diện hệ thống
Chuỗi sự kiện chính:
1 Hệ thống sẽ đưa ra danh sách các phòng cho người dùng chọn
2 Người dùng click chọn phòng còn trống(theo trạng thái màu)
3 Khi người dùng nhấn nút “Thuê phòng” thì hệ thống sẽ tự động chuyển qua trangthông tin phiếu thuê phòng
4 Điền thông tin ngày đến và ngày đi vào phiếu thuê phòng
Trang 35Ngoại lệ:
1 – Nếu ngày đến của phiếu thuê phòng trước ngày hiện tại thì sẽ hiện thông báo lỗi
2 - Nếu ngày đi của phiếu thuê phòng trước ngày đến thì sẽ hiện thông báo lỗi
I.4.2 Use case quản lý việc trả phòng cho khách
Hình 7 : Use case quản lý việc trả phòng cho khách Thanh toán
Tên use-case Thanh toán
Tác nhân chính Nhân viên, quản lý
Người chịu trách nhiệm Nhân viên, quản lý
Tiền điều kiện Phòng được chọn phải là phòng đã có khách
Đảm bảo tối thiểu Đã đăng nhập vào hệ thống
Đảm bảo thành công Cập nhật đúng tình trạng phòng là phòng còn trống
Kích hoạt Chức năng này sẽ được sử dụng khi người dùng chọn vào mục
“Trả phòng” trên giao diện hệ thống
Chuỗi sự kiện chính:
1 Hệ thống sẽ đưa ra danh sách các phòng cho người dùng chọn
2 Người dùng click chọn phòng mà khách muốn trả
3 Khi người dùng nhấn nút “Trả Phòng” thì hệ thống sẽ hiện thông tin khách đã đặtphòng đó, sau khi thanh toán sẽ tự động cập nhật tình trạng phòng là phòng còn trống(có cập nhật màu)
4 Nhấn vào nút thanh toán sẽ tính tổng tiền thuê phòng và dịch vụ
Trang 36Ngoại lệ:
Nếu cập nhật thông tin hóa đơn ngày đi nhỏ hơn ngày đến hoặc ngày hiện tại thì sẽthông báo lỗi
Cập nhật chi tiết khách hàng, ngày đi
Tên use-case Cập nhật chi tiết khách hang, ngày đi
Tác nhân chính Nhân viên, quản lý
Người chịu trách nhiệm Nhân viên, quản lý
Tiền điều kiện Phòng được chọn phải là phòng đã có khách
Đảm bảo tối thiểu Đã đăng nhập vào hệ thống
Đảm bảo thành công Cập nhật đúng tình trạng phòng là phòng còn trống
Kích hoạt Chức năng này sẽ được sử dụng khi người dùng chọn vào mục
“Trả phòng” trên giao diện hệ thống
Chuỗi sự kiện chính:
1 Hệ thống sẽ đưa ra danh sách các phòng cho người dùng chọn
2 Người dùng click chọn phòng mà khách muốn trả
3 Khi người dùng nhấn nút “Trả Phòng” thì hệ thống sẽ hiện thông tin khách đã đặtphòng đó, sau khi thanh toán sẽ tự động cập nhật tình trạng phòng là phòng còn trống(có cập nhật màu)
4 Cập nhật thông tin khách hàng, ngày đi trên hóa đơn
Ngoại lệ:
Nếu cập nhật thông tin hóa đơn ngày đi nhỏ hơn ngày đến hoặc ngày hiện tại thì sẽthông báo lỗi
Xuất hóa đơn
Tên use-case Xuất hóa đơn
Tác nhân chính Nhân viên, quản lý
Người chịu trách nhiệm Nhân viên, quản lý
Tiền điều kiện Phòng được chọn phải là phòng đã có khách
Đảm bảo tối thiểu Đã đăng nhập vào hệ thống
Đảm bảo thành công Cập nhật đúng tình trạng phòng là phòng còn trống
Kích hoạt Chức năng này sẽ được sử dụng khi người dùng chọn vào mục
“Trả phòng” trên giao diện hệ thống
Trang 37Chuỗi sự kiện chính:
1 Hệ thống sẽ đưa ra danh sách các phòng cho người dùng chọn
2 Người dùng click chọn phòng mà khách muốn trả
3 Khi người dùng nhấn nút “Trả Phòng” thì hệ thống sẽ hiện thông tin khách đã đặtphòng đó, sau khi thanh toán sẽ tự động cập nhật tình trạng phòng là phòng còn trống(có cập nhật màu)
4 Nhấn vào nút xuất hóa đơn sẽ xuất hóa đơn
Ngoại lệ:
Không có ngoại lệ
I.4.3 Use case tra cứu thông tin phòng
Hình 8 : Use case tra cứu thông tin phòng Tra cứu tình trạng, đặc tính phòng
Tên use-case Tra cứu tình trạng, đặc tính phòng
Tác nhân chính Nhân viên, quản lý
Người chịu trách nhiệm Nhân viên, quản lý
Tiền điều kiện Hệ thống loại bỏ các thông tin đã được thực hiện và quay
lui lại bước trước
Đảm bảo tối thiểu Đã đăng nhập vào hệ thống
Đảm bảo thành công Hiển thị thông tin phòng 1 cách đầy đủ
Kích hoạt Chức năng này sẽ được sử dụng khi người dùng chọn vào
mục “Xem thông tin phòng” trên giao diện hệ thống, cạnhtên phòng trong danh sách phòng
Chuỗi sự kiện chính:
Trang 381 Hệ thống sẽ đưa ra danh sách các phòng cho người dùng chọn
2 Người dùng chọn 1 phòng và click chọn nút “Xem thông tin phòng trên mànhình giao diện, hệ thống sẽ hiện đầy đủ thông tin của phòng đó
Ngoại lệ:
Không có ngoại lệ
I.4.4 Use case quản lý việc sử dụng dịch vụ phòng
Hình 9 : Use case quản lý việc sử dụng dịch vụ phòng
Thêm dịch vụ
Tên use-case Thêm dịch vụ
Tác nhân chính Nhân viên, quản lý
Người chịu trách nhiệm Nhân viên , quản lý
Tiền điều kiện Hệ thống hiện danh sách các phòng và các dịch vụ đã có trong
phòng
Đảm bảo tối thiểu Đã đăng nhập vào hệ thống
Đảm bảo thành công Thêm dịch vụ vào 1 phòng thành công
Kích hoạt Chức năng này sẽ được sử dụng khi người dùng check vào 1
phòng và chọn mục “Dùng dịch vụ” trên giao diện
Chuỗi sự kiện chính:
1 Hệ thống sẽ đưa ra danh sách các phòng
2 Người dùng chọn 1 phòng cụ thể và click vào nút “Dùng dịch vụ” để thực hiện tác vụ
3 Có thể thêm các dịch vụ có sẵn vào 1 phòng
Trang 39Ngoại lệ:
Không có ngoại lệ
Bớt dịch vụ
Tên use-case Bớt dịch vụ
Tác nhân chính Nhân viên, quản lý
Người chịu trách nhiệm Nhân viên , quản lý
Tiền điều kiện Hệ thống hiện danh sách các phòng và các dịch vụ đã có trong
phòng
Đảm bảo tối thiểu Đã đăng nhập vào hệ thống
Đảm bảo thành công Bớt dịch vụ vào 1 phòng thành công
Kích hoạt Chức năng này sẽ được sử dụng khi người dùng check vào 1
phòng và chọn mục “Dùng dịch vụ” trên giao diện
Trang 40I.4.5 Use case tìm kiếm phòng
Hình 10 : Use case tìm kiếm phòng Tìm kiếm theo tình trạng phòng
Tên use-case Tìm kiếm theo tình trạng phòng
Tác nhân chính Nhân viên, quản lý
Người chịu trách nhiệm Nhân viên, quản lý
Tiền điều kiện Hệ thống loại bỏ các thông tin đã được thực hiện và quay lui
lại bước trước
Đảm bảo tối thiểu Khởi động phần mềm
Đảm bảo thành công Hiển thị danh sách các phòng cần tìm theo tình trạng được
chọn
Kích hoạt Chức năng này sẽ được sử dụng khi người dùng lựa chọn
“Tình trạng phòng” trên giao diện tìm kiếm của hệ thống