在學(xué)生的畢業(yè)設(shè)計中以軟件工程的思想為主線,從軟件工程的角度去指導(dǎo)學(xué)生進行畢業(yè)設(shè)計,挖掘軟件工程在系統(tǒng)開發(fā)過程中的價值,解決畢業(yè)設(shè)計中存在的一些問題,既有助于學(xué)生更好地理解軟件工程的方法、技術(shù)和思想,更有助于提高軟件類畢業(yè)設(shè)計的質(zhì)量。
1畢業(yè)設(shè)計中存在的問題
筆者在指導(dǎo)學(xué)生軟件開發(fā)類畢業(yè)設(shè)計過程中發(fā)現(xiàn),畢業(yè)設(shè)計存在著選題難、任務(wù)重、重視編碼、輕過程、項目無法完成等現(xiàn)象。設(shè)計過程中沒有嚴格地遵循軟件工程的開發(fā)方法,沒有規(guī)范的軟件設(shè)計過程,項目能否成功主要依賴于個人能力和個人努力,這種不正確的開發(fā)方法帶來了嚴重的后果。在項目開發(fā)的過程中常常存在以下幾個方面問題:
1.1選題的盲目性
選題是畢業(yè)設(shè)計過程中的一個初始環(huán)節(jié),選題恰當(dāng)是做好畢業(yè)設(shè)計的前提,但選題不當(dāng)?shù)那闆r仍然時有發(fā)生。學(xué)生沒有認識到畢業(yè)設(shè)計的重要性,純粹是為了完成學(xué)業(yè)而做畢業(yè)設(shè)計,選題沒有一個確切的目標,往往是隨便選一個題目,造成選題的盲目性,出現(xiàn)了選題陳舊、選題范圍狹窄、選題偏大等問題,使學(xué)生抄襲、完成不了畢業(yè)設(shè)計的情況時有發(fā)生。
1.2缺少軟件的系統(tǒng)分析
軟件開發(fā)過程的第一個階段是系統(tǒng)分析,用來確定軟件開發(fā)要解決的問題是什么?估算完成該項目需要的資源和成本,確定目標系統(tǒng)應(yīng)該具備哪些功能,主要經(jīng)歷問題的定義、可行性分析和需求分析三個階段。軟件的系統(tǒng)分析確定了用戶需求,同時對目標系統(tǒng)提出完整、具體的要求,引導(dǎo)開發(fā)者正確地構(gòu)建系統(tǒng)。因此,對用戶需求做出全面、正確的分析,對于最終軟件開發(fā)類畢業(yè)設(shè)計的成敗起著至關(guān)重要的作用。然而在完成畢業(yè)設(shè)計過程中,學(xué)生往往認為代碼編寫最重要,對軟件開發(fā)過程中的可行性分析和需求分析階段不重視,甚至沒有系統(tǒng)分析,對整個畢業(yè)設(shè)計的完成造成了影響。
1.3軟件設(shè)計過程雜亂無章
軟件設(shè)計一般都要經(jīng)歷可行性分析、需求分析、總體設(shè)計、詳細設(shè)計、編碼和測試階段。而部分學(xué)生在畢業(yè)設(shè)計開發(fā)的過程中,缺乏軟件工程設(shè)計思想,跨越需求分析、概要設(shè)計、詳細設(shè)計和功能模塊設(shè)計,直接進行代碼的撰寫;或者從代碼反推出模塊設(shè)計;甚至在軟件開發(fā)過程中,一邊寫程序,一邊了解需求,程序完成了需求才確定。這種無序的軟件設(shè)計過程,導(dǎo)致最終設(shè)計的系統(tǒng)雜亂無章、代碼的重復(fù)率高、潛在?Bug多、系統(tǒng)的可集成性非常差、不能在規(guī)定時間內(nèi)完成設(shè)計或者系統(tǒng)無法運行。
1.4開發(fā)過程中文檔不完備
根據(jù)軟件工程學(xué)的基本原理,軟件=程序+文檔,可見軟件文檔是軟件開發(fā)過程中不可缺少的組成部分。軟件文檔貫穿于軟件開發(fā)的各個階段,是提高軟件產(chǎn)品開發(fā)效率、規(guī)范軟件產(chǎn)品開發(fā)過程、保證軟件產(chǎn)品質(zhì)量的關(guān)鍵。但在實際畢業(yè)設(shè)計中,很多同學(xué)認為把程序代碼編出來了,畢業(yè)設(shè)計也就完成了,提交的畢業(yè)設(shè)計論文就是系統(tǒng)代碼的復(fù)制,即只做出一個可演示可操作的系統(tǒng),而忽略了軟件開發(fā)的完整性、系統(tǒng)性。完整的畢業(yè)設(shè)計不僅包括可操作的系統(tǒng),還包括在開發(fā)系統(tǒng)的過程中所產(chǎn)生的各個文檔資料。文檔的缺失會降低軟件開發(fā)的效率、影響整個軟件的開發(fā)、使用和維護。以上問題的存在,嚴重影響了畢業(yè)設(shè)計的進度和質(zhì)量,沒有達到畢業(yè)設(shè)計的目標要求。針對當(dāng)前畢業(yè)設(shè)計的現(xiàn)狀和存在不足,筆者認為應(yīng)用軟件工程學(xué)的思想指導(dǎo)畢業(yè)設(shè)計,對促進學(xué)生綜合素質(zhì)與工程實踐能力培養(yǎng)具有積極意義。
2用軟件工程思想指導(dǎo)學(xué)生進行畢業(yè)設(shè)計
2.1以可行性研究指導(dǎo)選題
可行性研究的目的是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。畢業(yè)設(shè)計題目的選擇,應(yīng)立足于解決工程實際問題,可由指導(dǎo)教師提供符合相關(guān)專業(yè)畢業(yè)設(shè)計要求的題目,也可以鼓勵學(xué)生自己到社會、生產(chǎn)企業(yè)中尋求研究課題,培養(yǎng)他們自主學(xué)習(xí)的意識。選題過程以可行性研究為指導(dǎo),從課題規(guī)模大小、難易程度、學(xué)生自己的研究方向、愛好、學(xué)生的知識層面和能力等多個方面進行考慮,對于選擇的題目是否能夠解決,確定在規(guī)定的時間內(nèi)完成畢業(yè)設(shè)計的可行性。指導(dǎo)教師可根據(jù)學(xué)生選報的題目來指導(dǎo)學(xué)生對該選題進行調(diào)查研究,明確課題要解決的問題是什么,簡要地寫出關(guān)于問題性質(zhì)、項目目標和項目規(guī)模的書面報告。可行性研究來指導(dǎo)畢業(yè)設(shè)計的選題,實質(zhì)上是簡化了系統(tǒng)分析和設(shè)計的過程,也是在較高層次上以較抽象的方式進行的系統(tǒng)分析和設(shè)計的過程,使學(xué)生對于課題的設(shè)計有個清晰的思路,為及時完成畢業(yè)設(shè)計提供了可能。
2.2重視軟件的需求分析
需求分析的基本任務(wù)是準確地回答“系統(tǒng)必須做什么”,即確定系統(tǒng)必須完成哪些工作,也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求,不僅指明了系統(tǒng)設(shè)計時必須要實現(xiàn)的目標,也是軟件設(shè)計、實現(xiàn)、測試和維護階段的主要參考標準。用戶需求的獲取是軟件開發(fā)中最重要、難度最大的工作,它貫穿于整個軟件設(shè)計過程,不僅要涉及到軟件開發(fā)方面的知識、應(yīng)用領(lǐng)域方面的知識,還涉及到與用戶溝通的能力。在進行需求獲取和分析時,為了及時、準確地獲取,可采用軟件工程中比較成熟的方法,例如訪談、實際調(diào)查、UML的用例技術(shù)等。需求分析在軟件系統(tǒng)分析與設(shè)計階段起著橋梁的作用,確定了系統(tǒng)的需求,才能制定出軟件設(shè)計的框架,保證畢業(yè)設(shè)計循序漸進、有條不紊地進行,避免后期開發(fā)過程的頻繁返工,進而按時完成最終的任務(wù)。
2.3規(guī)范畢業(yè)設(shè)計過程
軟件開發(fā)類畢業(yè)設(shè)計一般是開發(fā)一個軟件系統(tǒng),實現(xiàn)一定的功能。“麻雀雖小,五臟俱全”,無論軟件規(guī)模的大小、功能的多少,都應(yīng)該嚴格按照軟件工程中軟件生命周期每個階段的步驟完成各項任務(wù)。要培養(yǎng)學(xué)生把軟件工程的概念貫穿于整個畢業(yè)設(shè)計過程,也就是說,讓學(xué)生把開發(fā)軟件的過程看成是蓋一棟大樓,修一條公路的實際工程,用工程化的思想指導(dǎo)畢業(yè)設(shè)計,確定完成課題的各項任務(wù)的工作步驟,注重軟件類畢業(yè)設(shè)計的過程,而不是學(xué)生所認為的畢業(yè)設(shè)計就是編程序,代碼調(diào)試通過即可。通過工程的概念規(guī)范畢業(yè)設(shè)計過程,讓學(xué)生明白開發(fā)一個軟件系統(tǒng)一般經(jīng)過系統(tǒng)分析、系統(tǒng)設(shè)計、系統(tǒng)實施三個階段,必須嚴格遵循軟件生命周期的規(guī)律,完成各個階段的任務(wù),才能最終提高畢業(yè)設(shè)計的質(zhì)量。
2.4重視文檔的寫作
軟件工程中的瀑布模型嚴格地規(guī)定了在整個軟件生命周期的各個階段,都要提交相應(yīng)的文檔。文檔不僅記錄軟件開發(fā)過程中的大量信息,在軟件的開發(fā)、維護過程中也起著重要的作用。在指導(dǎo)學(xué)生畢業(yè)設(shè)計時,要求學(xué)生遵照軟件工程的思想,把文檔作為整個設(shè)計的指揮棒,記載設(shè)計過程的每一階段完成的目標、任務(wù)及技術(shù)手段,建立健全畢業(yè)設(shè)計文檔制度,確保畢業(yè)設(shè)計過程中的文獻綜述、譯文、任務(wù)書、開題報告、選題審題表、中期檢查表、設(shè)計(論文)正文、答辯記錄等各環(huán)節(jié)教學(xué)資料檔案完善、規(guī)范,實現(xiàn)對畢業(yè)設(shè)計的全程監(jiān)控。
3結(jié)束語
軟件工程是軟件開發(fā)工程化、規(guī)范化的具體實施方法,將其應(yīng)用到畢業(yè)設(shè)計中,不僅有助于學(xué)生對軟件開發(fā)相關(guān)知識的鞏固和實踐,而且對解決目前軟件開發(fā)類畢業(yè)設(shè)計中存在的問題,提高學(xué)生畢業(yè)設(shè)計質(zhì)量,具有極大的促進作用。
作者:王 曉 王長波 單位:湖北醫(yī)藥學(xué)院 公共管理學(xué)院計算機教研室