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
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:
- 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.pdf