68
Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2015 Môn : 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 Slide 1 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 Chương 5 CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNG

CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Embed Size (px)

Citation preview

Page 1: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 1

5.1 Đặc tả phần mềm5.2 Đặc tả kiến trúc phần mềm5.3 Các mẫu kiến trúc phổ dụng5.4 Kết chương

Chương 5

CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNG

Page 2: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 2

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ôngviệ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.

Page 3: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 3

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. …

Page 4: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 4

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ữacá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âydựng : chữ ký, ₫iều kiện pre/post, ₫ặc tả RT.

Page 5: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 5

5.2 Đặc tả kiến trúc của hệ thống phần mềm

Các yêu cầuchức năngvà phi chứcnăng

Các chứcnăng vàchất lượngphần mềm

Page 6: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 6

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ấutrú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àychắc chắn phải có mối quan hệ lẫn nhau.

Page 7: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 7

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ộtchủng loại. Mô hình hướng ₫ối tượng gọi phần tử này là ₫ối tượng. Như vậyphần mềm là tập các ₫ối tượng.

Page 8: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 8

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ữachú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ó.

Page 9: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 9

5.2 Đặc tả kiến trúc của hệ thống phần mềmNế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ấpgồm nhiều mức trừu tượng khác nhau.

1 2 3

45

6

78 9

11 12

10

13

1110

4

8

2

9

5 6

7 12

Page 10: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 10

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).

Ta dùng thuật ngữ cấu trúc cụ thể ₫ể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.

13

1110

4

8

2

9

5 6

7 12

13

1110

Page 11: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 11

5.2 Đặc tả kiến trúc của hệ thống phần mềm

Các yêu cầuchức năngvà phi chứcnăng

Các chứcnăng vàchất lượngphần mềm

Layer 6

Layer 5

Layer 4

Layer 3

Layer 2

Layer 1

Page 12: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 12

5.2 Đặc tả kiến trúc của hệ thống phần mềm

Các yêu cầuchức năngvà phi chứcnăng

Các chứcnăng vàchất lượngphần mềm

Layer 6

Layer 4

Layer 3

Layer 2

Layer 1

Page 13: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 13

5.2 Đặc tả kiến trúc của hệ thống phần mềmMẫ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.

Page 14: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 14

5.2 Đặc tả kiến trúc của hệ thống phần mềmCá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àoluậ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 (Eventsystems).

Các hệ thống tập trung quanh dữ liệu (Repositories) : Database,Blackboard

Page 15: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 15

5.3 Các mẫu kiến trúc phổ dụngKiế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ảithuậ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.

Page 16: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 16

5.3 Các mẫu kiến trúc phổ dụngKiế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.

Page 17: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 17

5.3 Các mẫu kiến trúc phổ dụngKiến trúc Chương trình chính và thủ tục(MainProgram/Subroutine Architecture)

Sub n

Main Program

Sub n-1

Sub 1 Sub 2 Sub 3

Page 18: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 18

5.3 Các mẫu kiến trúc phổ dụngKiến trúc các thành phần (Components based Architecture) Đặc tả : 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 1

Component n

Component 3

Component 2

tương tác

Page 19: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 19

5.3 Các mẫu kiến trúc phổ dụngKiế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

Page 20: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 20

5.3 Các mẫu kiến trúc phổ dụngKiế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

Page 21: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 21

5.3 Các mẫu kiến trúc phổ dụngKiế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ó.

Page 22: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 22

5.3 Các mẫu kiến trúc phổ dụngKiế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 1Object 2

Object n

Object 3

gởi thông ₫iệp

Page 23: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 23

5.3 Các mẫu kiến trúc phổ dụngKiế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ỏ

Page 24: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 24

5.3 Các mẫu kiến trúc phổ dụngKiế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

Page 25: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 25

5.3 Các mẫu kiến trúc phổ dụngKiế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

Page 26: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 26

5.3 Các mẫu kiến trúc phổ dụngKiế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ó.

Page 27: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 27

5.3 Các mẫu kiến trúc phổ dụngKiến trúc dựa trên sự kiện (Event-based Architecture) Đặc tả : 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 nComponent 3

Component 2

tạo sự kiện xử lý sự kiện

Page 28: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 28

5.3 Các mẫu kiến trúc phổ dụngKiế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ệnxảy ra, nó ₫ược kích hoạt chạy (bởi module quản lý sự kiện). Lưuý thứ tự chạy các thủ tục xử lý sự kiện cho 1 sự kiện xác ₫ịnh làkhông xác ₫ịnh.

Event chanel : là phương tiện truyền dẫn sự kiện từ emitter tớihandler.

Lưu ý là phần tử nào trong hệ thống ₫ều có thể là event emitterlẫn event handler. Có thể có các dạng tương tác khác giữa cácphần tử như gọi thủ tục, truy xuất dữ liệu...

Page 29: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 29

5.3 Các mẫu kiến trúc phổ dụngKiế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. Khuyết ₫iểm : khó kiểm thử ₫ơn vị từng thành phần, không biết

sự kiện do mình gởi có ₫ược xử lý hay không và ai xử lý...

Page 30: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 30

5.3 Các mẫu kiến trúc phổ dụngKiến trúc các process liên lạc nhau (Communication process

Architecture) Đặc tả : Hệ thống phần mềm gồm 1 tập các process ₫ộc lập liên

lạc lẫn nhau khi cân.

Process 1

Process n

Process 3

Process 2

Page 31: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 31

5.3 Các mẫu kiến trúc phổ dụngKiến trúc các process liên lạc nhau (Communication process

Architecture) Process : là nguyên tử cấu thành phần mềm, nó là 1 phần mềm

chạy ₫ộc lập, mỗi process thực hiện 1 chức năng xác ₫ịnh. Connector : phương tiện tương tác (truyền thông báo) giữa các

process : ₫iểm tới ₫iểm ₫ồng bộ hay bất ₫ồng bộ RPC và các giao thức khác có thể ₫ược ₫ặt trên cấp các

process này.

Page 32: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 32

5.3 Các mẫu kiến trúc phổ dụngKiến trúc hướng dịch vụ (Service-Oriented Architecture) Đặc tả : Cho phép tạo phần mềm bằng cách sử dụng các dịch vụ

sẵn có.

Internet

App Module Service 1 Service 2 Service n

Page 33: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 33

5.3 Các mẫu kiến trúc phổ dụngKiến trúc hướng dịch vụ (Service-Oriented Architecture) Service : phần tử cung cấp 1 số chức năng ₫a dụng nào ₫ó và

thường ₫ã có sẵn. Các nguyên tắc chính yếu của kiến trúc hướngdịch vụ là : Services are autonomous : tự trị Services are distributable : dễ dàng phân phối Services are loosely coupled : nối ghép rất lỏng Services share schema and contract, not class : dùng chung

mô hình và hợp ₫ồng chứ không phải là class cụ thể Compatibility is based on policy : ₫ộ tương thích phụ thuộc vào

chính sách cụ thể.

Page 34: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 34

5.3 Các mẫu kiến trúc phổ dụngKiến trúc hướng dịch vụ (Service-Oriented Architecture) Ưu ₫iểm của kiến trúc hướng dịch vụ :

Domain alignment Abstraction : ₫ộ trừu tượng cao Discoverability : dễ dàng khám phá Interoperability : dễ dàng làm việc chung Rationalization : hợp lý hóa

Page 35: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 35

5.3 Các mẫu kiến trúc phổ dụngKiến trúc hướng dịch vụ (Service-Oriented 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

mà muốn chạy trên nền Internet. Khuyết ₫iểm : ₫ộ hiệu quả phụ thuộc vào cơ sở hạ tầng mạn và

máy chạy service.

Page 36: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 36

5.3 Các mẫu kiến trúc phổ dụngKiến trúc lô tuần tự (Batch Sequential) Đặc tả : Chương trình gồm n phần mềm ₫ộc lập và ₫ược chạy

theo cơ chế tuần tự : phần mềm i chạy trước, khi xong rồi thìtruyền kết quả cho phần mềm thứ i+1... Mỗi phần mềm i trong lô₫ược gọi là filter, nó xử lý dữ liệu ₫ầu vào theo ₫ịnh dạng xác ₫ịnhrồi tạo kết quả ₫ầu ra theo ₫ịnh dạng xác ₫ịnh.

Filter FilterFilterFilterdata1 data2 data3 data4 data5

Page 37: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 37

5.3 Các mẫu kiến trúc phổ dụngKiến trúc lô tuần tự (Batch Sequential) 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ấpbằng cách thêm filter mới.

Khuyết ₫iểm : 2 filter kề nhau cần tuân thủ ₫ịnh dạng dữ liệuchung.

Page 38: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 38

5.3 Các mẫu kiến trúc phổ dụngKiến trúc lô tuần tự (Batch Sequential) Thí dụ : Thiết kế trực quan cửa sổ giao diện và dùng nó trong

phần mềm android.

Chương trình thiết kế trực quan giao diện cửa sổ

ứng ụng

Project Android quản lý ứng dụng

androidNgười thiết kếgiao diện

File XML ₫ặc tả bản thiết kế

Chương trình android dùng

giao diện ₫ược thiết kế

Page 39: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 39

5.3 Các mẫu kiến trúc phổ dụngKiến trúc ₫ường ống và lọc (Pipe and filter Architecture) Đặc tả : Nới rộng kiến trúc lô tuần tự lên tầm cao mới :

Các filter không nhất thiết là phần mềm ₫ộc lập lẫn nhau,chúng có thể là các thread chạy trong 1 chương trình.

Có thể có nhiều ống con trong từng ₫oạn xử lý.

Filter Filter

FilterFilter

data1

data2data4

data6

data8Filterdata3 Filter

data5data7

Page 40: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 40

5.3 Các mẫu kiến trúc phổ dụngKiế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ấpbằ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ệuchung.

Page 41: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 41

5.3 Các mẫu kiến trúc phổ dụngKiến trúc ₫ường ống và lọc (Pipe and filter Architecture) Thí dụ : Chương trình dịch ngôn ngữ

Scanner Phân tích cú phápParser

source code chuỗi token cây cú pháp thô

object code

Phân tích ngữ nghĩa

cây cú pháp hoàn chỉnh

Tạo code mục tiêu

cây ngữ nghĩa

Page 42: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 42

5.3 Các mẫu kiến trúc phổ dụngKiế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ịchvụ cho layer ngay trên mình. Layer cấp thấp nhất chứa các dịchvụ cơ bản nhất và ₫ược dùng cho toàn hệ thống.

Layer n

Layer n-1

...

Layer 2

Layer 1interface sử dụng

của layer 1

Page 43: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 43

5.3 Các mẫu kiến trúc phổ dụngKiế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ỗinhó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 chointerface không ₫ổi. Có thể giải quyết 1 chức năng nào ₫ó (xácnhậ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ênkhó tương tác với layer phía dưới nó nhưng không liền kề. Hiệuquả giảm sút khi nhiều layer phải tương tác nhau ₫ể giải quyết 1chức năng nào ₫ó.

Page 44: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 44

5.3 Các mẫu kiến trúc phổ dụngKiến trúc nhiều cấp (Layered architecture)

Thí dụ : Kiếntrúc mạng OSIvà kiến trúcmạng internet.

Page 45: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 45

5.3 Các mẫu kiến trúc phổ dụngKiế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 Serverdùng

Page 46: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 46

5.3 Các mẫu kiến trúc phổ dụngKiế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 serverthà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ácnhau thì có vấn ₫ề về quản lý chúng.

Page 47: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 47

5.3 Các mẫu kiến trúc phổ dụngKiế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

Page 48: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 48

5.3 Các mẫu kiến trúc phổ dụngKiế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 Server cho client

dùng Server cho server

dùng

Page 49: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 49

5.3 Các mẫu kiến trúc phổ dụngKiế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 serverthà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ácnhau thì có vấn ₫ề về quản lý chúng.

Page 50: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 50

5.3 Các mẫu kiến trúc phổ dụngKiế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

Internet

Server tiếp nhận các request từ client và xử lý luận lý

DBMS thông tin

DBMS ds thư viện

DBMS Films

DBMS Photo

Client nClient nClient nClient n

Internet

Page 51: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 51

5.3 Các mẫu kiến trúc phổ dụngKiế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 Server cho client

dùng Server cho server 1

dùng Server cho server n-2

dùng

Page 52: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 52

5.3 Các mẫu kiến trúc phổ dụngKiế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 serverthà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ácnhau thì có vấn ₫ề về quản lý chúng.

Page 53: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 53

5.3 Các mẫu kiến trúc phổ dụngKiế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

Server tiếp nhận các request từ client và xử lý luận lý

DBMS ds thưviện

Client 1 Client 2 Client 3 Client n

Quản lý tảiQuản lý tải Quản lý tải Quản lý tải

DBMS ds thưviện

DBMS Films

DBMS Films

DBMS Ảnh

DBMS Ảnh

DBMS thông

tin

DBMS thông

tin

Page 54: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 54

5.3 Các mẫu kiến trúc phổ dụngKiế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.

Page 55: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 55

5.3 Các mẫu kiến trúc phổ dụngKiến trúc MVC (Model-View-Controller)

Page 56: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 56

5.3 Các mẫu kiến trúc phổ dụngKiế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ệnnó và ngược lại.

Khuyết ₫iểm : có thể cần nhiều code hơn và code có thể phứctạp hơn khi mô hình dữ liệu và sự tương tác chỉ ở mức ₫ộ ₫ơngiản.

Page 57: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 57

5.3 Các mẫu kiến trúc phổ dụngKiến trúc MVC (Model-View-Controller) Thí dụ : Hệ thống web dùng kiến trúc MVC :

Page 58: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 58

5.3 Các mẫu kiến trúc phổ dụngKiế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, clickchuộ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ấtdữ liệu khi cần

Page 59: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 59

5.3 Các mẫu kiến trúc phổ dụngKiến trúc MVP (Model-View-Presenter)

Viewuser Presenternhờ

hỗ trợ

Modelnhờ truy

xuất data

Page 60: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 60

5.3 Các mẫu kiến trúc phổ dụngKiế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ệnnó và ngược lại.

Khuyết ₫iểm : có thể cần nhiều code hơn và code có thể phứctạp hơn khi mô hình dữ liệu và sự tương tác chỉ ở mức ₫ộ ₫ơngiản.

Page 61: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 61

5.3 Các mẫu kiến trúc phổ dụngKiến trúc MVP (Model-View-Presenter) Thí dụ : Hệ thống web dùng kiến trúc MVP :

Page 62: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 62

5.3 Các mẫu kiến trúc phổ dụngKiế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ựctiếp với nhau, chỉ thông qua kho chứa tập trung.

Kho dữ liệu dùng chung (repository)

Component 1 Component 2 Component 3 Component n

Page 63: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 63

5.3 Các mẫu kiến trúc phổ dụngKiế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 1chứ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ề aikhác.

Khuyết ₫iểm : kho là ₫iểm yếu nhất, nếu có lỗi sẽ ảnh hưởngtoàn bộ các thành phần chức năng. Có vấn ₫ề về truy xuất ₫ồngthời kho, phân tán kho trên nhiều máy cũng khó khăn.

Page 64: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 64

5.3 Các mẫu kiến trúc phổ dụngKiế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ácdùng.

Page 65: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 65

5.3 Các mẫu kiến trúc phổ dụngKiế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 :

Blackboard

Controller

KS nKS 1 KS 2 KS 3

truy xuất

chọn lựa & kích hoạt

chọn lựa & kích hoạt

Page 66: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 66

5.3 Các mẫu kiến trúc phổ dụngKiế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 1tậ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ủaquá trình giải quyết bài toán (₫ược miêu tả trong blackboard).

Page 67: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 67

5.3 Các mẫu kiến trúc phổ dụngKiế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 : ?

Page 68: CÁC MẪU KIẾN TRÚC PHẦN MỀM PHỔ DỤNGhiep/DesignPatterns/LyThuyet/Chuong5.pdf · Máy tính số là thiết bị tổng quát ... Kiến trúc phần mềm cho thấy

Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2015

Môn : Các mẫu thiết kế hướng ₫ối tượngChương 5 : Các mẫu kiến trúc phần mềm phổ dụng

Slide 68

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.