Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 61 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
61
Dung lượng
660,81 KB
Nội dung
Bé m«n C«ng nghÖ phÇn mÒm- Khoa CNTT- §HCN
Email: vynv@coltech.vnu.vn
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ầnmề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
[...]... Kho dữ liệu của dự án (prọject repository) Bộ dịch thiết kế B mụn Cụng ngh ph n m m Bộ biên tập ch ơng trình HCN Bộ tạo sinh mã Bộ tạo sinh báo cáo 11 Kiến trúc dữ liệu trung tâm(t) Nguy nV nV Ư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ế n o (sao l u, 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. .. chuyển dữ liệu đến nơi cần gọi l trung tâm giao dịch B mụn Cụng ngh ph n m m HCN 30 Ví dụ: kiến trúc luồng giao dịch Nguy nV nV e d b i J t f g h a K m Luồng giao dich ánh xạ luồng giao dịch x1 t b x3 x2 a d e f x4 g l K x3.1 h m i J B mụn Cụng ngh ph n m m HCN 31 Thiết kế giao diện Nguy nV nV Vai trò, tầm quan tr ng một khâu không thể thiếu trong thiết kế phầnmềm ng ời dùng đánh giá phần mềm qua... sao cần phân hoạch kiến trúc Nguy nV nV 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 B mụn Cụng ngh ph n m m HCN 25 Thiết kế cấu trúc ch ơng trình Nguy nV nV Mục tiêu: tạo ra module có kiến trúc tốt: đ ợc phân hoạch hợp lý, liên kết qua điều khiến Cách tiếp cận: chuyển đổi (mapping) DFD th nh kiến trúc phần mềm Ký pháp: biểu đồ có cấu trúc (structure chart)... diện Thiết kế giao diện: h ớng ng ời dùng che dấu chi tiết kỹ thuật bên trong kết hợp 3 măt: ng ời dùng, chức năng, công nghệ B mụn Cụng ngh ph n m m HCN 32 Vai trò, tầm quan trọng Nguy nV nV ạ L ph ơng tiện để ng ời dùng sử dụng hệ thống Giao diện thiết kế nghèo n n ng ời dùng dễ mắc lỗi Giao diện thiết kế tồi l lý do nhiều phần mềm không đ ợc sử dụng ạ Giao diện trợ giúp ng ời dùng l m việc... 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 l u 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 14 Kiến trúc phân tầng Layered Architecture Các th nh phần Nguy nV nV tầng giao diện ng ời dung tầng ứng... điều khiến Cách tiếp cận: chuyển đổi (mapping) DFD th nh kiến trúc phần mềm Ký pháp: biểu đồ có cấu trúc (structure chart) B mụn Cụng ngh ph n m m HCN 26 Đặc tính của luồng dữ liệu Nguy nV nV Luồng chuyển đổi 2 loại luồng dữ liệu tiêu biểu: Luồng chuyển đổi: xử lý tập trung Luồng giao dịch: định tuyến phân phối B mụn Cụng ngh ph n m m HCN Luồng giao dich 27 Kiên trúc luồng chuyển đổi Nguy nV nV... n m m HCN 17 Kiến trúc gọi & trả lại Call and Return Architecture Nguy nV nV sô mô đun ra độ sâu sô mô đun v o độ rộng B mụn Cụng ngh ph n m m HCN 18 Kiến trúc luồng dữ liệu Data Flow Architecture Lập hoá đơn Đơn hàng Hoá đơn Tìm tàI khoản TT đọc đơn hàng Lập giấy nhắc t.toán Nguy nV nV Kiểm tra thanh toán Giấy nhắc Phiếu thanh toán Hệ thống xử lý đơn h ng B mụn Cụng ngh ph n m m HCN 19 Kiến trúc... 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 12 Kiến trúc client-server Nguy nV nV Máy khách 1 Máy khách 2 Máy khách 3 Máy khách 4 Mạng băng thông rộng server server server server Danh mục fim ảnh số web HTML B mụn Cụng ngh ph n m m HCN 13 Kiến trúc client-server (t) Nguy nV nV Ư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... issue () sendReminder () acceptPayment () sendReceipt () invoice# date amount customer# Hệ thống xử lý đơn h ng B mụn Cụng ngh ph n m m HCN 20 Xây dựng kiến trúc ch ơng trình Nguy nV nV Biểu đồ luồng dữ liệu Kiến trúc ch ờng trình B mụn Cụng ngh ph n m m HCN 21 Phân hoạch kiến trúc Nguy nV nV Cần phân hoạch kiến trúc theo chiều: ngang v dọc B mụn Cụng ngh ph n m m HCN 22 Phân hoạch kiến trúc dọc Nguy... trung Chuyển chúng th nh các module kiến trúc t ơng ứng Thêm các module điều khiển nếu cần thiết Vi chỉnh (refining) kiến trúc để nâng cao tính module ơ Luồng chuyển đổi tập trung l luồng m có các dữ liệu đầu v o đ ợc tập trung xử lý ở một số tiến trình rồi cho kết quả đầu ra l các tiến trình thực hiện l u trữ, truyền đi hay biểu diễn thông tin B mụn Cụng ngh ph n m m HCN 28 Ví dụ: kiến trúc luồng . 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. 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