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.

Acceptability, Dependability and Security, Efficiency, Maintainability
Reccomended: Sustainable, Reusable, Adaptable, Easy to Use



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

The fields of medicine and law have been around far longer than software engineering  and computer science as a whole is a constantly evolving field. Rules and regulations for medical and law licenses can be established far easier than they can for software engineering because the fundamental knowledge in those fields is relatively unvarying and as a result, doctors and lawyers can be expected to address issues in their respective fields in a uniform, predictable manner. In contrast, software engineers should not be required to acquire a license in their field because the field is rapidly expanding resulting in continuous change to the software development process. A single license would not be enough to encompass the broad field of software engineering the same way as a medical or law license.


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 engineers shall act consistently with the public interest.
  • Don't make software that compromises private data


2. CLIENT AND EMPLOYER — Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.
  • Provide the client and employer what the functioning software that they request as long as it does not harm the public


3. PRODUCT — Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.
  • Write clean, easy to understand code with proper documentation


4. JUDGMENT — Software engineers shall maintain integrity and independence in their professional judgment.
  • Report ethical and legal issues or issues that compromise the software/project to your employer


5. MANAGEMENT — Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.
  • Properly document all code to ensure that software is delivered on time


6. PROFESSION — Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.
  • Don't act unprofessionally in public or private


7. COLLEAGUES — Software engineers shall be fair to and supportive of their colleagues.
  • Assist your colleagues when necessary and do not allow personal feelings to interfere with the development of the software




8. SELF — Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
  • Don't become complacent. If you don't know about something, learn about it and make yourself better equipped to handle new situations.




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.

Engineers must ask themselves whether or not it is ethical to violate the public's privacy in order to achieve the goal of public safety. I believe that an engineer's judgment would lead them to determine that the software would be unethical, as violating public privacy in any form is not acting in public interest.

Comments

Popular posts from this blog

HW6: Chapter 4

HW24: Chapter 23

HW11: Chapter 6