Ethics in Software Engineering

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

Chapter 2 – Software Processes
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Software Configuration Management
Chapter 9 Testing the System, part 2. Testing  Unit testing White (glass) box Code walkthroughs and inspections  Integration testing Bottom-up Top-down.
Slide 1.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
Object-Oriented Analysis and Design Lecture 11 Maintenance (from Schach, “O-O and Classical Software Engineering”)
7.2 System Development Life Cycle (SDLC)
Maintenance = Software Evolution Any changes after the client has accepted the product is considered maintenance. n Any Changes? n What might these be?
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
Pfleeger and Atlee, Software Engineering: Theory and Practice CS499 Chapter 9 Testing the System Shari L. Pfleeger Joann M. Atlee 4 th Edition.
Functional Testing Test cases derived from requirements specification document – Black box testing – Independent testers – Test both valid and invalid.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Lecture # 22 Software Evolution
System Testing There are several steps in testing the system: –Function testing –Performance testing –Acceptance testing –Installation testing.
Pre-Project Activities Text Chapters 5 and 6. Pre-Project Activities 1.Contract Review 2.Development Plan 3.Quality Plan.
CCSB223/SAD/CHAPTER141 Chapter 14 Implementing and Maintaining the System.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Software Systems Verification and Validation Laboratory Assignment 3 Integration, System, Regression, Acceptance Testing Assignment date: Lab 3 Delivery.
SIUE Injury Tracking System Project Plan. Team Members: Robbie Marsh Robbie Marsh –Project Manager/Webmaster Ken Metcalf Ken Metcalf –Lead Programmer.
CMSC 345 Fall 2000 Unit Testing. The testing process.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Installation and Maintenance of Health IT Systems
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
Lecture 3 Software Engineering Models (Cont.)
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 23 Reliability III.
© Copyright 2011 John Wiley & Sons, Inc.
Chapter 9 Testing the System Shari L. Pfleeger Joann M. Atlee
Black Box Software Testing Copyright © Cem Kaner & James Bach 1 Black Box Software Testing Fall 2005 Overview—Part 2 (Mission of Testing) Cem Kaner,
Note Excerpts from Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R. Schach
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
I Power Higher Computing Software Development The Software Development Process.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter 10 Systems Implementation.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 24 Delivering the System.
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
KUFA UNIVERSITY Department of Computer Science. Fundamentals of Software Engineering Presented By Neamah Hassan Presented By Neamah Hassan.
Herriman High Computer Programming 1A Software Development Cycle Things to Know.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
Reviews Chapter 5 Applied Software Project Management, Stellman & Greene See also:
Testing and Evolution CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
Software Maintenance1 Software Maintenance.
Chapter 9 Testing the System 9.1 Principles of System Testing Focus A: The objective of unit and integration ensure the code implemented the design.
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Software Configuration Management
Testing the System.
Rekayasa Perangkat Lunak Part-13
SEVERITY & PRIORITY RELATIONSHIP
Different Types of Testing
Systems Analysis and Design
Software Processes.
Chapter 10 Systems Implementation and Operation
Software Verification, Validation, and Acceptance Testing
Chapter 8 Software Evolution.
Software Testing “If you can’t test it, you can’t design it”
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
Presented by KARRI GOVINDA RAO ,
Presentation transcript:

Ethics in Software Engineering The source of questions marked with [Pfleeger] is Software Engineering, by Shari Pfleeger, 1998. CMSC 345, Fall 2002

Source: Webster’s New World College Dictionary, 3rd edition 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

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

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

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

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

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

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

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? [Pfleeger] CMSC 345, Fall 2002

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

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

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

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

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

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

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

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

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