軟件測試實訓總結范文
時間:2023-03-29 08:28:05
導語:如何才能寫好一篇軟件測試實訓總結,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公文云整理的十篇范文,供你借鑒。

篇1
【關鍵詞】軟件測試;工作過程;課程設計
1.課程的定位與教學設計
1.1 課程定位
《軟件測試》課程作為軟件專業二年級下學期的專業課,它的前導課程是《數據庫設計》、《數據結構》、《軟件工程實施》,后續課程是課程實訓及畢業實習。通過本課程的學習,使學生加深對軟件測試基本理論和基本方法的理解與應用,能熟練使用常用軟件測試工具,并能運用軟件測試工具完成應用軟件的測試工作,提高學生對軟件的測試與維護能力,并進一步培養學生的的團隊協作能力。
1.2 課程設計思路
軟件測試是高職計算機軟件專業學生在以后的工作崗位上要用到的核心技能。因此,本課程應該作為專業必修課程和核心課程,重點培養學生在以后的工作崗位上所需的職業能力:白盒測試、黑盒測試、自動化功能測試與性能測試。
《軟件測試》課程的總體設計思路是,轉變傳統的學科課程模式,不再以知識傳授為主,構建以工作任務為中心的企業培訓體系,引入企業項目,讓學生在真實的企業項目中完成相應的工作任務,從而儲備相關的專業知識,發展職業能力。授課內容重點突出對學生職業能力的培養。課堂上不再單純地只講授理論知識,而是圍繞實際工作任務的需要來選取,這充分考慮了高職學生動手能力強,理論知識薄弱的特點。
2.教學設計
2.1 教學情境設計
本課程小組通過學院專業指導委員會、重慶亞德科技、重慶大佳、重慶港澳大家等軟件公司的企業技術人員進行實際調查,制定了適合高職學生的軟件測試課程體系與職業能力,確定了軟件測試課程典型的教學情景與子情景,在教學情景中給出具體的工作任務、工作方法以及要求學生掌握的知識與技能等,在教學中貫徹理論實踐一體化的教學模式,做到教、學、做三結合,充分體現工學結合的優勢,培養學生的職業素質。本課程的5個工作過程及11個典型工作任務如表1所示。
2.2 教材設計
(1)教材應充分考慮軟件測試的實踐特性,以工作任務為導向,引入必須的軟件測試理論知識,讓學生在實際測試的過程中,循序漸進地掌握必要的理論知識。
(2)編寫的內容要以項目驅動為原則,以企業的實際案例、場景模擬、工作過程錄像為載體,增強課后的能力拓展,并根據高職學生的職業能力所需知識的深度和廣度來編寫,并在具體的工作任務中使學生逐漸形成團隊協作意識。
(3)教材應突出軟件測試技術的實用性、前瞻性和開放性,不能只是簡單地介紹一些技術上的操作,而忽略了軟件學生所需的職業能力,在教材中應融入軟件測試技術中所用到的新規范、新技術、新標準、新工具、新知識,讓學生能系統地掌握軟件測試的前沿知識。
(4)教材應充分引領學生主動、積極地去學習,因此,文字表述要簡明扼要,內容展現應圖文并茂,內容應詳略得到。
2.3 教學方法設計
由于本課程的主要教學內容涉及白盒測試、黑盒測試、自動化功能測試與性能測試等操作性很強的教學環節,必須通過課程實訓才能達到對項目作規范需求分析的培養目標。具體教學方法設計如下:
(1)全班學生分為N個項目小組,3人一小組,1人任組長,組長要求協調溝通能力比較強。
(2)在教學過程中應加強學生對軟件總體的測試能力,采用任務驅動教學,注重以任務引領,提高學生學習興趣;
(3)組建軟件外包中心,引進企業項目,讓學生真實地體驗在軟件公司的測試流程。外包中心作為理論實踐一體化教室,達到理論和實際不脫節。
(4)教學過程中可參考軟件測試評師考試中規定的知識要求和技能等級職業標準。
(5)教師模擬企業的項目經理,必須具有開拓精神,帶領團隊完成工作任務,并在完成工作任務的過程中,探索基于工作過程的職業教育新模式,培養學生的軟件測試能力,構建軟件測試知識體系。
2.4 教學評價設計
(1)突出過程評價,結合課堂提問、實作測試、課后拓展、任務考核等手段,加強實訓教學環節的考核,并注重平時考核。
(2)強調目標評價和理論與實踐一體化評價,注重引導學生進行學習方式的改變。
(3)每個項目小組在完成課程后,要將所學的內容做ppt,匯報本小組項目完成的情況以及體會。
(4)實行學習過程的過程化考核。平時作業、期中與期末考試均采用上機實訓的方式考核,對于不合格者,在團隊的協作幫助下持續練習,直至過關。這樣可以督促學生不斷地練習,真正提高動手能力。
(5)課程的學期成績=平時作業(10%)+上課考勤(10%)+小組項目測試情況(30%)+小組ppt總結情況(10%)+期末成績(40%)
3.課程資源的開發與利用
(1)圍繞軟件測試課程,收集教師和學生必備的軟件測試工具,制作適宜教學的多媒體教學課件。
(2)組建軟件外包中心,搭建實訓工作平臺,為學生實訓提供真實的工作環境,從而提高其職業素養。
(3)要充分開發網絡課程,讓學生在課余時間可以自主學習,彌補學生課本知識的不足。
(4)充分利用和開放實訓中心,將教學與實訓合一,將理論與實踐合一,滿足學生綜合能力培養的要求。
(5)積極利用電子書籍、電子期刊、數字圖書館、校園網、各大網站等網絡資源,使教學內容從單一化向多元化轉變,通過企業技術人員的指導,課程教師的輔導,使學生知識和能力的拓展成為可能。
4.課程的實施效果
(1)基于項目化的授課內容
建立軟件外包中心,引入企業項目內容,軟件測試的授課內容緊緊圍繞企業項目的典型工作任務開展,學生的能力與素質參照軟件測試工程師的崗位要求,讓學生真實感受企業環境,就業零距離上崗。
(2)基于過程化的授課方式
老師授課不再單純地講解理論,完全按照企業的軟件測試流程開展,制定規范的軟件測試計劃、編寫測試用例、利用測試工具測試、編制測試報告,有利于學生養成職業化的學習習慣與工作習慣。
(3)基于理論實踐一體化的教學設備
學生在軟件外包中心上課以及實驗,真正實現了“做中學,學中做”的企業工作環境。
(4)基于能力化的學習評價
學生的評價不再單純地以理論考試為依據,而是從學生的軟件測試專業能力、利用軟件測試工具的能力、團隊溝通協調能力進行綜合地評價。
參考文獻
[1]鄭泳.基于工作過程系統化的高職《軟件測試》課程設計[J].漯河職業技術學院學院,2010(9).
[2]程茂,溫靜,吳玉潔.《軟件測試》課程的教學研究[J].河北師范大學學報,2010(4).
[3]蔡建平.開源軟件測試實踐教學方案設計[J].計算機教育,2011(3).
篇2
關鍵詞:軟件測試;教學改革;人才培養
中圖分類號:G64
文獻標識碼:A
文章編號:1672-3198(2010)03-0237-01
軟件測試是保障軟件質量的重要環節,隨著中國軟件行業的不斷發展,企業對于軟件質量意識的逐步增強,促使國內軟件測試人員的地位不斷提升,軟件產品的質量要求與質量管理正逐漸成為企業生存與發展的核心。為了保證軟件在交付使用的時候能盡量完善,大多數IT企業在軟件產品前都需要做大量的質量控制工作。作為軟件質量控制中的重要一環,軟件測試重新顯示了它的重要位置。
由于中國高等教育往往落后于企業的實際發展,所以在很多高校重開發、輕測試的思想十分嚴重。許多學生對測試工作存在偏見,其中對軟件測試工作有三個認知誤區尤為突出:一、軟件測試是軟件開發完成之后才進行的,只是軟件編碼的最后一個階段。二、軟件測試無需具備很高的技能,是沒有前途的工作,工作枯燥,不具創造性。三、軟件后如果發現BUG就是測試人員的責任。這些認知缺陷導致軟件測試人才缺口進一步擴大,影響了企業對測試人員的招募工作,繼而影響到中國IT產業的發展。同時,國內軟件業因對軟件質量控制的重要作用認識較晚,尚未形成系統的軟件測試人才需求供應鏈。因此,高職院校有必要對此進行思考。
1 軟件測試課程教學現狀
根據各高職院校的專業設置情況來看,目前還沒有高職院校設置軟件測試專業,因此還沒有專門培養專業的軟件測試人才的體系。根據目前軟件企業對軟件測試技術人才的巨大需求,對于以培養滿足社會發展需求的應用型人才為辦學宗旨的高職院校來說,應該增加軟件測試專業的設置和軟件測試人才的培養。
目前,雖然很多高職院校增加了《軟件測試》課程,但在教學方法上一般采用傳統的灌輸式枯燥地講解測試理論和方法,使學生產生抵觸和厭學情緒。軟件測試是一項專業性較強的工作,它包括許多理論知識并要求測試人員具有一定的工程實踐經驗,缺少這些知識和經驗,測試的深度和廣度就不夠,測試工作的質量也就無法保證。因此在該門課程教學中需要提供豐富的實例和習題,并且采用實際軟件項目的測試案例,增加實訓環節,激發學生的學習興趣,促進了理論和實踐的教學,把對學生的應用能力的培養融匯于教學中。
2 軟件測試課程教學目標
根據目前軟件企業對軟件測試技術人才的能力需求,我們給軟件測試課程教學制定了兩個教學目標:其一,幫助學生熟練掌握規范化的軟件開發流程和軟件測試理論;其二,能進行一般的軟件測試,能編寫測試用例,能掌握至少一種軟件測試工具。因此,學生應掌握的知識主要包括:(1)掌握單元測試、集成測試、系統測試、性能測試、功能測試等測試方法。(2)熟悉黑盒測試和白盒測試技術。(3)能夠制定測試計劃和設計測試用例。(4)掌握常用的軟件自動化測試工具。(5)能夠編寫系統測試總結報告。
3 軟件測試課程教學改革方案
3.1 修正學子對軟件測試的認知誤區,提高對軟件測試重要性的意識
傳統的瀑布模型中,軟件項目主要有計劃、需求分析、概要設計、詳細設計、編碼、測試和運行維護這幾個階段。軟件測試處于運行維護階段之前,僅僅是軟件產品交付用戶使用之前保證軟件質量的重要手段。
隨著軟件業的發展,瀑布模型日益暴露出如下缺點:項目之間極少有反饋,在項目后期才能看到結果,這給經常發生需求變更的軟件研發工作產生很多不便,一旦在編碼階段結束才發現設計和需求階段的錯誤問題,修復的成本就會很高。因此測試人員應該在項目早期就介入,進行測試需求分析、制定測試計劃等。軟件測試應貫穿于整個軟件開發生命周期的全過程,以保證各個階段工作產品輸出的正確性。這要求測試人員有很好的溝通能力、理解能力、分析問題能力,同時還必須對該軟件服務的行業有一定的了解。
教師須結合軟件測試的最新趨勢,向學生普及新知識,新技術,以引起學生的學習興趣,擴展學生視野,提高對軟件測試崗位的理解,增強學生內在的學習動力,發揮學生的主動精神,將“要學生學習”變為“學生要學習”。
3.2 改革教學內容,強化實踐教學,促進理論與實踐教學的統一
關注新技術的發展,及時更新教學大綱,在課程內容安排上,注意理論與實踐并重,將《軟件測試》課程劃分為二個模塊組織教學?!盾浖y試理論》課程是理論模塊,占60個學時,《軟件測試實訓》課程是實踐模塊,占60個學時。其中《軟件測試理論》課程涵蓋軟件測試的各項基本技術和知識,以學生較熟悉的應用背景和業務流程的項目開發和測試實踐為主線進行講解,提供豐富的實例和習題,激發學生的學習興趣,內容安排上由易到難,深入淺出。為了驗證理論,加深對理論的理解和掌握,安排需求分析和軟件設計的UML建模、單元測試、WEB系統的性能測試、系統集成測試等實驗。軟件測試實訓需要著重解決的問題是實驗的設計,既要考慮滿足教學的條件與要求,又要實現與實際測試工作的對接,并體現出軟件開發和測試的過程。
理論課和實訓課的講義,由參加了項目開發的專業老師和一些軟件公司的項目負責人編寫、整理出開發過程的所有文檔,包括用例圖、用例描述文本、時序圖、類圖、源代碼以及單元測試和系統測試的測試計劃和測試用例等。
3.3 建立了校外實訓基地, 通過企業實習提高學生的崗位技能,深化教學改革
學生到企業實習是軟件測試人才培養的重要組成部分。同學校周邊的軟件公司合作,建立校外實訓基地,讓學生在軟件開發隊伍中從事真正的軟件測試工作。學生在實習中不但能親身體會軟件測試在軟件開發流程中的作用,提高測試技術,而且可以培養測試人員必須具備的溝通能力、理解能力、分析問題的能力。一名好的測試人員必須能夠同軟件測試涉及的所有人進行溝通, 具有與技術開發者和客戶、管理人員等非技術人員的交流能力,這種能力在課程教學上無法培養的。
讓學生到企業實習還可以實現學生的職業能力與企業工作崗位的“零距離”,使學生根據自己的專業特長和愛好選擇自己在測試團隊的具體方向。掌握相關自動化測試工具的學生可以把自己定位于自動化測試人員,編程功底扎實的同學可以定位于腳本撰寫人員,對相關測試中最易發現問題的地方敏感的同學可以定位于手工測試人員。4 結語
軟件測試課程的教學難點在于對實踐能力的高要求上,我們引入案例教學,營造學生主動學習的氛圍,將課內學習和學生興趣融為一體,切實提高了學生的軟件測試能力,當然軟件測試教學改革方案還需要不斷根據軟件技術的發展和學生的特點不斷進行改進和調整,需要長期堅持不懈的探索。當前軟件測試的重要性已是軟件項目成敗的關鍵環節,當它的重要性已經被各家公司提升到一定高度的時候,高校學子們也應該與時俱進,對于有志從事IT崗位的高校畢業生來說,充分了解各個職位的真實情況,對于將來職業的選擇和規劃都有著莫大的好處。通過對軟件測試課程教學改革,可以看到教學效果明顯改善。學生的理論課成績顯著提高,畢業設計階段能夠應用軟件測試理論對自己的畢業設計進行測試,實驗課教學質量提高了,培養了學生自主創新能力。
參考文獻
[1]王中鳳.開放式實驗教學與創新型人才的培養[J].合肥學院學報(自然科學版),2009,(02).
[2]鐘元生.軟件測試實踐教學特色的構建實踐[J].電化教育研究,2006,(10).
[3]程寶雷.基于 Rational 的軟件測試課程實驗教學方法探討[J].實驗室研究與探索,2007,(12).
篇3
[關鍵詞]軟件測試 課程體系 教學改革
[作者簡介]李靜(1969- ),女,陜西興平人,河北北方學院信息工程學院,副教授,碩士,研究方向為教學設計、操作系統與軟件測試;趙志升(1965- ),女,河北張北人,河北北方學院信息工程學院,教授,碩士,研究方向為教學設計、軟件工程、數據挖掘。(河北 張家口 075000)
[中圖分類號]G642.3 [文獻標識碼]A [文章編號]1004-3985(2014)02-0135-02
軟件測試技術近年來發展迅速,已經成為與軟件開發齊頭并進的專業技術。軟件測試工程師承擔產品功能、性能、可靠性、易用性等全方位測試,保證產品質量,滿足用戶需求,保證企業信譽,是當前IT業界需求量驟升的熱門人才。目前我國軟件產業在產品功能和性能測試領域仍然存在著嚴重不足,軟件測試的廣度和深度已成為影響企業生存與發展的核心問題。培養大量的具備專業素養和高層次技能的測試人才,更好地推進我國測試行業和測試技術的長足發展,是高等院校必須擔負的職責。
一、國內軟件測試專業教育現狀
自2000年軟件測試技術在我國興起至今十余年,軟件測試人才隨著軟件行業的迅猛發展呈現出供不應求的態勢。專業的軟件測試機構、測試網站及測試技術培訓機構等迅速發展起來。目前,國內許多高校已經逐步設有本科階段軟件測試方向的專業。2011年11月,由教育部主辦的“2011年高等學校軟件測試課程教學論壇”在上海同濟大學召開,對國內軟件測試人才的培養及測試領域的全面發展起到積極推動的作用。
1.社會培訓模式與現狀。當前國內業界一些知名網站主要承擔起測試人才的培養職責,如51testing、達內科技、北大青鳥等,為測試行業輸送了大批動手能力較強的測試人才。針對性很強的短期教育模式是社會培訓的特色。培訓機構通常按照助理級、初級、中級和高級測試人員安排培訓內容。諸如北大青鳥等規模較大的培訓機構引進歐美的混合教學模式,采用“理論知識+分模塊項目實踐+全真項目實訓+職業素質訓練”的模式,形成一個科學并且實用的培訓體系。培訓機構通常設立自己專用的教學平臺,通過網絡遠程授課與集中化分期分班授課方式,在半年到一年的較短時期,培訓出上崗快、操作熟練、針對性強的應用人才,而且很多學員直接通過測試工程師面試,并在后期工作中累積了較深厚的測試經驗,成為測試領域的支撐力量。培訓課程主要內容涵蓋操作系統管理、網絡應用與Web編程、數據庫管理等專業課程,實訓環節應用主流的測試工具,如Winrunner,Loadrunner,Rational Robot等。著重于實用性的項目實踐和開發是培訓機構與高校教育的最大區別。參加這些培訓班已成為目前大學生崗前培訓的主要途徑。
2.高校專業教育現狀。軟件測試技術要得到廣泛應用和深入發展,不能僅依靠社會辦學,高校系統化的專業教學體系能夠為學生奠定一個更加扎實和科學的專業基礎,并對測試技術本身的學科化發展起到不可替代的作用。近三年來,軟件測試技術作為專業課程逐漸在多所高校開設。目前,多數高校將“軟件測試技術”作為一門獨立課程設置,交叉課程主要為“軟件工程”。當前一些高校開始申報軟件測試專業,但是軟件測試技術的學科化發展目前仍受到諸多因素的影響。主要是:(1)缺乏豐富的理論支撐。軟件測試目前仍是發展中的計算機技術,專業論著少,適合于高校的教學材料非常有限,并且普遍存在知識結構不合理,教學內容不規范統一,論點少并缺乏依據,實驗指導教材匱乏等問題。另外作為一門獨立學科,與其他學科的交叉與相輔是理論體系的必要部分,測試技術與計算機領域諸多技術關聯,相互結合教學是當前教改面臨的問題。(2)目前通用性測試平臺仍未完善發展與普及,在高校中缺乏結合教學實驗內容的通用的實踐平臺,實驗環境單薄。多數高校停留在泛泛講授幾個熱門的測試工具的階段,缺乏成熟、實用的測試環境來實踐完整的測試項目。(3)教學模式上存在嚴重缺陷,專業培養過程中存在大量的不規范性和隨意性。主要表現在:實踐課程比例小,測試項目實例缺乏;理論課程知識結構不合理;教學理念和手段陳舊,脫離測試技術發展的實際與市場應用;不重視對學生從事軟件測試職業素養的培養。尖端技術的學科化發展是高等院校的職責,建立一個科學、完整的專業教學體系是高等教育最為核心的問題。
3.當前推進測試技術應用的其他途徑。除了專業公司培訓和高校培養外,當前軟件測試行業的發展還依賴于多種良好途徑:校企合作、技術沙龍、測試專業微群、社會信息輻射等。新興技術發展需要社會傳播產生的廣泛影響力來推動。以MPD(亞太軟件研發團隊管理)峰會、51testing等領銜的線下技術沙龍活動和巡回演講,聚集了很多高端的測試人才,相互學習交流,積極推進軟件測試行業的發展。一些較有影響的網絡微群提供測試技術的交流和分享,如軟件測試、敏捷測試、落地微群等,大量的測試人員和測試工程師提供測試過程管理、測試工作總結等資料,有很強的借鑒性。
軟件測試行業的人才匱乏仍然是當今的重要問題。依照行業需求,軟件測試人員配備應是軟件開發人員的2倍,而目前我國軟測人員與開發人員比例卻僅在15至18之間。以高等院校專業教育為主,實現多種途徑的人才培養是當前軟件測試行業的當務之急。
二、高校軟件測試專業課程體系建設
構建專業課程體系,需要設置好基礎課與專業課、理論課與實踐課、必修課與選修課的比例關系,并合理安排與協調課程相互間的分工與配合。建設科學完整的軟件測試專業的課程體系是一個需要多方考證借鑒和不斷探索完善的工作。
1.課程設置。軟件測試是一門技術性很強的專業,對專業素養要求很高。在測試模式、測試方法上與軟件開發的模式、開發平臺直接相關。學生必須對操作系統、軟件的邏輯結構以及物理存儲過程、操作實現方法達到一定深度的了解和掌握,對于硬件的拓撲結構、物理結構要也需要盡可能多地熟知。在軟件測試行業,對優秀人才的要求是擁有高敏感能力、高發散能力、高分析能力,而這些都是以扎實的理論基礎為前提的。建設軟件測試專業課程體系,應契合技術發展、學科發展與從業需求。經過多方考證,下表所述課程囊括的專業知識對于高層次的自動化軟件測試技術的掌握必不可少。
由于計算機專業課程的關聯性很強,一些專業課程可以相互結合教學。比如語言類,Shell等可以結合到UNIX/Linux操作系統課程中,HTML/XML可結合到.NET以及網絡技術等課程中,PHP融入Web服務器配置等專業選修課程教學中等,避免專業內容交叉而造成的重復教學現象。在教學過程中,要將軟件測試的思想廣泛地滲透到所有的專業課程中。如在各類程序設計語言基礎課程中引入單元測試的思想,在軟件工程課程中強調軟件測試的重要性,增強軟件質量管理意識。當前微軟、蘋果、惠普等軟件公司都推出完整的計算機應用與開發平臺,從硬件、操作系統、集成開發環境到用戶應用軟件,基本上提供一條龍服務。以微軟為首的測試框架開發也日趨成熟。高校需要從專業建設角度考慮,把握學科發展方向,汲取眾家之長,將尖端技術和主流應用平臺作為專業教學內容,在有限的學時之內統籌安排,讓學生形成一個專業學習的整體思想,做到知識累積層次清晰、得到一個完整的專業知識體系。隨著測試技術的快速發展,課程設置需要不斷更新調整,既要考慮專業建設、學科建設,又要考慮市場需求和研發需求。合理選擇、科學地納入新知識到專業課程中,是需要不斷探索和改革的無止境的工程。
2.教材選擇。教材選擇應當寬口徑,除了主要教材之外,要為學生提供更多的輔助教材和資料,給學生自主學習的空間和時間。這方面要學習西方高等教育的模式,按照教學計劃和教學內容,指導學生分期、分階段大量閱讀與課程相關聯的專業資料,并匯總論點和典型實例展開討論,開闊學生的眼界,培養學生獨立思考、邏輯分析能力和探索精神。另外,教材選擇應把握專業技術的最新發展,與專業領域的最新研究成果、社會培訓資料等結合,及時更新教學內容。例如有經驗的測試工程師撰寫的技術開發、測試報告與測試總結等書籍資料,是完善和填充教材的重要知識源。
3.實驗教學規劃。(1)實驗教學內容,應包括兩部分:測試框架應用和測試項目實踐。前者是指基于實驗室配置的測試框架,選擇針對操作系統或者客戶端軟件、網站等的服務性能測試案例,編寫一些通用的測試腳本,在測試框架上實現完整的測試流程。后者是指選擇實際的軟件測試項目來組織實驗教學內容。在測試項目實踐中,需要提供給學生被測試的軟件系統代碼以及軟件開發綜述,包括需求分析、概要設計書、詳細設計書等文檔,便于學生真實地模擬實際工作中的測試流程。項目實踐中,可將學生分成若干個項目組,分別設置測試經理、測試負責人、測試人員等角色,依照測試用例設計、測試任務管理、測試計劃實施、測試過程監控、測試日志與測試報告管理環節,安排角色各司其職,協同完整測試項目,并對被測軟件系統做出質量評審,撰寫格式規范的質檢報告。通過實驗教學,使學生深入理解和掌握常用測試工具,如單元測試工具NUnit等應用,提升學生的項目管理經驗和軟件測試技能。(2)實驗教材選擇:實驗教材選擇應參考社會培訓機構的項目實訓資料,選擇基于主流測試平臺的項目實例教程,并結合測試技術的應用發展現狀和高校測試環境,廣泛篩選輔助資料,設置測試項目,豐富實驗教材的內容。(3)實驗環境配置:搭建面向高校教研的通用測試環境。當前各類測試平臺及測試工具不斷推出,種類繁多,但針對性較強,應用性能受到限制,缺乏可被廣泛普及的通用型測試平臺,導致測試過程缺乏通用性和穩定性、測試標準設定和測試價值評估無法明確等問題。建立一個通用測試環境對高校的實驗教學和專業研究十分必要。通用測試環境應囊括軟件測試管理平臺、回歸測試平臺和性能測試平臺功能。提供軟件的文檔審查、安裝測試、功能性測試、易用性測試等測試項目,并能提交形式內容規范的測試報告。通用測試環境搭建需要高校結合專業研究項目實施二次開發。
三、面向從業需求的教學改革
1.注重面向市場應用的課程體系改革。為了更好地為社會培養應用型人才,高校應以企業崗位能力需求為標準,不斷進行課程體系改革,構建“知識+應用+研究”的混合型課程體系結構,為學生從業后盡快適應工作崗位,擔負起科技職能,并進一步從事測試技術開發與研究奠定基礎。軟件測試課程體系改革應基于不斷發展的測試技術以及社會測試崗位的能力需求,從培養學生專業素養、測試技能、項目分析能力、探索開發能力等全面素質的高度進行必要的整合和重組,把學生應具有的知識、能力、素質結構作為課程體系改革的依據,組建模塊化的課程結構。
2.注重面向從業需求的教學實踐改革。面向從業需求,加強教學實踐環節是高校實驗教學改革的重要內容。目前很多高校與自己的合作企業簽訂培訓合約,建立人才基地,共同開發軟件和培訓人才、交流人才,是教學結合實際應用的最佳模式。圍繞著以企業需求為目標進行實驗教學,使學生在真實的項目流程中對軟件測試的完整過程與實施細節、管理機制與管理措施進行全面的了解,提高測試能力和積累測試經驗,便于學生日后盡快適應實際工作,在專業技術崗位發揮人才作用。
3.注重培養學生的職業素養。高等教育為社會輸送專業技術人才,不能忽視對人才職業素養的培養。在教學過程中要把專業素養、技能訓練和職業素質培養有機結合起來。在學生實踐與實習過程中,注重培養學生綜合運用所學知識發現問題、分析問題、解決問題的能力,進而培養學生的技術應用和技術創新能力,并培養學生的團隊合作精神和相互協作能力,提高將來從事測試行業的職業素養。應結合社會對軟件工程師的崗位需求,設立面向畢業生的專項系列講座,為學生提供面試技巧培訓、競爭意識培訓、溝通與協作技巧培訓和就業指南等,是極具實效且必要的教育內容。依照國外標準,軟件測試工程師應與架構師處于同一等級。從事測試行業必須具備扎實的專業基礎、綜合的個人能力和較高的職業素養,才能真正實現高端的自動化測試。
[參考文獻]
[1]朱少民.軟件測試方法和技術[M].北京:清華大學出版社,2005.
[2]錢麗.以就業為導向的軟件測試課程體系改革探析[J].科技信息,2012(1).
[3]頓煜卿.軟件測試教學過程中的思考和實踐[J].計算機光盤軟件與應用,2012(14).
篇4
案例教學是軟件測試教學中的常用手段,對學生理解測試方法有著很重要的作用,但是目前高校教學普遍存在著教學案例陳舊過時,大部分教學都沿用了傳統的教學案例。這些案例大都沒有介紹軟件測試的工程方法和實現過程,并且沒有進行難度的區分,很難達到好的教學效果。
本專業的教師經過多年的實踐,總結了大量的教學經驗,按照實際工作中典型的工程師團隊所需的各種技能知識為導向,按照復雜度漸增、螺旋遞進的原則設置卓越軟件工程師課程體系與內容,把傳統的以學科知識的系統性為導向的橫向課程體系改造為以個人職業角色發現和能力提升為導向的、適應團隊教育培養的新型縱向課程體系。軟件測試課程是軟件工程卓越工程師培養課程體系的重要組成部分,課程總體跟隨整體培養課程體系的大方向,并結合自身的特點進行建設。
1復雜度漸增式開設課程
在傳統的以面向開發為主的培養模式下,測試課程設置單一,知識針對性連貫性不強。為了解決這些問題,在專業課程開設過程中將軟件測試課程課程拆分,穿插到整個培養過程中,緊密聯系軟件工程其他階段的課程,并且使用案例貫穿所有階段,復雜度逐漸遞增,讓學生在學習過程中循序漸進,逐步建立學習的興趣和信心。在第5學期分成兩個階段分別開設《單元測試與軟件質量》和《軟件驗證與確認》。在第一階段旨在培養學生小規模程序測試的能力不涉及復雜系統,以提高個人開發測試的基本能力為目標,學生可以運用測試課程中學習的方法在開發過程中使用,針對性強。第二階段旨在培養學生對系統整體測試的能力,此時學生以完成基本開發能力的訓練,其他相關課程的培養中也進入了系統級別。在該階段以上一階段培養的能力為基礎,提高復雜度,跟軟件開發其他階段緊密結合。完成第5學期的測試基礎課程開設之后,在第6學期還開設了《web軟件測試》、《測試案例分析》、《數據庫測試》等專業選修課,給有興趣的學生提供更多的學習選擇。
2基礎與實踐并重,充分利用虛擬實踐平臺課程
的開設充分考慮到測試重實踐,并且與軟件開發其他階段聯系緊密等特點;同時也考慮到了此時學生正處于學習階段,直接參與實際項目對學生的學習并不能起到很好的作用,因此在課程學習階段充分利用了校內軟件實訓基地,創建網上“虛擬企業”,引入企業管理模式,在這種虛擬平臺下,針對基礎的知識點開設虛擬項目[3],模擬軟件測試的真實工程環境。學生在自己組合團隊中有各自的工程任務,針對性實用性很強,學生能夠在完成自己任務的同時感性的認識測試崗位工作,體會到軟件測試在整個軟件開發過程中的作用,將單項知識技能之間關聯在一起,系統的運用專業知識和技能。
3采用螺旋式的案例教學,案例與其他軟件開發階段貫穿
篇5
關鍵詞:實訓體系;Android軟件開發;培訓
中圖分類號:TP31 文獻標識碼:A 文章編號:1001-828X(2013)06-0-02
移動互聯網是繼通信、計算機和互聯網之后的又一次信息產業的革命性發展,并成為全球信息通信行業的萬億元級新興產業。近年來,由于3G技術的發展,國內智能手機的普及率急升,人才市場對于Android軟件開發工程師的需求量也急升,因此,如何快速地培養和建設Android軟件開發工程師,成為IT企業培訓的熱點。本文旨在探討IT企業如何通過實訓培訓體系的模式快速培養有計算機基礎的初學者成為相當于1-2年開發經驗的開發工程師。
實訓體系建設包括獨特的實訓形式建設、實現過程的開展以及課程和師資的組建。其中,最根本的把握好實訓的內涵和監控整個實訓過程的開展是關鍵。
一、實訓形式
實訓的特點就是通過項目實際操作的方式,使得每個學生通過做項目來鍛煉時間的編程能力。具體的形式為每個班的學生組成軟件項目組數個,每個項目組均以真實項目為背景,重新演練一個經裁剪過的項目立項、計劃、需求分析、設計、編碼、測試和交付的全過程,按照企業的正規開發流程組織實施,讓學生熟悉軟件工程在企業中的具體應用方法。項目總監由實訓老師來擔任,控制項目的進度和質量,學生通過直接扮演項目開發組中的成員角色,來了解在軟件項目開發團隊中的角色、過程、規范和執行方法,以及在團隊中合作溝通能力的重要性,養成良好的職業習慣。以下是學生扮演的角色的主要職責說明,學生可以根據自己在學校的學習情況扮演如下角色??紤]到Android軟件開發工程師培訓的實際需要,項目開發過程中某些方面的學時將相對壓縮,而把重點放在跟開發直接相關的角色上面。
二、實訓過程
整個實訓過程包括實訓預備期和實訓期兩個階段。
實訓預備期:實訓的學生對Android課程體系中必須掌握的業界實用技術知識清單和相關課件進行學習,必要時進行相關課程的考試,考試合格者才能進入實訓環節。
實訓期:以模擬公司為平臺,以仿真的商業案例項目為載體,將企業文化及職業素養訓練、IT技能培訓、行業知識以及業務流程實踐等實訓內容完全貫穿在模擬公司的運營過程中,使學生在實踐中體驗企業工作環境,獲得一定的實際經驗和職業磨練。
實訓師發放《項目實訓學生指導手冊》,手冊中規定了學生在項目Android軟件開發各階段的輸入、活動說明和輸出。實訓選擇的生命周期會覆蓋軟件開發過程的基本要素。其中有的要素在實訓中存在操作困難的,只講解方法并直接發放相關資料。
實訓中由實訓老師統一指導各階段的詳細過程指導?;具^程如下:
1)搭建環境:主要講解搭建各種手機操作系統所需開發環境所要具備的軟、硬件及網絡知識。包括計算機中各種硬件和接口。軟件的分類、分發和授權等方式;操作系統的初步知識;注冊表、病毒、安全等知識;基本協議、活動目錄等知識。從而讓學員可以在實際工作環境當中搭建需要的開發環境。
2)完成的軟件開發過程:主要講解實際項目的開發所涉及到的軟件開發過程的各個環節,如需求開發、設計、測試、項目管理、配置管理等,并將其運用到實訓項目開發。
3)Android手機軟件應用開發:這是本培訓課程的核心部分,主要是使學員掌握軟件開發的技術,掌握編程的方法、思想,了解軟件開發過程當中常犯的錯誤。課程注重實用性、重在培養學員對代碼分析的能力,掌握編碼規范,掌握調試知識和分析程序錯誤的能力。同時學習內存檢查工具和軟件配置管理等知識。課程中貫穿了一個開發項目,以增加學員開發項目的經驗。
4)測試計劃與軟件缺陷:主要介紹軟件測試的基本概念和基礎知識、如何編寫測試計劃、識別軟件缺陷、編寫缺陷報告等。通過學習,學員可以掌握軟件測試的流程、軟件測試的策略和分類,掌握缺陷的分類和優先級等,從而對測試有一個整體的認識。介紹了缺陷跟蹤管理系統(測試工具)??傮w來說,本課程將使學員掌握軟件測試相關的大部分基礎知識。
5)數據庫:通過對數據庫基礎知識的講解,讓學員掌握這些技術。數據庫是以主流的Oracle和MySQL 數據庫的運用為主。
6) 職業導向訓練:進行職業引導,包括就業指導和職前引導。通過座談會等輔助訓練明確就業方向,進一步了解職業發展形式。
三、實訓課程設計和引進
A.參考國內外IT知名企業現有已取得各地區政府認同的移動應用軟件開發培訓課程體系,以移動應用行業應用的實際需求為導向,自主研究開發適合本地企業的Android軟件開發方面的案例及課件。
B.結合需要引進其他國內一流的成功Android軟件開發培訓課程體系。
C.培訓實例設計:根據大多數軟件開發企業的實際需求,以多個實際項目為原型開發出具有實戰意義的案例。
D.企業培訓定制:企業培訓必須密切結合企業戰略,從企業的人力資源規劃和開發戰略出發,滿足組織及員工兩方面的要求,考慮企業資源條件與員工素質基礎,考慮人才培養的超前性及培訓效果的不確定性,為企業確定員工培訓的目標,選擇培訓內容及培訓方式。
四、師資隊伍建設和引進
在內部培養培訓講師和實訓導師的同時,我們還將根據課程需要積極引進高端的Android培訓講師,包括網絡通訊、Android應用開發等各領域的高端實戰人才,建設一支實戰經驗、培訓經驗俱佳的師資隊伍。
五、制定Android軟件開發工程師培訓大綱
Android軟件開發就業培訓大綱由多名資深移動應用軟件開發專家及有豐富Android實戰經驗的工程師傾力開發而成,在本實訓項目里將得到充分的貫徹執行。該課程總結了Google、中興、華為、HTC、摩托羅拉、IBM等頂級國內、跨國大型企業的先進的軟件開發理論和經驗,在此基礎上形成了一套適合我國國情的Android軟件培訓課程。目的是將優秀企業完善的Android軟件開發技術和方法等推廣到國內的軟件產業,以提高廣州本地軟件企業的Android應用軟件開發水平,改進開發方法和方式。
Android軟件開發培訓采用教師授課和學員實際練習相結合的方式。針對每個培訓的章節,在課程中都會提供豐富的項目實踐案例,使每個學員不僅能夠學到Android軟件開發的一些基本理論知識,重要的是能夠讓學員將學到的知識運用到實際的移動應用軟件開發活動過程中。
本Android軟件開發就業培訓大綱主要由三大部分組成:
基礎階段:主要闡述了一個Android軟件開發工程師需要了解和掌握的入門知識,包括Android開發編程語言基礎,主流數據庫開發技術,以及一些必要工具的使用,是邁入Android軟件工程師職業必備的一些基礎知識。
中級階段:主要闡述了一個Android軟件開發工程師需要掌握的常用的通信協議,整套主流的應用服務器和中間件編程技術,數據訪問層框架技術,并幫助深入理解軟件工程過程。
高級階段:通過一個個具體的項目案例,將上面提到的技術、方法、度量、文檔和過程相結合,掌握Android移動應用系統開發技術,包括Android環境下的音視頻多媒體處理、游戲技術開發、底層核心架構技術等,并進行項目開發實戰。了解不同設計模式與運用、軟件性能調優、軟件過程管理等。
篇6
關鍵詞:工程實踐;軟件工程;CDIO
文章編號:1672-5913(2017)05-0030-04
中圖分類號:G642
0 引 言
工程教育的目的是將學生培養成為“整裝待發”的工程師,也就是在其從事職業前具備較好的工程能力和深厚的技術基礎知識。為了達到這個目標,工程教育者的任務就是不斷地改進本科工程教育的質量和內涵。CDIO教學模式改革了工程教育,教育學生理解如何在一個現代團隊環境下構思―設計―實施―運行復雜的、具有高附加值的工程產品、過程和系統[1]。隨著社會信息化的不嚳⒄梗各行各業對軟件的需求也越來越多,各種應用軟件的復雜性和規模不斷增加,導致軟件企業亟需大量的能夠構思、設計、實施和運行復雜軟件系統的人才。軟件企業對所需人才的要求與CDIO的培養標準是相符合的。然而,目前一些高校的軟件工程專業畢業生并不具備這種CDIO能力,因此目前軟件工程專業的培養標準、培養方案和課程體系有必要根據CDIO的培養標準進行調整[2]。
工程性和實踐性是軟件工程專業的主要特點。 CDIO工程教育強調學生工程實踐能力的重要性。軟件工程專業的實踐教學環節主要分為3類:第1類是理論課程內的實驗或上機;第2類是工程實踐類課程(或稱為課程設計類課程);第3類是畢業設計和實習。軟件工程專業的工程實踐類課程沒有理論授課,全部都是實驗或上機課,主要是培養學生的應用理論知識解決實際問題能力和工程實踐動手能力,在整個軟件工程專業的實踐教學體系中占據著非常重要的一個位置[3-4]。
1 基于CDIO的工程實踐類課程培養標準的制訂
根據CDIO教學大綱,CDIO培養標準指標共分為三級,其中一級指標4個,分別是技術知識和推理,個人能力、職業能力和態度,人際交往能力、團隊工作和交流,在企業和社會環境下構思、設計、實現、運行系統的能力。每個一級指標又分為很多二級指標,二級指標又分為若干三級指標[1-5]。結合CDIO培養標準和成都信息工程大學軟件工程學院軟件工程專業的培養目標,我們制定了軟件工程專業的培養標準,其中與工程實踐類課程相關的培養標準見表1。工程實踐類課程主要培養學生的以下幾方面的能力:①應用核心軟件工程基礎知識的能力;②工程推理和解決問題的能力;③進行工程實踐所需的個人能力;④團隊合作能力;⑤人際交流能力;⑥系統的構思與工程化能力。
2 軟件工程實踐類課程體系的構建
基于CDIO的工程實踐類課程培養標準對現有的工程實踐類課程進行改革,重新構建工程實踐課程群,總共包括4門課程:工程實踐I(編碼訓練)、工程實踐II(軟件技術)、工程實踐III(軟件測試)和工程實踐IV(綜合訓練)。這4門課程的學時、學分、執行學期和培養標準見表2。這4門課分別設置在不同的學期,每門課的學時都是32學時(2學分),每門課程的培養標準三級指標都根據表1中的培養標準設定。
工程實踐類課程群的構建思想:①學生通過工程實踐類課程的學習,能夠達到表1中的能力要求,因此所有工程實踐課程的培養標準加起來能夠完全覆蓋表1中的培養標準三級指標;②按照軟件工程由底向上、循序漸進的模式,構建工程實踐課程群。
在第3學期,首先開設的是工程實踐I(編碼訓練)課程,重點培養學生的基本編程功能, 培養學生應用所學的C語言程序設計、面向對象程序設計(C#或Java)、數據結構等課程專業基礎知識解決實際問題的能力和動手編程能力。工程實踐I課程為后續的3門工程實踐課程打下實踐基礎。
在第4學期,開設的是工程實踐II(軟件技術)課程,重點培養學生使用高級程序設計語言(JSP、等語言)和數據庫技術(Oracle、SQL Server等)進行Web編程的能力和初步軟件設計能力,同時培養學生對已有軟件的需求分析能力以及對設計文檔的閱讀和理解能力。
在第5學期,開設的是工程實踐III(軟件測試)課程,重點培養學生制訂測試計劃、設計測試用例、實施測試方案等基本的測試技能,為學生進入企業從事軟件測試工作奠定堅實的實踐基礎。
在第6學期,開設的是工程實踐IV(綜合訓練)課程,通過一個中型軟件工程項目的完整開發,學生經歷需求分析、概要設計、詳細設計、程序編碼、程序測試及集成運行全過程,培養軟件項目構思、設計、實現和運行系統的基本能力,在企業和社會環境下,能夠參與或組織一個完整軟件項目的全生命周期工作,包括軟件的需求、設計、實現、測試、維護等工作[4]。
3 工程實踐類課程的教學主要內容和實施
所有的工程實踐課程都圍繞該課程的培養標準進行課程教學內容的設計和實施,課程的教學內容應該完全覆蓋該課程培養標準三級指標,使學生通過該課程的學習,能力能夠達到培養標準所要求的水平。所有的工程實踐課程都是以項目驅動型教學方法為主,教師以一套項目案例展開教學活動,學生參考案例模板,按軟件工程流程完成自己的項目。除了工程實踐課程I,其他的工程實踐課程都以小組為單位(4~6人組成一個小組)完成課程作業。每個工程實踐課程都要求項目答辯,一人一辯。通過項目答辯可以考查和評估學生所做系統的效果以及學生的項目設計、實現、測試、集成等能力,還可以鍛煉學生的口頭表達能力和交流能力。每個課程項目答辯在課程最后階段進行,一般需要8~12學時完成。
工程實踐I (編碼訓練)課程的主要教學內容:①每名學生選擇一個小型軟件項目(或者老師指定一個項目),制訂項目開發計劃;②對項目進行初步分析和設計,完成程序模塊劃分和設計,撰寫程序設計文檔;③學習程序編碼規范,編寫符合編碼規范的程序代碼;④程序調試和測試;⑤完成項目答辯;⑥編寫課程總結報告,提交項目成果。
工程實踐II(軟件技術)課程的主要教學內容:①任課教師提供多個信息管理系統軟件的需求分析、功能結構設計、數據庫設計等資料供學生選擇,以選擇好的項目作為后期功能實現及評價的依據;②學生小組根據項目資料,在規定時間內完成軟件項目的原型設計,提交中間成果(功能設計文檔和系統原型);③根據系統項目文檔及前期做的原型,完成對應系統的編碼及具體實現,小組成員分工合作,由小組長負責組織協調,要求每個學生至少完成一個相對完整的功能模塊設計與開發;④每名學生分別講述自己完成項目的工作情況和實現方式,進行項目答辯。
工程實踐III(軟件測試)課程的主要教學內容:①教師給定一個待測試軟件系統的需求、設計文檔以及源代碼,學生分組閱讀理解該系統的文檔和源代碼,按規范格式編寫軟件測試計劃書;②學生根據軟件測試計劃書進行測試用例設計;③學生根據測試用例設計書,按步驟執行測試用例,記錄測試結果;④學生分析軟件缺陷分布狀況和測試結果,按軟件測試總結報告要求編寫軟件測試總結報告,提交相關文檔;⑤每名學生進行項目答辯。
工程實踐IV(綜合訓練)課程的主要教學內容:①學生以小組為單位,自選一個中型軟件項目系統題目(或老師指定一個題目),進行文獻檢索、資料查詢,按規范格式編寫需求規格說明書;②根據需求規格說明書,按規范格式進行數據庫設計和模塊功能設計,小組共同完成概要設計說明書;③每名學生根據概要設計說明書,按規范格式完成所分配模塊的詳細設計說明書;④每名學生根據詳細設計說明書,按照編碼規范完成自己所分配模塊的代碼編寫;⑤每名學生按標準文檔格式記錄測試結果,提交測試文檔;⑥學生以團隊為單位,完成項目集成,提交源代碼;⑦每名學生進行項目現場演示及項目答辯。
4 考核方式
所有的工程實踐課程均采用過程化考核方式,除了平時表現(包括考勤、課堂表現和小組討論)之外,每門課程都設置很多中間過程考核環節。每個中間過程考核環節要求學生提交至少一個成果物(文檔或程序),每門課程最后都要進行項目答辯,一人一辯,因此一名學生的課程最終成績由平時表現成績+中間成果物成績+項目答辯成績構成。中間成果物要求至少有3項,不同課程的中間成果物不一樣,以工程實踐IV課程為例,其中間成果物包括需求規格說明書、概要設計說明書、詳細設計說明書、單元測試、代碼編寫和項目集成。每個課程的考核環節都要覆蓋該課程的培養指標,表3是工程實踐IV課程考核環節與考核指標的對應關系,所有考核環節覆蓋的三級培養標準加起來要能夠完全覆蓋該門課程的三級培養指標,項目答辯的成績不低于15%。
5 結 語
從4年的教學實踐來看,課程改革的效果良好。經過調研,很多學生反映通過工程實踐類課程學習,他們的需求分析、設計、實現、測試、集成等能力增強;很多企業雇主也非常認可這種工程實踐類課程的教學模式,認為對提升學生的工程實踐能力有很大幫助。當然,這種基于CDIO的工程實踐類課程教學模式還需要根據畢業生、企業雇主、第三方教育評估機構的追蹤調查反饋信息不斷完善,這也是我們下一步的研究工作。
參考文獻:
[1] Crawley E F, Malmqvist J, ?stlund S, et al. Rethinking engineering education: The CDIO approach[M]. 北京: 高等教育出版社,2009: 5-40.
[2] 澎, 熊耀華, 周慧. 基于CDIO模式的軟件工程實踐教學課程建設的研究[J]. 軟件工程, 2016(1): 1-3.
[3] 厲小軍, 謝波. 軟件工程實踐課程教學改革探索[J]. 計算機教育, 2012(3): 106-110.
篇7
關鍵詞:CMMI;軟件人才培養;課程改革
中圖分類號:G4 文獻標識碼:A 文章編號:1672-3198(2011)04-0233-02
1、前 言
全球經濟一體化的浪潮給我國帶來了大量的服務外包業務,給軟件企業提供了難得的發展機遇,特別是中小規模的軟件企業。軟件企業在承接軟件外包業務時,面臨軟件的工程規范和技術規范及軟件質量管理等人才短缺的困境。我國軟件人才的現狀如下:
(1)層次結構。按國際的管理模式和成功經驗公認的最合理的人才搭配比為1(高):5(中):50(低),常稱為“金字塔”。從我國統計數據來看,現在軟件人才的結構呈“橄欖型”,非常急需兩端人才,能進行項目研究和管理的領軍人物,及訓練有素的編碼和測試藍領。同時,每年各種軟件專業畢業的研究生、本科生、大專生數量很大,但就業率和對口率較低,其中,中端人才的低端化使用導致軟件行業基礎人才不穩固,而高職類低端人才因缺乏訓練而入職難,這其中不乏培養失衡等多種問題。
(2)質量結構。我國當前的教育模式下,難以培養大量掌握符合國際標準的軟件工程規范和技術規范的編碼人才;也難以培養既掌握軟件開發技術、又熟悉軟件過程管理的中層項目管理人才;更難以培養能緊跟世界前沿技術動態和趨勢、熟悉軟件工程管理、具有行業應用知識的專業化、復合化、國際化的頂層人才。也未能給軟件從業人員提供一條明確、可望的職業成長路徑。
2008年后,各地方政府推出了實施CMMI(能力成熟度模型集成)的鼓勵政策后,激發了中小軟件企業參與CMMI評估的熱情。通過CMMI評估,可不斷吸取國外的成功經驗,這不僅是企業發展壯大、在同行競爭中取勝的重要因素,也是提高軟件企業資質和具備國際競爭力的必由之路。
2、CMMI簡介
CMMI由卡耐基,梅隆軟件工程學院提出,源自美國政府和軍工軟件企業的一些成功實踐,融合了全面質量管理的思想,為軟件企業的過程改進提供了標準,為軟件企業的項目管理提供了方向。CMMI是對于軟件組織在定義、實現、度量、控制和改善其軟件過程的進程中各個發展階段的描述,它通過5個不斷進化的層次級別來評定軟件生產的歷史與現狀,幫助組織探索一個保證軟件產品質量、縮短開發周期、提高工作效率的軟件工程模式與標準規范。
美國、日本等國家的軟件企業先后掀起了質量熱潮,質量控制小組遍及全國,不斷積累和分享過程改進的經驗。印度在實施CMMI方面也取得了極大的成功,其軟件業借助規范的管理進入國際市場,并逐步發展壯大。我國軟件業在不斷吸取國外的成功經驗,參照CMMI規范,結合中國及企業現實,努力探索規范有效的軟件開發過程,企業通過實施CMMI取得了一定的成效,如促進了規范化管理、提高了項目控制能力和產品質量等。
3、CMMI在軟件綜合實訓中的實施
3.1應用思想
軟件過程是人員密集和設計密集的作業過程:若缺乏有素訓練,就難以建立起支持實現成功軟件過程的基礎,軟件質量的提高亦將難以取得成效。企業通過CIVIMI評估工作優化了企業開發流程,改善現有的工作方法,從無序的混沌過程向訓練有素的成熟過程演進,這涉及到團隊的每一個成員。
軟件及外包企業實施項目過程管理和質量全程監控,需要員工能快速融入相應的管理模式中。軟件專業畢業的學生若要到實施CMMI的團隊中工作,他們缺乏要在什么樣的過程管理中如何去開發一個項目的能力,不明確工程化、工業化和標準化開發的工作內容、工作方法、工作過程又是怎樣的。學生需要教師引導思考工程化、項目化管理等相關問題,按照“學習的內容是工作”、“通過工作來學習”新職業教育理念,將學習目標和和工作目標有機地結合在一下起,由教師指導學生完成“工作任務”,在“工作過程”中理解和應用CMMI的核心思想,解決工程化、工業化和標準化開發問題,在軟件開發和項目管理過程中成長。
3.2實施內容
針對高職生的認知水平,學生不具備需求分析與系統設計的能力,工作按CMMI3的過程要求,刪除需求開發、技術預研、系統設計、決策分析等過程,但強調需求變更的控制過程,由教師模擬客戶在適當時機提出不同的變更,變更后的需求、設計等的修改工作由學生完成,逐漸培養其分析和設計的能力。
學生用二個月的時間完成一個信息管理系統,如OA系統、供應鏈系統、ERP系統等,教師提供需求定義、概要設計、數據庫設計、項目編碼規范、技術解決方案和CMMI的相關模板等文檔,并提供需求變更等軟件開發和項目管理過程真實的情景。
綜合實訓班級共30名學生,分成3組,每組10人,5名開發工程師和5名測試工程師,再在每個組中安排學生兼任配置管理員、質量保證工程師、度量分析師、需求分析師、系統設計師、界面設計師、數據庫管理員、項目實施工程師崗位的工作,教師擔任各組的項目經理。
3.3重點環節
應用CMMI于綜合實訓中,強調過程監控與管理,規范的項目管理體系和科學的課程實訓方案保障了綜合實訓的質量。
(1)項目策劃與監控。
讓學生學會任務進度的分解、工作量的估計、項目計劃的制訂、按計劃實施項目并周期性跟蹤實施情況、保證項目順利進行。具體包括:團隊共同選擇生命周期,定義項目過程,對項目組成員進行分工,明確崗位和各自的職責;項目經理根據項目范圍制定產品的任務進度分解,根據產品規模進行工作量估計;按分工崗位分別制訂項目支撐的軟件測試計劃書,項目經理整合《計劃書》;各成員正確填寫《工作日志》,項目經理填寫《工作周報》等,收集進度、工作量等數據,分析項目狀況,糾正問題和控制偏差,周期性地跟蹤項目計劃的各種數據從而實施監控。
(2)項目支撐。
讓學生學會在項目實施過程中進行配置管理、度量分析、同行評審及質量保證,規范開發過程。具體包括:配置管理員制訂配置計劃,維護項目的配置管理系統,分配權限和標識整個產品生命周期的配置項和版本等,控制配置項的變更,提交《配置狀態報告》等;度量分析工程師制訂度量分析計劃,定期采集數據填寫《度量數據采集表》等,協助項目經理進行綜合度量分析,填寫《項目總結報告》,對定量化的過程加以理解、評估;質量保證工程師制訂質量保證計劃,進行各階段的產品評審,執行過程檢查評審,與項目經理一起組織同行評審,建立并維護質量保證記錄,跟蹤不符合問題及處理情況,直至解決,提交《質量保證周報》等。
(3)系統實現與軟件測試。
讓學生按規范化的方法進行軟件產品開發,驗證產品的功能是否達到了設計要求。具體包括:軟件開發工程師熟悉項目編碼規范和技術解決方案等,并搭建開發環境,根據需求與設計文檔進行編碼,編寫單元測試用例,對已實現
的產品進行單元測試,盡可能多和早地發現并解決問題,并編寫《用戶使用手冊》;測試工程師編寫《系統測試用例》,執行測試工作,填寫《BUG票》和《測試匯總表》,修復后再進行回歸測試確認,保證產品的質量,最后完成《測試報告》。
(4)需求變更控制。
讓學生認識在項目開發過程中需求管理的重要性,需求變更時如何進行項目的各項管理,在保證客戶需求的前提下并保證項目的質量和進度。具體包括:教師模擬客戶代表提出需求變更,在客戶與開發方之間建立對需求的共同理解,需求分析師填寫《變更申請單》,更新需求文檔,項目經理組織項目組進行需求變更評審;依據更新的需求文檔,團隊各成員對后續設計、開發、測試等工作產品進行相應的變更,并維護《需求跟蹤矩陣》,保證需求與相關工作產品的一致性。
3.4考核與評價
按形成性考核模式對學生的工作過程和工作成果進行考核,在考核中不僅是要求完成任務,更注重的是在每個階段學生有效的提升個人能力,教師將進行針對性輔導。每個階段活動95%學生達到合格標準后,再進入下一個階段的實施,直至項目完成。考核與評價以自評和互評為主,項目教師在各階段幫助學生進行總結,通過總結,有效地提高學生的管理能力,培養職業化意識。
3.5實施成效
通過結合CMMI進行軟件綜合實訓,學生掌握工作的流程和方法,能認同和融入企業文化和企業管理方式,樹立項目意識、質量意識和工期意識,增強團隊間的溝通及協作能力,能養成良好的工作規范、工作習慣、工作作風和工作意識,并且在工作的過程中有掌握不斷更新技術的學習能力,提高了學生的職業能力和素質,增強了就業競爭能力,縮短企業的培訓時間和成本,學生進入企業頂崗實習后就業,能更快的融入到企業的團隊工作中。
4、軟件人才培養的思考
要將學生培養成為訓練有素的準員工,進入企業后能與團隊共同持續地進行軟件過程改進,以適應軟件企業所面對的動態環境。在人才培養機制上還應深化校企合作,注意處理兩方面問題。
(1)學校不能對“企業培訓最后一公里”過度依賴,從而增加學生學習成本、政府扶持成本、企業用人風險,也難以系統培養適用的高素質人才。學校需要改變與企業的合作模式,以“工作過程導向”改造專業和改革課程,采用多種方式,讓學生在校學習過程中實踐鍛煉,逐漸積累軟件開發、項目管理、質量控制的經驗,提高實戰能力。
(2)企業應提供行業知識和項目經驗,幫助培養師資、改革教學模式和教學體系、安排學生實習,真正實現學校、企業的互聯互動,探索產學研用結合的工程教育新模式,做到學校與企業的無縫鏈接、相互滲透,創造學校、學生和企業多贏的局面。
由此可見,在軟件專業按照“工作過程導向”模式構建專業課程體系,根據職業能力的階梯性和學習規律的漸進性,學習過程從軟件的單元設計到項目開發,最后到項目管理。而第五學期的校內綜合實訓和第六學期的企業頂崗實習,學生通過CMMI的項目管理模式下的軟件開發積累經驗,有利于實現學校到企業的無縫銜接。
參考文獻:
[1]2009軟件人才(成都)需求分析報告[R],成都信息化辦公室,2009,(4)
[2]史秋實,論劍中國軟件外包振興之道[EB/OL],http://chinaso-urcmg.mofcom.省略/content2,jsp?id=58860,2009
[3]張萬軍,儲善忠,基于CMMI的軟件工程教程[M],北京:北京交通大學出版社,2008:1-5
篇8
在軟件外包人才培養方案中,強化學生的IT基本素質,以真實項目模擬演練為主,在實踐中掌握專業技能知識。高職院校與企業緊密結合,培養真正企業需要的,具有較強實踐能力軟件開發人才。
關鍵詞:關鍵外包;才人培養;設計研究
1.關于軟件外包
軟件外包就是企業為了專注核心競爭力業務和降低軟件項目成本,將軟件項目中的全部或部分工作發包給提供外包服務的企業完成的軟件需求活動。一個軟件開發項目通常要經歷需求分析、設計、編程、測試等幾個大的階段。
其中設計又包括整體設計、系統設計、詳細設計幾個環節。詳細設計將軟件開發過程分割成各個不同的模塊,然后對這些模塊進行編程,到了編程階段時,大量工作需要軟件編碼人員來完成。軟件最后的測試是一個復雜過程,包括單元測試、系統測試、總體功能測試,期間由測試編程工程師編寫測試工具,制定測試規則,完成測試的任務。
現代的軟件開發工程是將整個軟件開發過程明確的劃分為幾個階段,將復雜問題具體按階段加以解決。這樣,在軟件的整個開發過程中,可以對每一階段提出若干明確的監控點,作為各階段目標實現的檢驗標準,從而提高開發過程的可見度和保證開發過程的正確性。
2.軟件外包人才的崗位需求
據商務部統計2009年我國共簽訂服務外包合同6萬多份,信息技術外包(ITO)是服務外包的主要方式,合同協議金額超過100億美元。
軟件外包,需要方方面面的人才,其中包括:架構師、需求分析師、項目經理、程序員、界面設計師、測試員、售前售后工程師等,高等職業教育針對企業對崗位的需求,利用自身的優勢,在充分提高學生的外語水平的基礎上,培養基礎型軟件技術開發人才,基本能力要求是代碼編寫和技術文檔處理,以團隊成員和項目經理共同完成軟件開發設計,具備較強的專業技術能力和表達溝通能力。
3.軟件外包人才培養目標
軟件外包人才培養目標是中級和一般軟件人員,重點是培養動手能力和解決問題的能力。學生參加工作后,經過很短的時期就應該能進入角色,直接擔當承接離岸、近岸和在岸外包業務企業中的軟件編碼和測試的工作。通過掌握計算機軟件外包開發和軟件工程的知識與技能,熟練使用英語或日語進行交流,熟悉歐美及日本等文化特點,從事外包的企業軟件開發、調試、運行、測試、維護及質量管理等技術工作。
從知識結構來看,應具備計算機的基礎理論知識,精通一類程序設計技術,如Java或.net,精通一門外語,如英語或日語,熟悉軟件開發流程和軟件開發規范,熟悉軟件開發各個階段涉及的文檔和資料。
從能力結構看,不僅具備程序設計和邏輯思維能力,而且還應具備包括文字輸入的基本技能和圖文圖表的信息處理能力,精通程序設計語言和數據庫知識,閱讀或編制各級各類的軟件開發文檔。
4.軟件人才培養方案設計
對于高職類的學生,畢業后從事的崗位注重于技術操作,軟件技術專業的學生可以在與軟件技術相關的公司從事軟件的代碼編寫與測試,培養具有良好的科學素養,專業基礎理論扎實,掌握數據庫的應用技術和編程語言技術,掌握軟件自動化測試技術和技巧、能實現規?;浖y試。
(1) 穩固基礎
高職學院由于學時所限,不能安排更多的理論課時進行教學,但基礎課仍然是必不可少。作為專科學生,首先也屬于有知識、有技能的社會有用之才,才能不僅體現在技術水平,也力求掌握各方面的基本能力。外語學習強調聽說讀寫全面發展,重點培養使用外語的能力,而不是應付考試,也有利于將來工作中的在職學習,為自己創造更大的發展空間。
提高學生的實踐能力,保障足夠的學生實踐操作時間,通過IT素養方面的教學,讓學生能熟練地使用計算機和網絡設備,還包括常用軟件的安裝和使用方法,局域網和互聯網的使用方法。這些基本技能訓練可以使學生在后續學習中對周圍的信息工具運用自如,以更好地學習其他課程。
(2)與企業共建實訓室
充分利用學院的實訓設備,引進企業文化,搭建項目開發的實際工作環境,真實地再現企業軟件開發過程中的各個環節。遵循國際化軟件工程的開發流程的要求,總體規劃基于需求分析、軟件設計、軟件編碼、軟件測試、質量保證、軟件等環節的功能區域。
結合各種成熟的行業開發項目,在真實的特定軟件開景中,將企業級的軟件開發過程在實訓室展現,讓學生自己通過對項目的理解進行分析,分配學生在團隊開發中的角色和地位,培養規范化的開發規范。
(3)項目教學法
所謂項目教學法是通過項目的形式進行教學。為了使學生在解決問題中習慣于一個完整的方式,所設置的項目包含多門課程聯合的知識,在老師的指導下,將一個相對獨立的項目交由學生自己處理,實施信息的收集和方案設計,項目實施及評價由學生自己負責,學生通過該項目的進行,了解并把握整個過程及每一個環節中的基本要求。
在項目教學中,學習過程成為一個人人參與的創造實踐活動,注重的不是最終的結果,而是完成項目的過程。學生在項目實踐過程中,理解和把握課程要求的知識和技能,體驗創新的艱辛與樂趣,培養分析問題和解決問題的思想和方法。在外包軟件開發的過程中,首先要了解項目的需求,讀懂系統設計和詳細設計的文檔,熟悉軟件開發的流程,聯系已學的聯合課程的各種知識,完成軟件編碼設計任務和軟件測試任務,學生在各個項目小組中通過實際參與,訓練其在實際工作中與不同的人進行協調、合作的能力。 改變從被動“教”到主動“學”的教學模式,創造了學生主動參與、自主協作、探索創新的新型教學模式。
在項目教學法的具體實踐中,教師的作用不再是一部百科全書或一個供學生利用的資料庫,而成為了一名向導和顧問。幫助學生在獨立研究的道路上迅速前進,引導學生如何在實踐中發現新知識,掌握新內容。學生作為學習的主體,通過獨立完成項目把理論與實踐有機地結合起來,不僅提高了理論水平和實操技能,而且又在教師有目的地引導下,培養了合作、解決問題等綜合能力。同時,教師在觀察學生、幫助學生的過程中,開闊了視野,提高了專業水平??梢哉f,項目教學法是師生共同完成 項目,共同取得進步的教學方法。在職業學校、職業教育中,項目教學法有其獨特的優勢,應更進一步總結提高,大力試用推廣。
(4) 模擬真實
課程中的細節來自現實業界的個案研究作為問題設置的依據,這確保了學生能夠熟悉典型的企業中各組織機構的功能,這使學員在今后的職業生涯中,能無障礙地為這些組織機構提供軟件開發問題的解決方案。這意味著學員在課程結束之后,不僅在技能知識方面,而且在將知識應用于不同的商業領域方面都將獲得更大的信心。在所有的課程中,這些概況都可以用作問題討論和實踐的背景知識。
在教學過程中模擬一個真實軟件開發環境的基礎上,以基于問題、基于榜樣的獨特教學手段進行課程設置,注重培養作為一個優秀軟件從業人員所應具備的團隊合作、分析歸納、專業技術文檔制作,規范的軟件開發等專業技能。 “授人以魚,不如授人以漁?!?,IT技術日新月異,在基于榜樣的學習方法的指導下,不但使你掌握了最前沿的技術,更獲得了自我學習與實際解決問題的規范和能力。
在教學過程中,直接將軟件公司所生產的軟件項目的Demo版用于教學,注重學生進行軟件實踐開發的能力培養,真正將高職教學成為企業的崗前培訓。教師在進行教學過程中,除了輔導學生進行項目開發,更主要是要搭建軟件公司項目開發環境,并進行項目管理,教師就是軟件開發過程中的項目經理或項目主管,而學生就成了“程序員”,這正是我們所希望達到的目的。委派企業的工程師進入課堂,帶著公司的現實項目對這些學生進行現場教學,學生不僅感到了壓力,更能感受到進行軟件項目開發樂趣,激發了學生的學習興趣和工作熱情。同時也對學生進行適當的企業文化的教育,讓學生在思想上提前就業。解決企業在招聘人才時只能接收有工作經驗人才的瓶頸問題。
5.結語
企業需要的不是實習生,而是需要能夠給企業創造財富、創造價值的員工。高職院校只要與企業緊密結合,就能培養出企業所需求的具有較強實踐能力軟件開發人才。進而也可以委派教師進入合作企業,成為“訪問工程師”,參與企業的生產管理,學習新知識、新技能,這才是真正的“雙師型”教師,他們能更好促進實踐化教學的進程,教學即為實踐,實踐也在教學,形成良性循環。
參考文獻:
[1]《蘇州市服務外包人才培養模式初探》 人才資源開發,喻曉雪,2009,11期
篇9
關鍵詞:計算機專業;程序設計;實踐教學;案例驅動
中圖分類號:G424文獻標識碼:A文章編號:1009-3044(2012)02-0421-02
編程能力是計算機專業學生的基本專業能力,是就業應聘時被用人單位重點考察的能力。程序設計以及進一步的系統開發要求學生有較好的邏輯思維能力、數學基礎、建模能力,能熟練掌握集成開發環境、測試工具、軟件工程規范,具有良好的吃苦耐勞、團隊合作精神。目前,高職計算機專業學生普遍編程能力不強、專業技能特征不明顯,導致學生就業質量不高。提高學生編程能力是目前高職計算機專業人才培養亟待解決的重要問題。
1編程實踐教學現狀
1)編程能力培養課程群
理論基礎:高等數學、離散數學;語言課程:C(或C++)語言程序設計、數據庫程序設計、面向對象程序設計等;結構和算法:數據結構、算法設計和分析;系統設計:軟件工程、軟件測試技術等。
2)編程實踐教學體系
編程課程群、其它理論課程的實驗教學部分、專門的課程設計、第二課堂、程序設計類的學科競賽、實習、畢業設計。
3)編程實踐教學存在的問題
①學風可能出現問題。由于學歷層次為??疲芏鄬W生對編程自信心不足,普遍有畏難情緒,自覺性不高,沒有專業自豪感,自備的學習電腦變成了玩游戲的工具。對就業市場缺乏準確認識,缺乏將來在IT企業就業的自信心,導致學習動力明顯不足。
②編程的前修課程學習不到位。學生對高等數學、離散數學這些理論課程的學習意義認識不足,錯誤認為這類課程與計算機專業的基本技能關聯不緊密,不考慮技術生涯的發展潛力和后勁。英語學習積極性不高,不能結合編程語言的開發環境閱讀聯機幫助中的英文內容。
③師資自身編程能力和教學方法有待提高。部分編程任課教師,沒有項目研發實踐經歷,程序調試和系統測試技巧掌握不多,程序開發環境的功能掌握不全面。教學課件制作粗糙,不能充分利用多媒體教學平臺,教學過程缺乏足夠的上機演示和訓練。文件、OS系統功能調用、常用基本算法的實現等不講授或講授不到位。
④實踐教學環節質量沒有得到保證。語言類課程課后編程作業量不夠,且多數采用紙上編程的形式,很少布置課外上機編程作業和上機檢查,考核手段主要采用筆試,程序設計語言種類設置偏多,編程作業沒有結合應用和趣味性,其它相關課程(如:操作系統)的實驗教學沒有到位,實驗室開放制度沒有落實,學生課外時間沒有得到真正有效利用,三年期間編程訓練不斷線沒有落實。
2編程實踐教學改革
1)提高學生專業自豪感,加強學風建設
強調社會信息化建設對合格計算機專業人才需求依然很大,學有所長的學生依然是IT企業競相高薪聘用的對象。隨著世界經濟結構變化,計算機服務外包人才需求旺盛;信息技術對傳統產業的技術改造以及對社會各領域快速滲透,進一步保證了社會人才市場對計算機專業合格人才持續的高需求狀態。目前部分計算機專業學生因學風等問題使得專業基本技能沒有學到位,從而導致就業不理想。
2)優化編程類課程群,把握課程重點
程序設計課程應當有足夠的實驗課時,最好設置相應的獨立的課程設計(如:C語言課程設計)。不能只給學生講解編程開發環境中最常用的功能,而至少要介紹開發環境中大部分功能,形成學生對開發環境的整體認識,程序調試技巧要著重講解。程序設計語言種類要少,目前很多學生學了好幾門語言,因時間和精力限制,最終都沒學會,畢業時沒有1門語言能熟練掌握?!峨x散數學》課程不能開設成純粹的數學理論課,而應當配以適量的實驗課(如:編程實現求解等價關系),著也為以后《數據結構》學習打下基礎。《軟件工程》應對軟件測試方法、測試工具、測試用例構造技術做重點講解??稍诖髮W三年級設置《軟件綜合課程設計》。
3)加強校企合作,進行項目開發實訓
校企合作是培養符合社會需求、了解技術發展、強化專業技能、提高職業素養的重要途徑。目前進行計算機專業技能實訓的社會教育服務機構、IT研發企業很多。這些企業有較好的軟件開發教學案例,采用真實的軟件工程方法對學生進行編程、軟件測試、項目管理、行業規范的訓練。學生實訓地點可以是學校機房(此時機房需進行適當的軟件環境改造和優化),也可為企業的研發場地。校企合作過程同時能提高教師的軟件研發能力。
4)積極參加相關學科競賽,提升編程能力
政府或學會組織的各級計算機程序設計類學科競賽很多,如:ACM程序設計競賽。這類競賽能提高學生的編程等綜合能力和編程興趣。獲獎學生能提高就業質量。在課程建設方面,最好把競賽的題目作為《數據結構》或《算法設計和分析》的教學案例或課后作業。競賽隊伍可含有低年級學生,由專職教師進行專門訓練和管理,學校給予政策傾斜。
5)充分利用第二課堂,設立編程類大學生創新性試驗項目
編程能力提高只靠第一課堂是遠遠不夠的。借助學工類和學生類組織,成立多個學生編程興趣小組,由教師進行專門指導和管理。最好結合計算機技術實際應用設立編程類大學生創新性試驗項目,其中完成優秀的項目可計入學分,進一步擴充后可成為學生就業應聘時進行演示,體現學生技術實力。
6)編程訓練不斷線,編程方向要集中
由于程序設計語言種類很多、高級語言功能類似、應用領域非常多、時間精力有限,學生最好重點掌握其中一種語言(如:JAVA語言)。若有可能,非語言類的課程的編程實現類實驗項目最好使用學生自己擬專攻的語言,逐步熟悉該語言程序設計開發環境中盡可能多的功能。學生也可以結合感興趣的應用領域(如:信息管理、網絡應用、游戲)重點學習其中一種語言,此時學生自學或學校開設講解應用領域基礎知識的課程。
7)程序設計課程考核要進行筆試和機考相結合
以往程序設計課程考試一般都是筆試,主要考核學生對基本語法的掌握情況,題型主要是填空題、選擇題、改錯題、紙上編寫小程序。此考試方法不足以考核學生編程的真實水平,而且紙上編寫的程序的正確性,難以完全把握,所以應該加上機器考試環節,既能促使學生進行更多的上機編程實踐,由能準確判斷編程是否正確,還能考核學生對基本編程環境是否熟悉。
3案例項目驅動的編程實踐教學法
案例項目驅動教學法是案例驅動和項目驅動相結合的一種教學方法。課堂上通過案例的講解讓學生充分掌握相關的知識,并讓學生利用所學知識在實驗課中完成一個小項目。該教學法適宜于在《軟件工程》課程教學中使用,是以學生為主體,教師為輔助,以學生在項目實踐中發現知識、解決問題、提高系統設計和編程實現能力為根本目標。
1)選擇的教學案例應具備的條件
案例最好是由教師自主開發的已經投入實際運行的軟件系統,經過改造而成,同時具備以下條件:①不會出現知識版權糾紛;②技術的綜合性比較強;③有軟件使用說明書,相關文檔齊全;④配備針對該案例的自編教材;⑤案例涉及的應用領域知識,學生能憑借直覺理解;⑥源代碼完整,使用的編程語言是學生學習過的語言;⑦軟件能在學校機房環境正常運行。
2)學生開發的小項目應具備的條件
項目應該是針對教學內容而設計的能由學生獨立完成的、可以收到良好教學效果的小任務。最終過渡到某種具有實際應用價值的產品。該項目應滿足下列條件:
①該項目過程可以用于學習一定的教學內容;②能將教學內容的理論與實踐結合在一起;③該項目能夠激發學生的學習興趣;④項目有一定綜合性,技術難點在案例中有所體現;⑤項目的應用領域涉及的知識學生能理解;⑥有明確的評分標準,可以對完成的項目進行評價;⑦項目完成后,師生共同總結學習過程和方法。
3)案例項目驅動教學法的實踐
項目教學過程分為四個階段:第一階段是讓學生熟悉案例軟件的使用,進行案例的感性認識,閱讀相關案例的文檔。第二階段是讓學生了解完成一個工程項目所需要完成的模塊,直接引導學生進入項目“情景”,激發學生學習的積極性和能動性,又能讓學生在以后開展項目開發時能體會到使用者的具體需要。第三階段是在教師對案例各模塊開發過程的演示下,針對本組項目開展研究討論、分工協作,共同完成工程項目的系統分析、結構設計、代碼編寫、程序調試等工作。第四階段由項目組共同完成實訓項目。
參考文獻:
[1]毛玉萃.計算機科學與技術專業實踐教學體系的構建與實施[J].實驗室科學,2009,(4):97-99.
[2]朱翠苗,鄭廣程等.高職計算機專業實踐教學體系構建[J].職業技術教育,2009,(26):67-68.
[3]馬剛.淺談模擬軟件在計算機實踐教學中的應用[J].科技信息,2010(11):230,184.
[4]王永飛.高職計算機專業課程實踐教學現狀和對策研究[J].銅陵職業技術學院學報,2009(3):14-16.
篇10
關鍵詞:軟件工程;綜合實踐;軟件過程;迭代開發
為了提高軟件工程人才培養的水平,增強學生的實踐能力,文獻[1]基于建構主義認知學說提出了一種創新的人才培養模式。該培養模式的特點是在第6―7學期引入長周期的綜合實訓。為便于實施,該綜合實訓可按學期分成兩段。其中第6學期的實訓為期20周,如何開展全面的軟件工程過程實踐,是本文要探討的對象。此實訓將部分原在課堂講授的理論課貫穿在實訓中講解,并要求學生以小組為單位完成軟件開發項目,從而理解和掌握軟件開發過程與技術。為有效開展此實訓,本文依據現有軟件過程理論和經驗,對實訓中的軟件過程進行探討。
1概念與研究的必要性
軟件開發過程是指在工業化環境(如軟件公司、大型軟件開發團隊)開發軟件的有先后順序的一系列活動。它是將各種軟件技術組織在一起的粘合劑,是合理高效開發軟件產品的保證[2]。對軟件過程的描述,往往包括過程模型、活動、角色、制品等方面。
軟件工程綜合實訓課程的目的是為了讓學生熟悉軟件開發過程,掌握軟件開發技術,增強實際動手能力。它與實際軟件開發有以下幾點不同:
1) 目標不同。前者以培養學生為目標,后者以生產軟件為目標。
2) 實踐主體不同。前者為學生,后者為工作者。
3) 環境不同。前者在學校的模擬環境進行,后者處于具體的軟件開發環境。
這意味著實訓教學中應該采用接近實際的軟件開發過程,但又不能完全照搬實際過程。這是我們必須探討綜合實訓軟件開發過程的原因。以下從軟件開發過程模型、過程角色、主要活動及對學生的考核等幾方面對軟件工程綜合實訓的軟件開發過程進行討論。
2綜合實訓的軟件過程模型
歷史上,出現過多種軟件過程模型,但大致可分為線性模型和迭代模型兩類。線性模型也稱瀑布模型,已被實踐證實不能適應需求變化的場景。迭代模型認為軟件開發是一個反復的過程,比較符合軟件復雜、易變的本質,是當今軟件開發的主流思想。
在考慮實訓教學軟件過程模型的選取時,應以簡單易行、便于軟件技術學習、便于軟件過程理解為出發點。單從簡單易行的角度,采用瀑布模型比較有吸引力。瀑布模型的步驟和章法清晰,教學組織方便。但是,如果使用瀑布模型,對迭代過程的介紹只能停留在口頭上,學生無法從實踐中領會這一重要的過程思想。瀑布模型是一次性完成需求描述,然后做全面
設計。這不利于由淺入深、循序漸進地掌握軟件架構、設計和編碼方面的技術。如果采用迭代式模型,雖會令實訓的組織和管理變得復雜,但既可以領會瀑布模型的章法,也可以克服瀑布模型的弊端。對于本文所針對的長達一個學期的綜合實訓,其教學目標是多維和綜合的,既要在過程中傳授顯性知識,也要通過過程組織和實踐指導傳遞隱性知識。如采用瀑布模型,會將開發過程理想化,而使很多隱性知識和實踐經驗難以傳播。因此長周期的綜合實訓采用迭代式過程模型更合理。
按照有關迭代開發經驗[3],對于小型項目,以3周為一次迭代較合適。我們決定將20周的實訓分為開始1周、結束1周、中間6次迭代18周。各次迭代的目標如表1所示。
表中,迭代1的任務是發掘和初步表述系統的主要需求,并設計系統原型;迭代2要完成系統的主要功能,約占全部功能的30%~40%;迭代3完成系統的全部功能;迭代4對系統架構進行優化,增加業務邏輯層;迭代5進一步優化系統架構,增加數據讀寫層;跌代6使用現有框架對系統進行重構。
在實際的軟件開發過程中,早期迭代要著重于影響架構的功能和性能需求的實現,從而一開始就為系統選擇合理的架構。但在實訓教學中,按由淺入深的教學規律,在學生具備一定的開發經驗后引入架構設計知識。因此,前幾次迭代較少涉及架構設計的細節,所完成的軟件在架構方面是不成熟的。在后幾次迭代中,通過對代碼的重構逐漸完成軟件架構的優化,從而讓學生牢牢樹立架構設計的理念。這是實訓軟件過程與實際軟件過程的區別。
上述各次迭代的目標,也是系統開發的里程碑。教師檢查各次迭代提交制品的同時,也考核了學生團隊的成績。
3綜合實訓過程中的角色
基于文獻[4]及文獻[5]的思想,軟件工程綜合實訓學生團隊應設置對等角色。即每個小組成員擔任一種角色,負責一個方面的工作,同時又是其他成員所負責工作的參與者。這既是實際開發團隊的做法,也最適合學生的學習。
考慮到項目規模較小,實訓時間較長,一個小組人數不宜過多。以5人一組,分別扮演組長、開發經理、計劃經理、測試經理、技術支持經理等角色,各角色職責主要為[4]:
1) 組長:負責小組建設,讓小組成員有共同的目標和項目愿景,激勵士氣,維持紀律,安排任務,主持每周小組例會、成員互評等。
2) 開發經理:主持小組開發工作,包括需求、分析與設計、實現等過程。
3) 計劃經理:負責帶領小組制訂項目計劃和迭代計劃,督促各成員按要求完成工作日志,制訂項目周計劃,整理項目周報,對計劃進行跟蹤,在例會或計劃會議上通報項目進度。
4) 測試經理:負責測試計劃的制訂,編寫測試用例,組織測試實施及管理,組織每日集成測試。
5) 技術支持經理:組織執行配置管理、變更控制、數據庫管理及風險管理,培訓本組成員正確使用工具軟件,督促每日代碼簽入、簽出。
上述角色職責涉及的各種活動,詳見第4節說明。指導教師在實訓中的角色是代表客戶方提出對系統的要求,同時也是學生開發活動的指導者和監督者。
在實際的軟件開發過程中,團隊成員的角色在一個項目中是固定的。但在實訓過程中,為了讓學生得到更全面的訓練,可規定每兩次迭代交換角色一次。這樣在整個實訓中,每人都可以擔任三種不同的角色。這是實訓過程不同于實際過程的地方。
4綜合實訓過程的主要活動及制品
依據文獻[4]和文獻[6],將學生在綜合實訓中的活動領域分為兩大類,一類是核心開發域,包括業務分析、需求、分析與設計、實現、測試、部署等;一類是核心支持域,包括團隊管理、計劃管理、配置管理、環境支撐等。各活動域的活動種類、制品及負責角色如表2所示,共有約30種活動。
上述活動涉及很多學生尚不了解的知識。對于其中適合講授的顯性知識,由專題主講老師在過程中集中講授;對于可以通過實踐過程習得的隱性知識,通過實訓指導書對有關活動的規范和引導,讓學生在活動中領悟。需要集中講授的知識可以分成以下幾個模塊:
1) 項目輔導。介紹有關小組建設、小組溝通、工作理念、計劃管理等方面的知識,對開發過程的紀
律、工作程序、會議等作具體的指導。
2) 軟件開發過程。主要介紹軟件開發統一過程(RUP),包括迭代開發方法,各種開發活動、角色及制品的含義,配置管理及風險管理等。
3) 數據庫管理。結合項目和實訓環境指導學生設計和管理大型關系型數據庫。
4) 軟件測試。結合項目介紹各種測試活動的要求、內容和組織實施辦法。
5) 系統分析與設計。介紹面向對象的可視化建模方法、軟件架構設計、模式應用等方面的知識。
6) 程序設計技術。介紹完成項目所需要的程序設計技術。包括Web應用開發、多層體系架構的實現、測試驅動的開發、應用程序框架設計與應用等內容。
在開展項目過程中,講授也是重要的環節,這也是本實訓過程與實際過程的不同之處。
5考核方式
作為一項教學活動,必須對學生學習情況進行考核并給出成績。由于該實訓長達一學期,理論課學時較多,所對應的學分也較多。如果采用一次性考核,顯然操作難度很大,也不利于在過程中發現問題,激勵學生。因此,本實訓最適合分階段考核,即對每次迭代進行考核,成績由三部分組成:一是本次迭代過程有關理論知識掌握,占40%,采用筆試方式考核;二是工作成果,占30%,以測試迭代產生的結果為依據;三是工作表現,占30%,通過統計考勤、學生互評及老師評價得到。每兩次迭代完成,學生交換角色前,要求每位學生提交所擔任角色工作的總結報告,作為單獨的角色考核。由于角色是任選的,此考核學分可作為選修學分記入成績表。
6結語
由于實訓與實際軟件開發不同,實訓軟件過程不能照搬實際開發過程。為了與當代流行的軟件開發過程一致,也為了能循序漸進地教學,在實訓中選擇迭代式開發模型。項目小組的成員依次承擔多種角色,并產生相應的制品。實訓的考核以迭代為單位進行。按照這樣的過程開展本文所述約30項實訓活動,必將提高學生對軟件工程知識的認識和實際的動手能力。
參考文獻:
[1] 鄭大鵬,林國璋,張克軍. 一種創新的獨立學院軟件專業人才培養模式[J]. 計算機教育,2010(8):1-3.
[2] Roger S. Pressman. 軟件工程―實踐者的研究方法[M]. 4版. 北京:機械工業出版社,1999:22-49.
[3] Craig Larman. UML和模式應用[M]. 3版. 北京:機械工業出版社,2008:13-20.
[4] Watts S. Humphrey. 小組軟件開發過程[M]. 北京:人民郵電出版社,2000:163-225.
[5] 微軟公司. MSF Team Model v.3.1[EB/OL]. [2010-11-06]. /msf:17-19.
[6] Ivar Jacobson,Grady Booch,James Rumbaugh. 統一軟件開發過程[M]. 北京:機械工業出版社,2002:3-11.
On Software Process of Software Engineering Comprehensive Training
ZHENG Dapeng, XIAO Youqing, ZHANG Xiaoyan, ZHANG Shenyong
(Zhuhai Campus, Beijing Institute of Technology, Zhuhai 519085, China)