diff --git a/ntnu/21v/ttk4145/summary/summary.md b/ntnu/21v/ttk4145/summary/summary.md index 91fa2d1..f19c7a2 100644 --- a/ntnu/21v/ttk4145/summary/summary.md +++ b/ntnu/21v/ttk4145/summary/summary.md @@ -107,4 +107,52 @@ To test how the systems responds for a unknown error is to insert a failed accep * Go with default if no messages have been received * The acceptancetest must be good. - \ No newline at end of file + +### Fault model + +#### Example with storage functions. + +**Step 1: Failure modes** + +Find the failure modes: What could go wrong? + +* **Write**: May return "I failed". Does not know why it faield +* **Read**: May return "I failed". Does not know why it failed. + +**Step 2: Detect, Simplify, Inject errors** + +* Write information on where/what/how the process is doing. +* All errors --> Fail +* Inject errors + +**Step 3: Handling with redundancy** + +* Have multiple copies of the the information + * Use only the newest + +#### Example with communication function + +**Step 1: Failure modes** + +* Message + * Lost + * Delayed + * Corrupted + * DUplicated + * Wrong recipient + +**Step 2: Detection, Merging of errormodes and error injection** + +* Adding information to message + * Checksum + * Session ID + * Sequence number +* Adding "ack" on well recieved messages +* All errors will be treaded as "Lost message" +* Injection + * Occasionally throw away some messages + +**Step 3: Handling with redundancy** + +* Timeout +* Retransmit message \ No newline at end of file