Software Engineering Code
of Ethics and Professional Practice
Abdel Salam Sayyad
Abstract
The making of software has become its own industry and
Engineering discipline. Yet the adoption and education of
Software Engineering code of Ethics and professional
practice has been sluggish, if not totally ignored.
Resistance to dedicating time, effort, and resources to the
education of Ethics to Software Engineers can be felt in all
parts of the world, east and west.
This tutorial will introduce the Software Engineering Code
of Ethics and Professional Practice, and then focus on
ways to change attitudes towards its adoption and
education, especially through the discussion of real-life
cases.
2
Roadmap
①Ethics in Engineering
②Software? Engineering?
③SW Eng. Code of Ethics
④Practical Cases
Roadmap
①Ethics in Engineering
②Software? Engineering?
③SW Eng. Code of Ethics
④Practical Cases
What is a Profession?
• A profession is different from a mere
“occupation” in the following aspects:
– Requires extensive Training,
– Requires vital knowledge and skills,
– Control of services,
– Autonomy in the workplace, and
– Claim to ethical regulation.
5
Professions
• Examples of professions:
– Medicine,
– Pharmacy,
– Law,
– Architecture,
– Accounting, and…
– Engineering.
• Is “Software Engineering” a profession?
6
Herbert Hoover on the Engineering
Profession
… It is a great profession. There is the
fascination of watching a figment of the
imagination emerge through the aid of science
to a plan on paper. Then it moves to
realization in stone or metal or energy. Then it
brings jobs and homes to men. Then it
elevates the standards of living and adds to
the comforts of life. That is the engineer’s high
privilege…
7
Herbert Hoover [continued]
… The great liability of the engineer compared
to men of other professions is that his works
are out in the open where all can see them.
His acts, step by step, are in hard substance.
He cannot bury his mistakes in the graves like
the doctors. He cannot argue them into thin
air or blame the judge like the lawyers. He
cannot, like the architects, cover his failures
with trees and vines…
8
Herbert Hoover [continued]
… He cannot, like the politicians, screen his
shortcomings by blaming his opponents and
hope that the people will forget…
… The engineer simply cannot deny that he
did it. If his works do not work, he is damned.
9
Engineering Ethics
• The responsibilities and rights that aught to be
endorsed by those engaged in engineering.
• Desirable ideals and personal commitments in
engineering.
• The study of the decisions, policies, and values
that are morally desirable in engineering
practice and research.
10
Why study Engineering Ethics?
Desirable outcomes
• increased ethical sensitivity,
• increased knowledge of relevant standards of
conduct,
• improved ethical judgment, and
• improved ethical will-power (that is, a greater
ability to act ethically when one wants to).
11
Why study Engineering Ethics?
Practical Skills
• Moral awareness, recognizing moral issues
• Moral reasoning, assessing arguments on opposite sides
of moral issues
• Moral coherence, forming consistent viewpoints
• Moral imagination, alternative responses & creative
solutions
• Moral communication, express & support your views
12
Example:
The Challenger Explosion
Mission 51-L
NASA
January 28, 1986
• On the cold freezing morning of January 28, 1986.
• The 10th flight of Orbiter Challenger. The 25th NASA
space shuttle. (Tomorrow, 21/7/2011 will be the landing
of the last NASA space shuttle, ending a 30-year era)
• One of the most publicized launches because it was
the first time that a civilian, a school teacher, was going
into space.
• The launch of Challenger had been delayed five times
due to bad weather… and January 28 was the coldest day
that NASA had ever launched a shuttle.
• Seventy three seconds into flight, the Orbiter
Challenger exploded, killing all seven of its crew.
* Master Oogway
15
“One often meets his destiny on the
road he takes to avoid it!” (*)
The Explosion
CNN Online Archive
3 Seconds
CBS News.Com Interactive Challenger Disaster
59 Seconds
CBS News.Com Interactive Challenger Disaster
64.7 Seconds
CBS News.Com Interactive Challenger Disaster
Report of the Presidential Commission on the
Space Shuttle Challenger Accident
• In view of the findings, the Commission concluded
that the cause of the Challenger accident was the
failure of the pressure seal in the aft field joint of the
right Solid Rocket Booster. The failure was due
to a faulty design unacceptably sensitive to a
number of factors. These factors were the effects
of temperature, physical dimensions, the character of
materials, the effects of reusability, processing and
the reaction of the joint to dynamic loading.
• “The decision to launch the Challenger was
flawed.”
http://www.jlhs.nhusd.k12.ca.us/Classes/Social_Science/Challenger.html/C
hallenger.html
Decision Making
To launch or not to launch?
22
https://www.youtube.com/watch?v=USJ8OSIjhvk
Engineering vs. Management
Disclaimer: All generalizations are false, including this one!
23
Roadmap
①Ethics in Engineering
②Software? Engineering?
③SW Eng. Code of Ethics
④Practical Cases
Is Software an Engineering Discipline?
• Creates artifacts visible to the public?
• Requires extensive Training?
• Requires vital knowledge and skills?
• Control of services?
• Autonomy in the workplace?
• Claim to ethical regulation?
25
Roadmap
①Ethics in Engineering
②Software? Engineering?
③SW Eng. Code of Ethics
④Practical Cases
SW Eng. Code of Ethics
Based on slides prepared by:
John Eveland
John Hoffstatter
27
History
• IEEE Board of Governors established steering
committee (May, 1993).
• ACM Council endorsed Commission on Software
Engineering (Late 1993).
• Joint steering committee established by both
societies (January, 1994).
Research
• Review of available computing and engineering
codes:
– The American Association of Engineering Societies
– Accreditation Board for Engineering Technology
– ACM’s Code of Ethics for Professional Conduct
– The British Computer Society Code of Practice
– Institute for the Certification of Computing Professionals
– Engineer’s Council for Professional Development
– The IEEE Code of Ethics
– National Society of Professional Engineers Code of Ethics
– Project Management Institute Code of Ethics
Brief History Timeline
• January 1994 - International Task Force formed the
Software Engineering Ethics and Professional
Practice (SEEPP).
• July 1997 - Initial version shown to professional
societies including ACM’s SIGSOFT.
• November 1997 - Version 3 published in IEEE-CS
and ACM magazines.
• Version 4 presented to IEEE review process.
• October 1998 - Version 5.2 unanimously adopted by
ACM and IEEE.
8 Key Principles:
• Product
• Public
• Judgement
• Client and Employer
• Management
• Profession
• Colleagues
• Self
Principle 1: Products• 1.01 Ensure adequate software specification
• 1.02 Understand specifications fully
• 1.03 Ensure you are suitably qualified
• 1.04 Ensure all goals are achievable
• 1.05 Ensure proper methodology use
• 1.06 Ensure good project management
• 1.07 Ensure all estimates are realistic
• 1.08 Ensure adequate documentation
• 1.09 Ensure adequate testing and debugging
• 1.10 Promote privacy of individuals
• 1.11 Use data legitimately
• 1.12 Delete outdated and flawed data
• 1.13 Identify and address contentious issues
• 1.14 Promote maximum quality and minimum cost
• 1.15 Follow appropriate industry standards
Principle 2: Public
• 2.01 Disclose any software-related dangers
• 2.02 Approve only safe, well tested software
• 2.03 Only sign documents in area of competence
• 2.04 Cooperate on matters of public concern
• 2.05 Produce software that respects diversity
• 2.06 Be fair and truthful in all matters
• 2.07 Always put the public’s interests first
• 2.08 Donate professional skills to good causes
• 2.10 Accept responsibility for your own work
Principle 3: Judgement
• 3.01 Maintain professional objectivity
• 3.02 Only sign documents within your responsibility
• 3.03 Reject bribery
• 3.04 Do not accept secret payments from the client
• 3.05 Accept payment from only one source for a job
• 3.06 Disclose conflicts of interest
• 3.07 Avoid conflicting financial interests
• 3.08 Temper technology judgments with ethics
Principle 4: Client and Employer
• 4.01 Provide services only where competent
• 4.02 Ensure resources are authentically approved
• 4.03 Only use property as authorized by the owner
• 4.04 Do not use illegally obtained software
• 4.05 Honor confidentiality of information
• 4.06 Raise matters of social concern
• 4.07 Inform when a project becomes problematic
• 4.08 Accept no detrimental outside work
• 4.09 Represent no interests adverse to your employer
Principle 5: Management
• 5.01 Assure standards are known by employees
• 5.02 Assure knowledge of confidentiality protocols
• 5.03 Assign work according to competence
• 5.04 Provide due process for code violations
• 5.05 Develop fair ownership agreements
• 5.06 Accurately describe conditions of employment
• 5.07 Offer only fair and just remuneration
• 5.08 Do not prevent a subordinate’s promotion
• 5.09 Do not ask a person to breach this code
Principle 6: Profession
• 6.01 Associate with reputable people
• 6.02 Promote commitment of this code
• 6.03 Support followers of this code
• 6.04 Help develop an ethical environment
• 6.05 Report suspected violations of this code
• 6.06 Take responsibility for errors
• 6.07 Only accept appropriate remuneration
• 6.08 Be accurate and honest regarding software
• 6.09 Place professional interests before personal
• 6.10 Obey all laws governing your work
• 6.11 Exercise professional responsibility
• 6.12 Promote public knowledge of the subject
• 6.13 Share software knowledge with the profession
Principle 7: Colleagues
• 7.01 Assist colleagues in professional development
• 7.02 Review other’s work only with their consent
• 7.03 Credit fully the work of others
• 7.04 Review others work candidly
• 7.05 Give fair hearing to colleagues
• 7.06 Assist colleagues’ awareness of work practices
• 7.08 Do not hinder a colleague’s career
• 7.09 Do not pursue a job offered to a colleague
• 7.10 Seek help with work outside your competence
Principle 8: Self
• 8.01 Further your own professional knowledge
• 8.02 Improve your ability to produce quality work
• 8.03 Improve your ability to document work
• 8.04 Improve your understanding of work details
• 8.05 Improve your knowledge of relevant legislation
• 8.06 Improve your knowledge of this code
• 8.07 Do not force anyone to violate this code
• 8.08 Consider code violations inconsistent with
software engineering
Major changes between v3 and v5.2
• The 8 principles reordered to show
precedence
• Short version added
• Preamble significantly altered
Preamble
• “Software engineers are those who contribute by
direct participation or by teaching, to the analysis,
specification, design, development, certification,
maintenance, and testing of software systems.”
• Prevalence of software in society provide significant
opportunities to do good or cause harm.
• Ensure that efforts are used to do good.
• Not intended to be applied piecemeal.
Preamble - continued
• Not to be used to justify errors of omission or
commission.
• Not a simple algorithm to produce ethical
decisions.
• Software engineer must use judgment after
thoughtful consideration of the 8 fundamental
principles.
• Always use the public interest as the highest
and governing principle.
Short version, 1 of 2
• 1. PUBLIC - Software engineers shall act
consistently with the public interest.
• 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.
• 3. PRODUCT - Software engineers shall ensure
that their products and related modifications meet
the highest professional standards possible.
• 4 . JUDGMENT - Software engineers shall
maintain integrity and independence in their
professional judgment.
Short version, 2 of 2
• 5. MANAGEMENT - Software engineering
managers and leaders shall subscribe to and
promote an ethical approach to the management of
software development and maintenance.
• 6. PROFESSION - Software engineers shall
advance the integrity and reputation of the
profession consistent with the public interest.
• 7. COLLEAGUES - Software engineers shall be
fair to and supportive of their colleagues.
• 8. SELF - Software engineers shall participate in
lifelong learning regarding the practice of their
profession and shall promote an ethical approach
to the practice of the profession.
Roadmap
①Ethics in Engineering
②Software? Engineering?
③SW Eng. Code of Ethics
④Practical Cases
46
Ariane 5 & The Patriot Missile
47
https://www.youtube.com/watch?v=EMVBLg2MrLs
http://www.parseerror.com/bugs
48
49
50
https://users.ece.cmu.edu/~koopman/pubs/koopman14_toyota_ua_slides.pdf
51
52
53
54
Toyota Claimed:
• Gas pedal get stuck under
the floor mat.
• The ETCS software testing
shows no possibility of
Unintended Acceleration…
55
Experts Found:
• Toyota’s source code defective… Bugs that can
lead to unintended acceleration.
• Stack Overflow and Software Bugs led to
Memory Corruption.
• Testing is not enough to establish safety.
• High number of Global Variables.
• Code complexity that hindered testing.
• Concurrency bugs / Race conditions.
56
Volkswagen Emissions Cheating
57
https://www.youtube.com/watch?v=Y5TvFY7xRDM
Target Company Data Mining
58
“Guest Data Management”
59
60
A simple request…
61
Why?
62
The data…
63
Success!
64
From Andrew Pole’s LinkedIn Profile
65
Too much success?!
* Not the actual customer in the story!
66
Too much success?!
67
Ethical Issues
(Related to all those stories)
• Putting public interest above personal or
corporate gain.
• Honesty.
• Rigor in Software design, review, testing,
documentation…
• Following safety standards…
• Customer privacy.
• Other issues…?
68
For more info and follow up…
69
Abdel Salam Sayyad
Birzeit University
asayyad@Birzeit.edu

Software Engineering Code of Ethics

  • 1.
    Software Engineering Code ofEthics and Professional Practice Abdel Salam Sayyad
  • 2.
    Abstract The making ofsoftware has become its own industry and Engineering discipline. Yet the adoption and education of Software Engineering code of Ethics and professional practice has been sluggish, if not totally ignored. Resistance to dedicating time, effort, and resources to the education of Ethics to Software Engineers can be felt in all parts of the world, east and west. This tutorial will introduce the Software Engineering Code of Ethics and Professional Practice, and then focus on ways to change attitudes towards its adoption and education, especially through the discussion of real-life cases. 2
  • 3.
    Roadmap ①Ethics in Engineering ②Software?Engineering? ③SW Eng. Code of Ethics ④Practical Cases
  • 4.
    Roadmap ①Ethics in Engineering ②Software?Engineering? ③SW Eng. Code of Ethics ④Practical Cases
  • 5.
    What is aProfession? • A profession is different from a mere “occupation” in the following aspects: – Requires extensive Training, – Requires vital knowledge and skills, – Control of services, – Autonomy in the workplace, and – Claim to ethical regulation. 5
  • 6.
    Professions • Examples ofprofessions: – Medicine, – Pharmacy, – Law, – Architecture, – Accounting, and… – Engineering. • Is “Software Engineering” a profession? 6
  • 7.
    Herbert Hoover onthe Engineering Profession … It is a great profession. There is the fascination of watching a figment of the imagination emerge through the aid of science to a plan on paper. Then it moves to realization in stone or metal or energy. Then it brings jobs and homes to men. Then it elevates the standards of living and adds to the comforts of life. That is the engineer’s high privilege… 7
  • 8.
    Herbert Hoover [continued] …The great liability of the engineer compared to men of other professions is that his works are out in the open where all can see them. His acts, step by step, are in hard substance. He cannot bury his mistakes in the graves like the doctors. He cannot argue them into thin air or blame the judge like the lawyers. He cannot, like the architects, cover his failures with trees and vines… 8
  • 9.
    Herbert Hoover [continued] …He cannot, like the politicians, screen his shortcomings by blaming his opponents and hope that the people will forget… … The engineer simply cannot deny that he did it. If his works do not work, he is damned. 9
  • 10.
    Engineering Ethics • Theresponsibilities and rights that aught to be endorsed by those engaged in engineering. • Desirable ideals and personal commitments in engineering. • The study of the decisions, policies, and values that are morally desirable in engineering practice and research. 10
  • 11.
    Why study EngineeringEthics? Desirable outcomes • increased ethical sensitivity, • increased knowledge of relevant standards of conduct, • improved ethical judgment, and • improved ethical will-power (that is, a greater ability to act ethically when one wants to). 11
  • 12.
    Why study EngineeringEthics? Practical Skills • Moral awareness, recognizing moral issues • Moral reasoning, assessing arguments on opposite sides of moral issues • Moral coherence, forming consistent viewpoints • Moral imagination, alternative responses & creative solutions • Moral communication, express & support your views 12
  • 13.
  • 14.
    • On thecold freezing morning of January 28, 1986. • The 10th flight of Orbiter Challenger. The 25th NASA space shuttle. (Tomorrow, 21/7/2011 will be the landing of the last NASA space shuttle, ending a 30-year era) • One of the most publicized launches because it was the first time that a civilian, a school teacher, was going into space. • The launch of Challenger had been delayed five times due to bad weather… and January 28 was the coldest day that NASA had ever launched a shuttle. • Seventy three seconds into flight, the Orbiter Challenger exploded, killing all seven of its crew.
  • 15.
    * Master Oogway 15 “Oneoften meets his destiny on the road he takes to avoid it!” (*)
  • 16.
  • 17.
    3 Seconds CBS News.ComInteractive Challenger Disaster
  • 18.
    59 Seconds CBS News.ComInteractive Challenger Disaster
  • 19.
    64.7 Seconds CBS News.ComInteractive Challenger Disaster
  • 20.
    Report of thePresidential Commission on the Space Shuttle Challenger Accident • In view of the findings, the Commission concluded that the cause of the Challenger accident was the failure of the pressure seal in the aft field joint of the right Solid Rocket Booster. The failure was due to a faulty design unacceptably sensitive to a number of factors. These factors were the effects of temperature, physical dimensions, the character of materials, the effects of reusability, processing and the reaction of the joint to dynamic loading. • “The decision to launch the Challenger was flawed.”
  • 21.
  • 22.
    Decision Making To launchor not to launch? 22 https://www.youtube.com/watch?v=USJ8OSIjhvk
  • 23.
    Engineering vs. Management Disclaimer:All generalizations are false, including this one! 23
  • 24.
    Roadmap ①Ethics in Engineering ②Software?Engineering? ③SW Eng. Code of Ethics ④Practical Cases
  • 25.
    Is Software anEngineering Discipline? • Creates artifacts visible to the public? • Requires extensive Training? • Requires vital knowledge and skills? • Control of services? • Autonomy in the workplace? • Claim to ethical regulation? 25
  • 26.
    Roadmap ①Ethics in Engineering ②Software?Engineering? ③SW Eng. Code of Ethics ④Practical Cases
  • 27.
    SW Eng. Codeof Ethics Based on slides prepared by: John Eveland John Hoffstatter 27
  • 28.
    History • IEEE Boardof Governors established steering committee (May, 1993). • ACM Council endorsed Commission on Software Engineering (Late 1993). • Joint steering committee established by both societies (January, 1994).
  • 29.
    Research • Review ofavailable computing and engineering codes: – The American Association of Engineering Societies – Accreditation Board for Engineering Technology – ACM’s Code of Ethics for Professional Conduct – The British Computer Society Code of Practice – Institute for the Certification of Computing Professionals – Engineer’s Council for Professional Development – The IEEE Code of Ethics – National Society of Professional Engineers Code of Ethics – Project Management Institute Code of Ethics
  • 30.
    Brief History Timeline •January 1994 - International Task Force formed the Software Engineering Ethics and Professional Practice (SEEPP). • July 1997 - Initial version shown to professional societies including ACM’s SIGSOFT. • November 1997 - Version 3 published in IEEE-CS and ACM magazines. • Version 4 presented to IEEE review process. • October 1998 - Version 5.2 unanimously adopted by ACM and IEEE.
  • 31.
    8 Key Principles: •Product • Public • Judgement • Client and Employer • Management • Profession • Colleagues • Self
  • 32.
    Principle 1: Products•1.01 Ensure adequate software specification • 1.02 Understand specifications fully • 1.03 Ensure you are suitably qualified • 1.04 Ensure all goals are achievable • 1.05 Ensure proper methodology use • 1.06 Ensure good project management • 1.07 Ensure all estimates are realistic • 1.08 Ensure adequate documentation • 1.09 Ensure adequate testing and debugging • 1.10 Promote privacy of individuals • 1.11 Use data legitimately • 1.12 Delete outdated and flawed data • 1.13 Identify and address contentious issues • 1.14 Promote maximum quality and minimum cost • 1.15 Follow appropriate industry standards
  • 33.
    Principle 2: Public •2.01 Disclose any software-related dangers • 2.02 Approve only safe, well tested software • 2.03 Only sign documents in area of competence • 2.04 Cooperate on matters of public concern • 2.05 Produce software that respects diversity • 2.06 Be fair and truthful in all matters • 2.07 Always put the public’s interests first • 2.08 Donate professional skills to good causes • 2.10 Accept responsibility for your own work
  • 34.
    Principle 3: Judgement •3.01 Maintain professional objectivity • 3.02 Only sign documents within your responsibility • 3.03 Reject bribery • 3.04 Do not accept secret payments from the client • 3.05 Accept payment from only one source for a job • 3.06 Disclose conflicts of interest • 3.07 Avoid conflicting financial interests • 3.08 Temper technology judgments with ethics
  • 35.
    Principle 4: Clientand Employer • 4.01 Provide services only where competent • 4.02 Ensure resources are authentically approved • 4.03 Only use property as authorized by the owner • 4.04 Do not use illegally obtained software • 4.05 Honor confidentiality of information • 4.06 Raise matters of social concern • 4.07 Inform when a project becomes problematic • 4.08 Accept no detrimental outside work • 4.09 Represent no interests adverse to your employer
  • 36.
    Principle 5: Management •5.01 Assure standards are known by employees • 5.02 Assure knowledge of confidentiality protocols • 5.03 Assign work according to competence • 5.04 Provide due process for code violations • 5.05 Develop fair ownership agreements • 5.06 Accurately describe conditions of employment • 5.07 Offer only fair and just remuneration • 5.08 Do not prevent a subordinate’s promotion • 5.09 Do not ask a person to breach this code
  • 37.
    Principle 6: Profession •6.01 Associate with reputable people • 6.02 Promote commitment of this code • 6.03 Support followers of this code • 6.04 Help develop an ethical environment • 6.05 Report suspected violations of this code • 6.06 Take responsibility for errors • 6.07 Only accept appropriate remuneration • 6.08 Be accurate and honest regarding software • 6.09 Place professional interests before personal • 6.10 Obey all laws governing your work • 6.11 Exercise professional responsibility • 6.12 Promote public knowledge of the subject • 6.13 Share software knowledge with the profession
  • 38.
    Principle 7: Colleagues •7.01 Assist colleagues in professional development • 7.02 Review other’s work only with their consent • 7.03 Credit fully the work of others • 7.04 Review others work candidly • 7.05 Give fair hearing to colleagues • 7.06 Assist colleagues’ awareness of work practices • 7.08 Do not hinder a colleague’s career • 7.09 Do not pursue a job offered to a colleague • 7.10 Seek help with work outside your competence
  • 39.
    Principle 8: Self •8.01 Further your own professional knowledge • 8.02 Improve your ability to produce quality work • 8.03 Improve your ability to document work • 8.04 Improve your understanding of work details • 8.05 Improve your knowledge of relevant legislation • 8.06 Improve your knowledge of this code • 8.07 Do not force anyone to violate this code • 8.08 Consider code violations inconsistent with software engineering
  • 40.
    Major changes betweenv3 and v5.2 • The 8 principles reordered to show precedence • Short version added • Preamble significantly altered
  • 41.
    Preamble • “Software engineersare those who contribute by direct participation or by teaching, to the analysis, specification, design, development, certification, maintenance, and testing of software systems.” • Prevalence of software in society provide significant opportunities to do good or cause harm. • Ensure that efforts are used to do good. • Not intended to be applied piecemeal.
  • 42.
    Preamble - continued •Not to be used to justify errors of omission or commission. • Not a simple algorithm to produce ethical decisions. • Software engineer must use judgment after thoughtful consideration of the 8 fundamental principles. • Always use the public interest as the highest and governing principle.
  • 43.
    Short version, 1of 2 • 1. PUBLIC - Software engineers shall act consistently with the public interest. • 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. • 3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible. • 4 . JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.
  • 44.
    Short version, 2of 2 • 5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance. • 6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest. • 7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues. • 8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
  • 45.
    Roadmap ①Ethics in Engineering ②Software?Engineering? ③SW Eng. Code of Ethics ④Practical Cases
  • 46.
  • 47.
    Ariane 5 &The Patriot Missile 47 https://www.youtube.com/watch?v=EMVBLg2MrLs
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
    Toyota Claimed: • Gaspedal get stuck under the floor mat. • The ETCS software testing shows no possibility of Unintended Acceleration… 55
  • 56.
    Experts Found: • Toyota’ssource code defective… Bugs that can lead to unintended acceleration. • Stack Overflow and Software Bugs led to Memory Corruption. • Testing is not enough to establish safety. • High number of Global Variables. • Code complexity that hindered testing. • Concurrency bugs / Race conditions. 56
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
    From Andrew Pole’sLinkedIn Profile 65
  • 66.
    Too much success?! *Not the actual customer in the story! 66
  • 67.
  • 68.
    Ethical Issues (Related toall those stories) • Putting public interest above personal or corporate gain. • Honesty. • Rigor in Software design, review, testing, documentation… • Following safety standards… • Customer privacy. • Other issues…? 68
  • 69.
    For more infoand follow up… 69 Abdel Salam Sayyad Birzeit University asayyad@Birzeit.edu