Categories
Software Architecture

Ngôn Ngữ Mô Tả Kiến Trúc 2: Yêu Cầu Đối Với ADL

Yêu cầu đối với ADL

  1. 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
  2. Để xử lý các thiết kế quy mô lớn, cấp cao
  3. Để hỗ trợ sự thích ứng của các thiết kế với các hiện thực cụ thể
  4. Để hỗ trợ các trừu tượng do người dùng định nghĩa (user-defined abstractions)
  5. Để hỗ trợ các trừu tượng dành riêng cho ứng dụng (application-specific abstractions)
  6. Để 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 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ể

Leave a Reply

Your email address will not be published. Required fields are marked *