武星 杜亞洲 羅瑩 王偉東



摘要:隨著國家信息建設的高速發展,軟件已經成為人們生活中必不可少的組成部分,軟件開發能力作為信息管理與信息系統專業學生的最基本的應用型技能,是專業課程學習的重點。為滿足應用型本科院校《軟件開發與設計》課程的教學要求,在當前課程教學的基礎上實踐部分教學采用項目驅動教學法,應用統一建模語言(Unified Modeling Language,UML)貫穿課程,旨在建立和完善課程的教學方法和教學邏輯,探索建立以學生為核心的實踐教學模式。
關鍵詞:軟件開發與設計;案例教學法;項目驅動教學法;統一建模語言;應用型本科
中圖分類號:G642 ? ? ? ?文獻標識碼:A
文章編號:1009-3044(2022)29-0077-03
1 引言
隨著國家信息建設的高速發展,軟件已經成為人們生活中必不可少的組成部分,軟件開發的需求量也在逐年增長[1]。《軟件開發與設計》是信息管理與信息系統專業(以下簡稱信管專業)的專業課程。課程全面覆蓋本科院校信管專業大學基礎類課程,有機地將軟件開發編程與軟件過程管理相結合設計教學環節。根據應用型人才培養方針,學生學習軟件開發技術是奠定從事信管類工作的基礎。此次教學改革引入項目驅動教學法和統一建模語言UML的元素為主要教學改革內容,通過UML形式化建模對軟件構建過程進行描述,加強學生軟件設計的實踐能力,要求學生以團隊形式開發項目,以此實現《軟件開發與設計》培養學生掌握軟件開發基礎技能的教學目標。
2 《軟件開發與設計》課程教學改革的必要性
《軟件開發與設計》課程所涉及的技術層面繁多,且對技術掌握的熟練程度較高,在實際的教學實踐中發現,這門課程具有專業性強、實踐性高、規模大的特點。目前課程教學中大多采用案例式教學法,傳統的講授可以將軟件構建理論和軟件編碼的知識點進行突出,學生對軟件的建模工具的使用很有興趣,可以遵循案例繪制出建模的圖例,但是在上機實踐過程中,面對獨立的項目學生往往過于注重編碼實現的部分,而不能很好地對項目中的軟件分析和建模,表現為教學過程理論和實踐脫節,導致學生對課程缺乏興趣,學生脫離案例之后不具備獨立構想、設計、開發軟件的能力。
《軟件開發與設計》是一門要求學生掌握軟件開發的課程,在軟件定義中,軟件包括兩個部分:程序和文檔,而在傳統教學過程中只采用案例式教學法[2]。單一的案例往往會束縛學生的思維,且不能有效地考核學生獨立設計開發軟件的分析能力、建模能力和編碼能力,導致在課程理論知識與實踐結合不緊密,主要表現在以下三個方面:
2.1 教學手段不利于培養計算思維
計算思維是運用計算機科學解決實際問題的思維活動[3-4]。在信管專業學生課程學習過程中任課老師平時并不會刻意提出計算思維的概念。課程現狀表現為授課教師根據課程安排選擇一個與課程相關的軟件項目案例,分析案例軟件的實現過程,學生通過仿照案例撰寫文檔和編碼實現,這樣的教學手段會導致學生思維硬化,不利于培養學生獨立學習和思考怎么來實現“獲取需求-構建模型-編碼實現”的軟件開發步驟。傳統教學方式容易固化學生思維模式,不能夠有效地去培養學生形成良好的計算思維和發揮學生獨立設計和開發軟件系統的想象力,因此《軟件開發與設計》課程在基本的案例講解后,需要由學生參與項目動手實踐,從而培養學生動手實現能力和計算思維的應用能力。
2.2 學生獨立開發能力差
課程一般以案例教學作為主要內容,最終限制學生思維拓展失去學習興趣。經過這樣機械式學習的學生,當遇到實際問題需要開發軟件時仍會存在大量的問題,如:
1)軟件需求不知道如何獲取
軟件需求獲取是整個軟件開發的基石,需求獲取不清晰或不完整則會導致軟件項目失敗。而只學習案例的學生不了解如何獲取需求和描述需求,導致課程學習效果不佳。
2)軟件模型不知道如何建立
軟件建模是降低開發風險的有效措施,復雜系統一般不能直接物理實現,軟件建模就是幫助學生理解和設計軟件的關鍵步驟,僅學習案例往往不足以學生掌握軟件建模工具缺乏實踐。
3)軟件編碼不知道如何實現
課程涉及技術層面較多,對學生知識的掌握程度較高。目前教學現狀中,代碼與設計相脫離,課程前后難以銜接,學生缺乏由模型構建代碼的編碼能力。
2.3 教學內容條理不清晰
軟件開發的一般流程包括需求分析、概要設計、詳細設計、編碼實現、軟件測試、軟件交付等步驟[5]。理論課程與實驗課程的比例為1:4,在較短的理論課時的前提下,教學中對軟件開發過程的每一步的步驟如何執行和細化條例不夠清晰,學生在學習過程中只能對照課程中的案例去了解開發流程中的每一項的輸入項和輸出項是什么,但是要求學生獨立完成每一步的步驟時,仍有很多細節沒有完全掌握。
3 統一建模語言概述
應用統一建模語言(Unified Modeling Language,UML)到課程當中輔助學生去理解軟件開發過程中各個環節的教學改革方法。UML是面向對象設計的建模工具,獨立于任何具體程序設計語言[6-7]。UML是一種面向對象的建模方法,支持可視化建模 [8]。因此,應用UML可以增加課程的交互性,有利于提升學生學習興趣。UML模型能夠貫穿于整個軟件開發的過程中,是軟件開發人員獲取系統需求、分析和設計等活動中的有效手段。應用UML的優勢在于在開發流程在每個步驟中使用UML建模幫助學生梳理整個課程學習過程中的邏輯和條理,其次UML建模能夠很好地理解軟件如何用戶需求中抽象出軟件的整體架構,而且在物理實現部分同樣可以使用UML中的模型。UML主要圖例結構如圖1所示。
4 《軟件開發與設計》教學改革策略
針對目前課程設計當中存在的不合理問題,主要從教學方式、教學案例及項目選取及UML輔助教學等視角進行教學改革探索。
4.1 案例教學法及項目驅動教學法
目前在《軟件開發與設計》課程中案例教學法在教學過程中主要體現在:課程的知識講解中引用實際的軟件系統案例——教學系統管理平臺,使用該平臺的初衷在于更貼近學生,但是單一的案例局限性較高,教師對案例進行分析和編碼教學,學生可以基本掌握該案例的設計、開發和文檔的實操過程。但是脫離課程案例和教師指導,學生自行設計和開發軟件則會出現實踐能力不足的情況。案例教學法的仍有相應的優勢——若選取的案例能夠使學生共鳴則能起到促進作用,因此課程教學改革仍保留使用案例教學法。
項目驅動教學法的教學過程以學生為核心,教師作為指導的角色。教學法表現為學生發揮獨立思考能力和創新能力,以小組的形式擬定項目。小組的形式能夠考驗學生的適應團隊開發環境,鍛煉團隊協作能力。以項目驅動學生綜合應用專業課程知識,獨立開發組織、設計和開發軟件。
項目驅動和案例教學法相結合能夠有效地解決了傳統課程教學中不利于計算思維培養的問題和學生獨立開發能力差的問題,課程安排中教師在理論教學部分采用案例教學法,使用具體案例引入理論知識,提高學生學習興趣。在實踐教學部分采用項目驅動教學法,由學生分組選擇實際的項目,動手實操加強理論知識掌握,鍛煉學生的獨立開發能力,二者相得益彰從而提高課程教學水平。
4.2 案例教學法案例選擇標準
目前使用教學管理系統平臺作為案例學生在學習過程中對系統功能需求理解不夠透徹,案例選取不當會降低課程教學效果。因此案例的選取應該根據學生的實際情況選取,選取的標準應該分為以下幾個方面:
1) 案例能夠與課程內容安排相契合,能夠將案例軟件與軟件生命周期的各階段對應,實現案例完全貫穿課程的理論講解過程,有助于學生完整地學習到軟件開發各個階段的詳細內容。
2) 案例的難度和復雜度要適中。案例難度過高或者案例過于復雜,一方面會導致學生理解有困難,另一方面會打擊學生的信心,降低學生的積極性。案例難度過低或者過于簡單,不能達到提升學生能力的目的,也會讓學生在學習時降低興趣。因此案例的選取需要教師根據學生的接受能力動態地調整,以實現既能夠鍛煉學生同時還能夠讓學生學有余力。
3) 案例應該契合學生工作學習場景。案例和學生的日常生活越接近,越能調用學生的積極性。本課程不再使用教學管理系統平臺,而是根據本院醫學院校的性質和應用型高校的宗旨,選擇電子處方軟件作為教學案例,通過生活中的案例引起學生共鳴,加深學生對知識的理解。
4.3 UML在課程中的應用
課程包含兩個部分:理論教學部分包含基本理論和案例分析,實踐教學包括軟件設計、軟件開發和文檔編寫,UML可以貫穿整個課程過程。
首先,理論教學部分采用案例教學法:
1) 在需求分析階段,講解UML用例圖的理論知識,教師引導學生使用用例嘗試獲取課程案例需求,強化獲取需求能力和描述需求能力。
2) 在概要設計階段,講解UML系統用例圖、系統領域類圖、活動圖和狀態圖的理論知識,結合需求分析案例的系統架構和概念模型。
3) 在詳細設計階段,講解UML協作圖、包圖、模塊類圖、時序圖等相關理論知識,結合系統模型分析案例,學生學習模塊化思想,并設計模塊間接口。
4) 在編碼實現階段,講解由UML類圖到編碼的實現理論,結合案例分析設計階段中的UML類圖使用面向對象的語言實現方式。
5) 在測試階段,講解UML組件圖和協作圖的理論知識,講解不同的測試階段使用不同的UML 圖作為工作的基礎。學生學習參照UML圖例設計各階段測試用例,驗證案例系統功能的完整性。
6) 在軟件交付階段,講解部署圖的理論知識,分析案例在物理建模和部署時系統的結構。
各階段所使用的UML圖例如表1所示。
其次,實踐教學部分采用項目驅動教學法:
1) 在項目需求分析階段,應用UML用例圖描述需求,同時將對需求的描述形成需求規格說明書。
2) 在項目概要設計階段,應用UML系統用例圖、系統領域類圖、活動圖和狀態圖等建立項目架構和概念模型,形成概要設計說明書。
3) 在項目詳細設計階段,應用UML模塊類圖、時序圖及協作圖等圖例描述系統架構,此外需要對軟件數據庫建模,形成詳細設計說明書和數據庫設計說明書。
4) 在項目編碼實現階段,使用前端技術完成項目的界面設計和實現,編碼參考詳細設計中的模塊類圖,形成項目源代碼和模塊開發卷宗。
5) 在項目測試階段,應用項目UML組件圖和協作圖等,設計測試用例,對應UML系統用例驗證系統功能,形成項目測試計劃文檔和測試分析文檔。
6) 在項目交付階段,應用UML部署圖,部署項目的物理模型,形成軟件配置管理計劃,用戶手冊和操作手冊。
各階段所使用的UML圖例與理論教學階段對應,實踐教學階段性產出如表2所示:
課程以項目答辯作為考核手段,并撰寫項目開發總結報告。UML建模在《軟件開發與設計》課程中完整貫穿這個教學過程,應用UML之后課程安排條理性更合理,同時每個階段有對應國家軟件開發規范的產出,有利于培養學生規范軟件開發流程。
5 結束語
綜上所述,對《軟件開發與設計》課程的改革主要以案例教學法為理論教學基礎,以項目驅動教學法為實驗教學基礎,應用UML貫穿《軟件開發與設計》課程,旨在建立和完善課程的教學方法和教學邏輯,探索建立學生為核心,教師為輔導的課堂模式。建立學生主動創新、團隊協作實踐的教學模式。培養學生計算思維,形成計算思維設計和解決生活中的實際問題的良好習慣。培養學生良好的軟件開發規范,使用軟件工程理論結合UML建模,有條理地開發符合國家軟件開發標準的軟件系統。培養學生獨立思考、開拓創新的理論實踐能力,對標課程應用型人才培養要求。
參考文獻:
[1] 薛瑞祥,丁樺.軟件開發行業上市公司績效影響因素分析[J].市場研究,2020(7):57-60.
[2] 皇甫偉,涂佳靜.基于案例式教學方法的通信軟件設計課程教學改革[J].中國現代教育裝備,2020(11):90-92,112.
[3] 陳玥.基于計算思維的中學信息技術教育的研究[D].揚州:揚州大學,2012.
[4] 蒲秋梅,馬倩,朱麗平.面向計算思維的多媒體技術課程教學改革[J].中央民族大學學報(自然科學版),2017,26(1):71-76.
[5] 徐錫陽.基于高端科技的計算機軟件開發技術研究[J].電腦編程技巧與維護,2020(10):14-15,20.
[6] 商鵬.《統一建模語言UML》綜合型實驗教學改革方案研究[J].電腦知識與技術,2021,17(19):209-210.
[7] 夏克付,李心科,章曉勤.基于UML的電子商務系統建模研究[J].計算機與現代化,2009(6):30-33.
[8] 吳慧林.基于UML的輔助教學系統建模與實現[J].安徽水利水電職業技術學院學報,2021,21(2):58-61.
【通聯編輯:王力】