1-2 软件构造的质量目标

本文深入探讨软件质量的十个核心外部因素:正确性、鲁棒性、易扩展性、复用性、兼容性、效率、可移植性、易用性、功能性及时效性,并解析其对软件开发的影响。同时,阐述了内部质量因素如代码行数、圈复杂度等对软件质量的作用。
摘要由CSDN通过智能技术生成

本节框架:

在这里插入图片描述
外部质量因素是非开发人员的,是使用者的感受,例如图形界面是否友好,使用是否方便;内部因素由开发人员控制,内部因素影响外部因素。

外部因素

主要的外部因素如下,下逐一说明:
在这里插入图片描述

1、正确性:是需要首要保证的。是相对的概念,有条件的,规约之内,符合软件规格说明书,假定一个软件系统是分层开发的,每层都要确保自己层和自己的低层是正确的,亦即确保每层都是正确的。保证正确性的方法:形式化开发、测试改错。
2、健壮性(鲁棒性):是软件对异常情况做出适当反应的能力,表现在规格之外,可能规格说明书并没有详细说明。健壮性就是要让这些异常情况不产生灾难性的后果。考虑边界范围,若某些灾难的事情发生了,将后果降到最低。判断情况是否异常不取决于客观条件,而取决于软件的规格说明书。
3、易扩展性:指软件易于调整以适应变化的能力,在开发和使用过程中可能会有很多新的要求,这些要求可能在规格说明书中没有。需要改的话,改那个地方?改了会不会影响其他功能?规模越大越难扩展,而软件是易变的。怎么让软件易扩展?体系结构简单、使模块自治性强,变化时对其他模块影响小。第三章、第六章。
4、复用性:使开发更便宜,软件开发中经常遇到一些相似的模式,利用共性,避免重复实现。可复用性———可复用价值。第五章。
5、兼容性:软件的一些元素和其他的元素可以混合使用。设计的一致性、标准化是解决兼容性的关键,通过协议来实现更通用的兼容性。
6、效率:效率是软件对硬件资源尽可能少的需求的能力。平衡一些其他的目标,第八章。
7、可移植性:可移植性是指便于将软件产品转移到各种硬件和软件环境。
8、易用性:用户可以轻松掌握软件的使用,包括安装、运行和监控的容易度。结构简洁、换位思考,站在用户的角度设计软件。
9、功能性:软件的功能会越来越多,影响易用性、一致性,要在保证正确性和质量的情况下提升功能性。集中实现主要功能。功能增加要确保其他质量属性不下降。
10、时效性,可验证性,完整性(软件保护各组件不受未经授权的访问和修改)

内部质量因素

内部质量因素通常用作外部质量因素的部分度量。
例如代码行数、圈复杂度、高内聚低耦合(独立性)、可读性(容易理解)、复杂度、大小等。

权衡:

有些因素之间互相影响,或者矛盾或者相关。做决策,不同的条件环境不同。正确性一定是最重要的。
在这里插入图片描述
正确性和鲁棒性是相互依赖的:在这里插入图片描述
可扩展性和复用性:模块化
在这里插入图片描述

五个主要的质量标准

代码可理解,第四章
可复用性,第五章
可扩展性,第六章
鲁棒性,第七章
效率,第三章

一些示例:

操作系统:
航空航天、工业控制软件:正确性、鲁棒性、性能
社交软件:易用性
游戏软件:性能
面向儿童的教学软件:鲁棒性、易用性
面向老人的智能家居软件:易用性
Chrome、Firefox浏览器:可扩展性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值