Skip to the content
Yêu cầu đối với ADL
- Cung cấp các mô hình, ký hiệu, công cụ để mô tả các thành phần kiến trúc và tương tác của chúng
- Để xử lý các thiết kế quy mô lớn, cấp cao
- Để hỗ trợ sự thích ứng của các thiết kế với các hiện thực cụ thể
- Để hỗ trợ các trừu tượng do người dùng định nghĩa (user-defined abstractions)
- Để hỗ trợ các trừu tượng dành riêng cho ứng dụng (application-specific abstractions)
- Để hỗ trợ việc lựa chọn nguyên tắc các mô hình kiến trúc (principled selection of architectural paradigms)
ADL và môi trường
- Mối quan hệ chặt chẽ giữa ADL và môi trường của nó
- ADL: mô tả chính xác
- Môi trường: (tái) sử dụng các mô tả
- ADL lý tưởng sẽ hỗ trợ
- Thành phần
- Tính trừu tượng
- Khả năng tái sử dụng
- Cấu hình
- Tính không đồng nhất
- Phân tích
Thành phần
- Mô tả một hệ thống là cấu thành của các thành phần và kết nối độc lập
- Các khía cạnh
- Chia một hệ thống phức tạp (theo thứ bậc) thành các phần nhỏ hơn
- Lắp ráp một hệ thống lớn từ các phần tử cấu thành
- Các phần tử độc lập
- Có thể được hiểu tách biệt khỏi hệ thống
- Tách các vấn đề của cấp độ thực hiện với các vấn đề của cấp độ kiến trúc
Thành phần, 2
- Tên khác: mô-đun
- Quy tắc bao đóng: có thể xem các thực thể vừa là nguyên thủy (primitives) vừa là cấu trúc hợp phần (composites)
- Ở các mức độ trừu tượng khác nhau
- Quy tắc độc lập: có thể sử dụng lại các bộ phận của hợp phần
Thành phần, 3
- Cần các quy tắc hợp thành rõ ràng và trừu tượng
- Đường ống và bộ lọc
- Trình tự của đường ống và bộ lọc
- Hệ thống phân lớp
- Tập hợp các lớp trừu tượng tương tác theo các quy tắc nhất định
- Bộ lọc có thể được phân rã bên trong
- Một hệ thống đường ống và bộ lọc khác
- Thể hiện của một cái gì đó khác
- Bộ lọc có thể được sử dụng trong bất kỳ hệ thống chuyển đổi luồng dữ liệu nào
- Có thể sử dụng ống để truyền dữ liệu
Tính trừu tượng
- Cho phép mô tả vai trò trừu tượng của các phần tử và sự tương tác của chúng trong SA ở mức độ mà các nhà thiết kế hiểu rõ
- Dễ hiểu (Clearly)
- Rõ ràng (Explicitly)
- Trực giác (Intuitively)
- Loại bỏ các chi tiết không cần thiết nhưng vẫn tiết lộ các thuộc tính quan trọng
- Ngôn ngữ lập trình cấp cao: ngăn chặn sử dụng thanh ghi, nhưng tiết lộ các trừu tượng luồng điều khiển tuần tự
- Giao diện (programming language module interfaces): ngăn chặn các vấn đề hiện thực, tiết lộ định nghĩa/sử dụng các phụ thuộc
Tính trừu tượng, 2
- Cần thiết để biểu diễn cho các mẫu kiến trúc mới và các hình thức tương tác mới giữa chúng dưới dạng trừu tượng hạng nhất
- Cấp độ kiến trúc của thiết kế
- Hình thức trừu tượng khác nhau, để bộc lộ cấu trúc cấp cao
- Vai trò riêng biệt của từng phần tử trong cấu trúc cấp cao là rõ ràng
- Ví dụ: mối quan hệ máy khách-máy chủ
Khả năng tái sử dụng
- Tái sử dụng các thành phần, kết nối, kiểu kiến trúc trong các mô tả kiến trúc khác nhau
- Tái sử dụng các mẫu chung của các thành phần và kết nối
- Họ SA như một tập hợp các phần tử kiến trúc kết thúc mở
- Ràng buộc về cấu trúc và ngữ nghĩa
- Khác biệt với việc tái sử dụng các thành phần từ thư viện
- Đó là các thành phần hoàn toàn đóng / tham số hóa, giữ lại danh tính, là các lá của cấu trúc hệ thống “được cấu thành từ” (is-composed-of)
- Sử dụng lại các mẫu chung của các thành phần và trình kết nối: khởi tạo thêm, sao chép không giới hạn các quan hệ, tái sử dụng các tập hợp có cấu trúc của các nút bên trong
Khả năng tái sử dụng, 2
- Các hệ thống hiếm khi được hình thành một cách cô lập
- Các trường hợp của một họ các hệ thống tương tự có chung nhiều đặc tính kiến trúc
- Thuộc tính dùng chung
- Cấu trúc: cấu trúc liên kết cụ thể của thành phần và kết nối
- Ràng buộc trong việc sử dụng các phần tử kiến trúc nhất định
- Chúng ta cần tập hợp các mô-đun được tham số hóa
- Ví dụ: kiến trúc đường ống: có đường ống, bộ lọc và ràng buộc cấu trúc liên kết là tuyến tính
Cấu hình
- Mô tả kiến trúc nên bản địa hóa mô tả cấu trúc hệ thống
- Độc lập với các phần tử được cấu trúc
- Cho phép cấu hình lại động
- Khả năng phát triển
- Tạo / xóa các thành phần, các tương tác được bắt đầu
- Cho phép hiểu và thay đổi cấu trúc kiến trúc
- Không cần kiểm tra các thành phần riêng lẻ
- ADL: nên tách phần mô tả của các cấu thành khỏi phần của các phần tử
- Suy luận về bố cục nói chung
Tính không đồng nhất
- Kết hợp nhiều mô tả kiến trúc không đồng nhất
- Khả năng kết hợp các kiểu kiến trúc khác nhau trong một hệ thống duy nhất
- Thành phần A giao tiếp với thành phần B thông qua một đường ống, nhưng cũng truy cập cơ sở dữ liệu được chia sẻ bằng một truy vấn
- Các cấp độ mô tả kiến trúc khác nhau nên được phép sử dụng các thành ngữ kiến trúc khác nhau
- Khả năng kết hợp các thành phần được viết bằng các ngôn ngữ khác nhau
- Mô tả kiến trúc ở mức độ trừu tượng cao hơn so với các thuật toán và cấu trúc dữ liệu được sử dụng để triển khai
Phân tích
- Có thể thực hiện các phân tích đa dạng và phong phú về mô tả kiến trúc
- Mỗi kiểu tạo điều kiện cho một loại thuộc tính nhất định
- Đường ống và bộ lọc: có thể phân tích thông lượng, điều tra bế tắc và sử dụng tài nguyên, suy ra hành vi I / O của hệ thống từ hành vi của các bộ lọc
- Có thể điều chỉnh các công cụ phân tích mục đích đặc biệt cho các loại kiến trúc
- Suy luận tự động và không tự động về mô tả kiến trúc
Phân tích, 2
- Quan trọng đối với hình thức kiến trúc
- Nhiều thuộc tính kiến trúc thú vị là động
- Ví dụ
- Nếu trình kết nối được liên kết với giao thức, việc sử dụng trình kết nối có đúng trong ngữ cảnh của nó không?
- Thời gian, hiệu suất, sử dụng tài nguyên có thể hỗ trợ lý luận liệu SA có đầy đủ hay không
- Các phân tích đa dạng => không có khung ngữ nghĩa đơn lẻ nào là đủ
- Có thể liên kết các thông số kỹ thuật với các kiến trúc khi chúng trở nên liên quan đến các thành phần, trình kết nối, kiểu cụ thể