對日軟件外包的軟件開發(fā)過程_第1頁
對日軟件外包的軟件開發(fā)過程_第2頁
對日軟件外包的軟件開發(fā)過程_第3頁
對日軟件外包的軟件開發(fā)過程_第4頁
對日軟件外包的軟件開發(fā)過程_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、.對日軟件外包的軟件開發(fā)過程第1章對日軟件外包1.1對日軟件外包的開展全球應(yīng)用軟件外包市場近幾年平均每年以29%的速度增長,2005年整個市場規(guī)模將到達389億美元。目前全球的軟件產(chǎn)值中,三分之一需要通過對外發(fā)包來完成。軟件外包已經(jīng)成為世界軟件產(chǎn)業(yè)開展的一個重要趨勢。在這一趨勢下,?振興軟件產(chǎn)業(yè)行動綱要?提出,從2001年到2005年,中國軟件出口要從年出口7億美元提升到50億美元。按照預(yù)定的目的,2004年國內(nèi)軟件企業(yè)將要完成的出口額將到達35億美元。這對于中國軟件企業(yè)而言確實是個不小的數(shù)字。為了實現(xiàn)這一目的,有關(guān)人士指出,中國企業(yè)應(yīng)積極拓展對歐美軟件外包業(yè)務(wù),把軟件外包做強做大。但如今美國

2、市場主要被印度壟斷,歐洲市場被愛爾蘭壟斷,中國企業(yè)的核心競爭力需要較長時間的積累,而對日軟件外包,我們那么有優(yōu)勢。在對美軟件外包市場上,中國軟件企業(yè)與印度軟件企業(yè)的差距是明顯的,從英文程度到簽證難度,從法制制度的不同到對知識產(chǎn)權(quán)認(rèn)識程度的差異,中國軟件企業(yè)要在對美軟件外包市場趕上印度企業(yè)還需加以時日。美國IT從業(yè)人員中印度和中國人員的比例是31,中國軟件企業(yè)目前做的外包只占日本軟件外包的2%多一點。以英文為主導(dǎo)的軟件外包市場正在逐漸萎縮,并且在這個市場上我們和印度相比競爭優(yōu)勢不明顯。而對日軟件外包市場相對印度來說,中國軟件企業(yè)有地域優(yōu)勢和有限的語言優(yōu)勢,應(yīng)當(dāng)成為國內(nèi)軟件外包企業(yè)的開展導(dǎo)向。1.

3、2對日軟件外包的現(xiàn)狀對日外包市場潛力宏大,據(jù)IDC統(tǒng)計數(shù)據(jù),2005年日本IT外包市場規(guī)模為164億美元,而同年我國來自日本的軟件發(fā)包量約為5.6億美元,僅占日本IT外包市場的3.4%。IDC預(yù)測2020年日本IT外包市場將到達23,363億日元約226億美元,2020年我國對日外包將近40億美元,占比上升為17.7%。由此可見我國對日軟件外包將來的市場潛力宏大。國內(nèi)現(xiàn)有的對日軟件外包企業(yè),主要為面向日本資訊科技行業(yè)的客戶提供外包軟件開發(fā)效勞,而該等客戶其本身又是為日本客戶或全球客戶提供軟件開發(fā)效勞。也就是一種工程轉(zhuǎn)包性質(zhì)的開發(fā)。以我如今所在公司為例,從事過制造業(yè)工程、CAD軟件工具、證券金融

4、軟件、物流軟件等等。1.3對日軟件外包的軟件開發(fā)特點由于外包客戶也是多為軟件公司或是大公司的軟件開發(fā)部分,而且由于是外包軟件開發(fā),所以開發(fā)層次比較低,或者說不是一個完好意思上的軟件開發(fā)過程。根據(jù)個人在對日軟件開發(fā)公司工作多年的經(jīng)歷,總結(jié)以下幾點特點:1.技術(shù)含量低,從事低層次工作。通常,軟件開發(fā)過程都要經(jīng)歷商業(yè)建模、需求分析、系統(tǒng)分析和設(shè)計、實現(xiàn)、測試和部署等核心流程。然而,對日外包的開發(fā)流程被嚴(yán)格劃分開來的,外包客戶從事商業(yè)建模、需求分析、系統(tǒng)分析和設(shè)計等高層次的工作,然后將設(shè)計書發(fā)包到國內(nèi),而國內(nèi)公司僅僅只是嚴(yán)格根據(jù)客戶的設(shè)計書,將其代碼實現(xiàn)并通過單體測試就算完工。所以,國內(nèi)對日外包企業(yè)只

5、是擔(dān)當(dāng)了實現(xiàn)、測試兩個階段的任務(wù)。也有個別工程會擔(dān)當(dāng)些簡單的設(shè)計任務(wù)。2.工期短工作量大由于國內(nèi)勞動力相對日本國內(nèi)廉價許多,許多日本IT企業(yè)將開發(fā)和測試環(huán)節(jié)移到中國國內(nèi),根據(jù)客戶的功能設(shè)計書或詳細設(shè)計書,完成開發(fā)及測試。這樣即可以降低軟件開發(fā)本錢,又不至于有太大的開發(fā)風(fēng)險,因為設(shè)計是日本人自己完成的。但是,時常會發(fā)生因為客戶的設(shè)計不合理或不詳細或理解不同等等客觀原因,無法按照原來合同中規(guī)定的工數(shù)完成任務(wù),所以常常要靠加班來爭取時間。3.品質(zhì)要求高誰都想花錢買到好東西,軟件外包也是一樣,日本公司也想花錢買到更好的客戶,詳細表達就是提供優(yōu)質(zhì)的代碼成果物。然而,由于軟件企業(yè)的流動性比較大,公司出于本

6、錢考慮,常會雇傭一些經(jīng)歷缺乏的實習(xí)人員直接投入工程開發(fā)中,導(dǎo)致品質(zhì)較低,而為了彌補品質(zhì)上問題,又需要用加班的方式來爭取大量時間進步質(zhì)量。4.文檔要求高有些日本客戶公司,施行了CMM3或更高級別的控制標(biāo)準(zhǔn),同樣也要求中國的外包公司按照其標(biāo)準(zhǔn)施行,當(dāng)然這樣對于國內(nèi)公司自身管理才能也是一種進步。但是,有些客戶公司過于注重文檔,而無視了對于最更本的代碼的重視程度。第2章RUP RUP是Rational統(tǒng)一過程Rational Unified Process的簡稱,它是Rational公司現(xiàn)歸屬IBM公司推出的一種軟件過程產(chǎn)品。從軟件過程形式角度看,RUP又是一種典型的軟件過程形式,它以迭代增量式、架構(gòu)

7、為中心、用例驅(qū)動的軟件開發(fā)方法、采用UML語言描繪軟件開發(fā)過程為主要特征,其中以用例驅(qū)動乃是貫穿軟件開發(fā)始終的方法。2.1 RUP的特點1.迭代式開發(fā)。在軟件開發(fā)的前期階段完全并準(zhǔn)確的掌握用戶全部的需求幾乎是不可能的。實際上,經(jīng)常遇到,需求在整個軟件開發(fā)工程中會不斷改變,從而使得軟件工程難于管理而產(chǎn)生較大風(fēng)險。而迭代的開發(fā)方式允許在每次迭代過程中需求有所變化,通過不斷細化來加深對問題的理解,最終實現(xiàn)完全滿足用戶需求的軟件。迭代式開發(fā)不僅可以降低工程的風(fēng)險,而且使得軟件開發(fā)過程具備較強的控制性。2.管理需求。完善用戶需求是一個漸進的過程,開發(fā)人員在開發(fā)系統(tǒng)之初不可能完全詳細的說明一個系統(tǒng)的真正需

8、求。RUP描繪了如何提取、組織系統(tǒng)的功能和約束條件并將其文檔化,用例和腳本的使用以被證明是捕獲功能性需求的有效方法。3.基于組件的體系構(gòu)造。組件使重用成為可能,系統(tǒng)可以由組件組成?;讵毩⒌摹⒖山粨Q的、模塊化組件的體系構(gòu)造有助于管理復(fù)雜性,進步重用率。RUP描繪了如何設(shè)計一個有彈性的、能適應(yīng)變化的、易于理解的、有助于重用的軟件體系構(gòu)造。4.可視化建模。RUP和UML結(jié)合在一起,對軟件系統(tǒng)建立可視化模型幫助人們提供管理軟件復(fù)雜性的才能。RUP告訴我們?nèi)绾慰梢暬膶浖到y(tǒng)建模,獲取有關(guān)體系構(gòu)造于組件的構(gòu)造和行為信息。5.驗證軟件質(zhì)量。在RUP中軟件質(zhì)量評估不再是事后進展或單獨小組進展的別離活動,

9、而是內(nèi)建于過程中的所有活動,這樣可以及早發(fā)現(xiàn)軟件中的缺陷。6.控制軟件變更。迭代式開發(fā)中假設(shè)沒有嚴(yán)格的控制和協(xié)調(diào),整個軟件開發(fā)過程很快就陷入混亂之中,RUP描繪了如何控制、跟蹤、監(jiān)控、修改以確保成功的迭代開發(fā)。RUP通過軟件開發(fā)過程中的制品,隔離來自其他工作空間的變更,以此為每個開發(fā)人員建立平安的工作空間。2.2 RUP的核心工作流RUP中有9個核心工作流,分為6個核心過程工作流Core Process Workflows和3個核心支持工作流Core Supporting Workflows。盡管6個核心過程工作流可能使人想起傳統(tǒng)瀑布模型中的幾個階段,但應(yīng)注意迭代過程中的階段是完全不同的,這些

10、工作流在整個生命周期中一次又一次被訪問。9個核心工作流在工程中輪流被使用,在每一次迭代中以不同的重點和強度重復(fù)。1.商業(yè)建模Business Modeling描繪了如何為新的目的組織開發(fā)一個設(shè)想,并基于這個設(shè)想在商業(yè)用例模型和商業(yè)對象模型中定義組織的過程,角色和責(zé)任。2.需求Requirements描繪系統(tǒng)應(yīng)該做什么,并使開發(fā)人員和用戶就這一描繪達成共識。為了到達該目的,要對需要的功能和約束進展提取、組織、文檔化;最重要的是理解系統(tǒng)所解決問題的定義和范圍。3.分析和設(shè)計Analysis&Design將需求轉(zhuǎn)化成將來系統(tǒng)的設(shè)計,為系統(tǒng)開發(fā)一個強健的構(gòu)造并調(diào)整設(shè)計使其與實現(xiàn)環(huán)境相匹配,優(yōu)化

11、其性能。分析設(shè)計的結(jié)果是一個設(shè)計模型和一個可選的分析模型。設(shè)計活動以體系構(gòu)造設(shè)計為中心,體系構(gòu)造由假設(shè)干構(gòu)造視圖來表達,構(gòu)造視圖是整個設(shè)計的抽象和簡化。4.實現(xiàn)Implementation包括以層次化的子系統(tǒng)形式定義代碼的組織構(gòu)造;以組件的形式源文件、二進制文件、可執(zhí)行文件實現(xiàn)類和對象;將開發(fā)出的組件作為單元進展測試以及集成由單個開發(fā)者或小組所產(chǎn)生的結(jié)果,使其成為可執(zhí)行的系統(tǒng)。5.測試Test驗證對象間的交互作用,驗證軟件中所有組件的正確集成,檢驗所有的需求已被正確的實現(xiàn),識別并確認(rèn)缺陷在軟件部署之前被提出并處理。RUP提出了迭代的方法,意味著在整個工程中進展測試,從而盡可能早地發(fā)現(xiàn)缺陷,從根

12、本上降低了修改缺陷的本錢。6.部署Deployment成功的生成版本并將軟件分發(fā)給最終用戶。描繪了那些與確保軟件產(chǎn)品對最終用戶具有可用性相關(guān)的活動,包括:軟件打包、生成軟件本身以外的產(chǎn)品、安裝軟件、為用戶提供幫助。7.配置和變更管理Configuration&Change Management描繪了如何在多個成員組成的工程中控制大量的產(chǎn)物。配置和變更管理工作流提供了準(zhǔn)那么來管理演化系統(tǒng)中的多個變體,跟蹤軟件創(chuàng)立過程中的版本。描繪了如何管理并行開發(fā)、分布式開發(fā)、如何自動化創(chuàng)立工程。同時也闡述了對產(chǎn)品修改原因、時間、人員保持審計記錄。8.工程管理Project Management平衡各種

13、可能產(chǎn)生沖突的目的,管理風(fēng)險,抑制各種約束并成功交付使用戶滿意的產(chǎn)品。其目的包括:為工程的管理提供框架,為方案、人員裝備、執(zhí)行和監(jiān)控工程提供實用的準(zhǔn)那么,為管理風(fēng)險提供框架等。9.環(huán)境Environment環(huán)境工作流的目的是向軟件開發(fā)組織提供軟件開發(fā)環(huán)境,包括過程和工具。環(huán)境工作流集中于配置工程過程中所需要的活動,同樣也支持開發(fā)工程標(biāo)準(zhǔn)的活動,提供了逐步的指導(dǎo)手冊并介紹了如何在組織中實現(xiàn)過程。2.3 RUP裁剪步驟RUP是一個通用的過程模板,包含了很多開發(fā)指南、制品、開發(fā)過程所涉及到的角色說明,由于它非常龐大所以對詳細的開發(fā)機構(gòu)和工程,用RUP時還要做裁剪,也就是要對RUP進展配置。RUP就像

14、一個元過程,通過對RUP進展裁剪可以得到很多不同的開發(fā)過程,這些軟件開發(fā)過程可以看作RUP的詳細實例。RUP裁剪可以分為以下幾步:1確定本工程需要哪些工作流。RUP的9個核心工作流并不總是需要的,可以取舍。2確定每個工作流需要哪些制品。3確定4個階段之間如何演進。確定階段間演進要以風(fēng)險控制為原那么,決定每個階段要那些工作流,每個工作流執(zhí)行到什么程度,制品有那些,每個制品完成到什么程度。4確定每個階段內(nèi)的迭代方案。規(guī)劃RUP的4個階段中每次迭代開發(fā)的內(nèi)容。5規(guī)劃工作流內(nèi)部構(gòu)造。工作流涉及角色、活動及制品,他的復(fù)雜程度與工程規(guī)模即角色多少有關(guān)。最后規(guī)劃工作流的內(nèi)部構(gòu)造,通常用活動圖的形式給出。第3

15、章改進方案雖然,對日軟件外包工程往往不是一個完好的軟件開發(fā)過程,只是其中一部分或幾部分而已,但是并不阻礙RUP在對日外包工程中發(fā)揮強大的作用。上一章節(jié)中,分析了如何根絕詳細工程特性,對RUP過程進展裁剪,以適應(yīng)不同的軟件工程。本章節(jié)將根據(jù)裁剪步驟,結(jié)合如今公司的工程特點,細化制定適當(dāng)?shù)腞UP開發(fā)過程。3.1確定工作流對日軟件外包,通常是根據(jù)客戶的功能需求書或詳細設(shè)計書,完成代碼實現(xiàn)和測試。所以只需要實現(xiàn)和測試兩個工作流。結(jié)合我公司如今從事工程的特點,簡單闡述一下各工作流。1.實現(xiàn)由于對日外包的特殊性,面對客戶根本都是日本的IT企業(yè),現(xiàn)階段都處于較低層次,也就是只負(fù)責(zé)代碼實現(xiàn)和測試,可能也會從事

16、部分簡單設(shè)計。所以,根據(jù)客戶的設(shè)計書完成符合要求的代碼就是對日外包的主要工作任務(wù)。所以實現(xiàn)工作流也是最重要的工作流。而且,由于是根據(jù)日方的設(shè)計從事開發(fā)實現(xiàn),所以除了實現(xiàn)本身的任務(wù)外,還有承前的工作要完成,比方:理解設(shè)計書的要求,開發(fā)環(huán)境搭建,判斷設(shè)計中可能存在的不合理性等。而這些問題都可能直接影響到最后是否能順利完成實現(xiàn)的工作任務(wù)。2.測試判斷開發(fā)的代碼是否能交付,也就是依靠測試用例了,我方只擔(dān)任單體測試部分的任務(wù),并將全部通過測試的代碼和測試用例書作為成果物交付給日方。假設(shè),由于單體測試內(nèi)容不全面,而在結(jié)合測試中發(fā)現(xiàn)的問題,將作為Bug報告,再由擔(dān)當(dāng)者修正后提交。以上講的兩個工作流,是如今多

17、數(shù)對日外包公司承擔(dān)的主要任務(wù),當(dāng)然也有部分公司可能承接的工程是個完好的軟件過程,涉及到9個工作流中的絕大多數(shù),在此不作重點依次展開。其實各個工程,由自身特點可以制定出自己的RUP軟件過程。只要實用就是最好。3.2各工作流的職責(zé)和制品由于是委托開發(fā),客戶為了有效控制開發(fā)過程和質(zhì)量,往往是通過各種文檔來對工程進展管理和控制。對日外包開發(fā)中,文檔的分類比較繁多,規(guī)格要求也根據(jù)不同公司有不同的要求。以以下舉幾種文檔,在整個開發(fā)過程中起俄作用:1.功能設(shè)計書用戶提出委托開發(fā)要求,中方根據(jù)功能設(shè)計書,理解所開發(fā)工程的所有需求,并估計工數(shù)和工程報價,假設(shè)對方客戶對報價沒有異議,就正常進入開發(fā)施行階段。開發(fā)小

18、組成員開場一起研究功能設(shè)計,解決理解和實現(xiàn)技術(shù)上的所有問題,盡可能防止因設(shè)計書理解缺乏,而導(dǎo)致工程失敗。2.詳細設(shè)計書通常,客戶是不提供詳細設(shè)計書,而是開發(fā)團隊根據(jù)功能設(shè)計書,結(jié)合實現(xiàn)技術(shù)的特點,完成詳細設(shè)計書,作為實現(xiàn)工作流的前期成果物,交付日方Review確認(rèn),只有通過Review后才能進入到正式的開發(fā)實現(xiàn)階段。3.代碼規(guī)約為加強代碼具有良好的可讀性,需要通過在開發(fā)前期就作好代碼標(biāo)準(zhǔn)的教育工作,標(biāo)準(zhǔn)的代碼才能有效提交代碼的品質(zhì)。4.開發(fā)環(huán)境構(gòu)建步驟說明書外包開發(fā)通??蛻羰菍⑼旰玫墓こ滩鸱殖啥鄠€相對獨立的模塊,分別發(fā)包給一個或多個外包開發(fā)公司開發(fā),所以需要提供詳細完善的開發(fā)環(huán)境構(gòu)建說明書,便

19、于開發(fā)團隊盡快熟悉環(huán)境完成開發(fā)任務(wù)。5.代碼代碼程序當(dāng)然是所有制品中最重要的,其質(zhì)量直接影響到工程的成功與否。由于是委托開發(fā),全部都是根據(jù)客戶提供的功能設(shè)計書來完成代碼開發(fā)的,所以往往可能因為設(shè)計書理解缺乏,或設(shè)計書內(nèi)容存在錯誤等外部因素影響代碼的質(zhì)量。而一旦存在疑問時,就應(yīng)該及時通過QA方式向日方確認(rèn)。最后在完成全部代碼實現(xiàn)后,需要和日方一起Review全部代碼。總之,工程成敗就取決于代碼的質(zhì)量如何了。6.代碼目錄構(gòu)造說明書此文檔只是一個說明性的文檔,用說明各個代碼文件的目錄構(gòu)造,編譯環(huán)境的設(shè)置等相關(guān)詳細內(nèi)容。方便客戶拿到代碼文件后能盡快確認(rèn)代碼的正確性。7.測試用例書測試用例書也是整個開發(fā)

20、過程中又一個關(guān)鍵,也是保證代碼質(zhì)量的一種有效手段。通常分為正常系和異常系兩大類測試用例,判斷程序的正常執(zhí)行結(jié)果是否符合需求,是否具有一定的判錯才能等。與代碼一樣,測試用例書也是需要提交日方客戶Review確認(rèn)后,再能進入測試階段的。8.測試數(shù)據(jù)測試過程用到的所有數(shù)據(jù),可能因為測試數(shù)據(jù)的局限性導(dǎo)致有些Bug沒有被發(fā)現(xiàn),那就可以根據(jù)現(xiàn)有的測試數(shù)據(jù)內(nèi)容判斷測試是否全面而且有效了。9.測試結(jié)果書根據(jù)測試用例書,對最終的代碼程序進展測試,并全部確認(rèn)無誤后,填寫測試結(jié)果書提交給日方客戶。10.輔助工具報告為了保證代碼的質(zhì)量,通常還會使用一些自動化測試工具,對性能,破綻,標(biāo)準(zhǔn)等方面進展測試,根據(jù)測試的結(jié)果報

21、告,盡可能修正后,將最終的報告書也需要提交給日方客戶。3.3 4個階段的劃分RUP將整個開發(fā)過程劃分成初始、細化、構(gòu)造、交付四個階段。每個階段中都包含著多個工作流,只是工作的重點不同,同時還包含著復(fù)數(shù)個迭代過程。迭代次數(shù)和劃分時間也許無法事先預(yù)計,但是可以大致規(guī)劃,再根據(jù)詳細情況,靈敏變動修改的。以下將以四個階段為單位分別展開闡釋。1.初始初始階段主要完成的任務(wù)是:掌握功能設(shè)計書,熟悉開發(fā)環(huán)境,估算工程工數(shù)和規(guī)模。似乎初始階段的任務(wù)并不難,但是其估算結(jié)果的正確與否會影響到最后的實現(xiàn)情況。所以需要全面而準(zhǔn)確的理解功能需求,才能防止過大的偏向。初始階段相對任務(wù)比較輕,一般一次迭代就能完成。在此迭代過程中也可以嘗試實現(xiàn)部分代碼,理解詳細的工程難度,以便準(zhǔn)確的估算。2.細化細化階段主要任務(wù)是:作成詳細設(shè)計書和測試用例書,并完成部分代碼的實現(xiàn)。詳細設(shè)計書和詳細實現(xiàn)方法是有親密聯(lián)絡(luò)的,所以應(yīng)該在寫詳細設(shè)計書的同時編寫并測試通過部分代碼,以驗證設(shè)計的可行性。而如今多數(shù)工程中存在的問題是,大家并不能意識到迭代開發(fā)的重要性,還不能掌握迭代開發(fā)的手段躲避和控制風(fēng)險。比方,詳細設(shè)計時,也會嘗試調(diào)查,但是調(diào)查時候?qū)懙拇a可能并不是最后要交付的代碼,可以認(rèn)為那是一定程度上的資源浪費。所以應(yīng)該加強開發(fā)團隊在細化階段是,注重迭代開發(fā),使得工程不斷完善。3.構(gòu)造構(gòu)造階段主要任務(wù)是:根據(jù)詳細設(shè)計書

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論