The delivery of BSW modules form Vector is called BSW Package. A BSW Package is a bundle of ordered software components as a ZIP-file.
This chapter focuses on the content of a BSW Package and it will show the connection between the delivered BSW modules and their usage within the Adaptive Application Lane Assist example.

PhM
and vac
as example
The PhM (Platform Health Management) delivery contains a PhM Application file that represents the PhM Application Logic and another file that is the PhM lib.
Within the PhM lib the ara::phm
is implemented that has to be used by all User Applications and other BSW Applications that need the functionality of the PhM. The ara::phm is not only an interface to the Phm, it also contains a part of the functionality of the PhM. The rest is implemented in the PhM Application Logic.
Another example is the vac. It is an internal supporting component used by all other components of MICROSAR Adaptive. Therefore, it is used in all applications that make use of at least one other part of MICROSAR Adaptive.
From Delivery to ECU
AUTOSAR Adaptive is designed not only for flexible software updates but also with flexible software design in mind. There are many different possible use cases how to create an ECU.
A simple use case comprises usually the following six steps.

In many cases, the ARXML is already given, e.g., by the OEM. In this case just leave out the first step Authoring and continue with step 2 or 3.

AUTOSAR ARXML files are designed to contain only the necessary parts required by your software. However, since the specific needs of software can vary greatly, it often becomes necessary to modify and extend these ARXML files to suit your particular application.
1. Authoring / (Modelling)
In this first step you develop the ARXML Model consisting of multiple different ARXML files. These are the interface definition files that can also be used as exchange format between different tools, different departments or even companies.
In the ARXML you define software design, executables, machines, port interfaces, etc. It is an overall definition of your system as well as your applications and their need of Adaptive AUTOSAR features.
What is Authoring / Modelling and what are the advantages?
Adaptive software should be designed for easy portability and reusability. By modeling both the software and its requirements in an abstract manner, the software can adapt to environmental changes without revising all details. This approach allows updates to focus solely on the model, enhancing flexibility and efficiency.
As modeling language, ARXML is used. AUTOSAR has defined a set of modeling properties. And there are additional properties defined by Vector to extend the AUTOSAR definitions.
DaVinci Developer Adaptive is familiar with the AUTOSAR definitions as well as the Vector extensions and can support you with modelling.
2. Model Validation
This step checks the content and parameters of the ARXML for plausibility.
DaVinci Developer Adaptive is familiar with the AUTOSAR definitions as well as the Vector extensions and can validate your model.
3. Generation
This produces the C++ code and JSON configuration files.
What are Generators?
Generators take the user configuration from the ARXML model. They extract the configuration information and produce the corresponding C++ code and runtime configuration files. This code and runtime configuration instruct the BSW to exhibit the configured behavior.
This can also be done via DaVinci Developer Adaptive or via command line tool.
4. User Application Development (IDE)
Developing and programming your application's logic is a key part of the process, often taking up most of the workload. For instance, to create a Lane Assist feature, you'd write code that reads camera data and converts it into steering commands.
5. Compile (and Link)
Your code (step 4), the previously generated C++ files (step 3) and the necessary parts of the BSW package need to be compiled into an executable.
6. Deploy to ECU
Put the executable and JSON file (step 3) into the ECU.
The software is ready to be run.