Requirements#
The system uses a human-readable definition language.
|
status: valid
security: NO
safety: ASIL_B
|
||||
The system shall be modeled in YAML-syntax files. This means the system should use YAML due to the availability of parsers in Rust and C++. The system should prefer YAML over JSON due to its simpler syntax. |
|||||
Software Compute Units signal initialization failures by returning an Error indicating failure.
|
status: valid
security: NO
safety: ASIL_B
|
||||
Software Compute Unit Instances shall be considered to have failed permanently if they fail to initialize. |
|||||
Software Compute Units correctly deallocate any dynamically allocated memory in the onShutdown function.
|
status: valid
security: NO
safety: ASIL_B
|
||||
Software Compute Unit instances shall have onInit and onShutdown called only once during their lifecycle. |
|||||
Software Compute Units do not spawn a variable number of threads.
|
status: valid
security: NO
safety: ASIL_B
|
||||
Software Compute Units shall have a predetermined number of threads if they spawn any threads at all. Software Compute Units shall not dynamically spawn and join or detach worker threads. |
|||||
Software Compute Units do not throw exceptions or "panic".
|
status: valid
security: NO
safety: ASIL_B
|
||||
Software Compute Units shall handle any exceptions in dependency libraries completely inside the standard interface functions. Software Compute Units shall signal an error by returning an Error that contains an ErrorCode other than Success. Software Compute Units shall terminate execution if unhandled exceptions occur. |
|||||
Software Compute Units do not attempt to trigger program termination.
|
status: valid
security: NO
safety: ASIL_B
|
||||
Software Compute Units shall return an Error with a suitable Errorcode and follow the defined error propagation mechanism to handle errors. Software Compute Units shall not manage their own lifecycle. |
|||||
Software Compute Units do not call their own standard interface methods.
|
status: valid
security: NO
safety: ASIL_B
|
||||
Software Compute Units shall not interfere with their external lifecycle management by calling their own interface methods (onInit, onUpdate, onReset, onShutdown). Software Compute Units may call onReset() from onShutdown() if required for avoiding code duplication. |
|||||
Software Compute Units implement transient error recovery mechanisms in onReset.
|
status: valid
security: NO
safety: ASIL_B
|
||||
Software Compute Units shall signal transient errors as a failure of onUpdate. The responsible Software Compute Unit shall trigger onReset to recover from transient errors based on logic modeled for the Archetype. |
|||||
Software Compute Units signal reset and recovery failures via the Error return value of onReset.
|
status: valid
security: NO
safety: ASIL_B
|
||||
Software Compute Units shall be considered to have failed permanently if they return a failure on onReset. |
|||||