Chương 3<br />
<br />
CÁC MẪU KIẾN TRÚC PHỔ DỤNG<br />
3.1 Kiến trúc trong các hệ thống phần mềm<br />
3.2 Các mẫu kiến trúc phổ dụng<br />
3.3 Kết chương<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 3 : Các mẫu kiến trúc phổ dụng<br />
Slide 1<br />
<br />
3.1 Kiến trúc trong các hệ thống phần mềm<br />
<br />
<br />
<br />
kiến trúc là cấu trúc các phần tử, không chỉ là cái gì mà là tại sao<br />
kiến trúc tốt :<br />
kết quả của 1 tập các nguyên tắc và kỹ thuật nhất quán ₫ược<br />
áp dụng nhất quán thông qua tất cả các bước của dự án phần<br />
mềm<br />
không nản lòng khi ₫ối diện với các thay ₫ổi không thể tránh<br />
₫ược.<br />
nguồn hướng dẫn xuyên suốt thời gian sống của phần mềm<br />
bao gồm 1 ít tính chất và luật khóa ₫ể tổ hợp chúng sao cho sự<br />
toàn vẹn kiến trúc ₫ược giữ nguyên.<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 3 : Các mẫu kiến trúc phổ dụng<br />
Slide 2<br />
<br />
3.1 Kiến trúc trong các hệ thống phần mềm<br />
Các phần tử của ₫ặc tả kiến trúc<br />
Định nghĩa kiến trúc cho 1 hệ thống chọn :<br />
các thành phần : ₫ịnh nghĩa ₫ịa ₫iểm tính toán, thí dụ filter,<br />
database, object, ADT<br />
các mối nối (Connector) : làm trung gian cho tương tác giữa<br />
các thành phần. gọi thủ tục, pipe, phát tán sự kiện.<br />
các thuộc tính : xác ₫ịnh thông tin cho việc phân tích và xây<br />
dựng : chữ ký, ₫iều kiện pre/post, ₫ặc tả RT.<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 3 : Các mẫu kiến trúc phổ dụng<br />
Slide 3<br />
<br />
3.1 Kiến trúc trong các hệ thống phần mềm<br />
Mẫu/Kiểu kiến trúc (Architecture Pattern/Style)<br />
Kiểu kiến trúc ₫ịnh nghĩa 1 họ các kiến trúc ₫ược giới hạn bởi :<br />
từ vựng thành phần/mối nối.<br />
các luật topology.<br />
các ràng buộc ngữ nghĩa.<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 3 : Các mẫu kiến trúc phổ dụng<br />
Slide 4<br />
<br />
3.1 Kiến trúc trong các hệ thống phần mềm<br />
Các ₫ặc ngữ kiến trúc phổ biến<br />
Các hệ thống xử lý dòng dữ liệu : lô tuần tự (Batch sequential),<br />
₫ường ống và lọc (Pipe and filters)<br />
Các hệ thống gọi-trả về : chương trình chính và thủ tục (main<br />
program & subroutines), các cấp có thứ bậc (Hierarchical layers),<br />
hệ thống hướng ₫ối tượng (OO system).<br />
Các máy ảo : Trình thông dịch (Interpreters), hệ thống dựa vào<br />
luật (Rule-based system)<br />
Các thành phần ₫ọc lập : các process giao tiếp nhau<br />
(Communicating processes), các hệ thống xử lý sự kiện (Event<br />
systems).<br />
Các hệ thống tập trung quanh dữ liệu (Repositories) : Database,<br />
Blackboard<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 3 : Các mẫu kiến trúc phổ dụng<br />
Slide 5<br />
<br />
3.2 Các mẫu kiến trúc phổ dụng<br />
Kiến trúc ₫ơn thể (Monolithic)<br />
Đặc tả : Hệ thống chỉ gồm duy nhất 1 module. Module này chứa<br />
mọi thứ của chương trình :<br />
giao tiếp giữa các thành phần là cục bộ và rất hiệu quả.<br />
thích hợp cho những phần mềm nhỏ, ₫ơn giản.<br />
không thích hợp cho những phần mềm lớn và phực tạp.<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 3 : Các mẫu kiến trúc phổ dụng<br />
Slide 6<br />
<br />
3.2 Các mẫu kiến trúc phổ dụng<br />
Kiến trúc lô tuần tự (Batch Sequential)<br />
Đặc tả : Chương trình gồm n phần mềm ₫ộc lập và ₫ược chạy<br />
theo cơ chế tuần tự : phần mềm i chạy trước, khi xong rồi thì<br />
truyền kết quả cho phần mềm thứ i+1... Mỗi phần mềm i trong lô<br />
₫ược gọi là filter, nó xử lý dữ liệu ₫ầu vào theo ₫ịnh dạng xác ₫ịnh<br />
rồi tạo kết quả ₫ầu ra theo ₫ịnh dạng xác ₫ịnh.<br />
<br />
Filter<br />
data 1<br />
<br />
Filter<br />
data 2<br />
<br />
Filter<br />
data 3<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
data 4<br />
<br />
Filter<br />
<br />
data 5<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 3 : Các mẫu kiến trúc phổ dụng<br />
Slide 7<br />
<br />
3.2 Các mẫu kiến trúc phổ dụng<br />
Kiến trúc lô tuần tự (Batch Sequential)<br />
Tình huống nên dùng : trong các ứng dụng xử lý dữ liệu mà dữ<br />
liệu nhập cần ₫ược xử lý bởi nhiều công ₫oạn khác nhau và có<br />
tính ₫ộc lập cao trước khi tạo ra kết quả cuối cùng.<br />
Ưu ₫iểm : dễ dàng thay ₫ổi/bảo trì/dùng lại từng filter của hệ<br />
thống, phù hợp với nhiều hoạt ₫ộng nghiệp vụ, dễ dàng nâng cấp<br />
bằng cách thêm filter mới.<br />
Khuyết ₫iểm : 2 filter kề nhau cần tuân thủ ₫ịnh dạng dữ liệu<br />
chung.<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 3 : Các mẫu kiến trúc phổ dụng<br />
Slide 8<br />
<br />
3.2 Các mẫu kiến trúc phổ dụng<br />
Kiến trúc lô tuần tự (Batch Sequential)<br />
Thí dụ : Thiết kế trực quan cửa sổ giao diện và dùng nó trong<br />
phần mềm android.<br />
<br />
Chương trình<br />
thiết kế trực quan<br />
Người thiết kế giao diện cửa sổ<br />
giao diện<br />
ứng dụng<br />
<br />
File XML<br />
₫ặc tả bản<br />
thiết kế<br />
<br />
Project Android<br />
quản lý ứng dụng<br />
android<br />
<br />
Chương trình<br />
android dùng<br />
giao diện ₫ược<br />
thiết kế<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 3 : Các mẫu kiến trúc phổ dụng<br />
Slide 9<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
3.2 Các mẫu kiến trúc phổ dụng<br />
Kiến trúc ₫ường ống và lọc (Pipe and filter Architecture)<br />
Đặc tả : Nới rộng kiến trúc lô tuần tự lên tầm cao mới :<br />
Các filter không nhất thiết là phần mềm ₫ộc lập lẫn nhau,<br />
chúng có thể là các thread chạy trong 1 chương trình.<br />
Có thể có nhiều ống con trong từng ₫oạn xử lý.<br />
data 2<br />
data 1<br />
<br />
data 4<br />
Filter<br />
<br />
Filter<br />
<br />
data 6<br />
<br />
Filter<br />
<br />
Filter<br />
data 3<br />
<br />
Khoa Khoa học & Kỹ thuật Máy tính<br />
Trường ĐH Bách Khoa Tp.HCM<br />
© 2015<br />
<br />
Filter<br />
<br />
data 5<br />
<br />
Filter<br />
<br />
data 7<br />
<br />
data 8<br />
<br />
Môn : Kiến trúc phần mềm<br />
Chương 3 : Các mẫu kiến trúc phổ dụng<br />
Slide 10<br />
<br />