当前位置:文档之家› 软件工程师职业道德规范

软件工程师职业道德规范

软件工程师职业道德规范
软件工程师职业道德规范

软件工程师道德规范

1993年5月,IEEE计算机协会的管理委员会设立了一个指导委员会,其目的是为确立软件工程作为一个职业而进行评估、计划和协调各种活动。同年,ACM理事会也同意

设立一个关于软件工程的委员会。到1994年1月,两个协会成立了一个联合指导委员会, 负责为软件工程职业实践制定一组适当标准,以此作为工业决策、职业认证和教学课程的基础。为完成这项工作,他们提出了如下建议:

*米用标准定义;

*定义所需的知识主体和推荐的实践活动;

*定义道德标准;

*定义本科生、研究生(硕士)和继续教育(再培训和转岗)的教学课程

指导委员会决定通过设立一系列的专题组实现这些目标。最初的几个专题组包括:软件工程知识主体和推荐的实践活动;软件工程道德和职业实践以及软件工程课程体系。-软件工程道德和职业实践小组的目标是为软件工程师在道德上和职业上的责任和义务制定一份文件。本道德规范(草案)由IEEE计算机协会和ACM联合指导委员会的软件工程道德和职业实践专题组开发,并且已经过该委员会的审查。

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

序言

现在,计算机越来越成为商业、工业、政府、医疗、教育、娱乐、社会事务以及人们日常生活的中心角色。那些直接或通过教学从事设计和开发软件系统的人员,有着极大的机会既可从事善举也可从事恶行,同时还能影响或使得他人做同样的事情。为尽可能保证这种力量用于有益的目的,软件工程师必须要求他们自己所进行的软件设计和开发是有益的,所从事的是受人尊敬的职业。为此,软件工程师应该坚持下面的道德规范。_______________________________________________ 本规范含有8组由关键词命名的准则,这些准则均与专业软件工程师的行为和他们所作出的决定有关,也适用于本行业的从业者、教育者、管理者和督办人、下午制定者以及职业受训者和学生。这些准则对参与其中的个人、群体和组织相互之间的各种关系给出了区别,并指出了在这些关系当中各自的主要义务。

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

每组准则中的条款由对应于三个层次的三种不同类型的陈述组成。

第一层次:渴望(对于真正的人)。渴望的陈述给出了方向和目标,并用于指导职业行为。这

些指导性的要求对道德判断是非常重要的。

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

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

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

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

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

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

准则1:产品

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

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

1.02努力去完全理解他们从事的软件的规格说明。

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

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

1.05对于他们从事的和将要从事的任何项目,保证有一种恰当的方法学。

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

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

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

1.09地他们从事的软件和有关文档,保证充分的测试、排错和复审。

1.10开发软件和相关的文档要努力做到尊重使用该软件的人的隐私权。

1.11注意只使用合法来源的准确数据,并且只以适当授权的方式使用。

1.12只在适当的时候,删去过时的或有问题的数据。

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

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

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

准则2:公众

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

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

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

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

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

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

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

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

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

2.09对他们自己的工作承担全部责任。

准则3:判断

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

3.01对于要求他们评价的任何软件或相关文档,应保持职业的客观性。

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

相关主题
文本预览
相关文档 最新文档