Giving reasons for your answer, suggest which dependability attributes are likely to be most critical for the following systems:
First, the following are dependability properties/attributes:
- Availability <- Informally, the availability of a system is the probability that it will be up and running and able to deliver useful services to users at any given time.*
- Reliability <- Informally, the reliability of a system is the probability, over a given period of time, that the system will correctly deliver services as expected by the user.*
- Safety <- Informally, the safety of a system is a judgment of how likely it is that the system will cause damage to people or its environment.*
- Security <- Informally, the security of a system is a judgment of how likely it is that the system can resist accidental or deliberate intrusions.*
- Repairability <- With the inevitability of system failures, diagnosing, accessing, and fixing the issue quickly represents good repairability. Open source software makes this easier.
- Maintainability <- As software systems are used and live on, new requirements and features will emerge and maintaining the old usefulness of the system as well as accommodating for the new features represents good maintainability. Making changes and adding features should not break a software system.
- Survivability <- The ability of a system to continuously deliver service whilst under attack and whilst parts of the system are disabled.*
- Error Tolerance <- User input errors should not occur. Error handling is important (whether automatic fixing happens, or prompting for user input).
1-4 are the four principal dimensions of dependability.
5-8 are system properties that are also dependability properties.
* represents definitions straight from the textbook and a lack of * means that I inferred my own definition from their description and detailing.
- An Internet server provided by an ISP with thousands of customers
Internet services tend to have their own niche of specialization when it comes to dependability attributes. If a service is hosted on the web, then that service should always be available and have many measures taken for safety and security. I hone in on these three because the whole purpose of hosting a service over the web is lost if that website or application is not available. Those thousands of customers will have to halt whatever it is that they are doing and that is something that should just never happen. The Internet, inherently, has a need for safety and security. If any sensitive information (including simple logins) is being sent to a server, then proper safety precautions should be taken in order to secure customers' data.
- A computer-controlled scalpel used in keyhole surgery
The attribute that cries out when reading this scenario is safety. When dealing with the health of people, safety always comes first. Especially so in this scenario because a scalpel controlled by a computer could easily knick an artery or really any tissue inside the body not meant to be hit with a scalpel during this surgery. A second attribute that falls into this same vein is error tolerance. If the user on the computer-end of the scalpel hits a wrong key or makes an odd motion, then the scalpel software should know to halt whatever it is doing and not make some rash, expedient decision.
- A directional control system used in a satellite launch vehicle
In this situation, maintainability and reliability are the most crucial dependency attributes. Because this satellite launch vehicle is going to be used in a way that launches a satellite that people will not be able to physically access any longer, the software better not fail because a bold programmer decided to add a new feature toward the end of the project. Also, if this control system were to be used for a different satellite at a later time, then the software should not produce unforeseen results and should still be able to be trusted. If an error does occur, then the software better have a good semblance of repairability so that issues do not last long enough to ruin the entire system.
- An Internet-based personal finance management system
When it comes to any kind of personal system (and especially that of a fiscal nature), then security is always going to be the most important dependency attribute. I'll just reference the first scenario here and all the security issues I brought up with it rather than recapitulate ideas I have already expounded upon. Also, because the data that is being dealt with contains financial data, then it is also vital to put a lot of focus on error tolerance. No one wants to be the victim of some financial hiccup that sub-par software caused.
In a medical system that is designed to deliver radiation to treat tumors, suggest one hazard that may arise and propose one software feature that may be used to ensure that the identified hazard does not result in an accident.
For starters, this scenario sounds eerily relevant to the Therac-25 incidents. So a hazard that can arise is that someone could accidentally deal a dosage that is magnitudes higher than needed. For example, let's say that the software is set up to work with some hardware so that you enter a dosage amount on a keypad. You would have to press down on the keypad in order to give a dosage to a patient. Well, what happens when a nurse is trying to give a dosage of 5 (let's ignore units since this is not my domain of expertise), but that 5 gets pressed twice. Well now the dosage is 11 magnitudes higher. Now there is a potential death, lawsuit, and probably some other things no one should have to deal with. A software feature that could prevent this is AI built into the program. Say the program has access to patient information (we are assuming the software has ample security measures in order to prevent people from having access to sensitive information) and it has an idea of what the dosage that the doctor/nurse would be giving to the patient is. If the program would stop the treatment if the dosage exited a certain bound of acceptance, then the doctor/nurse could double-check and make sure they are not about to kill their patient.
Using the MHC-PMS as an example, identify three threats to this system (in addition to the threat shown in Figure 11.8). Suggest controls that might be put in place to reduce the chances of a successful attack based on these threats.
- Asset <- The records of each patient that is receiving or has received treatment will now be at risk if this hacker gets into the system. This completely breaks doctor-patient confidentiality and that is a huge problem for our medical system.
- Vulnerability <- The weak password system allowed users to use children names as passwords as well as not enforcing any kind of heavily secure password. Without enforcing the need for capital letters, numbers, or symbols, people will be lazy and not use secure passwords. In a regular environment, like email, this is not that big of an issue, but this is dealing with medical records so passwords should be forced to be secure.
- Exposure <- There will be ample financial loss from an issue like this. The sports star could potentially sue the hospital, other patients could take their business elsewhere, and the hospital will have to pay for new software because obviously their current software is pretty bad
In order to fix these issues, the software engineers could enforce extremely secure passwords (ex// At least one uppercase letter, at least one lowercase letter, at least one symbol, at least one number, and no proper nouns or passwords related to your name).Additionally, they could set up a better protocol for identifying people that are related to patients before giving information out. It does not make sense that this person was able to claim that he/she was related to this sports star and, thus, was able to retrieve sensitive information about that person.
Music listened to while blogging: None because the computer I was working on will not allow my to use headphones (extremely frustrating)