软件构造笔记——软件质量

最近软件构造复习到了软件质量的问题,有些感想,做个整理:

软件质量

:外部质量因素:速度或易用性等质量,其用户可以检测到软件产品的存在与否(不仅是实际与最终产品交互的人,还有购买软件或合同的人它的发展)。

适用于软件产品的其他质量,例如模块化或可读,是内部因素,只有能够访问实际软件文本的计算机专业人员才能感知。

内部质量影响使用代码的内部人员

最终只有外部因素比较重要

达到这些外部因素的关键在于内部:对于用户来说去享受可观的质量,设计者和实现者必须使用内部技术(实现隐藏质量)

正确性

确保正确性的方法:有条件的(假定软件系统是分层开发的,每层都确保自己是正确的,同时假定其调用的低层是正确的)

确保正确性的方法:测试和debug:

防范性的程序像是typing和assertion,旨在从一开始正确地构建软件

然不是直接把他debug到正确

健壮性

健壮性是软件系统对异常情况作出适当反应的能力

稳健性补充了正确性。

  • 正确性解决了系统在其规范所涵盖的情况下的行为;

  • 健壮性表征了该规范之外发生的事情。

可扩展性

可扩展性是指软件易于调整以适应变化的能力。

  • 可扩展性和规模有关

对于小型项目,改变通常不是一个难题; 但随着软件越来越大,适应变得越来越难。越大越难扩展。简单的体系结构总是比复杂的体系更容易适应变化。模块自治性越强,变化时对其雨量模块影响越小。

复用

复用是为许多不同应用结构服务的软件元素的能力

软件经常遇到相似的模式,利用共性,避免重复实现。
如之后的复用,泛编之类的

兼容性

软件需要相互连接

方法包括:

  • 标准化数据结构,如在Lisp系统中,所有数据和程序也由二叉树(在Lisp中称为列表)表示。

  • 标准化的用户界面,如各种版本的Windows,OS / 2和MacOS,其中所有工具都依赖于单一范例与用户进行通信,基于标准组件,如窗口,图标,菜单等。

效率:

效率是软件系统对硬件资源尽可能少的需求的能力

可移植性

可移植性是指便于将软件产品 转移到各种硬件和软件环境。

易用;

. 用户可以轻松掌握软件的使用,也包括安
装、运行和监控的容易度

这要求:

  • 细节的指引和解释

  • 结构简单

  • 理解用户,站在用户的角度设计

功能

过多的新功能容易带来一 致性的缺失,影响易用性

合时:

及时性是软件系统在用户需要时或之前发布的能力。

?出现太晚的优秀软件产品可能会完全错过目标。

其他品质

内部品质:

可读性,可理解性和清洁性。

复合性,长度

内部质量因素通常用作外部质量因素的部分度量
可见软件的质量却决于其内部品质与外部品质,在平时写代码时就尽量注意到他们,从一开始就保持正确性,当然很多还需要重构

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年5月19日
下一篇 2019年5月19日

相关推荐