若在部署軟體之後才要尋找和修復軟體問題時,其所耗費的成本會比部署之前高 100 到 1000 倍。在專案的整個生命週期內驗證及管理品質,是在正確時間達到正確目標的必要工作。
在專案生命週期的幾個時間點,於專案逐漸成熟時,很重要的一件事是要評估所有構件的品質。所有構件都應該在產生成品的活動完成時,或在每一個反覆作業結束時,進行評估。尤其是在產生可執行的軟體時,應該在每次反覆作業中,示範及測試軟體的重要情境,以提供設計取捨的更具體瞭解,並提早消除架構方面的問題。這和較傳統的方法相反,傳統方法會將整合軟體的測試留到專案生命週期的最後才開始進行。
品質是我們每個人都想要在我們的產品、流程和服務中奮力達到的目標。不過若在被問及「何謂品質」時,每個人都會有不同的見解。常見的回答可能是:
-
「品質 ... 沒辦法具體形容,不過我看到的時候我會知道」。
-
「... 符合需求」。
也許最常提到的品質,特別是和軟體相關時,是對於其所缺乏的意見:
「怎麼可以發行這種品質低劣的東西?」
這些常見的回答都只是在陳述,不過卻沒有提供足夠的資訊可以用來精確地檢查品質及改進其執行方式。這些意見都彰顯出需要以可以測量和達成的方式,來定義品質。
不過,品質並不是一種單獨的特性或屬性。它是多面性的,並且是產品或流程可以擁有的。 產品品質專注於建置正確的產品,而流程品質則專注於正確地建置產品。如需相關資訊,請參閱概念:產品品質以及概念:流程品質。
品質的定義依 The American Heritage Dictionary of the English Language, 3rd Edition, Houghton Mifflin Co.,© 1992, 1996 的定義為:
Quality (kwol'i-te) n., pl. -ties. [品質] 1.a. 固有的或獨特的特性;一種內容。b. 一項個人特點,特別是人格特點。2.
根本特點;本質。3.a. 卓越的類型。b. 優秀的程度或等級。
如這個定義所示,品質並非單一方面的,而是包含許多方面。若要使用這個定義並將其套用在軟體開發中,就必須修正這個定義。因此,針對 Rational Unified Process (RUP),可以將品質定義如下:
「... 顯示出完成製作一項產品的特性,此產品達到或超出所同意的需求,並且依所同意的測量方式和準則測量,並且依所同意的流程產生產品」。
達到品質不只是「符合需求」,或是製作出符合使用者需求和期待的產品而已。品質還包括要指出可以顯示產品達到品質目標的測量和準則,以及實施流程來確保流程建立的產品確實會達到預期的品質層次,並且此項品質可以重複及管理。
另請參閱下列頁面以取得有關 RUP 如何定義品質構想的其餘資訊:
一項常見的錯誤觀念是品質是由某一個群組擁有,或是該群組的責任。這項迷思通常會造成成立一個群組,有時會稱為「品質保證」,其他會使用的名稱包括 「測試」、「品質控制」以及「品質工程」等,並賦予他們品質特權和責任。
品質是(且應該是)每個人的責任才對。達成品質的工作必須整合在幾乎所有流程活動中,而不是一項個別的規範,因此應該讓每個人負責各自製作的產品(或構件)品質,以及各自參與的流程實作。
每個角色都會依下列方式,對品質成就提供貢獻:
-
產品品質,所製作的每個構件都構成要整體的品質成就。
-
流程品質,在各自參與的流程活動之品質成就。
每個人都會分享達到高品質產品的責任與榮耀,或是共同承擔低品質產品的羞愧。不過,只有直接參與特定流程元件的人員,才會負責那些流程元件(以及構件)品質的榮耀或羞愧。不過,一定要有某個人來負責管理品質;亦即,提供監督服務,來確保管理、測量及達到品質。負責管理品質的角色是專案管理人員。
有關品質的錯誤觀念很多,最常見的包括:
就像沒有說明產品是什麼、它需要做什麼、誰會使用產品以及產品的用法等,就無法製造產品一樣,若沒有說明、測量以及納入作為產品製造流程的一部分時,就無法取得品質和達到品質。
請參閱概念:測量品質,以及本文件內標題為品質獨自發生。的章節
品質並不是單一層面、屬性或特性。品質是以多種方式測量出來的,需要建立品質測量值和準則,來符合專案、組織及客戶的需求。
品質可以透過多方面測量,有些適用於流程品質;有些適用於產品品質;有些則適用於兩者。品質可以透過下列項目測量:
-
進度:例如示範的使用案例或已完成的里程碑
-
差異:計劃和實際的排程、預算、人員配置需求等等之間的差異
-
可靠性:執行期間可以防範失敗(毀損、停滯、記憶體洩漏等)
-
功能:構件如預期實作及執行必要的使用案例
-
效能:構件適時且依可接受的方式執行及回應,並在受制於實際的作業特性時,例如負荷、壓力和冗長的作業期間等,仍繼續以可接受的方式執行
如需相關資訊,請參閱概念:品質層面、概念:產品品質以及概念:流程品質。
品質無法獨自發生。若要達到品質,必須實作一項流程、遵循該流程並加以測量。RUP 的目的是要提供一種規範的方法,在開發組織中指派作業和職責。我們的目標是要確保在預期的排程和預算內,製作符合客戶需求的高品質軟體。RUP
是以可以針對大多數專案和組織調整的形式,擷取今日軟體開發作業的許多最佳作法。環境規範會提供指引,說明如何依據您的需求,配置理想的流程。
可以依據多種因素配置流程,及商討可接受的品質準則。最常見的因素包括:
-
風險(包括責任)
-
市場機會
-
收入需求
-
人員配置或排程問題
-
預算
在專案一開始便應該識別及同意流程與可接受準則的變更。
管理品質的目的如下:
-
識別可接受品質的適當指示器(測量值)
-
識別用來評估及評定品質的適當測量
-
盡量愈早及有效地識別及適當處理會影響品質的問題
在 RUP 中,品質管理是在所有規範、工作流程、階段及反覆作業中實作。一般而言,管理整個生命週期的品質是表示實作、測量以及評定流程品質與產品品質。某些工作會延伸到在每個規範中管理品質,這些會在下列清單中強調顯示:
-
在需求規範中的管理品質包括分析需求構件集合的一致性 (構件標準和其他構件之間)、清晰性(向所有關係人及其他角色清楚傳達資訊)
以及精準度(適當的詳細及準確程度)。
-
在分析與設計規範中,管理品質包括評定設計構件集合,其中包括設計模型、從需求構件轉換以及轉換為實作構件的一致性。
-
在實作規範中,管理品質包括評定實作構件,並將程式碼或可執行構件和適當的需求、設計及測試構件做比較評估。
-
測試規範會特別專注於管理品質,在此規範中擴充的大部分工作都會處理先前指出的管理品質的三個目的。
-
環境規範和「測試」規範一樣,包括許多和管理品質的目的有關的工作。您可以在這裡找到如何最佳配置流程,以符合您的需求之指引。
-
在可交付產品的
部署規範內管理品質,包括評定實作及部署構件,以及將可執行檔及部署構件和交付產品給客戶所需要的適當需求、設計及測試構件做比較評估。
-
專案管理規範包括許多管理品質工作的概觀,這些包括評定實作方式、依循標準以及開發流程進度所需要的審查與稽核。
|