Meta class đóng vai trò như 1 bản mẫu Template (Chuẩn hóa, tái sử dụng, tự động hóa)
Để làm rõ hơn về cú pháp mô hình meta của AUTOSAR, lần này chúng ta sẽ tìm hiểu về meta-class “Implementation”.
“Implementation” meta-class là gì?
Trong tiêu chuẩn AUTOSAR, “Implementation” là một meta-class trừu tượng (được hiển thị bằng chữ nghiêng, nghĩa là không thể thiết kế trực tiếp). Meta-class này có mối quan hệ cha/con với hai meta-class kế thừa từ nó:
SwcImplementation
Liên quan đến SW Component (ASW) (tương ứng với số 1 trong hình minh họa).
BswImplementation
Liên quan đến các Module BSW (tương ứng với số 2 trong hình minh họa).
(Lưu ý): Xem cấu trúc của “Implementation” meta-class trong hình minh họa dưới đây để hiểu rõ hơn về mối quan hệ này.
Meta-class “SwcImplementation” được định nghĩa thông qua thiết kế, trong khi “BswImplementation” được định nghĩa thông qua cấu hình bằng Công cụ Cấu hình (Configuration Tool).
(Lưu ý): Kế thừa (Inheritance) ở đây mang ý nghĩa tương tự như trong các ngôn ngữ lập trình hướng đối tượng như C++ hay Java. Nghĩa là các meta-class con (trong bài viết này là “SwcImplementation” và “BswImplementation”) sẽ sở hữu toàn bộ các thuộc tính của meta-class cha (“Implementation”) và có thể ghi đè chúng.
Ngoài ra, các meta-class con cũng có thể định nghĩa thêm các thuộc tính đặc thù của riêng chúng.
Dưới đây là cấu trúc meta-model liên quan đến “Implementation” được nêu trong tiêu chuẩn AUTOSAR.

Trong tiêu chuẩn AUTOSAR, meta-class “SwcImplementation” được định nghĩa như là phần mô tả SW Component ở cấp độ Implementation (tương ứng với hộp màu xanh lá cây trong hình dưới).
Vậy, có phải “SwcInternalBehavior” không phải là phần mô tả của SW Component? Đây có thể là một câu hỏi khiến bạn thắc mắc.
Câu trả lời: “SwcInternalBehavior” cũng là phần mô tả của SW Component (tương ứng với hộp màu đỏ trong hình dưới). Tuy nhiên, theo AUTOSAR, “SwcInternalBehavior” được định nghĩa là phần mô tả SW Component ở cấp độ RTE.
Như vậy, cả “SwcImplementation” và “SwcInternalBehavior” đều thuộc phần mô tả SW Component, nhưng chúng được phân biệt dựa trên cấp độ (level) mà chúng đại diện.
Dưới đây là cấu trúc meta-model liên quan đến phần mô tả SW Component được nêu trong tiêu chuẩn AUTOSAR.

Meta-class “SwcImplementation” cũng thuộc loại meta-class mà bạn phải thiết kế bổ sung sau khi đã thiết kế SW Component.
Một meta-class “SwcImplementation” phải được liên kết (Link) thiết kế để trỏ tới “SwcInternalBehavior” của một SW Component duy nhất (tương ứng với mối quan hệ bội số “1” được biểu thị trong hộp nét đứt màu đỏ trong hình).
Do đó, cần ghi nhớ rằng mối quan hệ giữa “SwcImplementation” và “SwcInternalBehavior” là 1:1.
Tuy nhiên, cũng cần lưu ý rằng meta-class “SwcImplementation” không phải là meta-class thuộc quyền sở hữu của SW Component.
(Lưu ý): Để hiểu rõ hơn, bạn cần phân biệt sự khác nhau giữa mối quan hệ sở hữu và mối quan hệ liên kết (Link) trong thiết kế. Trong cấu trúc meta-model:
Mối quan hệ sở hữu được biểu thị bằng đường thẳng có hình thoi (Aggregation), trong đó phía có hình thoi là bên sở hữu.
Mối quan hệ liên kết (Link) được biểu thị bằng mũi tên.

Vậy, câu hỏi đặt ra là: Nếu thiết kế meta-class “SwcImplementation” và “BswImplementation”, liệu có mã nào được tạo ra không?
Câu trả lời: Điều này không liên quan đến việc tạo mã.
Thay vào đó, các meta-class này chỉ đóng vai trò như một Code Descriptor (Mô tả mã), giải thích thông tin liên quan đến SW Component ASW hoặc module BSW, chẳng hạn như:
Loại ngôn ngữ lập trình của mã nguồn được sử dụng (ví dụ: C, C++, Java, mã đối tượng).
Phiên bản phần mềm (Software version).
Vendor ID của trình tạo mã (Code Generator).
Lượng tài nguyên được sử dụng, như Heap, Stack, v.v.
Dưới đây là sơ đồ mô hình hóa mối quan hệ giữa “SwcInternalBehavior” và “SwcImplementation” được thực hiện bằng công cụ “R.Auto”.

Meta-class “SwcImplementation” cũng là một meta-class bắt buộc phải thiết kế, vì vậy sau khi hoàn thành thiết kế SW Component, bạn cần lưu ý thực hiện thiết kế liên kết 1:1 (Link) giữa “SwcImplementation” và “SwcInternalBehavior” theo đúng cú pháp của AUTOSAR đã giải thích ở trên.
Hy vọng qua bài viết này, bạn đã hiểu rõ mối quan hệ giữa meta-class “SwcImplementation” và “SwcInternalBehavior”.
Xem Thêm chuyên mục :





