時間:2022-05-10 03:23:53
序論:在您撰寫軟件工程畢業論文時,參考他人的優秀作品可以開闊視野,小編為您整理的1篇范文,希望這些建議能夠激發您的創作熱情,引導您走向新的創作高度。
摘要:分析軟件工程專業本科畢業設計管理中存在的主要問題,針對軟件企業對軟件工程專業的人才培養要求,提出軟件工程專業本科畢業設計過程管理措施,強調通過建立和完善畢業設計的管理制度,加強畢業設計過程的監控;構建完善的畢業設計管理平臺,提高本科畢業設計管理水平;改革畢業論文形式,建立畢業設計過程管理評價體系,提高學生工程實踐能力。
關鍵詞:軟件工程;本科畢業設計;過程管理
軟件學院軟件工程專業的設立是國家教育部、國家發展計劃委員會為滿足國家軟件產業發展對人才的迫切需求于2001年批準成立的。重慶大學軟件學院是國家首批示范性軟件學院之一,其人才培養目標是培養“面向應用、遵循標準、適應團隊、把握技術、熟知領域、外語優良”的軟件工程人才。10年來,軟件學院十分重視軟件工程專業的工程化教學改革,采取多項政策和措施促進工程型軟件實用人才的培養。本科畢業設計是實現高等學校人才培養目標的重要教學環節,是培養學生創新意識和創新能力的重要手段,是理論學習與社會實踐相結合的重要體現。因此,對軟件工程專業本科畢業設計進行改革,培養具有工程實踐能力的軟件實用人才具有重要意義。
1 軟件企業對軟件工程專業培養人才的要求
軟件產業的迅速發展對該行業從業人員提出更高要求,不僅要求學生掌握理論知識,還要求學生具備較強的工程實踐能力與創新能力。國內計算機相關專業的教學基本上仍使用傳統的理工科人才培養模式,注重基礎理論知識,缺少對學生工程能力和職業素質的訓練,因此培養既有扎實的專業基礎知識和較強工程實踐能力,又能迅速適應業界環境的高素質創新型軟件人才,是軟件企業對軟件工程專業人才培養的要求。
2 目前本科畢業設計管理中存在的問題
1)畢業設計階段缺乏全過程的管理與監控。
畢業設計全過程的管理與監控不夠規范,缺乏專門的組織機構。畢業設計的一些主要環節疏于檢查和監督,因此存在影響畢業設計質量的問題,如選題陳舊、重復率高、與軟件產業發展需求不適合等。
教師指導水平有限且精力投入不足,同時沒有對教師指導工作的有效績效考核,使得教師對學生的畢業設計不夠重視;某些學生由于有就業壓力,便將主要精力放在人才市場和各類招聘會上,沒有意識到畢業設計的重要性,最后只能通過拼湊和抄襲完成畢業設計。
2)畢業設計階段缺乏規范化的指導性文件。
畢業設計工作持續時間長,涉及所有畢業生和教師,如果沒有規范化的指導性文件能夠讓指導教師和學生了解畢業設計工作的意義、目標、計劃、流程、論文規范化格式、質量評價標準、成績考核等具體實施細則,明確自己在該項工作中扮演的角色以及整個畢業設計流程對自身承擔工作的質量要求,那么很難提高畢業設計質量。
3)畢業設計文檔資料缺乏有效管理。
畢業設計成果是學校的重要知識和信息資源,完善的文檔資料管理有助于畢業設計工作的傳承和創新。長久以來,畢業設計作品和論文主要采用人工管理。學生答辯后提交資料袋,資料袋中包括畢業設計相關文檔和設計作品的刻錄光盤,但由于管理人員對畢業設計資料的重視程度不夠或人員不夠,導致畢業設計資料管理不善,出現查詢困難、答辯記錄丟失等情況,為以后查閱、成果展示及下屆畢業生的論文指導工作帶來不便。
3 本科畢業設計管理改革措施
1)成立畢業設計管理小組。
為了加強本科畢業設計工作的組織、管理和監督,軟件學院專門成立畢業設計管理小組,小組成員由教學副院長、正副系主任及學生助管組成,負責整個畢業設計過程的管理監督工作,包括從選題、審題、任務書下達到開題、中期檢查、答辯、成績評定、推優的全過程。
2)建立和完善畢業設計的管理制度。
為了提高畢業設計質量,畢業設計管理小組根據軟件工程專業特點建立學院的具體工作規范和有效的畢業設計管理模式和監控制度,加強畢業設計制度建設,使得從選題、下達任務書到學生的開題報告,從每周匯報、中期檢查到設計文檔撰寫、論文撰寫、論文重復率監測、論文評閱及論文答辯,都有切實可行的實施細則及管理規章制度;構建集中管理與跟蹤管理、周報提交、外出請假、抄襲檢測、講座出勤等平時成績評定標準;完善從平時表現、系統設計實現質量、論文或設計文檔質量、答辯水平等多方面衡量的客觀、公正的綜合成績評定標準和推優程序。在畢業設計全過程管理中,力求做到有章可循及有據可查。
3)多元化的畢業論文形式。
多元化的畢業論文形式有利于培養大學生創新實踐能力。根據軟件工程專業特點,軟件學院對畢業論文形式進行改革。畢業設計形式包括傳統方式和新方式,學生可以選擇其中一種方式,具體采用哪種方式則由指導老師負責。
傳統方式是指畢業生完成開題報告并翻譯一篇相關課題的英文文獻,然后對軟件系統進行需求分析、設計和編碼實現,或者對相應算法進行研究、分析和編碼實現,最后完成畢業設計論文。
為了面向軟件企業需求,培養學生的軟件設計能力,新方式注重提高學生的系統設計文檔編寫能力。畢業生前期仍然要完成開題報告、英文文獻、系統分析設計和編碼,最后提交系統設計相關文檔。系統設計相關文檔由以下文檔構成:①項目開發計劃;②軟件需求說明;③系統設計說明;④數據庫設計說明;⑤用戶手冊;⑥測試分析報告;⑦項目開發總結。根據軟件工程學科特點及專業人才培養的要求,結合學校的畢業設計(論文)管理辦法和軟件設計文檔國家標準,軟件學院制定了符合專業人才培養目標的設計文檔規范。
為提高學生科技論文寫作水平和研究報告的演講能力,軟件學院面向軟件工程專業所有應屆畢業生,在其畢業設計階段開設8學時的“科技論文寫作規范”“研究報告演講技巧”講座,強調科技論文寫作的規范性和可讀性,鍛煉學生演講研究報告的能力。
4)加強畢業設計過程管理和監控。
畢業設計過程管理和監控面向的對象是學生和教師。軟件學院畢業學生做畢業設計有不同情況,如有在校外軟件公司做畢業設計的,更多的是在校內做畢業設計,因此需要有相應的不同管理模式。為加強學生培養質量和降低指導教師管理難度,軟件學院提供集中管理與跟蹤管理方式。
集中管理是指學院設置固定機房和機位并安排助教作為管理人員,由指導教師給學生安排機房,由管理人員負責學生的日常考勤,學生需及時向指導老師匯報學習情況,學生若有事必須請假。跟蹤管理主要針對在校外進行畢業設計的學生,要求這類學生完成校外畢業設計申請,由管理小組協助指導教師對校外學生進行跟蹤,為這些學生提供及時的畢業設計信息服務。這類學生必須每周與學校指導教師聯系,以便教師詳細了解并掌握學生畢業設計進度。這種具體的制度和規范,對在校內進行畢業設計和赴外進行畢業設計的學生進行了有效監控。
針對指導教師的管理,畢業設計管理小組采用不定期檢查和周報提交的方式。畢業設計規范要求每位指導教師每周指導時間不少于2小時,指導教師需要檢查學生畢業設計的進度和質量;解答學生提出的問題,進行下一階段工作部署與指導,保證畢業設計的質量。
不定期檢查指畢業設計管理小組根據指導教師在畢業設計系統中登記的指導時間和地點,不定期對教師的指導情況進行檢查。周報提交是指學院建立的畢業設計定期報告制度,教師和學生每周均需要將周報提交到系統上,教師主要匯報每周對學生指導情況以及學生畢業設計進度和質量,學生主要匯報每周的畢業設計進度、畢業設計遇到的問題等。畢業設計管理小組每周對周報進行匯總分析并,及時了解畢業設計情況,對學生和教師提出的問題進行統一解答。
5)構建完善的畢業設計管理平臺。
充分利用計算機技術,構建完善的畢業設計管理平臺,提高畢業設計管理水平,使畢業設計管理更加規范化。軟件學院在畢業設計過程中使用的管理系統包括:重慶大學本科畢業設計系統、重慶大學網絡教學綜合系統、重慶大學軟件學院軟件工程實踐教學平臺。
重慶大學本科畢業設計系統用來上傳和管理畢業設計相關文檔。系統涵蓋畢業設計工作的全過程,實現選題提交、課題雙向選擇、畢業設計相關文檔(包括開題報告、外文翻譯和畢業論文)的提交與管理、文檔模板的上傳和下載、畢業答辯的自動分組、指導教師和交叉教師評分、答辯記錄和成績的上傳、成績冊的打印、畢業成績的統計分析等功能。
重慶大學網絡教學綜合系統。用于畢業設計的過程管理,主要進行信息、周報收集、校外學生實習申請、過程檢查情況公告、問卷調查、學生成果提交和查詢等。
重慶大學軟件學院軟件工程實踐教學平臺是軟件人才培養創新平臺,提供實踐教學成果展示、實踐案例資源庫與實踐教學管理功能。利用該平臺可以舉辦畢業設計優秀作品展,展示軟件學院學生的專業學習水平,激發學生的實踐熱情,對下一屆學生起到示范作用。平臺實踐案例資源庫可為學生提供實踐學習參考資源,為教師提供實踐教學案例素材。
6)建立畢業設計過程管理評價體系。
建立畢業設計過程管理評價體系,要求所有
一學生和指導老師每周都要將周報提交到EOL(重慶大學網絡教學綜合平臺)平臺。畢業設計管理小組每周對畢業設計情況進行檢查和監督,并將檢查情況告知所有指導老師。指導老師每周提交周報次數與畢業設計指導工作量掛鉤;學生考勤情況、周報提交情況、平時檢查情況會被記入平時成績,平時成績不合格將被取消答辯資格。
軟件學院強調學生在畢業設計期間一定要進行軟件系統設計和實現,畢業答辯包括系統演示、用PPT講解畢業設計主要工作、答辯教師提問等多環節,答辯老師根據學生工作量、完成質量、論文或設計文檔質量、答辯情況進行評分。學生畢業設計的最終成績由平時成績、指導教師成績、交叉評閱成績和答辯成績構成,以保證評分的公平性。
7)加強誠信機制建設
為了提高本科畢業設計質量,加強學術道德和學風建設,營造學術誠信氛圍,軟件學院使用“大學生論文抄襲檢測系統”對本科畢業論文進行防抄襲檢測。抽檢比例為應屆畢業論文的50%,抽檢名單由畢業論文管理系統隨機抽取。另外,各答辯小組推薦的優秀畢業論文為必檢對象。
軟件學院制定論文抄襲的認定標準(建議文字復制比不超過25%)和處理辦法,對有問題的論文,責成指導教師對檢測結果予以認定和說明或督促學生修改,取消被認定抄襲論文學生的答辯資格;對各答辯小組推薦的優秀畢業論文進行,不合格的論文取消優秀。
4 結語
培養適應我國軟件產業發展的軟件工程人才,提高軟件工程本科畢業設計質量,畢業設計的改革勢在必行。通過2屆學生的畢業設計改革證明,建立和完善畢業設計的管理制度,加強畢業設計過程的監控,充分利用畢業設計管理平臺,實現多元化的畢業論文形式,建立合理的畢業設計過程管理評價體系,加強誠信機制建設,能極大地促進師生在畢業設計過程中投入熱情和精力,提高本科畢業設計管理水平,有效保證畢業設計質量。
摘要:畢業設計是一個十分重要的教學環節,是一個系統工程,應使用工程化的方法、步驟統籌安排以取得良好的效果。軟件工程學是指導計算機應用專業軟件類學生進行畢業設計的重要工具之一。將畢業生設計過程、文檔書寫與軟件工程學緊密結合起來是提高學生畢業設計論文質量的一個重要途徑。結合軟件工程的基本知識,通過對軟件類學生畢業設計過程存在的常見問題的研究,提出了應用軟件工程學去指導學生畢業設計的方法。
關鍵詞:軟件工程;畢業設計
作者簡介:許永昌(1976-),男,山東安丘人,碩士,山東英才學院計算機學院講師,研究方向為計算機應用。
0引言
畢業設計是高等院校應屆類畢業生在畢業前接受課題型任務,在教師指導下進行科學研究或工程實踐并取得成果的過程,是高校實現人才培養目標的綜合性實踐教學環節,是一次理論與實踐相結合的的鍛煉機會。如何在新形勢下改革畢業設計, 提高學生軟件類畢業設計的質量,進一步規范畢業設計中的軟件開發過程,抓好高校畢業設計這一實踐環節,加強對畢業設計過程的管理與監控, 切實提高畢業設計的質量,對于軟件類學生在畢業設計中實施合適的軟件設計具有重的指導意義。
1畢業設計的必要性
高等職業教育應該是以能力為本位、以學生為主體、以實踐為導向的教育。畢業設計是高等教育培養學生綜合運用所學理論知識和技能解決實際問題能力的重要環節之一,是衡量畢業生是否達到相應學歷層次的重要依據。畢業設計將總結專業基礎和專業技術的學習成果,鍛煉和開發學生的綜合運用能力。
高職院校軟件相關專業組織畢業設計應該符合新的人才培養標準,對培養學生的職業技能和素質要具有積極的意義。而對于即將畢業離校的應屆畢業生來說,畢業設計無疑是計算機軟件各相關專業理論教學、實驗、實訓等有機結合的途徑之一。
通過畢業設計能鍛煉學生的能力:
(1)實踐軟件工程的相關原理能力。畢業設計的過程,是一個課題小組從接到開發任務到提交產品和文檔的過程,其中涉及到需求分析、概要設計、詳細設計、編碼、測試、程序打包、編寫文檔等軟件工程具體的各個方面。經過鍛煉,學生們對軟件工程學思想和方法的理解會大大加深。
(2)解決具體問題能力。在畢業設計的進行過程中,學生一定會遇到平時在課堂的理論學習中碰不到的困難和挑戰, 而克服這些困難、解決實際問題的過程就是軟件技術和心理素質逐步提高的過程。
(3)團結協作的意識、能力。通過畢業設計這一過程,學生就會產生團結協作的意識和能力。
2軟件工程學的基本思想
軟件工程是一門研究如何用系統化、規范化、數量化等工程原則和方法去進行軟件的開發和維護的學科,包括兩方面內容:軟件開發技術和軟件項目管理。其中,軟件開發技術包括軟件開發方法學、軟件工具和軟件工程環境,軟件項目管理包括軟件度量、項目估算、進度控制、人員組織、配置管理、項目計劃。
3高職類學生畢業設計現狀
畢業設計的主要目的是培養學生綜合運用所學的基礎理論、基本知識和基本技能,用以分析、解決工程、科研、社會實際問題的能力,使學生得到工程設計方法和科研能力的初步訓練。畢業設計中存在的問題主要表現在以下幾個方面。
3.1選題的盲目性
只是把畢業設計環節作為大學生活的必經環節, 純粹是為了完成學業而去做畢業設計, 造成選題的盲目性、有的選題則是陳舊。
3.2可行性分析與需求分析重視程度不夠
絕大多數畢業生在確定了畢業設計的題目后,幾乎不進行調查研究工作就立即投入到整個系統的設計中, 一旦遇到了與實際不符的地方, 又重新返回, 對已經做好的設計進行修改。最終導致設計的系統雜亂無章, 甚至到了最后只能馬馬虎虎地倉促交工。
3.3系統開發過程中的文檔不夠正規,不夠完備
完整的設計不僅包括所完成的可操作的系統,一般的操作幫助,還包括在開發系統的過程中所產生的各個文檔等一些文字的東西,比如解釋清晰、內容全面的數據字典和使用手冊也是必不可少的,否則用戶會感到使用起來不方便,覺得難于操作。
3.4模糊的評價標準
導致畢業設計質量下降的一個非常重要的原因就是沒有建立精確細致的評價體系。
這嚴重影響了項目的進度和質量,并且使學生沒有真正得到必要的鍛煉。我們通過對這些問題進行詳細深入的分析,提出一個軟件過程框架,這個框架主要從需求、測試、集成這3個方面給出工作要點和規范。
4利用軟件工程學思想指導學生進行畢業設計
畢業設計本身是個工程,要用工程的方法去處理。從軟件工程的角度去指導學生進行畢業設計,在畢業設計過程中,要系統地將所學知識應用于實際問題,按軟件工程學思想展開工作。
圖1軟件生命周期與畢業設計各階段之間的映射
4.1以可行性研究指導選題目
可行性研究,應該從技術可行性、經濟可行性、操作可行性三個方面去研究,在畢業設計題目的選擇過程中,應立足于解決實際問題,注重發現問題、分析研究問題和開發創新的能力。選題原則上,可以參考以下幾點:①畢業設計的課題應該能使計算機專業所學的理論知識進一步理解并深化,也就是說,畢業設計應盡可能包括多門專業基礎課和專業課的綜合運用,并且要緊密結合工程實際,以有利于學生的全面訓練;②選擇難度適中的課題, 保證課題的完成質量;③課題要適合于各個模塊獨立進行,并便于最后統一調試;④課題規模應大小適合,難易程度適中。
4.2需求分析是關鍵
需求分析的基本任務是準確地回答“系統必須做什么”, 也就是對目標系統提出完整、準確、清晰、具體的要求。系統分析員可以通過多種形式來獲取用戶需求,對用戶提出的需求進行分析,以此來確定其中要實現系統的功能。對需求劃分優先等級,找出核心需求和重要需求,以保證系統構建的正確性。
在進行軟件類畢業設計時,為了保證需求獲取的準確性和全面性,可以讓項目組的所有學生都參與到用戶需求的獲取的工作中來,發揮集體的能力,并由指導教師進行最終的確認。
4.3規范設計過程
需求分析完成后的下一個階段就是系統設計,包括概要設計和詳細設計。
詳細設計階段的任務就是深入每個函數內部,以偽代碼或注釋的形式實現整個函數,設計出程序的詳細規格說明。
從系統設計開始,學生要按照軟件工程的要求,畫出DFD圖,對輸入、輸出數據流進行詳細的說明,建立符合軟件工程規范的數據字典,根據DFD 圖設計出模塊結構圖。
4.4重視文檔寫作
在畢業設計的過程中,要嚴格遵照軟件文檔的思想,記載設計過程的每一階段完成了哪些設計,下一階段的任務、目標及技術手段,這樣,把文檔作為整個設計的指揮棒,使設計有條不紊地進行。
4.5重視測試工作、撰寫畢業設計說明書
軟件測試工作也是軟件開發的重要組成部分。通過實際應用效果和測試數據,畢業設計的成效就可一目了然。
畢業設計說明書的撰寫是最后一個階段,要求學生回顧設計過程,總結勞動成果,這時學生就會對軟件開發及必須經歷的幾個步驟都有更深刻的認識。最后,要求學生對畢業設計進行系統的總結,寫出畢業論文。
5加強對學生綜合能力的培養
通過實踐的練習,不僅能加深對理論的理解,同時也能鍛煉運用知識分析問題、解決問題的能力。畢業設計這一實踐環節是高等學校培養學生實際能力的主要手段,也是高等教育的重要組成部分。充分、有效地設置軟、硬件的畢業設計對學生能力的培養至關重要,可以縮短學校教育與社會流行技術、工具的差距,滿足學生畢業后的工作需要。通過畢業設計必須達到培養學生以下方面能力的目的。
5.1工程實踐能力
學生能夠準確把握選題的邏輯重心和學術思路,能夠運用豐富的專業知識進行處理,具有嚴謹的理論思辨過程,以鍛煉畢業生的工程實踐能力,使畢業論文具有一定的應用和學術探討價值。
5.2書寫和表達能力
畢業設計論文是畢業設計工作的總結和提高,和做科研開發工作一樣,要有嚴謹求實的科學態度。在畢業設計期間,盡可能多地閱讀文獻資料是很重要的,畢業設計大多數是技術開發型的,其論文的主體部分應包括:總體設計、模塊劃分、算法描述、編程模型、數據結構、實現技術、實例測試及性能分析。這些內容根據任務所處的階段不同,可以有所側重。
5.3創新能力
提出創新要求后,帶領學生認真復習或補學過去沒學過、沒有學好的課程,并在此基礎上結合實際工作中出現的問題孕育出一些新的思路,將畢業設計推上一個新臺階的方式,與為每個人專門分配某一特定的作業來鍛煉學生基本技能的方式相比,更能擴展學生的視野,培養創新能力。
5.4協作能力和團隊精神
通過集體活動和成員溝通培養成員的團體情感,增強團隊的凝聚力。畢業設計將一個學生從入學初到畢業前的軟件專業課程的學習內容鏈接成線,實現了課程的真正銜接,也使學生在畢業前對軟件方面所學的知識進行了比較完整的概括與總結,達到了良好的理論聯系實際的教學效果。畢業設計彌補了課堂教學的不足,加深了對理論的理解,促使學生深入思考,敢于創新,同時使學生的動手能力、分析和解決問題的能力、書寫和表達能力、協作能力等各項能力都得到了培養和提高。
6結束語
軟件工程作為軟件開發工程化、規范化的具體實施方法,在將其應用到畢業設計中之后,學生在軟件設計的文檔書寫規范化等方面均有了很大的改善與提高。將軟件工程應用于畢業設計中不僅僅完成了一門課程從理論到實踐的過程,而且將一個學生從入學到畢業前軟件專業課程的學習內容鏈接成線,完成了前導后續課程的真正銜接,也使學生在畢業前對軟件方面所學的知識進行了比較完整的概括與總結,因此,軟件工程學在計算機專業學生畢業設計中的應用具有重要的現實意義。
1軟件工程在畢業設計中的作用
軟件工程不僅是計算機科學與技術專業、軟件工程專業的一門專業基礎核心課程,也是其他相關專業,如信息工程、系統工程、信息與計算機科學、信息管理與信息系統等專業的重要應用技術課程。對于這些專業的學生來說,畢業設計多是以軟件開發類項目為主,整個畢業設計就是開發一個軟件。為了更好地完成軟件開發類畢業設計,提高學生畢業設計的質量,進一步規范畢業設計中的軟件開發過程是必需的。軟件工程的思想正是用工程化方法構建和維護有效的、實用的和高質量的軟件。按照軟件工程思想,軟件開發的生命周期分為可行性分析、需求分析、總體設計、詳細設計、編碼實現、軟件測試和軟件維護幾個階段。在學生的畢業設計中以軟件工程的思想為主線,從軟件工程的角度去指導學生進行畢業設計,挖掘軟件工程在系統開發過程中的價值,解決畢業設計中存在的一些問題,既有助于學生更好地理解軟件工程的方法、技術和思想,更有助于提高軟件類畢業設計的質量。
2畢業設計中存在的問題
筆者在指導學生軟件開發類畢業設計過程中發現,畢業設計存在著選題難、任務重、重視編碼、輕過程、項目無法完成等現象。設計過程中沒有嚴格地遵循軟件工程的開發方法,沒有規范的軟件設計過程,項目能否成功主要依賴于個人能力和個人努力,這種不正確的開發方法帶來了嚴重的后果。在項目開發的過程中常常存在以下幾個方面問題:
2.1選題的盲目性
選題是畢業設計過程中的一個初始環節,選題恰當是做好畢業設計的前提,但選題不當的情況仍然時有發生。學生沒有認識到畢業設計的重要性,純粹是為了完成學業而做畢業設計,選題沒有一個確切的目標,往往是隨便選一個題目,造成選題的盲目性,出現了選題陳舊、選題范圍狹窄、選題偏大等問題,使學生抄襲、完成不了畢業設計的情況時有發生。
2.2缺少軟件的系統分析
軟件開發過程的第一個階段是系統分析,用來確定軟件開發要解決的問題是什么?估算完成該項目需要的資源和成本,確定目標系統應該具備哪些功能,主要經歷問題的定義、可行性分析和需求分析三個階段。軟件的系統分析確定了用戶需求,同時對目標系統提出完整、具體的要求,引導開發者正確地構建系統。因此,對用戶需求做出全面、正確的分析,對于最終軟件開發類畢業設計的成敗起著至關重要的作用。然而在完成畢業設計過程中,學生往往認為代碼編寫最重要,對軟件開發過程中的可行性分析和需求分析階段不重視,甚至沒有系統分析,對整個畢業設計的完成造成了影響。
2.3軟件設計過程雜亂無章
軟件設計一般都要經歷可行性分析、需求分析、總體設計、詳細設計、編碼和測試階段。而部分學生在畢業設計開發的過程中,缺乏軟件工程設計思想,跨越需求分析、概要設計、詳細設計和功能模塊設計,直接進行代碼的撰寫;或者從代碼反推出模塊設計;甚至在軟件開發過程中,一邊寫程序,一邊了解需求,程序完成了需求才確定。這種無序的軟件設計過程,導致最終設計的系統雜亂無章、代碼的重復率高、潛在?Bug多、系統的可集成性非常差、不能在規定時間內完成設計或者系統無法運行。
2.4開發過程中文檔不完備
根據軟件工程學的基本原理,軟件=程序+文檔,可見軟件文檔是軟件開發過程中不可缺少的組成部分。軟件文檔貫穿于軟件開發的各個階段,是提高軟件產品開發效率、規范軟件產品開發過程、保證軟件產品質量的關鍵。但在實際畢業設計中,很多同學認為把程序代碼編出來了,畢業設計也就完成了,提交的畢業設計論文就是系統代碼的復制,即只做出一個可演示可操作的系統,而忽略了軟件開發的完整性、系統性。完整的畢業設計不僅包括可操作的系統,還包括在開發系統的過程中所產生的各個文檔資料。文檔的缺失會降低軟件開發的效率、影響整個軟件的開發、使用和維護。以上問題的存在,嚴重影響了畢業設計的進度和質量,沒有達到畢業設計的目標要求。針對當前畢業設計的現狀和存在不足,筆者認為應用軟件工程學的思想指導畢業設計,對促進學生綜合素質與工程實踐能力培養具有積極意義。
3用軟件工程思想指導學生進行畢業設計
3.1以可行性研究指導選題
可行性研究的目的是用最小的代價在盡可能短的時間內確定問題是否能夠解決。畢業設計題目的選擇,應立足于解決工程實際問題,可由指導教師提供符合相關專業畢業設計要求的題目,也可以鼓勵學生自己到社會、生產企業中尋求研究課題,培養他們自主學習的意識。選題過程以可行性研究為指導,從課題規模大小、難易程度、學生自己的研究方向、愛好、學生的知識層面和能力等多個方面進行考慮,對于選擇的題目是否能夠解決,確定在規定的時間內完成畢業設計的可行性。指導教師可根據學生選報的題目來指導學生對該選題進行調查研究,明確課題要解決的問題是什么,簡要地寫出關于問題性質、項目目標和項目規模的書面報告??尚行匝芯縼碇笇М厴I設計的選題,實質上是簡化了系統分析和設計的過程,也是在較高層次上以較抽象的方式進行的系統分析和設計的過程,使學生對于課題的設計有個清晰的思路,為及時完成畢業設計提供了可能。
3.2重視軟件的需求分析
需求分析的基本任務是準確地回答“系統必須做什么”,即確定系統必須完成哪些工作,也就是對目標系統提出完整、準確、清晰、具體的要求,不僅指明了系統設計時必須要實現的目標,也是軟件設計、實現、測試和維護階段的主要參考標準。用戶需求的獲取是軟件開發中最重要、難度最大的工作,它貫穿于整個軟件設計過程,不僅要涉及到軟件開發方面的知識、應用領域方面的知識,還涉及到與用戶溝通的能力。在進行需求獲取和分析時,為了及時、準確地獲取,可采用軟件工程中比較成熟的方法,例如訪談、實際調查、UML的用例技術等。需求分析在軟件系統分析與設計階段起著橋梁的作用,確定了系統的需求,才能制定出軟件設計的框架,保證畢業設計循序漸進、有條不紊地進行,避免后期開發過程的頻繁返工,進而按時完成最終的任務。
3.3規范畢業設計過程
軟件開發類畢業設計一般是開發一個軟件系統,實現一定的功能?!奥槿鸽m小,五臟俱全”,無論軟件規模的大小、功能的多少,都應該嚴格按照軟件工程中軟件生命周期每個階段的步驟完成各項任務。要培養學生把軟件工程的概念貫穿于整個畢業設計過程,也就是說,讓學生把開發軟件的過程看成是蓋一棟大樓,修一條公路的實際工程,用工程化的思想指導畢業設計,確定完成課題的各項任務的工作步驟,注重軟件類畢業設計的過程,而不是學生所認為的畢業設計就是編程序,代碼調試通過即可。通過工程的概念規范畢業設計過程,讓學生明白開發一個軟件系統一般經過系統分析、系統設計、系統實施三個階段,必須嚴格遵循軟件生命周期的規律,完成各個階段的任務,才能最終提高畢業設計的質量。
3.4重視文檔的寫作
軟件工程中的瀑布模型嚴格地規定了在整個軟件生命周期的各個階段,都要提交相應的文檔。文檔不僅記錄軟件開發過程中的大量信息,在軟件的開發、維護過程中也起著重要的作用。在指導學生畢業設計時,要求學生遵照軟件工程的思想,把文檔作為整個設計的指揮棒,記載設計過程的每一階段完成的目標、任務及技術手段,建立健全畢業設計文檔制度,確保畢業設計過程中的文獻綜述、譯文、任務書、開題報告、選題審題表、中期檢查表、設計(論文)正文、答辯記錄等各環節教學資料檔案完善、規范,實現對畢業設計的全程監控。
4結束語
軟件工程是軟件開發工程化、規范化的具體實施方法,將其應用到畢業設計中,不僅有助于學生對軟件開發相關知識的鞏固和實踐,而且對解決目前軟件開發類畢業設計中存在的問題,提高學生畢業設計質量,具有極大的促進作用。
作者:王曉 王長波 單位:湖北醫藥學院 公共管理學院計算機教研室
一、利用多方資源做好畢業設計選題與立題工作
恰當的選題是做好畢業設計的必要條件和前提。近年來,隨著信息技術高速發展,國家對高素質軟件工程人才需求十分旺盛,并有逐年擴大的趨勢。同時各個高校軟件工程專業的招生數量也在逐年增加,從目前全國319所設有軟件工程專業的學???,2013年該專業平均招生300人左右。專業招生人數的增多給畢業設計選題帶來了帶來巨大挑戰:一方面軟件工程專業的畢業設計選題要求具有一定的應用價值、創新性,同時還要與行業需求相吻合;另一方面要保證選題的唯一性,不僅要避免學生之間的題目重復,還要避免與之前畢業生的題目重復,因為重復的選題會使學生產生投機的心理,導致“打醬油”現象。針對上述問題,黑龍江大學軟件學院主要采取了以下幾個措施:1.充分利用企業資源,對一部分在企業實習的學生采取“三位一體”的雙導師指導模式。即企業項目為載體,學生為主體的模式,校內和校外導師為主導。這部分學生一般是在大三下學期暑假就已經進入企業實習,而我們每年畢業設計選題工作是在十一月末,也就是學生進入企業實習后三到四個月的時間,學生經過企業階段的培訓,對企業的生產過程、企業文化有了一定的了解。此時,學院組織校內外導師和學生共同協商,以企業項目或子項目為學生確定畢業設計選題。2.充分發揮導師的資源優勢,學院大部分教師都有自己的科研課題,這些科研課題有些是直接來源于企業的橫向課題,還有一些是信息技術領域的應用研究課題,我們鼓勵教師從這些課題中提取出一些子項目讓學生實踐,作為畢業設計的選題。3.充分挖掘學生的專業技術特長和興趣點并結合學生的擇業傾向,確定最能發揮自身優勢和潛能的選題。畢業設計的選題不僅要與實際需求相結合,更重要的是應該結合學生自身的技術優勢和興趣。只有學生對選題有興趣,他們才能盡早地進入狀態,發揮自己的創造能力和積極主動意識。所以,選題階段導師和學生的溝通交流就顯得尤為重要,通過溝通導師可以了解學生的能力、興趣和擇業傾向,學生也可以對選題,有進一步的認識,對于不感興趣的選題學生也可以通過與導師進一步的探討進行題目的修訂。
二、注重環節審查,加強過程監管
雖然“好的開始是成功的一半”,但是如果缺乏中間環節的監管,仍然不能保證好的效果[4]。因此,為保證畢業設計(論文)的質量,我們制定了明確的質量標準、管理條例,并由院長、學術委員會、系主任和教務辦主任組成畢業設計(論文)工作委員會,負責畢業設計(論文)工作的組織、評定和監管,同時保證管理條例的嚴格落實及各個環節工作的正常進行。為健全畢業設計(論文)的監管機制,學院先后規范和完善了《畢業設計(論文)工作管理辦法和實施細則》《開題報告》《開題評分標準》《中期報告》《中期檢查標準》《畢業設計(論文)撰寫規范及模版》《畢業設計(論文)盲審表》《答辯程序和評分標準》等一系列管理辦法和文檔標準,使畢業設計工作在制度和規范下能順利有效地進行。每年畢業設計工作之初,我們都要給學生開一個動員會,在會上闡明畢業設計(論文)的重要性,以及畢業設計對他們未來工作的影響,調動他們學習的主動性、積極性和創造性。此外,系主任還要向學生介紹學院畢業設計(論文)管理辦法和實施細則,各階段的工作要求和時間節點,以及各環節檢查的內容、需要提交的文檔,使學生在畢業設計開始時能做到心中有數。同時,我們也要求指導教師隨時解答學生的問題,堅持每周開例會,檢查學生的工作完成情況,并提出一些有技術含量和理論深度的問題啟發他們思考,激發他們的學習熱情,并與學生一起確定后續任務。此外我們組織開題檢查、中期檢查,對開題檢查成績后30%的學生,不但檢查中期報告,還要現場檢查程序。對于中期檢查不合格的學生,要求限期整改,如果仍然不合格則取消答辯資格。在答辯之前,我們還要對論文進行盲審,盲審不合格的學生不允許答辯,對有異議的論文要提交學術委員會做最后論證。雖然學院對畢業設計(論文)工作在各個環節上的審查都非常嚴格,但我們鼓勵學生之間進行研討交流,博采眾長,相互提高,因為我們的目的不是抓出多少不合格的學生,而是想通過大學階段最后的綜合性實踐教學環節訓練,培養學生的學習能力、知識的綜合運用能力、分析解決問題能力和溝通交流等綜合素質。
三、嚴把答辯關,保證畢業設計質量
答辯是畢業設計(論文)考核階段的最后環節,這個環節既是學院對學生畢業設計的驗收和鑒定,同時也是學生對自己工作的總結和匯報。通過答辯,學生不僅展示了畢業設計工作的效果,更展示了自己的專業知識、技術水平和綜合素質。作為教師,每年都要指導多個畢業設計(論文),而學生一生只能經歷一次本科畢業設計,而且畢業設計答辯能否順利通過,直接關系到學生畢業及學位資格的認定。因此對學生來講,畢業答辯至關重要。這有點像外科醫生與患者的關系:醫生每年要做很多手術,對他們而言手術已是司空見慣,但對于患者本人,可能一輩子才上一次手術臺,而且生命攸關。所以,我們要在畢業設計指導過程中,認真對待每一位學生。同時在畢業答辯中嚴格把關,保證質量,更要秉承“公開“”公正”“公平”的原則。我們的畢業設計(論文)答辯采用小組面試形式,每組由四位副高職以上教師組成,答辯流程如圖1所示。答辯當天向學生公布成績,畢業設計(論文)總成績由開題成績(10%)、中期成績(10%)、指導教師成績(10%)、答辯成績(70%)構成。對于優秀的和不及格的學生,我們還會重新組建答辯組進行二次答辯。這是考慮到答辯組之間認同度的差異而導致評分標準出現偏差,可能有些答辯組打分會偏低,有的組打分會偏高,即各個答辯組評分信度不能達到一致。二次答辯可以有效地消減組間評分差異,從而使申報校優秀論文人選和未通過人選的確定做到公正、公平和有效。針對軟件行業特點,我們通過強化實踐教學環節,合理利用多方資源拓寬畢業設計(論文)選題途徑、健全和完善畢業設計(論文)的監管機制等手段,確保了畢業論文質量的穩步提高。幾年來,黑龍江大學軟件學院的畢業設計(論文)質量受到校內外專家的一致好評,獲校優秀論文比率一直位于學校前列。實踐證明,加強畢業設計(論文)質量的監管,不但提高了學生工程實踐能力、獨立科研能力和創新意識,為學生進入工作崗位打下了良好的基礎,進而也提升了學生的就業率。
作者:任美睿 金英 郭龍江 單位:黑龍江大學
1軟件工程在畢業設計中的作用
軟件工程不僅是計算機科學與技術專業、軟件工程專業的一門專業基礎核心課程,也是其他相關專業,如信息工程、系統工程、信息與計算機科學、信息管理與信息系統等專業的重要應用技術課程。對于這些專業的學生來說,畢業設計多是以軟件開發類項目為主,整個畢業設計就是開發一個軟件。為了更好地完成軟件開發類畢業設計,提高學生畢業設計的質量,進一步規范畢業設計中的軟件開發過程是必需的。軟件工程的思想正是用工程化方法構建和維護有效的、實用的和高質量的軟件。按照軟件工程思想,軟件開發的生命周期分為可行性分析、需求分析、總體設計、詳細設計、編碼實現、軟件測試和軟件維護幾個階段。在學生的畢業設計中以軟件工程的思想為主線,從軟件工程的角度去指導學生進行畢業設計,挖掘軟件工程在系統開發過程中的價值,解決畢業設計中存在的一些問題,既有助于學生更好地理解軟件工程的方法、技術和思想,更有助于提高軟件類畢業設計的質量。
2畢業設計中存在的問題
筆者在指導學生軟件開發類畢業設計過程中發現,畢業設計存在著選題難、任務重、重視編碼、輕過程、項目無法完成等現象。設計過程中沒有嚴格地遵循軟件工程的開發方法,沒有規范的軟件設計過程,項目能否成功主要依賴于個人能力和個人努力,這種不正確的開發方法帶來了嚴重的后果。在項目開發的過程中常常存在以下幾個方面問題:
2.1選題的盲目性
選題是畢業設計過程中的一個初始環節,選題恰當是做好畢業設計的前提,但選題不當的情況仍然時有發生。學生沒有認識到畢業設計的重要性,純粹是為了完成學業而做畢業設計,選題沒有一個確切的目標,往往是隨便選一個題目,造成選題的盲目性,出現了選題陳舊、選題范圍狹窄、選題偏大等問題,使學生抄襲、完成不了畢業設計的情況時有發生。
2.2缺少軟件的系統分析
軟件開發過程的第一個階段是系統分析,用來確定軟件開發要解決的問題是什么?估算完成該項目需要的資源和成本,確定目標系統應該具備哪些功能,主要經歷問題的定義、可行性分析和需求分析三個階段。軟件的系統分析確定了用戶需求,同時對目標系統提出完整、具體的要求,引導開發者正確地構建系統。因此,對用戶需求做出全面、正確的分析,對于最終軟件開發類畢業設計的成敗起著至關重要的作用。然而在完成畢業設計過程中,學生往往認為代碼編寫最重要,對軟件開發過程中的可行性分析和需求分析階段不重視,甚至沒有系統分析,對整個畢業設計的完成造成了影響。
2.3軟件設計過程雜亂無章
軟件設計一般都要經歷可行性分析、需求分析、總體設計、詳細設計、編碼和測試階段。而部分學生在畢業設計開發的過程中,缺乏軟件工程設計思想,跨越需求分析、概要設計、詳細設計和功能模塊設計,直接進行代碼的撰寫;或者從代碼反推出模塊設計;甚至在軟件開發過程中,一邊寫程序,一邊了解需求,程序完成了需求才確定。這種無序的軟件設計過程,導致最終設計的系統雜亂無章、代碼的重復率高、潛在?Bug多、系統的可集成性非常差、不能在規定時間內完成設計或者系統無法運行。
2.4開發過程中文檔不完備
根據軟件工程學的基本原理,軟件=程序+文檔,可見軟件文檔是軟件開發過程中不可缺少的組成部分。軟件文檔貫穿于軟件開發的各個階段,是提高軟件產品開發效率、規范軟件產品開發過程、保證軟件產品質量的關鍵。但在實際畢業設計中,很多同學認為把程序代碼編出來了,畢業設計也就完成了,提交的畢業設計論文就是系統代碼的復制,即只做出一個可演示可操作的系統,而忽略了軟件開發的完整性、系統性。完整的畢業設計不僅包括可操作的系統,還包括在開發系統的過程中所產生的各個文檔資料。文檔的缺失會降低軟件開發的效率、影響整個軟件的開發、使用和維護。以上問題的存在,嚴重影響了畢業設計的進度和質量,沒有達到畢業設計的目標要求。針對當前畢業設計的現狀和存在不足,筆者認為應用軟件工程學的思想指導畢業設計,對促進學生綜合素質與工程實踐能力培養具有積極意義。
3用軟件工程思想指導學生進行畢業設計
3.1以可行性研究指導選題
可行性研究的目的是用最小的代價在盡可能短的時間內確定問題是否能夠解決。畢業設計題目的選擇,應立足于解決工程實際問題,可由指導教師提供符合相關專業畢業設計要求的題目,也可以鼓勵學生自己到社會、生產企業中尋求研究課題,培養他們自主學習的意識。選題過程以可行性研究為指導,從課題規模大小、難易程度、學生自己的研究方向、愛好、學生的知識層面和能力等多個方面進行考慮,對于選擇的題目是否能夠解決,確定在規定的時間內完成畢業設計的可行性。指導教師可根據學生選報的題目來指導學生對該選題進行調查研究,明確課題要解決的問題是什么,簡要地寫出關于問題性質、項目目標和項目規模的書面報告??尚行匝芯縼碇笇М厴I設計的選題,實質上是簡化了系統分析和設計的過程,也是在較高層次上以較抽象的方式進行的系統分析和設計的過程,使學生對于課題的設計有個清晰的思路,為及時完成畢業設計提供了可能。
3.2重視軟件的需求分析
需求分析的基本任務是準確地回答“系統必須做什么”,即確定系統必須完成哪些工作,也就是對目標系統提出完整、準確、清晰、具體的要求,不僅指明了系統設計時必須要實現的目標,也是軟件設計、實現、測試和維護階段的主要參考標準。用戶需求的獲取是軟件開發中最重要、難度最大的工作,它貫穿于整個軟件設計過程,不僅要涉及到軟件開發方面的知識、應用領域方面的知識,還涉及到與用戶溝通的能力。在進行需求獲取和分析時,為了及時、準確地獲取,可采用軟件工程中比較成熟的方法,例如訪談、實際調查、UML的用例技術等。需求分析在軟件系統分析與設計階段起著橋梁的作用,確定了系統的需求,才能制定出軟件設計的框架,保證畢業設計循序漸進、有條不紊地進行,避免后期開發過程的頻繁返工,進而按時完成最終的任務。
3.3規范畢業設計過程
軟件開發類畢業設計一般是開發一個軟件系統,實現一定的功能?!奥槿鸽m小,五臟俱全”,無論軟件規模的大小、功能的多少,都應該嚴格按照軟件工程中軟件生命周期每個階段的步驟完成各項任務。要培養學生把軟件工程的概念貫穿于整個畢業設計過程,也就是說,讓學生把開發軟件的過程看成是蓋一棟大樓,修一條公路的實際工程,用工程化的思想指導畢業設計,確定完成課題的各項任務的工作步驟,注重軟件類畢業設計的過程,而不是學生所認為的畢業設計就是編程序,代碼調試通過即可。通過工程的概念規范畢業設計過程,讓學生明白開發一個軟件系統一般經過系統分析、系統設計、系統實施三個階段,必須嚴格遵循軟件生命周期的規律,完成各個階段的任務,才能最終提高畢業設計的質量。
3.4重視文檔的寫作
軟件工程中的瀑布模型嚴格地規定了在整個軟件生命周期的各個階段,都要提交相應的文檔。文檔不僅記錄軟件開發過程中的大量信息,在軟件的開發、維護過程中也起著重要的作用。在指導學生畢業設計時,要求學生遵照軟件工程的思想,把文檔作為整個設計的指揮棒,記載設計過程的每一階段完成的目標、任務及技術手段,建立健全畢業設計文檔制度,確保畢業設計過程中的文獻綜述、譯文、任務書、開題報告、選題審題表、中期檢查表、設計(論文)正文、答辯記錄等各環節教學資料檔案完善、規范,實現對畢業設計的全程監控。
4結束語
軟件工程是軟件開發工程化、規范化的具體實施方法,將其應用到畢業設計中,不僅有助于學生對軟件開發相關知識的鞏固和實踐,而且對解決目前軟件開發類畢業設計中存在的問題,提高學生畢業設計質量,具有極大的促進作用。
作者:王曉王長波單位:湖北醫藥學院公共管理學院計算機教研室
1組織方式
實際上,上述選題機制是將分散的畢業設計引導形成基于團隊的角色學習環境,學生在教師的統一帶領下,對項目進行設計并劃分模塊,獨立負責不同模塊的開發,并且在教師的指導下,充分體驗不同模塊之間的溝通和集成問題,使學生能夠貼近企業項目開發的實際情境,體會到實際項目身臨其境的感覺,從而提高畢業設計對于畢業生的鍛煉價值和質量。
敏捷宣言認為人和交互勝過過程和工具。以此原則為指導,在畢業設計實施過程中,要求學生組內成員和小組之間加強交流溝通,對于畢業設計過程中產生的文檔,要求學生著重記錄交流過程,而非交流結果。敏捷宣言認為客戶合作勝過合同談判,意義在于業務人員應該參與到項目開發的整體過程中,達到整個項目開發團隊能夠把握項目開發方向。對于軟件工程畢業設計來說,意味著在選擇畢業設計所涉及到的項目原型時,應盡量貼近學生實際,例如選擇教務管理系統、教學管理系統、圖書管理系統等學生經常接觸和使用的應用系統,或是指導教學正在從事的橫向或縱向課題。要求選擇指導教學或學生自己能夠扮演客戶的角色,學生對于所開發的系統的需求了然于胸。
2管理方式
敏捷宣言認為可以工作的軟件勝過面面俱到的文檔,可以工作的軟件是進度主要的度量標準。以此原則為指導,對畢業設計過程中要求撰寫的文檔可適當弱化,而是要求將項目程序代碼保存到統一版本庫,并保持版本庫中的代碼是可部署和運行的。極限編程的推薦實踐方式認為對于項目開發應該盡早測試、經常測試、自動測試。在畢業設計的實施過程中,要求學生對于測試計劃、測試用例及測試驅動開發(TestDrivenDevelopment,TDD)都有所了解,使用由學生指導教學編寫的自動測試來監控開發進度,支持系統的演化,并盡早發現缺陷。上述管理方式就現階段軟件工程專業的畢業設計來看,實施比較困難,但應盡力發展,從而彌補現有人才培養方案中對于軟件測試不夠重視的缺陷。
極限編程推薦增量設計、開發和頻繁重構。這也是畢業設計過程中應采納的做法。對于一個指定的項目,要貫穿整個畢業設計過程,以各個階段時間點為標志,要求學生以增量的方式來完善項目開發,在畢業設計過程中,要體現項目的漸進式開發,各個時間點都要求學生完成項目的相應部分,并且要求項目代碼的主版本隨時處于可部署、可運行狀態,對于系統架構和代碼結構等方面,可通過重構來優化。對于代碼重構的的粒度和頻率,可由指導老師根據實際情況具體把握,以模塊化和符合軟件設計模式等特征為參考依據。
3考核方式
鑒于以上組織和管理方式,在進行畢業設計(論文)考核時,應在傳統的畢業答辯環節考核基礎上,考慮以下因素:一是在畢業答辯考核時,要注重考查學生所寫代碼的功能,而不是形式上的開發文檔。二是極限編程推崇結隊編程(PairProgramming),因此,在畢業設計進行過程中要求學生不要局限于自己的畢業設計課題,而應該是兩個人一起完成兩個課題,雙方都參與到對方的項目中去。在畢業答辯考核時,也應采取相應的考核辦法,交叉檢查學生的編碼工作量。三是極限編程提倡短周期。也就是說,畢業設計過程中,應該交付多個可運行的系統版本(功能是遞增的,但指定功能的版本是可用的)。因此,在畢業答辯過程中,要求學生就系統的多個可運行版本進行演示??偠灾浖こ虒I的畢業設計(論文)的考核,除了依據傳統的畢業答辯考核標準之外,還需結合敏捷開發和極限編程的特點,綜合考查編碼協作、增量設計、測試驅動開發、持續集成等特征是否體現在學生畢業設計(論文)中。
典型過程及相關支撐工具
在確定指導老師和設計課題后,學生將展開畢業設計的具體過程,根據以AD和XP為指導思想的典型畢業設計過程,具體過程如圖1所示。以上典型過程中的具體步驟,都有成熟的支撐工具可選用,使整個畢業設計過程實現信息化管理,其中項目管理工具可使用PivotalTracker,測試管理工具可使用MercuryQualityCenter,自動測試可使用開源集成測試環境,如Jenkins,代碼管理工具可使用VisualSVN(服務器端)和TortoiseSVN(獨立客戶端)及SubclipseSVN(IDE集成客戶端)。
軟件項目管理工具PivotalTracker是由公認的敏捷軟件開發老大PivotalLabs開發的基于故事、簡單、有效、敏捷的軟件項目管理工具,適用于各類型的項目,并通過敏捷項目管理的理念讓項目能夠有條不紊的進行,使項目的開發效率大大提高。操作界面如圖2所示。
測試管理工具MercuryQualityCenter提供了基于Web的,可在廣泛的應用環境下自動執行軟件質量測試和管理的功能,使IT團隊能夠在開發流程完成前就參與應用程序測試。這樣將縮短時間表,同時確保最高水平的質量。操作界面如圖3所示。版本庫管理工具SVN是用于實現對代碼、文 件等的修改、刪除、增加等操作進行記錄,并且可以追溯每個修改細節的通用工具,它基于C/S架構,需要服務器和客戶端軟件,其中SVN服務器可以使用VisualSVN,獨立客戶端可使用ToitorseSVN,而IDE集成客戶端可使用Subclipse。
結語
軟件工程專業畢業設計具有鮮明的實踐特征,需要具體的實踐原則做為指導來提升畢業設計(論文)的質量。我們引入敏捷開發和極限編程的相關原則,構造軟件工程專業畢業設計的具體實施過程,并將其應用于實際教學過程中。下一步工作將對于這一全新的探索和嘗試,在實踐過程中針對具體出現的問題進行改進和完善,使這一畢業設計模式更加適用于軟件工程專業,并在條件成熟時向計算機相關專業推廣。
作者:曾志浩肖小克單位:湖南工業大學計算機與通信學院
規模使得精細化指導與管理變得困難
原有畢業設計環節管理由于參與指導的教師人數相對較少,每名教師指導的學生也不多,而且所有教師均為本系教師,大家彼此非常熟悉,在一起教學研討的時間也很多,所以大家對各環節的要求及約定比較容易統一,對每個學生的指導時間也較多。但隨著參與指導畢業設計教師數量的提升,指導學生數的增加,特別是聘請了外系教師的支援,原有會議討論式、心理記憶式的約定及規則已經不能適應管理要求。這就必然要求規范畢業設計環節的管理,統一考核指標,讓大家在一個統一的框架下實施畢業設計的指導與考核。
軟件過程及評價主觀性強
軟件及開發是個主觀性強,知識、勞動密集型工作,同一個項目或任務,由于每個人項目經歷、經驗的不同,不同的人所得出的滿足需求的合格產品是肯定有區別的,但在質量、靈活性、可擴充性方面可能存在很大差別。同時,對于軟件產品,不同人會有不同的評價,具有強主觀性的特點。這種強主觀性使得對畢業設計的評價難以用客觀的量化的評價指標和體系進行度量,對教師間把握統一的考核尺度制造了困難。
師生面對面交流機會越來越少
由于就業形式的變化,各本科院校的培養模式也作了一定的改變,為了讓學生能更方便的外出找工作,更早的接觸社會,大部分高校第八學期除了畢業設計,基本上就沒有其他的教學任務。重慶理工大學也存在類似情況,在第八學期,大部分學生沒有待在學校,有的在外聯系工作單位,有的提前到單位實習,甚至有的以在外找工作為借口待在家里,學生的分散性使得教師和學生之間面對面交流的機會少之又少,給畢業設計環節的指導和管理工作帶來了難度。
選題類型趨于多樣性
為了培養學生層次、方向的多樣化,軟件工程專業的畢業設計不僅只有傳統的系統分析、設計與開發類的題目,還涉及論文類及算法類等類別。根據對前幾屆畢業設計環節的綜合統計,系統分析設計開發類選題所占分量最多,占70以上。由于不同題型的畢業設計需要應用的知識、實施過程、考核重點都存在很大差異,不同題型之間的考核沒有對比性,因此需要針對不同的選題類型制定相應的考核指標和評價標準。
現有管理中存在的問題
畢業設計是一次綜合鍛煉學生應用所學知識解決問題能力的過程,涉及的環節比較多,存在的問題也不少。綜合分析,存在以下三個典型問題:
1歷史題目重復率高,抄襲現象難以控制
每年都有幾個班的學生畢業,畢業設計都要實施。在紙質時代,抄襲成本大,抄襲源也比較難找到,因此抄襲現象相對較少,不同屆學生的題目相同并不會影響畢業設計質量。然而,隨著互聯網技術在給廣大民眾帶來方便的同時,也給學生的偷懶提供了契機。由于大部分學生在外實習,教師很難有效的監督學生,有相當一部分學生考慮到自己畢業后不從事軟件開發等相關工作或工作比較忙,不愿意投入時間好好地完成畢業設計,而是從互聯網抄襲,甚至通過互聯網購買。
2學生對考核的公正性存在質疑
由于參與綜合實踐環節的學生人數和指導教師規模越來越大,綜合實踐環節在進行質量考核時必然要進行分組。由于大家沒有統一的考核指標體系及標準,同一水平的畢業設計處于不同考核小組,可能得出截然不同的成績;甚至有指導教師認為較好的論文在答辯時被判為不及格現象。造成的嚴重后果是學生對論文評審、答辯過程公平性的質疑,對學校的聲譽帶來不良影響。其原因是由于不同教師間、各不同小組之間缺乏一個統一的評判標準,分組的不均勻分布而導致了評審的不公平性。
3學生難以獲取實際需求
由于學生人數眾多,只有少部分學生能參與到教師的實際科研項目中,大部分學生只能以虛構的題目為背景,沒有具體的企業為依托。因此,很獲取項目的具體而詳細的需求,學生所完成的也只能是一些通用功能的系統,系統業務邏輯比較簡單,甚至基本沒有業務邏輯,僅僅是簡單增加、刪除、修改等功能的拼湊,不能真正體會到系統分析和設計的內涵。
軟件專業畢業設計管理對策
軟件工程專業畢業設計管理是很多高校都比較棘手的問題,也有不少教師已提出了一些很好的策略。根據對多年畢業設計執行情況的分析與總結,作者認為軟件工程專業畢業設計管理和考核中存在眾多問題的主要原因有以下三點:重結果輕過程的考核方法;缺乏統一的考核評價體系;管理過程不規范,隨意性大。因此,本文主要從建立量化考核指標體系、規范畢業設計過程管理和其他一些輔助策略進行探討,如圖1所示。
1建立量化考核指標體系
建立量化考核指標體系包括細化考核指標和建立考核評價體系兩部分??己酥笜梭w系是一把雙刃劍,它除了可以對學生的畢業設計過程和結果進行考核外,也給學生提供了完成畢業設計目標的指導。在實際操作中,將對畢業設計的考核從過程檢查、評閱、答辯等幾個環節進行考慮,各環節又有細分指標,如論文選題、工作量、分析設計,程序運行、系統界面、論文結構、熟悉程度等,用權重表示指標的重要性程度,每個指標有幾個不同得分等級,每個等級對應一個可參考的評判標準,從而將以前的主觀考核變為根據指標進行量化計算,有效地減少人為因素對評價的影響。
2規范畢業設計過程管理
傳統的考評方式重視對結果的考核,缺少對過程的考核,大多數學生在進行實踐環節任務時,沒有一個良好的系統分析、設計、開發習慣,完全是“靈感觸發”式的完成的,因此最終提交的往往是低劣的文檔或代碼。軟件產品是知識密集性產品,實踐證明,有效的過程管理是生產出好產品的一個必要條件。因此,必須規范畢業設計的課程管理,借助于3.1節建立的考核體系,對過程中的開題、需求文檔、設計文檔等關鍵環節進行考核,使學生在完成畢業設計的每一步時有明確目標的指導,通過過程的管理促使學生完成高質量的畢業設計成果。為了減少人為因素的影響,有必要建立畢業設計過程管理及控制系統,用管理信息系統規范畢業設計的過程管理。
3采用團隊培養模式
系統分析與設計的能力是軟件工程專業學生需要培養的一項最主要能力,而簡單的系統開發或項目由于功能簡單、業務單一,對鍛煉學生的系統分析和設計能力作用不大。因此,可以采用多名學生組團共同完成一項較復雜系統的方式,每名學生負責其中的一部分,學生之間通過對復雜點的業務邏輯的討論來提高系統分析和設計的能力,通過團隊合作來了解項目管理與軟件工程方法的精髓。
4與企業合作指導
由于企業面對的都是實實在在的項目,有自我學習的環境氛圍和壓力,在培養學生動手實踐能力方面有其獨特的優勢。在企業,每天都有相應的任務,在完成任務過程中,必然會碰到各種類型的問題,會尋求問題的解決方法,在解決問題的過程中很自然地就提升了自己的能力。這種任務驅動的學習方法和實際項目環境下的壓力在學校是很難提供的。近些年來,學院也在加強與企業的合作,在有條件的情況下盡量派學生深入到公司、企業進行實習,已簽約的學生也可以提前到簽約企業工作,以企業的項目來完成其畢業設計環節,實現企業、學校共同指導的方式。
結束語
畢業設計環節由于實踐性、綜合性強,涉及知識點多,其管理與考核一直是讓人頭疼的問題。論文描述了重慶理工大學軟件工程專業畢業設計環節的背景和現狀,指出了軟件工程專業畢業設計質量難于管理和考核的特點。通過對近幾年畢業設計開展情況的總結與分析,發現了畢業設計質量難于考核和控制的具體原因,并指出當前畢業設計管理和考核所存在的問題,最后提出了解決這些問題的一些具體實施策略。結果表明,策略的實施對畢業設計過程的管理及考核答辯工作有較大的作用,學生畢業設計質量有了顯著的提高。
作者:劉智王森閆河單位:重慶理工大學計算機科學與工程學院
摘要:針對地方應用型本科高校計算機軟件類畢業設計質量不高的問題,對畢業設計中存在的問題進行分析,并結合軟件工程的基礎理論,提出利用軟件工程思想對計算機軟件類畢業設計進行指導,以提高地方應用型普通本科高校畢業設計的質量。
關鍵詞:軟件工程;畢業設計;應用
一、引言
畢業設計是本科畢業生在校期間的最后實踐和綜合實訓階段,是實現本科教育培養目標的重要組成部分,是深化、拓展、綜合應用所學理論知識的重要過程;也是綜合素質與工程實踐能力培養效果的全面檢驗;是學生畢業及學位資格認定的重要依據;是衡量高等教育質量和辦學效益的重要評價,是對專業理論知識和專業技術綜合應用能力的強化訓練和提升[1]。在畢業設計的過程中,學生利用所學專業理論知識,通過了解社會,分析社會需求,深入實踐,完成畢業設計的任務和撰寫畢業論文(設計)報告等各個環節的工作。對于地方應用型普通本科高校而言,畢業設計就相當于一般高等學校的畢業論文,但是畢業設計不同于畢業論文,它的組成部分不只是一篇學術論文。應用型高校的畢業設計注重的是“應用性”和“實踐性”,學生畢業設計要求學生針對某一課題,綜合運用本專業有關課程的理論和技術,自己動手動腦做出解決實際問題的設計。目的是總結、檢查學生在校期間的學習成果,是評定畢業成績的重要依據。同時,通過畢業設計,可培養學生開發項目的基本綜合能力,為學生就業能力中的專業能力奠定堅實的基礎;培養綜合運用已有知識獨立解決問題的能力,從而加強學生應用能力的培養,使學生能夠學以致用。
二、地方應用型普通高校計算機相關專業學生畢業設計的現狀
近幾年來,由于學校對畢業設計要求不斷提高,學生從選題到設計再到寫出畢業設計報告的過程中總存在這樣那樣的問題,最終有個別同學沒有順利通過畢業設計,沒有拿到畢業證和學位證的情況時有發生,并且大多數畢業設計的水平不高,達不到培養學生獨立解決問題和提高學生應用能力的目的。因此,如何指導學生做好畢業設計,提高學生畢業設計水平和質量,是地方應用型普通高校面臨的一個重要問題。
(一)畢業設計選題現狀最近幾年,我校計算機相關專業畢業生自進入大四秋季學期開始,在進行畢業實習的同時,也進入了畢業設計準備階段:畢業設計選題,雖然畢業設計選題過程中,各級領導、指導教師和學生在態度是都很重視,但是在選題時也會存在很多的問題,主要有以下三個方面。1.選題不夠準確。部分學生選題未經深思熟慮,所選畢業設計題目要實現的功能太多,在規定時間內不能獨立完成,而最終只能實現部分功能,或部分模塊。
2.題目相似或重復雷同。學生選題存在渾水摸魚的思想,在畢業設計選題過程中不是根據自己的興趣愛好、專業知識學習情況等確定研究選題,而是選擇與他人類似或雷同的選題,甚至同一批畢業的許多學生選題一致。比如:“XX管理系統”等,除了可能冠以的系統名稱不同之外,其余基本相同。
3.應用價值低。部分學生的選題是當前十分成熟的項目,沒有研究的必要;有些選題已經被淘汰,在實際生活和工作中沒有多大用途。
(二)畢業設計需求分析階段現狀
通過調查,許多學生選題完成后,沒有對自己所做畢業設計選題進行仔細了解、分析,他們認為在畢業設計中最重要的就是編程,其他方面一帶而過[2],從而造成畢業設計過程中主題經常進行修改,最終使得整個系統雜亂無章,無法繼續進行下去。因此學生在畢業設計的需求分析階段主要有以下三個方面的問題。
1.選題后未進行實際調查研究,甚至未查找相應的參考文獻。
2.需求分析進行得不徹底、不準確,即使選題后查找了參考文獻和資料的,也未做充分了解和分析。
3.在需求分析階段沒有寫出需求規格說明書或系統分析報告就匆忙進入系統設計階段,導致隨著系統設計的逐步深入,原來確定的需求不能滿足畢業設計的需要,正在進行的設計與開始的期望和設想又不相符。
(三)畢業設計系統設計階段現狀
在系統設計階段,普遍存在以下兩個方面問題。
1.由于需求的不明確,在進行系統設計時,修改隨意,沒有嚴格按照軟件開發的步驟進行。好多學生在進行系統設計時并沒有建出相應的功能模型,不管是用例圖還是DFD圖都沒有,而且系統設計過程中功能隨意變換,并且各功能模塊的層次結構不清晰,使得整個系統的功能模塊劃分凌亂,不符合軟件設計中“高內聚,低耦合”的原則。
2.在軟件設計過程中,不先進行概要設計、詳細設計和模塊設計,沒有軟件的過程性描述,直接進行編碼,存在想到哪里就做到哪里,走到哪兒算哪兒的隨意思想[3],當前內容沒有做完便開始其他內容,使得整個系統設計雜亂無章。在這樣的一種研究狀態下,即使完成了設計,效率也非常低下,軟件結構混亂,功能實現不完全,降低了軟件設計的質量。
(四)畢業設計實現階段現狀
通常把編碼和測試統稱為實現。在進行軟件設計后,就可以根據設計結果來實現,將軟件的過程性描述編碼,得到計算機可以運行的源代碼。在實現階段主要有以下幾方面的問題。
1.編碼隨意。學生在編碼的過程中,不注意編程風格的把握,導致程序的可讀性、可理解性、可修改性等較差,在答辨的過程中,要求指出某個功能模塊的代碼時,經常要花費很多時間才找得到。
2.測試和調試可有可無。大部分學生在畢業設計的軟件編碼完成以后,從沒有想過進行完整的系統測試,或者只對個別功能進行測試或是隨意測試,沒有按照測試步驟逐步進行;基本沒有單元測試和集成測試,一般只是最終隨便輸入幾個數據簡單檢測一下,如果有錯,修改了就算完了;也沒有進行回歸測試,沒有測試計劃,沒有想過用什么測試技術來檢測某一類型的錯識,沒有相應的測試用例,也沒有測試結果分析。由于學生畢業設計都是一人一題,基本上是一個人完成所有步驟,就算有測試,在測試階段也是自己進行測試,從心理學的角度來說,自己對自己開發的軟件進行測試是不可取的。由于前面階段的文檔不完善,也不重視測試過程,不清楚是否實現了系統最初設計的功能,是否達到相應的性能要求,總以為程序做出來后畢業設計就完成了,使得畢業設計經常在更換運行環境或答辯時發生錯誤和問題,從而使得設計得不到好評甚至無法通過。
(五)畢業設計應用現狀
最近幾年,我校計算機相關專業畢業設計投入使用數量接近于零。究其原因主要是由于設計不完全,未進行測試和調試,存在的錯誤和缺陷較多,文檔和數據不完整,導致所開發的系統或軟件不能方便地轉讓、變更、修正、擴充和使用,也沒有為后期培訓、維護留下完備的資料;因此,不能投入到真正的使用過程中,也不能實現系統或軟件產品的效益。
三、軟件工程思想的應用
軟件工程(SoftwareEngineering,簡稱為SE)是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。軟件工程中的軟件生命周期是一個軟件從軟件定義、開發、運行和維護,直到最終被廢棄的整個過程[2]。地方應用型普通高校計算機相關專業學生畢業設計基本都是開發一些中、小型應用系統或軟件,因此,學生畢業設計也要經歷軟件生命周期各個階段,嚴格遵守軟件工程的各個原則,這樣有助于解決畢業設計中存在的問題,提高畢業設計的質量。通過對應用型普通本科高校計算機相關專業的學生在進行畢業設計的過程中存在的問題進行分析,在畢業設計的過程中,必須運用軟件工程的觀點、技術和方法來指導畢業設計,這樣既節約了畢業設計的時間和學生的精力,也能做出最優質的畢業設計。
1.選題過程中的應用。畢業設計選題就是軟件生命周期的問題定義中的問題提出階段,選好題目是進行深入研究的基礎,也是寫出高質量畢業論文的前提。地方應用型普通本科高校計算機相關專業的畢業設計選題必須做到以下幾點:(1)必須在對選題做了充分調查、分析,對檢索的參考文獻、資料有了整體把握的基礎上提出。(2)必須符合本專業培養方案規定的培養目標的要求。(3)以選擇工程性較強的課題為主,確保有足夠的工程性訓練。(4)要有明確的設計成果,對于較大型任務的課題要明確階段性成果。(5)要達到規定的工作量,難易度適中,確保能在規定的時間內完成整個課題工作。(6)要圍繞生產生活實際,所選題目一定具有一定的理論意義和實踐意義,具有一定的價值。(7)原則上一人一題,對于較大型任務的課題,每個學生必須有獨立子課題。結合以上幾點,分別從專業基礎、現實意義等方面進行全面分析,進行取舍,最終得出選題。
2.開題過程中的應用。在畢業設計的開題過程中,需要明確所選題目的選題依據(包括選擇課題的背景、選題研究的理論及實踐意義)、選題研究現狀(包括目前國內外對本選題的研究情況和有待解決的問題)、研究內容與方法,而這些就是軟件工程中需求分析階段應該做的事情。需求分析指的是在建立一個新的或改變一個現存的電腦系統時描寫新系統的目的、范圍、定義和功能時所要做的所有的工作[3]。因此開題過程中最重要的是進行需求分析,需求分析具有決策性、方向性、策略性的作用,在軟件開發的過程中具有舉足輕重的地位。需求分析完成的好壞直接影響后續軟件開發的質量。開題過程中需要指導學生大量地閱讀相關的研究資料,同時根據資料進行分析研究,對當前畢業設計的研究進度做到心中有數,明確畢業設計的具體方向,寫出畢業設計的研究內容與方法,得到相應的設計提綱,解決好設計什么,如何設計的問題。因此,應用好軟件工程的思想來指導畢業設計的開題是至關重要的。根據學校對學生畢業論文的要求,在計算機相關專業的畢業設計報告中,要求要有數據流圖、數據字典等相應內容,而軟件工程中的數據流圖(DataFlowDia-gram,簡稱DFD),它是從數據傳遞和加工角度,以圖形方式來表達系統的邏輯功能、數據在系統內部的邏輯流向和邏輯變換過程。它是描述系統中數據流程的圖形工具,它標識了一個系統的邏輯輸入和邏輯輸出,以及把邏輯輸入轉換為邏輯輸出所需的加工處理[3]。因此,在這個階段,要指導學生按照DFD圖的要求,確定設計的功能,然后根據系統分析結果寫出分析報告,就得出畢業論文中系統分析階段的初始文檔。
3.在實踐研究環節的應用。根據需求分析(開題階段)的結果進行軟件的概要設計和詳細設計,注意在設計過程中要嚴格按照軟件工程對于設計階段的指導原則來進行設計。將概要設計階段需求分析得到的DFD轉換為軟件結構和數據結構,即是根據需求確定軟件和數據的總體框架,設計出軟件的結構,也就是要確定系統中每個程序是由哪些模塊組成的,以及這些模塊相互間的關系。然后再進行詳細設計,設計出每個模塊的實現算法、所需的局部數據結構,并且對每個模塊寫出過程性描述;為每個模塊設計出一組測試用例,在進行測試時就以此測試用例來進行測試。詳細設計階段的任務還不是具體地編寫程序,而是要設計出程序的“藍圖”,以后將根據這個“藍圖”寫出實際的程序代碼。因此,指導教師要對學生的設計過程進行監督和指導,防止學生盲目的進行編碼。
4.在實現階段的應用。在編碼的過程中,要注意編程風格的把握,編程的風格在很大程度上影響程序的可讀性、可測試性和可維護性。在測試階段,可以進行交叉測試,即學生之間可以兩兩交叉,相互測試,以更好的達到測試效果,同時也培養了學生的團隊意識和合作意識。在測試過程中要注意運用軟件工程的測試原則和測試思想,嚴格按照單元測試集成測試確認測試系統測試驗收測試的測試步驟進行,利用白盒測試技術進行單元測試,黑盒測試技術進行其他測試,并且在找出錯誤并修改后要進行相應的回歸測試,確認修改了錯誤并且沒有引入新的錯誤,這樣有利于找到軟件中的各類錯誤,提高軟件的質量。因此,在軟件的測試過程中,一定要嚴格按照軟件工程中的測試原則來進行,不可隨意進行測試,并且要注意測試文檔資料的收集整理,要有相應的測試計劃和測試報告。對學生的創造性的思維和想法,指導教師要給予支持,積極引導,鼓勵學生大膽創新,用應用型人才培養目標來要求學生,保證高質量的畢業設計的完成。
5.在畢業論文(設計)報告方面的應用。對于應用型普通本科高校計算機相關專業的畢業設計而言,不單單是完成了一個系統的設計,還要有相應的設計報告,而設計報告的編寫過程中,很多學生存在文字表達能力不強的現象,為了完成報告,就有可能會抄襲,特別是在軟件開發的各個階段文檔材料不全的情況下更為嚴重。因此,在學生進行軟件開發的各個環節中,指導教師都應該按照軟件工程的觀點來進行指導,并要求學生在各個階段都完成相應的文檔。這樣在畢業設計報告撰寫的過程中,只要將各個階段的文檔進行合并、整理就得到相應的設計報告,并且是一篇重復率不高的高質量的設計報告。6.在畢業設計實際應用方面的應用。因為學生在整個系統或軟件過程中均按軟件設計規范準備了文檔和進行了完整的系統測試,從而為系統或軟件的專利申請提供了充分必要的資料,并為畢業設計的實際應用打下良好的基礎。
四、結語
計算機相關專業學生的畢業設計在學生的整個大學生活中具有極其重要的地位和作用,根據應用型普通本科高校人才培養的定位,主要是培養學生的獨立思考能力、動手能力和應用能力。通過對軟件工程思想在計算機相關專業學生畢業設計的過程及方法中的應用研究,逐步實現學生畢業設計的實際成果轉化,從而為應用型計算機相關專業人才培養提供相應的借鑒。
作者:龍亞 張仕學 余廷忠 單位:貴州工程應用技術學院
1概述
在應用型本科院校中,尤其是軟件工程專業,畢業設計作為教學計劃的重要組成部分,是實踐教學中的最后一個環節,也是對學生在校期間所學知識的一次綜合、全面的總結、應用和提高。由于畢業生數量的不斷增加和軟件行業的迅猛發展,導致就業門檻越來越高,就業壓力也越來越大,通過畢業設計過程中的訓練,能有效提高學生的工程應用能力,使學生得到一定的實踐經驗,有利于學生從學校向工作崗位的平穩過度。因此,畢業設計質量的好壞,不僅反映了一所高校的教學質量,也會直接影響到學生的就業競爭力和就業后的職場適應能力。
2存在的問題
1)思想認識上不夠重視學生方面:有些學生存在完成任務式的應付心里,避重就輕,能簡就簡,敷衍了事。有些學生則只重視找工作而輕視畢業設計,不愿在畢業設計上花費太多時間和精力,甚至有些學生還以找工作為由,完全依賴于導師,向導師索要源代碼,甚至花錢在網上購買來交差。已經找到工作的學生,更是認為畢業設計做的好與不好對自己沒什么影響,對待畢業設計也更加心不在焉。導師方面:大多數指導教師除了要指導學生畢業設計之外,還要承擔大量的教學和科研任務,在畢業設計指導工作上能夠投入的精力和時間非常有限,致使有些導師對畢業設計的指導工作不太重視,對學生放任自流,不管不問,或者是直接將相關源代碼發給學生,以“簡化”指導工作。由于思想上的不重視,學生學習態度不認真,導師指導工作不到位,造成畢業設計流于形式,疏于管理,效果較差,使得學生白白浪費了畢業前的一次綜合訓練機會。因此,如何充分認識畢業設計的重要性,并進行相應的教學改革是軟件工程專業畢業設計必須要面對并解決的問題。
2)時間安排上不夠科學畢業設計一般安排在第八學期,這期間剛好是學生求職和考研的黃金時間段,由于目前就業形勢的日益嚴峻,學生就業壓力越來越大,當求職和考研時間與畢業設計時間發生沖突時,學生都會選擇將主要精力投入到求職和考研上,有些還要去外地求職、應聘考試、面試等,畢業設計自然是無暇顧及。而且,學校方面,為了保證就業率,往往對學生畢業設計的質量也是睜一只眼閉一只眼,這又在無形中鼓勵了學生消極對待畢業設計的態度,畢業設計質量下降也就成為必然結果。
3)題目設置上不夠合理由于畢業設計在高校各類教學活動中是最具綜合性和獨立性的,相對于常規課程而言,對指導教師要求也就更高,尤其軟件工程專業,工程實踐性比較強,但每年真正來源于實際工程項目的題目所占的比例較小,很多題目都是虛構出來的,導致有些題目不是理論性太強,就是缺乏具體需求的支撐,使學生很難從畢業設計過程中真正領悟到真實的軟件工程方法。而有些指導教師自己都沒參與過實際的工程項目,本身就缺乏實踐經驗,對學生畢業設計的指導只是憑著自己的感覺來進行,缺乏系統性、整體性、科學性和嚴謹性,學生遇到問題后,難以得到及時的解決,導致抄襲現象時有發生,甚至有些學生直接照搬往屆畢業生的設計成果。畢業設計的主要目的在于通過畢業設計的訓練來提升學生對所學知識的綜合應用能力以及創新能力,從而實現學生從學校到工作崗位的平穩過度。但由于題目設置上的不合理,題量太少,層次不清,導致選題匹配效果差。在選題時,部分能力差的學生所選題目難度太大,造成畢業設計很難完成,而有些能力強的學生所選題目難度過小,達不到能力提升的目的。
4)過程監管上不夠到位眾所周知,對于軟件工程項目而言,過程控制與管理是項目執行的關注點,畢業設計也當如此。雖然學校也會在畢業設計過程中組織對各階段的工作情況進行檢查,但執行檢查工作的不一定是專業教師,使得這種檢查大多只是對指導老師所填寫的各種表格和文檔等表面內容進行檢查,對畢業設計的過程起不到實際的監督作用,再加之有些學生在校外求職或實習等原因造成指導教師與學生無法定期見面和溝通不暢等問題,使得指導教師難以用軟件工程方法對學生進行指導。畢業設計雖然啟動較早,但實際上很多學生前期在畢業設計上很少投入時間和精力,只是在答辯前為了完成任務而趕工應付,這樣的畢業設計質量自然也就不佳。
5)量化考核上不夠嚴格畢業設計成績一般由平時成績+論文成績+答辯成績三部分按一定比例構成,平時成績由指導教師自行把握,論文成績則由其他有經驗的教師進行評閱,答辯成績由答辯委員會老師按照相關評分標準打分并取平均分,這樣雖然基本可以保證成績的公正性,但成績構成太簡單,未顯示地將開題報告、文獻翻譯、分析和設計過程以及總結等納入到考核范圍,對畢業設計的前期和中期工作沒有約束力。在成績評定時,有些導師要求不嚴,采取寬容遷就的態度。答辯時,通過門檻較低,造成大部分學生僅以答辯及格為目標,在思想上不重視,答辯準備工作不扎實。同時,學校為了提高學生畢業率,在最終答辯時,對畢業設計的質量要求也有所放松,這也是導致畢業設計質量難以保證的一個重要原因。
3采取的對策
時間安排上,可以提前啟動畢業設計工作,將原來的第八學期開始提前到第六學期中后期,此時學生已經學完大部分課程,具有了一定的知識基礎,而且學生都在校,可以隨時與導師見面,指導教師也有充分的時間對畢業設計項目隨時跟進,隨時指導。導師資格審查上,對于軟件工程專業來說,學生畢業設計的導師,應該由長期從事實際工程實踐或者有較好科研成果的“雙師型”(雙師即“教師”、“工程師”)教師來擔任,也可以聘請校外科研單位或企業中水平較高的工程師來擔任企業導師,這樣不僅可以減輕指導教師短缺的壓力,也能促進指導教師隊伍多元化模式的形成。題目設置上,要求題量要充分,使得水平層次不同的學生都能選到合適的題目;難度和工作量要適中,且要有一定的創意,使學生通過畢業設計的訓練,在綜合應用能力和創新能力上都能夠得到有效的提高。有課題的指導教師要盡量結合自己的課題來設計題目,沒課題的指導教師可以從與學校有合作的企事業單位中獲取有實際意義的題目。鼓勵學生根據自己的興趣點和就業取向自擬題目,允許學生到實習企業中根據企業的實際工程需要選題和實施畢業設計,這樣既能解決實際問題又可完成畢業設計。過程監管上,首先要在指導教師和學生之間建立有效的溝通聯系機制和問題討論的例會制度,充分發揮指導教師的引導作用,在畢業設計過程中,堅持每周師生溝通一次。學生提出問題,指導教師引導和總結,鼓勵學生發揮主觀能動性和創造力。同時,學校要成立由領導牽頭、具有一定工程實踐經驗的專業技術人員組成的督導組,對畢業設計過程包括選題、開題、中期檢查、答辯和成績評定等各個環節實施有效的監控和督導,加強管理學生的同時也要加強對指導教師工作質量的檢查,確保畢業設計工作能夠有序、有效的實施。量化考核上,要對畢業設計從前期的開題、文獻查閱,到中期的分析、設計、實現,再到后期的總結等各個階段的進行量化考核,前一階段的成績考核不合格者,不能進行下一階段工作,必須加以整改,直到整改合格后才能進入下一階段。對于未能按要求如期完成畢業設計的可以推遲答辯,對于首次答辯不合格的可以進行二次答辯,仍不合格的,可以緩發畢業證。只有建立嚴格的考核制度,才能對學生有約束力,讓學生從思想上重視畢業設計,進而保證畢業設計的質量。
4結束語
軟件工程是一個實踐性很強的專業,軟件工程專業的畢業設計作為大學四年學習的總結,是學生從學??缛肷鐣皟H有的一次大檢驗,它不僅檢驗了學生對所學知識的綜合應用能力和學生的綜合素質,同時也檢驗了學校的培養模式和教學質量。畢業設計質量的好壞,不僅關系到軟件工程專業的培養目標,也關系到學生的就業率與就業質量。因此,在就業形勢日趨嚴峻的情況下,軟件工程專業畢業設計的教學改革也要適應就業市場需求,緊跟行業發展變化,與時俱進。
作者:張華 單位:南陽理工學院
一、軟件工程專業畢業設計存在的主要問題
(一)畢業設計題目設置與選題方面
題目設置不合理,類別與層次不清晰,選題匹配效果差[2]。學生的畢業設計課題一般都按照指導老師的研究方向和實際工程項目提供,但每年真正來源于工程實踐題目比例較少。部分題目理論性強,學生根據所學知識不能很好理解;部分題目開發工具復雜,占用了畢業設計的大部分時間。在選題時可能導致學生想選的題目選不上,能力差的學生所選題目難度大,影響學生的積極性,導致選題效果差,造成畢業設計很難完成。
(二)畢業設計過程監控方面
畢業設計監控工作實施困難,效果較差。軟件工程專業畢業設計一般包含選題、開題、中期檢查、程序測試、撰寫畢業論文、答辯、成績評定。但對這些環節的監控有時候會形成空白帶,畢業設計不在實驗室進行,有的學生在實習單位實習,有的學生在外地找工作,老師不能定時與學生見面,老師無法了解學生的具體情況,且學生提交的各階段文檔流于形式,只有指導教師在進行監控,未形成完善的監控體系,導致監控不到位,監控效果較差[3]。
(三)畢業設計論文答辯方面
答辯考核方法單一,答辯僅由學生的講解和老師的提問兩個環節組成,考核準確度低。答辯通過門檻較低,答辯只對學生的畢業設計進行排名,一般排名在最后的學生才可能不及格,不利于提高學生畢業設計積極性,造成大部分同學僅以答辯及格為目標,思想上不重視,答辯準備工作不扎實。再由于軟件工程專業特點,畢業設計軟件作品評分標準難于量化,考核具有一定難度,也造成答辯效果不好。同時為了提高學生畢業率和就業率,畢業答辯的質量控制有所放松,直接導致了軟件工程專業畢業設計質量難以保障。
二、軟件工程專業畢業設計的教學改革
針對上述各項實際問題,主要進行的相關工作具體如下:
(一)合理設置畢業設計題目,動態選題
依照軟件工程專業的以市場需求為導向,培養應用型軟件工程人才的培養目標,在畢業設計題目設置環節,緊緊圍繞工程實際型、創新項目型、競賽題目型、科研項目型等類型進行題目設置,以適應市場動態需求。同時著力避免在畢業設計題目中設置虛擬型題目、理論研究型題目、綜述型題目、分析設計型題目等。在選題過程中,通過畢業設計管理系統(如圖1所示)進行多輪雙向動態選擇,動態調整題目各項技術參數以保證學生能選擇一個適合自己能力且能有利于自己以后工作的題目[4]。這樣,在選題之后,每個指導老師就可以根據學生不同能力進行分別指導,使不同能力的學生都能夠運用其所學知識解決工程實際問題,都能夠通過畢業設計增強工程實踐能力、工程設計能力與創新能力。近四學年軟件工程專業畢業設計各類題目匯總。
(二)畢業設計過程實行三級監控管理機制
學校成立以主管副校長為組長的畢業設計工作領導小組以加強畢業設計宏觀調控,學院成立以教學副院長為組長的畢業設計工作領導小組以加強畢業設計協調與監控工作,軟件工程專業成立以專業負責人為組長的畢業設計工作小組落實并實施畢業設計各環節具體工作[2]。具體參見下圖2。在實現畢業設計過程管理的三級管理機制的同時,為保障畢業設計工作質量,軟件工程專業要求所有指導教師必須具有中級以上技術職稱或碩士以上學位且有一定工程實踐經驗,具有較高教學、科研水平和創新能力,師德良好,工作態度認真負責。在每年的畢業設計指導工作開始前都對指導教師進行資格審查,擇優任用,且每位教師指導的學生不超過6人,以保證指導教師對學生的充分指導[5]。
(三)畢業設計過程量化考核
以往軟件工程專業畢業設計成績通常由三部分組成:一是學生的平時表現由指導老師把握;二是學生的畢業論文成績。由專業其他指導老師進行評閱;三是現場答辯成績。由所在組的指導教師按照相關評分標準打分并取平均分。這樣基本能夠保證畢業設計成績的公正,但是由于只有畢業答辯環節具有約束力即答辯未通過則總成績不及格,其他環節不具約束力,因此造成畢業設計前期、中期工作流于形式,前期、中期階段提交的文檔趨于應付、質量不高,最終導致畢業論文質量較低[6,7]。為此,軟件工程專業經過幾年的探索與實踐,實施了畢業設計各階段的軟件工程生命周期量化考核法即各個階段量化考核,且考核成績不合格者不能進行下階段畢業設計工作,必須加以整改,整改通過后才能進入下一階段畢業設計工作。經過幾年的實踐證明該考核方法切實可行,能夠保證畢業設計各個環節的質量,最終提高畢業設計總體質量。
(四)在畢業設計過程中進一步提高學生工程能力與創新能力
遼寧工業大學于2011年制定并實施了大學生創新團隊機制,建立了大學生創新項目申報機制引導大學生開展創新活動;引導學生每年都參加校級、省級、國家級軟件設計大賽等各類各級比賽[8]。隨著學校和學院創新教育活動多年持續深入開展,軟件工程專業學生的創新與創業活動取得了顯著成果。超過1/4的軟件工程專業學生能夠獨立主持創新性項目,并以該項目為原型申報畢業設計題目[9],同時參加省級、國家級計算機競賽并獲得獎項。通過主持校級及省級創新項目既畢業設計題目,學生工程能力、創新能力得到極大鍛煉與提高,本專業畢業生就業率與就業質量明顯提高。軟件工程專業學生主持參加創新項目既畢業設計題目情況見表3。
三、結束語
軟件工程專業畢業設計是一個極具綜合性、實踐性的重要環節,是對學生大學四年學習后面向社會與企業前的有且僅有的一次大檢驗,它不僅檢驗了學生所學知識、能力與綜合素質,還檢驗了軟件工程專業的培養目標、培養模式、課程體系、實踐體系、創新體系等相關環節[10]。經過幾年的探索與實踐證明,軟件工程專業所做的系列教學改革工作中的畢業設計教學改革工作有利于進一步增強學生的工程實踐能力和創新能力,有利于提高軟件工程專業畢業設計質量,有利于提高軟件工程專業學生就業率與就業質量。雖然軟件工程專業畢業設計教學改革工作取得了一定的成績,社會認可度逐年穩步提高,但如何動態調整教學計劃以跟進市場需求變化;如何深入開展大學生創新創業教育活動以進一步增強更多軟件工程專業學生的實踐能力及創新能力;如何進一步加強專業教師工程實踐能力、工程設計能力與工程創新能力以提高畢業設計指導效力;如何提高畢業設計過程管理效率等問題仍然是軟件工程專業所面臨的嚴肅課題[11]。因此,軟件工程專業的畢業設計教學改革工作也一定會緊跟時代變化,與時俱進。
作者:佟玉軍謝文閣王恩喜劉鴻沈姜悅嶺工作單位:遼寧工業大學電子與信息工程學院
摘要:針對地方應用型本科高校計算機軟件類畢業設計質量不高的問題,對畢業設計中存在的問題進行分析,并結合軟件工程的基礎理論,提出利用軟件工程思想對計算機軟件類畢業設計進行指導,以提高地方應用型普通本科高校畢業設計的質量。
關鍵詞:軟件工程;畢業設計;應用
一、引言
畢業設計是本科畢業生在校期間的最后實踐和綜合實訓階段,是實現本科教育培養目標的重要組成部分,是深化、拓展、綜合應用所學理論知識的重要過程;也是綜合素質與工程實踐能力培養效果的全面檢驗;是學生畢業及學位資格認定的重要依據;是衡量高等教育質量和辦學效益的重要評價,是對專業理論知識和專業技術綜合應用能力的強化訓練和提升[1]。在畢業設計的過程中,學生利用所學專業理論知識,通過了解社會,分析社會需求,深入實踐,完成畢業設計的任務和撰寫畢業論文(設計)報告等各個環節的工作。對于地方應用型普通本科高校而言,畢業設計就相當于一般高等學校的畢業論文,但是畢業設計不同于畢業論文,它的組成部分不只是一篇學術論文。應用型高校的畢業設計注重的是“應用性”和“實踐性”,學生畢業設計要求學生針對某一課題,綜合運用本專業有關課程的理論和技術,自己動手動腦做出解決實際問題的設計。目的是總結、檢查學生在校期間的學習成果,是評定畢業成績的重要依據。同時,通過畢業設計,可培養學生開發項目的基本綜合能力,為學生就業能力中的專業能力奠定堅實的基礎;培養綜合運用已有知識獨立解決問題的能力,從而加強學生應用能力的培養,使學生能夠學以致用。
二、地方應用型普通高校計算機相關專業學生畢業設計的現狀
近幾年來,由于學校對畢業設計要求不斷提高,學生從選題到設計再到寫出畢業設計報告的過程中總存在這樣那樣的問題,最終有個別同學沒有順利通過畢業設計,沒有拿到畢業證和學位證的情況時有發生,并且大多數畢業設計的水平不高,達不到培養學生獨立解決問題和提高學生應用能力的目的。因此,如何指導學生做好畢業設計,提高學生畢業設計水平和質量,是地方應用型普通高校面臨的一個重要問題。
(一)畢業設計選題現狀
最近幾年,我校計算機相關專業畢業生自進入大四秋季學期開始,在進行畢業實習的同時,也進入了畢業設計準備階段:畢業設計選題,雖然畢業設計選題過程中,各級領導、指導教師和學生在態度是都很重視,但是在選題時也會存在很多的問題,主要有以下三個方面。
1.選題不夠準確。部分學生選題未經深思熟慮,所選畢業設計題目要實現的功能太多,在規定時間內不能獨立完成,而最終只能實現部分功能,或部分模塊。
2.題目相似或重復雷同。學生選題存在渾水摸魚的思想,在畢業設計選題過程中不是根據自己的興趣愛好、專業知識學習情況等確定研究選題,而是選擇與他人類似或雷同的選題,甚至同一批畢業的許多學生選題一致。比如:“XX管理系統”等,除了可能冠以的系統名稱不同之外,其余基本相同。
3.應用價值低。部分學生的選題是當前十分成熟的項目,沒有研究的必要;有些選題已經被淘汰,在實際生活和工作中沒有多大用途。
(二)畢業設計需求分析階段現狀
通過調查,許多學生選題完成后,沒有對自己所做畢業設計選題進行仔細了解、分析,他們認為在畢業設計中最重要的就是編程,其他方面一帶而過[2],從而造成畢業設計過程中主題經常進行修改,最終使得整個系統雜亂無章,無法繼續進行下去。因此學生在畢業設計的需求分析階段主要有以下三個方面的問題。
1.選題后未進行實際調查研究,甚至未查找相應的參考文獻。
2.需求分析進行得不徹底、不準確,即使選題后查找了參考文獻和資料的,也未做充分了解和分析。
3.在需求分析階段沒有寫出需求規格說明書或系統分析報告就匆忙進入系統設計階段,導致隨著系統設計的逐步深入,原來確定的需求不能滿足畢業設計的需要,正在進行的設計與開始的期望和設想又不相符。
(三)畢業設計系統設計階段現狀
在系統設計階段,普遍存在以下兩個方面問題。
1.由于需求的不明確,在進行系統設計時,修改隨意,沒有嚴格按照軟件開發的步驟進行。好多學生在進行系統設計時并沒有建出相應的功能模型,不管是用例圖還是DFD圖都沒有,而且系統設計過程中功能隨意變換,并且各功能模塊的層次結構不清晰,使得整個系統的功能模塊劃分凌亂,不符合軟件設計中“高內聚,低耦合”的原則。
2.在軟件設計過程中,不先進行概要設計、詳細設計和模塊設計,沒有軟件的過程性描述,直接進行編碼,存在想到哪里就做到哪里,走到哪兒算哪兒的隨意思想[3],當前內容沒有做完便開始其他內容,使得整個系統設計雜亂無章。在這樣的一種研究狀態下,即使完成了設計,效率也非常低下,軟件結構混亂,功能實現不完全,降低了軟件設計的質量。
(四)畢業設計實現階段現狀
通常把編碼和測試統稱為實現。在進行軟件設計后,就可以根據設計結果來實現,將軟件的過程性描述編碼,得到計算機可以運行的源代碼。在實現階段主要有以下幾方面的問題。
1.編碼隨意。學生在編碼的過程中,不注意編程風格的把握,導致程序的可讀性、可理解性、可修改性等較差,在答辨的過程中,要求指出某個功能模塊的代碼時,經常要花費很多時間才找得到。
2.測試和調試可有可無。大部分學生在畢業設計的軟件編碼完成以后,從沒有想過進行完整的系統測試,或者只對個別功能進行測試或是隨意測試,沒有按照測試步驟逐步進行;基本沒有單元測試和集成測試,一般只是最終隨便輸入幾個數據簡單檢測一下,如果有錯,修改了就算完了;也沒有進行回歸測試,沒有測試計劃,沒有想過用什么測試技術來檢測某一類型的錯識,沒有相應的測試用例,也沒有測試結果分析。由于學生畢業設計都是一人一題,基本上是一個人完成所有步驟,就算有測試,在測試階段也是自己進行測試,從心理學的角度來說,自己對自己開發的軟件進行測試是不可取的。
由于前面階段的文檔不完善,也不重視測試過程,不清楚是否實現了系統最初設計的功能,是否達到相應的性能要求,總以為程序做出來后畢業設計就完成了,使得畢業設計經常在更換運行環境或答辯時發生錯誤和問題,從而使得設計得不到好評甚至無法通過。
(五)畢業設計應用現狀
最近幾年,我校計算機相關專業畢業設計投入使用數量接近于零。究其原因主要是由于設計不完全,未進行測試和調試,存在的錯誤和缺陷較多,文檔和數據不完整,導致所開發的系統或軟件不能方便地轉讓、變更、修正、擴充和使用,也沒有為后期培訓、維護留下完備的資料;因此,不能投入到真正的使用過程中,也不能實現系統或軟件產品的效益。
三、軟件工程思想的應用
軟件工程(Software Engineering,簡稱為SE)是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。軟件工程中的軟件生命周期是一個軟件從軟件定義、開發、運行和維護,直到最終被廢棄的整個過程[2]。地方應用型普通高校計算機相關專業學生畢業設計基本都是開發一些中、小型應用系統或軟件,因此,學生畢業設計也要經歷軟件生命周期各個階段,嚴格遵守軟件工程的各個原則,這樣有助于解決畢業設計中存在的問題,提高畢業設計的質量。通過對應用型普通本科高校計算機相關專業的學生在進行畢業設計的過程中存在的問題進行分析,在畢業設計的過程中,必須運用軟件工程的觀點、技術和方法來指導畢業設計,這樣既節約了畢業設計的時間和學生的精力,也能做出最優質的畢業設計。
1.選題過程中的應用。畢業設計選題就是軟件生命周期的問題定義中的問題提出階段,選好題目是進行深入研究的基礎,也是寫出高質量畢業論文的前提。地方應用型普通本科高校計算機相關專業的畢業設計選題必須做到以下幾點:(1)必須在對選題做了充分調查、分析,對檢索的參考文獻、資料有了整體把握的基礎上提出。(2)必須符合本專業培養方案規定的培養目標的要求。(3)以選擇工程性較強的課題為主,確保有足夠的工程性訓練。(4)要有明確的設計成果,對于較大型任務的課題要明確階段性成果。(5)要達到規定的工作量,難易度適中,確保能在規定的時間內完成整個課題工作。(6)要圍繞生產生活實際,所選題目一定具有一定的理論意義和實踐意義,具有一定的價值。(7)原則上一人一題,對于較大型任務的課題,每個學生必須有獨立子課題。結合以上幾點,分別從專業基礎、現實意義等方面進行全面分析,進行取舍,最終得出選題。
2.開題過程中的應用。在畢業設計的開題過程中,需要明確所選題目的選題依據(包括選擇課題的背景、選題研究的理論及實踐意義)、選題研究現狀(包括目前國內外對本選題的研究情況和有待解決的問題)、研究內容與方法,而這些就是軟件工程中需求分析階段應該做的事情。
需求分析指的是在建立一個新的或改變一個現存的電腦系統時描寫新系統的目的、范圍、定義和功能時所要做的所有的工作[3]。因此開題過程中最重要的是進行需求分析,需求分析具有決策性、方向性、策略性的作用,在軟件開發的過程中具有舉足輕重的地位。需求分析完成的好壞直接影響后續軟件開發的質量。開題過程中需要指導學生大量地閱讀相關的研究資料,同時根據資料進行分析研究,對當前畢業設計的研究進度做到心中有數,明確畢業設計的具體方向,寫出畢業設計的研究內容與方法,得到相應的設計提綱,解決好設計什么,如何設計的問題。因此,應用好軟件工程的思想來指導畢業設計的開題是至關重要的。根據學校對學生畢業論文的要求,在計算機相關專業的畢業設計報告中,要求要有數據流圖、數據字典等相應內容,而軟件工程中的數據流圖(Data Flow Diagram,簡稱DFD),它是從數據傳遞和加工角度,以圖形方式來表達系統的邏輯功能、數據在系統內部的邏輯流向和邏輯變換過程。它是描述系統中數據流程的圖形工具,它標識了一個系統的邏輯輸入和邏輯輸出,以及把邏輯輸入轉換為邏輯輸出所需的加工處理[3]。因此,在這個階段,要指導學生按照DFD圖的要求,確定設計的功能,然后根據系統分析結果寫出分析報告,就得出畢業論文中系統分析階段的初始文檔。
3.在實踐研究環節的應用。根據需求分析(開題階段)的結果進行軟件的概要設計和詳細設計,注意在設計過程中要嚴格按照軟件工程對于設計階段的指導原則來進行設計。將概要設計階段需求分析得到的DFD轉換為軟件結構和數據結構,即是根據需求確定軟件和數據的總體框架,設計出軟件的結構,也就是要確定系統中每個程序是由哪些模塊組成的,以及這些模塊相互間的關系。然后再進行詳細設計,設計出每個模塊的實現算法、所需的局部數據結構,并且對每個模塊寫出過程性描述;為每個模塊設計出一組測試用例,在進行測試時就以此測試用例來進行測試。詳細設計階段的任務還不是具體地編寫程序,而是要設計出程序的“藍圖”,以后將根據這個“藍圖”寫出實際的程序代碼。因此,指導教師要對學生的設計過程進行監督和指導,防止學生盲目的進行編碼。
4.在實現階段的應用。在編碼的過程中,要注意編程風格的把握,編程的風格在很大程度上影響程序的可讀性、可測試性和可維護性。
在測試階段,可以進行交叉測試,即學生之間可以兩兩交叉,相互測試,以更好的達到測試效果,同時也培養了學生的團隊意識和合作意識。
在測試過程中要注意運用軟件工程的測試原則和測試思想,嚴格按照單元測試集成測試確認測試系統測試驗收測試的測試步驟進行,利用白盒測試技術進行單元測試,黑盒測試技術進行其他測試,并且在找出錯誤并修改后要進行相應的回歸測試,確認修改了錯誤并且沒有引入新的錯誤,這樣有利于找到軟件中的各類錯誤,提高軟件的質量。因此,在軟件的測試過程中,一定要嚴格按照軟件工程中的測試原則來進行,不可隨意進行測試,并且要注意測試文檔資料的收集整理,要有相應的測試計劃和測試報告。對學生的創造性的思維和想法,指導教師要給予支持,積極引導,鼓勵學生大膽創新,用應用型人才培養目標來要求學生,保證高質量的畢業設計的完成。
5.在畢業論文(設計)報告方面的應用。對于應用型普通本科高校計算機相關專業的畢業設計而言,不單單是完成了一個系統的設計,還要有相應的設計報告,而設計報告的編寫過程中,很多學生存在文字表達能力不強的現象,為了完成報告,就有可能會抄襲,特別是在軟件開發的各個階段文檔材料不全的情況下更為嚴重。因此,在學生進行軟件開發的各個環節中,指導教師都應該按照軟件工程的觀點來進行指導,并要求學生在各個階段都完成相應的文檔。這樣在畢業設計報告撰寫的過程中,只要將各個階段的文檔進行合并、整理就得到相應的設計報告,并且是一篇重復率不高的高質量的設計報告。
6.在畢業設計實際應用方面的應用。因為學生在整個系統或軟件過程中均按軟件設計規范準備了文檔和進行了完整的系統測試,從而為系統或軟件的專利申請提供了充分必要的資料,并為畢業設計的實際應用打下良好的基礎。
四、結語
計算機相關專業學生的畢業設計在學生的整個大學生活中具有極其重要的地位和作用,根據應用型普通本科高校人才培養的定位,主要是培養學生的獨立思考能力、動手能力和應用能力。通過對軟件工程思想在計算機相關專業學生畢業設計的過程及方法中的應用研究,逐步實現學生畢業設計的實際成果轉化,從而為應用型計算機相關專業人才培養提供相應的借鑒。
摘要:就業是民生之本。做好高校畢業生就業工作,是建設人力資源強國和創新型國家的必然要求。黨的十八屆三中全會明確提出要“健全促進就業創業體制”,“促進以高校畢業生為重點的青年就業”。在對軟件工程畢業生市場需求進行分析的基礎上,本文主要介紹本科生的就業現狀,并對促進畢業生就業的舉措做出一些探索。
關鍵詞:軟件工程專業;畢業生就業;舉措
自高校擴招后,我國畢業生的數量逐年增加,高校畢業生就業問題成為重大的社會問題。2014年,高校畢業生數量達到創紀錄的727萬人,應屆畢業生的就業壓力之大可想而知。加之,我國軟件工程技術起步比較晚,相較于國外發達國家還有相當大的差距。雖然起步較晚,但我國政府正在大力支持中國軟件行業的發展,短短幾年,已經開發出屬于我國自有知識產權的軟件技術,制定出一系列的符合國情的政策和發展計劃,取得不小的成功。
一、軟件工程專業的就業前景分析
1.畢業生市場需求分析。相關數據研究表明,我國軟件出口規模達到215億元,軟件從業人員達到72萬人,軟件工程專業畢業生的市場需求約計11.1萬人,職業需求在“電氣信息類”中排名第三。軟件工程人才的就業前景十分廣闊,畢業生主要在各大軟件公司、企事業單位、高等院校、研究所、國防等重要部門從事軟件開發、研究、設計與應用等工作。目前,我國對軟件人才的需求以每年20%左右的速度增長,而高校計算機畢業生中的軟件工程人才還很缺乏,尤其是高素質的軟件工程人才極度短缺。就業前景最好的地區集中在北上廣等沿海地區。巨大的人才缺口不僅使IT行業“全線告急”,更使得IT企業求賢若渴,重金搶購。未來幾年,國內外高層次的軟件人才將供不應求。根據學校招生就業處歷屆本科畢業生校內招聘用人需求統計資料,2012~2013學年由學校主辦的雙選會、集團專場、日常招聘等各類招聘活動中,共計有1123個崗位需要軟件工程類畢業生,2013~2014學年共計有1234個崗位需要軟件工程類畢業生,用人需求漲幅接近10%。
2.招聘要求及薪酬待遇分析。目前IT企業對IT人才有四項素質要求,即專業技能、項目經驗、權威認證和高等學歷。超過80%的IT企業對用人學歷有要求,其中要求為大學及以上學歷的崗位占到46%,超過70%的用人單位希望求職者有一定的工作經驗。如果單純地講就業,專業技能與項目經驗則是核心要素,是企業最為看重以及個人在企業日后發展的關鍵因素。軟件工程專業相關職位屬于高薪崗位,據國家統計局的調查顯示,2015年第一季度,在國有經濟單位中,信息傳輸計算機服務和軟件業的平均勞動報酬最高,達到6300元人民幣。據來校招聘單位所提供的薪資水平,可以看出:軟件工程崗位的具體薪資待遇在地域間又有些許差異,一級城市(如北上廣等城市)初-高級軟件工程師的待遇在4000~9000之間,內地其他省會城市(例如山西?。┮话阍?000~6000之間。隨著畢業生從業年限的增加,勞動報酬也呈線性增長,從業年限在6~7年間的軟件工程畢業生,月薪資可達到1萬元以上。
二、軟件工程專業的就業現狀
1.畢業生數量逐年增加,對IT人才的需求標準逐漸提高,應屆本科畢業生就業面臨著嚴峻的挑戰。首先,IT行業就業情況最好的地區集中在北上廣等幾個發達地區,從北京、上海、廣州等大型城市近幾年對IT人才的招聘情況來看,這幾所城市對軟件工程類畢業生的招聘標準逐年呈現出“水漲船高”的趨勢。很多企業鐘情于有一定工作經驗且學歷較高的碩士生、博士生等高端人才,因為他們能夠迅速進入工作角色,承擔起某一職位的工作任務。正因如此,近兩年來,一些雖有高學歷但剛畢業尚無就業經驗的畢業生則被拒之于求職門外。其次,省內IT行業發展不成熟,企業提供的就職崗位較少,而省內軟件工程專業畢業生人數較多,考慮到地域問題、戶口遷移問題,部分畢業生更愿意選擇省內企業,加大省內軟件工程的就業壓力。再次,中部地區的軟件行業相比其他地區還處于發展階段,目前我省的軟件行業規模不是很大,在軟件制作上,有些軟件企業只是采用了一些軟件工程的思想,距離大規模的工業化大生產還有一定的差距,這其中有管理體制、市場、政策等問題。
2.畢業生繼續奮戰考研、考公務員、考事業單位率持續上升,大學生在擺脫就業壓力和個人追求方面有新的認識。學院2014屆未就業的畢業生選擇“繼續考研”、“繼續考公務員”的比例分別占未就業畢業生人數的28%、11%。隨著就業壓力的增大,越來越多的大學生想通過考研緩解就業壓力。一些畢業生認為讀研可以提高自己的專業修養,在學術上更上一個臺階。一些畢業生認為考研除了學歷上更高一層次外,在單位就職時的工資基準也會相應地高一些,甚至有助于找個更好的就業單位。綜合來看,在巨大的就業形勢面前,考研是畢業生根據個人的職業規劃及自身實際情況做出的取舍。參加國考、公務員考試及事業單位招考的人數率創下新的紀錄。這與國人求穩的心態不無關系,更多的人看重的是上述單位的福利待遇好、社會地位高等。總之,畢業后選擇暫不就業,繼續參加各類招考的學生占未就業畢業生的很大比重。
3.畢業生進行就業選擇時多持觀望的保守態度。學院領導長期以來高度重視畢業生的就業工作,利用校內、校外實訓基地平臺,積極聯系知名IT企業及實訓單位,通過與企業多種模式合作、組織招聘會等方式,拓寬畢業生的就業渠道,大力促進畢業生就業工作。針對畢業生舉辦“IT人才專場招聘會”等多場招聘活動,大力創造就業環境,積極拓展畢業生就業工作新領域。與此形成鮮明對比的是,多數畢業生在擇業就業過程中謹小慎微,在工作過程中也會對所選企業的各個方面提出質疑,多持觀望的保守態度。“今天就是先來看看,不著急簽約”、“以后招聘會的單位會越來越好”、“還想再看看”,不少畢業生對企業拋來的“橄欖枝”并不上心。
三、主要舉措及努力方向
1.以提升創新精神、實踐能力和創業意識為重點,創新人才培養模式,提高人才培養質量。深化教育教學改革,提高人才培養質量。學院先后召開專題教育教學工作會議,并從人才培養模式、課程制度改革、教學秩序規范、資源投入保障等各個方面制定并出臺一系列的改革舉措,進一步完善創新人才培養體系,保障人才培養質量的提升。重視創新創業教育,著力培養學生的創新精神和創業意識。學院長期以來一直重視大學生的創新創業教育,不斷促進教學改革和教育質量的提升,推動大學生高質量就業。學院逐步推動創新創業課程體系建設,把創業基礎課程、就業指導課程列入必修課,并在校內建立山西省共享式軟件人才實訓基地,設立多個實踐創新項目,增強畢業生的就業意識和就業能力。利用校內、校外實訓基地及校企聯合研究室,進一步改善學生實踐教學,著力培養學生的創新精神和創業意識,更好地實施人才培養模式,不斷促進教學改革和教育質量的提升,為提升畢業生的就業能力提供保障。
2.面向行業需求,創新就業服務模式,引導畢業生“頂天立地”地就業。著力擴大就業市場覆蓋度,挖掘行業重點單位需求,拓寬畢業生就業渠道。學院堅持畢業生“走出去”的就業方針,將保證畢業生就業需求作為根本出發點,針對提高畢業生的就業能力、層次和質量的任務,充分利用校外實訓基地,積極為畢業生搭建就業平臺,大力創造就業環境。學院積極聯系知名IT企業及實訓單位,通過與企業多種模式合作,積極聯系用人單位,舉辦專場招聘活動,拓寬畢業生就業渠道,大力創造就業環境,積極拓展畢業生就業工作新領域,為用人單位招聘提供精細、“一站式”服務,對地處欠發達地區的重點單位實行分類服務。依托學校軟件學院硬件設備優勢,為不能到場的企業和單位提供遠程實時的在線視頻招聘,積極開展用人單位滿意度調查,統計用人單位和畢業生對本院人才培養和就業工作的滿意度,切實使就業工作服務于人才培養全過程。著力加強就業工作保障度,為實施高質量和均衡就業戰略“保駕護航”。加大政策引導力度,落實專項經費。利用新媒體推進網絡化就業指導教育,使學生多渠道捕捉就業信息,強化擇業就業意識,做好擇業定位并進行合理的職業規劃,實現理想就業。開展“一幫一”活動,對就業有困難的畢業生建立學困生檔案,進行重點指導、重點服務。建立“畢業生回訪與發展跟蹤制度”,了解畢業生所學專業與社會需求的契合度,不斷增強就業指導人員的服務意識和責任意識。
3.以保證畢業生充分、高質量就業為目標,完善就業工作機制,構建就業工作常態化。實施“一把手”工程,將就業工作列入年度工作要點。成立由學院院長、書記、副書記、輔導員、學習導師、專業教師和班主任組成的就業工作組,配合學校建立校、院、班三級體系,為就業工作提供組織支撐。落實“三個到位”,為就業工作提供有力保障。認真做到就業中心專職工作人員穩定、專職工作經費穩定,積極爭取社會贊助,建立關于畢業生與用人單位的服務中心,有效保證就業工作的開展。健全制度體系,為就業工作夯實基礎。積極貫徹落實學校出臺的就業規章制度,根據實際需求出臺完善學院的就業規章制度,為就業工作夯實基礎。
摘要:分析國內高校在軟件工程課程零置上的側重點以及軟件職業技術資格考試內容,提出以SWEBOK V3中知識域的要求為課程內容基礎框架,基于畢業生的產出能力導向進行教學大綱、知識內容和考核方式改革,通過監控學生成績對課程教學效果進行分析和長期持續改進。
關鍵詞:產出導向;軟件工程;課程改革
1 背景
作為軟件工程專業的主要核心課程,軟件工程課程一直很受關注,圍繞著課程教學所進行的教學改革也比較多。目前,正在各高校進行的工程教育專業認證是我國為推進工程教育改革、提高工程教育質量、建立工程教育與工程師制度銜接、提高工程教育對產業發展的適應性和提高我國工程技術人才的國際競爭力所做的一項合格性評價,在給高校工程教育帶來發展契機的同時也提出了對教育理念、教學過程管理、教學內容更新換代等方面的挑戰和調整要求。
2 課程現狀
目前,國內高校軟件工程課程使用的教材主要有張海藩《軟件工程導論》、鄭人杰《實用軟件工程》和國外翻譯版《軟件工程》。教學內容主要有軟件工程概況、可行性研究、需求工程、傳統的軟件設計、面向對象設計、編碼、軟件質量與保證,項目計劃與管理、軟件開發工具與環境等。軟件工程是一門強調實踐的綜合性工程課程,各高校在具體課程安排上各有側重。
例如,復旦大學(54學時)的課程重點首先是結構化分析與設計、面向對象的分析與設計,這兩部分內容超過了1/4總學時;其次是軟件測試和軟件項目管理,分別約占總學時的1/6;課程特色在人機界面設計和Web工程上。清華大學(48學時)把面向對象方法UML和RUP作為重點,占總學時的近1/3;其次是結構化分析與設計,占總學時的1/4;軟件過程及軟件工程管理是另一重點,通過學生合作小組或參與項目組進行軟件開發,在實踐中理解軟件過程的意義和作用,培養軟件項目管理的意識和能力。浙江大學(理論32學時、實踐32學時)重點講述軟件工程的常用方法,包括分析模型的建立、總體設計、軟件測試等,其特色是網絡應用軟件的開發方法和實踐,通過從需求單位抽取出的大型模擬案例進行項目開發,鍛煉學生的系統設計、開發、談判、溝通、寫作、團隊合作等能力,培養學生的工程職業素養。
通過對國內幾所高校課程教學特點的分析,我們發現目前國內高校軟件工程課程主要以理論知識教學為主,雖然有的院校做到了實踐與理論并重(1:1),但是大多數院校還是以理論知識教學為主。課堂教學以講述概念性基礎知識為主,課程的內容主要有面向對象的分析設計、軟件測試和項目管理,對新知識、新技術和新工具介紹較少,目前軟件工程課程更像是一門導論課程。
3 面臨問題分析
3.1 工程專業畢業要求對課程的影響
工程專業畢業生應具備足夠的溝通能力、合作能力、專業知識技能、終身學習能力及人格、國際視野和責任感等能力素質,這些素質要求可以保證學生畢業進入職場前具備基本的職業素養和從業能力。產出導向是工程教育認證中重點關注的部分,課程體系設置、師資隊伍建設和外部條件配備均以有利于學生達到培養目標和畢業要求為導向。畢業要求反作用于課程設置,要求課程的內容建設、教學方法改進、過程監督以及成績考核都應圍繞這一要求,細化產出導向的要求和能力指標,設置相應知識點并調整各自的重要性比例,從知識點授課和實踐能力兩方面落實能力培養,達到畢業產出的要求。
3.2 與軟件工程課程相關的專業技術資格考試分析
工程教育認證是將來國家注冊工程師制度的基礎和重要環節,目前我國已經在土建、環境、核安全等領域開展試點工作,實現了對工程人才的社會評價及國際間人才資格互認。在我國,與軟件工程課程相關的全國性考試還有計算機技術與軟件專業技術資格(水平)考試,由國家人力資源和社會保障部、工業和信息化部領導,對全國計算機與軟件專業技術人員進行職業資格、專業技術資格認定和專業技術水平測試。筆者對與軟件工程課程相關的資格考試內容進行解析,以軟件設計師為例進行重點分析,見表1。
從表1分析內容可見,軟件工程基礎考試內容。與課程教學大綱知識點一致,在信息安全知識和標準化知識上給出新增內容,這與SWEBOK2013知識體系一致??荚嚳颇俊败浖O計”以上述知識為基礎,考查工程師的實際工作能力。在最近幾次考試中有考題涉及數據流圖、UML圖的應用分析,與課程授課側重點也相符,更側重于實例的應用能力,需要實踐積累與運用。
3.3 SWEBOK V3和課程對應關系分析
軟件工程專業的課程體系是基于軟件工程知識體系SWEBOK(software engineering body ofknowledge)、計算機教程軟件工程卷(computingcurriculum-software engineering,CCSE)及其中的軟件工程教育知識體(soft engineering educationknowledge,SEEK)而建立起來的。2014年,IEEE計算機協會了軟件工程知識體系指南第3版,該版將原來的10個知識域擴展到15個,與現有軟件工程課程大綱的比較結果見表2,其中有分布到其他課程中的知識點未加以說明。新增和修改的相關知識點需要在軟件工程課程教學和實踐環節落實。
4 基于產出導向的軟件工程課程改革與建設
4.1 課程教學目標修訂
基于上述分析,我們進行基于產出導向的軟件工程課程改革和建設。課程教學以使學生掌握軟件工程的理論基礎知識和基本工作原理,培養學生具有工程問題需求分析的能力以及綜合運用計算機科學和工程技術完成系統設計、實施和維護的能力為目標。課程的主要任務是使學生掌握軟件開發過程的理論、方法、技術標準以及計算機輔助工程和環境等知識并通過實驗靈活應用;掌握軟件工程的基本概念、軟件開發模型、開發過程的管理和質量控制;掌握需求分析的任務與原則,傳統面向對象需求分析方法、設計過程與一般性概念以及文檔的編寫;掌握程序設計方法,增強編程實踐訓練,掌握軟件測試技術與糾錯性軟件維護方法;掌握UML建模技術,能在軟件工程過程中使用常用建模工具,能運用建模方法解決工程實際問題;了解專業開發活動涉及的標準、方針、政策和法律、法規,能正確認識實施軟件工程對客觀世界和人類社會的影響。
4.2 教學內容和教學方法改進
根據畢業產出要求及SWEBOK V3新修改版,我們對教學內容作如下調整:①在64學時課時中,將理論與實踐課時設定為1:1;②在需求分析和設計部分新增人機界面和系統安全知識;③獨立介紹軟件復用部分知識,結合軟件設計模式討論軟件可復用性;④在軟件質量保證和項目管理部分新增軟件產品標準和行業標準、國內外法律和法規;⑤在軟件維護部分新增軟件退役和遷移。
每一章都提供參考資料,教師引導學生有選擇地閱讀其中的部分內容,根據課程內容的進展情況布置相應的任務、思考題和作業,引導學生通過Intemet或其他途徑查閱相關資料以拓寬知識面,了解軟件工程領域最新實踐研究成果。為了使學生建立起軟件開發和維護的工程化意識,較系統地掌握按照工程化思想開發與維護軟件的方法和技術,教師需在教學中培養學生從軟件企業開發和維護實際大中型軟件的角度出發,結合成本、風險、效益、進度、過程、質量等多種因素系統地分析軟件開發和維護過程中的問題,突破以往要求完成某一給定知識點作業的單一思考問題局限。此外,構造實驗環境用于課內工程項目實踐,通過模擬項目的開發,鍛煉學生的系統設計和開發能力、軟件工具的使用能力、語言交流能力、文檔編寫能力以及團隊合作能力,培養學生的職業素養。項目實踐引導需貫穿理論知識學習始終。
4.3 考核方式與持續改進并行
課程強調過程考核,總成績分為平時和期末兩部分,分別占50%。平時成績主要考核學生的課堂表現、作業、實驗能力和實驗報告撰寫情況等。其中,課堂表現主要從學生上課是否專心聽講、回答教師提問是否正確以及分組討論是否積極、正確、有獨特見解等進行考核,以提高課堂教學效果和運用工程基礎知識及本專業基本理論解決實際工程問題的能力;作業方面重點考核學生掌握軟件工程理論基礎知識和基本工作原理的程度;課內實踐教學環節重點考核學生的工程問題需求分析和設計能力,綜合運用計算機科學和工程技術完成系統的分析和設計并對設計文檔進行審查的能力;期末考試將按照課程教學目標全面考核學生課程學習的效果,選取一定數目的學生成績為樣本,計算該課程對畢業要求貢獻的達成度并通過建立閥值定量評估課程教學質量,通過不斷提出持續的改進意見并實施,切實加大課程對提高畢業產出能力的貢獻。
5 結語
筆者基于畢業生產出能力對課程教學目標進行了修訂,完善了軟件工程課程的教學內容和知識結構,對教學方法進行了梳理,最后通過改變考核方式對課程進行長期監控和調整,實現課程的持續改進。下一步工作將重點關注課程中學生自主能力導引體系和畢業生能力評價反饋機制的構建。(編輯:宋文婷)
摘 要: 為應對畢業生就業難與軟件企業人才招聘難的兩難局面,對我院按照“卓越工程師培養計劃”培養的第一批本科應屆生展開了基于電子問卷的跟蹤調查。通過分析學生就業情況及其所在單位需求情況,以及畢業生的就業反饋,討論研究了現有培養方案、教學體系和課程改革存在的問題與不足,以期為后續進一步深入實施“卓越工程師培養計劃”提供幫助。
關鍵詞: 畢業生跟蹤調查; 卓越工程師培養計劃; 軟件工程
0 引言
從20世紀90年代開始,我國的高等教育飛速發展,本科畢業生數量也迅速增加,軟件類人才培養也逐漸從精英教育走向了大眾化階段。與此同時,畢業生就業難與軟件企業人才短缺的矛盾逐漸突顯。一方面,畢業生的就業形勢相當嚴峻,2013年更被稱為“最難就業年”,就業人數將近700萬,其中軟件類(含計算機類)畢業生約占了23%[1];另一方面,用人單位難以招到適應不斷變化市場需求的高水平人才,畢業生質量與企業、社會期望值之間出現了較大差距。
解決上述矛盾的重要途徑之一是跟蹤調查學生走向社會的工作表現和持續發展狀況,調整、改革高校教學體系及模式。近年來,國內高等院校逐漸重視開展畢業生的跟蹤調查與反饋工作。通過了解畢業生的就業情況、工作表現、對學校學習經歷評價及招聘企業人才需求情況等信息,反思、完善和改革人才培養體系、培養方案、教學模式以及就業指導工作模式[2]。本文以杭州電子科技大學軟件工程學院為例,通過對2013屆按照卓越工程師培養計劃培養的50余名畢業生進行跟蹤調查所獲得的數據信息,結合本校實際,反思卓越工程師人才培養的可改進之處,為制定科學、高效的卓越工程師培養策略奠定基礎,從而更好地為培養符合市場需要的高層次軟件人才提供服務。
1 畢業生跟蹤調查對卓越工程師培養的重要性
“卓越工程師教育培養計劃”(簡稱“卓越計劃”)2010年由教育部聯合相關部門和行業協會提出,要求各高校與行業企業聯合培養工程技術人才,強化培養學生的工程實踐能力、工程設計能力和工程創新能力。該計劃旨在培養造就一大批創新能力強、適應經濟社會發展需要的高質量各類型工程技術人才,為國家走新型工業化發展道路、建設創新型國家和人才強國戰略服務,對促進高等教育面向社會需求培養人才、全面提高工程教育人才培養質量具有十分重要的示范和引導作用。中國成功加入華盛頓協議組織也有力地證明了這一點。
高校作為落實“卓越計劃”的主體,需認真領會和深刻理解卓越計劃的指導思想、主要目標、總體思路和基本原則,更重要的是需結合自身實際條件和優勢,制定“卓越工程師后備人才”培養的具體要求和措施,細化培養目標和培養標準,積極開展課程體系、教學方法、教學內容改革[3]。目前參與實施“卓越工程師計劃”的各大高?;旧隙继岢隽朔媳拘^k學定位的專業培養方案的總體思路,在實現培養目標和培養標準的過程中融合專業培養方案的制定,完善、強化學生工程實踐能力的培養,在滿足“累計1年時間在企業學習”的硬性要求同時制定靈活的培養模式[4]。譬如,清華大學展開了以能力培養為導向的課程體系和教學內容改革;我?!靶畔踩睂I對原有的專業基礎課程和專業核心課進行了重點整合,將原有課程整合縮減至5門,另增開課程4門,總學時數由384學時調整至192學時;上海工程技術大學的本科采取了“學校培養+校企交叉+校企雙指導”的三階段培養方案。
衡量上述各種具體培養要求、措施、目標、標準以及改革內容是否成功,有效的核心標志之一就是學生就業情況及其后期發展情況。畢業生的就業率、月收入和工作滿意度等信息可以從一定程度上揭示大學生的綜合能力水平和未來發展潛力。從某種意義來說,學生是高校推向市場的“拳頭產品”,用人單位是這些產品的“用戶”。“產品”質量是否有保障,“用戶”才有最深刻的體會,才最有發言權。只有不斷聽取用戶意見,不斷改進,才能確保“產品”在市場上的競爭力。因此,做好學生就業及其后期發展情況的跟蹤調查,才能推動高校不斷完善卓越計劃的落實,糾正試行階段暴露出來的各種問題。
2 軟件工程專業卓越工程師培養計劃――以杭州電子科技大學為例
杭州電子科技大學從1980年開始培養軟件工程本科人才,2003年正式設立軟件工程本科專業。目前,該專業為國家特色專業、浙江省重點專業、浙江省高校人才培養模式創新實驗區。為了進一步促進軟件工程專業發展,全面提升學生工程素質,即工程實踐能力、工程設計能力和工程創新能力,2011年杭州電子科技大學率先在軟件工程學院開始試點軟件工程專業的“卓越工程師人才培養計劃”。要求學生在校內經過軟件工程通用工程基礎技術知識和核心技術知識的學習并具備相關能力后,進入企業進行高級工程技術知識及技能學習和培訓,并參加企業實際軟件項目的開發,培養方案示意圖如圖1所示。具體內容介紹如下。
⑴ 改革人才培養模式
對進入“卓越工程師培養計劃”學習的學生,將遵照貫穿8個級別4種工程應用能力培養要求的工程型人才培養方案(如圖1所示)。學生在校內2年完成前2種工程應用能力的培養后,按“卓越工程師培養計劃”學習1年完成第3種工程應用能力的培養,最后進入企業完成第4種能力的培養??梢钥闯觯吭焦こ處熍囵B計劃主要承擔“高級工程能力”和“工程實施能力”的培養,主要通過企業宣講課程和就業規劃課程來幫助學生確定今后學習和發展的方向,進而安排學生參與企業實際軟件項目完成專業實踐和畢業設計。
⑵ 加強專業師資建設
軟件人才是工程實用型,需要教師既有一定的學術造詣,又具有大量的項目實踐經驗或企業工作經驗。因此,我校進一步加強“雙師型”專業教師隊伍建設,在選派青年教師到國內外IT企業頂崗實踐和輪訓的同時,積極引進具有豐富實踐經驗的專業技術人員到校擔任兼職教師或傳授真實案例和實際工程經驗,已逐步建立并完善企業教師的師資庫并鼓勵相關企業承擔學校專業課程及實訓工作。
⑶ 深化改革課程體系
我校軟件專業課程改革的總體思路是:扎實專業基礎,突出工程實踐能力,復合知識領域結構;強化專業核心基礎課程和高級工程能力的培養,突出企業實戰能力。在當前軟件工程專業培養方案的基礎之上,著重體現工程教學中的CDIO模式,聘請行業專家及資深工程師講座;引入“MOOC”等先進教學方式,鼓勵開展研究式教學、討論式教學、以問題為導向的PBL教學、CDIO式教學及團隊模式教學等多種教學方式[5]。
⑷ 采用“校企深度合作、工學結合”運行模式
積極探索校企深度合作的空間,著重于人才培養、科研開發等多方位的共贏合作模式。以培養軟件人才為目標,學校優先選擇占據行業領導地位的公司作為合作方(如華為、塔塔等),吸收資深工程師參與指導制定專業發展規劃、專業培養目標與專業人才培養方案,甚至直接作為教學師資參與專業技能教學;同時將企業待解決實際項目轉化為“實驗班”的課程設計題目或綜合設計題目。企業接收完成專業課程學習以及基本技能培訓的學生直接頂崗實習。
3 “卓越計劃”畢業生的跟蹤分析
3.1 調查對象和方法
為全面、準確、及時地分析了解“卓越工程師培養計劃”在高校的落實結果,了解用人單位對軟件工程專業改革的滿意度以及深化教學改革的意見與建議,為其他同類學校準確定位、深化改革與創新軟件類人才培養提供參考,我們對杭州電子科技大學軟件工程學院實施“卓越工程師培養計劃”的結果進行跟蹤調查。調查對象是該學院第一批按照上述計劃培養的畢業生,共發出52份問卷,回收有效問卷50份,回收率為96%。本次調查主要以問卷為主,輔之以面談、Email咨詢等方式。
3.2 調查數據分析
我們從學生就業單位信息、就業單位需求、畢業生個人反饋三方面來進行梳理分析現有教學方案、培養方案等卓越計劃改革內容的不足。
⑴ 學生就業單位
此次調查的50名畢業生,44人就職于主營軟件開發銷售、系統集成的軟件類公司,4人就職于在線網絡社交平臺或電子商務平臺的技術部門,2人服務于保險業。也就是說,96%的畢業生在畢業后會繼續從事軟件開發維護相關的工作。這從一定程度上證明了按照卓越工程師計劃擬定的現有培養方案和課程安排在培養學生興趣、增強學生專業技能方面發揮了較好的作用。此外,在畢業生就職的30家軟件類公司中,14家單位的員工少于50人,13家單位的員工數在50~300之間,3家單位的人數超過了300人。可以看出,畢業生所就職的大部分是中小型軟件公司。這也符合軟件行業特點。除了微軟、IBM、華為等極少數的龍頭企業,大部分軟件公司的規模并不龐大。我們的調查結果反饋的另外一個重要信息是,大部分軟件公司對招聘對象的學歷和工作經驗的要求并不高,求職者具備大學本科學歷即可,并不硬性需要相關的職業證書。因此,在未來的教學過程中,應確保學生順利完成大學基礎課程,而并不需要強調或引導學生參加太多的職業證書考試。
⑵ 就業單位需求
從50份有效問卷返回的結果來看,目前用人單位技術最注重也相對急需的技術(能)排在前三位的分別是:JAVA語言、辦公軟件應用和ORACLE數據庫應用,如圖2所示。除此之外,動態網站開發以及企業級網絡軟件應用與維護也是各單位相對比較看重的畢業生技能,問卷勾選的份數分別達到了16和14。不難看出,若軟件工程專業本科生在校期間盡可能地熟練掌握日常的辦公軟件應用并掌握用Java等開發語言構建、推廣、維護動態Web網站的基本技術,他們在就業時將更占優勢。
我們在教學過程中經常碰到以下的問題:本科生在大三或大四階段仍不能熟練使用Excel繪制基本圖形或完成基本統計功能,也不會使用Outlook、Foxmail等郵件客戶端工具收發Email;他們課程提交的項目作品雖然能夠實現系統的基本功能,但往往不夠規范、難以維護和二次開發。學生暴露出來的這些問題遠離用人單位的需求,也直接影響了學生自身的就業和后續發展。因此,在后期完善“卓越工程師”的培養方案和課程改革時,針對這些問題進一步強化培養學生相關技術(能)就變得極為重要。
⑶ 現有培養計劃及改革反饋
如上所述,“卓越人才計劃”強調對學生實踐能力的培養,強化學生工程實踐能力,注重提升工程教育人才的培養質量。本學院在日常教學過程中著重學生動手實踐能力的培養,也通過與華為、塔塔、網新等眾多企業合作,安排學生在企業實習,強化學生實際實踐能力。如圖3所示,根據求職期間及就業之后的“第一手”經驗,36%的畢業生認為學校還需加強基礎理論的學習,30%的畢業生認為需加強實踐動手能力的培養,25%的畢業生認為需加強專業知識的學習,只有個別同學認為需增強人文知識學習和科研能力培養。大部分畢業生在“信息反饋”一欄中明確提出“實際動手能力的培養是學校應該改進的重中之重”。這與國家“卓越人才計劃”的培養思路是基本吻合的,也表明,我們還需在未來的教學培養中深化培養方案和課程改革,更突出 “卓越人才計劃”的實踐能力培養要求。如某位畢業生認為雖然目前學校社團較多,但和專業及就業掛鉤的社團很少,建議多組建一些專業性社團,營造一個良好的學習氛圍,并積極鼓勵學生參加各類比賽,或開展專業知識類的勤工助學項目,讓學生在項目實踐中提升各方面的素質。
此外,根據50位畢業生的自身體會,軟件類公司更為看重的學生素質是其持續學習的能力,其次是獨立解決問題的能力,而日常較為注重的學習成績恰恰反而是排在最后一位,如圖4所示。這也是軟件工程專業本身所決定的。一方面,軟件、計算機技術飛速發展,日益更新,在校期間的課程內容不能完全跟上技術的潮流,需要學生自己學會跟蹤學習新技術的能力;另一方面,實際軟件問題千奇百怪,層出不窮,沒有一勞永逸的解決方案,更需要學生具備一定解決問題的能力。
3.3 啟示
此次的跟蹤結果表明,我院現有的“卓越人才培養計劃”及其具體方案措施在加強學生專業興趣、增強學生專業能力起到了較好的作用,能為用人單位提供了具備基本職業素養和能力的軟件人才。在未來工作中還需進一步強調和注意的有以下幾點。
⑴ 必需確保學生順利完成大學階段所有課程并獲得學歷、學位證書,這是學生入職的必要條件。
⑵ 必須加強培養學生辦公軟件的使用技能,才能更好地提高學生專業素質,滿足企業規范化人才需要。
⑶ 爭取為學生創造更多參與實際項目的機會,加強培養學生專業實踐能力。這也是“卓越工程師培養計劃”的重心所在。
⑷ 進一步加強學生跟蹤學習的能力和獨立解決問題的能力,使他們適應軟件快速更新升級,以及實際開發應用過程中問題不斷的特點。
4 結束語
畢業生跟蹤調查對做好軟件工程人才培養,尤其是“卓越工程師培養計劃”在軟件工程專業的落實具有重大意義。本文采用實證研究的方法,從學生就職單位性質、單位需求與學生反饋三方面對現有“卓越計劃”及其具體方案進行討論分析,根據畢業生的切身體會挖掘現有軟件工程專業“卓越工程師培養計劃”存在的問題和不足,以期為更好地落實“卓越工程師培養計劃”、培養卓越軟件工程師提供科學有效的對策。
【摘要】主要分析了畢業設計(論文)的現狀,介紹了軟件生命周期的各個階段與畢業設計(論文)各階段的對應關系、軟件生命周期各階段應完成的任務以及在畢業設計(論文)中應注意的問題。
【關鍵詞】軟件工程 畢業設計(論文) 實踐教學
一、引言
畢業設計(論文)(以下簡稱畢業設計)是計算機及相關專業教學計劃中的一個重要環節,是培養學生對所學基本理論及基本操作技能綜合運用的訓練過程,是提高學生分析和解決問題能力的重要實踐環節,是實現理論與實踐相結合的重要途徑,是對教育教學質量的全面檢查。目前,計算機及相關專業的畢業設計質量正在逐年下降:學生急于找工作或考研,畢業設計得不到應有的重視;需求分析不到位,設計成果不符合實際需求;軟件開發流程混亂;缺乏文檔寫作訓練,等等。
針對上述問題,筆者認為,除了應當從管理角度嚴格進行過程監控外,還應當使學生通過《軟件工程》課程的學習,提高畢業設計的質量。
二、軟件生命周期與畢業設計過程的對應關系
軟件產品從形成概念開始,經過開發、使用和維護,直到最后退役的全過程稱為軟件的生命周期。軟件生命周期可以劃分成若干個時期與階段,它與畢業設計各個環節的對應關系如圖1所示。
三、軟件生存周期各階段應完成的任務
1.可行性研究與計劃階段、需求分析階段
可行性研究與計劃階段主要完成問題的定義、可行性論證以及初步計劃的制定;需求分析階段主要完成需求調查,進行功能、性能與環境約束分析;編制軟件需求規格說明、制定軟件系統的確認測試準則和用戶手冊概要。這兩個階段對應于畢業設計的課題論證、選題、調研、查資料,通過對設計題目的深刻理解,完成開題報告的撰寫工作。
2.概要設計階段和詳細設計階段
概要設計階段主要完成軟件系統總體結構的建立、定義功能模塊的接口、設計全局數據庫和數據結構、規定設計約束、編制概要設計文檔等工作;詳細設計階段主要完成模塊詳細設計及編制模塊的詳細規格說明工作。包括模塊的詳細功能、算法、數據結構和模塊間的接口信息等設計,擬定模塊測試方案;把模塊詳細設計的結果匯總,形成模塊詳細規格說明書。這兩個階段對應于畢業設計的系統設計階段。
3.實現階段與組裝測試階段
實現階段主要完成編碼及單元測試工作。根據模塊詳細規格說明書,將詳細設計轉化為程序代碼、對模塊程序進行測試,驗證模塊功能及接口與詳細設計文檔的一致性,并形成單元測試報告;組裝測試階段主要完成模塊程序組裝與測試及組裝測試報告的編寫。
4.確認測試階段
該階段主要完成軟件系統測試、確認測試文檔編制及軟件評審工作。根據軟件需求規格說明定義的全部功能和性能要求及軟件確認測試準則對軟件系統進行總測試;向用戶提供以確認測試報告為主的有關文檔,包括系統操作手冊、源程序清單和項目開發總結報告等;由專家、用戶、軟件開發人員組成的軟件評審小組對軟件確認報告、測試結果和軟件進行評審,并將得到確認的軟件產品交付用戶使用。這個階段主要對應于畢業設計(論文)中的論文評審、結題驗收及畢業設計的答辨準備階段。
5.軟件運行與維護階段
主要進入軟件的使用階段,并完成軟件的維護工作。它主要對應于畢業設計中的答辯階段。
四、畢業設計應注意的幾個問題
1.摘要
摘要是對文章主要內容的摘錄,要求精、短、完整。以幾十字至三百字左右為宜。摘要應具有獨立性和自明性,從摘要中即應獲得必要的信息;摘要中只能使用第三人稱;要客觀如實地反應原文的內容,要著重反映論文的最新內容和作者特別強調的觀點;要求結構嚴謹、語義確切、表述簡明,一般不分段落、不進行自我評價。
2.關鍵詞
關鍵詞主要用于論文檢索,它是從論文的題名、摘要和正文中選出的,是對表述論文的中心內容有實質意義的詞匯,關鍵詞一般以3~5個為宜。
3.結論
結論寫作的內容應主要考慮本文研究結果是什么?研究結果說明了什么?對前人有關的看法作了哪些修正、補充、發展、證實或否定?本文研究的不足之處或遺留未予解決的問題以及對解決這些問題的可能的關鍵點和方向等。結論應該準確、完整、明確、精練。
4.需求分析
在畢業設計中,學生往往不能對所做題目進行充分的調研,需求不明確,隨意想象的成分較多。特別是在數據表的建立上,大部分同學隨意設置字段的類型,而字段長度基本上采用默認置。而在實際項目開發中,數據項的設置應主要注意以用戶的需求和滿足系統要求為準,而不應設計冗余的字段;數據的類型要依據實際需求,當某些字段可以是選擇某幾種類型之一,應考慮哪一種更有利于本系統或哪種更易于用戶操作和維護。
5.詳細設計
許多同學把詳細設計階段的任務理解為代碼實現,因此,在概要設計之后就著手進行代碼的編寫而忽略了算法的表達及測試用例的編寫環節,由此造成的結果是隨意編程,大量的時間浪費在程序的修改和調試上。
6.軟件測試
測試做得不夠全面,大部分同學只選擇了有效的測試用例,而沒有進行無效的測試用例的設計,因此所做的軟件BUG較多。
7.團隊合作
在畢業設計中,應有意識地鍛煉學生們的團隊協作精神,因此,在布置畢業設計題目時,應盡量選擇規模大一點的題目,然后由4~5名同學共同協作,每人完成一個子題目。這樣,可以使學生們分析問題和解決問題的能力、溝通和表達能力得到充分鍛煉,為今后的工作奠定基礎。