软件构造的多维视图
从三个维度看软件系统构成
按阶段划分:构造时视图/运行时视图
按动态性划分:时刻视图/阶段视图
按构造对象的层次划分: 代码视图/构件视图
软件构造的质量目标
内部因素与外部因素
外部质量因素影响用户
内部质量因素影响软件本身与开发者
外部质量取决于内部质量
外部质量因素
正确性
最重要的质量指标,要按照预先定义的规约执行
- 测试与调试:发现不正确,消除不正确
- 防御式编程:在写程序时就确保正确
- 形式化方法:通过形式化验证发现问题
健壮性
针对异常情况的处理,是对正确性的补充
- 当出现规约之外的行为软件要做出恰当的反应
- 未被规约覆盖的情况即为异常情况
拓展性
对软件规约修改是否足够容易
- 规模越大拓展起来越不容易
- 拓展的目的:应对变化
- 提升可拓展性方法:简约主义设计与分离主义设计
可复用性
一次开发多次使用
兼容性
不同软件系统之间相互可容易的集成
- 难点:不同软件有不同的设定
- 关键:保持设计同构性,使软件通信标准一致
性能
- 要在保证正确性的情况下追求性能
- 对性能的关注要与其他质量属性折中
- 过度的优化导致软件不再适应变化与复用
可移植性
软件方便地在不同技术环境间移植(硬件与软件)
易用性
容易学习,安装,操作,监控
- 给用户提供详细的指南
- 结构简单
- 了解用户
功能
功能是系统提供的可能想的范围
程序设计中一种不适宜的趋势:软件开发者增加越来越多的功能,企图跟上竞争,其结果是程序极为复杂,不灵活,占用过多的磁盘空间
不能在可靠性与可拓展性上妥协
除非对现有的功能达到满意,否则不要使用新的功能
及时性
在用户需要它之前发布的能力
优秀的软件发布得晚可能错过目标
其他的质量特性
- 可验证性
- 完整性
- 可修复性
- 经济性
内部质量因素
- 源代码相关因素
- 框架相关因素
- 可读性
- 可理解性
- 清晰度
- 大小
在质量因素间的折中
- Integrity vs. ease of use
- Economy vs. functionality
- Efficiency vs. portability
- Efficiency vs. reusability
- Economy vs. reusability
- Timeliness vs. extendibility
正确的软件开发过中,开发者应该将不同质量因素间如何折中的设计决策和标准明确写出
虽然需要折中但是正确性绝不能与其他因素折中
最重要的几个质量因素
- 正确性与健壮性:可靠性
- 可拓展性与可复用性:模块化
软件构造的五个关键质量目标
- 简洁漂亮的代码> 容易理解,可理解性
- 可复用设计> 开发成本低,可复用性
- 低复杂性 > 为了该边做准备,容易拓展,可维护与兼容性
- 健壮性与正确性 > 安全无bug,不易出错,正确性
- 性能与效率:高效运行,性能
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!