软件构造的质量目标(2020一小题)

软件构造五个质量目标:1、易理解 2、变化 3、复用性(开发便宜) 4、健壮性 5、运行效率,尽可能使每个因素达到最优

软件系统系统因素:外部质量因素、内部质量因素(考试区分内外部质量目标)

外部质量因素:非开发人员(用户)的感受,比如图形界面、使用是否方便,主要影响用户

内部质量因素:软件开发,程序员的感受,如程序的复杂度,影响软件本身和它的开发者

内因影响外因:外部质量目标取决于内部质量

外部因素:1、正确性:(首要)正确是有条件的。首先:软件分层,底层为上层服务,每层都要确保自己是正确的,同时确保其调用的低层也是正确的;其次,按照预先定义的规约执行,即输入正确时,输出也应是相应的正确的输出

怎样保证程序的正确性:测试与调试、防御式编程、形式化方法

2、鲁棒性\健壮性:(规格之外的,不在说明书中的)软件系统对异常情况做出适当反应的能力,即出现异常时,程序不崩溃,对程序进行正确性的补充如边界判断

怎样判断异常:取决于程序的规格说明,异常是规格说明中没说的

3、易扩展性:软件易于调整以适应变化的能力,对软件的规约进行修改

可扩展性与软件规模密切相关,软件规模越大,越难以扩展。

怎样优化可扩展性:简约主义设计(简单的体系结构)、分离主义设计(离散化,模块自治性强,变化时对其他模块影响较小)

4、复用性:软件经常遇到相似的模式,利用共性,一次开发,多次使用

5、兼容性:软件的某些元素之间可以混合使用,不同软件系统之间相互可以容易的集成

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

怎样提高兼容性:标准化,通过协议来保持软件的同构性

6、效率:软件系统对硬件资源(时间和存储空间,存储空间不考)尽可能少的需求。效率通常排在正确性之后,有时也在延展性、复用性之后

7、可移植性:便于将软件产品转移到各种硬件和软件环境(对考试不太重要)

8、易用性:用户可以轻松掌握软件的使用,包括安装、运行、监控的容易度(对考试不太重要)

怎样提高易用性:结构简洁;理解用户,换位思考。站在用户的角度设计软件;统一标准

9、功能性:软件开发者增加功能,影响一致性、易用性

要在质量提升技术的帮助下,在整个项目中,保持质量水平不变,而不仅仅是功能性,每增加一点点功能,保证质量不变

10、时效性:开发有效期,时间资金有限

11、其他:容易验证;完整性(保证程序和数据免受未经授权的访问和修改能力);可修复性;经济性(预算范围内)

内部因素:复杂度:代码行数、可读性、可理解性、程序大小、注释

圈复杂度(LOC):用来衡量一个模块判定结构的复杂程度

低耦合:模块间的交互

高内聚:模块独立性

可读性:易理解,复杂度小

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

对于不同质量目标之间的冲突,要权衡/折中/妥协,但正确性不能被折中

相互的制约的因素:经济性—功能性、有效性—轻便型、复用性—时效性、时效性—可扩展性、集成—易用、实用—有效—轻便

关键要可靠:即要保证正确性于健壮性,这就需要我们更系统化的软件构造;更正式的规格贯穿与软件构造过程的内建检查机制;更好的语言机制(静态、类型、断言、自动内存管理和科学的异常管理)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值