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 - Nguyễn Trung Hiệp

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)

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 - Nguyễn Trung Hiệp trang 1

Trang 1

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 - Nguyễn Trung Hiệp trang 2

Trang 2

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 - Nguyễn Trung Hiệp trang 3

Trang 3

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 - Nguyễn Trung Hiệp trang 4

Trang 4

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 - Nguyễn Trung Hiệp trang 5

Trang 5

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 - Nguyễn Trung Hiệp trang 6

Trang 6

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 - Nguyễn Trung Hiệp trang 7

Trang 7

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 - Nguyễn Trung Hiệp trang 8

Trang 8

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 - Nguyễn Trung Hiệp trang 9

Trang 9

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 - Nguyễn Trung Hiệp trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 29 trang xuanhieu 4280
Bạn đang xem 10 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 - Nguyễn Trung Hiệp", để 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 - Nguyễn Trung Hiệp

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 - Nguyễn Trung Hiệp
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
1.6 Tính sẵn sàng ₫ể dùng ₫ược (Availability)
Kịch bản tổng quát về tính Availability :
Source Internal/external to system
Stimulus Fault: omission, crash, timing, response
Artifact System’s processors, communication channels, 
 persistent storage, processes
Environment Normal operation or degraded mode
Response Detect event and record it/notify appropriate 
 parties/disable event sources causing faults/failures/ 
 be unavailable for an interval/ continue
Response Time interval of available system, availability time, 
measure time interval of degraded mode, repair time
 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 33
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.
 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 34
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
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 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 37
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.
 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 38
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
1.8 Tính có thể hiệu chỉnh (Modifiability)
Kịch bản tổng quát về tính Modifiability :
Source End user, developer, system administrator
Stimulus Wishes to add/delete/modify/vary functionality, QA, 
 capacity, etc
Artifact System UI, platform, environment, system that 
 interoperates with target system
Environment Runtime, compile time, build time, design time
Response Locates place in architecture to modify, makes 
 modification w/o affecting other func., tests modif., deploys 
 modif.
Response Costs in terms of number of elements affected, effort, 
measure money; extent to which this affects other QAs, functions
 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 41
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)
 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 42
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
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 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 45
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.
 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 46
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
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 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 49
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.
 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 50
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
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 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 53
1.11 Tính có thể kiểm thử (Testability)
Kịch bản tổng quát về tính an ninh :
Source Unit developer, increment integrator, system verifier, client 
 acceptance tester, system user
Stimulus Analysis, architecture, design, class, subsystem 
 integration completed, system delivered
Artifact Design part, code part, complete application
Environment At design time, at development time, at compile time, at 
 deployment time
Response Provides access to state values; provides computed 
 values; prepares test environment
Response Percent executable statements executed, probability of 
measure failure if fault exists, time to perform tests, length of 
 longest dependency chain in a test, length of time to 
 prepare test environment
 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 54
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
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ó. 
 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 57

File đính kèm:

  • pdfbai_giang_kien_truc_phan_mem_chuong_1_tong_quan_ve_kien_truc.pdf