目录
一、多维度视图
Moment维度关注特定时刻的软件形态,而Period关注的是软件形态随时间的变化。
Build-time维度关注程序还未被投入运行,编码阶段的表现,而Run-time维度更关注于程序运行时的表现;
Code-level维度关注代码的逻辑组织而Component-level维度关注代码的物理组织.
(1) Build-time, moment, and code-level view 分析源代码是如何组织的,可以在词汇层面、语义层面、语法层面分析
(2) Build-time, period, and code-level view 分析代码的变化
(3) Build-time, moment, and component-level view 更倾向于关注包和库
(4) Build-time, period, and component-level view 关注各项软件实体随时间如何变化
(5)Run-time, moment, and code-level view 关注程序的内存信息转储
(6) Run-time, period and code-level view 记录程序执行的调用次序
(7) Run-time, moment, and component-level view 关注代码执行中的包和库
(8) Run-time, period, and component-level view 使用日志查看系统的情况
二、软件系统的质量特性
1.外部质量(外部质量因素影响用户)
正确性:最重要的质量指标,软件的行为要严格的符合规约中定义的行为
测试和调试:发现不正确、消除不正确
防御式编程:在写程序的时候就确保正确性
形式化方法:通过形式化验证发现问
健壮性: 针对异常情况的处理,出现规约定义之外的情形的时候,软件要做出恰当的反应
健壮性是对正确性的补充
可性展性:为什么要扩展 :应对变化
规模越大,扩展起来越不容易
可复用性:一次开发,多次使用
兼容性:不同的软件系统之间相互可容易的集成
性能:性能毫无意义,除非有足够的正确性
可移植性:软件可方便的在不同的技术环境之间移植
易用性:容易学、安装、操作、监控
功能性:程序设计中一种不适宜的趋势,即软件开发者增加越来越多的功能,企图跟上竞争,其结果是程序极为复杂、不灵活、占用过多的磁盘空间
及时性
可验证性
完整性
可修复性
经济性
2.内部质量
可读性
可理解性
清晰
大小
3.质量属性之间的权衡
不同质量因素需要做出这种,但是“正确性”绝不能妥协。
三、软件构造的五个关键质量目标
易于理解
开发成本低
易于扩展
不易出现漏洞
高效运行