02软件系统的质量目标
外部质量特性和内部质量特性
外部
用户使用关注点
正确性
最重要的质量目标
按照规约执行就可以:个人理解为将需求分析后满足软件开发的规约
测试和调试:debug
防御式编程:写程序的时候就保证正确性
形式化方法:一般不实用
健壮性
针对异常情况的处理,是对正确性的补充
优雅的对错误输入加以反应:不崩溃,优雅的推出或者提示
可扩展性
规约修改是否容易
规模越大扩展越不容易,所以在一开始就要应对变化
简约主义设计、分离主义设计(高内聚低耦合)
可复用性
一次开发多次应用,降低开发成本
兼容性,不同软件系统之间可以容易集成
不同软件可能有不同的设定和规定
保持设计的同构性,标准化:专利的抢注,华为、谷歌
文件形式、数据结构、界面风格
性能
建立在正确性的基础上,而且要与质量属性折中,适度优化,否则可能导致不能适应可复用性
可移植性
跨硬件跨操作系统
易用性
易于安装使用,面对更多的用户,个人思考:这是图形化界面的要求,未来是否有可能改变这种图形化界面的应用开发情况,而是可以选择针对性满足需求AI
功能性
增加功能,在质量属性没有下降的同时可以考虑功能性的增加
及时性
有随时满足需求,讲需求落地的能力
其他
可验证性
完整性
可修复性
经济性
内部
程序员关注
代码的行数LOC
评判软件的复杂性,虽然不太准确
体结构:耦合度、内聚
可读性、整洁性
关系
外部质量特性更重要但是内部往往决定外部的质量特性
折中的选取
明确选取折中的因素,其中正确性是第一要素