軟件工程專業(yè)實踐教學改革的研究與探討
本文關(guān)鍵詞:軟件工程專業(yè)實踐教學改革的研究與探討,由筆耕文化傳播整理發(fā)布。
當前所在位置:中國論文網(wǎng) > 教育論文發(fā)表 > 軟件工程專業(yè)實踐教學改革的研究與探討
軟件工程專業(yè)實踐教學改革的研究與探討
發(fā)布日期: 2014-05-23 發(fā)布:
2014年8期目錄 本期共收錄文章20篇
摘要:軟件工程專業(yè)是一門實踐性極強的學科,傳統(tǒng)的教學方法側(cè)重于軟件編程,而忽視了軟件工程的系統(tǒng)性和工程化的特點。對于軟件工程專業(yè)實踐性教學中存在的問題提出了一些改進的方法和措施,包括加強軟件項目設計環(huán)節(jié)、實施大型軟件項目、開展軟件測試和課程考核改革等,實踐結(jié)果表明改革措施很好地改善了學生的實踐能力,說明了改革措施具有實際意義和參考價值。
中國論文網(wǎng)
關(guān)鍵詞:軟件工程;實踐教學;軟件設計;軟件測試;考核方式
作者簡介:鄧澤林(1977-),男,湖南常德人,長沙理工大學計算機與通信工程學院,講師;謝中科(1968-),男,湖南長沙人,長沙理工大學計算機與通信工程學院,副教授。(湖南 長沙 410076)
基金項目:本文系長沙理工大學校級精品課程的研究成果。
中圖分類號:G642.0 文獻標識碼:A 文章編號:1007-0079(2014)08-0176-02
當前,隨著信息技術(shù)的持續(xù)發(fā)展和國家政策的有力支持,軟件產(chǎn)業(yè)得到了長足的發(fā)展與進步。為了更好地培養(yǎng)軟件工程人才,很多大學相繼開設了軟件工程專業(yè),專門進行軟件工程課程的教學和軟件從業(yè)人才的培養(yǎng)。經(jīng)過多年的教學實踐,軟件工程專業(yè)不僅培養(yǎng)了大量的軟件工程的人才,還積累了相當?shù)慕虒W和實踐經(jīng)驗,包括課程教學的改革[1]、教學團隊的建立[2]、學生能力評價方法[3]和考核方法[4]。然而,軟件工程專業(yè)涉及的是復雜的課題,專門研究如何以系統(tǒng)性的、規(guī)范化的、可定量的過程化方法去開發(fā)和維護軟件,以及如何把經(jīng)過時間考驗而證明正確的管理技術(shù)和當前能夠得到的最好的技術(shù)方法結(jié)合起來的學科,它涉及到程序設計語言、數(shù)據(jù)庫、軟件開發(fā)工具、系統(tǒng)平臺、標準、設計模式等方面。[5]由此可見,軟件工程的研究范圍包括計算機科學、管理學等領(lǐng)域,形成了一個交叉學科,而且目前軟件工程尚未形成成熟的教學模式,教材也少有提供較為成熟的設計、訓練和實踐內(nèi)容。
軟件工程的這些特點導致了軟件工程的實踐教學面臨著諸多困難。傳統(tǒng)的軟件工程教學中過多地強調(diào)理論教學,忽視軟件工程專業(yè)系統(tǒng)性、工程化的特點,使得學生難以按照軟件工程的原則實施項目,造成學生的專業(yè)能力有所欠缺,難以滿足企業(yè)的要求。在此,長沙理工大學計算機與通信工程學院軟件工程專業(yè)結(jié)合多年的教學經(jīng)驗,針對傳統(tǒng)實踐教學的弱點提出相應的改革方案,以改善學生的軟件工程實踐能力,提高學生軟件開發(fā)水平,更好地滿足企業(yè)的用人需求。
一、教學中的問題
1.忽視軟件項目的分析和設計環(huán)節(jié)
軟件工程是通過健全的工程原則來進行軟件項目的開發(fā)、管理和維護的。與道路、建筑等工程項目具有完備的圖紙、方案相似,軟件工程項目也應具有大量的分析與設計文檔用于后續(xù)項目的開發(fā)和維護。然而,傳統(tǒng)的教育比較注重軟件編程、系統(tǒng)實現(xiàn)等環(huán)節(jié),而忽視了項目的分析和設計環(huán)節(jié),從而使得軟件項目難以有效地實施和管理。
2.缺乏團隊開發(fā)經(jīng)驗和項目管理經(jīng)驗
軟件工程往往涉及較大的軟件項目,這些項目難以通過個人完成,因此需要團隊的協(xié)作。而在課程教學中由于場地、時間等因素的限制,難以開展規(guī)模較大的項目。常用的教學案例往往規(guī)模較小,單個學生即可編程實現(xiàn),導致學生缺乏團隊開發(fā)經(jīng)驗。沒有團隊開發(fā)經(jīng)驗將會導致學生對團隊開發(fā)環(huán)境不熟悉,從而難以有效地進行較大規(guī)模項目的實施。不實施大規(guī)模的團隊協(xié)作開發(fā)將不可能涉及項目進度的合理安排、項目的過程控制、人員調(diào)配等項目管理經(jīng)驗,導致培養(yǎng)出來的學生仍然是一個初級程序員而非合格的軟件工程師。
3.忽視軟件測試
軟件測試是軟件質(zhì)量控制的重要環(huán)節(jié),掌握基本的軟件測試方法是軟件工程學生必須掌握的技能之一。傳統(tǒng)的實踐教學側(cè)重于系統(tǒng)功能的實現(xiàn)而忽視軟件測試環(huán)節(jié),軟件系統(tǒng)的測試和驗證僅僅通過少量的數(shù)據(jù)來進行,而對邊界情況缺乏足夠的考慮和測試用例的設計,使得程序在運行中經(jīng)常出現(xiàn)錯誤,表現(xiàn)不夠穩(wěn)定。
4.考核方式陳舊
課程的考核方式和評分規(guī)則將直接影響學生的學習重點與學習方法。很多軟件工程的課程仍沿用筆試考試方法,這種方法不僅難以考核學生的真實水平,而且容易將學生的學習主動性引導至背誦書本、突擊考題的學習方法上,不利于提高學生的動手能力。
由于傳統(tǒng)的實踐教學存在一些問題,導致學生的學習存在一些誤區(qū),使得學生的能力與企業(yè)的用人需求存在差距,因此,軟件工程的實踐教學環(huán)節(jié)需要進行改革以提高學生的能力。
二、實踐教學改革措施
通過實踐教學的改革,激發(fā)學生學習的熱情和興趣,提高學生的實踐能力,培養(yǎng)出軟件技術(shù)人才所必須的實踐能力、工程能力和創(chuàng)新能力,滿足企業(yè)對軟件技術(shù)人才的要求。結(jié)合傳統(tǒng)教學的問題,從如下方面進行了實踐教學環(huán)節(jié)的改進:加強軟件項目的分析和設計;大中型項目的實施和管理;加強軟件測試能力培養(yǎng);課程考核方法改革。
1.加強軟件項目的分析和設計
通過UML等課程的學習,掌握基本的圖示元素,并依據(jù)課程案例來練習軟件項目的分析與設計。在“UML建�!钡恼n程中,我們采用了若干經(jīng)典的教學案例,如ATM取款機的需求分析等,并以此為基礎(chǔ)設計用例圖、時序圖、協(xié)作圖等的圖例,掌握基本設計能力。同時,通過設計簡單的任務達到熟悉Rational Rose、Microsoft Visio等軟件的目的。通過學習“數(shù)據(jù)庫原理”,掌握基本的E-R分析,將概念模型轉(zhuǎn)換成物理模型。同時,要求學生熟練掌握關(guān)系數(shù)據(jù)庫范式,能夠根據(jù)實際情況將范式進行分解,以達到更優(yōu)化的數(shù)據(jù)庫設計方案。
在實際問題中,要求學生根據(jù)實際情況,結(jié)合軟件工程的瀑布模型,進行系統(tǒng)的分析與設計,并撰寫文檔。這些文檔主要包括需求分析報告、可行性方案、用例分析圖、時序圖、類圖、數(shù)據(jù)庫的設計、界面設計等描述項目和系統(tǒng)功能的文檔。這些文檔需要進行討論和論證后才能進行后續(xù)的工作。通過前期的系統(tǒng)分析和設計,使得學生能夠從全局角度掌握軟件項目,從而可以根據(jù)這些設計來指導后續(xù)的開發(fā)和管理工作。 2.大中型項目的實施和管理
大型軟件工程項目在實際實施中受場地、時間、人員等因素的限制,難以在教學課時內(nèi)進行有效地控制和驗收。為此,修改了教學大綱,在新的教學大綱中安排1個學分的“軟件工程實踐”課程,課程性質(zhì)為必修。該課程不開設講課,而是為每個學生安排一個指導教師,每個指導教師負責指導3~4人4學年。這3~4個學生自然成為一個開發(fā)小組,每個學期接受不同的項目,組長輪流擔任。
通過大一、大二兩個學期的鍛煉,學生掌握了基本知識、具備基本的開發(fā)能力后,導師在大三的一個學年里需要為組員提供1~2個來自企業(yè)里的大中型工程項目,不僅使學生有機會開展大中型軟件項目,而且使學生更加了解軟件企業(yè)對員工的能力要求,利于學生以后順利求職就業(yè)。學生在接受項目之后需要進行適當?shù)男枨蠓治�,查閱資料,了解項目需求。同時,組員之間要討論系統(tǒng)功能,并進行相應的系統(tǒng)分析和設計,最終形成需求分析報告和系統(tǒng)設計白皮書。然后,組長根據(jù)系統(tǒng)功能為組員指派任務,制定項目進度規(guī)劃。接下來團隊進入編碼開發(fā)階段,開發(fā)小組采用CVS或者VSS進行源代碼版本控制,組員之間相互協(xié)調(diào),在團隊環(huán)境中進行軟件實現(xiàn)。
由于學生在開發(fā)項目的同時還有其他課程的學習,因此不能保證項目每天都有進度,但應該盡量要求每組成員保證每天至少在晚上一起開發(fā)項目1~2個小時,并要求學生錄入指紋或者簽到,這樣就能夠從時間、人員上保證大中型項目的實施。至于場地的保證則相對容易,軟件專業(yè)有專用的實驗室,我們?yōu)槊總€學生分配一個機位。學生可以自帶電腦進入實驗室,或者向?qū)嶒炇疑暾堄嬎銠C使用。
每個組員每周提交項目進度報告給組長審查,組長將情況匯報給指導教師,使得指導教師能夠及時掌握項目進度。每個學期學生的出勤時間匯總以及項目完成情況將決定學生是否最終能夠獲得“軟件工程實踐”這門課程的學分。其中項目完成情況通過項目答辯確定。
在實踐過程中,大部分組員都能較好地遵守規(guī)章秩序,積極參與到項目的實施中去,而且由于學生開發(fā)了大量的項目作品,使得學生有條件地參加各種比賽。在2013年湖南省大學生程序設計競賽應用開發(fā)組的比賽中,我們專業(yè)的學生提交了3個作品,其中有2個作品獲得一等獎,一個作品獲得二等獎,取得優(yōu)異的成績。
3.加強軟件測試能力培養(yǎng)
軟件測試是一項非常重要的工作,用于評估開發(fā)完成的計算機軟件的正確度和質(zhì)量等指標。由于軟件測試具有較強的專業(yè)性,只要求學生具備基本的測試能力即可。為了提高學生的軟件測試的能力,使學生具備良好的測試習慣并掌握基本的測試技術(shù),不僅開設了“軟件測試”的課程,還購買了軟件測試平臺,供學生練習。
在項目開發(fā)的過程中主要進行單元測試,集中對用源代碼實現(xiàn)的各個程序單元進行測試,驗證代碼模塊是否實現(xiàn)了用戶要求的軟件功能。在測試用例的設計時著重考慮系統(tǒng)邊界條件進行測試,防止出現(xiàn)因系統(tǒng)邊界考慮不清而出現(xiàn)的錯誤,使得程序更加穩(wěn)定。在各單元完成后,再進行集成測試,把已測試過的模塊組裝起來進行系統(tǒng)測試。通過這些測試可以檢查已實現(xiàn)的軟件是否滿足了需求規(guī)格說明中確定了的各種需求。
4.課程考核方法改革
對于具有實踐性質(zhì)課程的考核應該盡量避免使用筆試的方式進行考核,,而應該使用學生的實踐結(jié)果進行評分。
(1)階段作業(yè)。每一門課程在教學的過程中分為若干階段,每個階段的若干知識點需要掌握并融會貫通,因此,在合適的時間點上都會安排相應的階段性作業(yè)。該作業(yè)不是考查單一的知識點,而是若干知識點的融合,使學生在學習的過程中即能夠運用多個知識來實現(xiàn)較復雜的、實用的功能軟件,提高學生的學習興趣。這些階段性的作業(yè)通過教學平臺提交,作為平時成績的一部分。
�。�2)課程項目。在課程結(jié)束時安排有一定規(guī)模的項目作為期末考試的內(nèi)容,并集中安排時間讓學生在機房實踐。在項目檢查時,主要通過三個方面來進行評分:一是項目外觀�?磳W生的作品是否考慮到了良好的用戶體驗,是否考慮到了界面的常用模式、界面是否美觀、專業(yè)等因素。二是系統(tǒng)功能�?磳W生的作品是否實現(xiàn)了系統(tǒng)功能,包括代碼的優(yōu)美性、系統(tǒng)架構(gòu)是否合理等。三是項目亮點。學生在項目實現(xiàn)的過程中是否具有一定的創(chuàng)新性,如是否提高了代碼的復用性、可擴展性等。課程項目的評分與階段作業(yè)成績加權(quán)求和即可作為課程成績。
�。�3)項目答辯。對于一些實踐性很強的課程設計,依然采取導師制,每個老師負責5個左右的學生。導師需要為學生出題,并指導課程設計,學生在導師的指導下完成課程設計。學院安排統(tǒng)一的時間進行項目答辯,學生不僅需要演示系統(tǒng)、提供課程設計報告,還要現(xiàn)場回答導師們的問題,導師們根據(jù)綜合情況對答辯學生打分。通過這種方法可以給學生嚴肅感、正式感,使學生更重視課程設計的質(zhì)量,更好地完成課程設計任務。
三、結(jié)論
針對傳統(tǒng)的軟件工程實踐教學的問題,提出了相應的改革措施。這些措施主要包括:注重軟件項目的分析與設計以及項目文檔的組織,從而實現(xiàn)對軟件項目更好的控制和管理;創(chuàng)造條件實施大中型軟件項目,利用團隊開發(fā)環(huán)境進行軟件的開發(fā)。在團隊開發(fā)中,需要對項目的開發(fā)過程進行有效的管理管理,確保項目的成功實施;加強軟件測試能力培養(yǎng),強化單元測試的能力,實施項目質(zhì)量控制;改革實踐課程考核方式,主要通過階段作業(yè)、課程項目、項目答辯等環(huán)節(jié)對學生能力進行考核。
通過這些實踐教學的改革,學生的動手能力得到了顯著的改善,而且學生團隊能夠勝任軟件項目的過程控制和管理,同時在開發(fā)的過程中能夠通過軟件測試提高項目的質(zhì)量。實踐課程考核的改革將考核的重點放在項目實施和項目評估,引導學生積極參與軟件項目的實踐。
在軟件工程實踐教學改革的過程中,學生們的軟件作品還積極參加了“挑戰(zhàn)杯”、大學生程序設計競賽應用開發(fā)作品的競賽,并獲得了多個獎項。這些成績說明了教學改革確實提升了學生的能力,相應的改革措施具有一定的參考意義。
參考文獻:
[1]鄧澤林,謝中科,胡寧靜.以企業(yè)需求為導向的Java程序設計教學改革探討[J].中國電力教育,2010,(28):114-116.
[2]翁偉,朱順痣,肖蕾,等.應用型軟件工程教學團隊建設方案[J].計算機教育,2011,(8):43-46.
[3]周波,劉興麗,喬付,等.應用型本科院校學生軟件工程能力評價研究[J].中國電力教育,2013,(23):18-19.
[4]厲小軍,謝波.軟件工程實踐課程教學改革探索[J].計算機教育,2012,(3):106-110.
[5]Wikipedia.Software engineering[EB/OL].[2014-01-09].http://en.wikipedia.org/wiki/Software_engineering.
注:鄧澤林為本文通訊作者。
�。ㄘ熑尉庉嫞和踝F迹�
本文關(guān)鍵詞:軟件工程專業(yè)實踐教學改革的研究與探討,由筆耕文化傳播整理發(fā)布。
本文編號:166409
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/166409.html