university of south carolina department of computer science and engineering csce 390 professional...

18
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering Codes of Ethics Fall 2014 Marco Valtorta [email protected]

Upload: coleen-tucker

Post on 13-Dec-2015

227 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

CSCE 390Professional Issues in Computer

Science and EngineeringSoftware Engineering Codes of

EthicsFall 2014

Marco [email protected]

Page 2: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Three Codes of Ethics

• ACM Codes of Ethics and Professional Conduct: http://www.acm.org/about/code-of-ethics

• ACM/IEEE-CS Software Engineering Code of Ethics and Professional Practice http://www.acm.org/about/se-code

• The Ten Commandments of Computer Ethics• Three case studies: Gotterbarn, D. and Miller, K.

W. 2004. Computer ethics in the undergraduate curriculum: case studies and the joint software engineer's code. J. Comput. Small Coll. 20, 2 (Dec. 2004), 156-167, http://portal.acm.org/citation.cfm?id=1040168#

Page 3: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

ACM Code of Ethics and Professional Conduct:

General Moral Imperatives• Contribute to Society and human well-being• Avoid harm to others• Be honest and trustworthy• Be fair and take action not to discriminate• Honor property rights including copyrights

and patents• Give proper credit for intellectual property• Respect the property of others• Honor confidentiality

Page 4: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

ACM Code: Specific Professional Responsibilities

• Strive to achieve the highest quality, effectiveness, and dignity in both the process and products of professional work

• Acquire and maintain professional competence• Know and respect existing laws pertaining to

professional work• Accept and provide appropriate professional review• Give comprehensive and thorough evaluations of

computer systems and their impact, including analysis of possible risks

• Honor contracts, agreements, and assigned responsibilities

• Improve public understanding of computing and its consequences

• Access computing and communication resources only when authorized to do so.

Page 5: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Principles of the SE Code

1 PUBLIC - Software engineers shall act consistently with the public interest.2 CLIENT AND EMPLOYER - Software engineers shall act in a manner that is inthe best interests of their client and employer, consistent with the public interest.3 PRODUCT - Software engineers shall ensure that their products and relatedmodifications meet the highest professional standards possible.4 JUDGMENT - Software engineers shall maintain integrity and independence intheir professional judgment.5 MANAGEMENT - Software engineering managers and leaders shall subscribe toand promote an ethical approach to the management of software development andmaintenance.6 PROFESSION - Software engineers shall advance the integrity and reputation ofthe profession consistent with the public interest.7 COLLEAGUES - Software engineers shall be fair to and supportive of theircolleagues.8 SELF - Software engineers shall participate in lifelong learning regarding thepractice of their profession and shall promote an ethical approach to the practice ofthe profession.

Page 6: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Case Study 1George Babbage is an experienced software developer working for Acme SoftwareCompany. Mr. Babbage is now working on a project for the U.S. Department of Defense,testing the software used in controlling an experimental jet fighter. George is the qualitycontrol manager for the software. Early simulation testing revealed that, under certainconditions, instabilities would arise that could cause the plane to crash. The software waspatched to eliminate the specific problems uncovered by the tests. After these repairs, thesoftware passed all the simulation tests.

George is not convinced that the software is safe. He is worried that the problemsuncovered by the simulation testing were symptomatic of a design flaw that could onlybe eliminated by an extensive redesign of the software. He is convinced that the patch

thatwas applied to remedy the specific tests in the simulation did not address the underlyingproblem. But, when George brings his concerns to his superiors, they assure him that theproblem has been resolved. They further inform George that any major redesign effortwould introduce unacceptable delays, resulting in costly penalties to the company.

There is a great deal of pressure on George to sign off on the system and to allowit to be flight tested. It has even been hinted that, if he persists in delaying the system, hewill be fired. What should George do next?

Page 7: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Case Study 1: Relevant Clauses

• Principle 1. PUBLIC Software engineers shall act consistently with the public interest. In particular, software engineers shall, as appropriate:– 1.03. Approve software only if they have a

well-founded belief that it is safe, meets specifications, passes appropriate tests, and does not diminish quality of life, diminish privacy or harm the environment. The ultimate effect of the work should be to the public good.

– 1.04. Disclose to appropriate persons or authorities any actual or potential danger to the user, the public, or the environment, that they reasonably believe to be associated with software or related documents.

Page 8: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Case Study 1: Relevant Clauses

• Principle 3. PRODUCT Software engineers shall ensure that their products and related modifications meet the highest professional standards possible. In particular, software engineers shall, as appropriate:– 3.10. Ensure adequate testing,

debugging, and review of software and related documents on which they work.

Page 9: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Case Study 1: Relevant Clauses

• Principle 5. MANAGEMENT Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance. In particular, those managing or leading software engineers shall, as appropriate:– 5.01 Ensure good management for any

project on which they work, including effective procedures for promotion of quality and reduction of risk.

– 5.11. Not ask a software engineer to do anything inconsistent with this Code.

Page 10: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Applying the Code

• Whose safety?• How safe?

– Safe enough! Professional judgement• Management’s position• “The standard supported by the Code is

to have the burden to demonstrate that the software is safe before deployment instead of having to prove it unsafe before deployment is halted.”

Page 11: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Case Study 2Leikessa Jones owns her own consulting business, and has several people workingfor her. Leikessa is currently designing a database management system for the personneloffice of ToyTimeInc., a mid-sized company that makes toys. Leikessa has involvedToyTimeInc management in the design process from the start of the project. It is nowtime to decide about the kind and degree of security to build into the system.

Leikessa has described several options to the client. The client has decided to optfor the least secure system because the system is going to cost more than was initiallyplanned, and the least secure option is the cheapest security option. Leikessa knows thatthe database includes sensitive information, such as performance evaluations, medicalrecords, and salaries. With weak security, she fears that enterprising ToyTimeIncemployees will be able to easily access this sensitive data. Furthermore, she fears that thesystem will be an easy target for external hackers. Leikessa feels strongly that the systemshould be more secure than it would be if the least secure option is selected.

Ms. Jones has tried to explain the risks to ToyTimeInc, but the CEO, the CIO, andthe Director of Personnel are all convinced that the cheapest security is what they want.Should Jones refuse to build the system with the least secure option?

Page 12: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Case Study 2: Relevant Clauses

• Principle 1. PUBLIC Software engineers shall act consistently with the public interest. In particular, software engineers shall, as appropriate: – 1.01. Accept full responsibility for their own work.– 1.03. Approve software only if they have a well-

founded belief that it is safe, meets specifications, passes appropriate tests, and does not diminish quality of life, diminish privacy or harm the environment. The ultimate effect of the work should be to the public good.

– 1.04 Disclose to appropriate persons or authorities any actual or potential danger to the user, the public, or the environment, that they reasonably believe to be associated with software or related documents.

Page 13: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Case Study 2: Relevant Clauses

• Principle 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. In particular, software engineers shall, as appropriate:– 2.05. Keep private any confidential

information gained in their professional work, where such confidentiality is consistent with the public interest and consistent with the law.

Page 14: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Case Study 2: Relevant Clauses

• Principle 3. PRODUCT Software engineers shall ensure that their products and related modifications meet the highest professional standards possible. In particular, software engineers shall, as appropriate:– 3.01. Strive for high quality, acceptable cost, and a

reasonable schedule, ensuring significant tradeoffs are clear to and accepted by the employer and the client, and are available for consideration by the user and the public.

– 3.03. Identify, define and address ethical, economic, cultural, legal and environmental issues related to work projects.

– 3.12. Work to develop software and related documents that respect the privacy of those who will be affected by that software.

Page 15: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Applying the Code• Privacy• Security of private data vs. economic

interests of the client• Mistake: offering an option that is not

beneficial to the public– Ms. Jones cannot just blame the client

• Ms. Jones failed in her duty to use sound professional judgement

– She may need to absorb the additional cost of a sufficiently secure solution as a loss

Page 16: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Case Study 3Juan Rodriguez is a private consultant who advises small businesses about theircomputer needs. Juan examines a company's operations, evaluates their automation

needs,and recommends hardware and software to meet those needs.

Recently, Juan was hired by a small, private hospital interested in upgrading theirsystem for patient records and accounting. The hospital had already solicited proposalsfor upgrading the system, and hired Juan to evaluate the proposals they'd received.

Juan carefully examined the proposals on the basis of the systems proposed, theexperience of the companies that bid, and the costs and benefits of each proposal. Heconcluded that Tri-Star Systems had proposed the best system for the hospital, and herecommended that the hospital should buy the Tri-Star system. He included a detailedexplanation for why he thought the Tri-Star bid was the best.

Juan did not reveal to the hospital that he is a silent partner (a co-owner) in Tri-StarSystems. Was Juan's behavior unethical? We will assume for our discussion that Juanevaluated the bids in good faith, and sincerely believed that Tri-Star had given the bestbid.

Page 17: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Case Study 3: Relevant Clauses

• Principle 4. JUDGMENT Software engineers shall maintain integrity and independence in their professional judgment. In particular, software engineers shall, as appropriate:–4.05. Disclose to all concerned parties those conflicts of interest that cannot reasonably be avoided or escaped.

Page 18: UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 390 Professional Issues in Computer Science and Engineering Software Engineering

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Applying the Code• This is an easy case:

– [C]lause 4.05 clearly labels Mr. Rodriguez's actions as wrong. Mr. Rodriguez did not fulfill his professional obligations when he neglected to disclose his conflict of interest to the hospital. Notice that his sincerity about the superiority of the Tri-Star bid is not a central issue here. The central issue is the trust Tri-Star has invested in Juan. If Mr. Rodriguez had disclosed his part ownership in Tri-Star to the hospital, and the hospital had still hired him to evaluate the bids, then Juan could have attempted to do a professional job of evaluation. (Some people might find that difficult, but it is at least theoretically possible.) However, the Code clearly prohibits Juan from taking this job without first giving the hospital the opportunity to judge for itself whether or not they wanted to hire Mr. Rodriguez despite his interest in Tri-Star.