徐長梅,劉華富,朱建凱,付細楚
(長沙學院 計算機科學與技術系, 湖南 長沙 410003)
20世紀 90年代以來,全球服務外包市場一直呈現蓬勃發展的態勢,已經形成了信息技術外包、業務過程外包、軟件開發外包和知識過程外包等四個主要市場。特別是軟件開發服務輸出方面,印度和愛爾蘭取得了非常引人矚目的成績,成為軟件開發外包的主要輸出國,而目前我國的服務外包還處于起步和成熟階段,在全球外包市場所占的份額還很小,但是已經形成了一些較為明顯的競爭優勢和追趕勢頭。
我們認為,中國成為軟件開發服務外包重要輸出國的原因主要有三個方面:離岸輸出的語言要求、軟件工程標準化特性和軟件技術的快速變化特征。印度和愛爾蘭快速占領軟件開發服務外包的主要原因是歐洲和北美市場在20世紀90年代IT產業大發展的廣泛需求下,他們依托與需求國的語言(英語)一致性獲得訂單,大力培養本國的軟件開發隊伍,一舉奠定了軟件服務外包輸出的市場優勢。
軟件工程標準化是促進軟件開發服務輸出市場擴張的技術因素,軟件開發服務輸出的主要工作處于軟件開發過程的后期和末端,這些軟件開發活動對開發人員的創新能力要求較低,以致曾經出現過“軟件開發藍領工人”群體。特別是CMM標準的推行進一步降低了軟件開發人員的技能要求,我國三十年以來勞動密集型產業的巨大進步正好迎合軟件開發服務外包的這種發展趨勢,我國近幾年來高等教育的重大改革為軟件服務外包產業培養了大量的勞動力,進一步助推了我國軟件外包產業的大躍進。
軟件應用領域的不斷擴張和軟件應用技術的快速變化是引起軟件開發服務輸出市場分配的動因。新的應用領域和新的開發技術勢必形成新的外包市場,在新形勢下誰的適應能力強,誰就可以快速搶占新市場,新市場消除了傳統勢力和新興勢力之間的差異,甚至在我國高等教育體制下培養的技術人才相較其他國家更具有基礎扎實、快速適應的優勢,從而在移動計算、嵌入式計算等外包市場上占據了很大的優勢。
基于以上原因,我國如果需要保持軟件開發服務外包上的競爭優勢和發展勢頭,人才培養單純依托培訓機構是遠遠不夠的,高等院校在基礎教育和科學工程技能培養方面的重要地位不能動搖。這也為以服務外包為主要培養目標的高等院校提出了特殊的要求。
本文主要從國家“卓越工程師教育培養計劃”的目標和要求出發,分析服務外包卓越工程師的工程技能標準,研究軟件開發外包工程師的工程技能培養方案,設計一套可行的技能形成實施計劃,力圖為國家軟件開發服務外包產業發展探索一條有特色的人才培養之路。
“卓越工程師教育培養計劃”是貫徹落實《國家中長期教育改革和發展規劃綱要(2010-2020年)》和《國家中長期人才發展規劃綱要(2010-2020年)》的重大改革項目,“旨在培養造就一大批創新能力強、適應經濟社會發展需要的高質量各類型工程技術人才”。
“卓越工程師教育培養計劃”特別針對工科院校以應用型工程師為培養目標的本科畢業生提出了國家通用標準,對本科畢業生應該具備的知識、能力與素質提出了較高要求,特別強調學生工程的分析、設計、運行、維護和創新能力,以及終身學習能力的培養。
我們針對軟件工程學科的特點,分析SE2004(ACM Software Engineering 2004)的知識能力和課程體系,根據Bloom教育目標分類提取了軟件工程師的50個本科畢業生工程技能要求,因為軟件開發服務外包的主要工作集中在軟件開發過程的后期和末端(編碼和測試階段),所以甄別出其中需要著重培養的38種工程實踐技能(如表一)。
表一SE2004要求的軟件外包畢業生工程實踐技能一覽表

序號分類號描 述序號分類號描 述1DES.con.4設計原理(信息隱藏、內聚和耦合)20MGT.per.5會議管理2DES.str.1面向過程設計21MGT.per.6建立和激勵團隊3DES.str.2面向對象設計22MGT.per.7沖突解決4DES.hci.1一般的人機交互原理23MGT.cm.1版本控制5DES.hci.2模式的使用,導航24PRF.psy.1團隊工作的動機6DES.hci.5設計形態(菜單驅動、表單、問答等)25PRF.com.1閱讀、理解和概括讀物(源代碼和文檔)7DES.dd.1設計方法(SSA/SD、JSD、OOD等)26PRF.com.2書寫(任務分配、報告、評估、解釋等)8DES.dd.3組件設計27PRF.com.3團隊交流(口頭和書面、Email等等)9DES.ste.1設計支撐工具(體系結構、靜態分析、動態評估)28PRF.com.4展示技能10MAA.md.1建模原理(分解、抽象、一般化、投射/視角、明確性和形式化方法的使用等)29VAV.fnd.3文檔化V&V策略,包括測試和其他人工作品11MAA.tm.1信息建模(實體關系建模、類圖等)30VAV.rev.1桌面檢查12MAA.tm.2行為建模(結構分析、狀態圖、用例分析、交互圖、失效模式和效果分析等)31VAV.rev.2走查13MAA.af.1分析良式(完整性、一致性和魯棒性等)32VAV.rev.3審查14MAA.rsd.2軟件需求規格說明33VAV.tst.1單元測試15MAA.rv.1評審和審查34VAV.tst.2異常處理(編寫測試用例觸發異常處理;設計良好的處理)16MGT.pp.2工作分解結構35VAV.tst.3覆蓋分析和基于結構測試(聲明、基本路徑、多條件、數據流等)17MGT.pp.3任務進度安排36VAV.tst.6基于用例/客戶故事的測試用例開發18MGT.pp.4工作量估算37VAV.tst.11測試工具19MGT.pp.6風險管理38VAV.par.2調試/錯誤隔離技術
SE2004規定了28門課程完成軟件工程本科畢業生的知識和能力培養,我們根據軟件服務外包行業要求和我校的計算機科學與技術學科建設特色進行了篩選,形成了13門專業理論課程(其中9門課涉及工程實踐技能培養)、實訓課程體系和軟件工程畢業設計。我們按照理性思考、感性認識到實際運用的逐漸強化方式完成工程實踐能力的教學過程。
在理性思考階段,我們將工程實踐技能的需求、體制和工程原理分解到9門專業課程,形成表二所示的課程/能力矩陣。值得注意的是,能力5(模式的使用,導航)、6(設計形態)、9(設計支撐工具)、13(分析良式)、14(軟件需求規格說明)、25(閱讀、理解和概括讀物)、26(書寫)、27(團隊交流)、28(展示技能)、29(文檔化V&V策略)等10項技能無法在課堂教學中培養,只能完全依賴課程實驗或者實踐性課程。為了保證學生完整地掌握這些技能,我們將在實訓課程系列中重點培養這些方面的技能。
表二專業理論課程/工程實踐技能分配矩陣

對學生進行實訓是對計算機軟件、硬件和網絡的結合,注重軟件理論和軟件開發能力的培養以及學生的團隊合作精神。要求學生掌握計算機系統的軟件硬件的基礎知識及計算機系統的設計、研究、開發和綜合應用的知識和技能,接受從事軟件研究和開發的基本訓練,了解計算機系統設計技術,掌握計算機網絡技術并具備應用能力,具備系統軟件和應用軟件的分析、設計、測試和維護能力。
實訓采用了任務驅動式的教學方法,通過學生對企業內部項目的開發過程,可以搭建軟件開發知識體系,熟練掌握國際先進的、產業界青睞的軟件開發技術,并使其養成良好的職業素質。實訓課程體系從本科新生著手,每學期連續不斷實施,配合專業理論課程,從易到難循序漸進地培養工程實踐技能的感性認識,甚至掌握一些基本的運用技巧。我們在實訓課程系列中的培養順序基本按照軟件過程的反向順序進行,一年級培養編程和合作能力,二年級培養測試能力,三年級培養設計和管理能力。表三給出了實訓課程的工程技能培養過程。
表三實訓課程工程實踐能力教學目標一覽表

軟件工程畢業設計項目的實施主要是試圖通過學生完整地參與企業的實際項目全過程,親身體會工程開發對實踐技能和綜合知識的要求,進一步提高工程實踐技能水平和運用熟練程度。
實踐技能是軟件開發外包企業對人才的第一需求,國家卓越工程師教育培養計劃進一步明確了工程人才的培養標準,我們在研究分析ACM SE2004的基礎上,分離出軟件外包卓越工程師應該具備的38項技能,進一步清晰了我校軟件工程(服務外包)專業的培養方案設計思路,清楚了該專業的理論課程和實訓課程的教學目標,希望能夠為軟件開發外包企業輸出實踐能力強、技術變化反應快速的高質量人才。