HW1: Chapter 1

 

1.3: What are the four important attributes that all professional software should possess? Suggest four other attributes that may sometimes be significant.

  1. Acceptability – must be appropriate for it’s users, legible, practical, and conform to other applications they will use.
  2. Dependability and security – users need not worry about safety of the software, risks involved in using it, the possibilities of what will happen if the software fails, etc.
  3. Efficiency – the difference in two programs that perform the exact same operations but require very different amounts of memory can be huge. If a program works perfectly but is largely wasteful in terms of memory usage it is not an efficient program.
  4. Maintainability – needs of the software will change over time, the application needs to have ability to be updated and adapt to user’s needs as they evolve as well.
  5. Affordability – if a software is fantastic but unaffordable, what is its value?
  6. Accessibility – software needs to be accessible through marketing, search optimization, people need to know about it for building it’s reputation
  7. Interface quality – if the user interface/frontend look is not carefully created, could lose all credibility as people are quick to judge poor front end jobs in the modern world
  8. Speed of updates – could have innovative ideas and quality updates, but if a software is not quick to push new versions, users could get frustrated and look for alternate software

1.8: Discuss whether professional engineers should be licensed in the same way as doctors or lawyers.

I don’t think we are at the point of professional engineers being licensed in the same way as doctors and lawyers. Although cyber security is a major political issue and every day our data is being accessed, used, and sold to who knows where or why, the anonymity of the internet will make it difficult to hold software engineers accountable in the same way that doctors performing an operation and working out of hospitals or clinics, or lawyers working out of physical offices and court rooms are able to be held accountable. In today’s world with technologies such as blockchain and ability to access internet remotely, it would be tough to force licensing among all “professional engineers.”

1.9: For each of the clauses in the ACM/IEEE Code of Ethics shown in Figure 1.4, propose an appropriate example that illustrates that clause

  1. Public – Software engineer must act in good faith to the public around them, ethical decisions and actions are a must.
  2. Client and Employer – If an engineer acts in manner that is appropriate from eyes of both client and employer, they can do a good job of keeping themselves within the scope of quality engineering
  3. Product – Software engineers cannot put out poor products, it is clear to the engineer if the product is quality or not. If it is not, no need to release or try and convince public that it is.
  4. Judgment – It can be easy to judge someone or a product, but it is important to stay ethical in those feelings and speak in appropriate manner.
  5. Management – software is not complete upon launch, must be maintained and managed in an appropriate manner throughout its usage
  6. Profession – Should act in professional manner in order to maintain the integrity of the field.
  7. Colleagues – Must treat each other with respect, don’t know when you’ll be collaborating with or needing the help of those around you. Need to support each other regardless of differences.
  8. Self – A software engineer cannot discontinue learning in such a developing and changing field. This would devalue their practice of profession. They also must hold themselves accountable and can’t use their skillset in an unethical way.

1.10: To help counter terrorism, many countries are planning or have developed computer systems that track large numbers of their citizens and their actions. Clearly, this has privacy implications. Discuss the ethics of working on the development of this type of system.

In terms of ethics, where is the line of how intensely tracked a person is will be alright, versus too much. There is already an ability to track large numbers of people and I think the general public is largely OK with this. However, could it reach a point where cell phone tracking is not enough. What if people put their phones down, or we feel that we need better, more reliable information? What if there is a privately or publicly funded program that incentivizes and pays people to volunteer to get ‘chips’ put in their wrists in order to better track their positions? What if cameras with facial recognition software are installed at every street corner, traffic light, lamppost, etc. and we are able to document specific locations/actions without cell phones or a chip? At a point, it can become overwhelming and offer too much power to hackers or ill intentioned people. What if terrorists hack our tracking system and can instantly locate public officials, celebrities, or even the president?

Leave a Reply

Your email address will not be published. Required fields are marked *