Bài giảng Công nghệ phần mềm nâng cao - Phạm Ngọc Hùng - Thiết kế kiến trúc

Nội dung chính

z Khái niệm vềkiến trúc phần mềm

z Các quyết định khi thiết kếkiến trúc

z Các mô hình kiến trúc

z Mô tảkiến trúc

z Đánh giá kiến trúc

pdf32 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 1857 | Lượt tải: 2download
Tóm tắt nội dung Bài giảng Công nghệ phần mềm nâng cao - Phạm Ngọc Hùng - Thiết kế kiến trúc, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Thiết kế kiến trúc
Nội dung chính
z Khái niệm về kiến trúc phần mềm
z Các quyết định khi thiết kế kiến trúc
z Các mô hình kiến trúc
z Mô tả kiến trúc
z Đánh giá kiến trúc
2
Tài liệu tham khảo
z Ian Sommerville, Software Engineering, 
chương 11
3
Kiến trúc phần mềm
z Kiến trúc phần mềm là các cấu trúc của 
hệ thống được tạo nên bởi
− Các thành phần
− Các thuộc tính của từng thành phần có thể
thấy từ bên ngoài
− Mối quan hệ giữa các thành phần
4
Kiến trúc phần mềm
z Kiến trúc phần mềm hỗ trợ
− Phân tích khả năng đáp ứng yêu cầu của 
hệ thống
− Nghiên cứu các giải pháp thay thế
− Giảm rủi ro của việc phát triển phần mềm
− Sử dụng lại
5
Các quyết định khi thiết kế
z Có kiến trúc mẫu nào không? (của một ứng 
dụng đang được sử dụng nào đó)
z Làm thế nào để tổ chức ứng dụng? (nghĩa là
chia ứng dụng thành các phân hệ)
z Tương tác giữa các phân hệ như thế nào?
z Phân rã các phân hệ như thế nào?
z Những tài liệu mô tả kiến trúc? 
z Làm thế nào để đánh giá?
6
Quy trình thiết kế kiến trúc
z Tổ chức hệ thống
− Chia hệ thống thành các phân hệ và xác 
định phương thức liên kết các phân hệ
z Mô hình điều khiển
− Xác định cách điều khiển giữa các phân hệ
z Phân rã phân hệ
− Chia nhỏ mỗi phân hệ thành các môdun
7
Các mô hình kiến trúc 
z Tổ chức hệ thống
− Dữ liệu tập trung
− Client – Server
− Phân tầng
z Điều khiển tương tác giữa các phân hệ
− Điều khiển tập trung
− Điều khiển dựa trên sự kiện
z Phân rã phân hệ
− Hướng đối tượng
− Hướng chức năng
8
Mô hình dữ liệu tập trung
9
Data store
(repository or black 
board)
Client 
software
Client 
software
Client 
software
Client 
software
Client 
software
Client 
software
Mô hình dữ liệu tập trung
10
Kiến trúc của một bộ CASE tích hợp
Design 
translator
Project 
repository
Design 
editor
Code 
generator
Program
editor
Design 
analyser
Report
generator
Mô hình dữ liệu tập trung
z Ưu điểm
− Tiện lợi cho chia sẻ dữ liệu lớn
− Sự độc lập giữa các phân hệ
z Nhược điểm
− Khó thay đổi cấu trúc dữ liệu
11
Mô hình Client-Server
12
NetworkClient Server
Client 
Client 
Broadband Network
Client Client Client Client
Catalogue 
Server
Film
Server
Picture 
Server
Web
Server
Mô hình Client-Server
13
Kiến trúc của một thư viện phim và hình ảnh
Mô hình Client - Server
z Ưu điểm
− Hiệu quả sử dụng cao
− Dễ dàng mở rộng thêm dịch vụ
− Dễ dàng nâng cấp
z Nhược điểm
− Số lượng client có thể tăng giảm mà phía 
server không biết
− Server bị hỏng
14
Mô hình phân tầng
15
User interface 
layer
Application layer
Utility layer
Core layer
components
Mô hình phân tầng
16
Truy xuất cơ sở dữ liệu
Kế toán
Giao diện người dùng
Kiến trúc của ứng dụng doanh nghiệp
Khách hàng Nhân sự
Mô hình phân tầng
z Ưu điểm
− Hỗ trợ phát triển tăng dần
− Dễ thay đổi
z Thay đổi tầng
z Thêm tầng
z Nhược điểm
− Vấn đề về hiệu năng
− Khó thiết kế theo đúng mô hình này
17
Các mô hình kiến trúc 
z Tổ chức hệ thống
− Dữ liệu tập trung
− Client – Server
− Phân tầng
z Điều khiển tương tác giữa các phân hệ
− Điều khiển tập trung
− Điều khiển dựa trên sự kiện
z Phân rã phân hệ
− Hướng đối tượng
− Hướng chức năng
18
Các mô hình điều khiển tập trung
z Một phân hệ chịu trách nhiệm gọi thực 
thi các phân hệ khác
z Chia làm hai loại
− Mô hình gọi-trả lại
− Mô hình quản lý
19
Mô hình gọi-trả lại
20
Main 
program
Routine 1 Routine 2 Routine 3
Routine 1.1 Routine 1.2 Routine 3.1 Routine 3.2
Mô hình quản lý
21
Sensor 
processes
Actuator 
processes
Computation 
processes User interface Fault handler
System 
controller
Mô hình điều khiển dựa trên sự kiện
z Quá trình hoạt động dựa vào các sự
kiện tạo ra bởi các yếu tố bên ngoài
z Chia làm 2 loại
− Mô hình điều khiển quảng bá
− Mô hình điều khiển ngắt
22
Mô hình điều khiển quảng bá
23
Trình xử lý sự kiện và thông điệp
Sub-system
1
Sub-system
2
Sub-system
3
Mô hình điều khiển ngắt
24
Các mô hình kiến trúc 
z Tổ chức hệ thống
− Dữ liệu tập trung
− Client – Server
− Phân tầng
z Điều khiển tương tác giữa các phân hệ
− Điều khiển tập trung
− Điều khiển dựa trên sự kiện
z Phân rã phân hệ
− Hướng đối tượng
− Hướng chức năng
25
Mô hình hướng đối tượng
26
Mô hình hướng đối tượng
z Ưu điểm
− Các đối tượng độc lập với nhau, dễ thay đổi
− Thể hiện được thế giới thực
− Ngôn ngữ và công cụ hướng đối tượng đa 
dạng
z Nhược điểm
− Khó thể hiện đối tượng phức tạp
27
Mô hình luồng dữ liệu
28
Read issued 
invoices
Invoices Payments
Receipts
Reminders
Identify 
payments
Issue payment 
reminder
Find 
payments due
Issue receipts
Mô hình luồng dữ liệu
z Ưu điểm
− Dễ hiểu
− Các cụm xử lý có thể được sử dụng lại
− Dễ thấy được phần xử lý tuần tự hay song 
song
z Nhược điểm
− Định dạng dữ liệu chung
29
Mô tả kiến trúc được thiết kế
z Một kiến trúc có thể được biểu diễn bởi 
các mô hình đồ họa
− Cấu trúc tĩnh
− Cấu trúc động
− Giao diện
− Quan hệ
− Phân bố
30
Đánh giá kiến trúc
z Phương pháp phân tích các trade-off
− Dựa trên các kịch bản
− Phân tích các thuộc tính như: độ ổn định, 
hiệu năng, bảo mật,…
z Phương pháp lượng hóa độ phức tạp 
của kiến trúc dựa trên các phụ thuộc
− Phụ thuộc chia sẻ
− Phụ thuộc dòng
− Phụ thuộc ràng buộc
31
Tóm tắt
z Khái niệm kiến trúc phần mềm
z Các quyết định cần đưa ra khi thiết kế kiến 
trúc
z Một số kiểu kiến trúc
− Dùng để tổ chức hệ thống
− Phân rã phân hệ
− Điều khiển tương tác
z Mô tả kiến trúc
z Các phương pháp đánh giá kiến trúc
32

File đính kèm:

  • pdfBài giảng Công nghệ phần mềm nâng cao - Phạm Ngọc Hùng - Thiết kế kiến trúc.pdf