如何使用RUP的方法論來保證軟件產品的質量
1 概述
在軟件開發團隊中,由于質量被視為軟件產品的生命,而始終被人們所高度關注;然而在現實生活中,許多軟件產品卻時常陷入質量低下的旋渦,總是不盡人意。究其根源,在于這些軟件產品對其質量內涵的把握,僅僅停留在減少軟件運行錯誤、加強軟件測試、避免軟件缺陷的一般性層面,而對整個軟件開發生命周期的全過程質量管理,缺乏總體架構。因此,在大型軟件產品的開發與設計中,始終體現全過程質量管理思想的Rational Unified Process?(簡稱RUP)和提供全生命周期支持的軟件開發平臺,則展現出強大的生命力和獨特魅力。
2 全過程質量保證
2.1 質量定義
在RUP中,質量定義如下:
滿足或超出認定的一組需求,并使用經過認可的評測方法和標準來評估,還使用認定的流程來生產。
由此可見,質量不僅是我們孜孜以求的結果,它更體現在軟件開發的整個過程。
2.2 過程質量
在過程質量方面,經常舉的一個例子就是汽車生產過程。讓我們一起來想象一個場景:在上個世紀初的一家汽車銷售公司里,汽車銷售員正在為作為準客戶的您推銷兩款汽車,其中一款是由某公司引入當時世界上最先進的生產線和工藝流程生產的產品,而另一款是由廠家技術精湛的師傅花了一個多月的時間用車床加大錘手工精制而成。排除其它汽車購買因素,在汽車的質量方面,您會作何感想呢?精明的你一定會作個簡單分析,第一輛車的質量是由汽車生產線和生產工藝本身決定的,每一輛同型號車的質量完全相同,它是由汽車生產的過程質量決定的;而第二輛車的質量在很大程度上則依賴于生產汽車的師傅水平,不同的師傅生產出的汽車質量可能相差很大。因此通過了解市場上同型號車的質量狀況,你可以輕松做到對第一輛車心中有數;但對第二輛,你則需要花一番功夫弄清楚師傅的資質背景,從而判斷汽車的質量。由此可見,你對第一輛車的信任,來自于過程質量,而汽車作為日常消費商品被大規模生產和銷售的基礎也是過程質量,是它使汽車生產的規模經濟成為可能。
軟件開發過程質量就是指為了生成工件而對可接受流程(包括質量評測和質量標準)的實施和遵守程度。軟件生產的過程質量與汽車類似,體現在三個層次:一是產品本身和用來生產、組裝軟件產品的零部件質量,包括用來進行軟件開發或在軟件開發過程中產生的代碼、文檔、模型和可執行系統等工件;二是軟件開發活動本身對標準化軟件開發過程的遵守程度,主要體現在軟件開發過程的標準化、流程化、自動化程度和團隊基本協作平臺的效率;三是用來對整個軟件產品進行驗收的評測手段,它應該是被業界廣泛認可和接受的方法。
一個軟件生產企業的過程質量一般可以用它的軟件過程成熟度等級(例如CMM/CMMI的級別)來決定,這也正是印度的軟件公司能夠獲取很多外包項目的重要原因。但我們應該更清醒的看到:真正保證軟件質量的不是CMM/CMMI的一紙評估報告,而是軟件生產過程本身的成熟度,包括我們賴以達到成熟等級的方法、工具和軟件開發平臺?上驳氖菄鴥仍絹碓蕉嗟钠髽I已認識到這一點,把更多的功夫花在使用合適的方法、采用恰當的工具和平臺,切實提高軟件生產過程的成熟度。
2.3 RUP的質量保證思想
Rational Unified Process? (簡稱RUP)是一個可以通過Web來使用的軟件工程過程。作為軟件工業事實上的標準,它回答了我們以下問題:在整個軟件開發過程中,應該由誰(角色)在什么時候(詳細工作流程)做什么(活動)和產生什么樣的開發結果(工件),以完成整個項目的開發目標。建立有效的工作過程,可以提高團隊的生產效率,控制開發過程中的風險,保證軟件開發進度并且提高軟件產品質量。同時通過為所有重要的開發活動提供全面的指南、模板和示例,使整個軟件開發團隊能夠有效共享成功經驗,提高團隊效率,最終保證軟件開發質量。
1) RUP的質量保證思想之一:全過程質量保證思想
RUP把整個軟件開發過程分解成:業務建模、需求管理、分析設計、實施、測試、部署、配置與變更管理、項目管理和環境等九個核心工作規程。每個核心工作規程由多個詳細工作流程組成;谌祟悓浖ぷ鬟^程最原始的感受,RUP使用角色、活動和作為輸入輸出的工件來組織每個詳細工作流程,實現軟件開發組織內部人、資源和流程的融合。RUP通過建立完整的軟件開發過程,使得產品的質量由項目團隊的每個成員共同負責,具體體現在:
每個角色承擔相應的質量任務
每個活動產生合格的工件
為每個工件建立指南、模板和檢查點
每個工作流程設定相應的工作指南和檢查點
在RUP中,整個軟件開發過程如上圖所示,它以指定的工件為輸入,通過軟件開發角色和標準化的軟件開發活動,生產出滿足質量要求的輸出工件。為確保每個工作環節的有效執行和每個工作環節產生的工件質量,RUP為主要工作流程提供了對應的工作指南和檢查點,為每個工件建立指南、模板和檢查點,從而保證了軟件開發的過程質量。
文章來源于領測軟件測試網 http://www.kjueaiud.com/