趙一石+劉袁緣+方芳
摘要:軟件工程綜合實習是計算機科學與技術(shù)及軟件工程專業(yè)學生耗時最長也是最重要的一門實習課程。該實習課程將學生在低年級階段學習的各類基礎知識有機聯(lián)系起來,使學生能夠綜合貫通地理解軟件產(chǎn)生的過程,并進一步實踐如何運用工程化的思想來制造軟件。本文主要從實習的形式、團隊的組成、指導教師的角色和考核形式幾個方面對軟件工程綜合實習進行了探討。
關鍵詞:軟件工程,綜合實習,組織形式,質(zhì)量監(jiān)控
一、 引言
在黨的十九大會議上,我國醞釀出了習近平新時代中國特色社會主義,提出了實現(xiàn)社會主義現(xiàn)代化和中華民族偉大復興的總?cè)蝿?。隨之,我國社會主義發(fā)展也進入了新時期,科學技術(shù)在社會發(fā)展的各個方面的作用日趨明顯。政府在不久前制定了“互聯(lián)網(wǎng)+”行動計劃,并進一步推動移動互聯(lián)網(wǎng)、云計算、大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能與現(xiàn)代制造業(yè)、電子商務、金融業(yè)、電子政務的結(jié)合。軟件作為以上眾多應用的核心基礎,軟件行業(yè)在社會發(fā)展中的比重越來越大,也導致軟件工程人才的需求量逐步增加,軟件人才的培養(yǎng)亦受到社會各個行業(yè)的普遍重視。軟件工程綜合實習是計算機類專業(yè)學生最重要的一門核心實習課程,通過此實習可以把學生在低年級學到的較為零散的軟件技術(shù)有機地結(jié)合起來,運用工程化的思想來開發(fā)軟件。探索軟件工程綜合實習課程建設能夠為社會提供高質(zhì)量的軟件人才有著深刻的現(xiàn)實意義。
二、 軟件工程綜合實習的培養(yǎng)目的與目標
軟件工程綜合的主要目的在于基于大學生掌握了一定的軟件基礎知識上,通過模擬企業(yè)工程實踐的方式,培養(yǎng)學生的文檔撰寫能力、團隊合作精神以及對學生進行規(guī)范化的軟件開發(fā)和管理的訓練。良好的軟工綜合實習的組織形式、監(jiān)管以及考核,能有效幫助學生理解軟件開發(fā)的過程,也能進一步鞏固和復習基礎理論知識。根據(jù)中國工程認證教育認證協(xié)會對工科學生的畢業(yè)要求,開展軟件工程綜合實習課程的目標主要包括以下六個方面:(1)進一步鞏固工程方面的基礎知識;(2)鍛煉學生識別、表達、分析復雜軟件工程問題的能力;(3)培養(yǎng)學生針對特定軟件需求,設計并開發(fā)軟件架構(gòu)、模塊/組件、數(shù)據(jù)庫的能力;(4)訓練學生在軟件開發(fā)小組內(nèi)的協(xié)作水平;(5)孕育學生的軟件項目管理能力;(6)培養(yǎng)學生在軟件工程實踐中的職業(yè)道德和規(guī)范。
目前,不少文獻對軟件工程綜合實習的課程建設在選題、分組、教師的作用等方面做出了一些討論,但在組織形式、實習團隊組成、教師指導方式以及考核形式等具體細節(jié)方面尚缺乏深入細致的思考。在本文中,作者將根據(jù)理論分析和親自指導學生實習的體驗,結(jié)合實習培養(yǎng)目標,談談進一步完善和改進現(xiàn)有的實習方式的幾點思考。
三、 綜合實習的環(huán)節(jié)以及思考
1. 實習的形式
實習形式是指學生以何種方式進行訓練,也是課程的基調(diào)所在。就該課程而言,通??梢赃x擇企業(yè)實習或校內(nèi)實習兩種形式。企業(yè)實習雖然可以接觸到生產(chǎn)第一線的實際案例,但是周期長、過程不可控、監(jiān)管難度大、而且實習內(nèi)容不全面,所以大部分高校選擇在校內(nèi)實習進行實際模擬。
大部分高校的軟件工程綜合實習設置的課時較長,一般需要學生連續(xù)兩到三個星期,每天至少半天時間在機房進行封閉式實習。在短短的兩三周內(nèi),要從需求分析到編碼再到測試,完成軟件工程中的每一個步驟。這種短時間集中式的訓練模式帶來了兩個很大的問題:其一,集中式的訓練環(huán)境限制了軟件工程過程中不少環(huán)節(jié)的創(chuàng)造性。例如在需求獲取部分,學生需要在軟件使用的實地進行觀察、采訪,在設計階段,功能性和非功能性的需求要引入不同層次的用戶進行會議討論;其二,大部分學生為了在短短的兩三周左右完成軟件的開發(fā),幾乎絕大部分的工作集中在編碼階段,需求獲取和設計環(huán)節(jié)都是草草了事,甚至有些同學都是先開發(fā)完軟件產(chǎn)品,之后才補充相關文檔,完全違背了工程的技術(shù)和方法。在本文前述的培養(yǎng)目標中,僅僅有限度地鍛煉了學生分析問題的能力和設計/開發(fā)軟件的能力,其他培養(yǎng)目標則很難實現(xiàn)。
因此,我們可以考慮采取非集中式的綜合實習方式,拓展學生在封閉式機房實習之外的實習時間。在實習總時間上,擴展到一個學期(大約4個月)的時間,每個星期只安排一次機房實習,主要用來匯報每周的工作,從而來進行督促、檢查和指導。這樣,學生可以合理安排時間,對軟件工程過程的每個階段有較大的時間和空間來思考、理解和實踐,并有較大的機會來鍛煉組內(nèi)合作以及項目管理能力,避免了以交差為目的集中在編碼部分。
2. 團隊的組成
為了真實地模擬軟件開發(fā)環(huán)境,軟件工程綜合實習必然是以團隊的形式來開展。團隊形成的主要因素包括組成人數(shù)、個體的搭配、人員的分工。組成人數(shù)即為組成團隊人員的個數(shù),個體的搭配涵蓋了團隊人員的能力、性格、性別等方面的分布情況,人員的分工則是對于工作的分配原則。
目前大部分的實習團隊是5人左右,形成的過程采取的是學生自由組合向老師提出申請,指導老師再根據(jù)實際情況進行微調(diào)。組內(nèi)人員的分工基本上是需求1人、設計1人、編碼1~2人、測試1人。5人左右的團隊是比較符合實習的需求,但學生自行分組,很容易造成關系好的一組、同性別的一組等極端情況的發(fā)生,老師之后進行微調(diào)也很難做出較合適的變動。另外,在大學的學習環(huán)境中,實習指導教師一般都不會對班上的同學有比較透徹的了解,難以調(diào)整出理想的分組方式,從而導致學生的團隊協(xié)作得不到良好的鍛煉。
因此,我們建議可以采用心理學中調(diào)查問卷的方式,測試出同學們的性格。以此為依據(jù),再進一步的考慮成績、性別等因素,均衡的分組。不同于公司實際情況的是,對于校內(nèi)實習訓練來說,組內(nèi)的角色構(gòu)成可以讓每位同學同時都參與需求、設計、編碼、測試等環(huán)節(jié),以免造成實習的片面性。
3. 指導教師的角色
教師在指導實習的過程中通常扮演兩個角色:其一,監(jiān)督學生的實習過程;其二,指導學生的實習過程。對于集中式的實習方式而言,指導老師全程在機房巡視走動進行監(jiān)督,學生采取舉手的方式提問來尋求導師的指導,這種方式更多的適合于低年級學生編程課的實習。而對于非集中式的軟件工程綜合實習,指導老師的監(jiān)督可以實行階段式的模式,例如每周一次的檢查,在檢查的同時對現(xiàn)階段的工作進行指導以及對參與下一階段工作的討論。endprint
在這種情況下,我們建議每一個實習小組安排一個監(jiān)管導師,同時在傳統(tǒng)的角色上,增加在軟件工程開發(fā)過程中stakeholders的角色。在需求階段,指導教師可以扮演甲方的角色,在設計階段指導教師可以扮演用戶,在開發(fā)和測試階段指導教師可以扮演項目經(jīng)理的角色。這種方式避免了指導教師指導學生編程的低級別問題,而重點放在了工程化的角色指導上面,同時也鞏固了學生的工程知識,鍛煉了工程問題的分析能力和軟件項目管理能力,并可以監(jiān)督軟件工程實踐中的道德規(guī)范。
4. 考核形式
軟件工程綜合實習的主要目的是讓學生體驗軟件的開發(fā)過程、訓練文檔的撰寫水平、鍛煉團隊協(xié)作能力,并開發(fā)出完整的軟件產(chǎn)品。我們既要考察最終的軟件產(chǎn)品,也要考察學生完成的過程。而在完成的過程中,我們既要考察協(xié)作的情況,也要考察個人的工作情況。
目前大多數(shù)的考核形式是答辯和小組報告,按照一定的比例評定總成績。這種考核形式凸顯的是團體的成果,忽視了個人的工作,而許多消極的學生以此蒙混過關,導致了很多濫竽充數(shù)的問題。我們建議在此基礎上,可以增加個人報告的提交。該報告的內(nèi)容以描述每個人在小組開發(fā)中的實際工作為主,亦可以包含個人軟件過程(PSP)的部分內(nèi)容,例如項目規(guī)劃和時間管理。最后以項目答辯、團體報告、個人報告以及平時成績四部分的加權(quán)成績來評估個人的綜合成績。
四、 結(jié)語
軟件工程綜合實習是本科生進入社會前最重要的一門實習課程,也是最接近企業(yè)真實軟件開發(fā)環(huán)境的一次鍛煉,良好的課程建設可以縮短學生適應社會的時間。本文根據(jù)作者指導軟件工程綜合實習的經(jīng)歷,從實習的形式、團隊的組成、指導教師的角色以及考核形式四個方面對目前存在的問題提出了一些改進的建議和想法,接下來我們打算將這些想法分別進一步細化,在今后的軟工綜合實習中應用,并根據(jù)應用的結(jié)果,進一步進行調(diào)整。
參考文獻:
[1]林廣艷,等.本科生軟件工程實踐課程探索[J].計算機教育,2010,24:138-141.
[2]彭云籌,等.軟件工程綜合實踐及生產(chǎn)實習研究與探索[J].科技信息,2009,33:35-42.
[3]劉偉.“軟件工程”課程教學改革的探索與實踐[J].計算機光盤軟件與應用,2012,265-267.
[4]鐘瑛,朱順痣.《軟件工程綜合實訓》課程教學模式若干思考[J].科技創(chuàng)新導報,2012,31:187-188.
[5]吳春雷,等.軟件工程綜合實驗課程的改革與建設[J].實驗室研究與探索,2017,36(1):180-184.
[6]許麗花.軟件技術(shù)專業(yè)綜合實訓教學質(zhì)量監(jiān)控的研究與實踐[J].教學與教育信息化,2016,4:237-239.
作者簡介:趙一石,劉袁緣,方芳,湖北省武漢市,中國地質(zhì)大學(武漢)信息工程學院。endprint