「軍工六性」是對指軍工產品六個方面的要求,包括穩定性、維修性、測試性、安全性、保障性和環境適應性,也稱之爲通用質量特性。我結合軟件的研發,介紹以下:html
穩定性(可靠性):一把槍,總得能穩定地發揮本身的性能。對照到軟件中,就是軟件得表現穩定,操做的輸出可預測。任由用戶有意或無心地亂輸入,系統總能給出正確的輸出。這須要嚴謹的設計邏輯,和嚴謹到苛刻的代碼編寫規範,規範養成習慣,成爲代碼人(coder)的修養。算法
維修性:在規定使用條件下使用的可維修產品,在規定條件下並按規定的程序和手段實施維修時,保持或恢復能執行規定功能狀態的能力。在戰場上,壞了得好修。在軟件上,出錯了得容易定位Bug。這就要求出錯時,有簡潔清晰的提示信息(反倒:把錯誤消滅在肚子裏,只告訴用戶「發生了一個錯誤」,具體是啥錯誤,你猜;-),在日誌上有足夠的信息,能方便地定位錯誤位置,快速地驗證和修復錯誤。安全
測試性:產品能及時並準確地肯定其狀態,並隔離其內部故障的一種設計特性。不用到真要修的程度,這個產品隨時能告訴你,它是可工做仍是不可工做、是性能無缺仍是性能降低。就像咱們的手機電池顯示電量百分比那樣。軟件須要對與本身相關的各類鏈接的資源和交換數據進行檢測,第一時間發現和報告問題。好比SQL執行很慢,不監測就不知道,能夠經過框架去監測。前面說的是自測,後面說的是被測。即軟件操做的一切資源(如文件,網絡,甚至另外一個軟件),都應該是能夠模擬(Mock)的,這樣能夠把軟件放到仿真環境中進行各類測試。網絡
保障性:系統(產品)的設計特性和計劃的 保障資源知足平時和戰時使用要求的能力稱保障性。不只產品要好,還得好生產、好運輸、好儲存。不只功能實現要正確,還要容易學習,操做方便,容易擴展,性能要好,兼顧美觀。框架
安全性:產品所具備的不致使人員傷亡、系統毀壞、重大財產損失或不危及人員健康和環境的能力。計算機世界的安全是一個系統工程,不是把安全模塊作好了就行了。而是要全流程安全。千里之堤,潰於蚊穴,任何一個的薄弱環節均可能成爲入侵者的突破口。認爲「加個防火牆就安全了」的這種思想就很不安全。性能
環境適應性:產品在其壽命期預計可能遇到的各類環境的做用下能實現其全部預期功能、性能和(或)不被破壞的能力。把常見的,極端的輸入都考慮在內,採用嚴謹的邏輯來思考和推敲如何寫代碼,就能把這件聽起來很難的事解決好。不能在極端狀況下,系統處理結果不正確,好比用戶輸入一個數字後多敲了個空格,結果軟件就多發或多收一倍的錢。排序算法不能由於遇到某些特定的數字,就要耗費比平時多得多的時間才能完成排序。學習
不要認爲以上軍工六性用在軟件很牛逼,標準很高,而應該認爲這是起碼的要求。從現實來看,作到的還真很少,因此作到的還真牛逼。既要努力達到軍工六性的要求,也要不侷限於它,把眼光放高放遠,才能作出更好的軟件。現實可能骨感,理想必須豐滿。測試
參考:設計