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