Bài giảng Kiến trúc phần mềm - Chương 2: Các Tactic

Chương 2  
CÁC TACTIC  
2.1 Định nghĩa thuật ngữ  
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng  
2.3 Các tactics giải quyết tính dễ sử dụng (Usability)  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
2.5 Các tactic giải quyết hiệu suất  
2.6 Các tactic giải quyết an ninh  
2.7 Các tactic giải quyết tính có thể kiểm thử ₫ược  
2.8 Kết chương  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 1  
2.1 Định nghĩa thuật ngữ  
Tactic  
‰ ta ₫ạt ₫ược các tiêu chí chất lượng thông qua các quyết ₫ịnh thiết  
kế.  
‰ Vậy các quyết ₫ịnh thiết kế nào cần thiết cho việc ₫ạt ₫ược 1 chất  
lượng cụ thể ?  
‰ Tactic là 1 quyết ₫ịnh thiết kế mà ảnh hưởng ₫ến việc kiểm soát  
sự ₫áp ứng 1 thuộc tính chất lượng.  
‰ Chiến lược kiến trúc là tập các tactics ₫ược chọn.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 2  
2.1 Định nghĩa thuật ngữ  
‰ gói các tactics  
ƒ các tactic có thể tinh chế các tactic khác  
ƒ sự dư thừa ₫ược tinh chế từ dư thừa dữ liệu và dư thừa code  
‰ thí dụ  
ƒ 1 tactic giải quyết tính sẳn sàng ₫ể dùng sẽ dẫn ₫ến sự dư  
thừa.  
ƒ Ẩn chứa : ta cũng cần sự ₫ồng bộ giữa các nhân bản ₫ể ₫ảm  
bảo copy dư thừa có thể ₫ược dùng nếu bản gốc bị hỏng.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 3  
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng  
‰ Độ lệch của lỗi (Failure)  
ƒ ₫ộ lệch giữa thực tế chạy so với hành vi chức năng kỳ vọng  
ƒ có thể ₫ược quan sát bởi người dùng hệ thống phần mềm  
‰ Độ lệch của lỗi và nguyên nhân gây lỗi (fault) : fault : sự kiện có  
thể gây ra ₫ộ lệch của lỗi  
‰ Các tactics giải quyết tính sẳn sàng ₫ể dùng :  
ƒ giữ fault ₫ừng ₫ể nó thành ₫ộ lệch của lỗi  
ƒ t
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 4  
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng  
Tính sẵn sàng ₫ể dùng (Availability)  
Recovery-  
Reintroduction  
Sửa chữa &  
chuẩn bị phục hồi  
Phòng ngừa  
Phát hiện  
Fault  
Fault bị che  
Đã sửa chữa  
bóng ma  
₫ồng bộ hóa  
trạng thái  
checkpoint/  
Rollback  
Không phục vụ  
Giao tác  
Giám sát process  
Voting  
Ping/Echo  
HeartBeat  
Exception  
Thừa chủ ₫ộng  
Thừa thụ ₫ộng  
Dùng secour  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 5  
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng  
Phát hiện fault : Ping/Echo  
‰ thành phần 1 tạo 1 ping cho thành phần 2  
‰ thành phần 1 chờ 1 echo từ thành phần 2  
‰ trả lời trong khoảng thời gian qui ₫ịnh  
‰ Có thể dùng cho kiến trúc gồm 1 nhóm các thành phần : chúng có  
trách nhiệm hỗ tương trên 1 tác vụ  
‰ Có thể dùng cho kiến trúc client/server : kiểm thử server và ₫ường  
liên
‰ sự phân cấp các phần tử phát hiện fault sẽ cải tiến việc dùng băng  
thông.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 6  
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng  
Phát hiện fault : Heartbeat (nhịp tim)  
‰ Theo ₫ịnh kỳ, thành phần 1 phát thông báo heartbeat.  
‰ thành phần 2 lắng nghe thông báo  
‰ nếu không có heartbeat  
ƒ thành phần 1 ₫ược giả ₫ịnh là hỏng  
ƒ cảnh bảo cho thành phần 3 ₫ể sửa fault  
‰ thông báo heartbeat cũng có thể chứa dữ liệu.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 7  
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng  
Phát hiện fault : Exceptions  
‰ các loại fault : omission, crash, timing, response  
‰ khi nhận biết 1 loại fault, 1 exception ₫ược tạo ra : kết quả là fault  
₫ược nhận biết  
‰ Trình xử lý exception  
ƒ thi hành trong cùng process mà tạo ra exception  
ƒ thường thực hiện 1 chuyển dịch ngữ nghĩa của fault ra 1 dạng  
d
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 8  
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng  
Phục hồi sau fault : Voting  
‰ các process chạy trên các processor dư thừa nhận thông tin vào  
như nhau và tính toán ₫ể tạo kết quả (kỳ vọng như nhau)  
‰ kết quả ₫ược gởi tới voter.  
‰ Nếu voter phát hiện hành vi lệch lạc của 1 processor nào ₫ó ->  
voter coi nó bị hỏng.  
‰ Phương pháp ₫ược dùng ₫ể sửa chữa  
ƒ hoạt ₫ộng lỗi của giải thuật  
ƒ ₫ộ hư hỏng của processor  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 9  
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng  
Phục hồi sau khi hỏng : sự dư thừa chủ ₫ộng (active redundancy)  
‰ tất cả các thành phần dư thừa ₫ều ₫áp ứng với sự kiện 1 cách  
₫ồng thời -> chúng có cùng trạng thái.  
‰ chỉ dùng 1 ₫áp ứng từ 1 thành phần nào ₫ó.  
‰ downtime : thời gian chuyển sang thành phần ₫ược cập nhật khác  
(ms)  
‰ ₫ược dùng trong cấu hình client/server (hệ thống database) : ₫áp  
ứng
‰ Sự ₫ồng bộ hóa : tất cả thông báo tới 1 thành phần ₫ều phải ₫ược  
gởi tới tất cả thành phần dư thừa còn lại.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 10  
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng  
Phục hồi sau khi hỏng : sự dư thừa thụ ₫ộng (passive redundancy)  
‰ thành phần chính có nhiệm vụ :  
‰ ₫áp ứng với sự kiện.  
‰ thông tin cho các thành phần còn lại (standby state) các  
updates mà chúng phải làm.  
‰ Khi Fault xảy ra : hệ thống kiểm tra xem backup có ₫ủ mới (fresh)  
không trước khi phục hồi dịch vụ.  
‰ thường ₫ược dùng trong các hệ thống ₫iều khiển  
‰ chuyển ₫ổi ₫ịnh kỳ thành phần chính sẽ gia tăng tính sẵn sàng ₫ể  
dùng.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 11  
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng  
Phục hồi sau khi hỏng : phần tử dự phòng (spare)  
‰ Platform tính toán dự phòng ở trạng thái standby ₫ược cấu hình ₫ể  
thay thế nhiều thành phần hỏng hóc khác nhau :  
ƒ phải reboot ₫ể dùng lại cấu hình (mới) của phần mềm  
ƒ khi failure xảy ra, ta khởi tạo lại trạng thái cho nó.  
‰ ₫ịnh kỳ ghi checkpoint về trạng thái hệ thống và các tháy ₫ổi trạng  
thái lên thiết bị vĩnh cửu (disk).  
‰ dow
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 12  
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng  
Tái tạo fault : hoạt ₫ộng bóng ma  
‰ thành phần hỏng hóc trước ₫ây có thể ₫ược chạy trong chế ₫ộ  
shadow.  
ƒ trong 1 khỏang thời gian  
ƒ ₫ể ₫ảm bảo nó tối thiểu hành vi của các thành phần ₫ang vận  
hành.  
ƒ trước khi phục hồi nó ₫ể vận hành tiếp.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 13  
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng  
Tái tạo fault : ₫ồng bộ hóa lại trạng thái  
‰ dư thừa chủ ₫ộng hay thụ ₫ộng : thành phần ₫ược phục hồi cập  
nhật trạng thái của mình trước khi trở lại làm việc.  
‰ Cập nhật phụ thuộc vào :  
ƒ downtime  
ƒ kích thước cập nhật  
ƒ số thông báo ₫ược ₫òi hỏi ₫ể cập nhật : tốt nhất là 1, nhiều sẽ  
d
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 14  
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng  
Tái tạo fault : checkpoint/rollback  
‰ checkpoint  
‰ ghi trạng thái còn ₫úng (nhất quán).  
‰ ₫ược thực hiện ₫ịnh kỳ hay khi ₫áp ứng với sự kiện ₫ặc biệt  
‰ hữu dụng khi hệ thống hỏng không thường xuyên với trạng thái  
không nhất quán có thể phát hiện ₫ược. Hệ thống ₫ược phục hồi  
bằng :  
ƒ checkpoint của trạng thái nhất quán ngay trước.  
ƒ nhật ký các transactions xảy ra từ khi chúng bắt ₫ầu hoạt ₫ộng  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 15  
2.2 Các tactics giải quyết tính sẳn sàng ₫ể dùng  
Phòng ngừa fault  
‰ Bỏ không phục vụ  
ƒ ₫ể cấm các failure tiên ₫oán trước, ta xóa bỏ thành phần liên  
quan  
ƒ thí dụ boot lại thành phần ₫ể cấm sự thiếu hụt bộ nhớ  
ƒ làm tự ₫ộng hay thủ công  
‰ Transaction : các bước tuần tự ₫ược bó lại nhau sao cho toàn bộ  
bó c
‰ giám sát process : nếu process hỏng bị phát hiện thì process giám  
sát sẽ xóa process không làm việc và tạo mới 1 instance khác  
thay thế : phải ₫ược khởi tạo với trạng thái phù hợp như trong  
tactic dùng phần tự dự phòng.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 16  
2.3 Các tactics giải quyết tính dễ sử dụng (Usability)  
‰ tính có thể dùng liên quan ₫ến :  
ƒ hệ thống hỗ trợ cho user những thứ gì  
ƒ người dùng thực hiện tác vụ mong muốn dễ dàng như thế nào.  
‰ các tactic  
ƒ thời gian chạy : hỗ trợ user trong suốt thời gian thi hành của hệ  
thống  
ƒ tại thời ₫iểm thiết kế : hỗ trợ nhà phát triển interface  
+ bản chất lặp của việc thiết kế interface  
+ liên quan tới các tactic giải quyết tính có thể hiệu chỉnh  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 17  
2.3 Các tactics giải quyết tính dễ sử dụng (Usability)  
các tactic tại thời ₫iểm chạy  
‰ Các phản hồi của user về hệ thống ₫ang làm gì  
‰ cung cấp cho user khả năng thực hiện các lệnh liên quan ₫ến tính  
dễ dùng :  
ƒ Cancel  
ƒ Undo  
ƒ Tích hợp  
ƒ h
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 18  
2.3 Các tactics giải quyết tính dễ sử dụng (Usability)  
tính dễ sử dụng  
Cung cấp phản  
hồi và hỗ trợ  
phù hợp cho  
user  
Các tactic tại thời ₫iểm thiết kế  
Tách giao tiếp user  
Các tactic tại thời ₫iểm chạy  
yêu cầu của user  
chủ ₫ộng hệ thống  
chủ ₫ộng user  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 19  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
‰ mục tiêu: kiểm soát thời gian và chi phí của sự thay ₫ổi nào ₫ó  
trong việc hiện thực, kiểm thử, hiệu chỉnh và phân phối.  
‰ tập các tactic  
ƒ Khoanh vùng các thay ₫ổi : giảm số module bị ảnh hưởng bởi 1  
thay ₫ổi  
ƒ phòng ngừa các hiệu ứng dây chuyền : hạn chế việc thay ₫ổi  
tới các module bị khoanh vùng.  
ƒ ti gian  
phân phối và chi phí.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 20  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Tính thay ₫ổi ₫ược  
Đã thay ₫ổi,  
kiểm thử,  
phân phối  
Các thay  
₫ổi tới  
Ngừa các hiệu ứng dây  
chuyền  
Trì hoản thời ₫iểm  
liên kết  
Khoanh vùng các  
thay ₫ổi  
trong thời gian  
và kinh phí  
xác ₫ịnh  
₫ăng ký tại td chạy  
file cấu hình  
Ẩn thông tin  
Nhất quán ngữ nghĩa  
dự ₫oán các thay ₫ổi  
tổng quát hóa module  
dịch vu chung trừu tượng  
Duy trì giao tiếp tồn tại  
hạn chế ₫ường liên lạc  
dùng ptử trung gian  
Đa xạ  
Thay thế thành phần  
Đính vào các gt ₫ã có  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 21  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Khoanh vùng các thay ₫ổi : duy trì tính nhất quán ngữ nghĩa  
‰ Tính nhất quán ngữ nghĩa : mối quan hệ giữa các trách nhiệm  
trong 1 module.  
‰ Mục tiêu : ₫ảm bảo tất cả trách nhiệm này làm việc cùng nhau cho  
dù có hay không sự dựa dẫm quá nhiều vào những module khác.  
‰ Cách ₫ạt mục tiêu : thiết kế các module với các trách nhiệm trong  
sự nhất quán ngữ nghĩa.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 22  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Khoanh vùng các thay ₫ổi : dịch vụ chung trừu tượng  
‰ Tactic con của tính nhất quán ngữ nghĩa  
‰ cung cấp các dịch vụ chung thông qua các module ₫ặc biệt  
‰ Tính dùng lại và tính thay ₫ổi ₫ược  
ƒ Sự thay ₫ổi tới các dịch vụ chung ₫ược làm chỉ 1 lần thay vì  
trong từng module dùng chúng.  
ƒ Các thay ₫ổi trơng các module dùng dịch vụ chung không ảnh  
hưởng ₫ến các user khác.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 23  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Khoanh vùng các thay ₫ổi : tiên ₫oán các thay ₫ổi ₫ược chờ ₫ợi  
‰ việc chú ý tập các thay ₫ổi mường tượng cung cấp cách thức ₫ánh  
giá việc gán các trách nhiệm.  
‰ Các câu hỏi :  
ƒ ₫ối với 1 thay ₫ổi : sự phân rã mà ta ₫ề nghị có hạn chế tập  
các module cần thay ₫ổi ?  
ƒ Về cơ bản, các thay ₫ổi khác nhau có ảnh hưởng trên cùng các  
‰ Mục tiêu : tối thiểu hóa ảnh hưởng của các thay ₫ổi.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 24  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Khoanh vùng các thay ₫ổi : tổng quát hóa module chức năng  
‰ tổng quát hóa 1 module bằng cách làm cho nó thực hiện 1 lớp  
rộng các chức năng dựa vào kiểu thông tin nhập.  
‰ Thông tin nhập : ₫ịnh nghĩa ngôn ngữ cho module  
ƒ làm các thông số nhập là hằng  
ƒ hiện thực module như 1 trình thông dịch và làm các thông số  
nhập như là các chương trình trong ngôn ngữ thông dịch ₫ó.  
‰ module tổng quát hơn  
‰ Thích nhất là làm các thay ₫ổi theo yêu cầu bằng cách hiệu chỉnh  
ngôn ngữ nhập.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 25  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Phòng ngữa các hiệu ứng lan truyền  
‰ Khoanh vùng các thay ₫ổi / hạn chế các thay ₫ổi trên các module  
bị khoanh vùng.  
ƒ Có 1 số module bị tác ₫ộng trực tiếp : ₫ó là các module có các  
trách nhiệm cần ₫ược ₫iều chỉnh ₫ể thực hiện ₫ược sự thay  
₫ổi.  
ƒ Có 1 số module bị tác ₫ộng gián tiếp bởi sự thay ₫ổi : ₫ó là các  
n thực  
cần ₫ược thay ₫ổi ₫ể phù hợp với các module bị tác ₫ộng trực  
tiếp.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 26  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Các hiệu ứng lan truyền  
‰ Hiệu ứng lan truyền từ 1 thay ₫ổi :  
ƒ sự cần thiết thay ₫ổi các module không bị tác ₫ộng trực tiếp bởi  
nó.  
ƒ ₫iều này xảy ra vì các module ₫ược ₫ề cập phụ thuộc ít nhiều  
vào các module liên quan trực tiếp ₫ến sự thay ₫ổi.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 27  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Các kiểu phụ thuộc  
‰ Ta giả sử :  
‰ module A thay ₫ổi ₫ể thực hiện sự thay ₫ổi nào ₫ó.  
‰ module B bị thay ₫ổi chỉ vì module A thay ₫ổi.  
‰ Có nhiều kiểu phụ thuộc : cú pháp, ngữ nghĩa, tuần tự, identity of  
interface, location of A, quality of service, existence of A, resource  
behavior of A.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 28  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Sự phụ thuộc cú pháp  
‰ của data :  
ƒ B dùng dữ liệu ₫ược tạo bởi A  
ƒ kiểu và ₫ịnh dạng dữ liệu trong cả 2 module A và B cần ₫ược  
nhất quán nhau.  
‰ của dịch vụ :  
ƒ B cầu cứu dịch vụ của A  
ƒ chữ ký các dịch vụ ₫ược cung cấp bởi A cần nhất quán với kỳ  
vọng của B.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 29  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Sự phụ thuộc ngữ nghĩa  
‰ của data :  
ƒ B dùng dữ liệu ₫ược tạo bởi A  
ƒ ngữ nghĩa dữ liệu ₫ược tạo ra bởi module A và ₫ược dùng bởi B  
cần ₫ược nhất quán với kỳ vọng của B.  
‰ của dịch vụ :  
ƒ B cầu cứu dịch vụ của A  
ƒ nán với  
kỳ vọng của B.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 30  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Sự phụ thuộc tuần tự  
‰ của data :  
ƒ B dùng dữ liệu ₫ược tạo bởi A  
ƒ B phải nhận dữ liệu ₫ược tạo ra bởi A theo trình tự cố ₫ịnh biết  
trước.  
‰ của ₫iều khiển :  
ƒ A phải ₫ược thi hành trước trong khoảng thời gian ràng buộc  
xác ₫ịnh.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 31  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Sự ₫ồng nhất về interface của A  
‰ A phải có nhiều interface sử dụng  
‰ B dùng 1 trong chúng  
‰ Để B ₫ược dịch và thi hành ₫úng, sự ₫ồng nhất của interface phải  
nhất quán với các kỳ vọng của B.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 32  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Các sự phụ thuộc khác  
‰ vị trí chạy của A : phải nhất quán với kỳ vọng của B  
‰ chất lượng dịch vụ/data ₫ược cung cấp bởi A : các tính chất liên  
quan ₫ến chất lượng phải nhất quán với kỳ vọng của B.  
‰ sự tồn tại của A : Để B thi hành ₫ược, A phải tồn tại ₫ể sẳn sàng  
phục vụ.  
‰ Hành vi tài nguyên của A : phải nhất quán với các kỳ vọng của B.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 33  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Các tactic ₫ể phòng ngừa hiệu ứng lan truyền  
‰ Ẩn thông tin  
‰ duy trì các interface tồn tại  
‰ hạn chế các ₫ường liên lạc  
‰ dùng phần tử trung gian  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 34  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Ẩn thông tin  
‰ Phân rã các trách nhiệm ra những phần nhỏ hơn và chọn thông tin  
nào ₫ể ẩn và thông tin nào ₫ể public.  
‰ thông tin public có thể dùng ₫ược thông qua interface xác ₫ịnh  
‰ Mục tiêu : ngăn các thay ₫ổi trong 1 module và ngừa các thay ₫ổi  
lan truyền từ module này sang module khác.  
ƒ kỹ thuật cũ nhất từ việc cấm các thay ₫ổi lan truyền  
ƒ liên quan mạnh tới tiên ₫oán các thay ₫ổi chờ ₫ợi (ta dùng các  
thay ₫ổi này làm cơ sở cho việc phân rã).  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 35  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Duy trùy các interface luôn tồn tại  
‰ Cú pháp của B phụ thuộc vào interface của A : duy trì interface  
của A sẽ làm B không thay ₫ổi.  
‰ Sự ổn ₫ịnh interface : tách interface với sự hiện thực nó  
‰ Cách hiện thực tactic  
ƒ thêm interface  
ƒ thêm adapter  
ƒ c
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 36  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Hạn chế các ₫ường liên lạc  
‰ hạn chế số module dùng chung data với A (A cần thay ₫ổi)  
ƒ hạn chế số module mà dùng dữ liệu do A cung cấp  
ƒ hạn chế số module mà cung cấp dữ liệu cho A dùng.  
-> giảm ₫ược hiệu ứng lan truyền  
‰ - sản xuất/tiêu dùng dữ liệu sẽ tạo ra sự phụ thuộc.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 37  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Dùng phần tử trung gian  
‰ B phụ thuộc A theo các cách khác hơn ngữ nghĩa :  
ƒ có thể tạo ra phần tử trung gian ₫ể quản lý sự phụ thuộc  
ƒ data (cú pháp), dịch vụ (cú pháp), vị trí của A, sự tồn tại của A  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 38  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Trì hoản thời gian liên kết  
‰ sự quyết ₫ịnh liên kết A vào hệ thống thực thi ở những thời ₫iểm  
khác nhau.  
‰ Liên kết tại thời ₫iểm chạy :  
ƒ hệ thống ₫ã chuẩn bị ₫ể làm việc liên kết này.  
ƒ tất cả bước kiểm thử và phân tán ₫ã hoàn thành rồi  
ƒ hỗ trợ người dùng ₫ầu cuối/admin làm các thiết lập hay cung  
cấp input mà ảnh hưởng ₫ến hành vi.  
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 39  
2.4 Các tactic về tính thay ₫ổi ₫ược (Modifiability)  
Các tactic mà ảnh hưởng tại thởi ₫iểm load/chạy  
‰ ₫ăng ký tại thời gian chạy : hoạt ₫ộng plug-and-play, nỗ lực hơn  
₫ể quản lý việc ₫ăng ký  
‰ file cấu hình : thiết lập các thông số tại thời ₫iểm bắt ₫ầu  
‰ ₫a xạ : liên kết muộn các lời gởi thông ₫iệp  
‰ Thay thế thành phần : liên kết tại thời ₫iểm load  
‰ sự ₫ính vào các giao thức ₫ã ₫ịnh nghĩa : liên kết tại thời ₫iểm  
chạ
Khoa Khoa học & Kỹ thuật Máy tính  
Trường ĐH Bách Khoa Tp.HCM  
© 2015  
Môn : Kiến trúc phần mềm  
Chương 2 : Các tactic  
Slide 40  
Tải về để xem bản đầy đủ
pdf 32 trang yennguyen 18140 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc phần mềm - Chương 2: Các Tactic", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_kien_truc_phan_mem_chuong_2_cac_tactic.pdf