HW1: Chapter 1
Ex 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
2. Dependability and Security
3. Efficiency
4. Maintainability
Suggestions:
1. Readability (good notes, organized nicely)
2. Upgrade-able (Can keep evolving)
3. Usability
4. Reliability
Ex 1.8.
Discuss whether professional engineers should be licensed in the same way as doctors or lawyers.
Professional software engineers should not be licensed in the same way as doctors or lawyers. Doctors get licensed for a certain field and all doctors with the same license perform the same operations the same way. Their field is not evolving very quickly the procedures they are performing have been the same for years. Same for lawyers. While laws do change, they change at a slow rate. In software engineering, there are usually tons of different ways of solving a problem. They field is changing so rapidly, it would not make sense to have licensing exam in the same way as doctors or lawyers.
Ex 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.
Ex: Software engineers will not create software that will bring harm to people or expose their private information
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.
Ex: Software engineers will provide their clients with the most efficient and complete software they can. They will not give bad code to clients on purpose or code that is flawed
3. Product: Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.
Ex: Software engineers will always make sure their code can do all the things that their client has asked them to make it do. The product that they provide will be complete and clean and easy for the client to understand.
4. Judgement: Software engineers shall maintain integrity and independence in their professional judgment.
Ex: Software engineers will not copy other engineers code without their permission and if they are asked by a client to create a software that would break another one of these clauses then they would not accept the job.
5. Management: Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.
Ex: Software managers will watch over and help out their employees and make sure they are following good coding practices and making sure that they are all working together as a team.
6. Profession: Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.
Ex: Software engineering professional's will hold themselves up to high standard and make sure their code is up to professional standards to make sure they do not hurt the reputation of all professional software engineers.
7. Colleagues: Software engineers shall be fair to and supportive of their colleagues.
Ex: Software engineering professionals should always be respectful of their other colleagues, help them out if they ever need a hand or have a question, and never rob them of opportunities to show off their skills.
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.
Ex 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.
The development of this type of system would be breaking some other ACM ethics. But since domestic and international terrorism are on the rise, I think that some ethics might have to be broken to save lives. Even though some innocent civilian's privacy might be compromised by this type of system, it can save the lives of other innocent people and put these terrorists behind bars. If the terrorism this very bad in a country, I think trading the privacy of some civilians to protect the lives of even more civilians is a good trade.
What are the four important attributes that all professional software should possess? Suggest four other attributes that may sometimes be significant.
1. Acceptability
2. Dependability and Security
3. Efficiency
4. Maintainability
Suggestions:
1. Readability (good notes, organized nicely)
2. Upgrade-able (Can keep evolving)
3. Usability
4. Reliability
Ex 1.8.
Discuss whether professional engineers should be licensed in the same way as doctors or lawyers.
Professional software engineers should not be licensed in the same way as doctors or lawyers. Doctors get licensed for a certain field and all doctors with the same license perform the same operations the same way. Their field is not evolving very quickly the procedures they are performing have been the same for years. Same for lawyers. While laws do change, they change at a slow rate. In software engineering, there are usually tons of different ways of solving a problem. They field is changing so rapidly, it would not make sense to have licensing exam in the same way as doctors or lawyers.
Ex 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.
Ex: Software engineers will not create software that will bring harm to people or expose their private information
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.
Ex: Software engineers will provide their clients with the most efficient and complete software they can. They will not give bad code to clients on purpose or code that is flawed
3. Product: Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.
Ex: Software engineers will always make sure their code can do all the things that their client has asked them to make it do. The product that they provide will be complete and clean and easy for the client to understand.
4. Judgement: Software engineers shall maintain integrity and independence in their professional judgment.
Ex: Software engineers will not copy other engineers code without their permission and if they are asked by a client to create a software that would break another one of these clauses then they would not accept the job.
5. Management: Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.
Ex: Software managers will watch over and help out their employees and make sure they are following good coding practices and making sure that they are all working together as a team.
6. Profession: Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.
Ex: Software engineering professional's will hold themselves up to high standard and make sure their code is up to professional standards to make sure they do not hurt the reputation of all professional software engineers.
7. Colleagues: Software engineers shall be fair to and supportive of their colleagues.
Ex: Software engineering professionals should always be respectful of their other colleagues, help them out if they ever need a hand or have a question, and never rob them of opportunities to show off their skills.
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.
Ex: Even as a professional, the learning never stops. Professionals should always keep evolving their skills and working on themselves. Also they should always promote good ethics to other professionals and amateurs.
Ex 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.
The development of this type of system would be breaking some other ACM ethics. But since domestic and international terrorism are on the rise, I think that some ethics might have to be broken to save lives. Even though some innocent civilian's privacy might be compromised by this type of system, it can save the lives of other innocent people and put these terrorists behind bars. If the terrorism this very bad in a country, I think trading the privacy of some civilians to protect the lives of even more civilians is a good trade.
Comments
Post a Comment