基於軟體工程的計算機專業學生的畢業設計

才智咖 人氣:2.62W

摘要:畢業設計是大學學習生活的最後一個組成部分。著重分析在畢業設計過程中存在的問題,並闡述軟體工程的基本思想,以及怎樣運用軟體工程的理論思想指導計算機專業學生的畢業設計。

基於軟體工程的計算機專業學生的畢業設計

關鍵詞:軟體工程;畢業設計;軟體生命週期;計算機專業

1、引言

畢業設計是理論教育與社會實踐相結合的重要體現,是大學生在校期間最後一個比較重要的,培養創新能力、實踐能力和創業精神的綜合性實踐環節。畢業設計的質量也是衡量教學水平與學位資格認證的重要依據,直接關係到畢業學生綜合素質的培養和對將來從事各項工作的適應程度。尤其是計算機專業培養學生的目標是具有較強的動手能力,而學生的動手能力在教學中主要通過實踐進行培養,所以對於畢業設計這一實踐環節來說,其質量的高低直接反映學生動手能力的強和弱,不容忽視。

2、什麼是軟體工程思想

2.1 軟體工程定義的提出

軟體工程是一門指導計算機軟體系統開發和維護的工程學科,是一門新興的邊緣學科。它也指在軟體生產中採用工廠化的方法,採用一系列科學的、現代化的方法技術來開發軟體。這種工程化的思想貫穿於軟體開發和維護的全過程。

軟體工程的基本思想是將整個系統開發過程分為若干階段,先由系統分析員對軟體系統進行分析和設計,並將所得結果按一定的標準整理成規範化的文件資料,然後由程式設計師按這些文件資料對該系統進行程式設計和測試,從而完成該系統的開發。同時在整個開發過程中,應向管理人員和使用者提供管理和了解開發程序的有效手段,以保證開發工作順利進行。

2.2 軟體生命週期

從使用者需求開始,經過開發、交付使用,在使用過程中不斷地增補修訂,直至軟體報廢的全過程,稱軟體生命週期。在整個軟體生命週期中,一共可以分為3個階段,分別是軟體定義階段、軟體開發階段和軟體維護階段。在這3個階段中又有各自的任務,其中,軟體定義階段的任務有問題定義、可行性研究和需求分析;軟體開發階段的任務有總體設計、詳細設計、編碼和測試;最後是軟體維護階段。

3、軟體工程與畢業設計之間的對應關係

軟體工程是指導計算機軟體開發和維護的一門工程學科,該學科的目的是生產出能按期交付的、在預算範圍內的、滿足使用者需求的、質量合格的軟體產品。整個畢業設計的過程可以看做開發一個大型的軟體,要想提高畢業設計的質量,就應該以軟體工程的思想作為指導。圖1中顯示的是軟體生命週期的各個階段和濟寧醫學院資訊工程學院畢業設計各階段的對應關係,只要嚴格遵守軟體生命週期的各個階段和其中的原則,就可以很好地改善目前畢業設計過程中出現的若干問題。

 4、學院對畢業設計的要求

近幾年,資訊工程學院結合自己的實際,要求學生在畢業設計過程中都做結合生產實踐的課題,目的是為了培養學生的創新精神和實踐能力。但是在指導過程中,發現大部分學生都沒有嚴格按照軟體工程的思想進行相應軟體的開發,導致許多學生的畢業設計質量較低。根據這種情況,學院特在畢業設計的選題、畢業設計的組織管理程式、指導教師的條件和職責以及畢業設計的評閱、答辯與成績評定等方面做了比較嚴格的規定,以確保畢業設計的質量。

 5、計算機專業學生畢業設計中存在的主要問題

5.1 選題不恰當

本院在指導計算機專業學生做畢業設計時,均要求做軟體設計類的課題,即生產實踐類和社會應用類的題目。但是在實際執行過程中,仍不免存在選題不恰當的問題。1)選題的範圍過大,也就是所開發軟體要實現的系統模組太多,很多學生只是做了系統的幾個頁面或者只實現部分模組。

2)選題重複。許多學生對畢業設計的重視程度不夠,他們只把畢業設計作為大學生活的一個環節,純粹地為了完成學業,為了拿到相應的學分而去做畢業設計。這樣就導致許多不同指導教師的學生都做同一個題目,並且存在部分內容雷同的現象。3)選題脫離畢業實習。學院規定畢業設計是從大學本科的第七個學期開始的,而與此同時,也對學生進行畢業實習的安排,通過畢業實習,使學生進一步理解和領會所學的基本理論,瞭解計算機技術的發展及應用,較為系統地掌握計算機操作技能和專業技術,把所學知識與解決實際問題相聯絡,還可為畢業設計收集必要的資料,做好技術、知識、資料的準備工作。但是仍有部分學生的選題和畢業實習相脫離,選擇一些虛擬題目。

5.2 不重視軟體定義過程

上述講到軟體週期的問題,在軟體定義階段包括問題定義、可行性研究和需求分析。問題定義階段必須回答的關鍵問題是要解決的問題是什麼;可行性研究階段要回答的關鍵問題是對於上一個階段所確定的問題有行得通的解決辦法嗎,也就是研究問題的範圍,探索這個問題是否值得去解,是否有可行的解決辦法;需求分析是回答為了解決這個問題,系統必須做什麼,主要是確定目標系統必須具備哪些功能。然而在畢業設計的過程中,許多學生往往都直接略去軟體定義階段,沒有對所要解決的問題進行實際的定義、研究和分析,直接進入軟體開發階段,而且在開發階段也將大部分的時間放在編碼上。還有一部分學生在軟體開發的過程中一味程式設計,當需要了解需求的時候再去做研究,往往欲速則不達。這也造成畢業設計時間一再拖後,自然而然導致畢業設計質量低下。

5.3 不重視設計過程和測試過程

軟體在開發階段一般要求經過總體設計、詳細設計、編碼和測試這幾個有序的過程。然而在畢業設計中,許多學生在開發階段跨越前期的設計過程,直接進行編碼;或者在整個設計的過程中,沒有事先對所要開發的軟體做一個詳細的規劃,往往是想起來哪個部分就做哪個部分,甚至有些部分做了一半就又開始另外一個階段的'工作,多個階段同時進行,雜亂無章。這種無序的軟體開發只能帶來軟體結構的混亂、功能程式碼的重複開發,並導致系統最後可整合性差。還有一部分學生做完編碼不進行相應的測試,在答辯過程中執行系統的時候,許多地方都出現不同的錯誤,甚至程式無法執行,這樣也極大地降低了畢業設計的質量。