(二)软件构造的质量目标

软件构造的五个主要目标
  • easy to understand:elegant and beautiful code/understandability
  • Ready for change:maintainability and adaptability
  • Cheap for develop:design for/with reuse:reusability
  • Safe from bugs:robustness
  • Efficient to run:performance
软件的质量因素分为外部质量因素和内部质量因素
  • 对用户来讲,易于使用,这是外部因素
  • 对于程序员来讲,软件的模块化,代码可读性,是内部因素
  • 内部因素是最重要的,外部质量取决于内部质量
软件的内部质量因素
  • Correctness
    保证措施:
    1.Testing and debugging
    2.Defensive programming such as typing and assertion
    3.Formal approch:数学方法
  • Robustness
    1.保证出现abnormal时程序不会崩溃,而是优雅的提示信息
    2.normal or abnormal取决于specification的范畴
  • Extendibility
    保证措施
    1.Design simplicity,越复杂的软件越难扩展
    2.Decentralizaton,模块化设计
  • Reusability
  • Compatibility(兼容性)
    主要是操作系统不同带来的问题,jvm有效地解决了这个问题
  • Efficiency
    1.效率是指软件系统对硬件资源要求越少越好,如处理器时间、内外存 占用空间,设备通信使用的带宽等
    2.过度的优化使得软件非常专门化,不适合更改和重用
  • portability(可移植性)
    软件可方便的在不同的技术环境之间移植
  • Ease of use
    容易学、安装、操作、监控
  • Functionality
    程序设计中一种不适宜的趋势,即软件开发者增加越来越多的功能,企图跟上竞争,其结果是程序极为发咋、不灵活、占用过多的磁盘空间。
    我们要保证保证跟进功能性的同时保持其他质量因素
    在这里插入图片描述
  • Timeliness(及时性)
    我们要保证软件能够及时发布
内部质量因素
  • 源代码相关的质量因素
    代码行数(Lines of Codes,LOC)
    圈复杂度(Cyclomatic Complexity)
  • 体系结构相关的质量因素
    耦合和内聚
外部和内部质量因素的妥协

在实践中体会吧qaq

部分课堂互动

内部因素的圈复杂度:
在这里插入图片描述
画一个算法流程图(图结构),看有几个圈,圈复杂度高,程序的复杂度一定高,最小的圈复杂度是1
耦合度无法避免

  • 健壮性和正确性有什么区别?
    在这里插入图片描述
    范围之内认为是正常的情况,按照spec的规定,健壮性是针对spec之外的是,正确性是针对spec之内的事。如果没有满足规格说明,软件要有恰当的说明。
    在这里插入图片描述要先保证正确性
    在这里插入图片描述测试用例越多(全面性)–>测试花费的时间多,效率低
    eg.加密算法,影响性能。安全性和性能之间的冲突
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值