Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
1,04 MB
Nội dung
Công nghệ phần mềm Thiết kế kiến trúc Nội dung • Định nghĩa kiến trúc phần số khái niệm • Thiết kế kiến trúc • Một số kiểu kiến trúc Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Nội dung • Định nghĩa kiến trúc phần mềm Một số khái niệm • Thiết kế kiến trúc • Một số kiểu kiến trúc Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Định nghĩa KTPM • Có nhiều trường phái • Richard N Taylor đồng nghiệp – “A software system’s architecture is the set of principal design decisions about the system” – Kiến trúc phần mềm thiết kế cho việc xây dựng tiến hóa phần mềm – Các định thiết kế bao gồm nhiều khía cạnh hệ thống phát triển • • • • Cấu trúc Hành vi Tương tác Thuộc tính chất lượng Bộ mơn Cơng nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Định nghĩa KTPM • Len Bass đồng nghiệp “The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both” • Những định nghĩa khác: http://www.sei.cmu.edu/architecture/definitions.ht ml • Chúng ta sử dụng định nghĩa Len Bass đồng nghiệp Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Sự quan trọng KTPM • Hỗ trợ cho giao tiếp bên liên quan (stakeholders) • Xác định ràng buộc cho việc thực hóa • Dự đốn chất lượng hệ thống • Nâng cao độ xác việc dự đốn chi phí thời gian xây dựng hệ thống Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Một số khái niệm • Cấu trúc (structure): tập phần tử (element) cách tổ chức • loại cấu trúc – Cấu trúc mơ đun (module structures) – Cấu trúc thành phần – kết nối (component-andconnector structures) – Cấu trúc phân phối (allocation structures) • Mỗi loại cấu trúc thể khía cạnh khác hệ thống • Liên quan đến Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Một số khái niệm • Mẫu kiến trúc (architectural patterns): kiến trúc sử dụng để giải một/vài vấn đề xây dựng hệ thống sử dụng nhiều hệ thống • Ví dụ: phân lớp (layered pattern), chia sẻ liệu (shared-data), khách-chủ (client-server) Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Một số khái niệm • Thuộc tính chất lượng – Tính linh hoạt: Chúng ta thay đổi thành phần X khơng? – Tính khả chuyển: Chúng ta triển khai máy khác khơng? – Tính sử dụng lại: Chúng ta sử dụng lại phần hay tồn cho ứng dụng khác khơng? Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Kiến trúc thuộc tính chất lượng • Để có hiệu cao – Phân rã thành tiến trình chạy song song – Quản lý lượng tần suất liệu truyền nhận tiến trình – Xác định “nút cổ chai” hiệu hệ thống • Để có an ninh tốt – Phân chia chức cần không cần login – Cấu trúc phần mềm thành nhiều tầng Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 10 Xác định vấn đề • Thuộc tính chất lượng: performance, extensibility,… • Khía cạnh quan tâm chung: authentication, authorization, caching, exception handling,… Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 23 Xác định vấn đề Bộ mơn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 24 Giải pháp dự kiến • Là thiết kế kiến trúc mức cao • Bao gồm kiểu ứng dụng, kiến trúc triển khai, kiểu kiến trúc, cơng nghệ lựa chọn, thuộc tính chất lượng, khía cạnh khác • Kiểm tra u cầu, ràng buộc Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 25 Nội dung • • • • Định nghĩa kiến trúc phần mềm Một số khái niệm Thiết kế kiến trúc Một số kiểu kiến trúc Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 26 Kiểu Khách/Chủ • Cho hệ thống phân tán với hai thành phần riêng biệt Khách (client) Chủ (server) • Cấu hình 1-1, 1-n, n-1 • Trước đây, Client thường ứng dụng chạy desktop; có thêm Web browser ứng dụng di động Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 27 Kiểu Khách/Chủ • Một số biến thể – Client-Queue-Client: cho phép clients giao tiếp thơng qua hàng đợi Server đóng vai trị hàng đợi để chứa liệu Còn gọi kiến trúc hàng đợi bị động – Peer-to-Peer: Client server đổi vai trò cho – Application server: dạng khách/chủ đặc biệt với phía chủ chứa ứng dụng dịch vụ cho ứng dụng khách dạng Web dạng khác Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 28 Kiểu phân lớp • Nhóm chức có liên quan chặt chẽ vào chung lớp • Các lớp xếp chồng lên • Chỉ lớp sử dụng chức lớp Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 29 Kiểu ống dẫn lọc • Pipe and Filter • Thể tương tác thời gian chạy • Dữ liệu truyền qua ống dẫn để đến xử lý lọc Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 30 Kiểu thành phần • Hệ thống chia thành thành phần độc lập, tương tác với thông qua giao diện • Các thành phần thực thi phân tán Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 31 Kiểu bus thông điệp Tương tác thành phần hệ thống thực cách truyền thông điệp bus chung ESB Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 32 Kiểu hướng dịch vụ • Chức ứng dụng cung cấp dạng dịch vụ • Các ứng dụng xây dựng dựa dịch vụ (sử dụng dịch vụ có trước) • Các dịch vụ có kết nối mềm dẻo, giao diện chuẩn hóa, xuất (pubished), tìm kiếm (discovered), gọi (invoked) Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 33 Kiểu hướng dịch vụ Service Registry find publish Service Provider bind Service Client Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 34 Tổng kết • • • • Định nghĩa kiến trúc phần mềm Một số khái niệm Thiết kế kiến trúc Một số kiểu kiến trúc Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 35 Hỏi - Đáp Tài liệu tham khảo • Len Bass et al., Software architecture in practice, 3rd Edition • Microsoft, Microsoft Application Architecture Guide, 2nd Edition Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 37