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 (Availablllty) 1.7 Tính dễ sử dụng (Usablllty)

1.8 Tính có thể hiệu chỉnh (Modlflability) 1.9 Hiệu suất (Performance)

1.10 An ninh (Security)

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

pdf 29 trang xuanthi 28/12/2022 1240
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.

File đính kèm:

  • pdfbai_giang_kien_truc_phan_mem_chuong_1_tong_quan_ve_kien_truc.pdf

Nội dung text: 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.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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 3 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ềKhoam. Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 4
  2. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 7 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ị. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 8
  3. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 11 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. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 12
  4. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 15 1.3 Một số thuật ngữ về SA Term Defines element Defines the mapping of Defines instances types and how functionality to of architecture they interact architecture elements elements An architectural yes sometimes no style A reference yes yes no architecture A product-line yes yes sometimes architecture A software yes yes yes architecture Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 16
  5. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 19 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. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 20
  6. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 23 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 Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 24
  7. 1.5 Các thuộc tính chất lượng (Quality attributes) Các phần tử của kịch bản QA ‰ nguồn kích thích (stimulus) : con người/hệ thống máy tính/cơ chế ₫iều khiển (actuator) tạo kích thích ‰ kích thích : ₫iều kiện cần ₫ược ₫ịnh giá khi nó ₫ến hệ thống. ‰ môi trường : các ₫iều kiện hiện hành của hệ thống (quá tải/₫ang chạy/bị lỗi/ ) ‰ Artifact : phần tử bị kích thích (hệ thống tổng thể/1 phần của hệ thống) ‰ Đáp ứng : hoạt ₫ộng xảy ra khi kích thích ₫ến. ‰ Đo lường ₫áp ứng : ₫áp ứng nên ₫ược ₫o theo 1 cách nào ₫ó ₫ể yêu cầu có thể ₫ược kiểm tra. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 27 1.5 Các thuộc tính chất lượng (Quality attributes) QA scenarios ‰ Các kịch bản QA tổng quát : ƒ ₫ộc lập với hệ thống cụ thể ƒ có thể thích hợp với bất kỳ hệ thống nào ‰ Các kịch bản QA cụ thể : ƒ ₫ặc thù cho 1 hệ thống riêng biệt ₫ang xem xét ƒ cùng vai trò như các usecase trong ₫ặc tả các yêu cầu chức năng phần mềm. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 28
  8. 1.6 Tính sẵn sàng ₫ể dùng ₫ược (Availability) ‰ Availability liên quan ₫ến : ƒ cách mà các thất bại của hê thống ₫ược phát hiện ƒ thất bại của hệ thống xãy ra thường xuyên như thế nào ƒ cái gì xảy ra khi 1 thất bại xảy ra. ƒ hệ thống ₫ược phép không thể hoạt ₫ộng bao lâu ƒ Khi nào các thất bại có thể xảy ra an toàn ƒ Cách ngăn thất bại ƒ Loại cảnh báo nào ₫ược ₫òi hỏi khi 1 thất bại xảy ra. Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 31 1.6 Tính sẵn sàng ₫ể dùng ₫ược (Availability) Sửa chữa và bảo 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) Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 32
  9. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 35 1.7 Tính dễ sử dụng (Usability) Kịch bản tổng quát về tính dễ sử dụng : Source End user Stimulus Wants to learn system features, use system efficiently, minimize impact of errors, adapt system, feel comfortable Artifact System Environment At runtime and configure time Response Various Response Task time, number of errors, number of problems measure solved, user satisfaction, user knowledge gain, ratio of successful operations to total operations, amaount of time/data lost 55 Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 36
  10. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 39 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 Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 40
  11. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 43 1.9 Hiệu suất (Performance) Kịch bản tổng quát về tính Modifiability : Source Independent sources (possibly from within system) Stimulus Periodic or stochastic or sporadic events occur Artifact System Environment Normal mode, overload mode Response Processes stimuli; changes level of service Response Latency, deadline, throughput, jitter, miss rate, data measure loss Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 44
  12. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 47 1.10 An ninh (Security) Kịch bản tổng quát về tính an ninh : Source Individual/system: identity, internal/external, authorization, access Stimulus Try to: display data, change/delete data, access system services, reduce availability Artifact System services, data within system Environment On/offline, (dis)connected, firewalled or open Response various Response various measure Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 48
  13. 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 Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 51 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ử Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 52
  14. Các Stimuli của các thuộc tính chất lượng hệ thống : Availabiliy Unexpected event, nonoccurence of expected event Modifiability Request to add/delete/modify/vary functionality, QA, capacity, platform, etc Performance Periodic or stochastic or sporadic events occur Security Tries to: display data, change/delete data, access system services, reduce availability Testability Analysis, architecture, design, class, subsystem integration completed, system delivered Usability Wants to learn system features, use system efficiently, minimize impact of errors, adapt system, feel comfortable Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 55 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 Khoa Khoa học & Kỹ thuật Máy tính Môn : Kiến trúc phần mềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về kiến trúc phần mềm © 2015 Slide 56