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

Bài 6 Các hoạt động thiết kế

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 (660.81 KB, 61 trang )

Bé m«n C«ng nghÖ phÇn mÒm- Khoa CNTT- §HCN
Email:
K ngh phn mm
Software Engeneering
B môn Công ngh phn mm – HCN
2
NguynVnV
Ni dung
Bài 6: Các hot đng thit k
̈ ThiÕt kÕ kiÕn tróc
̈ ThiÕt kÕ giao diÖn
B môn Công ngh phn mm – HCN
3
NguynVnV
TÀI LiU THAM KHO
1. Nguyn Vn V, Nguyn Vit Hà. Giáo trình k ngh phn
mm. Nhà xut bn i hc Quc gia Hà ni, 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. Nguyn Vn V. Phân tích thit k h thng thông tin hin đi.
Hng cu trúc và hng đi tng, NXB Thng kê, 2002, Hà
Ni.
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 phn mm – HCN
10
NguynVnV
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

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 phn mm – HCN
13
NguynVnV
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 phn mm – HCN
15
NguynVnV
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 phn mm – HCN
17
NguynVnV
KiÕn tróc ph©n tÇng tham kh¶o OSI
Phng tin giao tip
tng vt lý
tng liên kt d liu
tng mng
tng giao vn
tng phiên
tng trình din
tng ng dng
tng vt lý
tng liên kt d liu
Tng mng
tng vt lý
tng liên kt d liu
tng mng
tng giao vn
tng phiên
tng trình din
tng ng dng
Hình 3.15 Kin trúc ca mô hình tham chiu OSI
B môn Công ngh phn mm – HCN
18
NguynVnV
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 phn mm – HCN
20
NguynVnV
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 phn mm – HCN
21
NguynVnV
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 phn mm – HCN
22
NguynVnV
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 phn mm – HCN
25
NguynVnV
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

×