软件的军工六性

        “军工六性”是对指军工产品六个方面的要求,包括稳定性、维修性、测试性、安全性、保障性和环境适应性,也称之为通用质量特性。我结合软件的研发,介绍以下:html

        稳定性(可靠性):一把枪,总得能稳定地发挥本身的性能。对照到软件中,就是软件得表现稳定,操做的输出可预测。任由用户有意或无心地乱输入,系统总能给出正确的输出。这须要严谨的设计逻辑,和严谨到苛刻的代码编写规范,规范养成习惯,成为代码人(coder)的修养。算法

        维修性:在规定使用条件下使用的可维修产品,在规定条件下并按规定的程序和手段实施维修时,保持或恢复能执行规定功能状态的能力。在战场上,坏了得好修。在软件上,出错了得容易定位Bug。这就要求出错时,有简洁清晰的提示信息(反倒:把错误消灭在肚子里,只告诉用户“发生了一个错误”,具体是啥错误,你猜;-),在日志上有足够的信息,能方便地定位错误位置,快速地验证和修复错误。安全

        测试性:产品能及时并准确地肯定其状态,并隔离其内部故障的一种设计特性。不用到真要修的程度,这个产品随时能告诉你,它是可工做仍是不可工做、是性能无缺仍是性能降低。就像咱们的手机电池显示电量百分比那样。软件须要对与本身相关的各类链接的资源和交换数据进行检测,第一时间发现和报告问题。好比SQL执行很慢,不监测就不知道,能够经过框架去监测。前面说的是自测,后面说的是被测。即软件操做的一切资源(如文件,网络,甚至另外一个软件),都应该是能够模拟(Mock)的,这样能够把软件放到仿真环境中进行各类测试。网络

        保障性:系统(产品)的设计特性和计划的 保障资源知足平时和战时使用要求的能力称保障性。不只产品要好,还得好生产、好运输、好储存。不只功能实现要正确,还要容易学习,操做方便,容易扩展,性能要好,兼顾美观。框架

        安全性:产品所具备的不致使人员伤亡、系统毁坏、重大财产损失或不危及人员健康和环境的能力。计算机世界的安全是一个系统工程,不是把安全模块作好了就行了。而是要全流程安全。千里之堤,溃于蚊穴,任何一个的薄弱环节均可能成为入侵者的突破口。认为“加个防火墙就安全了”的这种思想就很不安全。性能

        环境适应性:产品在其寿命期预计可能遇到的各类环境的做用下能实现其全部预期功能、性能和(或)不被破坏的能力。把常见的,极端的输入都考虑在内,采用严谨的逻辑来思考和推敲如何写代码,就能把这件听起来很难的事解决好。不能在极端状况下,系统处理结果不正确,好比用户输入一个数字后多敲了个空格,结果软件就多发或多收一倍的钱。排序算法不能由于遇到某些特定的数字,就要耗费比平时多得多的时间才能完成排序。学习

        不要认为以上军工六性用在软件很牛逼,标准很高,而应该认为这是起码的要求。从现实来看,作到的还真很少,因此作到的还真牛逼。既要努力达到军工六性的要求,也要不局限于它,把眼光放高放远,才能作出更好的软件。现实可能骨感,理想必须丰满。测试

参考:设计

听罗胖讲“军工六性” - 简书 3d

质量与可靠性工程师“密码”必备(下)

相关文章
相关标签/搜索