Posted on 2007-03-14 13:49
鋒出磨礪 閱讀(181)
評論(0) 編輯 收藏
1993年5月,IEEE計算機協(xié)會的管理委員會設(shè)立了一個指導(dǎo)委員會,其目的是為確立軟件工程作為一個職業(yè)而進(jìn)行評估、計劃和協(xié)調(diào)各種活動。同年,ACM理事會也同意設(shè)立一個關(guān)于軟件工程的委員會。到1994年1月,兩個協(xié)會成立了一個聯(lián)合指導(dǎo)委員會,負(fù)責(zé)為軟件工程職業(yè)實踐制定一組適當(dāng)標(biāo)準(zhǔn),以此作為工業(yè)決策、職業(yè)認(rèn)證和教學(xué)課程的基礎(chǔ)。為完成這項工作,他們提出了如下建議:
*采用標(biāo)準(zhǔn)定義;
*定義所需的知識主體和推薦的實踐活動;
*定義道德標(biāo)準(zhǔn);
*定義本科生、研究生(碩士)和繼續(xù)教育(再培訓(xùn)和轉(zhuǎn)崗)的教學(xué)課程
指導(dǎo)委員會決定通過設(shè)立一系列的專題組實現(xiàn)這些目標(biāo)。最初的幾個專題組包括:軟件工程知識主體和推薦的實踐活動;軟件工程道德和職業(yè)實踐以及軟件工程課程體系。
軟件工程道德和職業(yè)實踐小組的目標(biāo)是為軟件工程師在道德上和職業(yè)上的責(zé)任和義務(wù)制定一份文件。本道德規(guī)范(草案)由IEEE計算機協(xié)會和ACM聯(lián)合指導(dǎo)委員會的軟件工程道德和職業(yè)實踐專題組開發(fā),并且已經(jīng)過該委員會的審查。
任何規(guī)范,如果認(rèn)真制定并正確推行,都會成為推動職業(yè)化和建立社會安全保障的有力工具。它們不應(yīng)該也不會只開花不結(jié)果,但這常常是人們對規(guī)范的錯覺。本規(guī)范草案是在對多個計算學(xué)科和工程學(xué)科規(guī)范進(jìn)行廣泛研究的基礎(chǔ)上做出的,意在教育和激勵采用規(guī)范的職業(yè)群體和成員。規(guī)范也告訴公眾,一種職業(yè)的職責(zé)及其重要性。規(guī)范向?qū)嵺`者指明社會期望他們達(dá)到的標(biāo)準(zhǔn),以及他們同行的追求和相互的期望。規(guī)范并不意味著鼓勵訟爭,并且它們也不代表立法;但它們的確就影響專業(yè)人員及其客戶的一些問題給出了實際的建議,同時也給政策的制訂者提供借鑒。
序言
現(xiàn)在,計算機越來越成為商業(yè)、工業(yè)、政府、醫(yī)療、教育、娛樂、社會事務(wù)以及人們?nèi)粘I畹闹行慕巧D切┲苯踊蛲ㄟ^教學(xué)從事設(shè)計和開發(fā)軟件系統(tǒng)的人員,有著極大的機會既可從事善舉也可從事惡行,同時還能影響或使得他人做同樣的事情。為盡可能保證這種力量用于有益的目的,軟件工程師必須要求他們自己所進(jìn)行的軟件設(shè)計和開發(fā)是有益的,所從事的是受人尊敬的職業(yè)。為此,軟件工程師應(yīng)該堅持下面的道德規(guī)范。
本規(guī)范含有8組由關(guān)鍵詞命名的準(zhǔn)則,這些準(zhǔn)則均與專業(yè)軟件工程師的行為和他們所作出的決定有關(guān),也適用于本行業(yè)的從業(yè)者、教育者、管理者和督辦人、下午制定者以及職業(yè)受訓(xùn)者和學(xué)生。這些準(zhǔn)則對參與其中的個人、群體和組織相互之間的各種關(guān)系給出了區(qū)別,并指出了在這些關(guān)系當(dāng)中各自的主要義務(wù)。
規(guī)范中的每一組準(zhǔn)則均以三個層次的道德義務(wù)闡述,這些道德義務(wù)都是專業(yè)軟件工程師在所述的各種關(guān)系中所應(yīng)承擔(dān)的。第一個層次給出的是一組道德價值,這也是專業(yè)軟件工程師和所有其他人就人性而言所共有的。第二個層次則是對軟件工程專業(yè)人員提出的比第一個層次更具挑戰(zhàn)性的一些義務(wù)。之所以要求第二個層次的義務(wù),是因為專業(yè)人員應(yīng)對那些會受到他們工作影響的人們負(fù)有特別的責(zé)任。第三層次也是更深的層次,包括了只與軟件工程的專業(yè)實踐有關(guān)的因素所直接引出的幾項義務(wù)。每組準(zhǔn)則中的條款是對相應(yīng)的關(guān)系中各層次的義務(wù)的詳細(xì)闡述。
每組準(zhǔn)則中的條款由對應(yīng)于三個層次的三種不同類型的陳述組成。
第一層次:渴望(對于真正的人)。渴望的陳述給出了方向和目標(biāo),并用于指導(dǎo)職業(yè)行為。這些指導(dǎo)性的要求對道德判斷是非常重要的。
第二層次:期望(對于專業(yè)人員)。期望的陳述表達(dá)了所有專業(yè)人員的義務(wù)和職業(yè)態(tài)度。雖然它們沒有描述具體行為細(xì)節(jié),但是它們清楚地指明了在計算科學(xué)領(lǐng)域中的職業(yè)責(zé)任。
第三層次:要求(對于良好的從業(yè)者)。要求的陳述提出了在軟件工程中更具體的行為責(zé)任,這些責(zé)任與當(dāng)前的技術(shù)狀況密切相關(guān)。本層陳述的范圍從一般的渴望陳述到具體的可度量的要求。
雖然所有層次的職業(yè)義務(wù)都已列舉,但本規(guī)范并不打算包羅萬象,也不希望它的各個部分被孤立地用來判定失職或違規(guī)。所列的準(zhǔn)則和條款并不是很詳盡的,不希望讀者對于所有實際情形中的職業(yè)行為,簡單地以此來區(qū)分哪些是可接受的哪些是不可接受的。本規(guī)范也不是一個簡單地給出道德判定的道德算法。在某些情況下,本規(guī)范的各個標(biāo)準(zhǔn)有可能相互沖突或與其他的標(biāo)準(zhǔn)沖突。此時,就要求軟件工程師結(jié)合當(dāng)時的環(huán)境,以與本道德規(guī)范的精神最一致的方式來進(jìn)行道德判斷和采取行動。
對于道德問題最好是給出經(jīng)過深思熟慮的基本準(zhǔn)則,而不是僅僅列出許多詳細(xì)的規(guī)定。這些準(zhǔn)則應(yīng)該影響你去更廣泛地考慮誰將受到你的工作影響;去檢查你和你的同事是否以應(yīng)有的尊重對待他人;去推測如果公眾被恰當(dāng)?shù)馗嬷敲此麄儗⒃鯓訉徱暷闼龅臎Q定;去分析你的決定的最低影響力是多少;去考慮是否你的作為夠得上軟件工程師的理想的職業(yè)行為。因為本規(guī)范代表那些從事該職業(yè)的人的共同意見,所以我們應(yīng)該重視由那些有見識的、受人尊重的和有經(jīng)驗的同行在掌握全部事實的情況下,他們認(rèn)為的什么是特定環(huán)境中最道德的行為方式,并且只在具有深刻的原因同時又經(jīng)過認(rèn)真仔細(xì)地判別之后才違反這種常規(guī)。
軟件工程的動態(tài)性和需求的前后關(guān)系,要求一個規(guī)范能對出現(xiàn)的新情形有較強的適應(yīng)性和適用性。但是即使在這種一般性原則下,本規(guī)范也只對那些以文檔記錄職業(yè)道德態(tài)度并采取積極行動的軟件工程師提供支持;即提供相應(yīng)開發(fā)組中的個人以及整個開發(fā)組都可以求助的道德基礎(chǔ)。本規(guī)范也幫助定義哪些是對軟件工程師提出的道德上不適當(dāng)?shù)囊蟆?
本規(guī)范還具有教育的作用,它指出了對任何想加入的繼續(xù)從事軟件工程職業(yè)的人的要求。因為它表達(dá)了該有關(guān)道德問題的一致意見,所以可以用作決策制定的指導(dǎo),它也可以作為公眾和渴望從事該職業(yè)的人了解有關(guān)軟件工程師的職業(yè)義務(wù)的教育工具。
準(zhǔn)則1:產(chǎn)品
軟件工程師應(yīng)盡可以確保他們開發(fā)的軟件對于公眾、雇主、客戶以及用戶是有用的,在質(zhì)量上是可接受的,在時間上要按期完成并且費用合理,同時無錯。特別地,軟件工程師應(yīng)盡可能發(fā)地做到:
1.01 保證他們所做的軟件的規(guī)格說明很好地制作了文檔,能滿足用戶的需求,并得到客戶的認(rèn)可。
1.02 努力去完全理解他們從事的軟件的規(guī)格說明。
1.03 通過適當(dāng)?shù)慕逃徒?jīng)驗的結(jié)合,保證對于從事的和將要從事的任何項目他們是合格的。
1.04 對于他們從事的和將要從事的任何項目,保證正確的和可以實現(xiàn)的方向和目標(biāo)。
1.05 對于他們從事的和將要從事的任何項目,保證有一種恰當(dāng)?shù)姆椒▽W(xué)。
1.06 對于他們從事的任何項目,保證有良好的管理,包括為提高質(zhì)量和降低風(fēng)險而采取的有效規(guī)程。
1.07 對于他們從事的和將要從事的任何項目的費用、時間表、人員和支出,保證給出一個切合實際的預(yù)算,并且對這些預(yù)算作出風(fēng)險評估。
1.08 對于他們從事的任何項目要保證給出充分的文檔,包括發(fā)現(xiàn)問題的日志和采取的解決方案。
1.09 地他們從事的軟件和有關(guān)文檔,保證充分的測試、排錯和復(fù)審。
1.10 開發(fā)軟件和相關(guān)的文檔要努力做到尊重使用該軟件的人的隱私權(quán)。
1.11 注意只使用合法來源的準(zhǔn)確數(shù)據(jù),并且只以適當(dāng)授權(quán)的方式使用。
1.12 只在適當(dāng)?shù)臅r候,刪去過時的或有問題的數(shù)據(jù)。
1.13 努力辨別、定義和闡明與任何工作的項目相關(guān)的道德、經(jīng)濟、文化、法律和環(huán)境問題。
1.14 為雇主、客戶、用戶和公眾最大限度地提高質(zhì)量和降低費用。為有關(guān)的各方之間作出折衷。
1.15 努力遵循最適合于當(dāng)前工作的工業(yè)標(biāo)準(zhǔn),只有當(dāng)技術(shù)上證明應(yīng)該背離這些標(biāo)準(zhǔn)時才可以不遵守。
準(zhǔn)則2:公眾
從職業(yè)角色來說,軟件工程只應(yīng)該按照與公眾的安全、健康和福利相一致的方式發(fā)揮作用。為此,軟件工程師應(yīng)該:
2.01 就其負(fù)責(zé)或了解的軟件或相關(guān)文檔,如其中存在任何有可能對用戶、第三方開發(fā)商或環(huán)境構(gòu)成實際或潛在危害的危險,應(yīng)向有關(guān)人士或權(quán)威機構(gòu)報告。
2.02 僅當(dāng)有充足理由相信某個軟件是安全的、滿足規(guī)格說明要求、已經(jīng)通過了適當(dāng)?shù)臏y試,并且沒有降低生活質(zhì)量或危害環(huán)境時,才贊成或批準(zhǔn)它。
2.03 只在那些在他們的監(jiān)督之下準(zhǔn)備好的文檔上簽字,或者這些文檔屬其能力范圍內(nèi)并為他們首肯。
2.04 對由軟件或相關(guān)文檔引起的公眾關(guān)心的重大問題應(yīng)努力合作予以解決。
2.05 盡力開發(fā)尊重多樣性的軟件。與語言、不同的能力、不同的訪問形式(身體的、智力的)、經(jīng)濟優(yōu)勢以及資源分配等有關(guān)的問題都應(yīng)予以考慮。
2.06 與軟件或相關(guān)文檔有關(guān)的所有陳述都要公正的誠實,尤其對于公眾關(guān)心的部分。
2.07 不要將自身利益、雇主的利益、客戶的利益或者用戶的利益置于公眾的利益之上。
2.08 當(dāng)機會出現(xiàn)時把職業(yè)技能獻(xiàn)給美好的事業(yè),并對與該學(xué)科相關(guān)的公共教育事業(yè)貢獻(xiàn)力量。
2.09 對他們自己的工作承擔(dān)全部責(zé)任。
準(zhǔn)則3:判斷
在與準(zhǔn)則2保持一致的情況下,軟件工程師應(yīng)該盡可能地維護(hù)他們職業(yè)判斷的獨立性并保護(hù)判斷的聲譽。特別地,軟件工程師應(yīng)做到:
3.01 對于要求他們評價的任何軟件或相關(guān)文檔,應(yīng)保持職業(yè)的客觀性。
3.02 只在那些在他們的監(jiān)督下準(zhǔn)備好的并且在其能力范圍內(nèi)的文檔上簽字。
3.03 拒絕賄賂。
3.04 除了合同的所有各方都知道的和都同意的之外,不接受第三方就該合同所付的回報、傭金或其他的酬金。
3.05 對任何特定的項目或者特定于該項目的服務(wù),除了當(dāng)環(huán)境已經(jīng)完全暴露給有關(guān)的各方并且他們都已表示同意外,否則只從一方接受報酬。
3.06 對于那些不能合理地避免或避開并且又急切期望解決的利益沖突,要向有關(guān)的所有各方公開。
3.07 凡與他們自身、他們的雇主、他們的客戶的經(jīng)濟利益有關(guān)的軟件或相關(guān)文檔,應(yīng)拒絕作為成員或顧問參與政府或?qū)I(yè)團體對該軟件或文檔做任何決定。
3.08 以支持和維護(hù)人的價值來調(diào)和所有的技術(shù)判斷。
準(zhǔn)則4:客戶和雇主
軟件工程師的工作應(yīng)該始終與公眾的健康、安全和福利保持一致,他們應(yīng)該總是以職業(yè)的方式擔(dān)當(dāng)他們的客戶或雇主的忠實代理人和委托人。特別地,軟件工程師應(yīng)該:
4.01 只在他們的能力范圍內(nèi)提供服務(wù)。
4.02 保證他們依據(jù)的任何文檔都獲得授權(quán)人的批準(zhǔn)。
4.03 只以適當(dāng)授權(quán)的方式使用客戶或雇主的財物,并且要讓客戶和雇主知道并獲得他們的同意。
4.04 不要在知道的情況下使用非法獲得的或持有的軟件。
4.05 對于在職業(yè)活動中獲得不屬于公共范圍的信息予以保密,當(dāng)然,這種保密不應(yīng)影響公眾關(guān)心的問題。
4.06 在他們工作的或知道的軟件或相關(guān)文檔中,對于任何與社會有關(guān)的問題應(yīng)認(rèn)真辨別、記錄并向雇主或客戶報告。
4.07 如果他們認(rèn)為某個項目可能失敗,或證明費用太高,或違反了知識產(chǎn)權(quán)法,特別是版權(quán)法、專利法或商標(biāo)法,或存在任何其他問題,應(yīng)立即通知客戶或雇主。
4.08 不接受對其主要雇主的工作不利的其他工作。
4.09 在未獲得雇主特別同意的情況下,不去代表與他們雇主的利益相反的任何一方,除非需要服從一個更高的道德準(zhǔn)則,此時他們應(yīng)使雇主或另一個適當(dāng)授權(quán)人或機構(gòu)知道他們的道德情形。
準(zhǔn)則5:管理
具有管理和領(lǐng)導(dǎo)職能的軟件工程師應(yīng)該公平行事,應(yīng)使得并鼓勵他們所領(lǐng)導(dǎo)的人履行自己的和集體的義務(wù),包括本規(guī)范中要求的義務(wù)。特別地,扮演領(lǐng)導(dǎo)角色的軟件工程師應(yīng)盡可能適當(dāng)?shù)刈龅剑?
5.01 在要求雇員遵守各種標(biāo)準(zhǔn)之前,保證使他們都已了解這些標(biāo)準(zhǔn)。
5.02 保證雇員知道雇主為保護(hù)口令、文件和其他的保密信息而采取的策略和規(guī)程。
5.03 只有在適當(dāng)考慮了具有一定的教育和經(jīng)驗同時確認(rèn)對這種教育和經(jīng)驗有進(jìn)一步的渴望和要求之后,再分派工作。
5.04 在聽取對違反雇主的政策或本規(guī)范的指控之后給出必要的處理。
5.05 對于雇員做出貢獻(xiàn)的任何軟件、處理技術(shù)、研究、文章或其他的知識產(chǎn)品,對其所有權(quán)制定出一份公平合理的協(xié)議。
5.06 只通過對工作情況的全面和準(zhǔn)確的描述來吸收雇員。
5.07 只提供公平合理的酬報。
5.08 對于有資格從事某項工作的下屬,不能不公平地阻止他(或她)取得該項工作。
5.09 不要求一個雇員去做任何與本規(guī)范不一致的事情。
準(zhǔn)則6:職業(yè)
軟件工程師應(yīng)該在職業(yè)的各個方面提高他們職業(yè)的正直性和聲譽,并與公眾的健康、安全和福利要求保持一致。特別地,軟件工程師應(yīng)在盡可能的程度上做到:
6.01 只與聲譽好的公司和組織建立聯(lián)系。
6.02 保證客戶、雇主和主管知道在本道德規(guī)范中軟件工程師所應(yīng)承擔(dān)的義務(wù)和責(zé)任。
6.03 支持按照本規(guī)范要求去做的那些人。
6.04 幫助發(fā)展一種有利于道德行為的組織環(huán)境。
6.05 對任何有理由相信違反了本規(guī)范的事情均應(yīng)向相應(yīng)授權(quán)(者)機構(gòu)報告。
6.06 對他們工作的軟件和相關(guān)文檔應(yīng)履行檢測、糾正和報告錯誤等職責(zé)。
6.07 只接受與職業(yè)資格或經(jīng)驗相稱的酬報。
6.08 準(zhǔn)確地陳述他們工作的軟件的特性,不但要避免錯誤的斷言,而且要避免有理由被認(rèn)為是欺騙的、誤導(dǎo)的或令人懷疑的斷言。
6.09 不要以職業(yè)上的代價來發(fā)展自己的興趣。
6.10 服從所有管理他們工作的法規(guī),使他們的工作與公眾的健康、安全和福利要求相一致。
6.11 以對民眾事務(wù)具有建設(shè)性的服務(wù)來履行對社會的職業(yè)責(zé)任。
6.12 促進(jìn)公眾對軟件工程的了解。
6.13 共享該職業(yè)中有用的與軟件有關(guān)的知識、發(fā)明或發(fā)現(xiàn)。例如,可以通過在專業(yè)會議上提交論文、在技術(shù)報刊上發(fā)表文章以及服務(wù)于制訂職業(yè)標(biāo)準(zhǔn)的團體來達(dá)到共享。
準(zhǔn)則7:同事
軟件工程師應(yīng)該公平地對待所有與他們一起工作的人,并應(yīng)該采取積極的步驟支持社團的活動。特別地,軟件工程師應(yīng)盡可能做到:
7.01 協(xié)助同事的職業(yè)發(fā)展。
7.02 評審其他軟件工程師的工作,這種評審不在公開范圍內(nèi)進(jìn)行,只以他們事先的了解進(jìn)行,并且假定這種評審與安全性要求相一致。
7.03 充分信任其他人的工作。
7.04 以客觀、公正和建立正規(guī)文檔的方式評審其他人的工作。
7.05 公平地聽取同事的意見、所關(guān)爭的事情或任保抱怨。
7.06 協(xié)助同事全面了解當(dāng)前的標(biāo)準(zhǔn)工作慣例,包括保護(hù)口令和文件、常規(guī)的安全措施以及其他有關(guān)隱私信息的政策和規(guī)程。
7.07 不要干涉任何同事的職業(yè)進(jìn)步和發(fā)展。
7.08 不要為尋求個人的利益而暗中破壞其他軟件工程師的工作。
7.09 對處于自己能力領(lǐng)域之外的情形,應(yīng)征詢相應(yīng)領(lǐng)域的其他專業(yè)人員的意見。
準(zhǔn)則8:本人
軟件工程師應(yīng)該在他們的整個職業(yè)生涯中,努力增加他們從事自己的職業(yè)所應(yīng)該具有的能力。特別地,軟件工程師應(yīng)該始終努力做到:
8.01 進(jìn)一步提高在軟件和相關(guān)文檔的設(shè)計、開發(fā)和測試方面的知識水平,以及開發(fā)過程管理方面的知識。
8.02 提高在合理的時間內(nèi)以合理的費用創(chuàng)建安全、可靠和高質(zhì)量軟件的能力。
8.03 提高編寫準(zhǔn)確的、信息豐富的和語言流暢的文檔的能力,以支持所使用的軟件。
8.04 提高對所使用的軟件和相關(guān)文檔的理解,以及對這些軟件和文檔將要應(yīng)用的環(huán)境的理解。
8.05 提高對管理所使用的軟件和相關(guān)文檔的法律知識的了解。
8.06 提高對本規(guī)范、有關(guān)它的解釋以及應(yīng)用于自身工作的了解。
8.07 不要要求或影響其他人去從事任何違反本規(guī)范的活動。
8.08 視違反本規(guī)范為與軟件工程師職業(yè)不符的行為。