D) CÁC CÁCH BIỂU DIỄN CỦA MÔ HÌNH PHÂN TÍCH
c. Kiến trúc và đặc điểm của hệ thống
Kiến trúc hệ thống ảnh hưởng tới sự thực thi, tính hiệu quả, tính phân tán và bảo trì của hệ thống. Kiểu và cấu trúc được lựa chọn cho một ứng dụng cũng có thể phụ thuộc vào những yêu cầu phi chức năng của hệ thống:
- Tính hiệu năng (Performance): Nếu hiệu năng là một yêu cầu quan trọng đối với hệ thống thì kiến trúc nên được thiết kế để tập trung vào những chức năng quan trọng với một số lượng nhỏ những hệ thống con, giảm thiểu các mối liên lạc trao đổi thông tin có thể giữa những hệ thống con này. Điều này có nghĩa là nên sử dụng những thành phần lớn (large_grain) hơn là những thành phần nhỏ (fine_grain) để giảm sự tương tác qua lại giữa các thành phần.
- Tính bảo mật (security): Nếu bảo mật là một yêu cầu quan trọng, nên sử dụng kiến trúc phân tầng, như vậy những thông tin quan trọng nhất sẽ được bảo vệ trong tầng sâu nhất và việc
kiểm tra tính an toàn phải được tiến hành một cách chắc chắn đối với những tầng này.
- Tính an toàn (safety): Nếu an toàn là một yêu cầu quan trọng, hệ thống nên được thiết kế sao cho những chức năng đòi hỏi tính an toàn cao nằm tập trung trong một hệ thống con hoặc nằm trong một số ít những hệ thống con. Việc này sẽ giảm được chi phí và những vấn đề phát sinh trong việc thẩm định (validation) tính an toàn, đồng thời có thể giảm được chi phí để mua và bảo trì các công cụ bảo vệ có liên quan.
- Tính sẵn sàng (availability): Nếu tính sẵn sàng là một yêu cầu quan trọng, kiến trúc nên được thiết kế có nhiều thành phần dư thừa để nó có thể thay thế và cập nhật các thành phần mà
không cần phải dừng hệ thống.
- Tính bảo trì (maintainability): Nếu tính bảo trì là một yêu cầu quan trọng, kiến trúc hệ thống nên được thiết kế bằng việc sử dụng những thành phần nhỏ (fine_grain), những thành phần chứa chính nó (self-contained) có thể dễ dàng thay đổi. Nên sử dụng phương án chia dữ liệu theo khách hàng, chứ không nên phân chia theo cấu trúc dữ liệu.
Có thể nhận thấy sự xung đột trong các kiến trúc trên một cách rõ ràng. Ví dụ: sử dụng những thành phần kích thước lớn để tăng hiệu suất nhưng giảm tính bảo trì; đưa ra những dữ liệu dư thừa (dự trữ) để nâng cao tính sẵn sàng nhưng lại làm cho tính bảo mật khó kiểm soát hơn; tập trung vào những tính năng liên quan đến độ an toàn có nghĩa là tăng nhu cầu trao đổi thông tin, vì thế làm giảm hiệu suất của hệ thống. Nếu hai yếu tố mâu thuẫn nhau đều quan trọng với hệ thống thì cần phải có sự thỏa thuận để tìm ra giải pháp chung.
6.2.2. Các quyết định thiết kế kiến trúc
Thiết kế kiến trúc là một công việc sáng tạo, đòi hỏi phải đưa ra được một cách tổ chức hệ thống có thể đảm bảo được những yêu cầu chức năng và phi chức năng. Bởi nó là một tiến trình sáng tạo, các hoạt động bên trong tiến trình này hoàn toàn khác nhau, phụ thuộc vào kiến trúc hệ thống và những yêu cầu đặc biệt của hệ thống.
Trong quá trình thiết kế kiến trúc, người làm thiết kế kiến trúc thực hiện những quyết định cơ bản và có ảnh hưởng sâu sắc tới hệ thống cũng như tiến trình phát triển. Dựa trên kiến thức và kinh nghiệm, họ phải trả lời những câu hỏi cơ bản sau:
- Có kiến trúc ứng dụng chung có thể sử dụng không?
- Hệ thống sẽ được phân tán như thế nào?