Part II: The World of Software Engineering


Part II: The World of Software Engineering

Chapter List

Chapter 5: Code of Ethics of Software Engineering
Chapter 6: International Perspective on Software
Chapter 7: Different Perspectives on Software Engineering
Chapter 8: The History of Software Engineering



Chapter 5: Code of Ethics of Software Engineering

Introduction

In this chapter, we discuss the notion of ethics in general and review the Code of Ethics of Software Engineering [1] in particular. These aims are achieved by discussing the main ideas and the essence of the Code of Ethics of Software Engineering and by analyzing scenarios taken from the software engineering world. This chapter is largely based on case studies that the readers are asked to discuss. The idea is to guide the reader in the formulation of personal ethical behavior. This is a personal process that each practitioner should go through individually. In this sense, this chapter is different from the other chapters of the book since it raises questions and philosophical dilemmas more than it provides answers.

[1] The Code can be found at www.acm.org/constitution/code.html . It is also presented in this chapter.



Objectives

  • Readers will become familiar with the concept of code of ethics in general and the Code of Ethics of Software Engineering in particular.

  • Readers will identify situations in which ethical considerations (in addition to technical considerations) should be intertwined in software development processes.

  • Readers will improve their ability to predict situations in software development processes that may harm society from an ethical point of view and to suggest ways to avoid such situations.

  • Readers will conceive the Code of Ethics of Software Engineering as a tool that can be used for both the identification of ethical dilemmas and solving them.



Study Questions

  1. Define basic rules that software engineers should follow when they develop any piece of code. Refer to to do rules and not to do rules.

  2. In your opinion, in what ways might software developers influence our world? Refer to social, environmental, and other types of influences.

  3. In your opinion, in what ways might software developers influence a software user s life? How is it possible to protect users from harmful influences?

  4. In your opinion, in what ways can software engineers harm their coworkers? How can such harmful behavior be avoided?

  5. This question addresses the idea of ethics. You are asked to answer it according to your familiarity with the concept.

    What is ethics? What professions have a code of ethics? If you are familiar with other professions that have a code of ethics, on what fundamental rules are their codes of ethics based? What types of problems do their codes of ethics address?

  6. Identify five situations in which ethical issues should be considered in software development.

    In your opinion and based on your familiarity with the notion of ethics and the situations you just described, does the community of software engineering need a code of ethics? If yes, explain why. On what principles should it be based? What topics should it address? If no, explain your opinion.

  7. What special ethical problems might the Internet raise? In what sense are these issues different from other ethical situations related to software engineering?