郭海鳳
摘要:對(duì)學(xué)生在畢業(yè)設(shè)計(jì)過(guò)程中容易存在的問(wèn)題進(jìn)行分析歸納,結(jié)合軟件工程的基本理論,提出利用軟件工程指導(dǎo)學(xué)生的畢業(yè)設(shè)計(jì),主要從選擇題目、系統(tǒng)及模塊結(jié)構(gòu)設(shè)計(jì)、模塊聯(lián)合調(diào)試、撰寫(xiě)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)等一些關(guān)鍵環(huán)節(jié)入手,提高學(xué)生的綜合素質(zhì)、專(zhuān)業(yè)課程綜合運(yùn)用能力與工程實(shí)踐能力。關(guān)鍵詞:計(jì)算機(jī)專(zhuān)業(yè);軟件工程;畢業(yè)設(shè)計(jì)
0 引言
畢業(yè)設(shè)計(jì)是教學(xué)過(guò)程最后階段采用的一種總結(jié)性的實(shí)踐教學(xué)環(huán)節(jié)。通過(guò)畢業(yè)設(shè)計(jì),使學(xué)生綜合應(yīng)用所學(xué)的各種理論知識(shí)和技能,進(jìn)行全面、系統(tǒng)、嚴(yán)格的技術(shù)及基本能力練習(xí)。畢業(yè)設(shè)計(jì)通過(guò)學(xué)生深入實(shí)踐、了解社會(huì)、完成畢業(yè)設(shè)計(jì)任務(wù)或撰寫(xiě)論文等諸環(huán)節(jié),著重培養(yǎng)學(xué)生綜合分析和解決問(wèn)題的能力以及獨(dú)立工作能力、組織管理和社交能力;同時(shí),對(duì)學(xué)生的思想品德,工作態(tài)度及作風(fēng)等諸方面有很大影響。對(duì)于增強(qiáng)事業(yè)心和責(zé)任感,提高畢業(yè)生全面素質(zhì)具有重要意義。畢業(yè)設(shè)計(jì)是學(xué)生在校期間的最后學(xué)習(xí)和綜合訓(xùn)練階段;是學(xué)習(xí)深化、拓寬、綜合運(yùn)用所學(xué)知識(shí)的重要過(guò)程;是學(xué)生學(xué)習(xí)、研究與實(shí)踐成果的全面總結(jié);是學(xué)生綜合素質(zhì)與工程實(shí)踐能力培養(yǎng)效果的全面檢驗(yàn);是實(shí)現(xiàn)學(xué)生從學(xué)校學(xué)習(xí)到崗位工作的過(guò)渡環(huán)節(jié);是學(xué)生畢業(yè)及學(xué)位資格認(rèn)定的重要依據(jù);是衡量高等教育質(zhì)量和辦學(xué)效益的重要評(píng)價(jià)內(nèi)容。
軟件工程(Software Engineering,簡(jiǎn)稱(chēng)SE)是一門(mén)研究用工程化方法構(gòu)建和維護(hù)有效的、實(shí)用的、高質(zhì)量的軟件學(xué)科。軟件工程一直以來(lái)都缺乏統(tǒng)一的定義,很多學(xué)者、組織機(jī)構(gòu)都分別給出了自己的定義。經(jīng)過(guò)對(duì)比,比較合理的定義為:軟件工程是研究和應(yīng)用如何以系統(tǒng)性的、規(guī)范化的、可定量的過(guò)程化方法去開(kāi)發(fā)和維護(hù)軟件,以及如何把經(jīng)過(guò)時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來(lái)。
軟件工程中的軟件生命周期是軟件的產(chǎn)生直到報(bào)廢的生命周期,周期內(nèi)有問(wèn)題定義、可行性分析、總體描述、系統(tǒng)設(shè)計(jì)、編碼、調(diào)試和測(cè)試、驗(yàn)收與運(yùn)行、維護(hù)升級(jí)到廢棄等階段。學(xué)生在畢業(yè)設(shè)計(jì)的過(guò)程中,分為選題、開(kāi)題、實(shí)踐研究、測(cè)試調(diào)整等階段??梢钥闯鰧W(xué)生畢業(yè)設(shè)計(jì)與軟件工程中的軟件生命周期存在比較一致的對(duì)應(yīng)關(guān)系。嚴(yán)格遵守軟件工程學(xué)的各個(gè)原則,就可以很好地解決目前畢業(yè)設(shè)計(jì)中存在的問(wèn)題,提高畢業(yè)設(shè)計(jì)的質(zhì)量。
1 計(jì)算機(jī)專(zhuān)業(yè)學(xué)生畢業(yè)設(shè)計(jì)現(xiàn)狀
1.1 選題的盲目性
學(xué)生在態(tài)度上雖然很重視,也花費(fèi)大量的時(shí)間精力,但由于選題不當(dāng),往往事倍功半。選題中存在的問(wèn)題主要有3個(gè)方面。
1)過(guò)于寬泛。
學(xué)生的選題要實(shí)現(xiàn)的功能太多,在規(guī)定時(shí)間內(nèi)不能獨(dú)立完成,到最后只完成部分功能,或部分模塊。
2)重復(fù)雷同。
部分學(xué)生存在渾水摸魚(yú)的思想,在畢業(yè)設(shè)計(jì)過(guò)程中不是根據(jù)自己學(xué)習(xí)情況和研究方向確定研究選題,而是刻意選擇與他人類(lèi)似或雷同的選題,甚至同一批畢業(yè)的許多學(xué)生選題及畢業(yè)論文完全一致。
3)沒(méi)有應(yīng)用價(jià)值。
部分學(xué)生的選題是當(dāng)前十分成熟的項(xiàng)目,沒(méi)有研究的必要。有些選題已經(jīng)被淘汰,在實(shí)際中沒(méi)有用途。
1.2 可行性分析和需求分析不準(zhǔn)確
有很多學(xué)生在選題時(shí)不愿進(jìn)行項(xiàng)目的可行性分析和需求分析,他們認(rèn)為在畢業(yè)設(shè)計(jì)過(guò)程中最重要的就是編程,其他方面只需要一帶而過(guò)[4]。學(xué)生在確定了畢業(yè)設(shè)計(jì)的題目后,幾乎不進(jìn)行調(diào)查研究工作就立即投入到系統(tǒng)的設(shè)計(jì)中,存在一定的盲目性和不確定性。隨著項(xiàng)目開(kāi)發(fā)的不斷深入,原來(lái)確定的需求不能滿(mǎn)足項(xiàng)目的需要,導(dǎo)致開(kāi)發(fā)的軟件功能與當(dāng)初的期望和設(shè)想不符,這時(shí)只能重新返回,反復(fù)進(jìn)行修改,導(dǎo)致整體系統(tǒng)雜亂無(wú)章,無(wú)法繼續(xù)進(jìn)行。此時(shí),部分學(xué)生為了趕進(jìn)度,就剽竊他人作品或者找人代筆,造成惡劣影響。
1.3 研究階段分工不明確、思路不清
分工不明確、思路不清是畢業(yè)設(shè)計(jì)中容易犯的錯(cuò)誤。一方面,項(xiàng)目組時(shí)間安排和人員分工不合理。任務(wù)分配時(shí)沒(méi)有考慮到各成員的能力情況,有的成員工作量過(guò)大,有的成員工作量過(guò)小,有的成員大材小用,有的成員拔苗助長(zhǎng)。此外,由于在軟件開(kāi)發(fā)過(guò)程中缺乏必要和有效的交流,功能模塊重復(fù)開(kāi)發(fā)或者多個(gè)成員開(kāi)發(fā)出的模塊很難有機(jī)地集成到一起,更有甚者則是最終開(kāi)發(fā)完成后的軟件功能與當(dāng)初的期望和設(shè)想不符。在共同進(jìn)行項(xiàng)目設(shè)計(jì)的過(guò)程中,同組的學(xué)生不知如何進(jìn)行分工,隨意劃分,導(dǎo)致重復(fù)研究,浪費(fèi)時(shí)間和精力。學(xué)生在分工階段總希望自己擔(dān)負(fù)容易出成績(jī)的部分,希望別人分享成果,但自己的研究成果不肯共享。另一方面,在設(shè)計(jì)過(guò)程中,不進(jìn)行總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)和模塊設(shè)計(jì),直接進(jìn)行編碼,不制定設(shè)計(jì)程序和規(guī)劃,想到哪里就做到哪里,當(dāng)前內(nèi)容沒(méi)有做完便開(kāi)始其他內(nèi)容,使得整個(gè)研究階段雜亂無(wú)章。在這種狀態(tài)下,即使完成了研究,效率也非常低,軟件結(jié)構(gòu)混亂,功能實(shí)現(xiàn)不完全,降低了軟件設(shè)計(jì)的質(zhì)量和層次。
1.4 測(cè)試和調(diào)試階段形同虛設(shè)
部分學(xué)生畢業(yè)設(shè)計(jì)不完全,總以為程序做出來(lái)后畢業(yè)設(shè)計(jì)就完成了,沒(méi)有想過(guò)一個(gè)完整的畢業(yè)設(shè)計(jì)還需要在完成設(shè)計(jì)后進(jìn)行嚴(yán)格的測(cè)試和調(diào)試。由于不重視測(cè)試和調(diào)試的過(guò)程,使得軟件的錯(cuò)誤和缺陷不斷,達(dá)到無(wú)法挽回的境地。部分學(xué)生不注重測(cè)試和調(diào)試階段對(duì)軟件文檔和數(shù)據(jù)記錄的收集和整理,缺少全面系統(tǒng)的文檔和記錄,導(dǎo)致不能方便地轉(zhuǎn)讓、變更、修正、擴(kuò)充和使用文檔,充分發(fā)揮軟件產(chǎn)品的效益;不能為后期維護(hù)、培訓(xùn)留下完備的資料和及時(shí)有效地進(jìn)行修正工作;不合格、不完善的軟件文檔和數(shù)據(jù)記錄給設(shè)計(jì)人員的測(cè)試和內(nèi)部交流帶來(lái)極大困難,加大了測(cè)試和調(diào)試階段的工作量、難度和針對(duì)性。
2 軟件工程思想的應(yīng)用
通過(guò)對(duì)以上存在的問(wèn)題進(jìn)行分析,在計(jì)算機(jī)專(zhuān)業(yè)學(xué)生畢業(yè)設(shè)計(jì)過(guò)程中,必須運(yùn)用軟件工程思想,既節(jié)約時(shí)間和精力,又可以使畢業(yè)設(shè)計(jì)過(guò)程變得系統(tǒng)和完善。
2.1 選題過(guò)程中的應(yīng)用
選題中最重要的是可行性研究,選好題目是進(jìn)行深入研究的基礎(chǔ),也是寫(xiě)出高質(zhì)量論文的前提。反之,畢業(yè)設(shè)計(jì)就會(huì)做不下去,畢業(yè)論文也無(wú)從談起。軟件工程學(xué)能夠很好地指導(dǎo)選題,分別從專(zhuān)業(yè)基礎(chǔ)、現(xiàn)實(shí)意義、縱深度分析等方面進(jìn)行全面分析,根據(jù)各要素的權(quán)重進(jìn)行綜合衡量,最終決定取舍。endprint
選題應(yīng)遵循的原則:
(1)畢業(yè)設(shè)計(jì)的選題,要體現(xiàn)研究?jī)r(jià)值。一方面,根據(jù)本專(zhuān)業(yè)所學(xué)內(nèi)容,盡量將選題范圍包括在內(nèi),從而覆蓋課程內(nèi)容。另一方面,根據(jù)專(zhuān)業(yè)培養(yǎng)目標(biāo),突出知識(shí)點(diǎn)的強(qiáng)化和鞏固,著眼于學(xué)生獨(dú)立性和創(chuàng)造性的培養(yǎng)。
(2)畢業(yè)設(shè)計(jì)的選題,要體現(xiàn)切口小而深的原則。只有選題小,才能保證學(xué)生選題不會(huì)發(fā)生沖突,對(duì)于有些研究課題可以讓學(xué)生自愿進(jìn)行組合,同時(shí)明確各自的任務(wù)。
(3)選題要體現(xiàn)實(shí)用性,要方便學(xué)生畢業(yè)以后的應(yīng)聘和擇業(yè)需要,切實(shí)體現(xiàn)學(xué)生分析問(wèn)題、解決問(wèn)題的能力。
(4)選題要方便調(diào)試。選題要適合各個(gè)功能模塊單獨(dú)運(yùn)行,方便最后統(tǒng)一的調(diào)試。
(5)選題要難度適中。在時(shí)間上要控制在10周左右時(shí)間能夠完成;在難度上,既不能涉及陌生和較難的理論領(lǐng)域,也不能人為降低課程設(shè)置水平。
2.2 開(kāi)題過(guò)程中的應(yīng)用
在軟件工程中,需求分析指的是在建立一個(gè)新的或改變一個(gè)現(xiàn)存的電腦系統(tǒng)時(shí)描寫(xiě)新系統(tǒng)的目的、范圍、定義和功能時(shí)所要做的所有的工作。需求分析是軟件工程中的一個(gè)關(guān)鍵過(guò)程,在該過(guò)程中,系統(tǒng)分析員和軟件工程師確定顧客的需要。只有在確定了這些需要后他們才能夠分析和尋求新系統(tǒng)的解決方法。需求分析階段的任務(wù)是確定軟件系統(tǒng)功能。
開(kāi)題中最重要的是進(jìn)行需求分析,需求分析是在可行性研究的基礎(chǔ)上,將用戶(hù)對(duì)系統(tǒng)的描述通過(guò)開(kāi)發(fā)人員的分析概括,抽象為完整的需求定義,再形成一系列文檔的過(guò)程,它完成的好壞直接影響后續(xù)軟件開(kāi)發(fā)的質(zhì)量。開(kāi)題是在選題基礎(chǔ)上進(jìn)行的,選題是可行性分析,開(kāi)題則是需求分析。開(kāi)題過(guò)程中需要指導(dǎo)學(xué)生大量地閱讀國(guó)內(nèi)外資料,同時(shí)進(jìn)行分析研究,了解當(dāng)前畢業(yè)設(shè)計(jì)的研究進(jìn)度,明確畢業(yè)設(shè)計(jì)的具體方向,編寫(xiě)相應(yīng)的畢業(yè)設(shè)計(jì)提綱,解決好設(shè)計(jì)什么,如何設(shè)計(jì)的問(wèn)題。
開(kāi)題中應(yīng)把握軟件工程原則:(1)明確需求分析是一個(gè)動(dòng)態(tài)過(guò)程。對(duì)于軟件系統(tǒng),不可能一開(kāi)始就能精確地提出功能和性能要求,只能在不斷地探討和認(rèn)識(shí)中才能逐步明確。(2)需求分析階段后續(xù)影響復(fù)雜。問(wèn)題發(fā)現(xiàn)得越早,越容易解決,假設(shè)在需求分析階段發(fā)現(xiàn)一個(gè)錯(cuò)誤,解決它需要用1小時(shí),到設(shè)計(jì)、編程等后續(xù)階段解決,則要花數(shù)倍甚至數(shù)十倍的時(shí)間。
2.3 實(shí)踐研究過(guò)程中的應(yīng)用
軟件工程學(xué)講到的數(shù)據(jù)流圖(Data FlowDiagram,簡(jiǎn)稱(chēng)DFD),它從數(shù)據(jù)傳遞和加工角度,以圖形方式來(lái)表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過(guò)程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具及用于表示軟件模型的一種圖示方法。用DFD指導(dǎo)設(shè)計(jì)研究,最大的特點(diǎn)就是形式直觀,涵蓋設(shè)計(jì)全部過(guò)程。
畢業(yè)設(shè)計(jì)實(shí)踐研究過(guò)程是對(duì)需求分析的具體化,也是軟件工程應(yīng)用最直觀的階段,要指導(dǎo)學(xué)生按照DFD數(shù)據(jù)流圖的要求,明確達(dá)到設(shè)計(jì)要求需要幾個(gè)步驟,每個(gè)步驟達(dá)到什么具體的功能,畫(huà)出流程圖,并對(duì)每一步驟進(jìn)行詳細(xì)的解釋和說(shuō)明,最后設(shè)計(jì)出DFD數(shù)據(jù)流圖。DFD數(shù)據(jù)流圖要對(duì)輸入和輸出的數(shù)據(jù)流進(jìn)行具體和詳細(xì)的說(shuō)明,要符合軟件工程規(guī)范和流程。指導(dǎo)教師要及時(shí)進(jìn)行指導(dǎo)和審查,對(duì)于不符合要求的設(shè)計(jì)和不合理的流程要提出質(zhì)疑,并讓學(xué)生立即改正。指導(dǎo)教師嚴(yán)格把關(guān)、嚴(yán)格審查,確保DFD數(shù)據(jù)流圖合理、準(zhǔn)確。
對(duì)于多人合作承擔(dān)同一畢業(yè)設(shè)計(jì)內(nèi)容的,要讓他們明白總體設(shè)計(jì)框架和自己承擔(dān)部分的設(shè)計(jì)框架。原則上讓共同承擔(dān)某一項(xiàng)目的學(xué)生進(jìn)行溝通協(xié)商,明確各自的部分,指導(dǎo)教師最后進(jìn)行把關(guān),根據(jù)各學(xué)生的特點(diǎn)和興趣進(jìn)行科學(xué)、合理的分工,并將分工結(jié)果體現(xiàn)到DFD數(shù)據(jù)流圖中。通過(guò)模塊結(jié)構(gòu)圖,使學(xué)生充分認(rèn)識(shí)到整個(gè)作業(yè)過(guò)程既是系統(tǒng)工程和集體行動(dòng),又需要分工獨(dú)立完成。
2.4 測(cè)試和調(diào)試工作過(guò)程中的應(yīng)用.
對(duì)已編寫(xiě)完成的軟件進(jìn)行測(cè)試、調(diào)試是軟件設(shè)計(jì)的一個(gè)重要組成部分,通過(guò)測(cè)試、調(diào)試能夠發(fā)現(xiàn)和改正軟件設(shè)計(jì)中存在的問(wèn)題。軟件測(cè)試和調(diào)試的工作量非常大,也是專(zhuān)業(yè)人員積累經(jīng)驗(yàn),提高能力的最直接、最有效、最可靠的途徑。在測(cè)試和調(diào)試過(guò)程中,發(fā)現(xiàn)問(wèn)題和改正錯(cuò)誤是對(duì)所學(xué)知識(shí)的鞏固和重新學(xué)習(xí),有利于增強(qiáng)學(xué)用結(jié)合程度。
測(cè)試和調(diào)試過(guò)程中,應(yīng)體現(xiàn)軟件工程學(xué)的思想,有效提高工作效率。第一步發(fā)現(xiàn)問(wèn)題,在測(cè)試和調(diào)試中要注意保存數(shù)據(jù),適時(shí)進(jìn)行分析,歸納出問(wèn)題的共性,以便在下一步測(cè)試和調(diào)試過(guò)程中提高工作效率。第二步改正程序,這一步不但考驗(yàn)學(xué)生的專(zhuān)業(yè)能力,而且考驗(yàn)學(xué)生的耐心,需要進(jìn)行周密的思考和論證,保證整個(gè)程序的一貫性。對(duì)于學(xué)生創(chuàng)造性的想法,指導(dǎo)教師要堅(jiān)持支持和鼓勵(lì)的態(tài)度,積極進(jìn)行引導(dǎo),從而保證畢業(yè)設(shè)計(jì)的高質(zhì)量。
測(cè)試和調(diào)試過(guò)程中,要注意軟件文檔和軟件說(shuō)明書(shū)修改和撰寫(xiě)。軟件文檔應(yīng)當(dāng)在軟件開(kāi)發(fā)過(guò)程中,根據(jù)邏輯流程自然產(chǎn)生。有些學(xué)生在軟件開(kāi)發(fā)完成后再補(bǔ)寫(xiě)軟件文檔,這與軟件工程的思想截然不符。畢業(yè)設(shè)計(jì)中,要依據(jù)軟件設(shè)計(jì)的任務(wù),制定適合的軟件文檔規(guī)范,并以此要求設(shè)計(jì)人員高質(zhì)量完成軟件開(kāi)發(fā)任務(wù)。如果把軟件文檔規(guī)范流于形式,軟件文檔就不能準(zhǔn)確反映軟件設(shè)計(jì)各階段工作情況,文檔修改時(shí)就會(huì)發(fā)現(xiàn)前后不一致;軟件說(shuō)明書(shū)是畢業(yè)設(shè)計(jì)的最后階段,學(xué)生通過(guò)選題、開(kāi)題、計(jì)劃、分工合作、完成單獨(dú)模塊、模塊組裝調(diào)試一系列過(guò)程的實(shí)踐,對(duì)軟件設(shè)計(jì)的流程有了比較直觀和深刻的了解。軟件說(shuō)明書(shū)的撰寫(xiě)要把握3個(gè)原則:(1)做到充分重視,不能感覺(jué)軟件說(shuō)明書(shū)是可有可無(wú)的部分,要么草草寫(xiě)成,要么隨便抄襲。(2)內(nèi)容要全面,按照固定格式并結(jié)合軟件特點(diǎn)進(jìn)行詳細(xì)的說(shuō)明,尤其是軟件功能方面,要結(jié)合子模塊和整體模塊分別進(jìn)行闡述和說(shuō)明。(3)層次要分明,軟件說(shuō)明書(shū)要借鑒軟件文檔,說(shuō)明軟件各個(gè)模塊功能和整體功能。
3 結(jié)語(yǔ)
計(jì)算機(jī)專(zhuān)業(yè)學(xué)生的畢業(yè)設(shè)計(jì)在整個(gè)大學(xué)生活中極為重要,學(xué)生能夠完成畢業(yè)設(shè)計(jì),說(shuō)明自身在本專(zhuān)業(yè)的學(xué)習(xí)中學(xué)用結(jié)合緊密,實(shí)際動(dòng)手能力較強(qiáng),有利于下一步的學(xué)習(xí),有利于用人單位的工作。學(xué)生在畢業(yè)設(shè)計(jì)中遇到困難,或者畢業(yè)設(shè)計(jì)失敗,說(shuō)明學(xué)生本專(zhuān)業(yè)的學(xué)習(xí)是失敗的,學(xué)生不具備獨(dú)立進(jìn)行計(jì)算機(jī)專(zhuān)業(yè)的研究和實(shí)踐能力。通過(guò)畢業(yè)設(shè)計(jì)的過(guò)程及方法更加突出了軟件工程學(xué)對(duì)計(jì)算機(jī)專(zhuān)業(yè)學(xué)生畢業(yè)設(shè)計(jì)的指導(dǎo)作用。
參考文獻(xiàn):
[1]汪靈,林金輝,龍劍平.理工科大學(xué)畢業(yè)設(shè)計(jì)(論文)團(tuán)隊(duì)指導(dǎo)法研究與實(shí)踐[J].成都理工大學(xué)學(xué)報(bào):社會(huì)科學(xué)版,2008(4):94-97.
[2]張海藩.軟件工程[M].3版.北京:人民郵電出版社,2010.
[3]高超,張自力,李向華.淺談?dòng)?jì)算機(jī)專(zhuān)業(yè)研究生創(chuàng)新能力的培養(yǎng)[J].西南師范大學(xué)學(xué)報(bào):自然科學(xué)版,2013(5):164-169.
[4]姚期智.淺談?dòng)?jì)算機(jī)科學(xué)人才培育[J].計(jì)算機(jī)教育,2011(11):6-9.
[5]武衛(wèi)莉.提高大學(xué)生畢業(yè)設(shè)計(jì)(論文)教學(xué)質(zhì)量研究[J].實(shí)驗(yàn)技術(shù)與管理,2012(2):159-161.
(編輯:趙廓)endprint