11.4: What is the common characteristic of all architectural styles that are geared to supporting software fault tolerance?
Software diversity. If the different types of software used contain different information, they should have different errors for different reasons. If they vary in those ways, they should not fail for the same reasons which also suggests, they should not fail at the same time.
11.7: It has been suggested that the control software for a radiation therapy machine, used to treat patients with cancer, should be implemented using N-version programming. Comment on whether or not you think this is a good suggestion.
Since there are at least three different versions of the system, it is more likely for errors to occur less often which is very important in a machine treating patients with cancer. The book mentions that N-version programming is only used when it doesn’t make sense to create a system that can protect against safety-critical failures. If it doesn’t make sense, then sure, I think this is a good approach and would be sensible.
11.9: Explain why you should explicitly handle all exceptions in a system that is intended to have a high level of availability.
Since exception handling can make it easier to deal with errors from user input or other places, it contributes to the possibility of normal operation after the exception has been handled, reducing errors and potential shutdown of the system. This is especially important in a system with a high level of availability such as a hospital or data center where large amounts of data are constantly being updated and accessed. If the information is unavailable due to a shutdown from an error that could have been handled with an exception, major issues could come up.
12.5: A train protection system automatically applies the brakes of a train if the speed limit for a segment of track is exceeded, or if the train enters a track segment that is currently signaled with a red light (i.e. the segment should not be entered). There are two critical-safety requirements for this train protection system:
The train shall not enter a segment of track that is signaled with a red light.
The train shall not exceed the specified speed limit for a section of track.
Assuming that the signal status and the speed limit for the track segment are transmitted to on-board software on the train before it enters the track segment, propose five possible functional system requirements for the onboard software that may be generated from the system safety requirements.
- The train should include a self-testing software that will test the onboard software including the red light sensor system and the speed limit detection.
- The self-testing software should execute every 30 seconds.
- If the self-testing software goes down for any reason, a warning light and sound should go off to alert the driver of reduced safety, and indicate which system detected an error.
- If speed is going faster than limit, slow down.
- If track is signaled with red light, do not enter, alter route.