Bài giảng Nhập môn công nghệ phần mềm - Chủ đề 4: Thiết kế Phần mềm (Tiếp theo)

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.

pdf 21 trang yennguyen 6380
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn công nghệ phần mềm - Chủ đề 4: Thiết kế Phần mềm (Tiếp theo)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Nhập môn công nghệ phần mềm - Chủ đề 4: Thiết kế Phần mềm (Tiếp theo)

Bài giảng Nhập môn công nghệ phần mềm - Chủ đề 4: Thiết kế Phần mềm (Tiếp theo)
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 dùng 
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 - 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 - 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:

  • pdfbai_giang_nhap_mon_cong_nghe_phan_mem_chu_de_4_thiet_ke_phan.pdf