在軟件開發團隊中,由于質量被視為軟件產品的生命,而始終被人們所高度關注;然而在現實生活中,許多軟件產品卻時常陷入質量低下的旋渦,總是不盡人意。究其根源,在于這些軟件產品對其質量內涵的把握,僅僅停留在減少軟件運行錯誤、加強軟件測試、避免軟件缺陷的一般性層面,而對整個軟件開發生命周期的全過程質量管理,缺乏總體架構。因此,在大型軟件產品的開發與設計中,始終體現全過程質量管理思想的Rational Unified Process?(簡稱RUP)和提供全生命周期支持的軟件開發平臺,則展現出強大的生命力和獨特魅力。
2 全過程質量保證
2.1 質量定義
在RUP中,質量定義如下:
滿足或超出認定的一組需求,并使用經過認可的評測方法和標準來評估,還使用認定的流程來生產。
由此可見,質量不僅是我們孜孜以求的結果,它更體現在軟件開發的整個過程。
2.2 過程質量
在過程質量方面,經常舉的一個例子就是汽車生產過程。讓我們一起來想象一個場景:在上個世紀初的一家汽車銷售公司里,汽車銷售員正在為作為準客戶的您推銷兩款汽車,其中一款是由某公司引入當時世界上最先進的生產線和工藝流程生產的產品,而另一款是由廠家技術精湛的師傅花了一個多月的時間用車床加大錘手工精制而成。排除其它汽車購買因素,在汽車的質量方面,您會作何感想呢?精明的你一定會作個簡單分析,第一輛車的質量是由汽車生產線和生產工藝本身決定的,每一輛同型號車的質量完全相同,它是由汽車生產的過程質量決定的;而第二輛車的質量在很大程度上則依賴于生產汽車的師傅水平,不同的師傅生產出的汽車質量可能相差很大。因此通過了解市場上同型號車的質量狀況,你可以輕松做到對第一輛車心中有數;但對第二輛,你則需要花一番功夫弄清楚師傅的資質背景,從而判斷汽車的質量。由此可見,你對第一輛車的信任,來自于過程質量,而汽車作為日常消費商品被大規模生產和銷售的基礎也是過程質量,是它使汽車生產的規模經濟成為可能。
軟件開發過程質量就是指為了生成工件而對可接受流程(包括質量評測和質量標準)的實施和遵守程度。軟件生產的過程質量與汽車類似,體現在三個層次:一是產品本身和用來生產、組裝軟件產品的零部件質量,包括用來進行軟件開發或在軟件開發過程中產生的代碼、文檔、模型和可執行系統等工件;二是軟件開發活動本身對標準化軟件開發過程的遵守程度,主要體現在軟件開發過程的標準化、流程化、自動化程度和團隊基本協作平臺的效率;三是用來對整個軟件產品進行驗收的評測手段,它應該是被業界廣泛認可和接受的方法。
一個軟件生產企業的過程質量一般可以用它的軟件過程成熟度等級(例如CMM/CMMI的級別)來決定,這也正是印度的軟件公司能夠獲取很多外包項目的重要原因。但我們應該更清醒的看到:真正保證軟件質量的不是CMM/CMMI的一紙評估報告,而是軟件生產過程本身的成熟度,包括我們賴以達到成熟等級的方法、工具和軟件開發平臺。可喜的是國內越來越多的企業已認識到這一點,把更多的功夫花在使用合適的方法、采用恰當的工具和平臺,切實提高軟件生產過程的成熟度。
2.3 RUP的質量保證思想
Rational Unified Process? (簡稱RUP)是一個可以通過Web來使用的軟件工程過程。作為軟件工業事實上的標準,它回答了我們以下問題:在整個軟件開發過程中,應該由誰(角色)在什么時候(詳細工作流程)做什么(活動)和產生什么樣的開發結果(工件),以完成整個項目的開發目標。建立有效的工作過程,可以提高團隊的生產效率,控制開發過程中的風險,保證軟件開發進度并且提高軟件產品質量。同時通過為所有重要的開發活動提供全面的指南、模板和示例,使整個軟件開發團隊能夠有效共享成功經驗,提高團隊效率,最終保證軟件開發質量。
1) RUP的質量保證思想之一:全過程質量保證思想
RUP把整個軟件開發過程分解成:業務建模、需求管理、分析設計、實施、測試、部署、配置與變更管理、項目管理和環境等九個核心工作規程。每個核心工作規程由多個詳細工作流程組成。基于人類對軟件工作過程最原始的感受,RUP使用角色、活動和作為輸入輸出的工件來組織每個詳細工作流程,實現軟件開發組織內部人、資源和流程的融合。RUP通過建立完整的軟件開發過程,使得產品的質量由項目團隊的每個成員共同負責,具體體現在:
- 每個角色承擔相應的質量任務
- 每個活動產生合格的工件
- 為每個工件建立指南、模板和檢查點
- 每個工作流程設定相應的工作指南和檢查點
在RUP中,整個軟件開發過程如上圖所示,它以指定的工件為輸入,通過軟件開發角色和標準化的軟件開發活動,生產出滿足質量要求的輸出工件。為確保每個工作環節的有效執行和每個工作環節產生的工件質量,RUP為主要工作流程提供了對應的工作指南和檢查點,為每個工件建立指南、模板和檢查點,從而保證了軟件開發的過程質量。
2) RUP的質量保證思想之二:軟件工程成功經驗共同鑄就軟件質量的思想
激烈的市場競爭催生高質量的軟件。同時,軟件行業經過幾十年的發展,軟件生產工藝、軟件開發方法和工具都大大進步、日趨成熟,這一切使軟件開發質量越來越好。RUP以迭代式軟件開發、架構為核心的軟件開發、用例驅動的軟件開發和風險驅動的軟件開發為特色,集中體現了以下六個軟件工程成功經驗,通過它們共同鑄就了高品質軟件:
- 迭代式軟件開發:能夠有效控制項目風險、增加對項目控制能力、減少需求變更對項目的影響,實現持續的質量驗證;
- 有效管理需求:能夠做到質量保證從頭作起,在軟件開發一開始,就把好需求質量關,實現需求的可追蹤性和需求變更的有效管理;
- 基于構件和面向服務的軟件架構:采用可視化建模技術來構建以構件為基礎、面向服務的系統框架,可以有效地管理系統的復雜度,增強系統的靈活性和可擴展性;
- 可視化建模:能夠有效解決團隊溝通、管理系統復雜度、提高軟件重用;
- 持續的質量驗證:借助迭代式軟件開發方法,可以大大提前軟件集成測試和系統測試在整個開發生命周期中的時間,實現持續地軟件質量驗證,做到盡早測試、盡早反饋,從而確保產品滿足客戶的需求;
- 管理變更:能夠為整個軟件開發團隊提供基本協作平臺,使企業管理好自己的軟件資產,通過有效管理所有的變更請求,使開發團隊能夠很好的控制開發進度、及時了解項目狀況,同時為項目的量化管理提供幫助。
由此可見,在軟件開發過程中,高品質軟件是由以上軟件工程的成功經驗共同鑄就的。 [NextPage]
3 高品質軟件,源自Rational工藝
成就高品質軟件,除了注重過程質量、采用軟件工程成功經驗以外,還需要幫助開發團隊實現高效的過程管理、構建運作良好的協作平臺和有效運用能夠提高團隊生產力的自動化軟件工具。方法+工具永遠是我們解決問題的永恒主題。
3.1 IBM Rational軟件開發平臺實現軟件規模化生產的過程質量
IBM Rational軟件開發平臺是體現軟件工程成功經驗的強大工具。它基于Rational的軟件工程方法和工具構造出了覆蓋整個軟件開發生命周期的軟件開發平臺,它通過提供高效的軟件生產線,為軟件開發團隊的生產過程提供高品質的過程質量保證,使得大規模的軟件生產過程成為可能。沒有平臺支撐的過程質量和成功經驗只能是紙上談兵。
首先,IBM Rational軟件開發平臺為整個軟件生產企業提供了一個完整的企業級項目管理平臺:IBM Rational Portfolio Mananger。一方面,通過它可以使企業的管理者實現業務發展戰略和IT戰略的融合,作為以業務發展戰略為核心,組織IT投資和企業人力資源;另一方面,它為整個項目管理團隊提供了高效的項目計劃、實施、監控等項目管理活動的完整平臺,通過提高企業的管理方法和團隊效率,最終提高軟件質量。
其次,IBM Rational基于以RUP、bbbbbCase和bbbbbQuest為核心的團隊統一平臺:Team Unified Platform,為整個開發團隊提供了基本協作平臺,提供日常的開發活動管理和支撐,也為項目的質量監控和量化管理奠定基礎。
第三,IBM Rational的軟件開發平臺根據軟件開發的角色組織軟件開發工具,為分析人員提供業務建模和業務流程的模擬、監控能力;為系統架構師提供各種系統建模和架構分析能力;為開發人員提供快速的軟件構建、單元測試及運行時分析能力;為測試人員提供功能、性能測試和系統性能監控能力;為部署人員提供了快速部署、監控和管理能力。
與汽車生產過程相比,企業級項目管理平臺和團隊統一平臺就好比汽車生產過程的生產線,統一了整個軟件的開發活動和管理活動,而其它各種根據軟件開發角色組織的開發工具,就好比生產線上的各種智能機床,大大提高軟件生產過程的生產力和質量保證。如果說福特使用的生產線技術實現了汽車行業的規模化生產,那么IBM Rational軟件開發平臺無疑為軟件的規模化生產揭開了序幕。
3.2 IMB Rational軟件開發平臺為軟件生產提供生命周期的質量保證
IBM Rational軟件開發平臺為軟件生產提供了涵蓋分析員、架構師、設計員在內的全生命周期的質量保證,而不僅僅是對測試人員的質量解決方案。
在RUP質量保證思想的指導下,IBM Rational的軟件開發平臺堅持軟件質量從頭抓起的宗旨,使用業務建模工具和可視化建模技術,準確描述企業的業務流程、模擬企業的業務執行過程,幫助企業找出業務流程中存在的問題,優化業務流程。系統分析人員借助業務模型,可以準確理解企業需求,解決企業真正需要解決的問題,正確構建企業需要的系統。需求管理工具(RequisitePro)則可以幫助客戶完成需求管理和需求的變更管理,實現需求的可追蹤性,幫助企業在項目啟動階段把好需求質量關。
借助IBM Rational的新一代建模工具Rational Software Architect(簡稱RSA),系統分析人員甚至可以使用模型驅動的軟件開發(MDA),從業務模型自動推導出用例模型、分析模型、設計模型和代碼,從而實現業務驅動的軟件開發。模型驅動軟件開發的優點是幫助企業建立強健的軟件架構,統一整個軟件開發團隊的分析設計和開發活動,使整個開發團隊對高層系統架構有一個統一的認識。同時,RSA基于開放的Eclipse平臺,提供了代碼復審功能,幫助開發員自動完成代碼規范性的檢測;運行時分析功能,為開發員提供自動完成代碼內存錯誤檢測、性能調優、線程分析和代碼覆蓋率的收集能力;它的構件測試能力,幫助開發員更快更好地完成單元測試任務。此外IBM Rational還提供了Purifyplus,用于幫助開發人員快速解決軟件開發過程中難于發現的內存及運行時錯誤、性能調優和測試覆蓋率信息收集等問題;實時系統測試工具Test Realtime,則能解決實時系統的單元測試、集成測試和運行時分析問題。所有這些都為整個軟件開發團隊完成高質量的需求分析、構建靈活的軟件架構、生成高品質的代碼提供了有力保證。
在軟件測試方面,除以上提到的代碼測試工具以外,IBM Rational更提供了完整的系統級功能、性能測試和測試管理平臺工具。
IBM Rational軟件測試解決方案以RUP的軟件工程方法為基礎,首先提供了以TestMananger和bbbbbQuest為核心的測試管理平臺,完成從測試輸入、測試計劃、測試設計、測試執行到測試結果分析的整個測試流程的統一管理,提供對項目需求、變更請求、測試資料及其他數據的共享,提高了團隊的工作效率;其次,Robot以自動化的功能和性能測試腳本錄制、回放為基礎,實現企業的自動化功能和性能測試,幫助企業解決回歸測試和大批量的數據驅動軟件測試所帶來的工作量和工作效率問題;Tivoli Monitoring for Transbbbbbb Performance(TMTP)完成軟件的性能檢測和分析工作,進一步幫助系統測試人員分析、定位、解決系統性能問題。第三,最令人刮目相看的是IBM在2005年的Atlantic版本中新推出的功能測試工具RATIONAL FUNCTIONAL TEST、性能測試工具RATIONAL PERFORMANCE TEST和手工測試工具RATIONAL MANUAL TEST,它們第一次為Java和Web測試人員,提供了和開發人員同樣的操作平臺(Eclipse),具備完整的自動化功能、性能測試和手工測試的管理能力,而且其中還推出了許多IBM的最新專利技術,例如基于Wizard的智能數據驅動的軟件測試技術、提高測試腳本重用的bbbbbbAssurance技術等,同時它也提供了對開放軟件測試架構Hyades的支持。
由此可見,IBM Rational的軟件開發平臺通過實現了對整個軟件開發全生命周期,包括從業務分析、需求管理、架構設計到系統構建、測試、部署的全方位支持,為企業提供了軟件生產全生命周期的質量保證能力。
4 小結
在軟件工程領域發展初期,各路英雄逐鹿中原,產生了各種軟件開發過程的成功經驗和工具。在經歷了多年的努力搏殺,體會到對抗的酸甜苦辣以后,英雄們終于認識到:高品質軟件,需要完整的軟件開發過程和整合的軟件開發平臺來共同鑄就。IBM Rational軟件開發平臺,就是以各種國際標準和開放平臺為基礎,為軟件產品的開發和生產過程提供了前所未有的開發速度和質量保證。IBM Rational二十幾年鑄一劍,如今寶劍揮出,必將掀起軟件行業的產業革命浪潮。
關于作者
寧德軍,現為IBM中國有限公司軟件部Rational高級技術專員。在Rational中國工作的三年的時間里,曾經為華為、中興通訊、大唐移動、浙江移動、江蘇移動、武漢精倫等多家公司提供過軟件管理咨詢服務。在此之前,寧德軍曾任職于貝爾阿爾卡特公司,主要從事電信交換機、電子商務軟件分析設計和開發工作。參加過ALCAbbb多個版本的電信交換機系統、基于JAVA和XML的“WEB系統通信平臺”等軟件項目的開發設計工作。在軟件工程技術方面,寧德軍有著多年的實踐經驗,對于Rational的軟件工程技術有著深刻的理解。目前主要專注于軟件測試技術、面向對象的可視化建模和軟件配置管理等技術的研究。在軟件測試方面,曾為中興通訊、大唐移動、中國移動、中國工商銀行、南瑞電力、UTStarCom等公司進行過專業咨詢服務,內容包括主機和嵌入式軟件的功能、性能、可靠性和測試管理咨詢。










