国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

學(xué)習(xí)階段軟件開發(fā)的分工研究

2009-02-04 05:35:58陸戌辰臧珠萍
計算機(jī)教育 2009年23期
關(guān)鍵詞:軟件開發(fā)

陸戌辰 臧珠萍

摘要: 本文針對“學(xué)習(xí)階段的軟件開發(fā)”的特定情況,提出了均分模式的分工方法,將該方法與傳統(tǒng)分工方法進(jìn)行了比較,提出了在項目各階段將功能相近、實現(xiàn)手段和步驟相似的任務(wù)平均分配給每個組員,以使整個團(tuán)隊共同進(jìn)退的創(chuàng)新性項目分工方法。

關(guān)鍵詞:軟件開發(fā);小組分工;項目體會

中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B

軟件開發(fā)是一項復(fù)雜的系統(tǒng)工程,牽涉到多方面因素,以前作坊式的開發(fā)早已無法適應(yīng)當(dāng)前的形勢。隨著軟件越來越復(fù)雜,系統(tǒng)越來越龐大,軟件開發(fā)人員的組織和分工便成了一項復(fù)雜而又重要的工作,對軟件項目的開發(fā)進(jìn)度與最終成果有著不容小覷的影響,甚至可能會直接決定項目的成敗。本文針對學(xué)習(xí)階段的軟件開發(fā),提出了相應(yīng)的分工模式與方法。

1應(yīng)用環(huán)境介紹——學(xué)習(xí)階段的軟件開發(fā)

在闡述具體的分工方法之前,需要先介紹一下該方法適用的特定情況——學(xué)習(xí)階段的軟件開發(fā)。

“學(xué)習(xí)階段的軟件開發(fā)”看似陌生,但無論是計算機(jī)專業(yè)的教師還是學(xué)生,對這個概念包含的情形都是相當(dāng)熟悉的。

所謂學(xué)習(xí)階段,就是指計算機(jī)專業(yè)水平正從初級向中級過渡的階段,該階段對應(yīng)的群體一般為計算機(jī)專業(yè)的低年級本科生,該特定群體具有如下特點:

對計算機(jī)專業(yè)知識的學(xué)習(xí)范圍廣、深度淺,偏重于概念理論方面,實踐經(jīng)驗較少。

還未確定自己的專業(yè)研究方向,對于計算機(jī)的各個領(lǐng)域沒有突出的偏向和特長。

通過學(xué)院開課等多種途徑,開始有機(jī)會接觸一些綜合性軟件開發(fā)。

其中一些優(yōu)秀的個體對計算機(jī)技術(shù)有濃厚的興趣,并且具備較強(qiáng)的自學(xué)能力。

該階段的軟件開發(fā)一般分為如下3種情況:

第一,學(xué)院開設(shè)的實踐性課程一般分小組進(jìn)行,在規(guī)定時間內(nèi)完成一個綜合性軟件的開發(fā),針對整個群體。該情況又分為兩種,一是針對特定課程的實踐,對編程語言、所用的技術(shù)都有規(guī)定限制,涉及到的課外知識較少,對自學(xué)能力要求不高;另一種情況是針對特定應(yīng)用的實踐,該情況只需實現(xiàn)應(yīng)用需求,對編程語言、所用的技術(shù)均無限制,涉及到的課外知識較多,大部分技術(shù)需自學(xué)。

第二,國家級/市級創(chuàng)新項目或者其他綜合性競賽,該情況針對比較優(yōu)秀的學(xué)生,對自學(xué)能力有很高的要求,并且需要扎實的計算機(jī)專業(yè)基礎(chǔ)和創(chuàng)新思維,對團(tuán)隊精神也有較高要求。

第三,協(xié)助導(dǎo)師完成企業(yè)項目或者科研項目的一部分,該情況也是針對比較優(yōu)秀的學(xué)生。該情況下,導(dǎo)師挑選幾個平時表現(xiàn)優(yōu)異的學(xué)生參與項目的開發(fā),分配一些比較基礎(chǔ)簡單又與大學(xué)課程有關(guān)聯(lián)的模塊給學(xué)生完成。對學(xué)生的自學(xué)能力和理解能力有很高的要求。

每種情況的一個共同點就是軟件開發(fā)小組是由3~5人臨時組建的小團(tuán)體,并且對開發(fā)時限有較嚴(yán)格的要求。

以上簡要介紹了“學(xué)習(xí)階段的軟件開發(fā)”這一概念,本文就是針對該特定條件下軟件開發(fā)過程中的分工方法進(jìn)行討論與探索。

2傳統(tǒng)方法及其對學(xué)習(xí)階段軟件開發(fā)的弊處

在傳統(tǒng)的項目分工里,考慮到充分發(fā)揮每位組員的特長和經(jīng)驗,一般都會將軟件開發(fā)劃分為幾個子任務(wù),每個子任務(wù)包含若干模塊,再將各個子任務(wù)按專業(yè)特長分配給相應(yīng)的組員。舉個例子,要設(shè)計實現(xiàn)一個動態(tài)網(wǎng)站時,經(jīng)常會根據(jù)MVC模式,將項目分為數(shù)據(jù)庫設(shè)計、前臺頁面、后臺管理三大部分,然后把數(shù)據(jù)庫設(shè)計部分交給擅長數(shù)據(jù)庫的組員去做,前臺頁面由精通美工及HTML語言等的組員去做,后臺管理則會交給擅長網(wǎng)頁編程的組員去做,并由掌握大局觀的項目負(fù)責(zé)人統(tǒng)一協(xié)調(diào)管理。為降低系統(tǒng)開發(fā)過程的復(fù)雜性,小組內(nèi)程序員之間的任務(wù)界面一般都很清楚且盡量簡化。

上述傳統(tǒng)分工方法在發(fā)揮組員特長、優(yōu)化團(tuán)隊結(jié)構(gòu)和降低軟件各模塊耦合度等方面作用顯著,對大多數(shù)軟件開發(fā)情況都適用,并且應(yīng)該是首選的。然而,針對上文提到的“學(xué)習(xí)階段的軟件開發(fā)”,由于比普遍的軟件開發(fā)階段多了一個學(xué)習(xí)階段,如果仍舊采用傳統(tǒng)的分工方法,一些始料未及的問題便暴露出來。

按傳統(tǒng)的技術(shù)類型分工,由于時間和精力的限制,組員必定只會盯著自己負(fù)責(zé)的那部分技術(shù)資料研究,而對其他組員負(fù)責(zé)的部分毫不關(guān)心,整個團(tuán)隊將會缺少互動交流,更嚴(yán)重的是,無論在技術(shù)學(xué)習(xí)階段還是應(yīng)用階段,由于負(fù)責(zé)某一特定技術(shù)模塊的只有單獨一人或兩人,對技術(shù)知識點甚至模塊功能的理解可能產(chǎn)生偏差,孤軍奮戰(zhàn)的形勢又似回到了從前各自為營的軟件開發(fā)模式,軟件開發(fā)期間比較容易產(chǎn)生挫敗感等負(fù)面情緒。

3針對學(xué)習(xí)階段軟件開發(fā)的均分模式分工方法

所謂均分,是指在工作量、工作性質(zhì)、工作難度、技術(shù)領(lǐng)域相同的條件下,在各階段對項目進(jìn)行平均分配,即全組成員在各個階段共同致力于某一功能相同的模塊組,將功能相近、實現(xiàn)手段和步驟相似的任務(wù)平均分配給每個組員完成。以下就學(xué)習(xí)階段的軟件開發(fā)過程中運用均分模式分工方法與運用傳統(tǒng)分工方法有較大差別的幾個階段進(jìn)行說明。

3.1技術(shù)學(xué)習(xí)階段

在技術(shù)學(xué)習(xí)階段,全組成員共同學(xué)習(xí)本次軟件開發(fā)所要用到的全部技術(shù)。對此,也許有人會提出質(zhì)疑,學(xué)習(xí)全部技術(shù)與傳統(tǒng)方法中的只學(xué)習(xí)某一特定領(lǐng)域技術(shù)相比,是不是要花費成倍的時間與精力?其實不然。針對本文討論的學(xué)習(xí)階段軟件開發(fā)情況,要完成一個軟件項目,往往只需中級專業(yè)知識水平,而不像一個完整的科研項目,需要相應(yīng)領(lǐng)域的高級知識、經(jīng)驗及運用技巧,因此在進(jìn)入自學(xué)階段之前,學(xué)生可以向教師或相關(guān)領(lǐng)域的前輩請教完成這個軟件項目所要用到的具體知識塊,盡量壓縮學(xué)習(xí)范圍。全體組員共同學(xué)習(xí),交流對知識點的不同理解,碰到疑難問題還可以一起討論,從而提高學(xué)習(xí)效率,加快學(xué)習(xí)進(jìn)程,加深對該技術(shù)的認(rèn)識。同時,整個小組在學(xué)習(xí)時就統(tǒng)一編程風(fēng)格及各種表示方式,為今后的設(shè)計編程提供很大便利。現(xiàn)今社會需要的是復(fù)合型人才,要求人才對某一領(lǐng)域有所專長之外,對其他領(lǐng)域的知識也須有一定程度的了解,而均分模式下的技術(shù)學(xué)習(xí)方法正為培養(yǎng)這種人才奠定了堅實的基礎(chǔ),學(xué)生學(xué)得多,收獲也多。

3.2系統(tǒng)設(shè)計階段

在系統(tǒng)設(shè)計階段,小組中的每個成員都站在相同的全局角度去看問題,考慮問題更全面,能更好地看清系統(tǒng)的結(jié)構(gòu)及各模塊間的具體關(guān)系,保證系統(tǒng)設(shè)計不會與需求分析產(chǎn)生太大偏差。模塊實現(xiàn)流程由小組成員共同討論,能更全面地對實現(xiàn)方案進(jìn)行設(shè)計,從而產(chǎn)生更多的方案,從中挑選最合適的。另外,組員共同討論同一模塊的設(shè)計,還能提出更多的可能碰到的突發(fā)狀況,以彌補(bǔ)經(jīng)驗不足的缺陷。而采用傳統(tǒng)的分工方法,每個模塊由特定的負(fù)責(zé)人員設(shè)計,由于缺乏經(jīng)驗,再加上技能學(xué)習(xí)階段遺留下的知識點掌握不扎實的隱患,設(shè)計方案必定存在許多漏洞,而自己卻渾然不知。由此可見,經(jīng)過全組討論設(shè)計出的系統(tǒng)結(jié)構(gòu)以及模塊內(nèi)部結(jié)構(gòu)將更趨向完善。

3.3編碼實現(xiàn)階段

在編碼實現(xiàn)階段,雖然,由于該小組是臨時組織的,且每個組員參加綜合性軟件項目的經(jīng)驗不多,但小組成員普遍具有良好的大局觀和全局概念,考慮問題會立足于整個系統(tǒng)。

在均分模式分工方法中,各個模塊被分為功能相近,實現(xiàn)技術(shù)相同,實現(xiàn)手段、步驟相似的模塊組,模塊組按照層次關(guān)系或難易緩急排序,分階段順序攻克,每一階段的當(dāng)前模塊組均分給組員實現(xiàn)。單從心理來看,由于不是一個人單獨面對從未接觸過的編程技術(shù),遇到問題時可以向小組成員請教,個人的自信心將增強(qiáng)不少。更重要的是,在計算機(jī)技能應(yīng)用方面,初學(xué)者遇到的問題往往是相似的,遇到共同的問題時,通過集體討論、查資料,或者向?qū)熐笾韧緩?一般很快就可以解決,從而大幅度加快開發(fā)進(jìn)程。

然而,如果在學(xué)習(xí)階段的軟件開發(fā)中使用傳統(tǒng)方法,組員往往只關(guān)注于自己的工作領(lǐng)域,沒有時間也沒有精力去關(guān)心系統(tǒng)的其他部分,這就喪失了全局觀,與相關(guān)人員的交流也將產(chǎn)生困難。更糟糕的是,如此分工很有可能帶來系統(tǒng)開發(fā)中的本位主義,而遇到問題時,既沒有解決這些問題的經(jīng)驗,又由于組員的專攻方向不同而不能與同組組員討論研究,通過其他渠道得到幫助往往會花費較長時間和較多精力,也會影響總體進(jìn)度,使其他組員難以把握步調(diào)。同時,系統(tǒng)設(shè)計階段遺留下來的弊病也將逐漸顯現(xiàn)。從理論上來說,組員對自己負(fù)責(zé)模塊的接口不能自由修改,對系統(tǒng)整體設(shè)計的改進(jìn)則更是困難。自己這一部分的改進(jìn)往往需要其他部分的相應(yīng)修改,這樣就會帶來很多的麻煩,最后大家的工作被相互抵消了。

在學(xué)習(xí)階段的軟件開發(fā)過程中,如果實行傳統(tǒng)分工,必然導(dǎo)致程序員視野狹隘,系統(tǒng)中存在的錯誤被詳細(xì)的分工掩蓋起來,最后等到系統(tǒng)整體測試時才發(fā)現(xiàn)錯誤,這時只好在上面修補(bǔ),使整個系統(tǒng)變得雜亂無章,讓項目組不能自拔。而均分模式分工方法正好彌補(bǔ)了這些缺陷,從而達(dá)到提高軟件開發(fā)效率、保證軟件質(zhì)量的目標(biāo)。

4均分模式分工方法的注意事項

均分模式的運用還有以下幾點需要注意。

首先,這里所提的均分模式分工方法是針對“學(xué)習(xí)階段軟件開發(fā)”的特殊分工方法。對于學(xué)習(xí)階段軟件開發(fā)的幾種子情況來說,該方法更適用于第2和第3種組員能力比較均衡的情況。

其次,均分模式與傳統(tǒng)的分工模式也有共通的地方,實現(xiàn)效果如何,最重要的還是看團(tuán)隊合作。

最后,該方法還需要經(jīng)過多次實踐不斷完善。如果條件允許,可以嘗試在軟件開發(fā)正式啟動前,請業(yè)內(nèi)人士進(jìn)行簡要的工程開發(fā)流程與團(tuán)隊合作的培訓(xùn)。

總之,軟件開發(fā)的分工模式并不是一成不變的,應(yīng)本著具體問題具體分析的態(tài)度分配工作,真正發(fā)揮項目分工的優(yōu)勢。

參考文獻(xiàn):

[1] Ian Sommerville. 軟件工程[M]. 8版. 北京:機(jī)械工業(yè)出版社,2007.

[2] 楊少波,盧葦. J2EE項目實訓(xùn)——UML及設(shè)計模式[M]. 北京:清華大學(xué)出版社,2008.

猜你喜歡
軟件開發(fā)
基于安卓平臺的移動式教學(xué)模式研究
嵌入式系統(tǒng)軟件開發(fā)技術(shù)探析
淺談分層技術(shù)在軟件開發(fā)中的應(yīng)用
Java軟件開發(fā)問題探究
軟件開發(fā)中JAVA編程語言的應(yīng)用
淺談程序設(shè)計的方法
商情(2016年39期)2016-11-21 09:58:50
信息安全環(huán)境下的計算機(jī)軟件開發(fā)研究
計算機(jī)軟件開發(fā)中的分層技術(shù)運用
建模技術(shù)在軟件開發(fā)中的應(yīng)用
軟件開發(fā)中數(shù)據(jù)庫設(shè)計理論的實踐
祁门县| 龙陵县| 中宁县| 西贡区| 邮箱| 潮安县| 齐齐哈尔市| 望江县| 克拉玛依市| 临澧县| 乌恰县| 和平区| 手游| 新昌县| 建阳市| 黄梅县| 上高县| 东阳市| 游戏| 昌黎县| 禄劝| 洱源县| 开平市| 左权县| 镶黄旗| 西乡县| 无棣县| 称多县| 淅川县| 湾仔区| 朝阳市| 苍溪县| 鸡泽县| 沧州市| 鄂尔多斯市| 崇州市| 酒泉市| 游戏| 建水县| 柳州市| 邵武市|