You are on page 1of 67

Chương 8.

Thiết kế chức năng hệ thống


Nội dung

 Thiết kế kiến trúc hệ thống


 Ý tưởng theo thiết kế kiến trúc 3 lớp
 Thiết kế các lớp tầng nghiệp vụ
 Thiết kế các lớp tầng truy cập dữ liệu
 Thiết kế các lớp tầng giao diện
 Mô tả hiện thực hoá nội dung thiết kế use case
Nội dung
4

 Thiết kế kiến trúc hệ thống


 Ý tưởng theo thiết kế kiến trúc 3 lớp
 Thiết kế các lớp tầng nghiệp vụ
 Thiết kế các lớp tầng truy cập dữ liệu
 Thiết kế các lớp tầng giao diện
 Mô tả hiện thực hoá nội dung thiết kế use case
Hệ thống & Hệ thống con (subsystem)
5
 Sự tích hợp giữa nhiều hệ thống

Giao diện người dùng

CSDL
Lớp (Layer)
6
 Các đối tượng trong các lớp (layer)
Kiến trúc Client-Server
7

CSDL

 Giao diện cài đặt luôn xử lý nghiệp vụ trực tiếp trong


giao diện.
 Tạo ra một sự phụ thuộc rất lớn giữa giao diện và
CSDL và do đó, rất khó để cải tiến, bảo trì và tái sử
dụng
Kiến trúc ba lớp (three-layer)
8
 Kiến trúc ba lớp (three-layer)
Tạo ra sự độc lập giữa giao diện và dữ liệu bằng
cách cô lập các chức năng của giao diện với các
chức năng tác nghiệp (business), và cô lập các chức
năng tác nghiệp với các chi tiết về truy cập CSDL
Kiến trúc 3 lớp
Thông điệp trong các lớp
11
Nội dung
12

Thiết kế kiến trúc hệ thống


Ý tưởng theo thiết kế kiến trúc 3 lớp
Thiết kế các lớp tầng nghiệp vụ
Thiết kế các lớp tầng truy cập dữ liệu
Thiết kế các lớp tầng giao diện
Mô tả hiện thực hoá nội dung thiết kế use case
Ý tưởng thiết kế theo kiến trúc 3 lớp
13
Tầng giao diện người dùng

( User Interface Layer)

Tầng tác nghiệp


(Business Layer)

Đối tượng mô tả
thế giới thực
Tầng truy cập dữ liệu
( Access Data Layer)

Dữ liệu lưu trữ


Nội dung
14

Thiết kế kiến trúc hệ thống


Ý tưởng theo thiết kế kiến trúc 3 lớp
Thiết kế các lớp tầng nghiệp vụ
Thiết kế các lớp tầng truy cập dữ liệu
Thiết kế các lớp tầng giao diện
Mô tả hiện thực hoá nội dung thiết kế use case
Thiết kế lớp tầng nghiệp vụ
Thiết kế lớp tầng nghiệp vụ
17  Ví dụ: các lớp tầng nghiệp vụ hệ thống ATM
Nội dung
18

Thiết kế kiến trúc hệ thống


Ý tưởng theo thiết kế kiến trúc 3 lớp
Thiết kế các lớp tầng nghiệp vụ
Thiết kế các lớp tầng truy cập dữ liệu
Thiết kế các lớp tầng giao diện
Mô tả hiện thực hoá nội dung thiết kế use case
Thiết kế lớp tầng truy cập dữ liệu
19

 Bước 1: Xác định các đối tượng lưu trữ (persistent)


 Bước 2: Chuyển đổi sang mô hình quan hệ
 Bước 3: Xác định các lớp tầng truy cập dữ liệu
Thiết kế lớp tầng truy cập dữ liệu
20

 Bước 1: Xác định các đối tượng lưu trữ (persistent)


 Bước 2: Chuyển đổi sang mô hình quan hệ
 Bước 3: Xác định các lớp tầng truy cập dữ liệu
Bước 1: Xác định các đối tượng lưu trữ
21
Các loại dữ liệu tồn tại trong một hệ thống:
1. Là kết quả tạm thời để đánh giá một biểu thức
2. Các biến trong quá trình thực thi một thủ tục (các tham số
và biến trong phạm vi cục bộ)
3. Các biến toàn cục và các biết cấp phát một cách tự động

1. Dữ liệu tồn tại giữa các lần thực thi một chương trình
2. Dữ liệu tồn tại giữa các phiên bản của một chương trình
3. Dữ liệu tồn tại vượt ngoài phạm vi sống của một
chương trình
Bước 1: Xác định các đối tượng lưu trữ

23  Các lớp persistent của hệ thống ATM


Thiết kế lớp tầng truy cập dữ liệu
24

 Bước 1: Xác định các đối tượng lưu trữ (persistent)


 Bước 2: Chuyển đổi sang mô hình quan hệ
 Bước 3: Xác định các lớp tầng truy cập dữ liệu
Bước 2: Chuyển đổi sang mô hình Quan hệ

Các lớp persistent

Dữ liệu luận lý
(Mô hình dữ liệu quan hệ)

Dữ liệu vật lý
(Hệ QTCSDL QH)

25
Thiết kế lớp tầng truy cập dữ liệu
26

 Bước 1: Xác định các đối tượng lưu trữ (persistent)


 Bước 2: Chuyển đổi sang mô hình quan hệ
 Bước 3: Xác định các lớp tầng truy cập dữ liệu
Bước 3: Xác định lớp tầng truy cập dữ liệu

Tầng nghiệp vụ

Tầng truy cập dữ liệu

CSDL vật lý
Tập tin
Bảng Bảng
Bảng
Bước 3: Xác định lớp tầng truy cập dữ liệu
28

 Tạo lớp tầng truy cập dữ liệu:


 1 lớp tầng nghiệp vụ tạo một lớp tương ứng tầng
truy cập DL
ClassC

ClassC1 ClassC2

ClassDB_A ClassDB_B ClassDB_C


Bước 3: Xác định lớp tầng truy cập dữ liệu

Xác định mối kết hợp


29

 Tạo mối kết hợp giữa lớp nghiệp vụ và lớp tương ứng
truy cập dữ liệu (aggregration)
 Tạo thuộc tính tham chiếu: lớp nghiệp vụ lớp truy
cập DL
ClassA
Tầng nghiệp vụ classDB_A : ClassDB_A

ClassDB_A
Tầng truy cập dữ liệu
Bước 3: Xác định lớp tầng truy cập dữ liệu
30
 Đơn giản hoá các lớp:
 Lớp dư thừa: Nếu có hai lớp đều cùng cung cấp các dịch
vụ giống nhau loại đi một
 Phương thức:
Nếu lớp chỉ có 1 hoặc 2 phương thức kết hợp chung
vào lớp khác
Thông thường chỉ quan tâm đến có nhu cầu truy câp
đến đối tượng lưu trữ, bao gồm: đọc/xóa/cập nhật dữ
liệu
Bước 3: Xác định lớp tầng truy cập dữ liệu
31

 Xác định phương thức các lớp truy cập dữ liệu


 Các phương thức xử lý về dữ liệu, bao gồm:

1) Đọc và ghi các đối tượng bền vững (persistent)


2) Xoá các đối tượng bền vững (persistent)
3) Quản lý giao tác trên các đối tượng persistent
4) Kiểm soát cơ chế khoá và truy cập đồng thời
Bước 3: Xác định lớp tầng truy cập dữ liệu
32
1. Đọc & Ghi đối tượng bền vững (persistent)
1.1 Tạo mới đối tượng
Bước 3: Xác định lớp tầng truy cập dữ liệu
33  Đọc & Ghi đối tượng bền vững (persistent)
1.2 Cập nhật trạng thái đối tượng (dùng đối tượng điều khiển)
Bước 3: Xác định lớp tầng truy cập dữ liệu

34
 Đọc & Ghi đối tượng bền vững (persistent)
1.3 Đọc đối tượng bền vững
Bước 3: Xác định lớp tầng truy cập dữ liệu

35
 Đọc & Ghi đối tượng bền vững (persistent)
1.3 Đọc đối tượng bền vững (dùng đối tượng điều khiển)
Bước 3: Xác định lớp tầng truy cập dữ liệu

36 Xóa đối tượng bền vững (persistent)


Bước 3: Xác định lớp tầng truy cập dữ liệu

37 Xóa đối tượng bền vững (persistent) (dùng đối tượng điều khiển)
Bước 3: Xác định lớp tầng truy cập dữ liệu

38  Quản lý giao tác (transaction) trên đối tượng bền vững


 Dùng văn bản để chỉ ra nơi bắt đầu và kết thúc giao tác
Bước 3: Xác định lớp tầng truy cập dữ liệu
39  Quản lý giao tác (transaction) trên đối tượng bền vững
 Dùng văn bản để chỉ ra nơi bắt đầu và kết thúc giao tác
Bước 3: Xác định lớp tầng truy cập dữ liệu
40
 Quản lý giao tác (transaction) trên đối tượng bền vững
(dùng đối tượng điều khiển)
Bước 3: Xác định lớp tầng truy cập dữ liệu
41  Ví dụ: Xác định lớp truy cập dữ liệu hệ thống ATM
KHACH HANG
KHACH HANGDB

TAIKHOAN
TAIKHOANDB

GIAODICH

GIAODICHDB

GIAODICH_RUT GIAODICH_GUI
Bước 3: Xác định lớp tầng truy cập dữ liệu
 Ví dụ: Xác định lớp truy cập dữ liệu hệ thống ATM
Bước 3: Xác định lớp tầng truy cập dữ liệu
43
 Ví dụ: Xác định lớp truy cập dữ liệu hệ thống ATM
NgânHàng
Lớp truy cập dữ liệu hệ thống ATM
+kếtNối()
+đóngKếtNối()
KháchHàng
44
#tênKháchHàng:String
MáyATM
#họKháchHàng:String
#địaChỉ:String
#mãPIN::String
#trạngThái:String
44 #sốThẻ:String
#sốTiềnHiệnTại:float
#tàiKhoản:TàiKhoản
#ngHàngDB:NgânHàngDB +khởiĐộngMáy()
+đóngMáy()
#cậpNhậtSốTiền()
+kiểmTraMậtKhẩu()
#tắtMáy()
#lấy_KháchHàng()
1
của
GiaoDịch
1..n
#giaoDịchID:String
TàiKhoản
#ngàyGiaoDịch:Date
#sốTàiKhoản:String
có #thờiGianGiaoDịch:Time
#loạiTàiKhoản:String
#loạiGiaoDịch:String
#sốDư:float
#giaoTác:GiaoTác
1 0..n #sốTiền:float
#kháchHàng:KháchHàng
#sốDư:float
#ngHàngDB:NgânHàngDB
+gánThôngTinGiaoDịch()
NgânHàngDB +gửiTiền()
+rútTiền()
#cậpNhậtTàiKhoản()
+đọcKháchHàng() #tạoGiaoTác()
+đọcTàiKhoản()
GiaoDịchRút GiaoDịchGởi
+cậpNhậtTàiKhoản()
+cậpNhậtGiáoTác()
Bước 3: Xác định lớp tầng truy cập dữ liệu
 Thiết kế các phương thức của lớp NgânHàngDB
Bước 3: Xác định lớp tầng truy cập dữ liệu
46  Thiết kế các phương thức của lớp NgânHàngDB
Bước 3: Xác định lớp tầng truy cập dữ liệu

47  Thiết kế các phương thức của lớp NgânHàngDB


Bước 3: Xác định lớp tầng truy cập dữ liệu
48
 Thiết kế các phương thức của lớp NgânHàngDB
Bước 3: Xác định lớp tầng truy cập dữ liệu
49
 Thiết kế các phương thức của lớp NgânHàngDB
Bước 3: Xác định lớp tầng truy cập dữ liệu

50  Thiết kế các phương thức của lớp NgânHàngDB


NgânHàngDB::+câpNhậtGiaoDịch()
Bước 3: Xác định lớp tầng truy cập dữ liệu

51
 Thiết kế các phương thức của lớp NgânHàngDB
Nội dung
52

 Thiết kế kiến trúc hệ thống


 Ý tưởng theo thiết kế kiến trúc 3 lớp
 Thiết kế các lớp tầng nghiệp vụ
 Thiết kế các lớp tầng truy cập dữ liệu
 Thiết kế các lớp tầng giao diện
 Mô tả hiện thực hoá nội dung thiết kế use case
Thiết kế lớp tầng giao diện
53

 Tiến trình thiết kế giao diện


1) Xác định lớp ở tầng giao diện: xác định các lớp tương tác với
tác nhân con người thông qua phân tích hoạt động UC
a) Xây dựng sơ đồ lớp mô tả các đối tượng giao diện của hệ
thống: thường mỗi giao diện xác định tạo một lớp tương
ứng
b) Tạo mẫu giao diện (prototype)
c) Xác định thuộc tính cho giao diện: là các điều khiển (control)
nhập/xuất quan trọng của màn hình
d) Xác định hành vi/phương thức cho các lớp giao diện
2) Thử nghiệm giao diện
3) Tinh chế và lặp lại các bước trên
Thiết kế lớp tầng giao diện
54
 Xác định các lớp ở tầng giao diện:
Thiết kế lớp tầng giao diện
 Xác định các lớp ở tầng giao diện:
55
Thiết kế lớp tầng giao diện
56
 Xác định các lớp tầng giao diện:
 Xác định sự liên kết giữa các đối tượng giao diện
Thiết kế lớp tầng giao diện
57
 Tạo giao diện mẫu
 Tạo các đối tượng giao diện (như là các button, các
vùng nhập liệu,…)
 Liên kết và gán các hành vi hoặc hành động thích hợp
tới các đối tượng giao diện này và các sự kiện của nó
 Sử dụng một công cụ thiết kế giao diện cụ thể.

 Lưu ý: tuân thủ các nguyên tắc thiết kế giao diện


Thiết kế tầng giao diện hệ thống ATM
Thiết kế tầng giao diện hệ thống ATM
59

 Xác định các lớp đối tượng giao diện điều khiển: toolbar,
menu, form điều khiển,…
 Ví dụ: MáyATM_GD Đối tượng giao diện điều khiển chính hoạt động
giao diện của máy ATM

 Xác định liên kết tới các lớp giao diện đang tồn tại
MáyATM_GD
Liên kết gọi giao diện
thực hiện Truy vấn
Liên kết gọi giao diện
thông tin tài khoản
thực hiện Rút tiền, Gửi
tiền
GiaoDịchGD TàiKhoảnGD
Thiết kế tầng giao diện hệ thống ATM
60

 Thiết kế mẫu giao diện:


 KháchHàngGD
Thiết kế tầng giao diện hệ thống ATM
61

 Thiết kế mẫu giao diện:


 MáyATM_GD
Thiết kế tầng giao diện hệ thống ATM
62

 Xác định phương thức/hành vi của các lớp giao diện


 Bằng cách xác định các sự kiện của hệ thống phải đáp ứng
tương ứng tới các thao tác người dùng trên giao diện và các
hành động khi sự kiện xảy ra
 Sự kiện hành động hệ thống phải đáp ứng
 Thường là: hàm khởi tạo giao diện, hàm xử lý sự kiện tương
ứng, hoặc một số hàm cần thiết kiểm tra dữ liệu,….
Thiết kế tầng giao diện hệ thống ATM

 Xác định phương thức


 Use case Đăng nhập

Sự kiện Hành động


Đưa thẻ vào máy hiển thị giao diện đăng nhập (KháchHàngGD)

Khách hàng chọn đồng ý -kiểm tra mật khẩu (KháchHàng)


-hiển thị giao diện điều khiển chính (MáyATM_GD)
-thông báo nếu đăng nhập không thành công (KháchHàngGD)
-đóng giao diện đăng nhập (KháchHàngGD)

Khách hàng chọn huỷ bỏ đóng giao diện đăng nhập (KháchHàngGD)

KháchHàngGD::+hiểnThị() KháchHàngGD::-
thôngBáo(thôngBáo:String)
KháchHàngGD::+đóng()
MáyATM_GD::+hiểnThị()
Thiết kế tầng giao diện hệ thống ATM

: KháchHàngGD : KháchHàng : NgânHàngDB : MáyATM_GD


: KháchHàng
 Xác định phương thức Đưa thẻ vào
hiểnThị()
 Use case Đăng nhập –
sơ đồ tuần tự Chọn đồng ý
kiểmTraMậtKhẩu()
Xử lý của use case
vKháchHàng = lấy_KháchHàng()
Đăng nhập không hợp
lệ
đọcKháchHàng()

Kết quả kiểm tra

thôngBáo()
Mật khẩu không hợp lệ

hiểnThị()
đóng()

Chọn huỷ bỏ
đóng()

64
66
Nội dung
67

 Thiết kế kiến trúc hệ thống


 Ý tưởng theo thiết kế kiến trúc 3 lớp
 Thiết kế các lớp tầng nghiệp vụ
 Thiết kế các lớp tầng truy cập dữ liệu
 Thiết kế các lớp tầng giao diện
 Mô tả hiện thực hoá nội dung thiết kế use case
Mô tả hiện thực hoá Use case
68

Use case <<realize>>


Use case cộng tác

 Các sơ đồ hiện thực hoá use case


 Sơ đồ lớp

 Sơ đồ tuần tự

 Sơ đồ hợp tác
Mô tả hiện thực hoá Use case
69

 Ví dụ:
Mô tả hiện thực hoá Use case
70

 Mô tả hiện thực hoá use case “Truy vấn thông tin tài khoản”
 Sơ đồ lớp
Mô tả hiện thực hoá Use case
71
 Mô tả hiện thực hoá use case “Truy vấn thông tin tài khoản”
 Sơ tuần tự
Mô tả hiện thực hoá Use case
 Mô tả hiện thực hoá use case “Truy vấn thông tin tài khoản”
 Sơ hợp tác

You might also like