HW4: Chapter 11 & 12

Ch 11 & 12

What is the common characteristic of all architectural styles that are geared to supporting software fault tolerance? 

The three fault-tolerant architectural styles outlined were protection systems, self-monitoring systems, and N-version programming. Each of these systems uses software & sometimes hardware diversity deal with faults. Protection systems can use separate sensors and software to monitor the system and the environment for potentially unsafe states and attempt to move to a safe state. Self-monitoring systems use multiple versions of software and hardware to complete the task and the system compares the results and makes a decision based on these comparisons. Finally, N-version programming uses multiple versions of software, developed by separate teams, to interpret and act on the same input and then compares the results. If a fault is found the fault manager deals with the faulty unity by attempting a repair or removing it from the system for repair.

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.

Initially, I leaned towards a protection system as the ideal in this scenario but after a bit of contemplation on the nature of radiation therapy, it seems impractical. Since the protection system uses sensors to monitor what is happening and radiation therapy (in my limited experience) relies on short bursts of radiation that a protection system would fail to stop. An N-version programming system would be a better option as the system is not as complex as say, a plane, but still requires safety checks. The diverse software should lead to more accurate output results and limit the likelihood of a safety hazard.

Explain why all the versions in a system designed around software diversity may fail in a similar way.

As individuals on different teams are often similar in education and culture there is an increased likelihood that the same mistakes in design and solutions will be made. Additionally, if the requirements for the project are incorrect in some form or fashion, the same mistakes are likely to occur. Finally, the specifications for the system may not be detailed or specific enough and lead teams to come to the same conclusions and make the same mistakes.

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 systems requirements for the onboard software that may be generated from the system safety requirements.

The system will include self-check software to test the sensor system that detects the trains' location and the red light sections of track. The self-check will also test the sensor for speed.
The self-self check software will execute the tests once per minute.
If the self-check software detects a fault in either system, the conductor and train dispatch will be notified.
The system will include a manual override of the speed controls.
The software will not allow manual operation at the start of a trip without higher-level authorization. (This would still allow for manual operation in the event of a fault mid-trip but not at the start).


Comments

Popular posts from this blog

HW10: Chapter 5

HW11: Chapter 6

HW26:Chapter 24