當前位置:學問君>學習教育>畢業論文>

大規模工程實踐的軟件工程專業建設的探索與創新

學問君 人氣:3.16W
  【導讀】軟件工程是一門工程學科,軟件工程專業主要培養應用型、工程型的軟件人才。從事大規模軟件工程的軟件人才需要什麼樣的素質和技能?大學軟件工程專業的教學如何開展?軟件工程專業建設如何創新以有效培養軟件人才和促進學科發展?這些問題是建設軟件工程專業的院校需要面臨的問題。浙江大學軟件學院在過去十年的發展中,依託快速發展的重大國際化產學研項目,基於相關的大規模軟件工程項目實踐,探索了一條軟件工程專業建設的創新之路,在專業體系建設、課程教學、工程實踐、國際交流等方面進行探索並取得了良好的效果,培養了大批具有優秀工程能力、良好國際視野和複合型知識結構的軟件人才。

1、國際化產學研合作項目

大規模工程實踐的軟件工程專業建設的探索與創新

2001年底。幾乎與浙江大學軟件學院成立同步,浙江大學與美國道富公司(State Street Corporation)合作成立浙江大學道富技術中心(StateStreet Zhejiang University Technology Center),開展全球化金融軟件的研究和開發。道富公司是全球領先的金融服務公司,年營業收入120億美元以上,主要從事投資服務、投資管理和交易服務等業務。

浙江大學道富技術中心從4位教授15位學生的規模發展成爲數百人的全球化金融軟件研發中心,迄今研究開發的全球化金融軟件系統超100個,在全球各地投入執行,在全球化金融軟件系統研發、全球協同軟件工程、大規模軟件系統架構設計、遺留系統再工程等方面取得突出成績。在浙江大學道富技術中心基礎上發展成立的道富科技(浙江)有限公司和浙江網新恆天軟件有限公司成爲面向美國市場金融軟件開發的重要企業,人員規模均超千人。

這個項目的快速發展對我們軟件工程專業建設提出了大量的需求,這個需求不僅僅是需要大批優秀的軟件人才,也提出瞭如何有效培養軟件人才的許多問題;另一方面,這個項目更爲我們軟件工程專業建設的探索提供了重要的實踐機會,爲許多學生提供了重要的大規模、國際化的軟件工程實踐機會。

2、軟件工程專業建設實踐

2.1軟件人才知識結構和技能要求分析。

一個大型的軟件工程項目,需要高、中、初級軟件技術和管理人才。初級人才如一般的軟件工程師和測試工程師等,負責編程、測試和一些技術設計工作;中級人才是承擔更多設計、開發、測試職責的軟件工程師和承擔技術管理工作的項目組長;進階人才如項目經理和架構師。這些人才應具有的知識結構和技能要求有:(1)技術知識和能力,能承擔軟件開發、測試等相關技術工作;(2)工程素養,熟悉軟件工程的方法和理念,遵循軟件工程流程和規範;(3)領域知識,瞭解應用軟件涉及的領域知識;(4)軟技能,包括語言、交流、協調、管理等能力。

傳統的計算機類專業教學與上述的需求存在不小的差距:(1)技術類課程偏重理論,或落後於工業界;(2)工程類課程和工程實踐不夠;(3)缺少領域知識類課程;(4)忽視軟技能的培養。

2.2面向工程化需求的教育體系。

面對以上問題,軟件工程專業必須基於實際工程需求,構建新型、合理、有效的教育教學體系。我們提出以下的軟件工程專業教育體系:(1)面向工程需求的多層次課程體系;(2)多元化的師資隊伍;(3)全方位實戰型的工程實踐體系;(4)產學研爲基礎的校企合作生態環境。

主要特色有:(1)覆蓋軟件工程全生命週期的軟件工程系列課程,有軟件工程基礎、項目管理與案例分析、軟件需求分析與設計、軟件質量保證與測試、軟件體系結構、軟件過程管理、人機交互工程、軟件工程經濟學等;(2)模組化領域類課程,如金融資訊技術課程有國際證券市場導論、共同基金概論、股票交易系統、外匯交易系統、債券交易系統等;(3)系列化軟技能課程,包括職業發展規劃、人際溝通藝術、跨文化管理、創業講座。

爲適應工業界技術的`快速發展,課程體系和技術類課程的教學內容每年進行調整和完善。無論是學校教師或企業專家,堅持參與軟件工程項目實踐,對於教學質量的持續性保證十分重要。只有參與項目實踐,他們的知識才會不斷更新、經驗得到不斷積累。

2.3全方位實戰型的工程實踐體系。

工程實踐必然是軟件工程專業建設的十分重要環節。透過工程實踐,學生能夠在三個方面得到提升:

(1)技術實踐能力,能夠把學到的軟件開發、測試等技術應用到實踐中;(2)工程素養,把遵循軟件工程規範作爲一種自覺的習慣;(3)工程經驗,積累分析問題和解決問題的能力。

項目實訓和企業實習是常見的工程實踐手段。在實際操作中往往會碰到一些問題,導致效果不佳。例如項目實訓的實戰性不夠,學生知道這是虛擬項目,做得好壞只是得分的區別。企業在安排實習生工作時,企業的商業目標和培養學生的目標不一定一致,有些實習工作是簡單重複勞動,不能提升學生的工程實踐能力。

浙江大學道富技術中心在過去的十年間,每年有數十位軟件工程專業學生加入大規模全球化金融軟件研發項目。這些學生在數年後都成長爲優秀的軟件技術和管理人才。透過分析,我們認爲其中的要素是:

(1)實戰性,學生參加的是真正面對客戶的項目,完成的工作質量是由客戶評價,而不是由老師評價。

(2)全面性,由於是真實項目,使學生有機會參與和體驗軟件工程全生命週期的各個環節。例如學生在課堂上學習軟件配置管理不容易理解,但進入項目組第一天起就必須遵循項目的配置管理規範。

(3)長期性,真實項目的週期一般在半年以上,很多是數年時間,如果沒有長時間參與,也難以經歷整個過程。工程經驗的積累更是一個長期過程。

參與技術中心項目的學生一般時間會工作一年以上,繼續讀研究生的學生會延續數年。

(4)國際化,這些項目的客戶在北美、歐洲等世界各地,採用全球協同開發方式,學生所在的項目組是一個完全的國際化工作環境,工作語言爲英語,與海外的工作夥伴保持高頻度的日常交流。從2004年起,我們每年選派數位學生去美國道富公司總部,他們在美國參與項目工作,並接受爲他們定製的文化和交流能力培訓項目。

不是所有的企業或單位都能提供這樣的工程實踐機會。大企業技術實力雄厚,實習學生一般參與一些輔助性工作,實習時間也相對較短。小企業往往缺少規模大、週期長、情況複雜的項目鍛鍊人。只有業務處於快速增長期的企業和單位,有可能讓學生承擔一線工作,有好的項目鍛鍊人。