软件构造之质量目标

一、软件构造中的三维视图

如上所示的三维度八视图是软件构造过程中的重要概念,它从时刻和时段,编译和运行,代码和构件三个软件编码的不同维度进行分析,探讨划分了其中八个视图的作用和意义。实际上软件构造的过程也就是这八个视图不断转化的过程。

(1) Build-time, moment, and code-level view 关注的是源码的组织情况,可在词汇(源码)、语法(抽象语法树)、语义(类图)三个层面分别分析。
(2) Build-time, period, and code-level view 关注的是代码的变化(Code churn代码变化)
(3) Build-time, moment, and component-level view 关注的是包/库,而且是静态链接库
(4) Build-time, period, and component-level view 关注代码的更迭,与(2)中不同的是,这个维度下更关注文件版本的变化,而不是具体语句的变化(2中关注的是哪一行代码被修改了)----VCS的引出
(5) Run-time, moment, and code-level view 关注的是程序在某个时间点内存中的情况,如代码快照图(Code Snapshot)、内存信息转储(Memory dump)。
(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.    外部质量因素的种类:
(1) 正确性(correctness)。关注有关软件是否按照预先定义的“规约”执行。是至高无上的质量指标。
   确保正确性的方法:
    a. 在软件系统中进行分层,每一层都保证自己的正确性,同时假设其下层是正确的。其与可复用性密切关联。
    b. 测试和调试,发现不正确,消除不正确。这与健壮性密切关联
    c. 防御性编程,在写程序时就确保正确性。其与健壮性相关。
    d. 形式化方法:通过形式化验证发现问题。可通过形式语言(研究生课程)来保证这一点。
(2) 健壮性(Robustness)针对异常情况进行处理。-健壮性是对正确性的补充:正确性要求软件的行为要严格地符合规约中定义的行为。而健壮性要求在出现规约定义之外情形的时候,软件要做出恰当的反应。在程序出现异常时,健壮性要保证程序不“崩溃”。 这就关系到后续学习的异常处理机制。健壮性所言的“正常”与“不正常”是主观的而非客观的。 未被规约覆盖的情况即为“异常情况” - 所谓的"异常",取决于spec的范畴
(3) 可扩展性(Extendibility)。关注的是:对软件的规约进行修改,是否足够容易。软件系统的规模越大,扩展起来越不容易。当传统的方法不足以解决新的,变化的问题时,就要考虑对其进行扩展。增强可扩展性的两个原则:
    a.    简约主义设计(Design simplicity)。
    b.    分离主义设计(Decentralization)。
(4) 可复用性(Reusability)。关注的是:软件内容一次开发,多次使用,而适用于不同应用的能力。要从不同软件系统中发现共性,提取共性。

(5) 兼容性(Compatibility)。关注的是:不同软件系统之间的相互可容易的集成。一个软件系统的开发不可能实在真空中进行的,其与其他系统一定存在交互和关联。要保证兼容性,就要保持设计的同构性,即要进行标准化:
    a.    标准化文件格式。
    b.    标准化数据结构。
    c.    标准化用户交互。
(6) 性能(Efficiency)。例如:软件系统占用的时间,空间(例如内部与外部存储,以及设备之间交流的带宽)。这些都可以度量软件系统的性能指标。

三、总结

软件系统的质量属性:

内部、外部质量因素
重要的外部质量因素
质量因素间的折中
软件构造的五个关键目标:易于理解、易于改变、开发成本低、避免BUG、高效运行

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值