'Hardware resource requirements (memory and runtime) estimation & quality methods for embedded systems

I would like to ask a question about methods to estimate and control the resource requirements in an embedded system, i.e. ECU in a vehicle. Over the course of development of an ECU software both memory and runtime consumption grow as new requirements come in. This leads to issues such as memories ending up being full and runtime issues which can be very important in a time critical system such as car. In the worst case scenario, this can lead to a hardware redesign, i.e. getting stronger hardware to accomodate additional software features. However, this usually incurres additional costs and delays the project schedule.

I would like to know what are the state of art pratices used to estimate and control memory and runtime requirements, and what are the ways to estimate such metrics early in the development phase, and eventually control them over the spanlife of the project. From my understanding, the biggest issues is that before the development begins, one does not really know how will the project grow, and thus one cannot give very precise runtime and memory utilization estimates. Also certain features might be underestimated as there might be a hidden complexity behind certain features.

I could not really find concrete information on the google about this and would like to hear your opinion or even to get a reference to certain material where I could read up more about it.

Thank you in advance :).



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source