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

2 全過程質量保證


2.1 質量定義
在RUP中,質量定義如下:

1) 滿足或超出認定的一組需求

2) 使用經過認可的評測方法和標準來評估

3) 使用認定的流程來生產

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

圖三、IBM Rational軟件測試體系架構


IBM Rational軟件測試解決方案以RUP的軟件工程方法為基礎,首先提供了以TestMananger和ClearQuest為核心的測試管理平臺,完成從測試輸入、測試計劃、測試設計、測試執(zhí)行到測試結果分析的整個測試流程的統(tǒng)一管理,提供對項目需求、變更請求、測試資料及其他數據的共享,提高了團隊的工作效率;其次,Robot以自動化的功能和性能測試腳本錄制、回放為基礎,實現企業(yè)的自動化功能和性能測試,幫助企業(yè)解決回歸測試和大批量的數據驅動軟件測試所帶來的工作量和工作效率問題;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的新專利技術,例如基于Wizard的智能數據驅動的軟件測試技術、提高測試腳本重用的ScriptAssurance技術等,同時它也提供了對開放軟件測試架構Hyades的支持。

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

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