Categories
Software Architecture

Khung Nhìn Và Tài Liệu Kiến Trúc (Bass Và Những Người Khác) 4: Lập Tài Liệu Một Khung Nhìn

Lập tài liệu một khung nhìn

  • Cần tổ chức tiêu chuẩn
  • Phân bổ thông tin cụ thể cho các phần cụ thể =>
    • Người viết tài liệu có thể tiếp cận công việc (task)
    • Người viết tài liệu có thể nhận ra việc hoàn thành
    • Người đọc tài liệu tìm thấy thông tin quan tâm

Lập tài liệu một khung nhìn – 7 phần

  • Bản trình bày chính
  • Danh mục phần tử
  • Biểu đồ ngữ cảnh
  • Hướng dẫn biến đổi
  • Nền tảng kiến trúc
  • Bảng chú giải thuật ngữ
    • Và mô tả ngắn gọn về từng phần
  • Thông tin khác

Mẫu Khung nhìn

Mẫu Khung nhìn.

Bản trình bày chính

  • Các phần tử và mối quan hệ giữa chúng với nhau để điền vào khung nhìn
    • Không nhất thiết phải là tất cả chúng
  • Nên chứa thông tin được truyền tải về hệ thống
    • Exp: hoạt động bình thường ở đây, xử lý ngoại lệ và lỗi trong tài liệu
  • Thường là đồ họa, đôi khi là dạng bảng

Danh mục phần tử

  • Chi tiết ít nhất các phần tử và mối quan hệ được hiển thị trong bản trình bày chính
  • Sao lưu cho bản trình bày chính
  • Phần tử và quan hệ bị bỏ qua trong bản trình bày chính
    • Thuộc ở đây
      • Giới thiệu và giải thích
  • Mô tả
    • Hành vi của các phần tử
    • Giao diện của các phần tử

Biểu đồ ngữ cảnh

  • Cho biết cách hệ thống trong khung nhìn liên quan đến môi trường theo từ vựng của khung nhìn
  • Exp: Khung nhìn C&C
    • Hiển thị thành phần và trình kết nối nào tương tác với các thành phần và trình kết nối bên ngoài
    • Thông qua giao diện và giao thức nào

Hướng dẫn biến đổi

  • Chỉ ra cách thực hiện bất kỳ điểm biến đổi nào thuộc một phần của kiến trúc trong khung nhìn
  • Ví dụ về biến đổi: các dòng sản phẩm
  • Bao gồm tài liệu về từng điểm thay đổi trong kiến trúc, bao gồm
    • Các tùy chọn trong đó lựa chọn được thực hiện
      • Khung nhìn mô-đun : các tham số khác nhau của các mô-đun
      • Khung nhìn C&C: các ràng buộc về sao chép, lập lịch, lựa chọn giao thức
      • Khung nhìn phân bổ: các điều kiện cấp phát
    • Thời gian ràng buộc của tùy chọn
      • Thiết kế, xây dựng, thời gian chạy

Nền tảng kiến trúc

  • Giải thích lý do tại sao thiết kế được phản ánh trong khung nhìn ra đời
  • Tại sao lại thiết kế như vậy
  • Cung cấp lập luận thuyết phục rằng nó là đúng đắn
  • Bao gồm
  • Cơ sở lý luận: tại sao các quyết định được phản ánh trong khung nhìn được đưa ra và tại sao các lựa chọn thay thế bị từ chối
  • Kết quả phân tích: biện minh cho thiết kế hoặc giải thích những gì sẽ phải thay đổi trong trường hợp sửa đổi
  • Các giả định được phản ánh trong thiết kế

Thông tin khác

  • Nội dung của phần này thay đổi tùy theo thông lệ tiêu chuẩn của tổ chức
  • Thông tin phi kiến trúc có thể ở đây
  • Có thể bao gồm
    • Thông tin quản lý
      • Quyền tác giả, lịch sử thay đổi, dữ liệu kiểm soát cấu hình
    • Tham chiếu đến các phần cụ thể của tài liệu yêu cầu để truy xuất nguồn gốc
      • Bởi kiến trúc sư
  • Phần đầu của phần này phải trình bày chi tiết các nội dung cụ thể của nó

Lập tài liệu hành vi

  • Thông tin cấu trúc (khung nhìn) không đủ
    • Exp. bế tắc không được nắm bắt
  • Mô tả hành vi thêm thông tin về
    • Thứ tự các tương tác giữa các phần tử
    • Cơ hội đồng thời
    • Phụ thuộc thời gian của các tương tác
  • Hành vi được ghi lại về
    • Một phần tử hoặc nhóm phần tử hoạt động trong ngữ cảnh

Hành vi nào để mô hình hóa

  • Hệ thống nhúng thời gian thực
    • Thuộc tính thời gian
    • Thời gian của các sự kiện
  • Hệ thống ngân hàng
    • Chuỗi sự kiện quan trọng hơn thời gian thực
      • Giao dịch nguyên tử (Atomic transaction)
      • Thủ tục khôi phục (Rollback procedure)

Ký hiệu hành vi

  • Biểu đồ trạng thái (Statechart diagrams)
    • Hình thức đối với hệ thống phản ứng
    • Suy luận về toàn bộ hệ thống
    • Tính trừu tượng và đồng thời
    • Có thể trả lời “thời gian đáp ứng với kích thích này có luôn nhỏ hơn 0,5 s không?”
  • Biểu đồ trình tự (Sequence diagrams)
    • Ghi lại một chuỗi các trao đổi kích thích
    • Hợp tác về các cá thể thành phần (component instances) và tương tác của chúng
    • Trình tự thời gian được thể hiện
    • Có thể trả lời “những hoạt động song song nào xảy ra khi hệ thống phản ứng với những kích thích cụ thể trong những điều kiện cụ thể này?

Lập tài liệu giao diện

  • Giao diện: ranh giới giữa các thực thể
    • Các phần tử vượt ranh giới tương tác và giao tiếp
  • Giao diện mang tính kiến trúc
    • Chúng mang các thuộc tính có thể nhìn thấy bên ngoài đối với các phần tử khác
  • Bao gồm
    • Đặt tên và xác định giao diện: chữ ký
    • Ghi lại cú pháp và ngữ nghĩa của nó

Chữ ký

  • Exp: tài nguyên giao diện là chương trình có thể truy xuất được
    • Chữ ký đặt tên cho chương trình
    • Chữ ký định nghĩa các tham số của chúng
  • Các tham số được định nghĩa bởi chúng
    • Thứ tự, kiểu dữ liệu, giá trị của chúng có bị thay đổi bởi chương trình hay không
  • Tệp tiêu đề C / C ++, giao diện Java

Sử dụng chữ ký

  • Có thể cho phép kiểm tra bản dựng tự động
  • Khớp chữ ký
    • Đảm bảo hệ thống biên dịch hoặc liên kết thành công
    • Không đảm bảo hệ thống hoạt động thành công
    • Chúng ta cần ngữ nghĩa của giao diện cho điều đó
      • Điều gì sẽ xảy ra khi tài nguyên được đưa vào sử dụng

Đặc tả giao diện có gì?

  • Tuyên bố về các thuộc tính của phần tử mà kiến trúc sư chọn để công bố
  • Kiến trúc sư nên chọn:
    • Các thông tin được phép và thích hợp để giả định về phần tử
    • Các thông tin không có khả năng thay đổi
    • Cần cân bằng
    • Tập trung vào cách các phần tử tương tác với môi trường hoạt động của chúng, vào các hiện tượng có thể nhìn thấy bên ngoài
      • Không phải vào cách phần tử được hiện thực!

Chỉ lập tài liệu một lần

  • Các mô-đun tương ứng với một / nhiều phần tử trong khung nhìn C&C
    • Các phần tử này có khả năng có giao diện tương tự / giống hệt nhau
    • Lập tài liệu ở cả hai nơi: không cần sao chép
    • Tham khảo giao diện được chỉ định trước đó và chỉ thêm thông tin cụ thể vào khung nhìn được chỉ định sau đó

Mẫu tài liệu hóa giao diện

  • Cần thiết; một khả năng
    1. Nhận dạng giao diện
    2. Tài nguyên được cung cấp
      • Cú pháp, ngữ nghĩa, hạn chế sử dụng tài nguyên
    3. Định nghĩa kiểu dữ liệu
    4. Định nghĩa ngoại lệ
    5. Sự thay đổi được cung cấp bởi giao diện
    6. Đặc điểm thuộc tính chất lượng của giao diện
    7. Yêu cầu của phần tử
    8. Cơ sở lý luận và các vấn đề thiết kế
    9. Hướng dẫn sử dụng

Lập tài liệu giao diện phần tử

Lập tài liệu giao diện phần tử.

Nhận dạng giao diện

  • Đối với các phần tử có nhiều giao diện
    • Nhận dạng các giao diện riêng lẻ để phân biệt chúng
    • Đặt tên, số phiên bản

Tài nguyên được cung cấp

  • Trung tâm của tài liệu giao diện: các tài nguyên mà phần tử cung cấp
    • Cú pháp của chúng: chữ ký tài nguyên
      • Bao gồm thông tin mà chương trình khác sẽ cần để viết một chương trình đúng cú pháp sử dụng tài nguyên
      • Tên, tên và kiểu dữ liệu của các đối số, v.v.
    • Ngữ nghĩa của chúng: kết quả của việc gọi tài nguyên
    • Bất kỳ hạn chế nào đối với việc sử dụng chúng

Ngữ nghĩa tài nguyên

  • Bằng ngôn ngữ tự nhiên, hoặc đại số Boolean, hoặc dấu vết
  • Cái gì:
    • Gán giá trị cho dữ liệu mà tác nhân gọi tài nguyên có thể truy cập
    • Các sự kiện được báo hiệu, thông điệp được gửi
    • Hành vi trong tương lai của các tài nguyên khác do sử dụng tài nguyên
    • Kết quả quan sát được của con người
    • Thực thi tài nguyên: nguyên tử (atomic) / bị tạm dừng (suspended) / bị gián đoạn (interrupted)

Hạn chế sử dụng tài nguyên

  • Các trường hợp mà tài nguyên có thể được sử dụng
    • Cần thiết khởi tạo hoặc các phương thức được gọi trước
    • Giới hạn về số lượng tác nhân có thể tương tác với tài nguyên
    • Truy cập đọc / ghi
    • Vấn đề bảo mật
    • v.v.

Định nghĩa kiểu dữ liệu

  • Nếu tài nguyên giao diện sử dụng kiểu dữ liệu không chuẩn, kiến trúc sư cần truyền đạt định nghĩa của kiểu đó
    • Nếu được định nghĩa bởi phần tử khác: tham chiếu
  • Người lập trình cần biết
    • Cách khai báo biến và hằng của kiểu dữ liệu
    • Cách để viết các giá trị chữ trong kiểu dữ liệu
    • Các phép toán và so sánh nào có thể được thực hiện trên các thành viên của kiểu dữ liệu
    • Cách chuyển đổi các giá trị của kiểu dữ liệu thành các kiểu dữ liệu khác

Định nghĩa ngoại lệ

  • Các ngoại lệ do tài nguyên giao diện đưa ra
  • Cùng một ngoại lệ có thể được đặt ra bởi nhiều tài nguyên
    • Liệt kê các ngoại lệ của từng tài nguyên
    • Định nghĩa chúng trong một từ điển được thu thập riêng
    • Xử lý ngoại lệ chung cũng được định nghĩa ở đây

Khả năng thay đổi được cung cấp bởi giao diện

  • Giao diện có cho phép cấu hình phần tử không?
    • Nếu vậy, hãy lập tài liệu
      • Các tham số cấu hình
      • Ảnh hưởng của chúng đến ngữ nghĩa của giao diện
    • Exp: dung lượng của cấu trúc dữ liệu hiển thị, hiệu suất của các thuật toán cơ bản
    • Cái gì
      • Tên và phạm vi giá trị cho mỗi tham số
      • Thời gian khi giá trị thực của nó bị ràng buộc

Các đặc điểm thuộc tính chất lượng của giao diện

  • Ghi lại các đặc điểm thuộc tính chất lượng mà giao diện làm cho người sử dụng phần tử biết
  • Exp: các ràng buộc đối với việc triển khai các phần tử sẽ nhận ra giao diện

Yêu cầu của phần tử

  • Tài nguyên cụ thể, được đặt tên do các phần tử khác cung cấp
    • Cú pháp, ngữ nghĩa, bất kỳ hạn chế sử dụng nào
  • Thường thuận tiện để ghi lại thông tin này như một tập hợp các giả định mà phần tử đã đưa ra về hệ thống
    • Chúng có thể được xem xét bởi các chuyên gia có thể xác nhận hoặc bác bỏ các giả định trước khi thiết kế đã tiến triển quá xa

Cơ sở lý luận và các vấn đề thiết kế

  • Kiến trúc sư cần ghi lại lý do thiết kế giao diện phần tử
    • Động lực đằng sau thiết kế, các ràng buộc, thỏa hiệp
    • Được coi là thiết kế thay thế
    • Tại sao ở trên bị từ chối
    • Nhận thức của kiến trúc sư về việc thay đổi giao diện trong tương lai

Hướng dẫn sử dụng

  • Ngữ nghĩa của tài nguyên:
    • Tài nguyên được cung cấp + Yêu cầu của phần tử
  • Đôi khi không đủ
    • Ngữ nghĩa cần được lý luận về CÁCH một số lượng lớn các tương tác riêng lẻ liên quan với nhau
    • Giao thức: chuỗi các tương tác được ghi lại
      • Toàn bộ hành vi của tương tác, hoặc
      • Các mô hình sử dụng mà nhà thiết kế phần tử dự kiến sẽ đưa ra nhiều lần
    • Mô hình hành vi tĩnh hữu ích

Leave a Reply

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