还可把质量分为动态质量和静态质量。静态质量是通过审查各开发过程的成果来确认的质量,包括模块化程度、简易程度、完整程度等内容。动态质量是考察运行状况来确认的质量,包括平均故障间隔时间(MTBF)、软件故障修复时间 (MTRF)、可用资源的利用率。在许多实际工程中,人们一般比较重视动态质量而忽视静态质量。
所定的质量标准度量,至少应达到以下两个目的:
(1).明确划分各开发过程(需求分析过程,设计过程,测试过程,验收过程),通过质量检验的反馈作用确保差错及早排除并保证一定的质量。
(2).在各开发过程中实施进度管理,产生阶段质量评价报告,对不合要求的产品及早采取对策。
确定划分的各开发过程的质量度量:
(1).需求分析质量度量
需求分析定义是否完整、准确(有无二义性),开发者和用户间有没有理解不同的情况,文档完成情况等,要有明确的可靠性需求目标、分析设计及可靠性管理措施等。
(2).设计结果质量度量
设计工时,程序容量和可读性、可理解性,测试情况数,评价结果,文档完成情况等。
(3).测试结果质量度量
测试工时,差错状况,差错数量,差错检出率及残存差错数,差错影响评价,文档等,以及有关非法输入的处理度量。
(4).验收结果质量度量
完成的功能数量,各项性能指标,可靠性等。
最后选择一种可靠度增长曲线预测模型,如时间测量、个体测量、可用性,在后期开发过程中,用来计算可靠度增长曲线的差错收敛度。
在建立质量标准之后,设计质量报告及评价表,在整个开发过程中就要严格实施并及时作出质量评价,填写报告表。
2. 选择开发方法
软件开发方法对软件的可靠性也有重要影响。
目前的软件开发方法主要有Parnas方法、Yourdon方法、面向数据结构的Jackson方法和Warnier方法、PSL/PSA方法、原型化方法、面向对象方法、可视化方法、ICASE方法、瑞理开发方法等,其他还有BSP方法、CSF方法等。这里特别要提一下的是Parnas方法。
Parnas方法是最早的软件开发方法,是Parnas 在1972年提出来的,基本思想是在概要设计时预先估计未来可能发生变化,提出了信息隐藏的原则以提高软件的可靠性和可维护性。
在设计中要求先列出将来可能要变化的因素,在划分模块时将一些可能发生变化的因素隐含在某个模块的内部,使其他模块与此无关,这样就提高了软件的可维护性,避免了错误的蔓延,也就提高了软件的可靠性。还提出了提高可靠性的措施:
(1)考虑到硬件有可能出故障,接近硬件的模块要对硬件行为进行检查,及时发现错误。
(2)考虑到操作人员有可能失误,输入模块对输入数据进行合法性检查,是否合法、越权,及时纠错。
(3)考虑到软件本身有可能失误,加强模块间检查,防止错误蔓延。
对瑞理方法可能许多人还不熟悉,这里简要介绍一下。
瑞理(Rational)模式是美国瑞理软件工程公司发展出来的,其模式是:
面向对象;
螺旋式上升;
管理与控制;
高度自动化;
以管理观点和技术观点把软件生命周期划分为起始、规划、建构、转移、进化五个阶段,也可把这五个阶段归并为研究时期(起始和规划)和生产时期(建构和转移),最后是维护时期(进化),特别适合对高风险部分及变动需求的处理。
在以上的众多方法中,可视化方法主要用于与图形有关的应用,目前的可视化开发工具只能提供用户界面的可视化开发,对一些不需要复杂图形界面的应用不必使用这种方法;ICASE 技术还没有完全成熟,所以可视在方法和ICASE方法最多只能用作辅助方法。面向数据结构的方法、PSL/PSA方法及原型化方法只适合于中小型系统的开发。
面向对象的方法便于软件复杂性控制,有利于生产率的提高,符合人类的思维习惯,能自然地表达现实世界的实体和问题,具有一种自然的模型化能力,达到从问题空间到解空间的较为直接自然的映射。
在面向对象的方法中,由于大量使用具有高可靠性的库,其可靠性也就有了保证,用面向对象的方法也利于实现软件重用。
所以建议采用面向对象的方法,借鉴Parnas和瑞理模式的思想,在开发过程中再结合使用其他方法,吸取其它方法的优点。
原文转自:http://www.uml.org.cn/rjzl/200612011.htm