Bé m«n C«ng nghÖ phÇn mÒm- Khoa CNTT- §HCN
Email:
K ngh phn mm
Software Engeneering
B môn Công ngh phn mm – HCN
2
NguynVnV
Ni dung
Bài 6: Các hot đng thit k
̈ ThiÕt kÕ kiÕn tróc
̈ ThiÕt kÕ giao diÖn
B môn Công ngh phn mm – HCN
3
NguynVnV
TÀI LiU THAM KHO
1. Nguyn Vn V, Nguyn Vit Hà. Giáo trình k ngh phn
mm. Nhà xut bn i hc Quc gia Hà ni, 2008
2. Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified
Modeling language User Guid. Addison-Wesley, 1998.
3. M. Ould. Managing Software Quality and Business Risk, John
Wiley and Sons, 1999.
4. Roger S.Pressman, Software Engineering, a Practitioner’s
Approach. Fifth Edition, McGraw Hill, 2001.
5. Ian Sommerville, Software Engineering. Sixth Edition, Addison-
Wasley, 2001.
6. Nguyn Vn V. Phân tích thit k h thng thông tin hin đi.
Hng cu trúc và hng đi tng, NXB Thng kê, 2002, Hà
Ni.
B mụn Cụng ngh phn mm HCN
4
NguynVnV
Thiết kế kiến trúc phần mềm
software achitecture design
Khái niệm kiến trúc
Kiến trúc phần mềm chỉ cấu trúc tổng thể của 1 phần mềm
và cách thừc t chc
qua đó cho ta 1 sự tích hợp về mặt khái
niệm của 1 hệ thống [SHA95a]
Thông thờng: thể hiện bằng một biểu đồ phân cấp của các
thnh phần v quan hệ giữa chúng
Đầy đủ: thể hiện cầu trúc hệ thống theo nhiều góc nhìn khác
nhau: tĩnh, động, dữ liệu, triển khai
[SHA95a] Shaw,M and D.Garlan, Formulation and formalisms in software achitecture,
volume 100-lecture Notes in computer Science, Springer-verlag,1995
B mụn Cụng ngh phn mm HCN
5
NguynVnV
Vai trò kiến trúc phần mềm
giúp kĩ s hệ thống:
Phân tích tính hiệu quả của thiết kế đáp ứng đợc yêu
cầu của phần mềm
Tìm các giải pháp thay thế cấu trúc ở giai đoạn sớm
Giảm các rủi ro liên quan tới cấu trúc
Không phải l mô hình hoạt động
l mô hình phân hoạch theo nhng cách nhìn khác
nhau
(chức năng, dữ liệu, tiến trình, tĩnh hay động )
B mụn Cụng ngh phn mm HCN
6
NguynVnV
Khái niệm thiết kế kiến trúc
ạ Quá trình xác định các hệ con lập thành hệ
thống và khung làm việc để điều khiển & giao tiếp
giữa các hệ con với nhau
ạ Bắt đầu sớm ngay từ giai đoạn đầu của thiết kế hệ
thống, tiến hnh cùng với một số hoạt động đặc tả
ạ Nó bao gồm việc xác các thnh phần chính của hệ
thống sự truyền thống giữa chúng
B mụn Cụng ngh phn mm HCN
7
NguynVnV
Các bớc thiết kế kiến trúc
1. Cấu trúc hóa hệ thống: phân chia hệ thống thnh các
hệ con (sub-system) độc lập v xác định trao đổi thông
tin giữa các hệ con xác nh các giao diện của chúng
2. Mô hinh hóa điều khiển: xác lập mô hinh điều khiển
giữa các phần khá nhau của hệ thống đã đợc xác định
3. Phân rã thnh các module: phân rã các hệ con thnh
các module.
ơ Hệ con: phần hệ thống hoạt động độc lập với các dịch
vụ m các hệ con khác cung cấp
ơ Môdun: phần hệ thống cung cấp dịch vụ v tơng tác
cùng phần khác để tạo ra dịch vụ hay sản phẩm
B mụn Cụng ngh phn mm HCN
8
NguynVnV
Các mô hình kiến trúc
Các mô hình kiến trúc khác nhau đợc tạo ra trong
quá trình thiết kế
Mỗi mô hình biểu diễn một cách nhìn của kiến trúc
Mô hình kiến trúc tĩnh chỉ ra các thnh phần chính của
hệ thống (biểu đồ phân rã)
Mô hình động chỉ ra cấu trúc tiến trình của hệ thống
(biểu đồ luồng dữ liệu)
Mô hình giao diện xác định hệ thống giao diện của hệ
thống (hệ thống giao diện tơng tác)
Mô hình mối quan hệ nh mô hình kháI niệm thực thể
miền dữ liệu của hệ thống
B mụn Cụng ngh phn mm HCN
9
NguynVnV
Một số mô hình kiến trúc
1.Kiến trúc dữ liệu tập trung (Data-centered architectures)
2.Kiến trúc khách/dịch vụ (Client-server architectures)
3.Kiên trúc phân tầng (Layered architectures)
4.Kiến trúc gọi v trả lại (Call and return architectures)
5.Kiến trúc luồng dữ liệu (Data flow architectures)
6.Kiến trúc hớng đối tợng (Object-oriented architectures)
B môn Công ngh phn mm – HCN
10
NguynVnV
Kho d÷ liÖu
(repository)
PhÇn mÒm
kh¸ch
PhÇn mÒm
kh¸ch
PhÇn mÒm
kh¸ch
PhÇn mÒm
kh¸ch
PhÇn mÒm
kh¸ch
PhÇn mÒm
kh¸ch
PhÇn mÒm
kh¸ch
PhÇn mÒm
kh¸ch
KiÕn tróc d÷ liÖu tËp trung
B mụn Cụng ngh phn mm HCN
11
NguynVnV
Kiến trúc của bộ công cụ CASE
Bộ tạo sinh
báo cáo
Bộ phân
tích thiết kê
Bộ biên tập
chơng trình
Bộ dịch
thiết kế
Bộ tạo sinh
mã
Bộ biên tập
thiết kế
Kho dữ liệu của dự án
(prọject repository)
B mụn Cụng ngh phn mm HCN
12
NguynVnV
Kiến trúc dữ liệu trung tâm(t)
Ưu điểm
Tiện lợi cho chia sẻ dữ liệu lớn
Phân hệ không cần biết dữ liệu đợc quản lý v
tạo ra nh thế no (sao lu, bảo mật, )
Nhợc điểm
Các hệ con phải theo mô hình dữ liệu của kho
Việc tiến hoá dữ liệu l khó khăn v đắt đỏ
Khó có chính sách quản lý riêng cho các hệ con
Khó phân bố dữ liệu một cách hiệu quả
B môn Công ngh phn mm – HCN
13
NguynVnV
KiÕn tróc client-server
M¹ng b¨ng th«ng réng
M¸y kh¸ch 1
web HTML¶nh sèDanh môc fim
M¸y kh¸ch 2
M¸y kh¸ch 3
M¸y kh¸ch 4
server server server server
B mụn Cụng ngh phn mm HCN
14
NguynVnV
Kiến trúc client-server (t)
Ưu điểm
Phân phối dữ liệu trực tiếp
Sử dụng hiệu quả mạng, dùng thiết bị rẻ hơn
Dễ dng mở rộng, thêm dịch vụ
Nhợc điểm
Các hệ con dùng cấu trúc dữ liệu khác nhau không
chia sẻ đợc, trao đổi dữ liệu có thể không hiệu quả
Quản lý ở mỗi server l d thừa
Không lu giữ chung tên v dịch vụ -> khó tìm server
hay dịch vụ rỗi
Đang l mô hình phát triển ứng dụng phổ biến
B môn Công ngh phn mm – HCN
15
NguynVnV
KiÕn tróc ph©n tÇng
Layered Architecture
tÇng lâi
tÇng tiÖn Ých
C¸c thμnh phÇn
tÇng øng dông
tÇng giao diÖn
ng−êi dung
M« h×nh m¸y trõu t−îng
B mụn Cụng ngh phn mm HCN
16
NguynVnV
Kiến trúc phân tầng (t)
Dùng để mô hinh hóa giao diện của các phân hệ
(sub-systems)
Phân rã hệ thống thnh các tầng, mỗi tầng l một
tập các dịch vụ
Hỗ trợ sự phát triển tăng trởng của các tầng, khi
giao diện mỗi tầng thay đổi thi chỉ ảnh hởng tới các
tầng liền kề
Không phải hệ thống no cũng dễ dng phân chia
theo mô hinh ny
B môn Công ngh phn mm – HCN
17
NguynVnV
KiÕn tróc ph©n tÇng tham kh¶o OSI
Phng tin giao tip
tng vt lý
tng liên kt d liu
tng mng
tng giao vn
tng phiên
tng trình din
tng ng dng
tng vt lý
tng liên kt d liu
Tng mng
tng vt lý
tng liên kt d liu
tng mng
tng giao vn
tng phiên
tng trình din
tng ng dng
Hình 3.15 Kin trúc ca mô hình tham chiu OSI
B môn Công ngh phn mm – HCN
18
NguynVnV
KiÕn tróc gäi & tr¶ l¹i
Call and Return Architecture
s« m« ®un ra
s« m«
®un vμo
®é réng
®é s©u
B mụn Cụng ngh phn mm HCN
19
NguynVnV
Hệ thống xử lý đơn hng
đọc đơn
hàng
Kiểm tra
thanh toán
Lập hoá
đơn
Tìm tàI
khoản TT
Hoá đơn
Lập giấy
nhắc t.toán
Giấy nhắc
Đơn hàng Phiếu thanh
toán
Kiến trúc luồng dữ liệu
Data Flow Architecture
B môn Công ngh phn mm – HCN
20
NguynVnV
KiÕn tróc h−íng ®èi t−îng
Object-oriented architecture
issue ()
sendReminder ()
acceptPayment ()
sendReceipt ()
invoice#
date
amount
customer
Invoice
invoice#
date
amount
customer#
Receipt
invoice#
date
amount
customer#
Payment
customer#
name
address
credit period
Customer
HÖ thèng xö lý ®¬n hμng
B môn Công ngh phn mm – HCN
21
NguynVnV
X©y dùng kiÕn tróc ch−¬ng tr×nh
KiÕn tr
KiÕn tr
ó
ó
c ch
c ch
−
−
êng tr
êng tr
×
×
nh
nh
Bi
Bi
Ó
Ó
u
u
®å
®å
lu
lu
å
å
ng d
ng d
÷
÷
li
li
Ö
Ö
u
u
B môn Công ngh phn mm – HCN
22
NguynVnV
Ph©n ho¹ch kiÕn tróc
̈ CÇn ph©n ho¹ch kiÕn tróc theo chiÒu:
ngang vμ däc
B mụn Cụng ngh phn mm HCN
23
NguynVnV
Phân hoạch kiến trúc dọc
Xác định các nhánh rẽ riêng cho các chức năng
chủ chốt
Sử dụng các module điều khiển để điều phối thông
tin giữa các chức năng
Ch
Ch
ứ
ứ
c n
c n
ă
ă
ng1
ng1
Ch
Ch
ứ
ứ
c n
c n
ă
ă
ng
ng
3
3
Ch
Ch
ứ
ứ
c n
c n
ă
ă
ng
ng
2
2
B mụn Cụng ngh phn mm HCN
24
NguynVnV
Phân hoạch kiến trúc ngang
phân tầng các module thnh từng mức: ra quyết định
(điều khiển) v module thao tác
các module ra quyết định cần đợc xếp ở tầng cao
workers
workers
decision
decision
-
-
makers
makers
B môn Công ngh phn mm – HCN
25
NguynVnV
T¹i sao cÇn ph©n ho¹ch kiÕn tróc
̈ T¹o ra phÇn mÒm
̈ dÔ kiÓm thö
̈ dÔ b¶o tr×
̈ h¹n chÕ hiÖu øng phô khi söa ®æi
̈ dÔ më réng