复习笔记-软件构造的内外部质量标准

内部/外部的质量指标

1.软件系统的质量特性

 外部质量是用户能够感受到的,影响用户的使用

 内部质量影响使用代码的相关人员,影响软件本身和开发者

2.内部质量因素

·正确性:软件产品执行其规范所定义的精确任务的能力。

  确保正确性的方法是有条件的。

假定一个软件系统是分层开发的,每层都要确保自己是 正确的,同时假定其调用的低层也是正确的。

确保正确性的方法:Testing and debugging

防御性编程,如类型化/静态类型检查和断言,旨在帮助构建从一开始就正确的软件,而不是将其调试为正确。

正式方法:“check”, “guarantee” and “ensure”

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

健壮性同异常情况相关,异常或非异常取决于程序的规格说明。

异常情况是程序的规格说明中没有涉及的部分。

判断是否是异常的标准,不取决于客观的正确标准,而取决于程序的规格说明。

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

  可扩展性同规模密切相关,越大越难以扩展,软件是易变的,需要可扩展性。

  传统方法在最初冻结需求,假定没有变化,因此难以适应变化。

简单的体系结构总是比复杂的体系更容易适应变化。

模块自治性越强,变化时对其余模块影响越小。

·可重用性:是软件元素为许多不同应用程序的构造服务的能力。

  软件经常遇到相似的模式,利用共性,避免重复实现。

·兼容性:是将软件元素与其他元素结合起来的简单性。

  兼容性很重要,因为我们不在真空中开发软件元素:它们需要相互作用。

  难点:不同软件 有不同的设定/规定

标准化是解决兼容性的关键

通过协议来实现更通用的兼容性

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

  可移植性不仅解决了物理硬件的变化,而且更广泛地解决了硬件软件机器的变化

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

  易于使用的关键之一是结构简单

  理解用户,换位思考,站在用户的角度设计软件

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

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

·功能性:是系统提供的可能性的程度。

程序设计中一种不 适宜的趋势,即软件开发者增加越来越多的功能,企图跟上竞争,其结果是程序极为复杂、不灵活、占用过多的磁盘空间

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

          在质量提升技术的帮助下,可以在整个项目中保持质量水平不变,而不仅仅是功能性。

·其他:可验证性:是否易于验证

       完整性:软件系统保护其各种组件(程序和数据)免受未经授权的访问和修改的能力。

       可修复性:促进缺陷修复的能力。

       经济性:同及时性相伴,是系统能够按照其分配的预算或低于预算完成的能力。

3.外部质量因素

圈复杂度, 用来衡量一个模块判定结构的复杂程度

耦合度、内聚度,设计中追求高内聚和低耦合

可读性、可理解性、复杂性、大小

内部质量因素通常用作外部质量因素的部分度量

4.质量因素之间的权衡

开发人员通常都是隐式地进行平衡,不会刻意的在多个方案中均衡,效率往往成为主导因素。

真正的软件工程方法中,质量目标应明确指出

正确性放在首要地位

 

•系统的软件构建方法

•形式化的软件规格说明

•在开发过程中自动检查

•更好的语言机制

•一致性检查工具

 

正确性:封装,去中心化

稳健性:封装,错误处理

可扩展性:封装,信息隐藏

可重用性:模块化,组件,模型,模式

兼容性:标准化模块和接口

可移植性:信息隐藏,抽象

易用性:GUI组件,框架

效率:可重用组件

及时性:建模、重用

经济性:重用

功能性:可扩展性

5.软件构造的五个关键质量目标

·可维护性和适应性

·可重用性

·健壮性

·性能

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值