SlideShare a Scribd company logo
1 of 39
The Software Engineering Code
and the ACM Code
Faculty of Computers and Information
Level Two 2016/2017
Engnieer. Ahmed Morshedy Mohmmed Elshal
Dr.Mona Gamal
Computers and Ethics
• Why need for code?
• History of development
• Initial draft(s) development
• 8 Fundamental Principles
• Ratified code approved
• 8 Fundamental Principles Revisited
• Preamble
• Examples
• Focus on #
5 Management
• Missing points
• ACM Code of Ethics and Professional
Content
The need...
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).
Joint Commission Steering Committee
• 4 goals:
• Adopt standard definitions.
• Define required body of knowledge and
recommended practices.
• Define ethical standards.
• Define educational curricula for undergraduate,
graduate (Masters), and continuing education (for
retraining and migration).
• 3 initial task forces:
• Software engineering body of knowledge and
recommended practices.
• Software engineering ethics and professional
practices.
• Software engineering curriculum.
Joint Commission Steering Committee
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
The Published Proposal
• “Software Engineering Code of Ethics”
by Gotterbarn, Miller, and Rogerson
(November 1997/Vol. 40, No. 11,
Communication of the ACM)
Feedback
• Numerous commentaries
• Consensus discussions
• ACM and IEEE surveys
• Further review and modification
Code of Ethics Feedback Form
• Sent to all software engineers with -
concentrated on ACM or IEEE members.
• All 8 principle areas surveyed.
• Response options range:
Strongly Favor  Favor  Uncertain  Oppose  Strongly Oppose
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
The Code Adoption Published
• “Software Engineering Code of Ethics is
Approved”
by Gotterbarn, Miller, and Rogerson
(October 1999/Vol. 42, No. 10,
Communication of the ACM)
Major changes between v3 and v5.2
• The 8 principles reordered to show
precedence
• Short version added
• Preamble significantly altered
• Defines software engineers
• Removed reference to 3 levels of
obligation
• Stronger focus on standards to help the
professional make ethical decisions
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.
Examples
• Brief example of specific points
• Not comprehensive
Public
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.
Client & Employer
2.09. Promote no interest
adverse to their employer or
client, unless a higher
ethical concern is being
compromised; in that case,
inform the employer or
another appropriate
authority of the ethical
concern.
Management
5.01 Ensure good
management for any project
on which they work, including
effective procedures for
promotion of quality and
reduction of risk.
Profession
6.07. Be accurate in stating the characteristics of
software on which they work, avoiding not only false
claims but also claims that might reasonably be
speculative, vacuous, deceptive, misleading, or
doubtful.
Colleagues
7.02. Assist colleagues in professional
development.
Self
8.01. Further their knowledge
of developments in the
analysis, specification,
design, development,
maintenance, and testing of
software and related
documents, together with the
management of the
development process.
More on Management
• Software engineers need to know the
standards which they are held to
• Know policy for protecting confidential
information
• Assign work after considering each
individual’s skills
• Principle of team balance*
• Provide realistic quantitative estimates
• Function points & SLOC*
• Well defined cost models such as COCOMO*
Even more on management
• Fair compensation
• Don’t prevent someone’s promotion if
he/she is qualified
• Good programmers don’t always make
good managers*
• Let the person progress if he shows the
aptitude
• Don’t punish someone for expressing
ethical concerns
Missing from the Code
• Where to get help in a dilemma?
• Who to report violations to?
• Where to get advise and support in a
confrontation with employer?
• Consequences of violating the code?
• Client and Employer – what do you do if
their interests conflict?
• Provisions for updating the Code
The ACM Code (24 Imperatives)
General moral imperatives: as an ACM member, I
will
• 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, patents
• Give proper credit for IP (must not take credit for
other’s idea or work)
• Respect the privacy of others
• Honor confidentiality
The ACM Code (cont’d)
More specific professional responsibilities
• Acquire and maintain professional competence,
• Know and respect existing laws,
• Honor contracts, agreements, and assigned
responsibilities, …
Organizational leadership imperatives
• Articulate social responsibilities, encourage their full
acceptance
• Manage to design & build systems that enhance
quality of life, …
Compliance with the code
• Uphold and promote the principles of this code, …
Summary
• Why need for code?
• History of development
• Initial draft(s) development
• 8 Fundamental Principles
• Ratified code approved
• 8 Fundamental Principles Revisited
• Preamble
• Examples
• Focus on #
5 Management
• Missing points
• ACM Code of Ethics and Professional
Thanking for reading this summarization

More Related Content

What's hot

computer contracts.pdf
computer contracts.pdfcomputer contracts.pdf
computer contracts.pdfSanaKhan319883
 
Ethics and computing profession
Ethics and computing professionEthics and computing profession
Ethics and computing professionshahmansoor109
 
IEEE CODE OF ETHICS
IEEE CODE OF ETHICSIEEE CODE OF ETHICS
IEEE CODE OF ETHICSAnju Mathew
 
Malicious software
Malicious softwareMalicious software
Malicious softwareCAS
 
computer misuse n criminal law
computer misuse n criminal lawcomputer misuse n criminal law
computer misuse n criminal lawHamza Cheema
 
Computer misuse and criminal law
Computer misuse and criminal lawComputer misuse and criminal law
Computer misuse and criminal lawZaheer Irshad
 
Computer Miss-use and Criminal Law
Computer Miss-use and Criminal Law Computer Miss-use and Criminal Law
Computer Miss-use and Criminal Law sohaildanish
 
Software Engineering Code Of Ethics And Professional Practice
Software Engineering Code Of Ethics And Professional PracticeSoftware Engineering Code Of Ethics And Professional Practice
Software Engineering Code Of Ethics And Professional Practice Saqib Raza
 
Cyber security landscape
Cyber security landscapeCyber security landscape
Cyber security landscapeJisc
 
Software engineering-codes-of-ethics (1)
Software engineering-codes-of-ethics (1)Software engineering-codes-of-ethics (1)
Software engineering-codes-of-ethics (1)Rana Muhammad Asif
 
SE18_Lec 11_ Software Code of Ethics
SE18_Lec 11_ Software Code of EthicsSE18_Lec 11_ Software Code of Ethics
SE18_Lec 11_ Software Code of EthicsAmr E. Mohamed
 
05 professional practice
05 professional practice05 professional practice
05 professional practiceSulman Ahmed
 
Network security (vulnerabilities, threats, and attacks)
Network security (vulnerabilities, threats, and attacks)Network security (vulnerabilities, threats, and attacks)
Network security (vulnerabilities, threats, and attacks)Fabiha Shahzad
 
Malware classification and detection
Malware classification and detectionMalware classification and detection
Malware classification and detectionChong-Kuan Chen
 

What's hot (20)

IEEE Code Of Conduct/Ethics
IEEE Code Of Conduct/EthicsIEEE Code Of Conduct/Ethics
IEEE Code Of Conduct/Ethics
 
computer contracts.pdf
computer contracts.pdfcomputer contracts.pdf
computer contracts.pdf
 
Ethics and computing profession
Ethics and computing professionEthics and computing profession
Ethics and computing profession
 
IEEE CODE OF ETHICS
IEEE CODE OF ETHICSIEEE CODE OF ETHICS
IEEE CODE OF ETHICS
 
Malicious software
Malicious softwareMalicious software
Malicious software
 
computer misuse n criminal law
computer misuse n criminal lawcomputer misuse n criminal law
computer misuse n criminal law
 
Computer misuse and criminal law
Computer misuse and criminal lawComputer misuse and criminal law
Computer misuse and criminal law
 
Computer Miss-use and Criminal Law
Computer Miss-use and Criminal Law Computer Miss-use and Criminal Law
Computer Miss-use and Criminal Law
 
Software Engineering Code Of Ethics And Professional Practice
Software Engineering Code Of Ethics And Professional PracticeSoftware Engineering Code Of Ethics And Professional Practice
Software Engineering Code Of Ethics And Professional Practice
 
Cyber security landscape
Cyber security landscapeCyber security landscape
Cyber security landscape
 
Software engineering-codes-of-ethics (1)
Software engineering-codes-of-ethics (1)Software engineering-codes-of-ethics (1)
Software engineering-codes-of-ethics (1)
 
Types of cyber attacks
Types of cyber attacksTypes of cyber attacks
Types of cyber attacks
 
Security policies
Security policiesSecurity policies
Security policies
 
SE18_Lec 11_ Software Code of Ethics
SE18_Lec 11_ Software Code of EthicsSE18_Lec 11_ Software Code of Ethics
SE18_Lec 11_ Software Code of Ethics
 
Software piracy
Software piracySoftware piracy
Software piracy
 
05 professional practice
05 professional practice05 professional practice
05 professional practice
 
Software piracy
Software piracySoftware piracy
Software piracy
 
Information Security Policies and Standards
Information Security Policies and StandardsInformation Security Policies and Standards
Information Security Policies and Standards
 
Network security (vulnerabilities, threats, and attacks)
Network security (vulnerabilities, threats, and attacks)Network security (vulnerabilities, threats, and attacks)
Network security (vulnerabilities, threats, and attacks)
 
Malware classification and detection
Malware classification and detectionMalware classification and detection
Malware classification and detection
 

Similar to The Software Engineering Code and the ACM Code

software-engineering-code-of-ethics-and-professional-practice_compress.pdf
software-engineering-code-of-ethics-and-professional-practice_compress.pdfsoftware-engineering-code-of-ethics-and-professional-practice_compress.pdf
software-engineering-code-of-ethics-and-professional-practice_compress.pdfJenniferPido
 
professional ethics
professional ethicsprofessional ethics
professional ethicsHamza Cheema
 
Topic 6 professional ethics
Topic 6 professional ethicsTopic 6 professional ethics
Topic 6 professional ethicsHamid Zainudin
 
Improve Product Design with High Quality Requirements
Improve Product Design with High Quality RequirementsImprove Product Design with High Quality Requirements
Improve Product Design with High Quality RequirementsElizabeth Steiner
 
Chp 04 ethics and proffesions (shared) ----
Chp 04   ethics and proffesions (shared) ----Chp 04   ethics and proffesions (shared) ----
Chp 04 ethics and proffesions (shared) ----YUSRA FERNANDO
 
Professional societies
Professional societiesProfessional societies
Professional societiesSulman Ahmed
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system developmentcymark09
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineeringSHREEHARI WADAWADAGI
 
13. PP -II IEEE CS ACM Code of Ethics-1.pptx
13. PP -II IEEE CS ACM Code of Ethics-1.pptx13. PP -II IEEE CS ACM Code of Ethics-1.pptx
13. PP -II IEEE CS ACM Code of Ethics-1.pptxmuhammad562811
 
req engg (1).ppt
req engg (1).pptreq engg (1).ppt
req engg (1).pptWaniHBisen
 
Test What Matters Most
Test What Matters MostTest What Matters Most
Test What Matters MostRemedy IT
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Professional Ethics: An Introduction to the Revised Code of Professional Conduct
Professional Ethics: An Introduction to the Revised Code of Professional ConductProfessional Ethics: An Introduction to the Revised Code of Professional Conduct
Professional Ethics: An Introduction to the Revised Code of Professional ConductMcKonly & Asbury, LLP
 
Unit2 Software engineering UPTU
Unit2 Software engineering UPTUUnit2 Software engineering UPTU
Unit2 Software engineering UPTUMohammad Faizan
 

Similar to The Software Engineering Code and the ACM Code (20)

software engineering ethics
software engineering ethicssoftware engineering ethics
software engineering ethics
 
software-engineering-code-of-ethics-and-professional-practice_compress.pdf
software-engineering-code-of-ethics-and-professional-practice_compress.pdfsoftware-engineering-code-of-ethics-and-professional-practice_compress.pdf
software-engineering-code-of-ethics-and-professional-practice_compress.pdf
 
Se ethics
Se ethicsSe ethics
Se ethics
 
professional ethics
professional ethicsprofessional ethics
professional ethics
 
Topic 6 professional ethics
Topic 6 professional ethicsTopic 6 professional ethics
Topic 6 professional ethics
 
Improve Product Design with High Quality Requirements
Improve Product Design with High Quality RequirementsImprove Product Design with High Quality Requirements
Improve Product Design with High Quality Requirements
 
Chp 04 ethics and proffesions (shared) ----
Chp 04   ethics and proffesions (shared) ----Chp 04   ethics and proffesions (shared) ----
Chp 04 ethics and proffesions (shared) ----
 
Professional societies
Professional societiesProfessional societies
Professional societies
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system development
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
SOFTWARE ENGINEERING
SOFTWARE ENGINEERINGSOFTWARE ENGINEERING
SOFTWARE ENGINEERING
 
13. PP -II IEEE CS ACM Code of Ethics-1.pptx
13. PP -II IEEE CS ACM Code of Ethics-1.pptx13. PP -II IEEE CS ACM Code of Ethics-1.pptx
13. PP -II IEEE CS ACM Code of Ethics-1.pptx
 
req engg (1).ppt
req engg (1).pptreq engg (1).ppt
req engg (1).ppt
 
Test What Matters Most
Test What Matters MostTest What Matters Most
Test What Matters Most
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements Engineering
 
Group 6 presentation
Group 6 presentationGroup 6 presentation
Group 6 presentation
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Professional Ethics: An Introduction to the Revised Code of Professional Conduct
Professional Ethics: An Introduction to the Revised Code of Professional ConductProfessional Ethics: An Introduction to the Revised Code of Professional Conduct
Professional Ethics: An Introduction to the Revised Code of Professional Conduct
 
Unit2 Software engineering UPTU
Unit2 Software engineering UPTUUnit2 Software engineering UPTU
Unit2 Software engineering UPTU
 
Sdlc phases
Sdlc phasesSdlc phases
Sdlc phases
 

More from Ahmed Elshal

Ahmed Elshal Resume
Ahmed Elshal Resume Ahmed Elshal Resume
Ahmed Elshal Resume Ahmed Elshal
 
Basic c# cheat sheet
Basic c# cheat sheetBasic c# cheat sheet
Basic c# cheat sheetAhmed Elshal
 
Software engineering tutorial
Software engineering tutorial Software engineering tutorial
Software engineering tutorial Ahmed Elshal
 

More from Ahmed Elshal (6)

Ahmed Elshal Resume
Ahmed Elshal Resume Ahmed Elshal Resume
Ahmed Elshal Resume
 
High school
High school High school
High school
 
Basic c# cheat sheet
Basic c# cheat sheetBasic c# cheat sheet
Basic c# cheat sheet
 
Smart targets
Smart targetsSmart targets
Smart targets
 
Php introduction
Php introductionPhp introduction
Php introduction
 
Software engineering tutorial
Software engineering tutorial Software engineering tutorial
Software engineering tutorial
 

Recently uploaded

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Recently uploaded (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 

The Software Engineering Code and the ACM Code

  • 1. The Software Engineering Code and the ACM Code Faculty of Computers and Information Level Two 2016/2017 Engnieer. Ahmed Morshedy Mohmmed Elshal Dr.Mona Gamal Computers and Ethics
  • 2. • Why need for code? • History of development • Initial draft(s) development • 8 Fundamental Principles • Ratified code approved • 8 Fundamental Principles Revisited • Preamble • Examples • Focus on # 5 Management • Missing points • ACM Code of Ethics and Professional Content
  • 4. 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).
  • 5. Joint Commission Steering Committee • 4 goals: • Adopt standard definitions. • Define required body of knowledge and recommended practices. • Define ethical standards. • Define educational curricula for undergraduate, graduate (Masters), and continuing education (for retraining and migration).
  • 6. • 3 initial task forces: • Software engineering body of knowledge and recommended practices. • Software engineering ethics and professional practices. • Software engineering curriculum. Joint Commission Steering Committee
  • 7. 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
  • 8. 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.
  • 9. 8 Key Principles: • Product • Public • Judgement • Client and Employer • Management • Profession • Colleagues • Self
  • 10. The Published Proposal • “Software Engineering Code of Ethics” by Gotterbarn, Miller, and Rogerson (November 1997/Vol. 40, No. 11, Communication of the ACM)
  • 11. Feedback • Numerous commentaries • Consensus discussions • ACM and IEEE surveys • Further review and modification
  • 12. Code of Ethics Feedback Form • Sent to all software engineers with - concentrated on ACM or IEEE members. • All 8 principle areas surveyed. • Response options range: Strongly Favor  Favor  Uncertain  Oppose  Strongly Oppose
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. The Code Adoption Published • “Software Engineering Code of Ethics is Approved” by Gotterbarn, Miller, and Rogerson (October 1999/Vol. 42, No. 10, Communication of the ACM)
  • 22. Major changes between v3 and v5.2 • The 8 principles reordered to show precedence • Short version added • Preamble significantly altered • Defines software engineers • Removed reference to 3 levels of obligation • Stronger focus on standards to help the professional make ethical decisions
  • 23. 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.
  • 24. 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.
  • 25. 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.
  • 26. 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.
  • 27. Examples • Brief example of specific points • Not comprehensive
  • 28. Public 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.
  • 29. Client & Employer 2.09. Promote no interest adverse to their employer or client, unless a higher ethical concern is being compromised; in that case, inform the employer or another appropriate authority of the ethical concern.
  • 30. Management 5.01 Ensure good management for any project on which they work, including effective procedures for promotion of quality and reduction of risk.
  • 31. Profession 6.07. Be accurate in stating the characteristics of software on which they work, avoiding not only false claims but also claims that might reasonably be speculative, vacuous, deceptive, misleading, or doubtful.
  • 32. Colleagues 7.02. Assist colleagues in professional development.
  • 33. Self 8.01. Further their knowledge of developments in the analysis, specification, design, development, maintenance, and testing of software and related documents, together with the management of the development process.
  • 34. More on Management • Software engineers need to know the standards which they are held to • Know policy for protecting confidential information • Assign work after considering each individual’s skills • Principle of team balance* • Provide realistic quantitative estimates • Function points & SLOC* • Well defined cost models such as COCOMO*
  • 35. Even more on management • Fair compensation • Don’t prevent someone’s promotion if he/she is qualified • Good programmers don’t always make good managers* • Let the person progress if he shows the aptitude • Don’t punish someone for expressing ethical concerns
  • 36. Missing from the Code • Where to get help in a dilemma? • Who to report violations to? • Where to get advise and support in a confrontation with employer? • Consequences of violating the code? • Client and Employer – what do you do if their interests conflict? • Provisions for updating the Code
  • 37. The ACM Code (24 Imperatives) General moral imperatives: as an ACM member, I will • 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, patents • Give proper credit for IP (must not take credit for other’s idea or work) • Respect the privacy of others • Honor confidentiality
  • 38. The ACM Code (cont’d) More specific professional responsibilities • Acquire and maintain professional competence, • Know and respect existing laws, • Honor contracts, agreements, and assigned responsibilities, … Organizational leadership imperatives • Articulate social responsibilities, encourage their full acceptance • Manage to design & build systems that enhance quality of life, … Compliance with the code • Uphold and promote the principles of this code, …
  • 39. Summary • Why need for code? • History of development • Initial draft(s) development • 8 Fundamental Principles • Ratified code approved • 8 Fundamental Principles Revisited • Preamble • Examples • Focus on # 5 Management • Missing points • ACM Code of Ethics and Professional Thanking for reading this summarization