Bài giảng Nhập môn công nghệ phần mềm - Lương Trần Hy Hiến - Chủ đề 4: Thiết kế phần mềm (Phần 2)
•Kiến trúc phần mềm là gì?
–Phần mềm không đơn nhất
Có các thành phần con bên trong.
–Thắc mắc về các thành phần con:
•Được tổ chức, sắp xếp như thế nào?
•Mối liên hệ giữa chúng?
•Có cấu trúc ra sao?
Kiến trúc phần mềm.
COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 1 HIENLTH Chủ đề 4: Thiết kế Phần mềm (tt) COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 2 HIENLTH Kiến trúc phần mềm Ivan Sommerville, Software Engneering, Chapter 11 Heavily reference to Introduction SE Slides: Nguyen Minh Huy, HCMUS COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 3 HIENLTH Nội dung • Khái niệm kiến trúc • Các mô hình kiến trúc • Công nghệ phân tán COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 4 HIENLTH Khái niệm kiến trúc • Kiến trúc phần mềm là gì? – Phần mềm không đơn nhất Có các thành phần con bên trong. – Thắc mắc về các thành phần con: • Được tổ chức, sắp xếp như thế nào? • Mối liên hệ giữa chúng? • Có cấu trúc ra sao? Kiến trúc phần mềm. COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 5 HIENLTH 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 COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 6 HIENLTH Khái niệm kiến trúc (tt) • Tầm quan trọng của kiến trúc: – Ảnh hưởng của hiệu quả hoạt động: • Tính tốc độ (performance) • Tính thích ứng (scalability) • Tính bảo mật (security) • Tính chịu lỗi (fault—tolerance) – Ảnh hưởng về chi phí: • Khả năng triển khai • Khả năng vận hành • Khả năng bảo trì – Ảnh hưởng về thiết kế và cài đặt. COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 7 HIENLTH Khái niệm kiến trúc (tt) • Thiết kế kiến trúc: – Hoạt động đầu tiên của pha thiết kế – Xác định khung sườn phần mềm – Các bước thực hiện: • Phân rã hệ thống (sub-system) • Bố trí các thành phần • Thiết lập mối quan hệ COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 8 HIENLTH Khái niệm kiến trúc (tt) • Thiết kế kiến trúc: – Hoạt động đầu tiên của pha thiết kế – Xác định khung sườn phần mềm – Các bước thực hiện: • Phân rã hệ thống (sub-system) • Bố trí các thành phần • Thiết lập mối quan hệ COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 9 HIENLTH Các mô hình kiến trúc • Phân loại mô hình: – Mô hình đơn lập – Mô hình phân tán • Mô hình Client – Server • Mô hình 3 tầng • Mô hình Peer-To-Peer COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 10 HIENLTH Mô hình đơn lập • Là một thể thống nhất • Không có sự phân nhóm • Các thành phần tự do tương tác • Ưu điểm: – Dễ lập trình và triển khai – Tốc độ xử lý • Khuyết điểm: – Khó bảo trì, nâng cấp – Không chia sẽ dữ liệu COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 11 HIENLTH Mô hình Client – Server • Phân làm 2 phân hệ: – Server: • Cung cấp dịch vụ (dữ liệu, thư viện) • Chia sẽ, dung chung – Client: • Sử dụng dịch vụ (giao diện, thư viện) • Phân tán • Tương tác giữa các thành phần: – Trong phân hệ: tự do tương tác – Giữa hai phân hệ: tương tác 1 chiều từ client đến server COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 12 HIENLTH Mô hình Client – Server (tt) • Mô hình Thin-Client: – Server đảm trách dữ liệu + xử lý – Client chỉ lo phần giao diện người dung dump terminal • Mô hình Fat-Client: – Server đảm trách dữ liệu – Client lo toàn bộ giao diện + xử lý người dùng COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 13 HIENLTH Mô hình Client – Server (tt) • Ưu điểm: – Dữ liệu chia sẽ và đồng bộ. – Hạn chế tương tác Cô lập lỗi Dễ bảo trì, nâng cấp • Khuyết điểm: – Chi phí triển khai – Tốc độ xử lý COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 14 HIENLTH Mô hình 3 tầng (3-tier) • Phân làm 3 phân hệ: – Tầng dữ liệu (data layer) • Dịch vụ dữ liệu • Data center – Tầng xử lý (business layer) • Thư viện xử lý • Application server – Tầng giao diện (presentation layer) • Giao diện người dung • Thin-Client • Quy tắc tương tác thang máy không tương tác vượt tầng COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 15 HIENLTH Kiến trúc 3 tầng (cont) • Tầng giao diện Các thực thể phần mềm làm nhiệm vụ nhập liệu, trình bày, hiển thị, có thể bao gồm bước kiểm tra dữ liệu trước khi gọi Business Logic Layer. Tương tác với người sử dụng. Người dùng Tầng giao diện COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 16 HIENLTH Kiến trúc 3 tầng (cont) • Tầng nghiệp vụ Các thực thể phần mềm thực hiện các chức năng nghiệp vụ. Chứa các xử lý chính. Quản lý các Transaction, quản lý các current access. Người dùng Tầng giao diện Tầng nghiệp vụ COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 17 HIENLTH Kiến trúc 3 tầng (cont) • Tầng dữ liệu Các thực thể phần mềm làm nhiệm vụ lưu trữ dữ liệu. Tương tác với cơ sở dữ liệu (thêm, xóa, sửa, chọn). Người dùng Tầng giao diện Tầng nghiệp vụ Tầng dữ liệu Cơ sở dữ liệu COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 18 HIENLTH Mô hình 3 tầng (3-tier) (tt) • Mô hình đa tầng: – Mở rộng mô hình 3 tầng – Phần làm nhiều tầng xử lý – Thường dùng trong ứng dụng web • Ưu điểm: – Tương tự như mô hình client-server – Xử lý chia sẻ và được chia nhỏ • Khuyết điểm: – Tương tự như mô hình client-server COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 19 HIENLTH Việc trao đổi liên lạc giữa các layer GUI Business logic Data Access Data Data Transfer Object (DTO) Các giá trị, dòng, bảng COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 20 HIENLTH Sự phụ thuộc giữa các layer GUI Business logic Data Access Data Data Transfer Object (DTO) COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 21 HIENLTH Tính chất kiến trúc 3 tầng • Tính chất Giảm sự gắn kết giữa các thực thể phần mềm (decoupling). Presentation Layer Business Layer Data Layer COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 22 HIENLTH Tính chất kiến trúc 3 tầng • Tính chất Giảm sự gắn kết giữa các thực thể phần mềm (decoupling). Tái sử dụng. Presentation Layer Business Layer Data Layer COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 23 HIENLTH Tính chất kiến trúc 3 tầng • Tính chất Giảm sự gắn kết giữa các thực thể phần mềm (decoupling). Tái sử dụng. Chia sẻ trách nhiệm. Presentation Layer Business Layer Data Layer Client Database ServerApplication Server Data Source COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 24 HIENLTH Tính chất kiến trúc 3 tầng (cont) • Chú ý: Không phụ thuộc phương pháp lập trình. Mỗi nghiệp vụ không nhất thiết chỉ được giải quyết bởi 3 đối tượng. Không là một kiến trúc “siêu việt”. COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 25 HIENLTH Mô hình Peer-to-Peer • Là mô hình đơn lập phân tán • Triển khai trên nhiều máy (node) – Các node tương tác được với nhau – Mỗi node đóng vai trò client-server – Chia sẽ dữ liệu + xử lý trên toàn bộ node • Ưu điểm: – Không cần server trung tâm – Không gian lưu trữ và khả năng xử lý dàn trải – Dễ triển khai • Nhược điểm: – Khó lập trình và quản lý dữ liệu COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 26 HIENLTH Công nghệ phân tán • Middleware • Web Service COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 27 HIENLTH Middleware • Các thành phần trong hệ phân tán giao tiếp nhau như thế nào? hệ thống đứng giữa điều phối. • Các chuẩn phổ biến: – CORBA (Common Object Request Broker Architecture) – COM (Component Object Model) – JavaBeans COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 28 HIENLTH Web Service • Thư viện lập trình dựng sẵn • Cung cấp dạng dịch vụ • Truy xuất qua internet • Các dịch vụ phổ biến: – Math services – Google map – Amazon service • Các chuẩn giao tiếp XML: – SOAP (Simple Object Access Protocol) – WSDL (Web Services Description Language) – UDDI (Universal Description Discovery and Integration) COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 29 HIENLTH Bài tập Thiết kế kiến trúc cho đồ án môn học: • Phân rã hệ thống DS các thành phần con. • Bố trí các thành phần lựa chọn mô hình kiến trúc sắp xếp các thành phần con vào mô hình • Thiết lập mối quan hệ COMP1026 – Introduction to Software Engneering CH4 – Part 2 - 30 HIENLTH Câu hỏi và thảo luận ?
File đính kèm:
- Bài giảng Nhập môn công nghệ phần mềm - Lương Trần Hy Hiến - Chủ đề 4 Thiết kế phần mềm (Phần 2).pdf