HW1: Chapter 1

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

Acceptability, Dependability/Security, Efficiency, Maintainability.  Safety, Responsiveness, Reliability, and Efficiency.

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

Engineers, like doctors and lawyers, bear an ethical responsibility on their shoulders.  They must be skilled enough to avoid mistakes and avoid cutting corners in their work, because negligence could endanger the lives of those reliant on their work.  Just as a work of physical architecture depends on the careful measurements of an engineer, so does software architecture made by a software engineer.   As the code of conduct in the book says, software engineers have significant opportunity to do good or cause harm, and I feel this opportunity is only growing stronger as we become more reliant on software.  I think it would be reasonable for software engineers to have to undergo a professional licensing procedure. 

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

  • Public
    • For example, software engineers attempt to make products that are intuitive and accessible to a wide range of abilities.
  • Client and Employer
    • Software engineers must take their expertise in the field and apply it to the interests of the client, such as taking appropriate security measures.
  • Product
    • Software engineers operate under a set of standards when developing code to make it easier and cleaner to contribute to and interpret.  
  • Judgement
    • Software engineers must determine whether their code follows the structural and ethical standards of their profession.
  • Management
    • Those who are in management positions should not force unethical requests upon their subordinates or treat them unethically.
  • Profession
    • Software engineers who have public influence should not disparage the profession through their actions.
  • Colleagues
    • Since software can be a collaborative effort, software engineers should keep their colleagues in mind and make sure they aren't making it more difficult for them.
  • Self
    • This could include searching for the improvement of ethical or security measures in software development.

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.

This definitely gives an ethical obligation to the developers involved in this project.  Software engineers could potentially access the personal information of anyone in the system, leaving an immense amount of power in their hands regarding what to do with that information.  I would assume that the person managing development would be able to limit the amount of engineers with that kind of access, so even more responsibility would be on them.  I think it would be unethical to not have an extensive selection process which ensures only trusted professionals are engaged in the details of this project, which kind of leads us back to question 1.8.


Popular Posts