方法學前提:在敏捷方法學中,對規則和秩序有兩種不同的觀點,一種是強調規則和秩序,以XP為代表,它對代碼都有要求;另一種則不那么強調,以自適應軟件開發為代表,它不要求程序員的具體行為。軟件質量框架采用第一種觀點,要求組織中存在嚴謹的規則和秩序。
軟件質量框架的價值觀
明確具體:對軟件的管理必須是明確具體的。軟件開發是工程、也是藝術,需要緊密的協作和溝通,任何一個含糊的指令都可能導致軟件開發中出現錯誤,所以,在軟件開發中,任何一個指令都應該是相對明確的。為什么說是相對呢?是和成本相對,指令越明確,成本就越高。例如,你可以把需求文檔寫的非常的具體,但是你需要付出制作和維護的代價。所以我們的明確性是一個考慮成本前提下的特性。
明確具體要從綜合上考量。怎么理解呢?例如,XP中的用戶故事是非常不精確的,按道理說它是不明確,也是不具體的。但是在整個開發周期中,將會有迭代、測試、現場用戶等多種手段使得用戶故事明確具體起來,所以從整體上看,它并不違反我們的價值觀。產品質量是一個系統工程,決不僅僅是QA部門的工作,。這個道理適用于制造業,也適用于軟件開發業。
容錯:軟件開發是人的工作,人是無法避免錯誤的。所以,軟件質量框架中允許犯錯。因為不犯錯是天方夜譚。你就算做了這方面的強制規定也無法避免它的出現,反而會引發其它的問題,例如隱瞞錯誤,或為了隱瞞錯誤而導致的額外成本。所以正確的態度是允許發生錯誤,并建立一套監測、管理、反饋、修改錯誤的體制。
規范:在前提中,我們已經提到了,規范是軟件質量框架的基本態度。所以,軟件質量框架中強調規范,并使用規范來推動框架的運作。
測試:軟件質量框架非常強調測試,測試是保證質量的必由之路。測試要盡可能的多,盡可能的頻繁、測試結果要盡可能快的反饋。這是軟件質量框架對測試的基本態度。測試是綜合性的,軟件開發過程中的所有工件,都需要伴隨著相應的測試工件。這是基于一個簡單的理念,如果你不能夠為你的工作制定一個完成的標準,你又該如何開展你的工作呢?
軟件質量框架的結構
上圖表現了軟件質量框架的結構。處于結構核心的是技術架構和管理架構。軟件質量框架既不是方法學,也不是一個軟件,更像是兩者的結合體。技術架構和管理架構的融合體現了這一特性。軟件質量框架并不關心單個開發人員的效率,它關注的是開發團隊整體的效率。因此,管理架構在框架中的意義在于它定義了一套軟件管理的方法,能夠對開發人員及其他們的工作進行管理。從這一點來看,它的作用和軟件工程方法學是一樣的。但是,在現實中我們發現軟件組織在邁向軟件過程的途中往往因為現實的困難而止步不前。其中一個主要的原因是在引入方法學的過程中生產效率降低了,而引起組織成員對變革的懷疑和不滿。
所以,除了管理架構之外,軟件質量框架還提供了一個技術架構,其目的是明確的定義如何應用組織中涉及的軟件技術,以及管理軟件技術的方法。技術架構是具體的代碼,相比起方法學來說,它更加的具體,更容易為開發人員所理解。而技術架構存在的目的,一方面是進行技術積累,另一方面也是為管理架構服務。
技術架構和管理架構的下一層是支撐框架。支撐框架包括代碼、組件、文檔,目的是為技術架構和管理架構提供底層的支持。
處于結構最頂層的是業務架構。這個部分對于任何一個軟件組織來說都是不同的,因為不同的軟件組織的業務不同。業務架構的目的是對業務進行建模和抽象,提取出可重用的部分,以提高軟件組織的生產率。本文中不涉及該部分的內容。
軟件質量框架的優秀實踐
文章來源于領測軟件測試網 http://www.kjueaiud.com/