當前位置:學問谷 >

個人範例 >職業 >

面向軟件系統設計的軟件工程專業關鍵課程建設論文

面向軟件系統設計的軟件工程專業關鍵課程建設論文

高端軟件設計人才不僅要有過硬的設計技能,還要有牢固的工程觀、系統觀和產品觀。本文基於南京大學軟件開發學院的教學實踐,以軟件系統的設計與構造為主線,提出了圍繞軟件設計設置和實施的軟件工程專業關鍵課程方案。該方案強調在專業入門課程就開始培養學生的軟件工程觀念和系統觀念,並一以貫之地教授學生在軟件工程思想的指導下進行軟件設計的能力。

面向軟件系統設計的軟件工程專業關鍵課程建設論文

一、概述

作為國家戰略性新興產業,軟件業急需一批領軍型軟件人才。教育部在2002年批准開辦軟件工程(以下簡稱SE)專業並設立國家示範性軟件學院,2011年批准設立軟件工程一級學科並把軟件工程師培養列入了卓越工程師教育培養計劃。至2013年,我國有425所高校開設軟件工程專業,設點數、招生數及就業質量均進入前十。因此,研究與建設軟件工程專業關鍵課程體系對於軟件人才培養具有重要的現實意義和積極的推動作用。

國際上,IEEE和ACM共同制定了軟件工程學科教程CCSE[1,2],給出了軟件工程專業的教育知識體系,提出了組織和設計課程體系的若干建議,是公認的軟件人才培養工作基礎。CCSE推薦課程包括SE基礎課程5門、CS中級課程3門和SE高級課程6門,並提出了SE優先的課程方案和CS過渡的課程方案。

但是,SE專業在教學實施中面臨以下難題[3]:(1)傳統計算機科學(以下簡稱CS)專業的軟件工程課程如何合理過渡到SE基礎課程和6門SE高級課程;(2)如何落實SE優先的教學理念,解決關鍵課程的教學實踐與教學資源;(3)如何實施軟件工程課程與程序設計類課程的融合教學。

具體來説,目前國際國內缺乏對SE關鍵課程的教學實踐,SE優先的基礎課程與部分高級課程屬於全新構造,難覓教材和成熟的教學資源,從而導致SE專業教學在實施時面臨很大困難,大多數學校只能因循計算機科學專業傳統課程過渡。因此,貫徹SE優先的教育理念與落實系統化的SE專業教學體系成為擺在廣大SE教育者面前的一個巨大挑戰。針對這些問題,南京大學軟件工程專業經過多年教學實踐,以軟件開發的核心工作——軟件系統設計與構造為主線,提出了面向軟件系統設計與構造的SE專業關鍵課程教學實施方案。

二、設置思路

CS傳統課程按照知識領域安排,非常適合於培養研究性人才。軟件產業則迫切需要能夠綜合運用各種工程技術知識解決具體問題的實用性人才。為此,南京大學SE專業教學體系從能力培養入手,強調持續培養學生的工程觀、系統觀和產品觀;面向“軟件系統設計與構造”主線,規劃專業關鍵課程,實踐並求精CCSE的SE優先課程設置方案;探索關鍵課程的教學內容與教學方法,建設相關教材與教學案例。

1.提出軟件工程專業課程改革的基本策略。在專業教學早期開始培養學生工程觀、系統觀與產品觀,引導學生持續以軟件工程觀的角度學習與體驗軟件系統分析、設計與構建的過程。在一年級開設軟件工程課程,專業入門時就樹立學生的工程觀和系統觀,將質量、成本、度量、折中、決策、紀律、規範等工程理念貫穿後續課程,通過反覆強化來培養學生牢固的工程理念以及基於工程理念解決問題和進行開發的能力。

2.規劃與實踐SE優先的專業關鍵課程。遵循工程的集成與創新特徵,面向“軟件系統設計與構造”,按照軟件系統規模由小及大的次序建立專業教學主線,即以小規模系統、中規模系統、中規模產品、大規模系統技術、應用領域來部署SE專業課程的展開。在單門課程中強調構建系統的全面知識融合教學,培養學生解決實際問題的綜合能力。

3.探索適應培養卓越軟件人才的教學方法。軟件人才培養必須重視學生的工程實踐能力、設計能力與創新能力培養,重視實驗、實訓、實習等培養過程,特別是理論教學與實踐教學的完美融合。主要的教學方法包括:面向具體的軟件系統構造項目開展綜合性知識教學;加強課程教學案例與實踐用例建設,實施理論、案例、實踐相輔相成的教學;探索校企合作教學、面向問題教學、體驗式教學、面向實際教學、研討式教學、軟件創新設計競賽教學等適合卓越人才培養的新型教學方法。

三、課程體系框架

下圖給出了南京大學SE專業的課程體系框架[4,5],其中左側為重點建設的SE專業關鍵性基礎課程,右側為其他SE專業基礎課程和高級課程,後者在教學上較為成熟,故不贅述。

面向“軟件系統設計與構造”的SE專業關鍵課程共7門,分別為計算系統基礎、軟件工程與計算Ⅰ、軟件工程與計算Ⅱ、軟件工程與計算Ⅲ、軟件需求工程、軟件系統設計與體系結構、人機交互的軟件工程方法,分別重點解決學生計算系統分層構建、個人級小規模軟件系統設計與構造、小組級中小規模軟件系統設計與構造、模擬團隊級中規模軟件產品設計與構建、大規模軟件系統的需求技術、大規模軟件系統的設計技術、交互式軟件系統設計與評估技術等關鍵性能力培養。

南京大學軟件工程專業課程體系結構圖

這7門關鍵課程均圍繞一個具體的軟件系統教學案例,融合構建系統所需的多方面知識展開每門課程的教學。各課程都精心設計了一個教學講解用的軟件系統構建案例,並同步設計了一個培養學生工程能力的實踐用例。課程圍繞教學案例和實踐用例的構建活動組織課程教學和實踐教學。課程同時力圖打破傳統課程的'技術藩籬,將程序設計、軟件工程、交流與溝通、團隊動力學、職業素質、過程管理、工程經濟學等知識進行融合教學,在案例中引導學生使用軟件工程的觀念來觀察、體驗和實踐計算系統軟件的設計與構建過程,訓練其軟件系統設計與構造的綜合能力。

四、課程描述

“計算系統基礎”,以一個經典計算機指令集MIPS的簡化版本DLX為線索,以C語言為載體,使初學者可以建立起完整的計算概念,瞭解經典計算系統的工作原理,理解計算系統自底向上、逐次構造的過程;理解結構化程序設計,能夠利用自頂向下、逐步求精的方法完成小規模的結構化程序。具體教學內容包括:數據的機器級表示、數字邏輯、馮·諾伊曼模型、機器語言、彙編語言、輸入和輸出、Trap 機制和子例程、結構化程序設計和語言處理。

“軟件工程與計算Ⅰ”,在軟件工程理念指導下,側重於程序設計教學。以一個計算示例和實踐用例的迭代式增量開發實踐為線索,全面培養學生在個人開發級別的小規模軟件系統構建能力,讓學生初步體驗軟件工程方法與技術在系統開發中的關鍵作用。具體教學內容包括:程序設計基礎、面向對象程序設計語言;OOA、OOD、調試與測試等軟件工程知識;個人級別的軟件開發活動管理、個人級別的軟件職業知識。

“軟件工程與計算Ⅱ”,以經典軟件工程方法與技術為主線,軟件設計與構造知識為教學重點,軟件系統構建實例(計算系統示例與學生實踐用例)為切入點,培養學生基於瀑布模型的、簡單小組開發級別的、中小規模軟件系統構建能力。具體教學內容包括:軟件工程歷史、軟件職業知識;適用於中小規模軟件產品開發的軟件工程方法、原則與實踐;軟件工程方法指導下的程序設計原則與實踐;小組級別的簡單軟件開發活動管理;包括代碼和重要文檔在內的關鍵軟件開發製品。

“軟件工程與計算Ⅲ”,以螺旋模型和團隊實踐為特徵,通過開發一箇中等規模軟件產品的方式,培養學生對程序設計和軟件工程方法的實際運用能力,同時強化學生的職業技能和項目管理能力。將學生組織成8人左右的團隊,按照6個階段(即項目啟動階段、第一循環、第二循環、第三循環、第四循環、項目部署階段)合作完成一個具有一定複雜度的具體項目。在項目完成過程中,涉及需求、設計、實現和質量保障,強調團隊協作、文檔寫作、工具使用、陳述等能力,並在軟件團隊中對軟件開發進行管理。

“軟件需求工程”,以需求工程技術、軟件經濟學和迭代過程為特徵,結合工業界實例綜合分析,培養學生構建大規模軟件系統所需要的需求獲取、分析與建模能力,試圖讓學生把握需求工程工作給後繼軟件項目工作帶來的影響。具體教學內容包括:需求工程基礎、需求獲取方法與技術、需求分析方法、需求分析模型與建模技術、需求管理與需求工程過程知識、軟件工程經濟學等。

“軟件系統設計與體系結構”,以軟件設計、體系結構、可複用軟件過程為特徵,結合複雜工程案例及其重構,培養學生構建大規模軟件系統所需要的綜合設計技術能力。具體教學內容包括:軟件設計的要素、軟件設計的支持與評價、軟件設計方法、體系結構設計、詳細設計、基於中間件的設計、基於複用的設計和設計演化。

“人機交互的軟件工程方法”,以用户為中心的設計與軟件再工程為特徵,培養學生交互式產品開發的軟件分析、設計和評估技術。具體教學內容包括:可用性工程、人機交互界面的經典模型、人機交互的需求工程方法、人機交互的設計方法以及基於行為觀測與眼動分析的交互評估技術等。

五、教學方法

軟件人才培養需要重視教學方法改革,面向軟件系統設計與構造的SE專業採用了一系列新型教學方法。

面向問題教學要求各課程都以工程問題開始,並依照工程問題的解決過程和活動來組織教學,這既體現了多種知識的融合運用,又培養了學生的問題解決能力。體驗式教學要求各課程在實驗設計時必須考慮模擬現實環境的不確定性因素,讓學生體驗真實的開發氛圍,這既能培養他們綜合運用各種知識與方法解決問題的能力,又能重點訓練他們的折中、決策、溝通等非技術能力。面向實際教學要求各課程在講授軟件開發方法與技術時,要結合實踐調查數據説明企業對不同方法、技術的選擇與權衡情況以及應用效果,要突出企業界的主流方法與技術,遵循企業界的行業標準與規範,這既能讓學生更深入地理解方法與技術,又能開拓他們的視野。研討式教學要求各課程針對教學難點和重點,給出啟發式問題,讓學生自行收集資料,研討解決,這既培養了學生的問題解決能力,又培養了他們的創新能力。基礎課程結合軟件創新設計競賽教學鼓勵低年級學生在導師指導下,結合課程教學內容,自由選題,參加軟件創新設計競賽,鼓勵學生創新。部分高級課程採取實訓實習後回顧教學,通過理論教學考試和實訓實習後再回顧總結報告綜合評定分數,促使學生學習理論、實踐體驗、再總結提高,以提高他們的工程認知能力與創新能力。還有部分高級課程採取校企聯合設計課程、聯合實施教學的校企合作教學。

  • 文章版權屬於文章作者所有,轉載請註明 https://xuewengu.com/flgr/zhiye/wvj4kr.html