Bài giảng Phân tích thiết kế hệ thống thông tin: Bài 10 Thiết kế kiến trúc cung cấp cho người học những kiến thức như: Xác định cơ chế thiết kế (Mechanisms); Kiến trúc thực thi (Runtime Architecture). Mời các bạn cùng tham khảo!
PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƠNG TIN Bài 10 Thiết kế kiến trúc Giáo viên: TS Trần Mạnh Tuấn Bộ môn: Hệ thống thông tin Khoa: Công nghệ thông tin Email: tmtuan@tlu.edu.vn Điện thoai: 0983.668.841 Nội dung Xác định chế thiết kế (Mechanisms) Patterns & Frameworks Xác định chế phân tích thiết kế Kiến trúc thực thi (Runtime Architecture) Xác định mục tiêu hoạt động mô tả kiến trúc thực thi vị trí vịng đời phát triển phần mềm Mô tả làm để mơ hình hóa processes threads Giải thích mơ hình hóa lớp hệ thống ánh xác với processes threads Xác định xem xét lập luận hỗ trợ cho định mang tính kiến trúc Tổng quan Xác định chế thiết kế Supplementary Specifications Software Architecture Document Identify Design Mechanisms Analysis Class Design Model Patterns Frameworks Pattern Mẫu (pattern) khái niệm dùng để hệ thống hóa kiến thức chuyên biệt dựa kinh nghiệm Các mẫu cung cấp minh họa làm đẻ đưa mơ hình tốt giải vấn đề thực tế, mẫu bạn nghĩ hoạc sử dụng mẫu người khác Analysis/Design Pattern Cung cấp giải pháp phạm vi hẹp cho vấn đề kỹ thuật Cung cấp phần cho giải pháp tổng thể Framework Khung làm việc (Frameworks) khác với mẫu phân tích thiết kế độ lớn phạm vi Khung làm việc mô tả giải pháp khung cho vấn đề riêng biệt Chi tiết hồn thiện cách áp dụng mẫu phân tích thiết kế khác Design Pattern gì? Một mẫu thiết kế cung cấp sơ đồ tinh chỉnh hệ thống thành phần hệ thống phần mềm, quan hệ chúng No mô tả cấu trúc thường xuyên lặp lặp lại thành phần giao tiếp để giải vấn đề thiết kế chung ngữ cảnh cụ thể Cách sử dụng số mẫu Loại mẫu Ví dụ Command (mẫu hành vi điều khiển) Thực yêu cầu đến đối tượng mà thao tác yêu cầu kết nhận yêu cầu, ví dụ, phản ứng mục thực đơn, yêu cầu phục hồi, Abstract factory (Mẫu sinh tạo ) Tạo đối tượng giao diện người sử dụng (nút bấm, cuộn, cửa sổ ) độc lập với hệ điều hành dưới, ứng dụng dễ dàng chạy môi trường khác Proxy (Mẫu cấu trúc) Điều khiển đối tượng phân tán cho suốt vói đối tượng khách (remote proxy) Với đối tượng đồ họa kích cỡ lớn hay đối tượng thực thể ”đắt đỏ” thao tác khởi tạo, chế cho phép tải đối tượng thực cần thiết trình tải tiến hành cách tự động suốt (virtual proxy) Observer (Mẫu hành vi) Khi trạng thái đối tượng thay đổi, đối tượng liên quan thông báo Các đối tượng bị thay đổi độc lập với đối tượng quan sát Chú ý : Mẫu kiến trúc MVC mở rộng mẫu thiết kế Observer Phân loại Cơ chế phân tích Mục tiêu Làm mịn thông tin ban đầu xác định chế phân tích Các bước Xác định lớp khách chế phân tích Xác định đặc điểm thông tin chế phân tích Nhóm lớp khách theo việc sử dụng đặc điểm thông tin Các chế thiết kế cài đặt Cơ chế phân tích (Khái niệm) Cơ chế thiết kế (Cụ thể) Cơ chế cài đặt (Thực tế) Dữ liệu bền vững RDBMS (Dữ liệu tồn tại) JDBC Dữ liệu bền vững OODBMS (Dữ liệu mới) ObjectStore Sự phân tán Remote Method Invocation (RMI) Java 1.2 Kiến trúc thực thi – Runtime Architecture Xác định mục tiêu hoạt động mơ tả kiến trúc thực thi vị trí vịng đời phát triển phần mềm Mơ tả làm để mơ hình hóa processes threads Giải thích mơ hình hóa lớp hệ thống ánh xác với processes threads Xác định xem xét lập luận hỗ trợ cho định mang tính kiến trúc Kiến trúc thực thi – Runtime Architecture Supplementary Specifications Describe the Run-time Architecture Design Model 10 Software Architecture Document Kiến trúc thực thi – Runtime Architecture Đồng thời (concurrency) gì? Ví dụ đồng thời (concurrency): Parallel roads (đường hai – hai chiều) khơng địi hỏi nhiều phối hợp Two-way roads (đường hai chiều – xe ngược chiều) đỏi hỏi nhiều phối hợp Intersections (đường giao) đòi hỏi phối hợp thận trọng 12 Kiến trúc thực thi – Runtime Architecture Tại sạo cần quan tâm tới đồng thời (Concurrency)? Phần mềm cần phải trả lời kiện bên hệ thống theo cách ngẫu nhiên Bảo đảm kiện phản ứng khoảng thời gian tối thiểu cho phép Các tác vụ thực song song cải thiện hiệu có đa xử lý Ví dụ: Việc khởi động hệ thống Việc điều khiển hệ thống thực thông qua tương tranh (concurrency) 13 Kiến trúc thực thi – Runtime Architecture Các chế tương tranh Để hỗ trợ việc tương tranh, hệ thống cần phải trang bị nhiều luồng điều khiển (threads of control) Các chế tương tranh phổ biến Đa xử lý (Multiprocessing) • Đa vị xử lý thực thi đồng thời (Multiple CPUs) Đa nhiệm (Multitasking) • Các hệ điều hành mô tương tranh vi xử lý việc chen lẫn thực thi tác vụ khác Giải pháp dự ứng dụng (Application-based solutions) • Các phần mềm ứng dụng chịu trách nhiệm đảo việc thực nhánh mã chương trình khác thời điểm thích hợp 14 Kiến trúc thực thi – Runtime Architecture Khái niệm – Luồng tiến trình Tiến trình (Process) Cung cập luồng điều khiển tải lớn Độc lập Có thể chia thành luồng Là khơng gian có địa có mơi trường thực đối tượng lớp hệ thốngcon hoạt động Mơi trường thực chia nhiều luồn điều khiển Luồng Cung cấp luồng điểu khiển tải nhẹ Hoạt động ngữ cảnh tiến trình chứa chúng phận tính tốn đọc lập chạy môi trường thực không gian địa định nghĩa tiến trình kèm 15 Kiến trúc thực thi – Runtime Architecture Khái niệm – Luồng tiến trình Sự khác tiến trình luồng khơng gian nhớ thực tiến trình thực khơng gian nhớ, đóng gói bảo vệ cấu trúc nội Một tiến trình xem mọt hệ thống nó, khởi tạo bở chương trình thực Một tiến trình chứa nhiều luồng Một luồng thực khơng gian nhớ chia sẻ với luồng khác 16 Kiến trúc thực thi – Runtime Architecture Xác định tiến trình luồng Với luồng điều khiển hệ thống tạo tiến trình luồng Phân tách luồng điều khiển cần để: • Sử dụng đa xử lý nút • Tăng khả tận dụng CPU • Phục vụ kiện liên quan tới thời gian • Ưu tiên hoạt động • Đạt mở rộng (phân chia tải) • Tách biệt mối quan tâm lịnh vực phần mềm • Tăng tính sẵn dùng phần mềm (system availability) • Hỗ trợ hệ thống 17 Kiến trúc thực thi – Runtime Architecture Mơ hình hóa tiến trình Các tiến trình mơ hình hóa sử dụng Lớp tích cực/active classes (class diagrams) đối tượng (Interaction Diagrams) Các thành phần/components (Component Diagrams) Các khuôn mẫu/kiểu mở rộng: hay Mối quan hệ tiến trình mơ hình theo cách khác ActiveClassName 18 ActiveClassName Component Name Kiến trúc thực thi – Runtime Architecture Mơ hình hóa tiến trình: lược đồ lớp CourseCache CourseCatalogSystemAccess dependency CourseRegistrationProcess StudentApplication 19 composition OfferingCache Kiến trúc thực thi – Runtime Architecture Mơ hình hóa tiến trình: Lược đồ thành phần OfferingCache CourseCatalog SystemAccess CourseCache CourseRegistration Process dependency StudentApplication 20 Kiến trúc thực thi – Runtime Architecture Tạo hủy Tiến trình Luồng Kiến trúc đơn tiến trình Việc tạo tiến trình xảy ứng dụng bắt đầu Việc hỷ tiến trình xảy ứng dụng kết thúc Kiến trúc đa xử lý Các tiến trình thường tạo từ tiến trình khởi tạo, tiến trình tạo ứng dụng bắt đầu Mỗi tiến trình cần hủy cách độc lập 21 Kiến trúc thực thi – Runtime Architecture Ví dụ: Tạo tiến trình luồng : MainStudentForm : RegisterForCoursesForm: RegistrationController: ICourseCatalogSystem : Student 1: Start 2: createThread 3: createThread 4: createThread 22 Kiến trúc thực thi – Runtime Architecture Phân phối phần tử mơ hình vào tiến trình Cấp phát phần từ thiết kế: Các thể lớp cho hệ thống cần phải thực thi bên tiến trình Chúng thực thi số tiến trình Student Application Process MainStudentForm 23 RegisterForCoursesForm Kiến trúc thực thi – Runtime Architecture Những cân nhắc Phần tử thiết kế - tới – Tiến trình Dựa vào: Các yêu cầu hiệu tương tranh Các yêu cầu phân tán hỗ trợ thực thi song song Các yêu cầu dư thừa tính sẵn dùng Những đặc điểm lớp/hệ thống cần xem xét: 24 Sự tự trị (Autonomy) Sự lệ thuộc (Subordination) Sự bền bỉ (Persistence) Sự phân tán (Distribution) Kiến trúc thực thi – Runtime Architecture Các chiến thuật Phần tử thiết kế - tới Tiến trình Sử dụng đồng thời Trong ngồi (Inside-Out) Nhóm phần tử có hoạt động cộng tác chặt chẽ cần thực thi luồng điều khiển Tách biệt phần tử khơng có tương tác với Lặp lại đạt số lượng tối thiểu tiến trình mà đảm bảo phân tán yêu cầu hiệu sử dụng tài nguyên Từ vào (Outside-In) Xác định luồng điều khiển tách biệt cho kích thích ngoại vi/bên ngồi Xác định luồng phục vụ (server thread) tách biệt cho dịch vụ Giảm số luồng tới mức hỗ trợ hệ thống 25 Trao đổi, câu hỏi? 26 ... mẫu phân tích thiết kế độ lớn phạm vi Khung làm việc mô tả giải pháp khung cho vấn đề riêng biệt Chi tiết hồn thiện cách áp dụng mẫu phân tích thiết kế khác Design Pattern gì? Một mẫu thiết kế. .. chế phân tích Các bước Xác định lớp khách chế phân tích Xác định đặc điểm thơng tin chế phân tích Nhóm lớp khách theo việc sử dụng đặc điểm thông tin Các chế thiết kế cài đặt Cơ chế phân. .. liên quan thông báo Các đối tượng bị thay đổi độc lập với đối tượng quan sát Chú ý : Mẫu kiến trúc MVC mở rộng mẫu thiết kế Observer Phân loại Cơ chế phân tích Mục tiêu Làm mịn thông tin