Update the routes of a platform architecture on creation of the DSE model snapshot
As of now, when creating a DSE model snapshot the routes of a platform architecture are updated only if there are none. If the selected platform architecture already contains routes, they are not modified. At the same time, the routes of a platform architecture are not automatically updated when it has been changed (e.g., by removing a bus).
This has led to incorrect results when performing bus bandwidth optimizations.
How to Reproduce & Test
- Import this model: training_assignment3.af3_23. It contains a platform architecture with an outdated set of routes, created when it still contained two buses.
- Perform a DSE with both memory constraints as well as a bus bandwidth optimization objective.
- Notice that the optimal bus bandwidth of the only bus available is 0.0 even though the tasks are distributed across multiple ECUs. This is because all signals are allocated to routes using the no longer existing bus.
NOTE 1: It is likely that this test does not work with other models out of the box as the look-up mechanism for message sizes requires the existence of a memory allocation table. In apparent absence of a respective editor, such a table was instantiated in the attached model by setting WCETs in the task architectures WCET table. The handling of memory allocation tables will be discussed and investigate in another issue.
NOTE 2: The message size lookup mechanism also works only for models where the data types referenced in the architectures are still correctly linked to the respective entries in the data dictionary. Due to the bug #4208, this is not the case for many existing models. In the attached model, the references were manually repaired.