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

Các chương trình quản lý phòng máy hiện nay ở Việt Nam - 2 pdf

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 (403.7 KB, 25 trang )



26
+ Nếu người quản lý chọn tắt một ứng dụng: người quản lý
chọn một ứng dụng từ danh sách, Server gởi yêu cầu đến
máy khách. Máy khách nhận thông điệp sẽ tắt ứng dụng.
- Dòng sự kiện khác:
+ Không có.
- Điều kiện tiên quyết:
+ Không có.
- Hậu điều kiện:
+ Không có.
- Điểm mở rộng:
+ Không có.
2.2.2.1.18 Manage Service Use Case:
Tên Use Case: Manage Service.
Mô tả : Cho phép người qu
ản lý có thể biết được các service chạy trên máy
khách, và người quản lý cũng có thể thay đổi loại khởi động( Automatic,
Manual hay Disable) hay cũng có thể thay đổi trạng thái service( Start hay
Stop).
Dòng sự kiện :
- Dòng sự kiện chính :
+ Use case bắt đầu khi người quản lý yêu cầu quản lý dịch
vụ trên máy khách.
+ Người quản lý chọn máy khách mà người quản lý muốn
xem thông tin service.
+ Nếu người quản lý chọn xem danh sách các dịch vụ:
Server gởi thông điệp yêu c
ầu danh sách đến máy khách,
máy khách thực hiện việc ghi lại danh sách các dịch vụ


đang chạy ở máy khách và gởi về Server.


27
+ Nếu người quản lý chọn thay đổi loại khởi động dịch vụ:
màn hình yêu cầu nhập loại tương ứng để thay đổi. Server
gởi yêu cầu đến máy khách. Máy khách nhận thông điệp sẽ
thay đổi tương ứng.
+ Nếu người quản lý chọn thay đổi trạng thái dịch vụ: màn
hình yêu cầu chọn trạng thái tương ứng để thay đổi. Server
gởi yêu cầu đến máy khách. Máy khách nhận thông
điệp sẽ
thay đổi tương ứng.
- Dòng sự kiện khác:
+ Không có.
- Điều kiện tiên quyết:
+ Không có.
- Hậu điều kiện:
+ Không có.
- Điểm mở rộng:
+ Không có.
2.2.2.1.19 Send Message Use Case:
Tên Use Case: Send Message.
Mô tả : Cho phép người quản lý có thể gởi tin nhắn đến một máy khách bất
kỳ hay cho tất cả các máy
Dòng sự kiện :
- Dòng sự kiện chính :
+ Use case bắt đầu khi người quản lý yêu c
ầu gởi tin nhắn.
+ Gởi đến một máy: người quản lý chọn máy khách mà

người quản lý muốn gởi thông điệp.
+ Nhập thông điệp và yêu cầu Server gởi thông điệp đến
máy đã chọn.


28
+ Gởi đến tất cả các máy: yêu cầu Server gởi thông điệp
đến tất cả các máy.
+ Máy khách nhận thông điệp sẽ xuất ra màn hình.
- Dòng sự kiện khác:
+ Không có.
- Điều kiện tiên quyết:
+ Không có.
- Hậu điều kiện:
+ Không có.
- Điểm mở rộng:
+ Không có.
2.2.2.1.20 Manage Remote Computer:
Tên Use Case: Manage Remote Computer.
Mô tả : Cho phép người quản lý có thể Logout, Restart hay Shutdown một
máy khách bất kỳ hay cho tất cả các máy.
Dòng sự
kiện :
- Dòng sự kiện chính :
+ Use case bắt đầu khi người quản lý yêu cầu Logout,
Restart hay Shutdown.
+ Nếu người quản lý yêu cầu Logout: luồng sự kiện phụ
yêu cầu Logout được kích hoạt.
+ Nếu người quản lý yêu cầu Resstart: luồng sự kiện phụ
yêu cầu Resstart được kích hoạt.

+ Nếu người quản lý yêu cầu Shutdown: luồng sự kiện phụ
yêu cầu Shutdown được kích hoạt.
Logout:
+ Người quản lý có thể
chọn một máy hay
tất cả máy.


29
+ Người quản lý có thể nhập thời gian.
Sau thời gian đó chương trình sẽ thực hiện
logout.
+ Người quản lý yêu cầu Logout. Server
sẽ gởi thông điệp đến máy khách yêu cầu
máy khách thực hiện logout.
tương tự cho Restart và Shutdown
- Dòng sự kiện khác:
+ Không có.
- Điều kiện tiên quyết:
+ Không có.
- Hậu điều kiện:
+ Không có.
- Điểm mở rộng:
+ Không có.
2.2.2.1.21 SnapShot Use Case:
Xem phầ
n kỹ thuật.

2.2.2.2 Phía Client:
2.2.2.2.1 Screen

2.2.2.2.1.1 Screen Connect Use Case:
Tên Use Case : Screen Connect.
Mô tả : Máy khách thực hiện kết nối với Server để vào trạng thái chờ.
Dòng sự kiện :
- Dòng sự kiện chính :
+ Use case bắt đầu khi máy khách bắt đầu chạy chương trình.


30
+ Chương trình kiểm tra thông tin kết nối và gởi thông điệp
đến Server.
+ Nếu nhận được hồi đáp chấp nhận thì chương trình sẽ thực
hiện kết nối với Server và màn hình chờ bật lên( Use Case
thành công).
- Dòng sự kiện khác:
+ Nếu các thông tin kết nối không có ( như thông tin về tên
máy, địa chỉ IP SERVER, port ) thì sẽ nhập thông báo yêu cầu
nhập thông tin lại.
+ Nếu tên máy trùng với một tên máy đã kết nối tr
ước vào
Server( do hồi đáp không chấp nhận của Server) thì cũng sẽ
nhập thông báo yêu cầu nhập thông tin lại.
+ Nếu kết nối không thành công thì sẽ báo lỗi.
- Điều kiện tiên quyết:
+ Server phải khởi động trước khi máy khách muốn kết nối vào
màn hình chờ.
- Hậu điều kiện:
+ Máy khách đang ở trạng thái down chuyển sang trạng thái
chờ.
- Điểm mở rộng:

+ Không có.
2.2.2.2.1.2 Login Member Use Case:
Tên Use Case : Login Member.
Mô tả: Máy khách thực hiện login vào Server dưới hình thức Member.
Dòng sự kiện :
- Dòng sự kiện chính :
+ Use case bắt đầu khi khách hàng bắt đầu đăng nhập vào
Server để sử dụng máy.
+ Khách hàng nhập thông tin bao gồm Username và Password.


31
+ Chương trình gởi thông điệp đến Server.
+ Nếu nhận được hồi đáp chấp nhận thì màn hình chờ tắt,
chương trình chính Client sẽ bật lên để tính giờ và khi đó
khách hàng có thể sử dụng được máy này.
- Dòng sự kiện khác:
+ Nếu nhận được hồi đáp từ chối thì màn hình screen vẫn
không bị tắt.
- Điều kiện tiên quyết:
+ Server phải khởi động trướ
c.
+ Máy khách đang ở trạng thái chờ.
- Hậu điều kiện:
+ Máy khách đang ở trạng thái chờ chuyển sang trạng thái sử
dụng.
- Điểm mở rộng:
+ Không có.
2.2.2.2.2 Client
2.2.2.2.2.1 Client Connect Use Case:

Tên Use Case : Client Connect.
Mô tả: Máy khách thực hiện kết nối với Server để vào trạng thái sử dụng
Dòng sự kiện :
- Dòng sự kiện chính :
+ Use case bắt đầu khi người dùng login thành công vào
Server.
+ Chương trình kết nối với Server.
+ Server nhận được thông điệp kết nối sẽ bắt đầu gởi danh sách
các món ăn, banner cho Client.
+ Máy khách sẽ nhận thông điệp từ Server sẽ lưu trữ các thông
tin đó.


32
+ Máy khách xuất thông báo về nội quy sử dụng phòng máy.
- Dòng sự kiện khác:
+ Nếu kết nối không thành công thì sau 1 khoảng thời gian
máy khách sẽ tự động thực hiện kết nối lại với Server.
- Điều kiện tiên quyết:
+ Server phải khởi động trước khi máy khách muốn kết nối vào
màn hình chờ.
+ Máy khách đang ở trạng thái chờ.
- Hậu điều kiện:
+ Không có.
- Điể
m mở rộng:
+ Không có.
2.2.2.2.2.2 Order Use Case:
Tên Use Case : Order
Mô tả : Khách hàng có thể thực hiện đặt món ăn từ danh sách với Server

Dòng sự kiện :
- Dòng sự kiện chính :
+ Use case bắt đầu khi khách hàng yêu cầu phục vụ.
+ Danh sách các thức ăn, thức uống sẽ xuất hiện.
+ Khách hàng chọn các thông tin cần thiết như món ăn, số
lượng…
+ Khi khách hàng yêu cầu phục vụ các món mình đã chọn thì
máy khách sẽ gởi thông điệp cho Server.
+ Server nhận thông điệp sẽ lần l
ượt phục vụ các món ăn khách
hàng đã yêu cầu.
- Dòng sự kiện khác:
+ Không có.
- Điều kiện tiên quyết:


33
+ Server phải khởi động trước khi máy khách muốn kết nối vào
màn hình chờ.
+ Phía máy khách đang ở trong trạng thái sử dụng.
- Hậu điều kiện:
+ Không có.
- Điểm mở rộng:
+ Không có.
2.2.3 Thiết kế lớp trên Server:
2.2.3.1 Giao diện Server:



34


Hình 2-7 Thiết kế lớp giao diện Server
CDebitDetailReportDlg
CDebitReportDlg
CMonthReport
CDailyReportDlg
CInputPriceDlg
CDebitDlg
CInputMemberDlg
CInputDishDlg
CInputValueDlg
CInputCategoryDlg
CAfterCrashDlg
CBannerDlg
CInfoServerDlg
CBaseTabCtrl
CCafeServerDlg
CEnTabCtrl
CTabCtrlSSL
CLockKeyAddDlg
CChgSrvStartupDlg
CChgSrvStatusDlg
CTabPageSSL
CLoggingTab
CKeyLogTab
CMessageTab
CScrCapTab
CApplistTab
CWorkStationTab
CServiceTab

CAdminTab
CKeyLockTab
CParentTabPage
CSrvListTab


35



STT Tên lớp Kế thừa từ lớp Chức năng
1 CBaseTabCtrl CTabCtrl
dùng tự vẽ giao diện
tab ctrl
2 CEnTabCtrl CBaseTabCtrl
dùng tô màu đỉnh Tab
theo màu nền
3 CTabCtrlSSL CEnTabCtrl
dùng Add Dialog (xem
1 dialog như một trang
của tab)
4 CTabPageSSL CDialog
dùng để thể hiện
dialog như một trang
của Tab
5 CParentTabPage CTabPageSSL
dùng để tô màu nền
và gắn tooltip
6 CLoggingTab CParentTabPage
giao diện để điều

khiển hoạt động máy
tính
7 CKeyLockTab CParentTabPage
giao diện để khóa bàn
phím
8 CKeyLogTab CParentTabPage
giao diện dùng để ghi
phím
9 CLockKeyAddDlg CParentTabPage
giao diện dùng để cho
người dùng nhập các
phím cần khóa
10 CMessageTab CParentTabPage
giao diện dùng để
người quản lý gởi tin
nhắn đến một máy


36
hay nhiều máy
11 CScrCapTab CParentTabPage
giao diện dùng để
chụp màn hình
12 CApplistTab CParentTabPage
giao diện dùng để
quản lý các ứng dụng
phía máy khách
13 CServiceTab CParentTabPage
giao diện dùng để
quản lý phục vụ các

dịch vụ như món ăn,
thức uống cho khách
hàng
14 CChgSrvStartupDlg CDialog
nhập dữ liệu về trạng
thái hoạt động của
dịch vụ
15 CChgSrvStatusDlg CDialog
nhập dữ liệu về trạng
thái khởi động của
dịch vụ
16 CSrvListTab CParentTabPage
giao diện dùng để
quản lý các service
phía máy khách
17 CAdminTab CParentTabPage
dùng để chứa các
giao diện quản trị
18 CWorkStationTab CParentTabPage
dùng để quản lý việc
tính cước, giá cả các
dịch vụ kèm theo
19 CAfterCrashDlg CDialog
dùng quản lý chương
trình sau khi có một
client bị đứt kế nối
20 CBannerDlg CDialog giao diện dùng nhập


37

banner, rồi xuất các
quy định ở máy khách
21 CInfoServerDlg CDialog
giao diện dùng nhập
các thông tin về
Server lúc bắt đầu
22 CInputCategoryDlg CDialog
giao diện dùng quản lý
loại thức ăn, nước
uống
23 CInputDishDlg CDialog
giao diện dùng quản lý
các món ăn, thức
uống
24 CInputMemberDlg CDialog
giao diện dùng quản lý
thanh viên tham gia
25 CDebitDlg CDialog
giao diện dùng quản lý
các khách hàng nợ
26 CInputPriceDlg CDialog
giao diện dùng quản lý
giá cả các ngày
27 CInputValueDlg CDialog
giao diện dùng nhập
giá cả của ngày
28 CDailyReportDlg CDialog
giao diện dùng thống
kê các đăng nhập sử
dụng của khách hàng

29 CMonthReport CDialog
giao diện dùng thống
kê số tiền máy khách
kiếm được trong một
tháng
30 CDebitReportDlg CDialog
giao diện dùng thống
kê các khách hàng nợ
31 CdebitDetail- CDialog giao diện dùng xuất


38
ReportDlg chi tiết về một khách
hàng nợ
32 CCafeServerDlg CDialog
giao diện chương
trình Server


2.2.3.2 Xử lý Server:
CADOException
CADOParameter
CADOCommand CADOFieldInfo
CADODatabase CADORecordSet
CSolveMember
CSolveCategory
CSolveLogin
CSolveDish
CSolveFee
CSolveTableFee

CSolveFeeDay
CInputPriceDay
CInputDish
CInputCategory
CSolveDailyReport
CSolveMonthReport
CSolveDebitList
CCafeDB
CSolveDebitDetail

Hình 2-8 Thiết kế lớp xử lý Server




39
STT Tên lớp Kế thừa từ lớp Chức năng
1 CSolveMember CCafeDB
Lớp xử lý việc quản
lý các thành viên
2 CSolveCategory CCafeDB
Lớp xử lý việc quản
lý các loại món ăn,
thức uống
3 CSolveDish CCafeDB
Lớp xử lý việc quản
lý các món ăn, thức
uống
4 CSolveLogin CCafeDB
Lớp xử lý việc quản

lý Login,Logout
5 CSolveFee CCafeDB
Lớp xử lý việc tính
tiền
6 CSolveTableFee CCafeDB
Lớp xử lý việc quản
lý tiền phí
7 CSolveFeeDay CCafeDB
Lớp xử lý việc quản
lý tiền phí
8 CInputPriceDay CCafeDB
Lớp xử lý việc quản
lý giá cả
9 CInputDish CCafeDB
Lớp xử lý việc quản
lý món ăn,thức uống
10 CInputCategory CCafeDB
Lớp xử lý việc quản
lý loại món ăn
11 CSolveDailyReport CCafeDB
Lớp xử lý việc báo
cáo hàng ngày
12 CSolveMonthReport CCafeDB
Lớp xử lý việc báo
cáo theo tháng
13 CSolveDebitList CCafeDB Lớp xử lý việc nợ


40
của các thành viên

14 CSolveDebitDetail CCafeDB
Lớp xử lý việc nợ
của các thành viên
một cách chi tiết
15 CADODatabase CADOCommand
16 CADORecordset CADOCommand, CADOFieldInfo
17 CADOCommand CADOParameter
18 CADOFieldInfo
19 CADOParameter
20 CADOException

2.2.4 Thiết kế lớp trên Client:
2.2.4.1 Screen:

CLogonDlgCInfoPcDlg
CSockAddr CBlockingSocket
CBlockingSocketException
CScreenDlg

Hình 2-9 Thiết kế lớp Screen


STT Tên lớp
Kế thừa từ
lớp Chức năng
1 CSockAddr sockaddr_in
Chỉ địa chỉ IP, thông tin Port
dịch vụ



41
2 CBlockingSocket CObject
Nó thay thế lớp Socket của
MFC. Đây là lớp giữ chức
năng quan trọng nhất trong
chương trình vì nó có thể
thiết lập, tiếp nhận kết nối và
quản lý việc truyền dữ liệu.
3
CblockingSocket-
Exception CException
Lớp quản lý lỗi cho việc thiết
lập, tiếp nhận kết nối và quản
lý việc truyền dữ liệu.
4 CInfoPcDlg
Dùng để nhập thông tin khi
không có thông tin kết nối
5 CLogonDlg
Dùng để nhập thông tin
Logon
6 CScreenDlg
Giao diện che màn hình
không cho khách hàng sử
dụng máy khách

2.2.4.2 Client:
CKeyClient
CSockAddr
CBlockingSoket CBlockingSocketException
COrder CKeyLogClient

CKeyLockCLient
CTaskMgr CShutdownClient
CCafeClientDlg

Hình 2-10 Thiết kế lớp Client


42



STT Tên lớp
Kế thừa từ
lớp Chức năng
1 CSockAddr sockaddr_in
Chỉ địa chỉ IP, thông tin
Port dịch vụ
2 CBlockingSocket CObject
Nó thay thế lớp Socket
của MFC. Đây là lớp giữ
chức năng quan trọng
nhất trong chương trình vì
nó có thể thiết lập, tiếp
nhận kết nối và quản lý
việc truyền dữ liệu.
3
CblockingSocket-
Exception CException
Lớp quản lý lỗi cho việc
thiết lập, tiếp nhận kết nối

và quản lý việc truyền dữ
liệu.
4 CKeyClient
Lớp quản lý lỗi cho việc
Lock hay Log key
5 COrder CDialog
Giao diện phục vụ việc
đặt món ăn của khách
hàng
6 CKeyLockClient CKeyClient Lớp xử lý khóa phím
7 CKeyLogClient CKeyClient
Lớp xử lý ghi nhận phím
sử dụng
8 CCafeClientDlg
Giao diện chính của
chương trình Client



43
2.2.5 Hiện thực hóa Use Case:
2.2.5.1 Use case Start Server:


: User
Object1 : CCafeServerDlg
Object2 :
CBlockingSocket
1: StartServer( )
2: CreateConnection( )

3: StartListenConnection( )

Hình 2-11 Sequence Diagram Start Server



44
2.2.5.2 Use case Login:

Hình 2-12 Sequence Diagram Login
: User
Object1 : CWorkStationTab Object2 : CSolveLogin
Object3(Server) :
CBlockingSocket
CObject4(Screen) :
CBlockingSocket
Object5 : CScreenDlg
Object6(Client) :
CBlockingSocket
Object7 : CCafeClientDlg
2: CheckDatabase( )
7: Close( )
1: LoginComputer( )
3: SetInfo( )
4: SendMessage( )
5: CloseApplication( )
8: Connect( )
9: SendMessage( )
10: AcceptConnection( )
Close Successful

6: SendMessage( )


45
2.2.5.3 Use case Logout:

Hình 2-13 Sequence Diagram Logout
: User
Object1 : CWorkStationTab Object3 :
CSolveDailyReport
Object2 : CSolveLogin
Object4(Server) :
CBlockingSocket
Object5(Screen) :
CBlockingSocket
Object6 : CScreenDlg
Object7(Client) :
CBlockingSocket
Object8 : CCafeClientDlg
2: DeleteInfoLogin( )
9: StartScreen( )
8: CloseConnection( )
1: LogoutComputer( )
5: LogoutComputer( )
6: SendMessage( )
7: CloseConnection( )
10: StartConnection( )
11: SendMessage( )
12: AcceptConnection( )
3: SaveClientInfo( )

4: Delete Client Info


46
2.2.5.4 Use case Paid

Hình 2-14 Sequence Diagram Paid
: User
Object1 : CWorkStationTab Object2 : CSolveLogin Object3 :
CSolveDai lyReport
Obj ect4 : CSolveFee
Object5 : CSolveFeeDay Object6 :
CSolveTableFee
Obj ect7(Server) :
CBl ockingSocket
2: ComputerFee( )
1: PaidComputer( )
12: LogoutComputer( )
9: SaveClientInfo( )
11: DeleteClientInfo( )
10: Fee( )
3: ComputerFee( )
4: SetDay( )
5: GetTable( )
6: GetPrice( )
7: ComputeFee( )
8: GetFee( )


47

2.2.5.5 Use Case SetBanner:
: User
Object1 : CCafeServerDlg
Object2(Server) :
CBlockingSocket
Object3(Client) :
CBlockingSocket
Object2 : CCafeClientDlg
1: EnterBanner( )
5: ShowBanner( )
4: GetBanner( )
3: SendMessage( )
2: SetBanner( )

Hình 2-15 Sequence Diagram SetBanner
2.2.5.6 Use Case Service Order
: User
Object1 : CServiceTab Object2 : CMyHFlexGrid Object2 : CWorkStationTab Object3 :
CSolveLoginService
3: UpdateServiceFee( )
1: ServeDish( )
2: ShowInfo( )
4: SaveToDatabase( )

Hình 2-16 Sequence Diagram Service Order
2.2.5.7 Use case Daily Report



48


: User
Object1 : CDailyReportDlg Object2 : CDailyReportFlexGrid Object3 :
CSolveDailyReport
1: DailyReport( )
2: OpenDatabase( )
3: GetAllInfo( )
4: ShowReport( )

Hình 2-17 Sequence Diagram Daily Report


49
2.2.5.8 Use case Debit Report:

Hình 2-18 Sequence Diagram Debit Report
Object6 :
CSolveDebitDetailReport
: User
Object1 : CDebitReportDlg Object2 : CDebitReportFlexGrid Object3 :
CSolveDebitList
Object4 : CDebitDetailReportDlg
Object5 :
CDebitDetailReportFlexGrid
1: DebitReport( )
2: OpenDatabase( )
3: GetAllInfo( )
4: ShowReport( )
5: ReportDetail( )
6: SetReportInfo( )

7: Opendatabase( )
8: GetAllInfo( )
9: ShowDetail( )


50

2.2.5.9 Use case Month Report

: User
Object1 : CMonthReportDlg Object2 : CMSFlexGrid Object3 :
CSolveMonthReport
1: MonthReport( )
2: OpenDatabase( )
3: GetAllInfo( )
4: ShowReport( )

Hình 2-19 Sequence Diagram Month Report
2.2.5.10 Use case Manage Cafeteria:
2.2.5.10.1 Show:
: Us er
Object1 : CInputCategoryDlg Object2 : CCategoryListFlexGrid
Object3 : CInputCategory
1: Category( )
2: OpenDatabase( )
3: GetAllInfo( )
4: ShowCategory( )

Hình 2-20 Sequence Diagram Manage Cafeteria Show


×