軟體質量因素

正確性是指軟體按照需求正確執行任務的能力。 “正確性”的語義涵蓋了“精確性”。 正確性無疑是第一重要的軟體質量屬性。 技術評審和測試的第一關都是檢查工作成果的正確性。 機器不會主動欺騙人,軟體運行出錯通常都是人造成的,所以不要找藉口埋怨機器有毛病。 健壯性

簡介

健壯性是指在異常情況下,軟體能夠正常運行的能力。 正確性描述軟體在需求範圍之內的行為,而健壯性描述軟體在需求範圍之外的行為。 開發者往往把異常情況錯當成正常情況而不作處理,結果降低了健壯性。 用戶才不管正確性與健壯性的區別,反正軟體出了差錯都是開發方的錯。所以提高軟體的健壯性也是開發者的義務。 健壯性有兩層含義:一是容錯能力,二是恢復能力。 可靠性

含義說明

可靠性是指在一定的環境下,在給定的時間內,系統不發生故障的機率。 可靠性本來是硬體領域的術語。比如某個電子設備在剛開始工作時挺好的,但由於器件在工作中其物理性質會發生變化(如發熱),慢慢地系統的功能或性能就會失常。所以一個從設計到生產完全正確的硬體系統,在工作中未必就是可靠的。 軟體在運行時不會發生物理性質的變化,人們常以為如果軟體的某個功能是正確的,那么它一輩子都是正確的。可是我們無法對軟體進行徹底地測試,無法根除軟體中潛在的錯誤。平時軟體運行得好好的,說不準哪一天就不正常了,如有千年等一回的“千年蟲”問題,司空見慣的“記憶體泄露”問題、“誤差累積”問題等等。 時隱時現的錯誤一般都屬於可靠性問題,糾錯的代價很高。性能

性能通常是指軟體的“時間-空間”效率,而不僅是指軟體的運行速度。人們總希望軟體的運行速度高些,並且占用資源少些。 性能最佳化的關鍵工作是找出限制性能的“瓶頸” 可以通過最佳化數據結構、算法和代碼來提高軟體的性能。

易用性

易用性是指用戶使用軟體的容易程度。 現代人的生活節奏快,幹啥事都想圖個方便。所以把易用性作為重要的質量屬性對待無可非議。 導致軟體易用性差的根本原因 : 理工科大學教育存在缺陷:沒有開設人機工程學、美學、心理學這些必修課,大部分開發人員不知道如何設計易用的軟體產品。 開發人員犯了“錯位”的毛病:他以為只要自己用起來方便,用戶也就會滿意。 軟體的易用性要讓用戶來評價。當用戶真的感到軟體很好用時,一股溫暖的感覺油然而生,於是就用“界面友好”、“方便易用”等詞來評價軟體產品。 清晰性

清晰意味者所有的工作成果易讀、易理解,可以提高團隊開發效率,降低維護代價。 開發人員只有在自己思路清晰的時候才可能寫出讓別人易讀、易理解的程式和文檔。 可理解的東西通常是簡潔的。一個原始問題可能很複雜,但高水平的人就能夠把軟體系統設計得很簡潔。如果軟體系統臃腫不堪,它遲早會出問題。所以簡潔是人們對工作“精益求精”的結果,而不是潦草應付的結果。 千萬不要把在學校里“造文章”的手法用於開發產品! 安全性

這裡安全性是指信息安全,英文是Security而不是Safety。 安全性是指防止系統被非法入侵的能力,既屬於技術問題又屬於管理問題。 “道高一尺,魔高一丈” ,絕對安全的信息系統幾乎不存在。 開發商和客戶願意為提高安全性而投入的資金是有限的,他們要考慮值不值得。 究竟什麼樣的安全性是令人滿意的呢? 一般地,如果黑客為非法入侵花費的代價(考慮時間、費用、風險等因素)高於得到的好處,那么這樣的系統可以認為是安全的。 可擴展性

可擴展性反映軟體適應“變化”的能力。 在軟體開發過程中,“變化”是司空見慣的事情,如需求、設計的變化,算法的改進,程式的變化等等。由於軟體是“軟”的,是否它天生就容易修改以適應“變化”?關鍵要看軟體的規模和複雜性。 現代軟體產品通常採用“增量開發模式”,不斷推出新版本,獲取增值利潤。可擴展性越來越重要。可擴展性是系統設計階段重點考慮的質量屬性。 兼容性

兼容性是指兩個或兩個以上的軟體相互交換信息的能力。 兼容性的商業規則:弱者設法與強者兼容,否則無容身之地;強者應當避免被兼容,否則市場將被瓜分。示例: 中國聯通和中國移動的手機互聯互通問題 金山軟體公司的WPS與微軟的Word之爭可移植性

可移植性是指軟體運行於不同軟硬體環境的能力 程式語言越低級,其程式越難移植,反之則容易。軟體設計時應該將“設備相關程式”與“設備無關程式”分開,將“功能模組”與“用戶界面”分開。

相關詞條

相關搜尋

熱門詞條

聯絡我們