posts - 310, comments - 6939, trackbacks - 0, articles - 3
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          應(yīng)IT168寫的專稿:http://publish.itpub.net/m/2007-12-23/200712231855642.shtml

           

          軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)成熟度的思考

           

          軟件的體系結(jié)構(gòu)標(biāo)準(zhǔn)是對(duì)系統(tǒng)或軟件的構(gòu)造方式的描述。當(dāng)組織在開發(fā)軟件應(yīng)用系統(tǒng)時(shí),體系結(jié)構(gòu)的標(biāo)準(zhǔn)化很好的定義了開發(fā)過程當(dāng)中的目標(biāo)產(chǎn)品、開發(fā)模式、開發(fā)實(shí)踐過程等相關(guān)內(nèi)容。而在本文中,讀者可以看到,軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)能很巧妙的加速軟件開發(fā)過程,使軟件產(chǎn)品交付使用周期縮短,同時(shí)可以降低軟件開發(fā)的成本。

          一、        軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)

          盡管對(duì)一個(gè)IT公司來說,我們承認(rèn)制定了軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)確實(shí)是軟件成熟度的體現(xiàn),但是,一個(gè)構(gòu)思很差或很不成熟的標(biāo)準(zhǔn)體系,比沒有軟件體系結(jié)構(gòu)標(biāo)準(zhǔn),會(huì)由于項(xiàng)目的風(fēng)險(xiǎn)而變得更加的糟糕。而真正的軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)應(yīng)該由成熟度特征、標(biāo)準(zhǔn)定義及模型分類等內(nèi)容來進(jìn)行體現(xiàn),因此軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)是隨著技術(shù)的發(fā)展而發(fā)展的課題。

          乘過飛機(jī)的人都知道,航空服務(wù)的流程是十分清晰的:從定票、機(jī)場(chǎng)登記、行李托運(yùn)、登機(jī)安檢到登機(jī)、安全注意事項(xiàng)、機(jī)上餐飲和娛樂服務(wù)再到下飛機(jī)離開,任何環(huán)節(jié)都是極其規(guī)范和標(biāo)準(zhǔn)的,無論哪家航空公司(國(guó)外或國(guó)內(nèi)),在流程的一致性上幾乎沒有差異,顯然,在這里服務(wù)流程的標(biāo)準(zhǔn)化是高質(zhì)量服務(wù)的基礎(chǔ)。可以設(shè)想,如果不同的航空公司服務(wù)流程不相同,將給顧客帶來怎樣的麻煩。

          為什么要積極推行軟件工程標(biāo)準(zhǔn)化工作,其道理是顯而易見的。僅就一個(gè)軟件開發(fā)項(xiàng)目來說,有多個(gè)層次、不同分工的人員相配合,在開發(fā)項(xiàng)目的各個(gè)部分以及各開發(fā)階段之間也都存在著 許多聯(lián)系和銜接問題。如何把這些錯(cuò)綜復(fù)雜的關(guān)系協(xié)調(diào)好,需要有一系列統(tǒng)一的約束和規(guī)定。在軟件開發(fā)項(xiàng)目取得階段成果或最后完成時(shí),需要進(jìn)行階段評(píng)審和驗(yàn)收測(cè)試。投入運(yùn)行的軟件,其維 護(hù)工作中遇到的問題又與開發(fā)工作有著密切的關(guān)系。軟件的管理工作則滲透到軟件生存期的每一個(gè)環(huán)節(jié)。所有這些都要求提供統(tǒng)一的行動(dòng)規(guī)范和衡量準(zhǔn)則,使得各種工作都能有章可循。

          軟件工程的標(biāo)準(zhǔn)化會(huì)給軟件工作帶來許多好處,比如:提高軟件的可靠性、可維護(hù)性和可移植性(這表明軟件工程標(biāo)準(zhǔn)化可提高軟件產(chǎn)品的質(zhì)量)提高軟件的生產(chǎn)率提高軟件人員的技術(shù)水平提高軟件人員之間的通信效率,減少差錯(cuò)和誤解有利于軟件管理有利于降低軟件產(chǎn)品的成本和運(yùn)行維護(hù)成本有利于縮短軟件開發(fā)周期。

          二、        軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)的優(yōu)勢(shì)

          軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)定義了一系列的軟件開發(fā)邊界,而開源軟件或軟件提供商正是應(yīng)用這些軟件邊界來進(jìn)行軟件的開發(fā)。例如,我們?nèi)粘\浖_發(fā)中所用到的應(yīng)用服務(wù)器、Ajax工具包、數(shù)據(jù)庫(kù)或Web服務(wù)等等。此外,軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)還定義了其它一系列的軟件開發(fā)邊界,而這些軟件開發(fā)邊界主要應(yīng)用于體系模式或是具體的業(yè)務(wù)問題的解決,例如B2B(電子商務(wù),Business to business)、商業(yè)智能系統(tǒng)等等。同時(shí),這類軟件邊界還可以用于構(gòu)建軟件的體系基線,如在RUPRational Unified Process,統(tǒng)一過程)或是XPExtreme programming,極限編程)中所應(yīng)用的那樣。

          由于這種軟件邊界的存在,所以很多軟件開發(fā)者或是系統(tǒng)架構(gòu)師經(jīng)常感覺到自己的創(chuàng)造能力受到了限制。那這種軟件邊界所帶的好處或優(yōu)勢(shì)到底何在呢?通過軟件邊界的定義,就可以使已經(jīng)解決的問題不在考慮的范圍之內(nèi)了。從而簡(jiǎn)化了很多問題。相反,開發(fā)人員的創(chuàng)造能力不但不會(huì)受到限制,反而可以集中精力于解決另外的業(yè)務(wù)問題。

          在項(xiàng)目管理中,始終都非常關(guān)注交付成果(Deliverable)。完成全部交付成果,就意味著覆蓋了全部的項(xiàng)目范圍,所有的項(xiàng)目活動(dòng)、項(xiàng)目資源,都是為了有效完成這些交付成果而發(fā)生的,交付成果在很大程度上反映了項(xiàng)目目標(biāo)的要求。通過軟件體系標(biāo)準(zhǔn)的建立,可以加速項(xiàng)目交付使用。。例如,對(duì)某一個(gè)項(xiàng)目所采用的軟件體系標(biāo)準(zhǔn)的嚴(yán)格化制定,可以將此標(biāo)準(zhǔn)廣泛的應(yīng)用到類似的項(xiàng)目中去,可以節(jié)省類似項(xiàng)目的前期人力與時(shí)間投入。而組織的編輯規(guī)范可以明顯的加速軟件的交付使用過程。

          三、        標(biāo)準(zhǔn)成熟特征

          當(dāng)然,并非所有的軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)都可以加速軟件產(chǎn)品的交付使用周期或是降低產(chǎn)品的開發(fā)費(fèi)用。一套成熟與實(shí)用的標(biāo)準(zhǔn)有它自己的明顯特征。

          項(xiàng)目專家的建議與意見

          軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)的第一個(gè)特征,就是本標(biāo)準(zhǔn)是否已經(jīng)得到了組織的IT項(xiàng)目專家的一致討論與通過,并就相關(guān)的內(nèi)容進(jìn)行修改與重新制定。只有經(jīng)過IT項(xiàng)目專家組的一致認(rèn)可的標(biāo)準(zhǔn),才可有可能成軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)。例如,著名的De facto標(biāo)準(zhǔn)(De facto standard,有譯實(shí)質(zhì)標(biāo)準(zhǔn)、業(yè)界標(biāo)準(zhǔn)或非官方標(biāo)準(zhǔn),是指一套技術(shù)上或其他方面的規(guī)格/標(biāo)準(zhǔn),而該套規(guī)格/標(biāo)準(zhǔn)屬于主流而且每個(gè)人都習(xí)慣依據(jù)為法定標(biāo)準(zhǔn)般跟隨),可以從已經(jīng)實(shí)現(xiàn)的項(xiàng)目中獲得實(shí)惠的經(jīng)驗(yàn)。而通過IT項(xiàng)目專家討論一致通過的標(biāo)準(zhǔn)則可以應(yīng)用于組織的其它項(xiàng)目中。

          參考模型與實(shí)現(xiàn)

          通過參考模型及建立的相關(guān)成文的文檔,可以比較成功的解決產(chǎn)品或項(xiàng)目開發(fā)過程的一些實(shí)質(zhì)業(yè)務(wù)問題。而參考實(shí)現(xiàn)由于是對(duì)參考模型的具體化,從而可以更加明確的改善項(xiàng)目的開發(fā)過程。所以,參考模型與參考實(shí)現(xiàn)都將會(huì)顯著的加速體軟件系結(jié)構(gòu)的制定與建設(shè)。

          支持度模型

          支持度模型需要合理的在項(xiàng)目或產(chǎn)品開發(fā)過程使用。這通常包括開發(fā)、測(cè)試及產(chǎn)品環(huán)境的平衡等內(nèi)容。在整個(gè)開發(fā)環(huán)境中,系統(tǒng)應(yīng)用團(tuán)隊(duì)的角色及責(zé)任需要很明確的定義。而標(biāo)準(zhǔn)的制定及可操作性支持度模型的確定,通過是一個(gè)成熟標(biāo)準(zhǔn)的主要體現(xiàn)。

          規(guī)劃支持

          規(guī)劃支持主要通過采用特殊產(chǎn)品、配置的項(xiàng)目環(huán)境、模式等工具,來保證項(xiàng)目的正確實(shí)施,盡可能的避免項(xiàng)目失敗。

          產(chǎn)品實(shí)現(xiàn)

          產(chǎn)品實(shí)現(xiàn)是評(píng)估標(biāo)準(zhǔn)成熟度的重要的指標(biāo)。

          而對(duì)于缺少如下的一些特征的項(xiàng)目,通過會(huì)產(chǎn)生一些項(xiàng)目風(fēng)險(xiǎn):

          沒有經(jīng)過項(xiàng)目專家就評(píng)估的標(biāo)準(zhǔn),通常會(huì)以失敗或部分的失敗而告終;

          沒有參考模型和參考實(shí)現(xiàn),標(biāo)準(zhǔn)將不能正確的被執(zhí)行,同時(shí)可能增加軟件開發(fā)的成本;

          沒有清晰的支持度模型,將會(huì)使軟件開發(fā)人員的角色及責(zé)任重復(fù)或不清晰;

          沒有規(guī)劃支持,則過往項(xiàng)目的經(jīng)驗(yàn)不充分的加以應(yīng)用與借鑒;

          最后,沒有產(chǎn)品實(shí)現(xiàn),則軟件產(chǎn)品不能通過實(shí)踐來進(jìn)行唯一的檢驗(yàn),不能使軟件開發(fā)嚴(yán)格的遵循軟件開發(fā)的生命周期。

          四、        軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)分類

          根據(jù)體系結(jié)構(gòu)標(biāo)準(zhǔn)的成熟度,可以對(duì)其進(jìn)行適度的分類。如下圖1所示,標(biāo)準(zhǔn)成熟度金字塔,最頂端的是最成熟的,而最低端的則是最不成熟的。


          1.結(jié)構(gòu)成熟度金字塔

          1提交:這一級(jí)別意味著標(biāo)準(zhǔn)制定中已經(jīng)考慮了產(chǎn)品、模式或?qū)嵺`等因素。

          2侯選:此級(jí)別表明已經(jīng)通過了IT項(xiàng)目專家的詳細(xì)審查。

          3推薦:推薦級(jí)別已經(jīng)將參考模型及參考實(shí)現(xiàn)配置在合適的位置了。

          4實(shí)踐:實(shí)踐級(jí)別指已經(jīng)定義了支持度模型,至少有一種產(chǎn)品實(shí)現(xiàn)。

          5最佳實(shí)踐:有多個(gè)產(chǎn)品實(shí)現(xiàn),同時(shí)對(duì)支持度模型進(jìn)行重新定義。

          上面的軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)成熟度分類,為標(biāo)準(zhǔn)及其成熟度提供了一種比較客觀的評(píng)估方式。可以有力排除了組織權(quán)力、個(gè)人喜愛、商業(yè)業(yè)務(wù)伙伴等人為因素的干擾。

          當(dāng)然,上面的分類,基本上遵循了W3CWorld Wide Web Consortium)組織的標(biāo)準(zhǔn)分類,當(dāng)然也有所變化與增加,例如增加了實(shí)踐與最佳實(shí)踐兩個(gè)階段,用來表明軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)的高級(jí)別的成熟度。W3C定義標(biāo)準(zhǔn)的工作流程如下所示:

          1Submission

          我們平常向會(huì)議或者雜志投遞論文叫“paper submission",這里也一樣。submission指由W3C memberwww consortium投遞自己的一個(gè)建議。W3C有可能決定不接收這個(gè)建議。

          2Notes

          如果IBMW3C提了一個(gè)Submission,而且W3C沒有拒絕這個(gè)submission,那么它就進(jìn)入Note階段。Note的內(nèi)容由IBM進(jìn)行編輯修改,W3C是不管的。發(fā)表Note的時(shí)候,表示W3C還沒有開始和這個(gè)submission有關(guān)的任何工作。

          3Working Groups

          NotesW3C認(rèn)可后,W3C會(huì)成立一個(gè)Working GroupGroup包括W3C member和有興趣的外界團(tuán)隊(duì)和個(gè)人。

          4Working Draft

          Draft會(huì)在w3c的站點(diǎn)上公布,并邀請(qǐng)公共的評(píng)論和意見。Working Draft一般不應(yīng)該作為參考的資料,因?yàn)樗€會(huì)經(jīng)過大量的修改/更新,而且可能隨時(shí)被廢棄。比如現(xiàn)在WSDL2.0就還在Working Draft階段,還會(huì)經(jīng)過大量的修改。

          5Candidate Recommendations

          這個(gè)階段是可選的,依據(jù)論題的復(fù)雜程度而定。它一般不應(yīng)該作為參考的資料,因?yàn)樗€會(huì)經(jīng)過大量的修改/更新,而且可能隨時(shí)被廢棄。

          6Proposed Recommendations

          Proposed RecommendationsWorking Groups工作的最后一個(gè)階段。它有被繼續(xù)修改的可能,但一般情況下,它很可能馬上不做改動(dòng)地成為w3crecommendation

          7Recommendation

          Proposed Recommendations經(jīng)過了W3C member的檢查和W3C的主席的蓋章后,成為 W3C recommendation。它一般是一個(gè)穩(wěn)定的規(guī)范,可以作為參考資料進(jìn)行學(xué)習(xí)。

          五、        小結(jié)

          在本文中,讀者可以清晰的看到使用標(biāo)準(zhǔn)如何定義組織進(jìn)行軟件開發(fā)過程當(dāng)中的產(chǎn)品、模式及實(shí)踐。同時(shí),可以感覺與體會(huì)到標(biāo)準(zhǔn)化為軟件開發(fā)所帶來的好處,例如加速軟件產(chǎn)品或項(xiàng)目的交付周期,降低開發(fā)的總費(fèi)用。

          所以的標(biāo)準(zhǔn)不盡相似。而軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)的主要特征卻相似,主要包括項(xiàng)目專家建議與意見、參考模型及參考實(shí)現(xiàn)、支持度模型、產(chǎn)品實(shí)現(xiàn)及規(guī)劃支持等。相應(yīng)地,通過這些特征的判別,可以將標(biāo)準(zhǔn)分為以下五個(gè)級(jí)別:提交、候選、推薦、實(shí)踐及最佳實(shí)踐。

          那么,讀者所在的組織,已經(jīng)建立了軟件體系結(jié)構(gòu)標(biāo)準(zhǔn)嗎?他們可以按成熟度進(jìn)行相應(yīng)的分類嗎?已經(jīng)認(rèn)識(shí)、定義、溝通及成熟度標(biāo)準(zhǔn)了嗎?同時(shí),有沒有成功的加快產(chǎn)品交付使用的標(biāo)準(zhǔn)實(shí)踐?如果都沒有,讀者可以考慮參考本文的內(nèi)容,建立適合自己企業(yè)的標(biāo)準(zhǔn)體系。

          主站蜘蛛池模板: 潜山县| 喀喇沁旗| 珠海市| 青田县| 南京市| 静宁县| 忻州市| 和田县| 河东区| 定安县| 昭苏县| 化隆| 交城县| 安达市| 台州市| 鄂托克旗| 金沙县| 昂仁县| 额济纳旗| 台湾省| 娱乐| 江油市| 荆门市| 东丰县| 和硕县| 八宿县| 兰考县| 中超| 米易县| 锡林浩特市| 鹿邑县| 秦皇岛市| 敖汉旗| 通州区| 甘德县| 方正县| 眉山市| 左云县| 宜兴市| 宁阳县| 大新县|