Page 34 -
P. 34
1.3 Case studies 17
You must make up your own mind in these matters. The appropriate ethical posi-
tion here depends entirely on the views of the individuals who are involved. In this
case, the potential for damage, the extent of the damage, and the people affected by
the damage should influence the decision. If the situation is very dangerous, it may
be justified to publicize it using the national press (say). However, you should
always try to resolve the situation while respecting the rights of your employer.
Another ethical issue is participation in the development of military and nuclear
systems. Some people feel strongly about these issues and do not wish to participate in
any systems development associated with military systems. Others will work on mili-
tary systems but not on weapons systems. Yet others feel that national security is an
overriding principle and have no ethical objections to working on weapons systems.
In this situation, it is important that both employers and employees should make
their views known to each other in advance. Where an organization is involved in
military or nuclear work, they should be able to specify that employees must be will-
ing to accept any work assignment. Equally, if an employee is taken on and makes
clear that they do not wish to work on such systems, employers should not put pres-
sure on them to do so at some later date.
The general area of ethics and professional responsibility is becoming more
important as software-intensive systems pervade every aspect of work and everyday
life. It can be considered from a philosophical standpoint where the basic principles
of ethics are considered and software engineering ethics are discussed with reference
to these basic principles. This is the approach taken by Laudon (1995) and to a lesser
extent by Huff and Martin (1995). Johnson’s text on computer ethics (2001) also
approaches the topic from a philosophical perspective.
However, I find that this philosophical approach is too abstract and difficult to
relate to everyday experience. I prefer the more concrete approach embodied in codes
of conduct and practice. I think that ethics are best discussed in a software engineer-
ing context and not as a subject in their own right. In this book, therefore, I do not
include abstract ethical discussions but, where appropriate, include examples in the
exercises that can be the starting point for a group discussion on ethical issues.
1.3 Case studies
To illustrate software engineering concepts, I use examples from three different
types of systems throughout the book. The reason why I have not used a single case
study is that one of the key messages in this book is that software engineering prac-
tice depends on the type of systems being produced. I therefore choose an appropri-
ate example when discussing concepts such as safety and dependability, system
modeling, reuse, etc.
The three types of systems that I use as case studies are:
1. An embedded system This is a system where the software controls a hardware
device and is embedded in that device. Issues in embedded systems typically