欢迎您的到来!   设置首页   收藏

软件工程师的道德规范

发布时间: 2019-07-08? 来源:本站原创 作者:admin

  协会的管理委员会设立了一个指导委员会,其目的是为确立软件工程作为一个职业而进行评估、计划和协调各种活动。同年,ACM理事会也同意设立一个关于软件工程的委员会。到1994年1月,两个协会成立了一个联合指导委员会,负责为软件工程职业实践制定一组适当标准,以此作为工业决策、职业认证和教学课程的基础。为完成这项工作,他们提出了如下建议:

  指导委员会决定通过设立一系列的专题组实现这些目标。最初的几个专题组包括:软件工程知识主体和推荐的实践活动;软件工程道德和职业实践以及软件工程课程体系。

  软件工程道德和职业实践小组的目标是为软件工程师在道德上和职业上的责任和义务制定一份文件。本道德规范(草案)由IEEE计算机协会和ACM联合指导委员会的软件工程道德和职业实践专题组开发,并且已经过该委员会的审查。

  任何规范,如果认真制定并正确推行,都会成为推动职业化和建立社会安全保障的有力工具。它们不应该也不会只开花不结果,但这常常是人们对规范的错觉。本规范草案是在对多个计算学科和工程学科规范进行广泛研究的基础上做出的,意在教育和激励采用规范的职业群体和成员。规范也告诉公众,一种职业的职责及其重要性。规范向实践者指明社会期望他们达到的标准,以及他们同行的追求和相互的期望。规范并不意味着鼓励讼争,并且它们也不代表立法;但它们的确就影响专业人员及其客户的一些问题给出了实际的建议,同时也给政策的制订者提供借鉴。

  现在,计算机越来越成为商业、工业、政府、医疗、教育、娱乐、社会事务以及人们日常生活的中心角色。那些直接或通过教学从事设计和开发软件系统的人员,有着极大的机会既可从事善举也可从事恶行,同时还能影响或使得他人做同样的事情。为尽可能保证这种力量用于有益的目的,软件工程师必须要求他们自己所进行的软件设计和开发是有益的,所从事的是受人尊敬的职业。为此,软件工程师应该坚持下面的道德规范。

  本规范含有8组由关键词命名的准则,这些准则均与专业软件工程师的行为和他们所作出的决定有关,也适用于本行业的从业者、教育者、管理者和督办人、下午制定者以及职业受训者和学生。这些准则对参与其中的个人、群体和组织相互之间的各种关系给出了区别,并指出了在这些关系当中各自的主要义务。

  规范中的每一组准则均以三个层次的道德义务阐述,这些道德义务都是专业软件工程师在所述的各种关系中所应承担的。第一个层次给出的是一组道德价值,这也是专业软件工程师和所有其他人就人性而言所共有的。第二个层次则是对软件工程专业人员提出的比第一个层次更具挑战性的一些义务。之所以要求第二个层次的义务,是因为专业人员应对那些会受到他们工作影响的人们负有特别的责任。第三层次也是更深的层次,包括了只与软件工程的专业实践有关的因素所直接引出的几项义务。每组准则中的条款是对相应的关系中各层次的义务的详细阐述。

  第一层次:渴望(对于真正的人)。渴望的陈述给出了方向和目标,并用于指导职业行为。这些指导性的要求对道德判断是非常重要的。

  第二层次:期望(对于专业人员)。期望的陈述表达了所有专业人员的义务和职业态度。虽然它们没有描述具体行为细节,但是它们清楚地指明了在计算科学领域中的职业责任。

  第三层次:要求(对于良好的从业者)。要求的陈述提出了在软件工程中更具体的行为责任,这些责任与当前的技术状况密切相关。本层陈述的范围从一般的渴望陈述到具体的可度量的要求。

  虽然所有层次的职业义务都已列举,但本规范并不打算包罗万象,也不希望它的各个部分被孤立地用来判定失职或违规。所列的准则和条款并不是很详尽的,不希望读者对于所有实际情形中的职业行为,简单地以此来区分哪些是可接受的哪些是不可接受的。本规范也不是一个简单地给出道德判定的道德算法。在某些情况下,本规范的各个标准有可能相互冲突或与其他的标准冲突。此时,就要求软件工程师结合当时的环境,以与本道德规范的精神最一致的方式来进行道德判断和采取行动。

  对于道德问题最好是给出经过深思熟虑的基本准则,而不是仅仅列出许多详细的规定。这些准则应该影响你去更广泛地考虑谁将受到你的工作影响;去检查你和你的同事是否以应有的尊重对待他人;去推测如果公众被恰当地告知,那么他们将怎样审视你所做的决定;去分析你的决定的最低影响力是多少;去考虑是否你的作为够得上软件工程师的理想的职业行为。因为本规范代表那些从事该职业的人的共同意见,所以我们应该重视由那些有见识的、受人尊重的和有经验的同行在掌握全部事实的情况下,他们认为的什么是特定环境中最道德的行为方式,并且只在具有深刻的原因同时又经过认真仔细地判别之后才违反这种常规。

  软件工程的动态性和需求的前后关系,要求一个规范能对出现的新情形有较强的适应性和适用性。但是即使在这种一般性原则下,本规范也只对那些以文档记录职业道德态度并采取积极行动的软件工程师提供支持;即提供相应开发组中的个人以及整个开发组都可以求助的道德基础。本规范也帮助定义哪些是对软件工程师提出的道德上不适当的要求。

  本规范还具有教育的作用,它指出了对任何想加入的继续从事软件工程职业的人的要求。因为它表达了该有关道德问题的一致意见,所以可以用作决策制定的指导,它也可以作为公众和渴望从事该职业的人了解有关软件工程师的职业义务的教育工具。

  软件工程师应尽可以确保他们开发的软件对于公众、雇主、客户以及用户是有用的,在质量上是可接受的,在时间上要按期完成并且费用合理,同时无错。特别地,软件工程师应尽可能发地做到:

  1.01 保证他们所做的软件的规格说明很好地制作了文档,能满足用户的需求,并得到客户的认可。

  1.03 通过适当的教育和经验的结合,保证对于从事的和将要从事的任何项目他们是合格的。

  1.04 对于他们从事的和将要从事的任何项目,保证正确的和可以实现的方向和目标。

  1.06 对于他们从事的任何项目,保证有良好的管理,包括为提高质量和降低风险而采取的有效规程。

  1.07 对于他们从事的和将要从事的任何项目的费用、时间表、人员和支出,保证给出一个切合实际的预算,并且对这些预算作出风险评估。

  1.08 对于他们从事的任何项目要保证给出充分的文档,包括发现问题的日志和采取的解决方案。

  1.13 努力辨别、定义和阐明与任何工作的项目相关的道德、经济、文化、法律和环境问题。

  1.14 为雇主、客户、用户和公众最大限度地提高质量和降低费用。为有关的各方之间作出折衷。

  1.15 努力遵循最适合于当前工作的工业标准,只有当技术上证明应该背离这些标准时才可以不遵守。

  从职业角色来说,软件工程只应该按照与公众的安全、健康和福利相一致的方式发挥作用。为此,软件工程师应该:

  2.01 就其负责或了解的软件或相关文档,如其中存在任何有可能对用户、第三方开发商或环境构成实际或潜在危害的危险,应向有关人士或权威机构报告。

  2.02 仅当有充足理由相信某个软件是安全的、满足规格说明要求、已经通过了适当的测试,并且没有降低生活质量或危害环境时,才赞成或批准它。

  2.03 只在那些在他们的监督之下准备好的文档上签字,或者这些文档属其能力范围内并为他们首肯。

  2.04 对由软件或相关文档引起的公众关心的重大问题应努力合作予以解决。

  2.05 尽力开发尊重多样性的软件。与语言、不同的能力、不同的访问形式(身体的、智力的)、经济优势以及资源分配等有关的问题都应予以考虑。

  2.06 与软件或相关文档有关的所有陈述都要公正的诚实,尤其对于公众关心的部分。

  2.07 不要将自身利益、雇主的利益、客户的利益或者用户的利益置于公众的利益之上。

  2.08 当机会出现时把职业技能献给美好的事业,并对与该学科相关的公共教育事业贡献力量。

  在与准则2保持一致的情况下,软件工程师应该尽可能地维护他们职业判断的独立性并保护判断的声誉。特别地,软件工程师应做到:

  3.02 只在那些在他们的监督下准备好的并且在其能力范围内的文档上签字。

  3.04 除了合同的所有各方都知道的和都同意的之外,不接受第三方就该合同所付的回报、佣金或其他的酬金。

  3.05 对任何特定的项目或者特定于该项目的服务,除了当环境已经完全暴露给有关的各方并且他们都已表示同意外,否则只从一方接受报酬。

  3.06 对于那些不能合理地避免或避开并且又急切期望解决的利益冲突,要向有关的所有各方公开。

  3.07 凡与他们自身、他们的雇主、他们的客户的经济利益有关的软件或相关文档,应拒绝作为成员或顾问参与政府或专业团体对该软件或文档做任何决定。

  软件工程师的工作应该始终与公众的健康、安全和福利保持一致,他们应该总是以职业的方式担当他们的客户或雇主的忠实代理人和委托人。特别地,软件工程师应该:

  4.03 只以适当授权的方式使用客户或雇主的财物,并且要让客户和雇主知道并获得他们的同意。

  4.05 对于在职业活动中获得不属于公共范围的信息予以保密,当然,这种保密不应影响公众关心的问题。

  4.06 在他们工作的或知道的软件或相关文档中,对于任何与社会有关的问题应认真辨别、记录并向雇主或客户报告。

  4.07 如果他们认为某个项目可能失败,或证明费用太高,或违反了知识产权法,特别是版权法、专利法或商标法,或存在任何其他问题,应立即通知客户或雇主。

  4.09 在未获得雇主特别同意的情况下,不去代表与他们雇主的利益相反的任何一方,除非需要服从一个更高的道德准则,此时他们应使雇主或另一个适当授权人或机构知道他们的道德情形。

  具有管理和领导职能的软件工程师应该公平行事,应使得并鼓励他们所领导的人履行自己的和集体的义务,包括本规范中要求的义务。特别地,扮演领导角色的软件工程师应尽可能适当地做到:

  5.02 保证雇员知道雇主为保护口令、文件和其他的保密信息而采取的策略和规程。

  5.03 只有在适当考虑了具有一定的教育和经验同时确认对这种教育和经验有进一步的渴望和要求之后,再分派工作。

  5.05 对于雇员做出贡献的任何软件、处理技术、研究、文章或其他的知识产品,对其所有权制定出一份公平合理的协议。

  5.08 对于有资格从事某项工作的下属,不能不公平地阻止他(或她)取得该项工作。

  软件工程师应该在职业的各个方面提高他们职业的正直性和声誉,并与公众的健康、安全和福利要求保持一致。特别地,软件工程师应在尽可能的程度上做到:

  6.02 保证客户、雇主和主管知道在本道德规范中软件工程师所应承担的义务和责任。

  6.05 对任何有理由相信违反了本规范的事情均应向相应授权(者)机构报告。

  6.08 准确地陈述他们工作的软件的特性,不但要避免错误的断言,而且要避免有理由被认为是欺骗的、误导的或令人怀疑的断言。

  6.10 服从所有管理他们工作的法规,使他们的工作与公众的健康、安全和福利要求相一致。

  6.13 共享该职业中有用的与软件有关的知识、发明或发现。例如,可以通过在专业会议上提交论文、在技术报刊上发表文章以及服务于制订职业标准的团体来达到共享。

  软件工程师应该公平地对待所有与他们一起工作的人,并应该采取积极的步骤支持社团的活动。特别地,软件工程师应尽可能做到:

  7.02 评审其他软件工程师的工作,这种评审不在公开范围内进行,只以他们事先的了解进行,并且假定这种评审与安全性要求相一致。

  7.06 协助同事全面了解当前的标准工作惯例,包括保护口令和文件、常规的安全措施以及其他有关隐私信息的政策和规程。

  7.09 对处于自己能力领域之外的情形,应征询相应领域的其他专业人员的意见。

  软件工程师应该在他们的整个职业生涯中,努力增加他们从事自己的职业所应该具有的能力。特别地,软件工程师应该始终努力做到:

  8.01 进一步提高在软件和相关文档的设计、开发和测试方面的知识水平,以及开发过程管理方面的知识。

  8.02 提高在合理的时间内以合理的费用创建安全、可靠和高质量软件的能力。

  8.03 提高编写准确的、信息丰富的和语言流畅的文档的能力,以支持所使用的软件。

  8.04 提高对所使用的软件和相关文档的理解,以及对这些软件和文档将要应用的环境的理解。

  软件工程师们常常宣称他们从来不用在大学里学到的任何数学知识。 说到这个,他们还会说连大学里学到的计算....

  .良好的编码能力。软件人员的一个重要职责是把用户的需求功能用某种计算机语言予以实现。编码能力直接决定....

  六月份的时候,我曾经在黑板报上介绍过“如何写一份好的工程师简历”, 今天想跟大家来谈谈如何准备软件工....

  嵌入式软件工程师薪资多少呢?这想必是所有想要学习或者接触嵌入式软件工程师的人儿都想要了解的。

  对于任何一个想在计算机领域内“一通百通”工程师而言,这恐怕是过不去一道思考题。

  在网上做完了测评之后,当天就收到面试的通知了,CVTE效率真高。第二天就去参加面试,面试前紧张了一把....

  2013年的8月12日,我从H公司正式辞职了,上交完工卡,我就明白,我跟通讯行业永远的说了再见。

  有的程序员做设计和测试时,不愿意进行深入地、全面地分析思考,怕麻烦、嫌费时间,影响正常下班。没能认识....

  讲诚信, 坚决反对各种弄虚作假现象,不承接自己能力尚难以胜任的任务,对已经承诺的事,要保证做到,在情....

  女软件开发人员在我们这个社会上并不是很多,但作为这样的一个人并不是那么糟!我喜欢这个身份,很多并不是....

  前言: 我是一般院校的机械专业研究生毕业,在找工作的时候,我对于我们这个专业的感觉就是:进特别好的企....

  这是一个资深软件工程师的职业总结,详尽的谈述了从事本行业人士应该具备的基本素质。并提出了自己的一些建....

  虽然很多人在选择职业时受到家庭、环境等方面因素的影响,不一定能从事自己非常感兴趣的工作,但是如果可能....

  首先,工作上不紧不慢、按部就班,还是以嵌入式软件工程师的身份走完了整个2017,完成了公司计划内的两....

  前言: 我是一般院校的机械专业研究生毕业,在找工作的时候,我对于我们这个专业的感觉就是:进特别好的企....

  无意中看到了一个软件工程师的心酸和痛楚,真是很有感触。都说人怕出名猪怕肥,现在是人怕入错行。很多人毕....

  手机突然震动了下,顺手拿起一看,是一条短信,赫然写着“ 您好,这是您的本期信用卡账单,请点击查收 ”....

  当人们得不到offer时,他们多半会认为这是他们的错:“我被三家公司拒之门外,因此我可能是一个糟糕的....

  目前国内的嵌入式开发非常火,而C++主要用于底层的嵌入式开发、驱动开发等,也用于WINCE等嵌入式系....

  在嵌入式这个行业,只要工作了几年的同仁。他们通常在跳槽面试下一家企业的时候简历都写的高大上,十个里面....

  如果没有得到offer,大多数的人都会把责任推到自己身上:“我已经连续被三家公司拒绝了,所以我可能是....

  有时候,了解一家公司在做什么最好的方法就是简单地看看它的职位空缺。如果一个项目足够大,那么就会需要更....

  如果没有得到offer,大多数的人都会把责任推到自己身上:“我已经连续被三家公司拒绝了,所以我可能是....

  先说个题外话,首先拥有这两种称呼的人都不是修电脑装软件的。本人认为计算机组装与维护(修电脑,装软件,....

  上次“五一”前夕,我去深圳一家软件公司面试(先笔试后复试),我开始以为题目是J2SE方面的基础,比如....

  讨论报酬水平是职场的大忌。因为这样可能会被公司炒鱿鱼。但是硅谷的软件工程师 Jackie Luo 提....

  我得面对现实,成为软件工程师需要有很多技能,这些我之前都不知道。回顾过去,显然学会那些东西是很好的。

  数据显示,丹华资本在区块链技术、区块链应用和数字货币领域共计投资事件金额达到约1.88亿元。张首晟看....

  这几年,我在Google工作,是一名软件工程师(之前是在微软做一个开发团队的队长),我曾浏览过成百上....

  在软件开发者的职业生涯中,我们一定会遇上一两个产生负价值的同事。你也许会想:负价值是个什么鬼?

  我刚刚在硅谷的科技公司完成了 7 次现场面试,我收到了来自 Facebook 的软件工程师的职位 O....

  我最近一直在进行软件工程师面试。面试开始时,我都会问面试官两个问题,但至今没有得到令我满意的回答:

  目前拿到了芯片公司的系统软件工程师的岗位,当前待遇还行,就是不知道以后的个人发展如何?可以往哪些方向发展呢?未来的薪资上...

  我多次听经理或招聘人员说,优秀工程师是可以与其他优秀工程师交换的。他们可能会说,“首席工程师为这个项....

  本文作者 Connor Leech 是在湾区工作的一名 Web 开发人员,他在本文中面向那些正寻求找....

  众所周知,软件工程师要做的工作就是写代码,准确地说,你的目标应该是写出满足业务需求并且无法找出 Bu....

  java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如....

  身处节奏很快的IT行业,软件工程师一定希望自己在职业发展的道路上掌握“终极技术”,以便将来即使“长江....

  软件工程师主要进行软件前期的项目需求的分析,然后对项目进行风险评估并试图解决这些风险,然后开始进行软....

  针对面向对象的设计与分析:为了让软件有更好的可维护性,重用性以及快速开发, 简短的OOAD与它的SO....

  职业化之于软件工程师非常重要。因为:软件是看不见也摸不着的,它的进度也看不见摸不着,需要软件工程师严....

  前言:台湾的IT环境是什么样的,我们很少关注过。本文作者superbcde是一位台湾程序员,他没有显....

  去年 10 月,我跟开复去南京大学做演讲谈 Google 的技术,讲座结束之后,有一位女同学提了个问....

  信息技术的发展时间虽然不长,但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落。程序员们....

  要分析团队成员所处的环境。大到社会环境、行业发展阶段、市场环境,小到公司发展阶段、项目背景、个人机遇....

  本文主要讲述如何成为优秀的系统工程师?前段时间上面给我分配了两个人,让我好好带带他们。然后,我也看了....

  前不久,Jenna Bilotta[译注1]写了篇很棒的文章叫做《设计师和工程师怎样才能默契地工作》....

  在各种招聘广告里,总能看到软件工程师,程序员或高级工程师的称谓。从工作职责来看,好像工程师和程序员没....

  在学校里,有“文科生”和“理科生”的区分,学习内容不同,思维方式也有差异。我是一名理科生,大学里我的....

  在一个公司,如果你能“将一条路线做好”就可以了。就像一直强调的学好“你就可以了,偏偏很多人....财神爷高手论坛资料


Copyright 2017-2025 http://www.taloshs.com All Rights Reserved.