軟件質量的重要性是不言而喻的,但是當所有人都意識到它的重要性的時候,卻很少有人能夠清晰的描述出如何才能夠提高軟件質量。軟件質量框架的目的就在于提出一個評價的原型,幫助我們分析一種方法和技術是否能夠提高軟件質量。本系列文章分日構建、測試驅動開發、建立核心框架、面向組件的大規模軟件架構來進行深入分析。
什么才是一個高質量的軟件
在討論軟件質量原型之前,我們先回答第一個問題。一個軟件之所以被認定為質量優秀,并不是因為它獲得了一個省級或部級獎,而是它的內在具備了這樣一些特性:
滿足用戶的需求。這是最重要的一點,一個軟件如果不能夠滿足用戶的需要,設計的再好,采用的技術再先進,也沒有任何的意義。所以這一點非常的樸實,但卻是軟件質量的第一個評判標準。
合理進度、成本、功能關系。軟件開發中所有的管理都是圍繞著這幾個要素在做文章的,如何在特定的時間內,以特定的成本,開發出特定功能的軟件。三者之間存在一種微妙的平衡。在Planning XP一書中,專門有一個章節討論它們。一個高質量的軟件的開發過程中,項目成員一定能夠客觀的對待這三個因素,并通過有效的計劃、管理、控制,使得三者之間達成一種平衡,保證產出的最大化。
具備擴展性和靈活性,能夠適應一定程度的需求變化。當今的社會已經變成一種變化速度極快的設計了。變化就會對軟件產生沖擊,所以一個質量優秀的軟件,應該能夠在一定程度上適應這種變化,并保持軟件的穩定。
能夠有效的處理例外的情況。寫過軟件的人都知道,實現主體功能的工作量其實不大,真正的工作量都在處理各種例外。所以,一個軟件如果能夠足夠的強壯、足夠的魯棒,能夠承受各種的非法情況的沖擊,這個軟件就是高質量的。
保持成本和性能的平衡。性能往往來源于客戶的非功能需求,是軟件質量的一個重要的評價因素。但是性能問題在任何地方都存在,所以需要客觀的看待它。例如,一段性能不錯的代碼可能可讀性很差,這就需要進行平衡,如果這段代碼的性能是整個軟件的關鍵,那么取高性能而舍棄可讀性,反之則取可讀性而舍棄高性能。一個優秀的軟件能夠保持成本和性能之間的平衡。
能夠可持續的發展。很少有軟件組織只開發一個軟件的,所以,一個優秀的軟件在開發完成后,可以形成知識沉淀,為軟件組織的長期發展貢獻力量。這是一個優秀的軟件應該要能夠做到的。
軟件質量框架的組成
軟件質量框架不是理論,而是優秀軟件開發思想的一個應用,是對軟件開發過程的有效管理實踐。它以敏捷方法論為基礎,并將先進的軟件開發技術融入其中。您可能在之前聽說過,學習過,嘗試過各種軟件技術,但是缺少一個統一整體的認識。所以,軟件質量框架的目的是將您原先在腦海中就存在的思路進一步的整理,將一副完整的圖像(big picture)展現在你面前。軟件質量框架偏重應用,所以不會涉及太多的理論,但是,它是基于理論的,所以,在需要理論支持的地方,我們會簡單的描述理論,并給出必要的鏈接,供有興趣的讀者進一步閱讀。
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/