1.2软件建设的质量目标

一、软件系统的质量特性

1)外部质量因素

防御式编程:在写程序的时候就确保正确性

 

健壮性:针对异常情况的处理出现异常时不要“崩溃”,出现规约定义之外的情形的时候,软件要做出恰当的反应

健壮性是为了确保如果出现这种情况,系统不会造成灾难性事件;它应该产生适当的错误消息,终止其执行干净,或进入所谓的“优雅退化”模式。

 

正确性:软件的行为要严格的符合规约中定义的行为

 

可扩展性:对软件的规约进行修改

 

扫描二维码关注公众号,回复: 1721490 查看本文章

可复用性:一次开发,多次使用。对可重用性的需求来自于软件系统经常遵循相似模式的观察

 

兼容性:不同的软件系统之间相互可容易的集成(将软件元素与其他元素结合起来的简易性)  一个例子是许多操作系统支持的各种各样的不兼容的文件格式。只有当文件格式兼容时,程序才能直接使用另一个结果作为输入。

兼容性的关键在于保持设计的同构性,并同意程序间通信的标准化约定

方法包括:

标准化文件格式,如UNIX系统,其中每个文本文件只是一个字符序列。

标准化数据结构,如在LISP系统中,所有数据和程序都用二叉树表示(称为LISP中的列表)。

标准化的用户界面,如Windows、OS/2和MACOS的各种版本,其中所有工具依赖于与用户进行通信的单一范式,基于诸如Windows、图标等标准组件。

 

性能:性能是软件系统在硬件资源(如处理器时间、内部和外部存储器占用的空间、通信设备中使用的带宽)尽可能少的需求的能力

性能毫无意义,除非有足够的正确性,对性能的关注要与其他质量属性进行折中,过度的优化导致软件不再适应变化和复用

 

可移植性:软件可方便的在不同的技术环境之间移植

 

易用性:容易学、安装、操作、监控,给用户提供详细的指南

 

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

程序设计中一种不适宜的趋势,即软件开发者增加越来越多的功能,企图跟上竞争,其结果是程序极为复杂、不灵活、占用过多的磁盘空间。由于新特性的增加可能导致一致性的丧失,影响了它的易用性。

  

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

 

其他:

可验证性是易于准备验收程序,特别是测试数据,以及在验证和操作阶段检测故障并跟踪错误的程序。

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

可修复性是有助于修复缺陷的能力。

经济性是时间性的伴侣,是一种系统在其分配的预算中完成或低于其能力的能力。

 

2)内部质量因素

源代码相关的因素,如代码行(LOC)、圈复杂度等

构造相关因素如耦合、衔接等

 

3)质量属性之间的权衡

虽然需要折中,但“正确性”绝不能与其他质量因素折中

最重要的几个质量因素

正确性和健壮性:可靠性

可扩展性与可重用性:模块性

 

OOP如何提高质量:

正确性:封装、分散化

健壮性:封装、错误处理

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

可重用性:模块性、组件、模型、模式兼容性:标准化模块和接口

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

易用性:GUI组件、框架

效率:可重用组件,

时效性:建模、重用

性能:再利用

功能性:可扩展性

 

二、软件建设的五大质量目标

高雅优美的代码 -> 易懂

面向重用的开发 -> 廉价开发

低复杂度 -> 易于更改,易于扩展

稳健性与正确性 -> 安全漏洞,不易出错

性能与效率 -> 高效运行

猜你喜欢

转载自blog.csdn.net/qq_38417860/article/details/80765230