Uploaded by primekingeric

ethics

advertisement
Ethics in Software
Engineering
The source of questions marked with [Pfleeger] is
Software Engineering, by Shari Pfleeger, 1998.
CMSC 345, Fall 2002
1
ethic - 1. A system of moral standards or values. 2. A
particular moral standard or value.
ethical - 1. Having to do with ethics or morality; of or
conforming to moral standards. 2. Conforming to the
standards of conduct of a given profession or group.
Synonym: moral
Source: Webster’s New World College Dictionary, 3rd
edition
CMSC 345, Fall 2002
2
Who’s Responsible? (1)
(Requirements)
Developers work together with customers and users to
define requirements and specify what the proposed
system will do.
If, once it is built, the system works according to
specification but harms someone physically or
financially, who is responsible?
[Pfleeger]
CMSC 345, Fall 2002
3
Who’s Responsible? (2)
What are the legal and ethical implications of using
COTS software? For example, who is responsible for
fixing the problem when the major system fails as a
result of a fault in COTS software?
What checks and balances are needed to ensure the
quality of COTS software before it is integrated into a
larger system?
[Pfleeger]
CMSC 345, Fall 2002
4
Who’s Responsible? (3)
What are the legal and ethical implications of using a
subcontractor? For example, who is responsible for
fixing the problem when the major system fails as a
result of a fault in the subcontractor’s software?
What checks and balances are needed to ensure
the quality of subcontractor software before it is
integrated into a larger system?
[Pfleeger]
CMSC 345, Fall 2002
5
Who’s Responsible? (4)
Suppose Amalgamated, Inc. requires you to use a given
process model when it contracts with you to build a
system. After the software is delivered and installed,
your system experiences a catastrophic failure.
When Amalgamated investigates, you are accused of
not having done code reviews that would have found
the source of the problem before delivery. You respond
that code reviews were not in the required process.
What are the legal and ethical issues involved in this
dispute?
[Pfleeger]
CMSC 345, Fall 2002
6
Who’s Responsible? (5)
If one person has written a component but others have
revised it, who is responsible if the component fails?
[Pfleeger]
CMSC 345, Fall 2002
7
Who’s Responsible? (6)
(Testing)
If an independent test team does integration testing and a
critical fault remains in the code after testing is complete,
who is legally and ethically responsible for the damage
caused by the fault?
[Pfleeger]
CMSC 345, Fall 2002
8
Who’s Responsible? (7)
(Testing)
A safety-critical system fails and several lives are lost.
When the cause of the failure is investigated, the inquiry
commission discovers that the test plan neglected to
consider the case that caused the system failure.
Who is responsible?
• The testers for not noticing the missing case?
• The test planners for not writing a complete test plan?
• The managers for not having checked the test plan?
• The customer for not having done a thorough
acceptance test?
CMSC 345, Fall 2002
[Pfleeger]
9
Who’s Responsible? (8)
(Maintenance)
Suppose you are maintaining a large, safety-critical
system. You use a model to predict which components
are most likely to fail. Then you examine those identified
components carefully and perform perfective and
preventive maintenance on each one.
Soon after, the system undergoes a catastrophic failure.
The source of the failure turns out to be a component
that was not identified by your model.
Are you at fault for neglecting to look at the other
components?
[Pfleeger]
CMSC 345, Fall 2002
10
The Impossible Requirement
Sometimes a customer requests a requirement that you
know is impossible to implement. Should you agree to
put the requirement in the requirements specification
document anyway, thinking that you might come up with a
novel way of meeting it, or thinking that you will ask that
the requirement be dropped later?
What are the ethical implications of promising what you
know you cannot deliver?
[Pfleeger]
CMSC 345, Fall 2002
11
The Impossible Test
If a system’s ultrahigh reliability requirement means
that the reliability can never be verified, should the
system be used anyway?
[Pfleeger]
CMSC 345, Fall 2002
12
Is It Mine? (Version 1)
While developing software for a work project, you get an
idea for a product of your own. Although your product
will not directly compete with the work product, it deals
with the same domain. You decide to develop your
product on your own time, but on your computer at work.
Legal issues aside, who should own your product?
You? The company? The customer?
CMSC 345, Fall 2002
13
Is It Mine? (Version 2)
While developing software for a work project, you get an
idea for a product of your own. Although your product
will not directly compete with the work product, it deals
with the same domain. You decide to develop your
product on your own time on your computer at home.
Legal issues aside, who should own your product? You?
The company? The customer?
CMSC 345, Fall 2002
14
The Layoff
You and several co-workers are laid off from XYZ
Corporation where you were working on developing a
proprietary software product. As you are programmers,
you have access to the corporate software repository.
What procedures should the company follow when you
are told that you are being laid off?
CMSC 345, Fall 2002
15
Should I Fink? (1)
A project teammate misleads her (and your) boss as to
the status of the module she is working on. Are you
responsible for this person’s unethical behavior? If so,
what do you do?
What if the person is a superior?
CMSC 345, Fall 2002
16
Should I Fink? (2)
What do you do if one of your teammates is clearly
incompetent and the project manager doesn’t know it?
CMSC 345, Fall 2002
17
Is It Deception?
What types of project information would be morally
permissible to keep from your client?
What types of project information would be unethical to
keep from your client?
Are there any types of information that are “fuzzy?”
CMSC 345, Fall 2002
18
Download