top of page
Search

Updated: Sep 16, 2019

500+ word response to all readings from 29 Aug and 3 Sep including Chapters 13 and 14 - find common concerns in the articles and reflect upon them.


The articles seem to generally violate some of the basics ethics states in the ACM code of ethics.


When thinking about examples that are about avoiding harm to others (1.2) the Therac cases come to mind. As a software engineer, I feel that we should be aware of the possible repercussions of a bug in our code especially when regarding the medical field. We should do so by taking extreme safety measures and doing extra testing. This bug resulted in a minimum of six cases of radiation overdose, which resulted in nasty side effects like hair loss, vomiting, weakness, and fever to mention a few.


When technology is taken advantage of and controlled by remote parties unknowingly, it violates respecting an individual's privacy (1.7). An example of this from the text was when vehicles are vulnerable to being hacked and someone who is capable of it does so. Not only is this a scary thing to do, because the controller is not only taking the drivers and all of the drivers passengers lives into their hand, but they are also taking all of the other lives of the individuals in the cars around them. No wonder people are scared of people who are good with computers. I would be terrified as well. I don't see what good can come out of this unless we are talking about self driving cars. This not only adds to the negative reputation some people view computer scientist under, but it also gives them a personal fear against us. How are we expecting people to come to us when they feel like they have problems regarding their security when they do not know who to trust?


When developers reuse code I have found it is critical to only implement what you believe is necessary. There are plenty of times in homework assignments that built off of each other I import the entire past assignment when it is only necessary to reuse 1 or 2 methods. Not only is this an example of waste, but in Ariane 501’s case it resulted in a fatal ending. When I read cases like this is it clear to me that my bad habits could one day negatively impact a project or god forbid many people. 


I think a lot of software problems come from unrealistic expectation weather that be the time to create the project, expectations of development advancement, lack of structure and goals, lack of leadership, or a lack of guidance. We should be taking the time to complete our projects in the amount of time we truly believe it will take, not trying to do it as fast as possible to look better to management or not extremely slow to get paid for under performing.


These cases show how vital it is for engineers to perform their due diligence on projects prior to releasing them. Although I am reading all of these cases upset me for the mistakes that have been made in the history of software development, they are in a way crucial to alert engineers of the severity of our actions and a reminder of what all we have at stake going into this field. Before I delve into the depths of computer science, my impression was that oh I would just write some code and run a little program. I never completely developed my thoughts as a freshman in college of the true impact we as computer scientists can have on society. I am so thankful being on the other side of that thought spectrum now for classes like Software Engineering and Seminar on Computing and Society for raising these crucial concerns about ethics. The ethics of computer science may seem simple and straightforward at first but when you take one step closer and think about where technology is heading now (machine learning and AI), it is easy for the lines to get blurred.

Updated: Sep 10, 2019

Ex 11.4

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

A: The system has to include redundant and diverse hardware and software. One of the simpler solutions is in replicated servers like what cloud providers use.


Ex 11.7

Q: It has been suggested that the control software for a reaction 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.

A: I think this is a bad suggestion as N-version programming is based on 2 or more versions being the same and 1 not. When it comes to cancer therapy I feel like this is such a delicate topic that there should be more care going into the decisions made. Maybe even if 2 versions are not the same patient may have a special case where the unique output may be the best option for them. For this reason I do not think it is the best suggestions for reaction therapy machines.


Ex 11.9

Q: Explain why you should explicitly handle all exceptions in a system that is intended to have a high level of availability.

A: If it has a high level of availability, in order to maintain its efficiency it would need to be able to handle all exceptions.


Ex 12.5

Q: A train protection system automatically applied the brakes of the 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. There are 2 critical-safety requirements for this train protection system.

1. The train shall not enter a segment of track that is signaled with a red light.

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

A:

1. There should be a way for the conductor to overpower the machine if it malfunctions and says the track is green but it is actually red

2. There should be a way for the conductor to overpower the machine if it malfunctions and says it is not exceeding the speed limit when the conductor knows it is

3. There should be a way for the conductor to overpower the machine if it malfunctions and says it is exceeding the speed limit when the conductor knows it is not to maintain the flow of traffic efficiently

4. If the train is exceeding the speed limit the track should turn red until the speed limit is obeyed

5. A program should monitor all trains to prevent future collisions


Collaborated with Chandler Long

Updated: Sep 16, 2019

Ex 10.6

Q: Explain why it is reasonable to assume that the use of dependable processes will lead to the creation of dependable software.

A: Typically dependable processes are followed by software with minimal errors which mean less problems during execution time. A dependable process is going to be explicitly defined and repeatable. It can be thought of as a template. Some of the main process characteristics are audible, diverse, documentable, robust, and standardized.

I think it is always important to create dependable software since our goal as software engineers is to develop programs that are in the interest of the public. For me, this largely centers around the safety of others which is why I think principle 1 is best suited to answer this question, specifically 1.3 and 1.4.


 

Ex 10.10

Q: It has been suggested that the need for regulation inhibits innovation and that regulators force the use of older methods of systems development that have been used on other systems. Discuss whether or not you think this is true and the desirability of regulators imposing their views on what methods should be used.

A: I think regulations do not inhabit innovations to a certain extent. Some regulations are needed when it comes to innovation simply for the use of security regarding the user and other members that could be affected by it. Regulators should impose their view if they see a fundamental problem, but sometimes I believe when there is a small problem sometimes the user can work that problem out on their own to then make the end product that much greater.   In conclusion, I think regulators should only impose their view when they feel the problem is at its utmost critical need. For me, this largely centers around developing ideas with legal accountability which is why I think principle 3 is best suited to answer this question, specifically 3.3.

bottom of page