

摘 要:隨著信息技術應用的快速發展,提升軟件工程師的倫理素養對保障軟件及信息安全至關重要。然而,當前軟件工程專業教學與當下倫理問題之間存在滯后,以及學生因實踐經驗少而對倫理困境缺乏敏感度等問題,導致課堂教學效果欠佳。針對這些問題,文章基于軟件工程專業實踐性強和技術更新快等特點,從倫理問題的整體認知、風險的來源與防范措施、風險倫理評估與軟件工程師的倫理責任4方面開展教學內容實踐探索,通過理論與案例分析結合的教學方式加深學生對倫理問題的理解,同時,采用翻轉課堂使學生體會矛盾的轉移及倫理雙方沖突的焦點,增強學生多視角分析能力,提升學生的倫理意識和道德素養。
關鍵詞:工程倫理;軟件工程專業;實踐教學;翻轉課堂
中圖分類號:G642.0 文獻標識碼:A 文章編號:1002-4107(2024)11-0048-04
一、引言
當前,軟件產品的迭代已成為社會發展不可或缺的一部分,而隨著軟件體量的不斷增大,其中隱含的倫理風險也日益凸顯。例如,軟件開發過程中涉及的隱私保護與數據安全問題、軟件質量問題、人工智能中的倫理與知識產權問題,以及軟件工程師的職業與社會責任問題,這些都直接或間接地影響軟件產品的穩定性、社會信用和用戶權益,同時也是軟件產品走向集成化、智能化過程中不可忽視的風險因素。在工業物聯網和軟件結合的背景下,大量個人隱私數據和敏感信息,如身份信息、位置信息、消費記錄、聯系方式等數據被系統的服務端隱秘收集,成為了潛在的資源[1]。而軟件工程師在軟件開發過程中如何保證在使用這些資源的同時防止用戶私有信息被泄露或被商業化是軟件工程專業教學涉及的主要倫理問題;在軟件集成度迅速增長的趨勢下,如何平衡軟件測試成本和軟件功能的穩定性是軟件工程專業教學不可忽視的倫理問題;在人工智能賦能的背景下,如何甄別海量數據中充斥的偏見、錯誤的觀點,保證人工智能模型擁有正確的倫理觀點,以及在倫理困境下,人工智能的選擇策略如何遵循倫理準則,是軟件工程專業教學必須要解決的倫理問題[2]。軟件工程師作為推動軟件行業發展的共同主體之一,與技術創新、方案制定、質量把關緊密相聯,同時,其也是涉及倫理風險的主體。要從根本上規避軟件行業隱含的倫理風險,需要在軟件工程專業人才培養體系中融入工程倫理教學內容,以此增強學生的倫理意識,指導學生面對倫理困境時如何作出正確選擇,提升學生的道德素養。
二、軟件工程倫理的特點和內容
在軟件設計、開發和測試的過程中,軟件工程師常常面臨選擇,如從專業視角發現的功能設計方面的缺陷,若在增加成本的情況下是否需要反饋給客戶。在面對諸如此類情況時,軟件工程師可以依據所在職位的行為規范、職業責任、職業道德等進行選擇。但在各種利益和社會關系交織的復雜場景下,所依據的原則常常發生沖突,軟件工程師更多的是依據個人的價值觀進行判斷,出現了結果因人而異的情況,這進一步導致了結果的不確定性,從而形成了倫理風險。軟件工程倫理涉及的倫理觀點將公眾的福祉放在第一位,并基于公共利益、社會責任、公平正義等原則為軟件工程師在倫理困境中提供決策支持,促使行為的結果產生積極的影響,進而保護公眾的權益和產品的質量。
軟件工程領域涉及的工程倫理內容包括用戶隱私保護、信息安全、AI(Artificial Intelligence,人工智能)自動化和社會影響4個方面。在用戶隱私保護方面,為防止數據泄漏,軟件工程師在開發過程中需要考慮用戶數據的私密性,如隱去快遞單號上聯系號碼的幾位數字以保證收件人信息不被泄露。同時,對收集到的用戶信息應僅用于本軟件運行,不可將數據提供給第三方平臺用作商業廣告推送的依據,侵犯用戶權益。在信息安全方面,信息收集能力的差異進一步導致了數字鴻溝,拉大了技術發展的不平衡,而工程倫理的引入可以引導和約束軟件工程師對自身技術的使用,杜絕發起惡意的網絡攻擊行為。在AI自動化方面,工程倫理的引入可以避免AI算法基于歷史數據產生歧視和不公正的結果,同時可在自動化方案的設計中加入更多倫理問題的解決方案,有助于改善用戶體驗。在社會影響方面,工程倫理的引入可以引導軟件工程師在職業責任與社會責任相沖突時,更加關注工程結果對社會的影響。
三、軟件工程倫理的教學內容
通過理論教學和案例分析,學生了解軟件工程倫理的含義,認識到軟件工程中包含的倫理問題,如未經授權的訪問和篡改數據行為、軟件產品的虛假宣傳行為、用戶數據的濫用行為等。軟件工程倫理教學內容包括對軟件工程專業涉及的倫理問題有整體性認識,了解軟件工程風險的來源和掌握防范軟件工程風險的措施,熟悉工程風險的倫理評估原則、途徑與方法,掌握軟件工程中的倫理責任。
(一)對軟件工程專業涉及的倫理問題的整體性認識
通過軟件工程專業教學,學生了解軟件工程技術的特點及其對推動社會變革的重要作用,認識軟件技術和大數據實踐引發的社會風險及利益分配沖突,整體把握工程人員與大數據創新科技人員可能面臨的多種新型倫理問題。通過分析棱鏡門、黑客攻擊等案例,學生意識到軟件工程活動中的風險是不可避免的,如隱含的數據安全風險、網絡安全風險、軟件質量風險、項目管理風險、法律合規風險和用戶隱私風險等[3-4]。教師可以此引導學生思考軟件的整體運行方式,以及如何將風險造成的負面影響最小化,同時,讓學生意識到作為未來的軟件工程師,需要從技術、環境、社會等方面全方位考慮,對實際的倫理問題有整體性的認識。
(二)軟件工程風險的來源與防范措施
通過學習,學生了解軟件工程風險源自技術的不確定性、外部因素的不確定性和人為因素的不確定性3個方面。技術的不確定性主要涉及方案制定中的技術選型,復雜的技術和架構會增加開發過程中的不確定性,所依賴的第三方庫存在的不確定性也會進一步影響軟件開發的整體過程[5]。外部因素的不確定性包括需求變更、市場環境變化、技術生態系統變化等,這些均會增加軟件工程風險。人為因素的不確定性包括開發團隊的管理水平和成員的技能水平,以及利益相關方的多元訴求所帶來的不確定性。面對技術的不確定性,需在工程開始前進行充分的技術評估和選擇,評估各種可行的技術選項,并考慮其成熟度、可靠性、適用性和可維護性等因素,選擇合適的技術棧以減少技術風險。面對外部因素的不確定性,需制定靈活的開發計劃,同時開發備選方案、制定容錯機制、建立風險監控機制,并持續學習和創新,了解最新的技術、市場和政策變化,以減少外部因素風險的影響。面對人為因素的不確定性,需通過團隊建設、培訓和激勵來提高團隊成員的凝聚力和工作積極性。同時,進行風險管理,及時識別和應對可能的風險和問題,確保項目進展順利,并通過培訓、交流和分享等方式,促進團隊成員之間的學習和提高。
(三)工程風險的倫理評估
風險的倫理評估討論的是“工程風險在多大程度上是可接受的”。具體分為三步:首先,將工程所涉及的風險信息公開,使相關者知情;其次,確定利益相關者,由于每個工程都涉及多個利益相關者,因此,在確定的過程中需秉承不遺漏的原則,并分析他們對工程的貢獻及獲得的收益[6];最后,組織利益相關者洽談,在利益相關者充分表達多元訴求的基礎上,通過多次協商對話,充分掌握工程中涉及的各種風險,采取逐項評估與跟蹤評估的方式,使工程決策在公共理性和專家理性之間取得平衡。
(四)軟件工程師的倫理責任
通過學習,學生了解軟件工程師的倫理責任,包括對雇主負責的崗位責任、對社會和公眾負責的社會責任,以及當二者產生沖突時,對社會和公眾的社會責任大于崗位責任,并且軟件工程師基于社會責任需要對公司的要求進行有選擇的服從[7]。當風險發生時,不能將責任歸咎于其中一人,而是需要涉及諸多利益關系的工程共同體共同承擔。同時,當軟件工程師發現所在用人單位的工程活動對社會公眾的隱私及財產產生危害時,可以向有關部門檢舉和揭發,使公眾和利益相關方能及時了解到其中的安全隱患。
四、軟件工程倫理的教學方法
在教學方法上采用理論講解與案例分析并重的方法,以及通過翻轉課堂幫助學生在軟件工程領域更好地理解倫理困境和應用倫理知識。
(一)理論講解與案例分析
在理論講解環節,對相關理論知識進行詳細講解,幫助學生建立倫理概念框架和認知結構。在案例分析環節,通過具體的案例引導學生積極參與討論。學生通過分析、討論和解決問題的方式來應用所學的倫理知識,提高思維能力、語言組織能力、問題分析能力和創新能力。在實際教學中,需要根據不同的教學內容和學生的實際情況靈活運用倫理優先的相關原則[8],關注講解內容的科學性和系統性,同時注重與實際應用的聯系,可與生活中常見的例子進行類比,使用相關新聞等視頻材料加深學生的印象,以便學生更好地理解和接受所學知識。
(二)翻轉課堂
翻轉課堂方法同樣適用于軟件工程倫理教學。在實踐與案例分析環節,可讓不同的學生就案例中的問題模擬不同的角色[9],如“掃碼點餐”的信息隱私問題、無人駕駛的倫理風險問題、共享單車的價值倫理問題、科技的環境倫理問題與智能手機APP開發過程中涉及的工程師職業倫理問題等,并結合對應章節的理論內容,分析具體案例中存在的倫理問題,發表自身對問題的看法。在對立的立場上,學生可就自身權益進行辯論,繼而交換立場,繼續辯論。在這個過程中,學生能夠從單一主觀視角到客觀視角的變化之間體會到需求的變化、矛盾的轉移及倫理雙方沖突的焦點,增強多視角看待問題和分析問題的能力[10]。同時,學生可以通過類比的方式意識到在相關技術領域存在的更為廣泛和普遍的倫理問題,增強對知識的感性理解和發現問題的敏銳度,強化對倫理知識的應用。
五、軟件工程倫理的實踐教育
實踐教育可以幫助學生更好地理解和應用所學知識,提高實踐能力和責任感。在實踐教育方面,學生可以通過參加實習、項目開發等形式加強實踐能力和責任感的培養。在實踐教育中,學生有機會接觸到真實的工作環境和工作流程,在面對真實的需求和挑戰時,需要了解項目文化和軟件開發過程,并協作創新,將所學工程倫理知識應用到實際項目問題的分析中。
實踐教育中的師生互動是激發學生興趣的關鍵,學生可以提問、討論和分享觀點,以此深化對倫理問題的認識和理解[11]。在這個過程中,學生從不同角度思考倫理問題,分析其背后的道德和社會影響,并形成自己的觀點和立場,激發批判性思維。同時,在師生互動的課堂中,通過分組討論的模式,可以培養學生的團隊合作意識;通過協商、合作和共享意見,可以培養學生與他人合作解決倫理問題的能力[12]。在與教師和同學的討論中,學生可以認識到自己在軟件開發和應用過程中所面臨的倫理挑戰和責任,增強對道德行為的敏感性和堅持原則的決心。通過教師的講解,學生還可以了解行業標準、最佳實踐和專業道德要求。
軟件工程師的工作涉及人們的生命財產安全和社會穩定,因此,在實踐教育中,需要注重培養學生的倫理責任感,注重道德教育和職業倫理教育,使學生具備高度的社會責任感,認識到自己的職業責任和使命,樹立正確的價值觀和職業道德,從而成為有責任心、有擔當的軟件工程師。
六、提升學生倫理思維的意義
培養學生的倫理思維是軟件工程專業重要的教學目標之一,即引導學生對軟件工程活動中的道德觀和倫理原則進行思考、分析和判斷,這不僅關乎個人的道德行為,還涉及社會和全球層面的倫理問題。
培養學生的倫理思維有助于學生形成正確的道德判斷和行為準則。通過教育和引導,學生可以了解不同的倫理觀點和價值觀,學會思考倫理問題的多面性和復雜性,學會權衡不同的利益、權益和價值觀,以做出符合道德準則和社會責任的決策[13]。培養學生的倫理思維有助于學生形成批判性思維和道德判斷力,學會提出問題、收集信息、分析證據,并基于道德原則進行推理和判斷,學會辨別倫理問題中的倫理違規和沖突,并提出合理的解決方案。這種批判性思維和道德判斷在學生日常生活和職業發展中都具有重要意義。同時,培養學生的倫理思維還可以促進學生社會責任感的形成。通過了解社會倫理問題和挑戰,學生可以認識到自己作為公民的責任和義務,意識到自己的行為對社會和環境的影響。
七、軟件工程倫理教育教學面臨的挑戰與反思
軟件工程是一個實踐性強的專業,在融入工程倫理教育的過程中仍面臨諸多挑戰(表1),需要針對具體情況做出應對策略。
(一)教學過程與課程建設中面臨的挑戰
1.軟件工程專業教學在與工程倫理內容體系進行交叉融合的過程中,需要學生具備專業的技術知識和實踐經驗,并基于一定的開發經驗才能理解軟件工程師所面臨的倫理問題,若僅對課本內容進行學習則難以映射到現實的開發場景中,也難以體會存在的倫理選擇困境。
2.當前軟件工程涉及各個行業,其存在的問題除了軟件系統本身以外,更多的是業務流程中涉及的其他專業領域的倫理問題,在沒有相關專業知識儲備的情況下,難以培養出學生對隱含倫理問題的敏感性。
3.在多元訴求的場景下,學生缺乏足夠的閱歷平衡各個工程共同體之間的利益。
4.軟件工程與工程倫理交叉融合教學是相對較新的領域,缺乏統一的標準和規范,教學資源的開發和整合困難,師資隊伍在選擇和利用教材、案例等方面面臨挑戰。
5.對于快速發展的技術和層出不窮的倫理問題,現有的教學資源往往更新滯后,許多教材和在線平臺無法及時跟上最新技術和倫理問題的發展,且工程倫理的內容體系在解決當前倫理問題時缺乏實效性和準確性,影響了教學效果和教師的教學質量。
6.在師資隊伍建設方面,軟件工程專業教育更加注重技術層面,目前部分教師在工程倫理領域的知識和教學方法上存在欠缺,還有一部分教師沒有足夠的軟件工程實踐經驗,在工程倫理應用方面無法開展案例教學和指導,導致高校缺乏兼備軟件工程經驗與工程倫理教學經驗的師資。
7.工程倫理教育工作的認可度和評價體系相對薄弱,導致師資隊伍的培養和發展受到一定限制。目前,許多教學資源和方法仍停留在理論層面,缺乏與實際軟件開發項目結合的機會。
(二)基于現狀的反思與整改措施
1.如表2所示,面對軟件工程與工程倫理兩門學科交叉整合中出現的問題,需要從增加學生的實踐經驗入手。在課程內容中增加關于軟件開發的案例討論,通過視頻材料讓學生了解在一個軟件開發項目的全周期內軟件工程師在各個階段所參與的內容和面臨的壓力,以深度剖析案例來彌補學生實踐經驗的缺失。
2.面對多元價值訴求帶來的挑戰,通過讓學生扮演不同工程共同體來進行討論,之后互換身份再進行討論,使同一名學生在多個角色的轉換中體會訴求的變化,最終在一個客觀的視角協調各方的利益。面對倫理問題演進帶來的挑戰,需要不斷完善更新課程中的討論案例,緊貼時事熱點事件。
3.教學資源整合和實效性方面,需要制定統一的教學資源開發標準和規范,定期更新和維護相關教材和案例資源,確保其與最新技術和倫理問題的契合度。
4.師資隊伍建設方面,需要加強軟件工程專業教師的倫理教育和培訓,包括提高教師的倫理意識和知識水平,增加教師之間的互動交流,鼓勵軟件工程專業教師在工程倫理方面的研究和實踐,加強實踐與教學的結合,提供更多實際案例和項目經驗。
5.軟件工程倫理教育認可度方面,需要建立健全的評價體系和激勵機制。
八、結束語
將軟件工程倫理融入軟件工程專業的教學中,可以提升軟件工程師的倫理意識和道德素養,培養高質量的軟件工程人才。但在實施過程中也會面臨一系列挑戰,應積極采取措施加以解決,并不斷推動軟件工程專業教學與軟件工程倫理教育的深度融合。
參考文獻:
[1] 梁宇,鄭易平.大數據時代信息倫理的困境與應對研究[J].科學技術哲學研究,2021,38(3):100-106.
[2] 陳曉英,劉思宏.計算機引發的倫理問題研究[J].遼寧工業大學學報(社會科學版),2012,14(5):38-40.
[3] 萬征.淺論高等院校計算機教學中的倫理教育[J].科學咨詢(決策管理),2008(8):43.
[4] 梅英,張衛平.國外計算機倫理教育及對我國的啟示[J].云南電大學報,2006(1):24-27.
[5] 楊揚,楊增芳.關于加強地方高校計算機倫理教育的探討[J].科技創新導報,2012(15):174.
[6] 李超,柳寧.“知、情、意”交融的計算機倫理課程教學探索[J].計算機教育,2023(9):181-185.
[7] 王正平.信息網絡技術與計算機倫理[J].上海交通大學學報(哲學社會科學版),2007(5):53-60,88.
[8] 崔永杰.工匠精神培育融入高職思政課教學的路徑研究[J].黑龍江教育(理論與實踐),2021,75(12):18-19.
[9] 呂曉蘭,崔得龍,謝玉鵬.“層次遞進式”電信專業實踐教學改革[J].黑龍江教育(理論與實踐),2021,75(5):90-92.
[10] 林小云.基于核心素養培養學生數感策略研究[J]. 黑龍江教育(理論與實踐),2017,71(5):81-82.
[11] 吳亞東,王芳,劉宇艷.“大思政”格局下實驗教學課 程思政建設的理實路徑探索[J].黑龍江教育(理論 與實踐),2024,78(2):69-72.
[12] 王國鳳,曲陽,劉健聰.思政引領 科研依托:“雙萬” 背景下材料化學專業課程思政建設探索與實踐[J]. 黑龍江教育(理論與實踐),2021,75(8):4-5.
[13] 李楠,崔建偉.師范院校大學生師德教育路徑探析[J]. 黑龍江教育(理論與實踐),2018,72(7/8):35-36.
■ 編輯∕王力