1.6 软件工程师的责任

软件工程已经发展成为令人尊敬的、全球性的行业。作为专业人员,软件工程师应该用职业道德规范指导他们所做的工作及他们所生产的产品。

1.IEEE/ACM《Computing Curricular》的相关要求

1991年,ACM-IEEE/CS发布的《Computing Curricular》(CC1991报告)将“社会、道德和职业的问题”列入计算学科主领域中,并强调它对计算学科的重要作用和影响。之后,CC2001充分肯定了CC1991关于“社会、道德和职业的问题”的论述,并将它改为“社会和职业的问题”,继续强调它对计算学科的重要作用和影响。

“社会和职业的问题”属于学科价值观方面的内容。《Computing Curricular》要求计算专业的学生不但要了解专业,还要了解社会。例如,要求学生了解计算学科的基本文化、社会、法律和道德方面的固有问题;了解计算学科的历史和现状;理解计算机的历史意义和作用。另外,作为未来的实际工作者,他们还应当具备其他方面的一些能力,如能够回答和评价有关计算机对社会的冲击这类严肃问题,并能预测将已知产品投放到给定环境中会造成什么样的冲击;知道软件和硬件的卖方及用户的权益,并树立以这些权益为基础的道德观念;意识到他们各自承担的责任,以及不承担这些责任可能产生的后果。

《Computing Curricular》将“社会和职业的问题”主领域划分为以下10个子领域,即计算学科的历史、计算学科的社会背景、道德分析的方法和工具、职业和道德责任、基于计算机系统的风险与责任、知识产权、隐私与公民的自由、计算机犯罪、与计算学科有关的经济问题、哲学框架。

2.软件工程职业道德规范和职业实践要求

ACM/IEEE-CS联合工作组提出了《Software Engineering Code of Ethics and Professional Practices》(软件工程职业道德规范和职业实践要求),该规范规定:

软件工程师应履行其承诺,使软件的分析、规格说明、设计、开发、测试和维护成为一项有益和受人尊敬的职业。依照他们对公众健康、安全和利益的承诺,软件工程师应当坚持以下8项原则。

1)公众——软件工程师的行为应符合公众利益。

2)客户和雇主——在保持与公众利益一致的原则下,软件工程师的行为应使他们的客户和雇主获得最大利益。

3)产品——软件工程师应该确保他们的产品和相关的修改符合最高的专业标准。

4)判断——软件工程师应当维护他们职业判断的完整性和独立性。

5)管理—软件工程经理和领导应赞成和促进对软件开发和维护进行合乎道德规范的管理。

6)专业—在与公众利益一致的原则下,软件工程师应当推进其专业的完整性和声誉。

7)同事——软件工程师对其同事应持平等和支持的态度。

8)自我—软件工程师应当参与终生职业实践的学习,并促进合乎道德的职业实践方法。

虽然8项原则中的每一项都同样重要,但最重要的一个主题是:软件工程师应该以公众的利益为目标。从个人的角度上,软件工程师应遵守以下规定:

●决不将数据据为己有。

●决不散布或出售在软件项目中工作时所获得的私有信息。

●决不恶意毁坏或修改别人的程序、文件或数据。

●决不侵犯个人、小组或组织的隐私。

●决不闯入一个系统破坏或牟取利益。

●决不制造或传播计算机病毒。

●决不使用计算机技术去助长偏见或制造麻烦。