Bài giảng Kiến trúc phần mềm - Chương 1: Tổng quan về kiến trúc phần mềm

1.1 Vài ý ban ₫ầu

1.2 Định nghĩa SA

1.3 Một số thuật ngữ về SA

1.4 Kiến trúc và các thuộc tính chất lượng

1.5 Các thuộc tính chất lượng (Quality attributes)

1.6 Tính sẵn sàng ₫ể dùng ₫ược (Availability)

1.7 Tính dễ sử dụng (Usability)

1.8 Tính có thể hiệu chỉnh (Modifiability)

1.9 Hiệu suất (Performance)

1.10 An ninh (Security)

1.11 Tính có thể kiểm thử (Testability)

 

pdf 29 trang phuongnguyen 10020
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 1: Tổng quan về kiến trúc phần mềm", để 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 Kiến trúc phần mềm - Chương 1: Tổng quan về kiến trúc phần mềm

Bài giảng Kiến trúc phần mềm - Chương 1: Tổng quan về kiến trúc phần mềm
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 1 : Tổng quan về kiến trúc phần mềm
Slide 1
1.1 Vài ý ban ₫ầu
1.2 Định nghĩa SA
1.3 Một số thuật ngữ về SA
1.4 Kiến trúc và các thuộc tính chất lượng
1.5 Các thuộc tính chất lượng (Quality attributes)
1.6 Tính sẵn sàng ₫ể dùng ₫ược (Availability)
1.7 Tính dễ sử dụng (Usability)
1.8 Tính có thể hiệu chỉnh (Modifiability)
1.9 Hiệu suất (Performance)
1.10 An ninh (Security)
1.11 Tính có thể kiểm thử (Testability)
Chương 1
TỔNG QUAN VỀ KIẾN TRÚC PHẦN MỀM
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 1 : Tổng quan về kiến trúc phần mềm
Slide 2
Tài liệu tham khảo 
‰ Bất kỳ tài liệu nào có liên quan ₫ến kiến trúc phần mềm 
‰ 
‰ wikipedia
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 3
1.1 Vài ý ban ₫ầu
‰ Thuật ngữ “kiến trúc” (architecture) ₫ã có từ lâu trong lĩnh vực xây 
dựng ₫ể miêu tả cấu trúc tổng quát của tòa nhà.
‰ Thuật ngữ “máy tính” (computer), “phần cứng” (hardware) ₫ã xuất 
hiện vào những năm 1940 ₫ể miêu tả máy tính số, một loại thiết bị
tổng quát hóa.
‰ Để miêu tả 2 lĩnh vực chính của máy tính, người ta dùng 2 thuật 
ngữ hardware và software.
‰ Thuật ngữ “phần cứng” (hardware) ₫ược dùng ₫ể miêu tả các vấn 
₫ề liên quan ₫ến việc xây dựng máy tính như các linh kiện, bảng 
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 1 : Tổng quan về kiến trúc phần mềm
Slide 4
1.1 Vài ý ban ₫ầu
‰ Thuật ngữ “kiến trúc phần cứng máy tính” (computer hardware 
architecture) ₫ược dùng ₫ể miêu tả cấu trúc luận lý của phần cứng 
máy tính gồm những phần tử chức năng nào, chúng liên hệ với 
nhau như thế nào. Các máy tính hiện nay ₫ều ₫ược chế tạo theo 1 
kiến trúc phần cứng rõ ràng xác ₫ịnh.
‰ Thuật ngữ “phần mềm” (software) ₫ể nói về chương trình máy 
tính. 
‰ Thuật ngữ “Kiến trúc phần mềm” (software architecture) ₫ược 
dùng ₫ể miêu tả cấu trúc luận lý của chương trình gồm những 
phần tử chức năng nào, chúng liên hệ với nhau như thế nào.
‰ Hiện nay, kiến trúc phần mềm chưa hoàn thiện như kiến trúc phần 
cứng máy tính. Lý do là kỹ nghệ phần mềm còn mới mẽ và rất ₫ặc 
thù
‰ Tuy vậy, kinh tế con người phụ thuộc nhiều vào sản phẩm phần 
mềm.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 5
1.1 Vài ý ban ₫ầu
SA (Software architecture) nhắm vào gì ?
‰ Độ phức tạp phần mềm ngày càng gia tăng
‰ Chi phí phát triển phần mềm lớn : hàng trăm/hàng ngàn năm công 
nhân
‰ Nhiều hệ thống phần mềm phức tạp như tòa nhà chọc trời
‰ Thiết kế phần mềm vượt xa kiến thức về giải thuật và cấu trúc dữ
liệu. Thêm 1 số vấn ₫ề mới về thiết kế phần mềm lớn, ₫ó là ta cần 
có cấu trúc tổng thể của hệ thống phần mềm cần xây dựng và bảo 
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 1 : Tổng quan về kiến trúc phần mềm
Slide 6
1.1 Vài ý ban ₫ầu
Việc xây dựng hệ thống phần mềm
‰ tiêu chuẩn xây dựng ₫ã thay ₫ổi vì :
ƒ phần cứng máy tính ₫ược cải tiến, có thể mua ₫ược dễ dàng
ƒ nhu cầu về các phần mềm ứng dụng bùng nổ
ƒ cách thức xác ₫ịnh các yêu cầu cho sản phẩm mới và việc hiện 
thực phần mềm nhanh chóng, giá rẻ.
ƒ sản phẩm phần mềm cũ nhất vẫn còn dùng trên thị trường. 
Các phần mềm này phô bày nhiều yếu ₫iểm về chất lượng.
ƒ Tiêu chuẩn mới của xây dựng phần mềm là : phần mềm phải 
có SA tốt, dễ hiểu bởi mọi người.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 7
1.2 Định nghĩa SA
‰ SA nói về kiến trúc cấp cao của hệ thống phần mềm, kiến thức về
việc tạo dựng và lập tài liệu các cấu trúc này. Có thể có nhiều kiến 
trúc khác nhau phù hợp cho 1 phần mềm cần xây dựng, mỗi kiến 
trúc gồm nhiều thành phần phần mềm, các mối quan hệ giữa 
chúng, tính chất của từng thành phần và từng mối quan hệ.
‰ SA cung cấp kế hoạch thiết kế hệ thống phần mềm (bản sơ ₫ồ
tổng quát - blueprint, ngầm chứa các ý ₫ịnh về phần mềm)
‰ SA cung cấp thông tin trừu tượng giúp việc quản lý ₫ộ phức tạp 
của hệ thống phần mềm dễ dàng hơn.
‰ Kiến trúc phần mềm bị hạn chế bởi : 
ƒ sự thiếu hụt cách thức chuẩn hóa ₫ể miêu tả kiến trúc.
ƒ sự thiếu hụt các phương pháp phân tích ₫ể dự ₫oán kiến trúc 
nào sẽ tạo ₫ược một hiện thực mà thỏa mãn tốt nhất các yêu 
cầu phần mềm.
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 1 : Tổng quan về kiến trúc phần mềm
Slide 8
1.2 Định nghĩa SA
SA là bản kế hoạch thiết kế
‰ kế hoạch kiến trúc mà diễn tả :
ƒ các phần tử của hệ thống
ƒ cách chúng làm phù hợp lẫn nhau.
ƒ cách chúng làm việc cùng nhau ₫ể ₫áp ứng các yêu cầu phần 
mềm.
‰ ₫ược dùng như tài liệu thiết kế trong quá trình phát triển phần 
mềm.
‰ ₫ược dùng ₫ể dàn xếp, thương lượng các yêu cầu của hệ thống 
phần mềm.
‰ ₫ược dùng ₫ể thiết lập các dự tính với khách hàng, người quản 
lý/tiếp thị.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 9
1.2 Định nghĩa SA
SA là bản kế hoạch thiết kế
‰ nhà quản lý dự án dùng bản kế hoạch thiết kế như là ₫ầu vào cho 
kế hoạch của dự án phần mềm.
Phân tích lĩnh vực, 
phân tích yêu cầu, 
phân tích rủi ro.
Thiết kế
Kiến trúc
Thiết kế chi tiết, coding, tích 
hợp modules, kiểm thử
Thiết kế
Kiến trúc phần cứ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 1 : Tổng quan về kiến trúc phần mềm
Slide 10
1.2 Định nghĩa SA
SA là một sự trừu tượng
‰ SA không phải là sự phân rã rõ ràng của hệ thống phần mềm
ƒ Thật vậy, các chi tiết hiện thực ₫ược trừu tượng hóa, bao ₫óng 
vào các phần tử của SA.
‰ SA nên miêu tả các phần tử ở mức vĩ mô cao nhất, gồm các thông 
tin :
ƒ cách thức các phần tử ₫áp ứng các yêu cầu
ƒ sự tương tác giữa chúng
ƒ sự phụ thuộc của các phần tử vào nền thi hành.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 11
1.2 Định nghĩa SA
Các dung hòa thiết kế
‰ giải duyết các dung hòa có thể dẫn ₫ến :
ƒ việc hi sinh 1 số thông số chất lượng mong muốn, thí dụ như 
mất ₫ộ ₫ơn giản.
ƒ Việc phải thỏa hiệp 1 số yêu cầu :
ƒ thương lượng lại
ƒ giảm ₫ộ khả chuyển, ₫ộ dễ 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 1 : Tổng quan về kiến trúc phần mềm
Slide 12
1.2 Định nghĩa SA
Mục ₫ích của SA
‰ Ta nên cố gắng tạo ₫ược 1 kiến trúc tốt ₫ể :
‰ khi hệ thống ₫ược hiện thực theo kiến trúc này thì nó sẽ thỏa 
₫ược các yêu cầu và kinh phí tài nguyên ₫ề ra.
‰ việc hiện thực hệ thống theo kiến trúc là khả thi.
‰ SA không ₫ủ tốt khi không rõ ràng, không dễ hiểu hay không nhất 
quán hay không toàn diện.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 13
1.3 Một số thuật ngữ về SA
‰ Mẫu/Kiểu kiến trúc (Architectural style/pattern) : 
ƒ ₫ịnh nghĩa các kiểu phần tử và sự tương tác giữa chúng.
ƒ ₫ôi khi ₫ịnh nghĩa thêm việc ánh xạ chức năng cho phần tử
kiến trúc
‰ Kiến trúc tham khảo/kiến trúc ₫ặc thù cho lĩnh vực 
(Reference/domain specific architecture)
ƒ ₫ịnh nghĩa các kiểu phần tử và sự tương tác giữa chúng.
ƒ kiến trúc này ₫ược ứng dụng trong 1 lĩnh vực cụ thể
ƒ Định nghĩa cách thức mà chức năng của lĩnh vực ₫ược ánh xạ
vào phần tử kiến trú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 1 : Tổng quan về kiến trúc phần mềm
Slide 14
1.3 Một số thuật ngữ về SA
‰ Kiến trúc cho 1 họ ứng dụng tương tự (Product-line architecture)
ƒ áp dụng cho tập các phần mềm nội trong 1 công ty.
ƒ ₫ịnh nghĩa các kiểu phần tử, cách chúng tương tác nhau, cách 
chức năng ₫ược ánh xạ vào chúng.
ƒ cũng có thể ₫ịnh nghĩa 1 vài instance cụ thể của phần tử kiến 
trúc tương ứng.
ƒ Td các phần tử báo lỗi thường là giống nhau trên nhiều ứng 
dụng trong nhóm.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 15
1.3 Một số thuật ngữ về SA
‰ Kiến trúc phần mềm (Software architecture)
ƒ áp dụng cho 1 hệ thống phần mềm cụ thể
ƒ ₫ịnh nghịa các kiểu phần tử, cách chúng tương tác lẫn nhau, 
cách các chức năng của hệ thống ₫ược ánh xạ vào chúng.
ƒ miêu tả các instance mà tồn tại trong hệ thống phần mềm
ƒ Có chứa thông tin chi tiết cần cho việc thiết kế hệ thống phần 
mềm.
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 1 : Tổng quan về kiến trúc phần mềm
Slide 16
1.3 Một số thuật ngữ về SA
yesyesyesA software 
architecture
sometimesyesyesA product-line 
architecture
noyesyesA reference 
architecture
nosometimesyesAn architectural 
style
Defines instances 
of architecture 
elements
Defines the mapping of 
functionality to 
architecture elements
Defines element 
types and how 
they interact
Term 
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 17
1.3 Một số thuật ngữ về SA
ADL (architectural description language)
‰ cung cấp các ký hiệu miêu tả các phần tử kiến trúc như kiểu phần 
tử, instance của kiểu phần tử, nối kết các phần tử ₫ể tạo kiến trúc 
hoàn chỉnh
‰ ₫ược dùng chủ yếu nhất là trong cộng ₫ồng các người nghiên cứu
‰ Về lý thuyết : kiến trúc sư có thể dùng 1 ADL ₫ể ₫ặc tả bất kỳ mức 
kiến trúc phần mềm phần tử nào ₫ược miêu tả trong các slide 
trước.
‰ Trong thực tiển : không phải ADL nào cũng hỗ trợ ₫ầy ₫ủ việc ₫ặc 
tả cả 4 mức kiến trúc phần mềm.
‰ Một vài ADL có tool kèm theo.
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 1 : Tổng quan về kiến trúc phần mềm
Slide 18
Như vậy :
‰ chúng ta cần nghiên cứu kiến trúc phần mềm vì :
ƒ Xã hội chúng ta có quan hệ mật thiết với phần mềm máy tính
ƒ Các hệ thống phần mềm ₫ược sử dụng rất phức tạp
‰ SA nhắm tới ₫ộ phức tạp của các hệ thống cần xây dựng
‰ Mục ₫ích của môm học : 
ƒ Hiểu rõ SA là gì?
ƒ SA là lĩnh vực nổi cộm
ƒ Triết lý : chúng ta không nên tập trung thiết kế kiến trúc lý 
tưởng, mà nên tập trung vào việc xem xét cẩn thận các dung 
hòa. 
ƒ Chúng ta sẽ học cách nghiên cứu và ₫ánh giá các kiến trúc 
khác nhau, cũng như cách chọn 1 trong chúng làm kiến trúc 
của phần mềm cần xây dựng.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 19
1.3 Một số thuật ngữ về SA
Chu kỳ ABC
‰ SA là kết quả của các ảnh hưởng xã hội, nghiệp vụ, kỹ thuật.
‰ SA cũng ảnh hưởng lại các ảnh hưởng xã hội, nghiệp vụ, kỹ thuật.
‰ Như vậy, SA hiện tại sẽ ảnh hưởng ₫ến SA tương lai.
‰ Đây là chu kỳ ảnh hưởng ABC : Architecture Business Cycle
Organizational goals → requirements → SA → systems → future 
new organizational goals → 
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 1 : Tổng quan về kiến trúc phần mềm
Slide 20
1.3 Một số thuật ngữ về SA
Các người liên quan (Stakeholders)
‰ Kiến trúc phần mềm bị ảnh hưởng bởi nhiều người liên quan
ƒ Nhà quản lý : giá thấp, cố gắng sử dụng triệt ₫ể công nhân
ƒ Tiếp thị : giá thấp, nhanh chóng phân phối cho thị trường
ƒ Khách hàng : thời gian phân phối nhanh, không thay ₫ổi tường 
xuyên.
ƒ Ngưới dùng ₫ầu cuối : hành vi, hiệu suất, an ninh
ƒ Bảo trì : tính thay ₫ổi ₫ược.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 21
1.4 Kiến trúc và các thuộc tính chất lượng
‰ Kiến trúc phần mềm phải thỏa mãn các yêu cầu chức năng của 
phần mềm.
‰ Về chức năng của phần mềm : 
ƒ Phát biểu cơ bản chủ yếu về khả năng, dịch vụ, hành vi của 
phần mềm.
ƒ Nhưng ₫ôi khi là những thứ mà chỉ hoạt ₫ộng phát triển có liên 
quan ₫ến chúng :
à Hệ thống thường cần ₫ược thiết kế lại ₫ể ₫ảm bảo tính dễ
bảo trì, khả chuyển, khả thích nghi, tốc ₫ộ, an ninh, etc... 
(Maintainability, Portability, Scalability, Speed, Security,...)
à các thỏa hiệ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 1 : Tổng quan về kiến trúc phần mềm
Slide 22
1.4 Kiến trúc và các thuộc tính chất lượng
‰ Xác ₫ịnh các tiêu chí chất lượng là 1 phần của kiến trúc hệ thống : 
các thuộc tính chất lượng.
‰ Các thuộc tính trên là không-chức năng.
‰ Các thuộc tính chất lượng và thuộc tính chức năng thường trực 
giao nhau.
ƒ do ₫ó ta cần phân biệt các mối liên quan ₫ến chúng.
‰ chức năng : khả năng hệ thống làm ₫ược việc mà ta chờ ₫ợi.
‰ chức năng có thể ₫ạt ₫ược bằng cách dùng nhiều cấu trúc khác 
nhau.
ƒ hệ thống có thể chỉ là 1 module duy nhất chứ không có cấu 
trúc nào.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 23
1.4 Kiến trúc và các thuộc tính chất lượng
‰ Các thuộc tính chất lượng ₫ược chú ý trong khi thiết kế, hiện thực, 
phát triển. Không có thuộc tính nào phụ thuộc vào chỉ 1 công 
₫oạn.
‰ Kiến trúc có nguy cơ cho việc hiện thực nhiều thuộc tính chất 
lượng.
ƒ các thuộc tính chất lượng ₫ược thiết kế và ₫ánh giá ở mức kiến 
trúc.
‰ Kiến trúc không tạo trực tiếp các chất lượng này.
ƒ chúng chỉ có ₫ược thông qua hiện thực chi tiế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 1 : Tổng quan về kiến trúc phần mềm
Slide 24
1.5 Các thuộc tính chất lượng (Quality attributes)
‰ Chất lượng hệ thống : Availability, modifiability, performance, 
security, testability, usability
‰ chất lượng nghiệp vụ (Business qualities) : Time-to-market, etc
‰ chất lượng kiến trúc (Architecture qualities) : sự toàn vẹn về ý 
niệm, etc
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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ươn ...  trì :
‰ thời gian sửa chữa : cho ₫ến khi thất bại không còn thấy nữa
‰ tự sửa chữa 
‰ bảo trì : thời gian chết ₫ược lập lịch
‰ xác xuất : 
Mean time to fail/(mean time to fail+mean time to repair)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 33
1.6 Tính sẵn sàng ₫ể dùng ₫ược (Availability)
Kịch bản tổng quát về tính Availability :
Time interval of available system, availability time, 
time interval of degraded mode, repair time
Response 
measure
Detect event and record it/notify appropriate 
parties/disable event sources causing faults/failures/ 
be unavailable for an interval/ continue
Response
Normal operation or degraded modeEnvironment
System’s processors, communication channels, 
persistent storage, processes
Artifact
Fault: omission, crash, timing, responseStimulus
Internal/external to systemSource
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 1 : Tổng quan về kiến trúc phần mềm
Slide 34
1.7 Tính dễ sử dụng (Usability)
‰ Liên quan ₫ến : 
ƒ việc user thực hiện tác vụ mong muốn dễ dàng như thế nào
ƒ hệ thống cung cấp kiểu hỗ trợ nào cho user
‰ các vấn ₫ề về tính dễ sử dụng thường ₫ược khám phá khi xây 
dựng prototype và khi kiểm thử ₫ộ chấp nhận người dùng.
‰ Ở bước càng về sau của qui trình phát triển phần mềm và càng 
chi tiết kiến trúc thì nhu cầu sửa chữa sẽ có : lúc này chi phí ₫ắt 
hơn nhiều.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 35
1.7 Tính dễ sử dụng (Usability)
‰ Các lĩnh vực về tính dễ sử dụng
ƒ nghiên cứu các ₫ặc tính của hệ thống
ƒ việc dùng hệ thống 1 cách hiệu quả
ƒ tối thiểu hóa các hệ lụy của lỗi
ƒ ₫iều hợp hệ thống với các nhu cầu người dùng
ƒ làm tăng ₫ộ tin cậy và sự thỏa mãn của người 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 1 : Tổng quan về kiến trúc phần mềm
Slide 36
1.7 Tính dễ sử dụng (Usability)
Kịch bản tổng quát về tính dễ sử dụng :
Task time, number of errors, number of problems 
solved, user satisfaction, user knowledge gain, ratio 
of successful operations to total operations, amaount 
of time/data lost 55
Response 
measure
VariousResponse
At runtime and configure timeEnvironment
SystemArtifact
Wants to learn system features, use system 
efficiently, minimize impact of errors, adapt system, 
feel comfortable
Stimulus
End userSource
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 37
1.7 Tính dễ sử dụng (Usability)
Đáp ứng với kịch bản của tính dễ sử dụng
‰ Hệ thống cung cấp các ₫áp ứng ₫ể hỗ trợ :
ƒ việc nghiên cứu các ₫ặc tính của hệ thống
ƒ việc dùng hệ thống 1 cách hiệu quả
ƒ việc tối thiểu hóa hệ lụy của lỗi
ƒ việc thích nghi với hệ thống
ƒ việc cảm nhận ₫ộ tiệ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 1 : Tổng quan về kiến trúc phần mềm
Slide 38
1.8 Tính có thể hiệu chỉnh (Modifiability)
‰ liên quan ₫ến chi phí thay ₫ổi phần mềm
ƒ Cái gì có thể thay ₫ổi artifact?
ƒ sự thay ₫ổi ₫ược làm khi nào và bởi ai.
‰ Trong ₫ặc tả 1 thay ₫ổi
ƒ sự hiện thực mới phải ₫ược thiết kế, hiện thực, kiểm thử, phân 
phối lại.
ƒ tất cả chi phí về thời gian và tiền bạc.
ƒ thời gian và tiền bạc có thề ₫ược ₫o lường.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 39
1.8 Tính có thể hiệu chỉnh (Modifiability)
‰ Cái gì có thể thay ₫ổi artifact? Bất kỳ khía cạnh nào của hệ thống 
: thêm/bớt/cập nhật
ƒ các chức năng mà hệ thống thực hiện
ƒ nền tảng mà hệ thống chạy trên ₫ó : liên quan ₫ến tính khả
chuyển (HW, OS, MW)
ƒ môi trường hệ thống : các hệ thống khác tương tác với mình, 
giao thức tương tác.
ƒ các chỉ tiêu chất lượng : Reliability, performance, modifiability
ƒ khả năng : số user ₫ược hỗ trợ, số chức năng ₫ược hỗ trợ...
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 1 : Tổng quan về kiến trúc phần mềm
Slide 40
1.8 Tính có thể hiệu chỉnh (Modifiability)
‰ sự thay ₫ổi ₫ược làm khi nào và bởi ai?
ƒ ở bước hiện thực : thay ₫ổi mã nguồn
ƒ tại thời ₫iểm dịch
ƒ tại thời ₫iểm tích hợp phần mềm
ƒ tại thời ₫iểm thiết lập cấu hình
ƒ tại thời ₫ểm thi hành
‰ bởi developers, end users, system administrator
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 41
1.8 Tính có thể hiệu chỉnh (Modifiability)
Kịch bản tổng quát về tính Modifiability :
Costs in terms of number of elements affected, effort, 
money; extent to which this affects other QAs, functions
Response 
measure
Locates place in architecture to modify, makes 
modification w/o affecting other func., tests modif., deploys 
modif.
Response
Runtime, compile time, build time, design timeEnvironment
System UI, platform, environment, system that 
interoperates with target system
Artifact
Wishes to add/delete/modify/vary functionality, QA, 
capacity, etc
Stimulus
End user, developer, system administratorSource
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 1 : Tổng quan về kiến trúc phần mềm
Slide 42
1.9 Hiệu suất (Performance)
‰ liên quan ₫ến yếu tố thời gian : hệ thống tốn bao nhiêu lâu ₫ể ₫áp 
ứng khi 1 sự kiện xảy ra.
‰ các sự kiện : Interrupts, messages, requests from users, passage 
of time
‰ Độ phức tạp : số nguồn sự kiện và cách thức xảy ra.
‰ Cách thức sự kiện xảy ra :
ƒ ₫ịnh kỳ : mỗi 10ms, thường thấy trong các hệ thống real-time
ƒ Stochastic : xãy ra theo 1 phân bố xác xuất xác ₫ịnh
ƒ lác ₫ác (Sporadical)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 43
1.9 Hiệu suất (Performance)
‰ Đáp ứng của hệ thống : 
ƒ Độ trễ (Latency) : thời gian từ lúc kích thích xảy ra ₫ến lúc hệ
thống ₫áp ứng.
ƒ hạn cuối (Deadline) của việc xử lý
ƒ thông lượng của hệ thống (Throughput) : số giao tác mà hệ
thống có thể xử lý/giây
ƒ bất an của ₫áp ứng : sự thay ₫ổi ₫ộ trễ trong ₫áp ứng
ƒ số sự kiện không ₫ược xử lý : do hệ thống quá bận 
ƒ Mất dữ liệu : do hệ thống quá bậ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 1 : Tổng quan về kiến trúc phần mềm
Slide 44
1.9 Hiệu suất (Performance)
Kịch bản tổng quát về tính Modifiability :
Latency, deadline, throughput, jitter, miss rate, data 
loss
Response 
measure
Processes stimuli; changes level of serviceResponse
Normal mode, overload modeEnvironment
SystemArtifact
Periodic or stochastic or sporadic events occurStimulus
Independent sources (possibly from within system)Source
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 45
1.10 An ninh (Security)
‰ ₫ộ ₫o về năng lực của hệ thống trong việc 
ƒ kháng cự việc dùng bất hợp pháp
ƒ cung cấp dịch vụ cho người dùng hợp pháp
‰ Tấn công : cố gắng vi phạm tính an ninh
ƒ cố gắng bất hợp pháp ₫ể truy xuất dữ liệu/dịch vụ
ƒ cố gắng bất hợp pháp ₫ể thay ₫ổi dữ liệu
ƒ cố gắng buộc hệ thống từ chối các dịch vụ cho người dùng hợp 
phá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 1 : Tổng quan về kiến trúc phần mềm
Slide 46
1.10 An ninh (Security)
‰ các thí dụ tấn công :
ƒ trộm tiền bằng phương tiện ₫iện tử
ƒ trộm số card tài khoản ngân hàng (credit)
ƒ phá hủy file trên hệ thống máy tính
ƒ tấn công kiểu từ chối dịch vụ bởi virus, sâu máy tính.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 47
1.10 An ninh (Security)
‰ các thành phần an ninh : 
ƒ không thể từ chối : các giao tác không thể ₫ược từ chối bới bất 
kỳ bộ phận nào.
ƒ bí mật : dữ liệu/dịch vụ ₫ược bảo vệ từ việc truy xuất bất hợp 
pháp
ƒ toàn vẹn : dữ liệu/dịch vụ ₫ược cung cấp y như kỳ vọng.
ƒ bảo hiểm : các bộ phận trong giao tác chính là nó thật sự
ƒ sẳn sàng dùng : hệ thống sẵn sàng cho việc dùng hợp pháp
ƒ kiểm tra (Auditing)
ƒ hệ thống lưu dấu các hoạt ₫ộng của nó ₫ể có thể tái tạo lại 
chúng khi cần thiế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 1 : Tổng quan về kiến trúc phần mềm
Slide 48
1.10 An ninh (Security)
Kịch bản tổng quát về tính an ninh :
variousResponse 
measure
variousResponse
On/offline, (dis)connected, firewalled or openEnvironment
System services, data within systemArtifact
Try to: display data, change/delete data, access 
system services, reduce availability
Stimulus
Individual/system: identity, internal/external, 
authorization, access
Source
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 49
1.10 An ninh (Security)
‰ Đáp ứng kịch bản an ninh : 
ƒ xác nhận user
ƒ ẩn thông tin nhận dạng user
ƒ chặn/cho phép truy xuất dữ liệu/dịch vụ
ƒ thêm/bớt phép truy xuất dữ liệu/dịch vụ
ƒ ghi sổ việc truy xuất/cập nhật hay việc cố gắng chúng.
ƒ chứa dữ liệu trong ₫ịnh dạng xác ₫ịnh.
ƒ nhận biết các luật sử dụng/truy xuất
ƒ thông tin cho user trên các hệ thống khác
ƒ hạn chế tính sẵn sàng dùng của các dịch vụ.
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 1 : Tổng quan về kiến trúc phần mềm
Slide 50
1.10 An ninh (Security)
‰ Đo ₫áp ứng với kịch bản an ninh : 
ƒ Thời gian/nổ lực/tài nguyên ₫ể circumventing thành công các 
₫o lường an ninh.
ƒ Xác xuất phát hiện tấn công, nhận dạng kẻ tấn công.
ƒ Tỉ lệ phần trăm các dịch vụ vẫn dùng ₫ược trong khi có tấn 
công DoS.
ƒ Phục hồi dữ liệu/dịch vụ của hệ thống
ƒ Nới rộng dữ liệu/dịch vụ bị hỏng hay việc truy xuất hợp pháp bị
từ chối.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 51
1.11 Tính có thể kiểm thử (Testability)
‰ SW phô bày khiếm khuyết dễ dàng như thế nào trong lúc kiểm thử
ƒ Lưu ý hoạt ₫ộng kiểm thử chiếm khoảng 40% chi phí phát triển 
tổng thể hệ thống phần mềm.
‰ Xác xuất mà SW bị lỗi khi thi hành kiểm thử kế tiếp
ƒ giả sử phần mềm có ít nhất 1 lỗi
‰ Các ₫ộ ₫o ₫áp ứng
ƒ ₫ộ hiệu quả kiểm thử
ƒ kiểm thử chấp nhận ₫ược tốn bao nhiêu thời 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 1 : Tổng quan về kiến trúc phần mềm
Slide 52
1.11 Tính có thể kiểm thử (Testability)
‰ Nó phải có thể
ƒ kiểm soát ₫ược các dữ liệu nhập và trạng thái bên trong của 
mỗi thành phần.
ƒ quan sát ₫ược kết quả xuất.
‰ Dụng cụ kiểm thử : phần mềm ₫ặc dụng ₫ược thiết kế ₫ể thực thi 
SW cần kiểm thử
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 53
1.11 Tính có thể kiểm thử (Testability)
Ai làm và làm gì ?
‰ Ai kiểm thử : 
ƒ những nhà phát triển, kiểm thử, xác thực, user khác nhau.
ƒ ₫ây là bước cuối cùng của chu kỳ phát triển SW.
‰ kiểm thử cái gì :
ƒ các bộ phận code của SW
ƒ bảng thiết kế
ƒ hệ thống phần mềm tổng thể
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 1 : Tổng quan về kiến trúc phần mềm
Slide 54
1.11 Tính có thể kiểm thử (Testability)
Kịch bản tổng quát về tính an ninh :
Percent executable statements executed, probability of 
failure if fault exists, time to perform tests, length of 
longest dependency chain in a test, length of time to 
prepare test environment
Response 
measure
Provides access to state values; provides computed 
values; prepares test environment
Response
At design time, at development time, at compile time, at 
deployment time
Environment
Design part, code part, complete applicationArtifact
Analysis, architecture, design, class, subsystem 
integration completed, system delivered
Stimulus
Unit developer, increment integrator, system verifier, client 
acceptance tester, system user
Source
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 55
Các Stimuli của các thuộc tính chất lượng hệ thống :
Wants to learn system features, use system 
efficiently, minimize impact of errors, adapt system, 
feel comfortable
Usability
Analysis, architecture, design, class, subsystem 
integration completed, system delivered
Testability
Tries to: display data, change/delete data, access 
system services, reduce availability
Security
Periodic or stochastic or sporadic events occurPerformance
Request to add/delete/modify/vary functionality, QA, 
capacity, platform, etc
Modifiability
Unexpected event, nonoccurence of expected eventAvailabiliy
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 1 : Tổng quan về kiến trúc phần mềm
Slide 56
1.12 Các khái niệm trong giao tiếp
‰ kịch bản tổng quát : cần làm cho các người liên quan giao tiếp 
nhau
‰ mỗi cộng ₫ồng dùng thuật ngữ riêng cho từng thuộc tính.
‰ kích thích có thể xảy ra trong khi chạy phần mềm hay trước ₫ó
‰ công việc của kiến trúc sư : hiểu kích thích nào :
ƒ diễn tả cùng ocurence
ƒ là tích hợp trong kích thích khác
ƒ là ₫ộc lập
‰ khi nào các quan hệ giữa các kích thích là rõ ràng
ƒ giai tiếp chúng với các người liên quan
ƒ dùng ngôn ngử thích hợp cho mỗi loại người liên quan khác 
nhau
CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 1 : Tổng quan về kiến trúc phần mềm
Slide 57
1.13 Kết chương 
‰ Chương này ₫ã giới thiệu 1 số thuật ngữ, 1 số khái niệm ban ₫ầu 
liên quan ₫ến kiến trúc phần mềm ₫ể các chương sau chi tiết hóa 
nó. 
CuuDuongThanCong.com https://fb.com/tailieudientucntt

File đính kèm:

  • pdfbai_giang_kien_truc_phan_mem_chuong_1_tong_quan_ve_kien_truc.pdf