Bài giảng Các mẫu thiết kế hướng đối tượng - Chương 5: Các mẫu kiến trúc phần mềm phổ dụng

Chương 5: Các mẫu kiến trúc phần mềm phổ dụng

5.1 Đặc tả phần mềm

5.2 Đặc tả kiến trúc phần mềm

5.3 Các mẫu kiến trúc phổ dụng

5.4 Kết chương

 

pdf 68 trang phuongnguyen 7760
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Các mẫu thiết kế hướng đối tượng - Chương 5: Các mẫu kiến trúc phần mềm phổ dụng", để 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 Các mẫu thiết kế hướng đối tượng - Chương 5: Các mẫu kiến trúc phần mềm phổ dụng

Bài giảng Các mẫu thiết kế hướng đối tượng - Chương 5: Các mẫu kiến trúc phần mềm phổ dụng
 Chương 5
CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNG
 5.1 Đặc tả phần mềm
 5.2 Đặc tả kiến trúc phần mềm
 5.3 Các mẫu kiến trúc phổ dụng
 5.4 Kết chương
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 1
5.1 Đặc tả phần mềm
 Máy tính số là thiết bị tổng quát hóa, nó có thể giải quyết nhiều
 vấn ₫ề mà con người cần giải quyết.
 Tại từng thời ₫iểm, ₫ể nhờ máy tính giải quyết 1 vấn ₫ề nào ₫ó, ta
 phải lập trình cho máy tính hiểu.
 Qui trình phát triển phần mềm miêu tả các công việc chức năng
 cần phải thực hiện cùng cách thức, trình tự thực hiện các công
 việc chức năng này.
 Kết quả của qui trình phát triển phần mềm là bản ₫ặc tả ₫ầy ₫ủ về
 phần mềm.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 2
5.1 Đặc tả phần mềm
 Đặc tả ₫ầy ₫ủ về phần mềm là ₫ặc tả phần mềm theo nhiều góc
 nhìn khác nhau :
 . Góc nhìn người dùng : tập các yêu cầu chức năng và phi chức
 năng của phần mềm.
 . Góc nhìn vĩ mô ₫ể người hiểu : kiến trúc phần mềm và phát sơ
 lược về cách giải quyết từng chức năng.
 . Góc nhìn chi tiết ₫ể người hiểu : bản thiết kế chi tiết về phần
 mềm.
 . Góc nhìn chi tiết ₫ể máy hiểu : các file mã nguồn và các file
 khả thi của chương trình.
 . 
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 3
5.2 Đặc tả kiến trúc của hệ thống phần mềm
 Kiến trúc phần mềm cho thấy cấu trúc tổng quát, vĩ mô của phần
 mềm.
 Kiến trúc phần mềm bao gồm các phần tử sau :
 . các thành phần : ₫ịnh nghĩa ₫ịa ₫iểm tính toán, thí dụ filter,
 database, object, ADT.
 . các mối nối (Connector) : làm trung gian cho tương tác giữa
 các thành phần. gọi thủ tục, pipe, phát tán sự kiện.
 . các thuộc tính : xác ₫ịnh thông tin cho việc phân tích và xây
 dựng : chữ ký, ₫iều kiện pre/post, ₫ặc tả RT.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 4
5.2 Đặc tả kiến trúc của hệ thống phần mềm
Các yêu cầu
chức năng
và phi chức
năng
 Các chức
 năng và
 chất lượng
 phần mềm
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 5
5.2 Đặc tả kiến trúc của hệ thống phần mềm
Chọn cấu trúc nào ₫ể xây dựng phần mềm lớn ?
Cấu trúc ₫ơn thể bên trái chắc chắn không phù hợp. Do ₫ó ta sẽ chọn cấu
trúc bên phải : phần mềm gồm nhiều phần tử cấu thành, các phần tử này
chắc chắn phải có mối quan hệ lẫn nhau. 
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 6
 5.2 Đặc tả kiến trúc của hệ thống phần mềm
Chủng loại các phần tử cấu thành phần mềm như thế nào và mối quan hệ
giữa chúng ra sao ₫ể ta có thể dễ dàng quản lý chúng theo thời gian?
Các phần tử cấu thành phần mềm lớn thường có số lượng rất lớn, nhưng ₫ể
dễ xây dựng và quản lý chúng, ta ₫òi hỏi chúng phải thuần nhất cùng một
chủng loại. Mô hình hướng ₫ối tượng gọi phần tử này là ₫ối tượng. Như vậy
phần mềm là tập các ₫ối tượng. 
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 7
 5.2 Đặc tả kiến trúc của hệ thống phần mềm
Để dễ dàng quản lý các phần tử, ta phải hạn chế tối ₫a sự tương tác giữa
chúng. Tính ₫óng gói của mô hình hướng ₫ối tượng giải quyết vấn ₫ề này. 
Hạn chế sự tương tác của từng ₫ối tượng là :
. Che dấu tối ₫a các chi tiết hiện thực của mình, chỉ cho các phần tử khác
 bên ngoài thấy và dùng 1 ít các dịch vụ của mình.
. Hạn chế tối ₫a sự nhờ vả các phần phần bên ngoài : ta cần làm các thành
 phần nội bộ của ₫ối tượng có tính kết dính cao nhất có thể có. 
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 8
 5.2 Đặc tả kiến trúc của hệ thống phần mềm
Nếu dùng cấu trúc dạng phẳng cho phần mềm lớn thì cũng rất khó quản lý vì
số lượng thành phần quá lớn. Thường ta sẽ dùng cấu trúc dạng phân cấp
gồm nhiều mức trừu tượng khác nhau.
 1 3 3
 2 1
 5 10
 4 11
 4
 2
 6
 8 9
 7
 5
 8 9 6
 10
 7 12
 11 12
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 9
 5.2 Đặc tả kiến trúc của hệ thống phần mềm
. Ta dùng thuật ngữ kiến trúc phần mềm ₫ể
 miêu tả cấu trúc vĩ mô của phần mềm (ở 
 bất kỳ cấp vĩ mô nào).
 3
. Ta dùng thuật ngữ cấu trúc cụ thể ₫ể 1
 miêu tả cấu trúc của phần tử chức năng ở 
 cấp thấp nhất mà ta sẽ hiện thực. 10
 11
 4
 2
 3
 1
 8 9
 10 5 6
 11
 7 12
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 10
5.2 Đặc tả kiến trúc của hệ thống phần mềm
Các yêu cầu
chức năng Layer 6
và phi chức
năng Layer 5
 Layer 4
 Layer 3
 Layer 2 Các chức
 năng và
 Layer 1 chất lượng
 phần mềm
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 11
5.2 Đặc tả kiến trúc của hệ thống phần mềm
Các yêu cầu
 Layer 6
chức năng
và phi chức
năng
 Layer 4
 Layer 3
 Layer 2 Các chức
 năng và
 Layer 1 chất lượng
 phần mềm
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 12
5.2 Đặc tả kiến trúc của hệ thống phần mềm
Mẫu/Kiểu kiến trúc (Architecture Pattern/Style)
 Kiểu kiến trúc ₫ịnh nghĩa 1 họ các kiến trúc phần mềm cụ thể
 ₫ược giới hạn bởi :
 . từ vựng thành phần/mối nối.
 . các luật topology.
 . các ràng buộc ngữ nghĩa.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 13
5.2 Đặc tả kiến trúc của hệ thống phần mềm
Các ₫ặc ngữ kiến trúc phổ biến
 Các hệ thống xử lý dòng dữ liệu : lô tuần tự (Batch sequential),
 ₫ường ống và lọc (Pipe and filters)
 Các hệ thống gọi-trả về : chương trình chính và thủ tục (main
 program & subroutines), các cấp có thứ bậc (Hierarchical layers),
 hệ thống hướng ₫ối tượng (OO system).
 Các máy ảo : Trình thông dịch (Interpreters), hệ thống dựa vào
 luật (Rule-based system)
 Các thành phần ₫ọc lập : các process giao tiếp nhau
 (Communicating processes), các hệ thống xử lý sự kiện (Event
 systems).
 Các hệ thống tập trung quanh dữ liệu (Repositories) : Database,
 Blackboard
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 14
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc ₫ơn thể (Monolithic)
 Đặc tả : Hệ thống chỉ gồm duy nhất 1 module, module này chứa
 mọi thứ của chương trình : danh sách các lệnh thực thi miêu tả giải
 thuật cần thực hiện + danh sách các biến dữ liệu bị xử lý.
 . giao tiếp giữa các thành phần là cục bộ và rất hiệu quả.
 . thích hợp cho những phần mềm nhỏ, ₫ơn giản.
 . không thích hợp cho những phần mềm lớn và phức tạp.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 15
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc Chương trình chính và thủ tục
(MainProgram/Subroutine Architecture)
 Đặc tả : Hệ thống phần mềm gồm 1 chương trình chính và 1 tập
 các thủ tục chức năng cần thiết.
 dùng cách phân rã theo dạng cây phân cấp : dựa trên mối quan
 hệ ₫ịnh nghĩa-sử dụng.
 chỉ có 1 thread kiểm soát duy nhất : ₫ược hỗ trợ trực tiếp bởi các
 ngôn ngữ lập trình.
 ẩn chứa cấu trúc hệ thống con : các thủ tục có mối quan hệ mật
 thiết thường ₫ược gộp thành module.
 lý do của sự phân cấp : ₫ộ ₫úng ₫ắn của 1 thủ tục phụ thuộc vào
 sự ₫úng ₫ắn của các thủ tục mà nó gọi.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 16
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc Chương trình chính và thủ tục
(MainProgram/Subroutine Architecture)
 Main Program
 Sub 1 Sub 2 Sub 3
 Sub n-1 Sub n
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 17
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc các thành phần (Components based Architecture)
 Đặctả:Hệ thống phần mềm gồm 1 tập các thành phần ₫ộc lập
 ₫ược ghép nối lỏng lẻo.
 Component 2
 Component 1
 Component n
 tương tác
 Component 3
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 18
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc các thành phần (Components based Architecture)
 Thành phần : là nguyên tử cấu thành phần mềm, nó có 1 số tính
 chất sau :
 . Reusable : dễ dàng dùng lại cho ứng dụng khác
 . Replaceable : dễ dàng ₫ược thay thế bởi thành phần mới
 . Not context specific : không có ngữ cảnh
 . Extensible : dễ nới rộng
 . Encapsulated : ₫óng gói và ẩn chi tiết hiện thực
 . Independent : ₫ộc lập cao
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 19
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc các thành phần (Components based Architecture)
 Ưu ₫iểm của kiến trúc các thành phần :
 . Ease of deployment : dễ dàng triển khai
 . Reduced cost : chi phí thấp
 . Ease of development : dễ dàng phát triển
 . Reusable : dễ dàng dùng lại
 . Mitigation of technical complexity : giảm nhẹ ₫ộ phức tạp kỹ
 thuật
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 20
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc các thành phần (Components based Architecture)
 Tình huống nên dùng : bất kỳ hệ thống phần mềm phức tạp nào.
 Khuyết ₫iểm : là mẫu kiến trúc có ₫ộ tổng quát cao nên khi hiện
 thực ta phải tốn nhiều chi phí ₫ể vận dụng nó.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 21
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc hướng ₫ối tượng (Objects based Architecture)
 Đặc tả : Hệ thống phần mềm gồm 1 tập các ₫ối tượng ₫ộc lập
 ₫ược ghép nối lỏng lẻo.
 Object 2
 Object 1 gởi thông ₫iệp
 Object n
 Object 3
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 22
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc hướng ₫ối tượng (Objects based Architecture)
 Đối tượng : là nguyên tử cấu thành phần mềm, nó có 1 số tính
 chất sau :
 . Reusable : dễ dàng dùng lại cho ứng dụng khác
 . Replaceable : dễ dàng ₫ược thay thế bằng ₫ối tượng mới hơn
 . Extensible, Heritable : thừa kế và dễ nới rộng
 . Encapsulated : ₫óng gói và ẩn chi tiết hiện thực
 . Independent : ₫ộ ₫ộc lập cao
 . Persistent : thường trù ₫ể sẵn sàng phục vụ
 . Aggregation... : bao gộp từ nhiều ₫ối tượng nhỏ
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 23
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc hướng ₫ối tượng (Objects based Architecture)
 Các nguyên tắc chính yếu của kiến trúc hướng ₫ối tượng :
 . Abstraction : trừu tượng
 . Composition : tích hợp
 . Inheritance : thừa kế
 . Encapsulation : ₫óng gói
 . Polymorphism : ₫a xạ
 . Decoupling : quan hệ nhau (phụ thuộc) rất ít
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 24
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc hướng ₫ối tượng (Objects based Architecture)
 Ưu ₫iểm của kiến trúc hướng ₫ối tượng :
 . Understandable : dễ hiểu
 . Reusable : dễ dùng lại
 . Testable : dễ kiểm thử
 . Extensible : dễ nới rộng
 . Highly Cohesive : kết dính giữa các thành phần trong từng ₫ối
 tượng cao
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 25
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc hướng ₫ối tượng (Objects based Architecture)
 Tình huống nên dùng : bất kỳ hệ thống phần mềm phức tạp nào.
 Khuyết ₫iểm : là mẫu kiến trúc có ₫ộ tổng quát cao nên khi hiện
 thực ta phải tốn nhiều chi phí ₫ể vận dụng nó.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 26
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc dựa trên sự kiện (Event-based Architecture)
 Đặctả:Hệ thống phần mềm gồm 1 tập các thành phần ₫ộc lập
 ₫ược ghép nối lỏng lẻo dựa trên việc tạo/xử lý sự kiện.
 Component 1 Component 2
 tạo sự kiện xử lý sự kiện
 Component 3 Component n
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 27
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc dựa trên sự kiện (Event-based Architecture)
 Emitter : là phần tử tạo và phát tán 1 hay nhiều sự kiện.
 Handler : là phần tử muốn xử lý sự kiện, nó ₫ăng ký thủ tục xử lý
 sự kiện vào danh sách xử lý của sự kiện tương ứng. Khi sự kiện
 xảy ra, nó ₫ược kích hoạt chạy (bởi module quản lý sự kiện). Lưu
 ýthứtựchạycácthủtụcxửlýsựkiệncho1sựkiệnxác₫ịnhlà
 không xác ₫ịnh.
 Event chanel : là phương tiện truyền dẫn sự kiện từ emitter tới
 handler.
 Lưu ý là phần tử nào trong hệ thống ₫ều có thể là event emitter
 lẫn event handler. Có thể có các dạng tương tác khác giữa các
 phần tử như gọi thủ tục, truy xuất dữ liệu...
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 28
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc dựa trên sự kiện (Event-based Architecture)
 Tình huống nên dùng : trong các hệ thống :
 . tương tác bẩm sinh như giao diện người dùng, mạng máy tính.
 . trả kết quả về từ việc thi hành bất ₫ồng bộ (thread).
 . gia tăng khả năng việc dùng lại từng thành phần.
 . cải tiến hệ thống dễ dàng : thay ₫ổi thành phần này bằng
 thành phần khác.
  ...  ống con trong từng ₫oạn xử lý.
 data4
 data2 Filter Filter data6
 Filter Filter
 data1 data8
 Filter Filter data7
 data3 data5
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 39
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc ₫ường ống và lọc (Pipe and filter Architecture)
 Tình huống nên dùng : trong các ứng dụng xử lý dữ liệu mà dữ
 liệu nhập cần ₫ược xử lý bởi nhiều công ₫oạn khác nhau và có
 tính ₫ộc lập cao trước khi tạo ra kết quả cuối cùng.
 Ưu ₫iểm : dễ dàng thay ₫ổi/bảo trì/dùng lại từng filter của hệ
 thống, phù hợp với nhiều hoạt ₫ộng nghiệp vụ, dễ dàng nâng cấp
 bằng cách thêm filter mới, hiệu quả cao hơn kiến trúc lô tuần tự.
 Khuyết ₫iểm : 2 filter kề nhau cần tuân thủ ₫ịnh dạng dữ liệu
 chung.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 40
 5.3 Các mẫu kiến trúc phổ dụng
 Kiến trúc ₫ường ống và lọc (Pipe and filter Architecture)
  Thí dụ : Chương trình dịch ngôn ngữ
 Phân tích Phân tích Tạo code 
 Scanner
 Parser cú pháp ngữ nghĩa mục tiêu
source code chuỗi token
 cây cú pháp cây cú pháp cây ngữ nghĩa object code
 thô hoàn chỉnh
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 41
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc nhiều cấp (Layered architecture)
 Đặc tả : Hệ thống gồm nhiều cấp chức năng dạng chồng lên
 nhau, mỗi layer có chức năng cụ thể, rõ ràng và cung cấp các dịch
 vụ cho layer ngay trên mình. Layer cấp thấp nhất chứa các dịch
 vụ cơ bản nhất và ₫ược dùng cho toàn hệ thống.
 Layer n
 Layer n-1
 ...
 Layer 2
 interface sử dụng 
 của layer 1 Layer 1
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 42
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc nhiều cấp (Layered architecture)
 Tình huống nên dùng : xây dựng thêm khả năng mới trên hệ
 thống có sẵn, hay khi có nhiều nhóm phát triển khác nhau, mỗi
 nhóm chịu trách nhiệm về 1 layer chức năng cụ thể, hay khi có
 yêu cầu bảo mật nhiều cấp.
 Ưu ₫iểm : cho phép hiệu chỉnh bên trong layer bất kỳ sao cho
 interface không ₫ổi. Có thể giải quyết 1 chức năng nào ₫ó (xác
 nhận user) ở nhiều cấp theo cách thức tăng dần.
 Khuyết ₫iểm : khó tách bạch chức năng của từng cấp, layer trên
 khó tương tác với layer phía dưới nó nhưng không liền kề. Hiệu
 quả giảm sút khi nhiều layer phải tương tác nhau ₫ể giải quyết 1
 chức năng nào ₫ó.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 43
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc nhiều cấp (Layered architecture)
  Thí dụ : Kiến
 trúc mạng OSI
 và kiến trúc
 mạng internet.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 44
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc client-server (client-server Architecture)
 Đặc tả : Hệ thống gồm 2 loại phần tử chức năng : server cung cấp
 1 số dịch vụ, client là phần tử sử dụng dịch vụ bằng cách truy xuất
 ₫ến server tương ứng.
 Client dùng Server
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 45
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc client-server (client-server Architecture)
 Tình huống nên dùng : khi database dùng chung từ nhiều vị trí
 khác nhau hay khi tải hệ thống thay ₫ổi ₫ộng (nhân bản server
 thành nhiều phần tử).
 Ưu ₫iểm : server có thể phân tán tự do trên mạng.
 Khuyết ₫iểm : ₫ộ hiệu quả phụ thuộc vào mạng và hệ thống nên
 khó lường trước. Nếu các server ₫ược quản lý bởi các tổ chức khác
 nhau thì có vấn ₫ề về quản lý chúng.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 46
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc client-server (client-server Architecture)
 Thí dụ : Hệ thống quản lý phim ảnh dùng mô hình client-server
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 47
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc 3 ₫ối tác (3-tiers Architecture)
 Đặc tả : Sự cải tiến của kiến trúc client-server. Hệ thống gồm 3
 loại phần tử chức năng : client, server, và server của server.
 Client dùng Server cho dùng Server cho 
 client server
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 48
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc 3 ₫ối tác (3-tiers Architecture)
 Tình huống nên dùng : khi database dùng chung từ nhiều vị trí
 khác nhau hay khi tải hệ thống thay ₫ổi ₫ộng (nhân bản server
 thành nhiều phần tử).
 Ưu ₫iểm : server có thể phân tán tự do trên mạng.
 Khuyết ₫iểm : ₫ộ hiệu quả phụ thuộc vào mạng và hệ thống nên
 khó lường trước. Nếu các server ₫ược quản lý bởi các tổ chức khác
 nhau thì có vấn ₫ề về quản lý chúng.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 49
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc 3 ₫ối tác (3-tiers Architecture)
 Thí dụ : Hệ thống quản lý phim ảnh dùng mô hình 3-tiers
 Client n Client n Client n Client n
 Internet
 Server tiếp nhận các request từ client và xử lý luận lý
 Internet
 DBMS ds DBMS DBMS DBMS 
 thư viện Films Photo thông tin
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 50
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc n ₫ối tác (n-tiers Architecture)
 Đặc tả : Sự tổng quát của kiến trúc 3-tiers. Hệ thống gồm n loại
 phần tử chức năng : client, server, và server của server,...
 Client dùng Server cho dùng Server cho dùng Server cho 
 client server 1 server n-2
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 51
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc n ₫ối tác (n-tiers Architecture)
 Tình huống nên dùng : khi database dùng chung từ nhiều vị trí
 khác nhau hay khi tải hệ thống thay ₫ổi ₫ộng (nhân bản server
 thành nhiều phần tử).
 Ưu ₫iểm : server có thể phân tán tự do trên mạng.
 Khuyết ₫iểm : ₫ộ hiệu quả phụ thuộc vào mạng và hệ thống nên
 khó lường trước. Nếu các server ₫ược quản lý bởi các tổ chức khác
 nhau thì có vấn ₫ề về quản lý chúng.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 52
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc n ₫ối tác (n-tiers Architecture)
 Thí dụ : Hệ thống quản lý phim ảnh dùng mô hình n-tiers
 Client 1 Client 2 Client 3 Client n
 Server tiếp nhận các request từ client và xử lý luận lý
 Quản lý tải Quản lý tải Quản lý tải Quản lý tải
 DBMS DBMS DBMS DBMS DBMS DBMS DBMS DBMS 
 ds thư ds thư Films Films Ảnh Ảnh thông thông
 viện viện tin tin
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 53
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc MVC (Model-View-Controller)
 Đặc tả : Hệ thống gồm 3 thành phần luận lý tương tác lẫn nhau :
 . Model quản lý dữ liệu và các tác vụ liên quan ₫ến dữ liệu này.
 . View ₫ịnh nghĩa và quản lý cách thức dữ liệu ₫ược trình bày
 cho user.
 . Controller quản lý các tương tác với user như ấn phím, click
 chuột và gởi thông tin tương tác này tới View và/hoặc Model.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 54
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc MVC (Model-View-Controller)
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 55
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc MVC (Model-View-Controller)
 Tình huống nên dùng : Hệ thống có nhiều cách ₫ể view và tương
 tác với dữ liệu, hoặc ta chưa biết trước các yêu cầu tương lai về sự
 tương tác và biểu diễn dữ liệu của chương trình.
 Ưu ₫iểm : cho phép dữ liệu thay ₫ổi ₫ộc lập với cách thức thể hiện
 nó và ngược lại.
 Khuyết ₫iểm : có thể cần nhiều code hơn và code có thể phức
 tạphơnkhimôhìnhdữliệuvàsựtươngtácchỉởmức₫ộ₫ơn
 giản.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 56
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc MVC (Model-View-Controller)
 Thí dụ : Hệ thống web dùng kiến trúc MVC :
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 57
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc MVP (Model-View-Presenter)
 Đặc tả : Hệ thống gồm 3 thành phần luận lý tương tác lẫn nhau :
 . Model quản lý dữ liệu và các tác vụ liên quan ₫ến dữ liệu này.
 . View ₫ịnh nghĩa và quản lý cách thức dữ liệu ₫ược trình bày
 cho user, quản lý các tương tác với user như ấn phím, click
 chuột và gởi thông tin tương tác này tới Presenter ₫ể nhờ xử
 lý chi li hơn.
 . Presenter xử lý chi li về luận lý nghiệp vu, nhờ Model truy xuất
 dữ liệu khi cần
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 58
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc MVP (Model-View-Presenter)
 user View nhờ Presenter nhờ truy Model
 hỗ trợ xuất data
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 59
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc MVP (Model-View-Presenter)
 Tình huống nên dùng : Hệ thống có nhiều cách ₫ể view và tương
 tác với dữ liệu, hoặc ta chưa biết trước các yêu cầu tương lai về sự
 tương tác và biểu diễn dữ liệu của chương trình.
 Ưu ₫iểm : cho phép dữ liệu thay ₫ổi ₫ộc lập với cách thức thể hiện
 nó và ngược lại.
 Khuyết ₫iểm : có thể cần nhiều code hơn và code có thể phức
 tạphơnkhimôhìnhdữliệuvàsựtươngtácchỉởmức₫ộ₫ơn
 giản.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 60
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc MVP (Model-View-Presenter)
 Thí dụ : Hệ thống web dùng kiến trúc MVP :
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 61
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc kho (Repository Architecture)
 Đặc tả : Tất cả dữ liệu của hệ thống ₫ược quản lý trong 1 kho
 chứa tập trung, mọi thành phần chức năng của hệ thống ₫ều có
 thể truy xuất kho chứa này. Các thành phần không tương tác trực
 tiếp với nhau, chỉ thông qua kho chứa tập trung.
 Component 1 Component 2 Component 3 Component n
 Kho dữ liệu dùng chung (repository)
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 62
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc kho (Repository Architecture)
 Tình huống nên dùng : khi hệ thống tạo và chứa 1 lượng rất lớn
 thông tin trong thời gian dài, hay trong các hệ thống dựa vào dữ
 liệu, ở ₫ó việc chứa thông tin vào kho sẽ kích hoạt 1 tool hay 1
 chức năng hoạt ₫ộng.
 Ưu ₫iểm : các thành phần ₫ộc lập nhau, không ai biết gì về ai
 khác.
 Khuyết ₫iểm : kho là ₫iểm yếu nhất, nếu có lỗi sẽ ảnh hưởng
 toàn bộ các thành phần chức năng. Có vấn ₫ề về truy xuất ₫ồng
 thời kho, phân tán kho trên nhiều máy cũng khó khăn.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 63
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc kho (Repository Architecture)
 Thí dụ : Môi trường IDE gồm nhiều thành phần dùng chung kho
 thông tin, mỗi tool tạo thông tin và ₫ể trong kho ₫ể các tool khác
 dùng.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 64
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc bảng ₫en (Blackboard Architecture)
 Đặc tả : Hệ thống phần mềm gồm 3 loại thành phần tương tác
 nhau như sau :
 Controller
 chọn lựa & 
 kích hoạt
 KS 1 KS 2 KS 3 KS n
 truy xuất
 Blackboard
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 65
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc bảng ₫en (Blackboard Architecture)
 Blackboard : là vùng nhớ toàn cục có cấu trúc của phần mềm, nó
 chứa các ₫ối tượng của bài toán cần giải quyết, còn ₫ược gọi là
 các nút, chúng ₫ược tổ chức dạng phân cấp.
 Knowledge sources : mỗi KS là tập các phần tử khác nhau ₫ể
 thực hiện 1 chức năng xác ₫ịnh. Mỗi phần tử ₫ược ₫ặc trưng bởi 1
 tập các ₫iều kiện kích hoạt xác ₫ịnh và ₫oạn code xử lý dữ liệu từ
 blackboard rồi ₫óng góp kết quả vào quá trình giải quyết bài toán.
 Control : là phần tử ₫iều khiển chung, nó cấu hình, chọn lựa và
 thi hành các KS. Việc xác ₫ịnh KS nào là dựa vào trạng thái của
 quá trình giải quyết bài toán (₫ược miêu tả trong blackboard).
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 66
5.3 Các mẫu kiến trúc phổ dụng
Kiến trúc bảng ₫en (Blackboard Architecture)
 Tình huống nên dùng : trong các hệ chuyên gia giải quyết vấn
 ₫ề mà không có cách giải quyết tất ₫ịnh và có thể tin tưởng ₫ược.
 Khuyết ₫iểm :?
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 67
5.4 Kết chương
 Chương này ₫ã giới thiệu một số mẫu kiến trúc phần mềm phổ
 dụng, tính chất, ưu và khuyết ₫iểm của từng mẫu.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 5 : Các mẫu kiến trúc phần mềm phổ dụng
 © 2015 Slide 68

File đính kèm:

  • pdfbai_giang_cac_mau_thiet_ke_huong_doi_tuong_chuong_5_cac_mau.pdf