1 概述
在軟件開發(fā)團隊中,由于質(zhì)量被視為軟件產(chǎn)品的生命,而始終被人們所高度關(guān)注;然而在現(xiàn)實生活中,許多軟件產(chǎn)品卻時常陷入質(zhì)量低下的旋渦,總是不盡人意。究其根源,在于這些軟件產(chǎn)品對其質(zhì)量內(nèi)涵的把握,僅僅停留在減少軟件運行錯誤、加強軟件測試、避免軟件缺陷的一般性層面,而對整個軟件開發(fā)生命周期的全過程質(zhì)量管理,缺乏總體架構(gòu)。因此,在大型軟件產(chǎn)品的開發(fā)與設(shè)計中,始終體現(xiàn)全過程質(zhì)量管理思想的Rational Unified Process™(簡稱RUP)和提供全生命周期支持的軟件開發(fā)平臺,則展現(xiàn)出強大的生命力和獨特魅力。

2 全過程質(zhì)量保證


2.1 質(zhì)量定義
在RUP中,質(zhì)量定義如下:

1) 滿足或超出認(rèn)定的一組需求

2) 使用經(jīng)過認(rèn)可的評測方法和標(biāo)準(zhǔn)來評估

3) 使用認(rèn)定的流程來生產(chǎn)

由此可見,質(zhì)量不僅是我們孜孜以求的結(jié)果,它更體現(xiàn)在軟件開發(fā)的整個過程。

2.2 過程質(zhì)量
在過程質(zhì)量方面,經(jīng)常舉的一個例子是汽車生產(chǎn)過程。讓我們一起來想象一個場景:在上個世紀(jì)初的一家汽車銷售公司里,汽車銷售員正在為作為準(zhǔn)客戶的您推銷兩款汽車,其中一款是由某公司引入當(dāng)時世界上先進的生產(chǎn)線和工藝流程生產(chǎn)的產(chǎn)品,而另一款是由廠家技術(shù)精湛的師傅花了一個多月的時間用車床加大錘手工精制而成。排除其它汽車購買因素,在汽車的質(zhì)量方面,您會作何感想呢?精明的你一定會作個簡單分析,第一輛車的質(zhì)量是由汽車生產(chǎn)線和生產(chǎn)工藝本身決定的,每一輛同型號車的質(zhì)量完全相同,它是由汽車生產(chǎn)的過程質(zhì)量決定的;而第二輛車的質(zhì)量在很大程度上則依賴于生產(chǎn)汽車的師傅水平,不同的師傅生產(chǎn)出的汽車質(zhì)量可能相差很大。因此通過了解市場上同型號車的質(zhì)量狀況,你可以輕松做到對第一輛車心中有數(shù);但對第二輛,你則需要花一番功夫弄清楚師傅的資質(zhì)背景,從而判斷汽車的質(zhì)量。由此可見,你對第一輛車的信任,來自于過程質(zhì)量,而汽車作為日常消費商品被大規(guī)模生產(chǎn)和銷售的基礎(chǔ)也是過程質(zhì)量,是它使汽車生產(chǎn)的規(guī)模經(jīng)濟成為可能。

軟件開發(fā)過程質(zhì)量是指為了生成工件而對可接受流程(包括質(zhì)量評測和質(zhì)量標(biāo)準(zhǔn))的實施和遵守程度。軟件生產(chǎn)的過程質(zhì)量與汽車類似,體現(xiàn)在三個層次:一是產(chǎn)品本身和用來生產(chǎn)、組裝軟件產(chǎn)品的零部件質(zhì)量,包括用來進行軟件開發(fā)或在軟件開發(fā)過程中產(chǎn)生的代碼、文檔、模型和可執(zhí)行系統(tǒng)等工件;二是軟件開發(fā)活動本身對標(biāo)準(zhǔn)化軟件開發(fā)過程的遵守程度,主要體現(xiàn)在軟件開發(fā)過程的標(biāo)準(zhǔn)化、流程化、自動化程度和團隊基本協(xié)作平臺的效率;三是用來對整個軟件產(chǎn)品進行驗收的評測手段,它應(yīng)該是被業(yè)界廣泛認(rèn)可和接受的方法。

一個軟件生產(chǎn)企業(yè)的過程質(zhì)量一般可以用它的軟件過程成熟度等級(例如CMM/CMMI的級別)來決定,這也正是印度的軟件公司能夠獲取很多外包項目的重要原因。但我們應(yīng)該更清醒的看到:真正保證軟件質(zhì)量的不是CMM/CMMI的一紙評估報告,而是軟件生產(chǎn)過程本身的成熟度,包括我們賴以達到成熟等級的方法、工具和軟件開發(fā)平臺?上驳氖菄鴥(nèi)越來越多的企業(yè)已認(rèn)識到這一點,把更多的功夫花在使用合適的方法、采用恰當(dāng)?shù)墓ぞ吆推脚_,切實提高軟件生產(chǎn)過程的成熟度。

2.3 RUP的質(zhì)量保證思想
Rational Unified Process? (簡稱RUP)是一個可以通過Web來使用的軟件工程過程。作為軟件工業(yè)事實上的標(biāo)準(zhǔn),它回答了我們以下問題:在整個軟件開發(fā)過程中,應(yīng)該由誰(角色)在什么時候(詳細(xì)工作流程)做什么(活動)和產(chǎn)生什么樣的開發(fā)結(jié)果(工件),以完成整個項目的開發(fā)目標(biāo)。建立有效的工作過程,可以提高團隊的生產(chǎn)效率,控制開發(fā)過程中的風(fēng)險,保證軟件開發(fā)進度并且提高軟件產(chǎn)品質(zhì)量。同時通過為所有重要的開發(fā)活動提供全面的指南、模板和示例,使整個軟件開發(fā)團隊能夠有效共享成功經(jīng)驗,提高團隊效率,終保證軟件開發(fā)質(zhì)量。

1) RUP的質(zhì)量保證思想之一:全過程質(zhì)量保證思想

RUP把整個軟件開發(fā)過程分解成:業(yè)務(wù)建模、需求管理、分析設(shè)計、實施、測試、部署、配置與變更管理、項目管理和環(huán)境等九個核心工作規(guī)程。每個核心工作規(guī)程由多個詳細(xì)工作流程組成;谌祟悓浖ぷ鬟^程原始的感受,RUP使用角色、活動和作為輸入輸出的工件來組織每個詳細(xì)工作流程,實現(xiàn)軟件開發(fā)組織內(nèi)部人、資源和流程的融合。RUP通過建立完整的軟件開發(fā)過程,使得產(chǎn)品的質(zhì)量由項目團隊的每個成員共同負(fù)責(zé),具體體現(xiàn)在:

每個角色承擔(dān)相應(yīng)的質(zhì)量任務(wù)
每個活動產(chǎn)生合格的工件
為每個工件建立指南、模板和檢查點
每個工作流程設(shè)定相應(yīng)的工作指南和檢查點
在RUP中,整個軟件開發(fā)過程如上圖所示,它以指定的工件為輸入,通過軟件開發(fā)角色和標(biāo)準(zhǔn)化的軟件開發(fā)活動,生產(chǎn)出滿足質(zhì)量要求的輸出工件。為確保每個工作環(huán)節(jié)的有效執(zhí)行和每個工作環(huán)節(jié)產(chǎn)生的工件質(zhì)量,RUP為主要工作流程提供了對應(yīng)的工作指南和檢查點,為每個工件建立指南、模板和檢查點,從而保證了軟件開發(fā)的過程質(zhì)量。

2) RUP的質(zhì)量保證思想之二:軟件工程成功經(jīng)驗共同鑄軟件質(zhì)量的思想

激烈的市場競爭催生高質(zhì)量的軟件。同時,軟件行業(yè)經(jīng)過幾十年的發(fā)展,軟件生產(chǎn)工藝、軟件開發(fā)方法和工具都大大進步、日趨成熟,這一切使軟件開發(fā)質(zhì)量越來越好。RUP以迭代式軟件開發(fā)、架構(gòu)為核心的軟件開發(fā)、用例驅(qū)動的軟件開發(fā)和風(fēng)險驅(qū)動的軟件開發(fā)為特色,集中體現(xiàn)了以下六個軟件工程成功經(jīng)驗,通過它們共同鑄了高品質(zhì)軟件:

迭代式軟件開發(fā):能夠有效控制項目風(fēng)險、增加對項目控制能力、減少需求變更對項目的影響,實現(xiàn)持續(xù)的質(zhì)量驗證;
有效管理需求:能夠做到質(zhì)量保證從頭作起,在軟件開發(fā)一開始,把好需求質(zhì)量關(guān),實現(xiàn)需求的可追蹤性和需求變更的有效管理;
基于構(gòu)件和面向服務(wù)的軟件架構(gòu):采用可視化建模技術(shù)來構(gòu)建以構(gòu)件為基礎(chǔ)、面向服務(wù)的系統(tǒng)框架,可以有效地管理系統(tǒng)的復(fù)雜度,增強系統(tǒng)的靈活性和可擴展性;
可視化建模:能夠有效解決團隊溝通、管理系統(tǒng)復(fù)雜度、提高軟件重用;
持續(xù)的質(zhì)量驗證:借助迭代式軟件開發(fā)方法,可以大大提前軟件集成測試和系統(tǒng)測試在整個開發(fā)生命周期中的時間,實現(xiàn)持續(xù)地軟件質(zhì)量驗證,做到盡早測試、盡早反饋,從而確保產(chǎn)品滿足客戶的需求;
管理變更:能夠為整個軟件開發(fā)團隊提供基本協(xié)作平臺,使企業(yè)管理好自己的軟件資產(chǎn),通過有效管理所有的變更請求,使開發(fā)團隊能夠很好的控制開發(fā)進度、及時了解項目狀況,同時為項目的量化管理提供幫助。
由此可見,在軟件開發(fā)過程中,高品質(zhì)軟件是由以上軟件工程的成功經(jīng)驗共同鑄的。

3 高品質(zhì)軟件,源自Rational工藝
成高品質(zhì)軟件,除了注重過程質(zhì)量、采用軟件工程成功經(jīng)驗以外,還需要幫助開發(fā)團隊實現(xiàn)高效的過程管理、構(gòu)建運作良好的協(xié)作平臺和有效運用能夠提高團隊生產(chǎn)力的自動化軟件工具。"方法"+"工具"永遠(yuǎn)是我們解決問題的永恒主題。

3.1 IBM Rational軟件開發(fā)平臺實現(xiàn)軟件規(guī);a(chǎn)的過程質(zhì)量
IBM Rational軟件開發(fā)平臺是體現(xiàn)軟件工程成功經(jīng)驗的強大工具。它基于Rational的軟件工程方法和工具構(gòu)造出了覆蓋整個軟件開發(fā)生命周期的軟件開發(fā)平臺,它通過提供高效的軟件生產(chǎn)線,為軟件開發(fā)團隊的生產(chǎn)過程提供高品質(zhì)的過程質(zhì)量保證,使得大規(guī)模的軟件生產(chǎn)過程成為可能。沒有平臺支撐的過程質(zhì)量和成功經(jīng)驗只能是紙上談兵。


首先,IBM Rational軟件開發(fā)平臺為整個軟件生產(chǎn)企業(yè)提供了一個完整的企業(yè)級項目管理平臺:IBM Rational Portfolio Mananger。一方面,通過它可以使企業(yè)的管理者實現(xiàn)業(yè)務(wù)發(fā)展戰(zhàn)略和IT戰(zhàn)略的融合,作為以業(yè)務(wù)發(fā)展戰(zhàn)略為核心,組織IT投資和企業(yè)人力資源;另一方面,它為整個項目管理團隊提供了高效的項目計劃、實施、監(jiān)控等項目管理活動的完整平臺,通過提高企業(yè)的管理方法和團隊效率,終提高軟件質(zhì)量。

其次,IBM Rational基于以RUP、ClearCase和ClearQuest為核心的團隊統(tǒng)一平臺:Team Unified Platform,為整個開發(fā)團隊提供了基本協(xié)作平臺,提供日常的開發(fā)活動管理和支撐,也為項目的質(zhì)量監(jiān)控和量化管理奠定基礎(chǔ)。

第三,IBM Rational的軟件開發(fā)平臺根據(jù)軟件開發(fā)的角色組織軟件開發(fā)工具,為分析人員提供業(yè)務(wù)建模和業(yè)務(wù)流程的模擬、監(jiān)控能力;為系統(tǒng)架構(gòu)師提供各種系統(tǒng)建模和架構(gòu)分析能力;為開發(fā)人員提供快速的軟件構(gòu)建、單元測試及運行時分析能力;為測試人員提供功能、性能測試和系統(tǒng)性能監(jiān)控能力;為部署人員提供了快速部署、監(jiān)控和管理能力。

與汽車生產(chǎn)過程相比,企業(yè)級項目管理平臺和團隊統(tǒng)一平臺好比汽車生產(chǎn)過程的生產(chǎn)線,統(tǒng)一了整個軟件的開發(fā)活動和管理活動,而其它各種根據(jù)軟件開發(fā)角色組織的開發(fā)工具,好比生產(chǎn)線上的各種智能機床,大大提高軟件生產(chǎn)過程的生產(chǎn)力和質(zhì)量保證。如果說福特使用的生產(chǎn)線技術(shù)實現(xiàn)了汽車行業(yè)的規(guī);a(chǎn),那么IBM Rational軟件開發(fā)平臺無疑為軟件的規(guī);a(chǎn)揭開了序幕。

3.2 IBM Rational軟件開發(fā)平臺為軟件生產(chǎn)提供全生命周期的質(zhì)量保證
IBM Rational軟件開發(fā)平臺為軟件生產(chǎn)提供了涵蓋分析員、架構(gòu)師、設(shè)計員在內(nèi)的全生命周期的質(zhì)量保證,而不僅僅是對測試人員的質(zhì)量解決方案。

在RUP質(zhì)量保證思想的指導(dǎo)下,IBM Rational的軟件開發(fā)平臺堅持軟件質(zhì)量從頭抓起的宗旨,使用業(yè)務(wù)建模工具和可視化建模技術(shù),準(zhǔn)確描述企業(yè)的業(yè)務(wù)流程、模擬企業(yè)的業(yè)務(wù)執(zhí)行過程,幫助企業(yè)找出業(yè)務(wù)流程中存在的問題,優(yōu)化業(yè)務(wù)流程。系統(tǒng)分析人員借助業(yè)務(wù)模型,可以準(zhǔn)確理解企業(yè)需求,解決企業(yè)真正需要解決的問題,正確構(gòu)建企業(yè)需要的系統(tǒng)。需求管理工具(RequisitePro)則可以幫助客戶完成需求管理和需求的變更管理,實現(xiàn)需求的可追蹤性,幫助企業(yè)在項目啟動階段把好需求質(zhì)量關(guān)。

借助IBM Rational的新一代建模工具Rational Software Architect(簡稱RSA),系統(tǒng)分析人員甚至可以使用模型驅(qū)動的軟件開發(fā)(MDA),從業(yè)務(wù)模型自動推導(dǎo)出用例模型、分析模型、設(shè)計模型和代碼,從而實現(xiàn)業(yè)務(wù)驅(qū)動的軟件開發(fā)。模型驅(qū)動軟件開發(fā)的優(yōu)點是幫助企業(yè)建立強健的軟件架構(gòu),統(tǒng)一整個軟件開發(fā)團隊的分析設(shè)計和開發(fā)活動,使整個開發(fā)團隊對高層系統(tǒng)架構(gòu)有一個統(tǒng)一的認(rèn)識。同時,RSA基于開放的Eclipse平臺,提供了代碼復(fù)審功能,幫助開發(fā)員自動完成代碼規(guī)范性的檢測;運行時分析功能,為開發(fā)員提供自動完成代碼內(nèi)存錯誤檢測、性能調(diào)優(yōu)、線程分析和代碼覆蓋率的收集能力;它的構(gòu)件測試能力,幫助開發(fā)員更快更好地完成單元測試任務(wù)。此外IBM Rational還提供了Purifyplus,用于幫助開發(fā)人員快速解決軟件開發(fā)過程中難于發(fā)現(xiàn)的內(nèi)存及運行時錯誤、性能調(diào)優(yōu)和測試覆蓋率信息收集等問題;實時系統(tǒng)測試工具Test Realtime,則能解決實時系統(tǒng)的單元測試、集成測試和運行時分析問題。所有這些都為整個軟件開發(fā)團隊完成高質(zhì)量的需求分析、構(gòu)建靈活的軟件架構(gòu)、生成高品質(zhì)的代碼提供了有力保證。

在軟件測試方面,除以上提到的代碼測試工具以外,IBM Rational更提供了完整的系統(tǒng)級功能、性能測試和測試管理平臺工具,其整個架構(gòu)體系如下圖所示:

圖三、IBM Rational軟件測試體系架構(gòu)


IBM Rational軟件測試解決方案以RUP的軟件工程方法為基礎(chǔ),首先提供了以TestMananger和ClearQuest為核心的測試管理平臺,完成從測試輸入、測試計劃、測試設(shè)計、測試執(zhí)行到測試結(jié)果分析的整個測試流程的統(tǒng)一管理,提供對項目需求、變更請求、測試資料及其他數(shù)據(jù)的共享,提高了團隊的工作效率;其次,Robot以自動化的功能和性能測試腳本錄制、回放為基礎(chǔ),實現(xiàn)企業(yè)的自動化功能和性能測試,幫助企業(yè)解決回歸測試和大批量的數(shù)據(jù)驅(qū)動軟件測試所帶來的工作量和工作效率問題;Tivoli Monitoring for Transaction Performance(TMTP)完成軟件的性能檢測和分析工作,進一步幫助系統(tǒng)測試人員分析、定位、解決系統(tǒng)性能問題。第三,令人刮目相看的是IBM在2005年的Atlantic版本中新推出的功能測試工具RATIONAL FUNCTIONAL TEST、性能測試工具RATIONAL PERFORMANCE TEST和手工測試工具RATIONAL MANUAL TEST,它們第一次為Java和Web測試人員,提供了和開發(fā)人員同樣的操作平臺(Eclipse),具備完整的自動化功能、性能測試和手工測試的管理能力,而且其中還推出了許多IBM的新專利技術(shù),例如基于Wizard的智能數(shù)據(jù)驅(qū)動的軟件測試技術(shù)、提高測試腳本重用的ScriptAssurance技術(shù)等,同時它也提供了對開放軟件測試架構(gòu)Hyades的支持。

由此可見,IBM Rational的軟件開發(fā)平臺通過實現(xiàn)了對整個軟件開發(fā)全生命周期,包括從業(yè)務(wù)分析、需求管理、架構(gòu)設(shè)計到系統(tǒng)構(gòu)建、測試、部署的全方位支持,為企業(yè)提供了軟件生產(chǎn)全生命周期的質(zhì)量保證能力。

4 小結(jié)
在軟件工程領(lǐng)域發(fā)展初期,各路英雄逐鹿中原,產(chǎn)生了各種軟件開發(fā)過程的成功經(jīng)驗和工具。在經(jīng)歷了多年的努力搏殺,體會到對抗的酸甜苦辣以后,英雄們終于認(rèn)識到:高品質(zhì)軟件,需要完整的軟件開發(fā)過程和整合的軟件開發(fā)平臺來共同鑄。IBM Rational軟件開發(fā)平臺,是以各種國際標(biāo)準(zhǔn)和開放平臺為基礎(chǔ),為軟件產(chǎn)品的開發(fā)和生產(chǎn)過程提供了前所未有的開發(fā)速度和質(zhì)量保證。IBM Rational二十幾年鑄一劍,如今寶劍揮出,必將掀起軟件行業(yè)的產(chǎn)業(yè)革命浪潮。