楊 林,萬 波,方 芳
(中國地質大學(武漢)信息工程學院,湖北 武漢 430074)
Research on Practice Teaching Reform of GIS Software Engineering
with Integration of CDIO Ideas
YANG Lin,WAN Bo,FANG Fang
?
融合CDIO理念的“GIS軟件工程”實踐教學改革研究
楊林,萬波,方芳
(中國地質大學(武漢)信息工程學院,湖北 武漢 430074)
Research on Practice Teaching Reform of GIS Software Engineering
with Integration of CDIO Ideas
YANG Lin,WAN Bo,FANG Fang
摘要:實踐教學是理工科學生實踐能力培養的關鍵一環。本文對中國地質大學地理信息系統專業的特色進行了分析,以CDIO國際先進工程教育理念為指導,探討了“GIS軟件工程”實踐課程的教學過程,設計了由基本技能、產品工程、過程管理及設計規范4個模塊構建的實踐方案,并定義了基于CDIO的產品、過程和系統的GIS-SE生命周期模型和細化內容,可為相關專業工程化創新人才培養目標下的教學改革提供參考。
關鍵詞:GIS軟件工程;CDIO理念;實踐教學;工程師目標
一、引言
隨著地理信息系統(GIS)產業的蓬勃發展,企業對于綜合性GIS高級專業人才的需求越來越大。目前,我國已有超過150余所高校開設了地理信息系統及相關專業。GIS教育規模的快速增長,在一定程度上滿足了社會對GIS專業人才的數量需求,但離卓越GIS工程師的培養目標還有很大差距[1]。如何更好地進行GIS人才培養不僅是地理信息產業關注的焦點,也是高校GIS教育者所思考的一個課題。為了有效縮小高校培養的GIS人才與國際國內企業需求的差距,國際工程教育模式、卓越工程師計劃等旨在培養造就一大批面向工業界、創新能力強、適應企業項目需要的高質量GIS工程技術人才的目標已經成為高校GIS人才培養努力的方向。
中國地質大學地理信息系統專業為湖北省品牌專業,入選湖北省普通高等學校戰略性新興產業人才培養計劃項目,基于國家地理信息系統工程技術研究中心與國產大型地理系統軟件MapGIS平臺的優勢和特色,積極進行工程化GIS軟件人才培養的教學改革探索和人才培養模式創新。在對GIS企業管理層中的調查中發現,企業非常關注學生的GIS軟件開發與設計能力、創新思維與系統思維能力,而這些與CDIO國際工程教育理念不謀而合。該校GIS專業融合CDIO理念,構建了GIS軟件開發基礎技能、專業技能、系統技能的多層次GIS軟件開發能力訓練體系,企業對GIS專業畢業生的軟件開發能力普遍表示認可。
GIS軟件工程課程是地理信息系統專業的一門核心課程[2],一般開設在三年級。該課程是GIS專業高年級同學以項目的形式貫穿前期各種基礎課及專業課的好機會,同時也是實踐GIS軟件開發基礎技能、專業技能與系統技能的好機會,在整個培養方案中起著非常重要的作用,對于GIS軟件開發綜合素質的培養至關重要。其目的就是讓高年級學生面向項目,解決工程實踐中的具體問題,提高學生在GIS軟件系統方面的建模、分析、設計及開發的綜合能力,同時訓練團隊協作、溝通與組織管理能力,為以后的工作和科研打下良好的基礎。本文重點針對GIS軟件工程課程實踐教學探討基于CDIO理念的教學方案。
二、CDIO理念
關于GIS軟件工程課程實踐的教學研究在案例選擇、教學組織、教學內容、教學方法、考評方式等方面進行了較多探討[1-6]。然而,單純從該課程的實踐教學審視,從軟件開發過程的視角對整個GIS軟件工程實踐教學內容的探索較少。在實際課程實踐的過程中,學生經常會被軟件工程的各種問題所困擾,如在實際課題中如何選擇軟件生命周期模型,開發過程各個階段的任務是什么,要用哪些技術和方法,有哪些常用的圖表描述工具,其畫法和符號有什么規定,各階段需要產出哪些文檔,是否有可參考的提綱。學生在實踐過程中既需要理清實習課題的技術方案和實現思路,又需要顧及以團隊為單位開發GIS軟件項目的過程中遇到的各種項目管理問題,這無疑對本沒有接受過項目訓練的學生設置了許多障礙。
21世紀初,由美國麻省理工學院和瑞典皇家工學院等4所大學組成的跨國研究組織經過4年的探索研究,創立了CDIO工程教育理念和人才培養模式,近年來對中國工程教育產生了深遠的影響。CDIO代表構思(conceive)、設計(design)、實現(implement)和運作(operate),是以工程項目設計為導向、創新能力培養為目標的教育模式,注重培養學生的系統工程技術能力,尤其是項目的構思、設計、開發和實施能力,以及較強的自學能力、組織溝通能力和協調能力。它以產品研發到產品運行的生命周期為載體,讓學生以主動的、實踐的、課程之間有機聯系的方式學習工程[8]。
本文將CDIO的教育理念運用在GIS軟件工程實踐教學的改革中,通過對課程學習者進行多方面的深入調查,并對CDIO工程教育理念進行消化吸收和本土化,選擇統一軟件開發過程模型,基于CDIO過程設計一套完整的GIS軟件工程實踐方案,以期為GIS及相關專業教學提供參考。該教學方案通過CDIO全過程的實踐逐步使學生找到對工程的感覺,實現對學生工程價值觀與能力的培養、協作與溝通的培養及應用實踐能力的培養的目標。
三、基于CDIO理念的教學方案設計
根據多年的教學實踐經驗和學院的特色,GIS軟件工程實踐教學的項目案例選擇GIS原型系統開發。這是GIS專業本科生的一個經典選題,即從數據庫底層設計開始完成一整套GIS平臺原型系統,是對于GIS原理、數據庫原理、數據結構、程序設計、計算機圖形學等相關課程的一個綜合應用,學生能親身體驗一個GIS平臺的構思、設計、實施及運行過程。本文對“GIS軟件工程”先行課程相關知識點矩陣進行了設計與提煉,通過對這些知識點的綜合運行能夠達成GIS軟件工程項目的總體目標,見表1。CDIO的核心理念是“做中學”和“基于項目教育和學習”,“GIS軟件工程”讓學生以工程的理論、技術和經驗通過“GIS原型系統”項目設計將整個課程體系(群)有機而系統地結合起來。
圖1為本文提出的實踐教學方案總體結構,主要包括基本技能、產品工程、過程管理、設計規范4大模塊。在基本技能訓練后,以產品工程為主線,貫穿過程管理與設計規范。

表1 “GIS軟件工程”先行課程相關知識點矩陣

圖1 GIS軟件工程實踐教學方案結構
1. 基本技能設計
通過教學總結發現,學生在實踐中經常會遇到數據庫設計毫無思路、基本幾何要素不知如何存儲,以及軟件模塊集成等問題。由于學生在先行課程程序設計、數據庫等課程中學到的知識是孤立的、脫離具體問題的,因此本文結合GIS原型系統針對性地設計了基本技能實踐內容,主要包括:
1) 數據庫訪問。要求熟悉數據庫操作的相關知識,掌握ADO數據庫編程及ADO的基本原理,熟練運用數據庫訪問技術,同時熟練文件及二進制的讀寫操作。
2) 動態庫制作。要求掌握創建并調用動態庫的技能,對動態庫有比較全面的掌握。
3) 基本幾何要素繪制。要求采用面向對象的思想,利用類的繼承、多態性實現在MFC程序中繪制點、線、面。
2. 產品工程
在產品工程的教學設計中,對CDIO產品、過程和系統的生命周期[9]進行裁剪,得到適合GIS軟件工程實踐教學的生命周期模型,見表2。其中CDIO代表基于CDIO模型的裁減項,GIS-SE代表依據CDIO裁減項目標設計的符合GIS軟件工程實踐教學的生命周期模型,通過CDIO全過程的實踐來達成工程師目標。

表2 基于CDIO的產品、過程和系統的GIS-SE生命周期模型
GIS-SE產品工程的實踐內容定義為需求分析(C)、模塊設計(D)、界面設計(D)、數據庫設計(D)、接口設計(D)、數據結構與算法設計(D)、代碼實現(I)、系統整合(I)、系統測試(I)、系統改進與維護(O)共計10個部分。
基于統一軟件過程模型的核心思想[9],軟件產品的特性是每件產品都要遵循迭代和遞增開發的原則。根據米勒法則,每個人在同一時間最多能夠處理7個左右的程序塊。因此,每個小組首先需要討論出GIS原型系統全部的功能點,并討論出核心功能點作為第1個迭代周期中的任務。第1個迭代周期完成后再考慮第2個迭代周期中的功能點。每一個迭代周期中的產品工程包含的10個部分需要重復迭代,直到得到一個軟件產品的正確產生。遵循統一軟件過程模型,學生可以快速選擇核心功能,在第1個迭代周期中搭建起原型系統。成員能力強的團隊可以在第2個迭代周期中選擇一些有挑戰性的功能作為產品目標,如空間分析功能等。下面對GIS-SE模型的CDIO過程的細節進行闡述。
(1) C-構思
GIS-SE構思階段定義為需求分析項,要求理解和表示問題的信息域,用功能模型定義軟件將完成的功能。需要注意的是,不同小組的能力有差異,可以根據小組實力選擇適當功能。本階段產出為需求規格說明文檔,包括項目背景、產品介紹、層次用例模型圖、功能性需求清單及非功能性需求。
(2) D-設計
GIS-SE設計階段定義為模塊設計、界面設計、數據庫設計、接口設計、數據結構與算法設計5個部分。
①模塊設計。要求根據需求規格說明文檔對系統進行分解,明確模塊及模塊之間的關系。指導學生從系統主框架、數據管理、地圖可視化、界面層、編輯工具、空間分析6大模塊進行設計和細化。階段產出為模塊設計文檔。②界面設計。用戶界面設計是與模塊設計并行的一個部分。界面設計包含:架構設計、按鈕設計、面板設計、菜單設計、標簽設計、圖標設計等內容。要求給出界面交互流程、界面布局、界面色彩、界面的圖標資源、對話框資源的設計。③數據庫設計。要求學生選取SQL Server數據庫,根據需求建立概念數據模型、邏輯數據模型與物理數據模型。概念模型要求建立GIS原型系統E-R模型,邏輯模型選擇關系模型,物理模型包括關系表的設計、主外鍵引用關系、索引、序列發生器、觸發器等各種數據庫對象。階段產出為數據庫設計文檔,包括數據庫環境說明、數據庫的命名規則、邏輯設計、物理設計、安全性設計、性能優化方法、數據庫管理與維護說明。④接口設計。針對系統主框架、數據管理、地圖可視化、界面層、編輯工具、空間分析六大模塊進行接口設計。要求使用類圖對類及接口之間的關系進行描述,接口包括接口名稱、輸入輸出參數和返回值說明。階段產出為接口設計文檔。⑤數據結構與算法設計。完成基礎數據類型點、線、面、注記的數據結構設計與算法設計。學生一般會設計出各種各樣的數據結構,在此環節要注意幫助學生理清各種數據類型的本質特征。算法設計要求使用UML活動圖完成。
(3) I-實施
GIS-SE實施階段定義為代碼實現、系統整合、系統測試3個部分。①代碼實現,多人協作對于代碼的管理是至關重要的,實踐要求學生采用GitHub等分步式版本控制系統對整個小組每個成員的代碼進行管理,以方便歷史的檢查、回溯、多個模塊之間的聯編。②系統整合,要求小組每個成員的代碼集成在一起,得到一個可運行系統。③系統測試,是在規定的條件下對程序進行操作,以發現程序錯誤和改進軟件質量。要求學生完成測試用例和測試報告。測試用例包括:輸入條件、操作步驟及預期結果。測試報告覆蓋功能性需求與非功能性需求,包括測試范圍、測試方案、測試結果。
(4) O-運行
GIS-SE運行階段定義為系統改進與維護,與CDIO裁剪項保持一致。要求對系統在發布后出現的問題進行修復與維護。在代碼維護的過程中要求遵循代碼規范添加注釋,并對相關文檔進行修改,且問題修復后需要進行回歸測試。
3. 過程管理
軟件工程對于學生而言歷來是枯燥的理論,然而在實戰中往往會不知所措。為了使每個團隊的項目能夠順利完成,必須明確提出過程管理的要求。
(1) 團隊組織結構
提供項目經理、測試負責、進度負責、美工負責、文檔負責、技術負責6個角色,根據學生的性格與特長選擇合適的角色,每個負責人同時也是成員,承擔編碼任務。
(2) 周會機制
為加速項目進度、提高成員效率,需每周進行一次周會。每次周會討論需記錄基本的概況、討論的議題及得出的結論。會議記錄要求包括時間、地點、主持人、參加人、議題、結論、記錄人。周報要求包括本周任務描述、已完成任務、下周預完成、潛在問題及對策。
(3) 代碼評審機制
為保證代碼質量,要求每周進行一次代碼評審。代碼評審由團隊所有成員參加,組長提前把設計規格說明書、程序文本及有關要求分發給小組成員,作為評審的依據。小組成員要先提前充分閱讀這些材料,代碼會審后把發現的錯誤登記造表,并交給程序員進行逐條修改。
(4) 進度監控機制
采用Tower等先進的在線團隊辦公APP軟件,進行在線討論、布置任務及跟蹤完成情況,要求項目經理每周匯總一次項目進展,明確標出每項功能點是否完成及存在的問題,并制定相應措施。學生一般對任務完成的時間沒有建立概念,通過周項目進展匯報,可以逐漸養成學生按期完成任務的良好習慣。
4. 設計規范
學生在實踐過程中會對階段文檔的內容及具體表現形式提出疑問,因此有必要對階段產出文檔目錄,每個產出文檔的目錄結構規范、文件命名、文件模板都給出一致的規范,使學生在文檔方面少走彎路。此外,編程規范也非常重要。團隊開發最終需要集成每個成員的模塊,生成一個集成系統,而每個個體的編程習慣可能存在差異,因此在開發之初制定好統一的命名規范、注釋規范、編程風格、錯誤處理、模塊化規范是非常必要的。
四、教學效果與結論
基于CDIO理念的“GIS軟件工程”實踐教學方案改革,在本校GIS專業學生近5年的GIS軟件工程課程教學實踐中收到了良好的效果。通過小組合作基本都能實現一個GIS原型系統,其中每屆都會出現3~4個優秀的作品,在軟件產品及過程管理方面的能力得到了明顯提升。通過調查問卷,92.3%的同學認為通過針對“GIS原型系統”課題及本套教學方案能夠比較迅速地進入項目狀態,在整個項目的實施過程中,基本技能環節的設計能夠鞏固先行課程的知識,針對性很強。產品工程10個部分的設計,極大地消除了學生在實踐過程中不知如何下手的困難,即一步一步跟隨教學方案均可完成項目設計。過程管理的設計改善了團隊的進度,使項目始終明晰可控,進度一目了然。設計規范的明確定義使學生在實踐過程中明確文檔的規格及代碼的規范。學生表示在實習過程中能夠有章可循,在軟件開發與團隊協作方面都有了很大的進步,并且體會到了完成真實GIS平臺的樂趣。
參考文獻:
[1]萬波,方芳,葉亞琴,等. 階梯式GIS軟件工程實踐教學體系研究[J].課程教育研究,2015(1):224-225.
[2]孫亞琴,張海榮. GIS軟件工程課程教學實踐與探討[J].測繪通報,2011(5):91-93.
[3]周鵬,尹菲.基于云計算技術的GIS軟件工程模式[J].測繪通報,2010(11) :22-24.
[4]劉濤.GIS軟件二次開發課程教學改革探討[J].測繪與空間地理信息,2014,37(7):16-22.
[5]夏元平,許亞男,劉波.案例教學法在GIS軟件應用教學中的探索與實踐[J].東華理工大學學報:社會科學版,2014,3(33):278-283.
[6]肖洪,代翔宇.地理信息系統專業實踐教學模式改革研究——以“GIS軟件及其應用”課程為例[J].測繪與空間地理信息,2012,2(35):1-3.
[7]張志敏,杜景龍,連達軍. 基于敏捷開發模式的“GIS軟件工程”實驗教學[J].實驗室研究與探索,2014,11(33):205-208.
[8]韓智,張振虹,李興娟.基于CDIO 理念的軟件工程課程教學改革[J].計算機教育,2010(11):56-59.
[9]顧佩華,包能勝,康全禮,等.CDIO在中國上[J]. 高等工程教育研究,2012(3):24-29.
[10]李剛,萬幼川.基于CDIO模式的“遙感原理與應用課程設計”創新型實驗教學示范[J].測繪通報,2015(1):134-136.
[11]聶運菊,程朋根,蒲曉晨,等.淺談GIS專業本科人才培養問題[J].測繪通報,2014(4):129-131.
[12]SCHACH S R.軟件工程:面向對象和傳統的方法[M].鄧迎春,韓松,徐天順,等,譯. 北京:機械工業出版社,2007:30-45.
[13]吳政庭,嚴泰來,洪本善,等.互動式教學用于地理信息系統課程的方法研究[J]. 測繪通報,2015(2):129-132.
徠卡測量新技術應用專欄

作者簡介:楊林(1982—),女,博士,講師,從事空間數據匹配、移動軌跡數據分析方面的研究。E-mail:12597512@qq.com
基金項目:國家自然科學基金青年基金(41201385);中國地質大學(武漢)校級教學研究項目(2015A27);湖北省教學研究項目(2014135)
收稿日期:2015-06-15; 修回日期: 2015-11-03
中圖分類號:G64
文獻標識碼:B
文章編號:0494-0911(2015)12-0118-04
引文格式: 楊林,萬波,方芳. 融合CDIO理念的“GIS軟件工程”實踐教學改革研究[J].測繪通報,2015(12):118-121.DOI:10.13474/j.cnki.11-2246.2015.394