Chuyển đổi phần mềm Legacy sang phần mềm AUTOSAR
Bài viết này sẽ hướng dẫn cách tái thiết kế cấu trúc mã đã hoàn thiện để sử dụng trong cấu trúc AUTOSAR Platform ICC1. Sự quan tâm đối với AUTOSAR ngày càng tăng, nhằm đáp ứng yêu cầu từ OEM về việc giao nộp phần mềm dựa trên AUTOSAR Platform hoặc phục vụ nghiên cứu tiên tiến. Việc sử dụng AUTOSAR Platform để phát triển phần mềm có ưu điểm linh hoạt khi đáp ứng các yêu cầu về Hierarchical Levels Software Component theo A-SPICE và ISO 26262 Part.6.

Tuy nhiên, các công cụ AUTOSAR được ủy quyền thường có chi phí giấy phép cao, và nếu cần từ bỏ mã hiện có để bắt đầu lại từ đầu, sẽ phát sinh thêm công sức và chi phí. RapidAUTO có thể là một giải pháp thay thế phù hợp.
Cấu trúc cơ bản của AUTOSAR Platform
AUTOSAR Platform bao gồm 3 lớp chính:

Basic Software Layer: Chứa mã phụ thuộc vào phần cứng (Hardware Dependent).
ECU-Hardware: Loại bỏ mã phụ thuộc phần cứng.
Software Application Layer: Thực hiện logic.
Trong giai đoạn ICC1 của AUTOSAR, mã Legacy thường không tương thích với cấu trúc AUTOSAR. Ví dụ, trong AUTOSAR, biến được chia sẻ giữa các component phải được đọc và ghi thông qua RTE (Runtime Environment), trong khi mã Legacy thường sử dụng khai báo extern để truy cập tự do. Việc chuyển đổi này đòi hỏi một quá trình chỉnh sửa và tối ưu hóa.
Quy trình chuyển đổi Legacy Code sang AUTOSAR Platform
1. Phân tích các file có thể nhóm thành component trong mã Legacy

Trong AUTOSAR, các component được chia thành các đơn vị chức năng có thể tái sử dụng.
Phân tích mối quan hệ giữa các file chứa biến và hàm đã khai báo (component nguồn) và các file sử dụng (component đích).
Chuyển đổi các cấu trúc để truyền nhận dữ liệu giữa các component thông qua RTE, thay vì sử dụng khai báo trực tiếp.
2. Xử lý các trường hợp biến extern chồng chéo giữa các component

Để tuân thủ cấu trúc AUTOSAR, đảm bảo rằng không có biến nào được chia sẻ trực tiếp giữa các component.
Ví dụ:
File Main_Sensor chứa dữ liệu cảm biến xung động.
File Crash_Detector tham chiếu trực tiếp dữ liệu từ Main_Sensor để phát hiện va chạm.
Trong cấu trúc AUTOSAR, dữ liệu này phải được truyền qua RTE, không tham chiếu trực tiếp.
3. Thiết kế interface để truyền nhận dữ liệu giữa các component
|
Tên giao diện |
phần tử dữ liệu |
biến (Cũ) |
Kiểu |
|
IMainSensorDữ liệu |
tai nạnTác động |
sự cố_tác động |
uint8 |
Tạo interface để khai báo dữ liệu truyền nhận qua RTE.
Ví dụ: Từ cấu trúc sử dụng extern giữa Main_Sensor và Crash_Detector, chuyển sang sử dụng interface ImainSensorData để giao tiếp qua RTE.
4. Xây dựng mô hình thiết kế kiến trúc phần mềm (SWAD)

Sử dụng công cụ RapidAUTO để thiết kế mô hình SWAD.
Mô tả các giao tiếp giữa component thông qua RTE.
Ví dụ: Biến crash_Impact được truyền từ component Main_Sensor sang Crash_Detector thông qua interface đã thiết kế.
5. Sửa đổi các biến extern trong Legacy Code thành static

Thay đổi các biến extern trong mã Legacy thành static để chỉ sử dụng nội bộ trong từng component.
Thêm các hàm PreProcess() và PostProcess() để xử lý giá trị của biến static thông qua RTE.
Các hàm này đảm bảo dữ liệu vẫn được truyền đúng cách thông qua Read và Write từ RTE.
6. Xây dựng mô hình Detailed Design và tái sử dụng mã Legacy

RapidAUTO hỗ trợ thiết kế kiến trúc AUTOSAR (Architect Design) và thiết kế chi tiết (Detailed Design) dựa trên UML.
Tận dụng mã Legacy hiện có để giảm công sức viết lại.
Ví dụ: Component Main_Sensor và Crash_Detector chứa mã Legacy được sửa đổi để giao tiếp thông qua RTE_SoftwareComponent.
7. Tạo mã tích hợp và kiểm tra

Sử dụng RapidAUTO để tạo mã ICC1 RTE.
Tích hợp mã Legacy đã sửa đổi và thực hiện kiểm tra để đảm bảo chức năng tương đương với mã ban đầu.
Lợi ích của RapidAUTO trong chuyển đổi Legacy Code
Tiết kiệm công sức và chi phí:
Sử dụng lại mã Legacy, giảm thiểu công sức viết lại từ đầu.
Tích hợp tiêu chuẩn:
Tuân thủ ISO 26262, AUTOSAR, và A-SPICE.
Hiệu quả cho nghiên cứu tiên tiến và đáp ứng yêu cầu từ OEM:
RapidAUTO là giải pháp thay thế hiệu quả khi thiếu kinh nghiệm về AUTOSAR hoặc phải thực hiện chuyển đổi mã Legacy.
Xem Thêm chuyên mục :





