擁有較高軟件過程成熟度的組織能以極低的出錯率來確保軟件生產的質量。因此,在具有較高軟件過程成熟度的組織內,如果在需求分析階段以及對相應的功能進行設計、改進、軟件測試的同時,對非功能特征給予恰當的關注,無疑將極大地提高軟件產品的質量。這就是在MIEL發起的產品質量改進計劃的主題。在本文中,我們將討論那些對產品質量改進至關重要的關鍵過程和軟件工程技術的相關領域。同時提出作者從所參與項目中得到的關于如何指導和開展某些關鍵實踐(如指定非功能性需求)的一些經驗,以供讀者參考。我們還提出一些有關產品質量評價標準的想法,以幫助在產品的改進、測試以及交付過程中保持對產品質量的跟蹤。
1. 緒論
軟件產品質量不同于軟件生產質量。一個成熟的軟件過程能確保好的生產質量(功能的正確性、可估計的費用和進度、較低的出錯率)。但是,產品質量對此提出了一個新的問題:好的生產質量是否就一定能保證滿足用戶對產品的期望呢?以及產品是否完全按照發展組織的觀點進行開發,就像MIEL一樣。這種觀點包括許多方面,比如用戶對產品提出的意見,它是由產品的可用性、操作性、有效性等因素決定的。從發展組織(MIEL)的觀點來看,決定產品質量的因素還包括可重用構件的開發和使用以及它們是否在將來的產品中具有較強的改進能力,使產品能夠容易地進行變更或者自定義,易于擴展,易于維護,易于操作。
質量特征是由技術型風險承擔者和非技術型風險承擔者共同提出的希望實現的系統功能,它包括功能性、操作性、可用性、有效性、風險措施、安全性、質量,等等。我們可以進一步將這些質量特征劃分為四大類,即:商業特征、行為特征、改進特征和發展特征。如下圖所示:
一般說來,軟件產品的最終用戶是最關心行為特征的風險承擔者,發展組織最關心發展特征、商業特征和改進特征,消費者團體最關心商業特征和改進特征。
實現軟件產品的功能正確性是必要的,但是將一個產品的系統設計和實現與其它產品區分開來必須依靠非功能特征(比如操作性、可用性、有效性等等)的滿足。
ISO9126標準[3]列出了如下六個質量特征,即:功能性、可靠性、可用性、效率、可維護性和操作性。這些特征可以進行更詳細的分類,形成更多的子特征。例如,易操作性可以進一步劃分為適應性、易安裝性、一致性和可替換性幾個子特征。這些子特征通過科學的度量形成標準。ISO9126標準模型促進了軟件產品質量的評估。
2. 計劃目標和預期成果/效果
軟件工程基本上是由用戶的直接需求所驅動,而并不過分關注其長期需求。這就導致了軟件產品通常是在一個固定風格的平臺上進行開發,用戶對于產品的未來需求被轉移到另一個平臺來實現,而這往往需要付出更多的努力。同樣,盲目地關注軟件產品的這些特征也可能導致過分地關注其中的某一個特征而忽視了其他的特征。在MIEL的經驗中,至少存在一個這樣的例子,由于過分關注改進特征而導致產品的可操作性很差。
MIEL集成商業特征正在從單一的服務性特征向著集服務、產品和解決方案為一體的集成特征轉變。在MIEL中,產品和解決方案商業特征將貫穿項目生命周期的始終,即從提出產品概念到產品被淘汰這一完整過程。
在過程改進期間,有必要對產品本身保持足夠的關注。在CMM模型中,通過對非功能性特征的關注,可以加強軟件質量管理(SQM)這一關鍵過程域,并且有助于提高用戶對產品的滿意度。
這里有一個用來描述時間周期和質量這兩個商業子特征的綜合水平的計劃,比如用10X來描述時間周期的縮減量,用6sigma來描述質量水平。在MIEL中對產品質量改進計劃進行了詳細說明,并在實踐中加以貫徹以實現如下目標:
—交付的產品應滿足消費者對產品質量的期望和最終用戶對產品的非功能性特征的需求,從而使用戶對MIEL感到滿意。
—在產品開發過程中注意對其進行不斷地改進,使其符合MIEL的商業計劃。
3. 我們的方法
本方法的關鍵是在需求分析階段根據產品功能明確地識別出設計目標。一些設計目標的例子如下:
—系統應能夠在1秒內處理服務XYZ的請求(操作性能目標)
—系統升級不應導致超過10分鐘的服務損耗(有效性目標)
—新用戶應能在1小時內學會并可以開始使用該系統(可用性目標)
—添加新的消息類型所需付出的代價應足夠小。
上述設計目標的制定是基于如何使消費者和最終用戶感到滿意的理解。它們大部分在本質上屬于非功能性目標。在項目的開始階段考慮并明確地說明這些設計目標,有助于在設計階段注意到各個目標之間的平衡,避免發生以犧牲某個目標的代價來滿足另一個目標的實現的情形。
特別地,在需求分析階段,這些設計目標應得到詳細說明并對它們的重要性進行排序。在設計過程中,必須嚴格遵守那些有助于實現設計目標和保持目標之間的平衡的決定。還可以對設計本身進行分析,以實現與執行能力、改進措施等特征相關的目標和與執行能力、可用性等特征相關的目標,這些目標作為系統測試的一部分能夠通過測試獲得準確的結果。除了對設計進行檢查之外,對這些設計目標進行設計分析同樣可以發現很多重要問題,設計分析將增強設計者對設計能夠獲得成功的信心。
而且,通過對用戶的滿意情況進行調查可以獲得用戶評價這些產品質量特征的部分反饋信息。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/