本文介绍软件的设计流程,以及可移植性、可复用性、可维护性、可读性、可测试性、健壮性
文章目录
- 一、经典的软件设计流程
- 二、更好的软件设计流程
- 三、可移植性、可复用性、可维护性、可读性、可测试性、健壮性
- 1、可移植性(Portability)
- 2、可复用性(Reusability)
- 3、可维护性(Maintainability)
- 4、可读性(Readability)
- 5、可测试性(Testability)
- 6、健壮性(Robustness)
一、经典的软件设计流程
一个典型的软件设计路程包括六部分
:
1、讨论需要编写的软件,需要实现什么功能,达到什么目的
2、编写一些代码
3、测试代码以识别缺陷
4、调试以找到缺陷的原因
5、修复缺陷
6、如果没有完成,返回步骤1
这个软件设计就是一个 写代码——试错——改错
,如此循环 的过程
二、更好的软件设计流程
1、未雨绸缪:在写代码之前,做好充足的需求分析,和良好的设计,这样写完代码返工率更低
2、考虑非功能质量属性:考虑代码之后的用途,如可维护性、可扩展性等
3、考虑多种设计选择
4、把设计决策明确的写下来:如设计规约等。
三、可移植性、可复用性、可维护性、可读性、可测试性、健壮性
1、可移植性(Portability)
可移植性
是软件质量之一,良好的可移植性可以提高软件的生命周期。代码的可移植性
主题是软件,软件可移植性指与软件从某一环境转移到另一环境下的难易程度
。这里的环境
包括软件环境,硬件环境和系统的组织环境。
为获得较高的可移植性,在设计过程中常采用通用的程序设计语言和运行支撑环境。尽量不用与系统的底层相关性强的语言。
2、可复用性(Reusability)
复用
又叫重用
,是重复使用的意思。一般软件的复用率并不高,尤其在国内。复用的好处可以得到较高的生产效率以及随之而来的成本降低、较高的软件质量(错误可以更快的被纠正)以及 恰当的使用复用可以改善系统的可维护性。
通俗的理解就是,可以应用在多个地方,或在一个地方重复使用多次。
3、可维护性(Maintainability)
系统的可维护性
是衡量一个系统的可修复(恢复)性
和可改进性
的难易程度。所谓可修复性
是指在系统发生故障后能够排除(或抑制)故障予以修复,并返回到原来正常运行状态的可能性。而可改进性
则是系统具有接受对现有功能的改进,增加新功能的可能性。
因此,可维护性实际上也是对系统性能的一种不可缺少的评价体系,它主要包括两个方面:首先是评价一个系统在实施预防型和纠正型维护功能时的难易程度,其中包括对故障的检测、诊断、修复以及能否将该系统重新进行初始化等功能;其次,则是衡量一个系统能接受改进,甚至为了进一步适应外界(或新的)环境而进行功能修改的难易程度。
事实上,可维护性是可信性属性中一项相当重要的评价标准。可维护性的优劣可能直接影响到系统的可靠性和可信性。
4、可读性(Readability)
描述在其他开发人员没有进行太多联想或猜测的情况下就能理解代码的含义的难易程度。
5、可测试性(Testability)
软件可测试性
(Software testability)是指一个软件工件(软件系统、模组、需求文件或设计文件等)在一给定的测试环境下,可支援测试的程度。
许多软件系统是不可测试
的,或是无法立即测试。例如Google的ReCAPTCHA,若没有任何有关图的元资料,则无法成为可测试的系统。不过若针对每一张图,都有对应说明应有结果的标签,就可以测试此一系统。因此软件工件的可测试性不是内在性质
,不像软件大小一样可以直接量测。软件可测试性是外在性质
,由待测试的软件
及测试目标
、方法
及测试资源(测试环境)
之间的相互关系来决定。
6、健壮性(Robustness)
健壮性
是指软件对于规范要求以外的输入情况的处理能力。
所谓健壮的系统是指对于规范要求以外的输入能够判断出这个输入不符合规范要求,并能有合理的处理方式。
另外健壮性有时也和容错性,可移植性,正确性有交叉的地方。