劉欣 趙瑩瑩
摘 要 針對獨立學院強調培養(yǎng)學生動手能力及實際應用能力的要求出發(fā),將軟件工程實驗中原來的虛擬客戶改變?yōu)樵诒驹簝纫詫嶋H用戶作為調研對象,采集各個部門的實際需求,并最終生成相關的需求分析文檔。這種教學方式的改進大大提高了學生參與的積極性,效果良好,為后續(xù)課程的改革提供了經驗和參考。
關鍵詞 獨立學院 軟件工程 案例驅動
中圖分類號:G642 文獻標識碼:A
軟件工程是計算機專業(yè)學生的一門專業(yè)必修課。軟件工程學是將計算機科學理論與現代工程方法論相結合,著重研究軟件過程模型、設計方法、工程開發(fā)技術和工具,指導軟件生產和管理的一門新興的、綜合性的應用科學。隨著計算機科學和軟件產業(yè)的迅猛發(fā)展,軟件工程學已成為一個重要的計算機分支學科,正在不斷涌現新方法、新技術,蓬勃地發(fā)展著。
對于應用型本科的計算機專業(yè)學生來說,軟件工程更是一門起到重要指導性作用的學科。在軟件開發(fā)過程中,從調研、可行性分析(技術可行、經濟可行、法律可行性)、需求分析、總體設計、詳細設計、編碼和測試、以及最后的產品維護和提交。這里每一個階段的工作都要在軟件工程思想的指導下才能最大程度的保證軟件產品的開發(fā)進度及產品質量。
1 軟件工程實驗改革的現實依據
軟件開發(fā)實踐過程問題較多,且并不因軟件開發(fā)工具的完善而有大的改善,軟件工程控制的重要性越來越被重視。軟件開發(fā)過程的問題常有如下幾種:
(1)在開發(fā)項目的初始階段,對系統進行的調研工作及可行性分析不夠充分,導致對軟件開發(fā)成本和進度的估計常常很不準確。
(2)在需求分析階段,一方面,是客戶與技術開發(fā)人員之間的矛盾:對于客戶來說,由于對技術行業(yè)的不了解,往往會提出遠遠超越技術所能實現范圍內的要求,而對于技術人員來說,由于行業(yè)的限制,對用戶的需求理解不清,從而導致用戶對“已完成的”軟件系統不滿意的現象經常發(fā)生;另一方面,需求的可測性較低,導致后期項目的測試驗收較困難。
(3)在軟件產品的概要設計階段,架構設計比較難。
(4)在軟件產品的編碼設計階段,代碼的編寫不夠規(guī)范。
(5)由于前期需求的不充分,軟件產品的質量往往靠不住,導致軟件使用過程中的維護工作相對困難。
(6)軟件通常沒有適當的文檔資料。
(7)軟件開發(fā)生產率提高的速度,遠遠跟不上計算機應用迅速普及深入的趨勢。
以上問題當中,最突出的是與需求分析相關的問題,如果需求分析沒有做好,將影響整個項目的實施和完成??梢娦枨蠓治鲈谡麄€軟件生存周期中的重要性。
除此之外,對于應用型本科的計算機專業(yè)學生來說,在整個大學四年的教學計劃中,課程設計的內容貫穿始終,從以往的完成情況來看,我們的學生在設計的過程中往往對課題的內容在設計階段過于簡單化,并沒有從實際客戶的角度來思考問題。輕設計重開發(fā),導致最終形成的作品缺乏實用價值。
鑒于以上的諸多問題,我們將軟件工程的理論與實踐相結合,以實際項目案例為驅動的方式,讓學生分小組合作完成軟件工程的實踐課程,讓學生采用軟件工程的思想作為指導,工程化、規(guī)范化地模擬和實踐軟件生存期內的需求分析階段,并形成需求分析階段的成果及相關文檔。對學生軟件工程理論思想的提升和實踐能力的提高有著重要的意義。
2 軟件工程實驗改革計劃
2.1 教學方式的改進
原有的實驗內容是在參照各個高等院校的實驗內容以及相應的實驗教程,經過篩選整合之后,形成的一套以針對軟件生存周期各個階段所涉及的CASE工具的使用為目標的指導書。應用性較強,重點在于掌握一些主流軟件工程工具的基本使用方法。相對來說,由于內容比較分散,各個實驗環(huán)節(jié)之間相關性不夠,在指導性方面則比較弱。鑒于原有內容的不足之處,現在擬將軟件工程工具的使用分布到實際的工程項目案例中來,轉變?yōu)橐皂椖堪咐秊轵寗拥姆绞剑寣W生帶著開發(fā)設計項目的目標將各種工具的使用聯系起來,對軟件生命周期中需求分析階段的工作有全面系統的認識。
2.2 教學內容的改進
原來的項目題庫中的題目主要是參照各個高等院校的實驗內容以及從現有的圖書館及網絡參考資料中得來?,F在擬由教師根據實際需求,設計項目題庫,如:實驗室系統、宿舍系統、超市系統等等。這些題目主要從學校實際應用的角度出發(fā),特點是實踐性強、目標明確、需求方便獲取,使學生能夠在校內各部門進行調研工作,與相關工作人員交流,面對真實的客戶完成需求分析階段的資料收集和整理工作。本項目所做的工作可以為其他相關課程的課程設計所用,為完成一個優(yōu)秀的課程設計提供了必要的參考及指導。
2.3 教學過程的改革
從原來的獨立完成的設計型實驗,改為分小組協作完成的設計型、綜合型實驗。鍛煉學生的團隊協作能力、組織能力、溝通能力和表達能力。
2.4 考核方式的改革
在課程結束之后,由真實客戶的代表及專業(yè)相關老師組成評審小組,學生以小組為單位將所做的需求分析結果進行陳述,再由評審小組進行點評和打分。最終,總評成績由平時成績和評審成績組成,其中平時成績占總評成績的70%,平時成績占總評成績的30%。
3 軟件工程實驗改革實施效果
在本次教學改革實施的過程當中,得到的學校各部門相關老師積極配合,為改革的實施提供了真實的訪問客戶。同時,對于這種真實客戶的訪問方式,學生積極地參與到調查訪問當中,為設計出實用的軟件作品提供了大量的素材,改變了原來單一的封閉的需求分析模式。學生在與真實客戶交流的過程中,也鍛煉了自己的溝通和表達能力。根據客戶給出的各項需求,要進行歸納整理,最終形成整個系統的基本功能。
通過本課程的實踐教學改革,使學生將數據結構、數據庫、程序設計語言、UML建模等課程的知識全面聯系起來,讓學生對計算機專業(yè)課程有了全面的理解、認識和掌握。
4 教學改革的創(chuàng)新點及成果
4.1 教學改革的創(chuàng)新點
本次教學改革的創(chuàng)新之處有以下幾點:
(1)傳統的軟件工程實驗只注重了各種輔助軟件的使用,各個實驗內容的相關性不夠緊湊。本項目的創(chuàng)新之處,正是為了解決這些問題,以一個實際的案例為線索,貫穿整個實驗的始終,讓學生對軟件設計的過程有一個整體的認識,了解軟件工程思想的指導性作用,并在每一次實驗的過程當中加強對自己本課題更深層次的了解。
(2)本教改項目的工作,旨在讓學生對軟件開發(fā)的需求分析階段有更深入的了解和掌握,并最終形成文檔用于指導軟件開發(fā)的后期工作。因此,學生所做的需求分析工作可以為其他相關課程的課程設計所用,為完成一個優(yōu)秀的課程設計提供了必要的參考及指導,對后期課程建設有著重要的意義。
(3)學生通過本實踐課程的學習,可以繼續(xù)完成一個可展示的、規(guī)范的完整作品,對后期課程的學習是個極大的鼓舞,并可以增強學生學習的自信,對畢業(yè)后走向工作崗位有一定的幫助。
4.2 教學改革的成果
從原來學生自己做需求,自己開發(fā)的單一封閉的方式轉變?yōu)橐詫嶋H案例為驅動的設計開發(fā)模式,極大的提高了學生的學習興趣。也在與外界交流的過程當中,發(fā)現自己原來的不足之處。在形成了最終的軟件分析文檔之后,部分動手能力較強的學生將項目進行了后期的開發(fā)工作,形成了可以實際應用的成果,并且投入到了相關部門當中去使用,達到了良好的使用效果。為校園的網絡化建設提供了前期的準備工作。
5 結束語
以實際案例為驅動的軟件工程實驗模式,能夠讓學生獲得一種全面的、切實有效的教育。目前,我國傳統的學科課程理念根深蒂固,真正與實際案例相結合的項目課程開發(fā)還處在實踐探索的階段,本次教改項目身先士卒,希望能夠起到拋磚引玉的作用,為后續(xù)課程的改革提供經驗和參考。