• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Scrum開發(fā)的軟件工程人才培養(yǎng)

      2019-02-26 06:45:38成小惠
      計(jì)算機(jī)教育 2019年12期
      關(guān)鍵詞:瀑布軟件人才

      費(fèi) 寧,成小惠

      (南京郵電大學(xué)通達(dá)學(xué)院 計(jì)算機(jī)學(xué)院,江蘇 南京 210003)

      0 引言

      軟件人才的正常結(jié)構(gòu)應(yīng)該是寶塔型,呈倒三角,底層應(yīng)該有大量的規(guī)范熟練的編程人員。然而,現(xiàn)在軟件隊(duì)伍的結(jié)構(gòu)不合理,中間大、兩頭小,缺少高級軟件設(shè)計(jì)開發(fā)和管理人才以及熟練的編程人員。當(dāng)前,教學(xué)的開發(fā)模式為瀑布模型,但業(yè)界對于軟件工程的研究不斷更新。作為從事軟件開發(fā)的畢業(yè)生,僅僅知道瀑布模型的幾個(gè)階段和特點(diǎn)并不能使人信服。要想使高校培養(yǎng)出來的學(xué)生能夠滿足企業(yè)的需要,就要不斷緊跟企業(yè),了解技術(shù)前沿,深入理解軟件工程,這才是培養(yǎng)軟件工程人才的根本。

      1 Scrum開發(fā)方法

      軟件工程包括項(xiàng)目管理、分析、設(shè)計(jì)、程序的編寫、測試和質(zhì)量控制。軟件開發(fā)過程從早期的瀑布模型(Waterfall Model)模型演化到新興的Scrum 開發(fā)方法(Agile),軟件設(shè)計(jì)方法也可以簡單分為重量級和輕量級的方法[1]。

      重量級開發(fā)方法主要包括CMM、統(tǒng)一軟件開發(fā)過程(RUP)和瀑布模型等[1]。瀑布模型把軟件開發(fā)過程分成各種工序,每個(gè)工序根據(jù)軟件產(chǎn)品的規(guī)模、參與人員的多少進(jìn)一步細(xì)分成更小的工序,見圖1。瀑布模型的用戶很多,成為軟件開發(fā)企業(yè)使用最多的開發(fā)模型[2],但已不能滿足目前復(fù)雜多樣的軟件開發(fā)需求。其弊端有兩點(diǎn):①對反饋沒有響應(yīng),對客戶需求變化無所適應(yīng)[3];②工作重復(fù),開發(fā)者變成流水線上的機(jī)器,無法得到新的學(xué)習(xí)和鍛煉。

      圖1 瀑布模型的流程圖

      輕量級開發(fā)方法主要包括極限編程和Scrum開發(fā)等。Scrum 開發(fā)主要有3 點(diǎn):①迭代,Scrum開發(fā)強(qiáng)調(diào)軟件開發(fā)應(yīng)當(dāng)能對未來可能出現(xiàn)的變化和不確定性做出全面反應(yīng),見圖2;②小版本,兼顧快速功能的展現(xiàn)和復(fù)雜的客戶需求[4];③快速,這既要求個(gè)性思維活躍,又要求通過結(jié)隊(duì)編程、代碼共有、團(tuán)隊(duì)替補(bǔ)等方式融合團(tuán)隊(duì)中所有人的智慧。

      Scrum 開發(fā)避免了瀑布開發(fā)方式的種種弊端,吸收了各種新型開發(fā)模式的“動態(tài)”特性,關(guān)注點(diǎn)從文檔轉(zhuǎn)移到開發(fā)者,管理方式也從流水線轉(zhuǎn)移到團(tuán)隊(duì)的協(xié)作式組織[4],同時(shí)注重發(fā)揮開發(fā)者的自我特長;并且更積極適應(yīng)客戶需求的變化,在反饋和迭代中,根據(jù)環(huán)境和需求的變化修改設(shè)計(jì),是一個(gè)不斷更新不斷完善的軟件開發(fā)模式。

      圖2 Scrum開發(fā)的過程模型

      2 Scrum開發(fā)作用于軟件工程人才創(chuàng)新能力的培養(yǎng)

      不同的軟件開發(fā)方法展現(xiàn)出不同時(shí)代對軟件產(chǎn)品開發(fā)過程的遞進(jìn)認(rèn)識以及對不同類型項(xiàng)目的多樣化的理解。當(dāng)今的軟件已經(jīng)成為多人參與、分工明確、通力協(xié)作的大型工程,而高校對軟件工程人才的培養(yǎng)嚴(yán)重滯后,跟不上技術(shù)更新和思想更迭的速度,主要體現(xiàn)在教材老化,內(nèi)容老舊;教授軟件工程的教師缺乏實(shí)踐項(xiàng)目的經(jīng)驗(yàn);教學(xué)方式單一,更新速度慢。這些都決定了目前的培養(yǎng)方式不能適應(yīng)企業(yè)對軟件人才的要求。在實(shí)踐教學(xué)中利用Scrum 開發(fā)模式是對高校的軟件工程人才培養(yǎng)的一種新嘗試。

      真正的軟件人才不再是寫代碼的程序員,而是整個(gè)體系結(jié)構(gòu)的分析、設(shè)計(jì)、標(biāo)準(zhǔn)制訂、協(xié)調(diào)人員。因此,在培養(yǎng)軟件工程人才時(shí),應(yīng)該以人為中心,而不是以開發(fā)過程為中心,強(qiáng)調(diào)軟件開發(fā)者能夠?qū)ψ兓筒淮_定性作出全面反應(yīng),鍛煉學(xué)生相互之間的協(xié)作能力以及作為一位項(xiàng)目負(fù)責(zé)人的總體設(shè)計(jì)、總體架構(gòu)和分析協(xié)調(diào)能力和對人員的合理安排和配置能力。這也正是本課題的主旨。

      在當(dāng)前的軟件人才培養(yǎng)的實(shí)踐環(huán)節(jié),讓學(xué)生了解和學(xué)習(xí)相關(guān)知識,并在實(shí)踐中驗(yàn)證Scrum 開發(fā)的優(yōu)缺點(diǎn)和適用性,以滿足未來企業(yè)的需求,旨在達(dá)到如下目標(biāo):①改革現(xiàn)有的軟件工程實(shí)現(xiàn)流程;②培養(yǎng)學(xué)生項(xiàng)目開發(fā)能力、項(xiàng)目綜合管理能力;③培養(yǎng)學(xué)生的科技創(chuàng)新能力;④培養(yǎng)學(xué)生更新技術(shù)、自我學(xué)習(xí)的能力。

      3 Scrum開發(fā)教學(xué)方法的實(shí)施過程

      軟件工程涉及程序設(shè)計(jì)語言、數(shù)據(jù)庫、軟件開發(fā)工具、系統(tǒng)平臺、標(biāo)準(zhǔn)、設(shè)計(jì)模式等多個(gè)方面。Scrum 開發(fā)在教學(xué)過程中涉及教師和學(xué)生兩個(gè)對象。整個(gè)執(zhí)行過程包括教學(xué)預(yù)研、案例分析、教學(xué)實(shí)踐和理論總結(jié)。這4 個(gè)過程中,教師全程參與,見圖3。

      圖3 Scrum開發(fā)教學(xué)方法的實(shí)施過程

      第1 步:教學(xué)預(yù)研。教師要收集大量資料并確定軟件開發(fā)行業(yè)對Scrum 開發(fā)的定義和需求,跟蹤技術(shù)前沿,研究Scrum 開發(fā)的開發(fā)思路、原則及其優(yōu)缺點(diǎn),分析當(dāng)前Scrum 開發(fā)的方法和技術(shù),研究Scrum 方法的適用性和用于Scrum 開發(fā)團(tuán)隊(duì)的項(xiàng)目管理工具,還須討論如何在日常教學(xué)和實(shí)踐環(huán)節(jié)中,將相關(guān)課程如程序設(shè)計(jì)語言、數(shù)據(jù)庫、軟件開發(fā)工具等和Scrum 開發(fā)相結(jié)合,并教授給學(xué)生。

      第2 步:從企業(yè)界找到典型案例,并進(jìn)行研究分化,找出適合于教學(xué)的項(xiàng)目課題;由此分析Scrum 方法的獨(dú)特之處,比如迭代開發(fā)、關(guān)注互動溝通、減少中介過程的無謂資源消耗,引導(dǎo)學(xué)生從產(chǎn)品、從組織結(jié)構(gòu)的角度衡量Scrum 方法的適用性。

      第3 步:在實(shí)踐教學(xué)環(huán)節(jié)中,指導(dǎo)學(xué)生實(shí)施Scrum 模型開發(fā),具體步驟如下。

      (1)分配任務(wù):一個(gè)班級分若干組,分別按傳統(tǒng)瀑布模型和Scrum 模式開發(fā)不同的項(xiàng)目,開發(fā)方法不受限制。每組分配一個(gè)觀察員,記錄該組在整個(gè)開發(fā)周期的進(jìn)展、效率和協(xié)作情況等多個(gè)因素。

      (2)明確細(xì)則:Scrum 開發(fā)小組選擇一個(gè)Master,確保Scrum 的正確使用并負(fù)責(zé)整個(gè)項(xiàng)目順利完成。其余成員構(gòu)成團(tuán)隊(duì),即負(fù)責(zé)開發(fā)軟件的跨職能小組。團(tuán)隊(duì)是自我管理的[5]。

      (3)制訂計(jì)劃:Scrum Master 按照優(yōu)先級順序逐條說明項(xiàng)目需求,并根據(jù)團(tuán)員情況動態(tài)分配任務(wù),同時(shí)負(fù)責(zé)補(bǔ)充項(xiàng)目描述或調(diào)整優(yōu)先級。團(tuán)隊(duì)要對項(xiàng)目規(guī)模進(jìn)行估算,這樣有利于以團(tuán)隊(duì)的整體智慧和能力估算一個(gè)任務(wù)的工作量,從而避免錯誤理解或無法重用以往成果等問題[6]。

      (4)定期舉行站立會議:在Scrum 站立會議上,每個(gè)團(tuán)隊(duì)成員需要說明進(jìn)度和遇到的問題,并限制時(shí)間。

      (5)團(tuán)隊(duì)協(xié)作:任務(wù)即將到期或團(tuán)隊(duì)成員遇到困難時(shí),其他成員可以參與幫忙。

      第4 步:把成果轉(zhuǎn)化成理論總結(jié),并運(yùn)用于理論課的教學(xué)。軟件工程專業(yè)的課程體系中,有多個(gè)與軟件開發(fā)相關(guān)的課程。例如,軟件工程導(dǎo)論、軟件工程、PLT、軟件需求分析。其中,軟件工程類實(shí)驗(yàn)提供軟件工程系列課程的相關(guān)實(shí)驗(yàn),包括基于C#的Windows 應(yīng)用程序設(shè)計(jì)、軟件體系結(jié)構(gòu)、軟件工程—Microsoft 軟件開發(fā)方法、軟件工程環(huán)境ROSE、CMMI 等級模型原理、CMMI 應(yīng)用實(shí)施等,可在教學(xué)內(nèi)容中增加Scrum開發(fā)。

      在Scrum 實(shí)踐教學(xué)過程中,引導(dǎo)學(xué)生不斷提問:會選擇什么語言,什么環(huán)境;選用什么算法,什么樣的系統(tǒng)體系結(jié)構(gòu);在理解不同的開發(fā)模式的優(yōu)劣之后,選擇在何種情況下,應(yīng)該使用何種開發(fā)模式。讓學(xué)生在自我詢問、自我回答中達(dá)到培養(yǎng)軟件工程人才的目的。同時(shí)上升到理論的高度,將理解和認(rèn)識形成理論知識,在多門相關(guān)課程中加入和滲透,這是教學(xué)主旨。實(shí)際上,軟件開發(fā)方法的選擇取決于很多因素,但未來發(fā)展趨勢多為以人為本,必定會以尊重客戶變化需求的Scrum 開發(fā)為主,周期性迭代性地修改軟件,使成果日臻完善。這要求在教材內(nèi)容、教學(xué)方法、教學(xué)模式等方面滲透新的觀念、新的內(nèi)容、新的方法。

      4 實(shí)踐成果與實(shí)踐意義

      4.1 實(shí)踐成果

      采用的案例:①為一家在線B2B 公司開發(fā)一款類似谷歌的搜索服務(wù),作為Web Service,該服務(wù)可以內(nèi)嵌于網(wǎng)頁中;②實(shí)現(xiàn)一個(gè)面向大學(xué)校園的二手物品交易網(wǎng)站;③嵌入式平臺的中間件開發(fā);④將企業(yè)網(wǎng)站遷移到Web 2.0。此類包括操作系統(tǒng)、算法、網(wǎng)頁開發(fā)等的案例在學(xué)生實(shí)踐中有很好的反饋。

      在項(xiàng)目實(shí)訓(xùn)中,我們選取了③和④案例。在這兩組研究對照組中,前一組需求復(fù)雜,但變化頻率比較少;后一組需求簡單,但用戶的需求分析改動次數(shù)頻繁,既有界面方面的,也有功能交互方面的。

      在每個(gè)項(xiàng)目中,都分為Scrum 模型開發(fā)小組和瀑布模型開發(fā)小組;并行開發(fā);每組人力資源均衡,人力資源的消耗以人×課時(shí)來計(jì)算;開發(fā)周期相同;一名學(xué)生每次項(xiàng)目承擔(dān)角色不同;軟件質(zhì)量以測試出的bug 數(shù)和測試案例的比率來衡量。

      比較過程依據(jù)變化的組合分別記錄,根據(jù)每組觀察員的記錄,可以很明顯地看出:①瀑布開發(fā)小組分階段進(jìn)行,如果前一個(gè)階段的輸出尚未給出,那么下一個(gè)階段的學(xué)生就會無所事事,這不僅浪費(fèi)資源,也會影響整個(gè)項(xiàng)目的進(jìn)程,而Scrum 開發(fā)小組所有團(tuán)員都是跨職能的,都在服務(wù)于項(xiàng)目,沒有學(xué)生是閑置的;②Scrum 站立會議不僅讓學(xué)生們說出自己的進(jìn)度,還可以知道其他同學(xué)的進(jìn)度,更可以順利地進(jìn)入項(xiàng)目的下一個(gè)階段,瀑布開發(fā)小組的學(xué)生們在完成一個(gè)階段的任務(wù)之后,又投入該階段的大量文檔工作,下一個(gè)階段的學(xué)生又要花大量時(shí)間閱讀這些文檔,不僅造成項(xiàng)目的延遲,也極易造成錯誤;③瀑布模型小組的學(xué)生們非常反感客戶提出的需求臨時(shí)改變,因?yàn)檫@意味著大部分的工作全部作廢,要重新做起;而Scrum 開發(fā)小組的學(xué)生反饋積極,并做出及時(shí)修改。

      從以上兩個(gè)典型項(xiàng)目可以讓學(xué)生體會到:若項(xiàng)目需求固定,合適瀑布型;而對于創(chuàng)新型項(xiàng)目,需求更新比較快,則合適靈活的Scrum 開發(fā)模式。通過項(xiàng)目課題的多樣性告訴學(xué)生實(shí)施一個(gè)軟件工程,要選取適宜的開發(fā)模型,采用合適的設(shè)計(jì)方法。另外,要提供高效率的項(xiàng)目流程,要實(shí)現(xiàn)開發(fā)過程的有效管理,只有Scrum 模型或者只有瀑布模型是無法滿足千變?nèi)f化的需求的,可以讓學(xué)生針對項(xiàng)目的特點(diǎn)將兩種模型融合,發(fā)揮各自長處。

      4.2 實(shí)踐意義

      從項(xiàng)目實(shí)訓(xùn)等環(huán)節(jié)入手,在軟件生命周期中的各環(huán)節(jié)滲透Scrum 開發(fā),應(yīng)努力提供技術(shù)支撐和實(shí)訓(xùn)案例,力求使構(gòu)建的軟件模型開發(fā)教學(xué)平臺,最大化地接近企業(yè)的真實(shí)開發(fā)環(huán)境,目的就是希望培養(yǎng)的軟件工程人才具備以下能力,以滿足市場和時(shí)代的要求。

      (1)扎實(shí)的專業(yè)理論基礎(chǔ)。專業(yè)理論知識是進(jìn)行軟件開發(fā)的前提和承載?;赟crum 開發(fā)的軟件工程人才培養(yǎng)過程不僅強(qiáng)化了專業(yè)理論基礎(chǔ),完善了理論體系,也在實(shí)踐中驗(yàn)證了專業(yè)知識。有了此基礎(chǔ),也能體現(xiàn)出專業(yè)上的自信。

      (2)熟練的工程實(shí)踐能力。這是軟件工程著力培養(yǎng)的應(yīng)用型人才的一個(gè)重要特征,也是Scrum 開發(fā)培養(yǎng)的專業(yè)人才不同于其他人才的地方,具體表現(xiàn)在對實(shí)際問題的發(fā)現(xiàn)、提出和解決的能力上。

      (3)善于接受反饋和快速適應(yīng)能力。Scrum開發(fā)過程是一個(gè)不斷循環(huán)往復(fù)、不斷反饋、不斷更新的過程。在Scrum 開發(fā)中,軟件需求、開發(fā)小組以及標(biāo)準(zhǔn)和目標(biāo)等開發(fā)環(huán)境都不斷變化,這都要求開發(fā)人員能虛心接受反饋,并具備快速適應(yīng)、快速應(yīng)變的能力。

      (4)培養(yǎng)溝通和表達(dá)的能力。溝通既包括同組同學(xué)之間的溝通,也包括與軟件產(chǎn)品需求者(教師扮演)之間的溝通。而表達(dá)能力通過簡單的圖表描述抽象復(fù)雜的代碼和算法得到培養(yǎng),也鍛煉了學(xué)生口頭表達(dá)和語言組織能力,讓學(xué)生理解自己的開發(fā)思想,也更容易得到改進(jìn)意見。

      (5)團(tuán)隊(duì)協(xié)作能力。一個(gè)軟件過程的開發(fā)是龐大的,不僅要求優(yōu)秀的個(gè)人技術(shù),也更強(qiáng)調(diào)團(tuán)隊(duì)協(xié)作能力。因此,團(tuán)隊(duì)協(xié)作能力是軟件工程人才不可或缺的品質(zhì)。Scrum 開發(fā)指出最好的架構(gòu)、需求和設(shè)計(jì)都源自自我組織的優(yōu)秀團(tuán)隊(duì),團(tuán)隊(duì)要總結(jié)如何更有效率,然后相應(yīng)地調(diào)整自己的行為。這里強(qiáng)調(diào)團(tuán)隊(duì)協(xié)作能力和自我約束、自我管理能力,正是在日常教學(xué)中要潛移默化地培養(yǎng)學(xué)生這種素質(zhì)。

      5 結(jié)語

      當(dāng)前日趨擴(kuò)展的軟件工程Scrum 開發(fā)模式開創(chuàng)了軟件全生命周期的協(xié)作化生產(chǎn)的組織、管理及運(yùn)行新模式,將其介紹給學(xué)生,并讓學(xué)生在實(shí)踐中領(lǐng)會其意義,本身就是一個(gè)很大的創(chuàng)新。要想使學(xué)生滿足市場的需要,要想使學(xué)生成為多層次、復(fù)合型、具有國際競爭力的高素質(zhì)人才,必須要引進(jìn)先進(jìn)技術(shù),更新教學(xué)內(nèi)容,多嘗試,多求證。雖然這不能改變?nèi)?,但至少能不斷前進(jìn)。

      猜你喜歡
      瀑布軟件人才
      人才云
      英語文摘(2022年4期)2022-06-05 07:45:02
      禪宗軟件
      英語文摘(2021年10期)2021-11-22 08:02:26
      瀑布之下
      瀑布是怎樣形成的
      軟件對對碰
      忘不了的人才之策
      商周刊(2018年13期)2018-07-11 03:34:10
      瀑布
      留住人才要走心
      商周刊(2018年10期)2018-06-06 03:04:09
      “人才爭奪戰(zhàn)”
      商周刊(2018年10期)2018-06-06 03:04:08
      瀑布
      长武县| 剑川县| 江陵县| 施秉县| 抚顺市| 闸北区| 大庆市| 郸城县| 那曲县| 太谷县| 呼和浩特市| 巨野县| 百色市| 大关县| 读书| 灵台县| 乌兰浩特市| 自治县| 延长县| 盐源县| 建湖县| 新建县| 东安县| 凌海市| 河曲县| 邻水| 青田县| 阜新市| 镇坪县| 修武县| 达孜县| 比如县| 吉林省| 岳阳市| 遂溪县| 赤壁市| 龙井市| 乐平市| 芜湖县| 顺平县| 井陉县|