?

畢業設計為導向的基于項目驅動的“軟件需求過程”課程教學

2023-10-13 12:11張曉芬
關鍵詞:畢業論文畢業設計階段

孫 可, 張曉芬, 李 晉

(沈陽師范大學 軟件學院, 沈陽 110034)

畢業論文是高校人才培養計劃的重要組成部分,是實現人才培養目標、培養本科學生科研能力與創新思維、檢驗學生理論應用到實踐的能力的重要手段[1-2]。工科本科生的畢業論文是基于學生的畢業設計而創作的,完成畢業論文的前提是做好畢業設計[3-5]。畢業設計是對工科專業本科畢業生綜合實踐能力進行考察的重要環節,通過畢業設計能夠考查學生對大學所學知識、技能和素養的綜合應用能力。畢業論文是學生對畢業設計的方法、過程、結果的總結,通過畢業設計論文可以對學生的專業知識、計算機等現代工具及實驗設備的使用、文獻資料的查閱與總結、問題的分析與研究、研究結果的分析與總結、論文撰寫等多方面綜合能力進行檢驗[6-8]。

調查發現,很多學生在畢業設計過程中沒有領會軟件需求的重要作用[9-10],學生普遍認為在畢業設計中最重要的是編碼,而忽視了需求獲取、需求分析、系統設計等過程。大部分學生在完成選題后,不會按照軟件工程相關理論和方法展開畢業設計工作,導致學生畢業設計做出的項目質量不高,撰寫的畢業論文邏輯混亂、核心問題闡述不清。究其原因,是因為學生沒有深刻領會到軟件需求作為軟件工程的起始階段,可以為軟件系統開發的后續階段提供工作基礎,需求獲取、而需求分析等步驟工作的結果對軟件項目的成敗至關重要。因此。如何指導學生做好畢業設計,提高學生畢業設計水平和質量進而提高畢業論文的質量,是一個重要的課題。作為軟件工程專業主干課的“軟件需求過程”是與畢業設計聯系較緊密的課程,其目標是培養學生建立工程化的意識,讓學生學會使用工程化的思想去開發軟件項目,強調了需求工程的重要作用,即一個項目的成敗關鍵在于需求工作做得好不好。所以筆者嘗試通過對“軟件需求過程”的教學工作進行改革,使學生能夠通過本課程的學習加強對整個軟件開發流程的理解,培養學生的工程應用能力,為能夠做好畢業設計乃至寫出優秀的畢業論文提供幫助。

1 現狀分析

1.1 “軟件需求過程”教學現狀及存在的問題

“軟件需求過程”課程中有很多抽象的工程理論。對于沒有實際項目開發經驗的學生來說,學習這門課程時,首先面對的問題就是理解不了課程中的項目的前景與范圍、需求規格說明等概念,問題分析、目標分析、業務過程分析的理論基礎和方法,E-R圖、用例圖、時序圖、流程圖的使用場景及繪制方法等。這些內容對于沒有實際項目開發經驗的學生來說,學習起來還是很困難的,造成這個問題的原因是理論與實際的脫節。

另外,本課程與其他實踐性較強的編程課相比,學生需要理解、記憶很多的模型和概念,不像諸如“C語言程序設計”“Java程序設計”這樣的編程課在學習一段時間后,學生可以獨立編寫代碼解決一些小問題,通過程序運行結果獲得一種成就感。因此,一直以來“軟件需求過程”課程很難讓學生在學習過程中得到取得成果的愉悅感,這種情況往往造成學生的學習動力不足。

1.2 畢業設計中存在的問題

學生普遍認為畢業設計就是編寫代碼,因此,學生在完成畢業設計選題后,往往都會急于進入編碼階段,而沒有針對所做選題遵循需求開發的方法進行需求獲取、需求分析、需求規格說明及需求管理等步驟的工作[11-12]。在編碼過程中做到某一具體功能時再回頭進行需求分析,就不會考慮各功能間的關聯,從而造成編碼混亂、功能不完善等問題,最終使得整個系統無法繼續開發下去[13]。

由于前期對系統的需求沒有明確,在進行系統設計時,學生先隨意修改功能模塊。因此,整個系統的功能模塊劃分凌亂、各功能模塊的層次結構不清晰,違反軟件設計中“高內聚,低耦合”的原則[14]。

2 教學改革措施的實施

為了解決上述畢業設計中存在的問題,筆者在講授“軟件需求過程”這個與畢業設計流程關聯密切的課程時,圍繞需求工程的基本環節展開,將設計開發某信息管理系統的基本環節與教學內容各章節內容相結合,用項目來驅動教學過程[15]。具體來說,在授課初始階段,任課教師給學生發布課題,由學生從給定的課題中選題,學生選定課題后,按照軟件工程開發流程進行需求獲取、需求分析、系統設計等工作。課程教學內容與軟件開發流程緊密貼合,學期末課程講授到系統測試內容時,學生的課題也處于系統測試階段。最終學生會開發出一個實際的信息管理系統,此時再讓學生根據自己開發的系統撰寫一個程序設計報告。這個過程能夠讓學生充分地理解軟件開發各環節之間的關系,達到培養學生完成高質量的畢業設計及畢業論文的目的。

2.1 將教學內容融入到實際項目中

教學改革的目標是從軟件工程的角度出發用項目來驅動教學,將軟件項目開發的過程分為需求分析、系統分析、系統設計、編碼和測試階段。在各個階段中都有不同階段的產出:需求分析階段產出需求文檔,系統分析階段產出對象模型及業務流程處理模型,系統設計階段產出E-R圖、系統架構,編碼階段產出系統代碼,測試階段產出測試文檔。通過課程的學習使學生理解軟件工程各個階段之間的銜接關系,能夠根據選定的課題使用工程的方法逐步實現項目,在加深對知識的理解的同時能夠熟悉畢業設計的流程及要求。

在教學過程中,讓學生結合自己的選題利用需求工程方法實施需求獲取、需求分析、需求規格說明等環節,通過實踐來學習課程的理論知識,能夠加深對概念、方法的理解。教學過程中,教師引導學生利用課程中講授的需求獲取方法實施需求獲取:首先,根據課題情況使用“問題分析”“目標分析”“業務過程分析”等方法確定項目的前景與范圍;其次,根據項目的前景和范圍進行涉眾分析,發現所有的關鍵涉眾類別,使用“先膨脹后收縮”“涉眾網絡”等方法識別涉眾,對識別的涉眾進行描述、優先級評估、風險評估后選出涉眾代表;最后,使用“用例/場景模型”展開用戶需求獲取,具體的需求獲取方法可以使用面談法、原型法、文檔審查法等。軟件需求獲取的步驟如圖1所示。

圖1 需求獲取的步驟Fig.1 Steps of requirements elicitation

對需求獲取的結果進行分析即為需求分析過程,教學方式與前文所述需求獲取類似。經過需求獲取活動和需求分析活動交織處理后,軟件系統的涉眾與需求工程師對軟件的需求和方案達成了共識,將這些共識形成需求規格說明文檔,用于指導后續的軟件開發工作。

2.2 迭代反饋式教學方法

在教學過程中,授課教師選擇一個實際項目作為案例,帶領學生按照需求獲取、需求分析、需求規格說明等步驟寫出該項目的需求規格說明文檔。在執行各步驟的工作后,讓學生將各步驟中涉及的不理解的概念、方法、模型等反饋給授課教師,授課教師根據學生的反饋能夠判斷出學生對知識點的掌握情況,然后指導下一步的教學工作,同時針對學生不理解的概念、模型或方法返回項目中去尋找答案。如此反復執行,直到學生沒有問題為止。具體實施流程如圖2所示。

圖2 反饋式教學Fig.2 Feedback based teaching

2.3 實施階段性過程考核

在教學過程中,授課教師首先按照選題的相關性對學生進行分組,每組5名學生,讓他們從學期初到學期末都針對選定的項目進行操作??己朔绞椒蛛A段考核,同一組同學的考核成績相同,這樣做能夠激發學生的學習積極性,大家能共同努力完成項目,因為每個人都是團隊的一員,團隊的成績與每一名同學都相關,同時也培養了學生的團隊協作能力。

教師要指導學生遵循軟件項目開發的基本流程,將需求獲取、需求分析、需求驗證等各階段的產出成果形成文檔,在各步驟的收尾階段組織學生進行答辯,由被考核的小組進行系統演示、講解,授課教師和其他組的同學作為評委,對該組實施效果及問題進行提問,根據項目完成情況和答辯表現進行評分。學期末將各階段得分根據權值進行加權平均得出最終成績。各階段成果及權值設置見表1。

表1 各階段成果及權值Table 1 Achievements and weights of each stage

3 結 語

對軟件工程專業來說,畢業設計要以軟件項目的設計與開發為主線,培養學生具備對復雜工程技術問題進行預測與模擬的能力。通過畢業設計過程的訓練,能有效提升學生的工程應用能力,培養學生的實踐能力,有利于學生從學校向工作崗位的平穩過渡。

致謝感謝沈陽師范大學第九批教學改革項目(JG2021-YB032)的支持。

猜你喜歡
畢業論文畢業設計階段
關于基礎教育階段實驗教學的幾點看法
高校畢業設計展吸引業內眼球
在學前教育階段,提前搶跑,只能跑得快一時,卻跑不快一生。
“本科畢業論文要不要取消”為何長期無解
畢業設計優秀作品選登
基于FPGA的畢業設計實踐平臺實現
我的月子畢業論文
大熱的O2O三個階段,你在哪?
我的月子畢業論文
兩岸婚戀邁入全新階段
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合