FMEA¶
The FMEA is done at the “General” and “Use-Case” level of the library architecture. The “Use cases” chapter was analyzed over:
Explore to find MTRs
Validate the MTRs syntax
Verify the MTRs status with history
Export the verifications results
Fault Model¶
The following model is based on the “SWA Fault Model” for activity diagrams currently used for embedded software.
Element Type |
Error ID |
Generic Error Description |
---|---|---|
Data storage |
DS1 |
Stored data changed before read operation |
DS2 |
New data not stored / keeps old data / stuck at specific value |
|
Data flow |
DF1 |
Transferred data changed |
DF2 |
Transferred data lost |
|
DF3 |
Data stored at / read from wrong location in data store |
|
DF4 |
Data transferred to wrong data store |
|
Processing |
PR1 |
Calculates wrong results |
PR2 |
Processing is skipped |
|
PR3 |
Processing too slow / fast |
|
Control flow |
CF1 |
Control flow stops |
CF2 |
Control flow proceeds to wrong process |
If more than one error is identified for the same element with the same error ID, a counter is added, e.g. DF1.1, DF1.2, etc.
Generalized Errors¶
The following errors are analyzed generically and not on architectural element level.
Error ID |
Affected Elements |
General Error Description |
Measures |
---|---|---|---|
DF2 |
Data flow from / to shell and internal data storage. |
Internal buffers data lost |
Single thread library |
PR3 |
Processing |
Timing issue on slow execution leading to timeouts expiration, low efficiency in execution time |
|
CF1 |
Control flow |
Blocking methods without timeout coverage, Ruby VM stuck on non retuning forks leading to execution stuck, low efficency in execution time |
|
Explore to find MTRs¶
The analysis for this section was done based on the Explore
part of the use cases diagram
in the use cases session
Element |
Error ID |
Specific Error Description |
Measures |
References |
---|---|---|---|---|
Explorer |
DS2 / DF3 / DF4 |
User configuration ( |
Assumption for the library user on performing integrity check over user configuration before using in the library. The integrity has to be granted also in the case the configuration file is generated or given to the Library by any script. Code Testing grant coverage over exceptions handling |
Validate the MTRs syntax¶
The analysis for this section was done based on the Validate
part of the
use cases diagram in the use cases session
Element |
Error ID |
Specific Error Description |
Measures |
References |
---|---|---|---|---|
Validator |
DS2 / DF3 / DF4 |
MTRs configurations content is malformed / not supported encoding leading to parsing error or wrong initial configuration. i.e. the configuration may be generated or transferred leading to loss of integrity. |
Assumption for the library user on performing integrity check over user configuration before using in the library. The integrity has to be granted also in the case the configuration file is generated or given to the Library by any script. Code Testing grant coverage over exceptions handling |
Verify the MTRs status with history¶
The analysis for this section was done based on the Verify
part of the
use cases diagram in the use cases session
Element |
Error ID |
Specific Error Description |
Measures |
References |
---|---|---|---|---|
Verifier, ChangesVerifier, Repository |
PR1 |
Library to Git passed parameters wrong / malformed leading to wrong behaviour |
Code review |
|
Master |
PR1.1 |
Library fails to handle internal exceptions leading to wrong behaviour |
Code review, unit / integration testing |
|
Verifier, ChangesVerifier, Repository |
PR2 |
Git connection loss leading to wrong behaviour |
Code review over exception coverage |
|
Logger |
PR1 |
Library to CLI passed data is wrong / malformed leading to wrong behaviour |
Code review |
Export the verifications results¶
The analysis for this section was done based on the Export
part of the
use cases diagram in the use cases session
Element |
Error ID |
Specific Error Description |
Measures |
References |
---|---|---|---|---|
Exporter, HTMLExporter, JSONExporter |
PR1 |
Library to JSON/HTML export data passed is wrong / malformed leading to wrong behaviour |
Code review |