软件构造 2ol9

一章

软件构造的多维度视图

在这里插入图片描述

  1. Code-level 代码的逻辑组织
  2. Component-level 代码的物理组织
  3. Moment view 指特定时刻的软件形态;
  4. Period view 指软件形态随时间的变化

动态链接:

库文件不会在build阶段被加入可执行软件,仅仅做出标记
程序运行时,根据标记装载库至内存
发布软件时,将程序所依赖的所有动态库都复制给用户

1.不用重新创建可执行文件,就可以把依赖库更新到更新的版本
2.操作系统可以优化内存使用,只将库的一个副本加载到内存中,然后与其他需要相同库的程序共享它

Snapshot diagram(
代码快照图:描述程序运行时内存里变量层面的状态

软件构造的质量指标

软件系统的质量指标包括:外部质量因素和内部质量因素。

外部质量因素:使用是否简易,速度性能是否优秀等,其影响到

的是用户。而内部质量因素影响到的是软件本身和开发者。

外部质量因素的种类:
(1) 正确性(correctness)。
关注有关软件是否按照预先定义 的“规约”执行。是至高无上的质量指标。

a. 在软件系统中进行分层,每一层都保证自己的正确性,同时假

设其下层是正确的。其与可复用性密切关联。

b. 测试和调试,发现不正确,消除不正确。这与健壮性密切关联

c. 防御性编程,在写程序时就确保正确性。其与健壮性相关。

d. 形式化方法:通过形式化验证发现问题。可通过形式语言

(2) 健壮性(Robustness)。针对异常情况进行处理。
-健壮性是对正确性的补充:正确性要求软件的行为要严格地符合

规约中定义的行为。而健壮性要求在出现规约定义之外情形的时

候,软件要做出恰当的反应。

在程序出现异常时,健壮性要保证程序不“崩溃”。

这就关系到后续学习的异常处理机制。

健壮性所言的“正常”与“不正常”是主观的而非客观的。

- 未被规约覆盖的情况即为“异常情况”

(3) 可扩展性(Extendibility)。

关注的是:对软件的规约进行修改,是否足够容易。

软件系统的规模越大,扩展起来越不容易。当传统的方法不足以

解决新的,变化的问题时,就要考虑对其进行扩展。

增强可扩展性的两个原则:

a.    简约主义设计(Design simplicity)。

b.    分离主义设计(Decentralization)。

(4) 可复用性(Reusability)关注的是:

关注的是:软件内容一次开发,多次使用,而适用于不同应用的能力。要从不同软件系统中发

现共性,提取共性。

(5) 兼容性(Compatibility)。

关注的是:不同软件系统之间的相互可容易的集成。一个软件系统的开发不可能实在真空中进行

的,其与其他系统一定存在交互和关联。

要保证兼容性,就要保持设计的同构性,即要进行标准化:

a.    标准化文件格式。

b.    标准化数据结构。

c.    标准化用户交互。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值