文章目录
前言
2021年哈工大软件构造blog1
一、多维度视图
按阶段划分:build-time / run-time
按动态性划分:moment / period
构造对象的层次划分:code / component
1.build time views
- code-level view: functions \classes\methods\interfaces(代码逻辑组织)
- component-level view: file \directories\packages\libraries (代码物理组织)
Static linking :库被拷贝进代码形成整体,执行的时候无需提供库文件(build time)
4)build time ,period, component-level view
versioning
版本控制是给计算机软件的不同的状态分配唯一的名字或者编号的过程。
2. runtime views
(runtime就是运行,程序被载入目标机器,开始执行。)
以下是在各种视图(views)中的含义
- code-level :逻辑实体在内存中如何呈现?(in-memory states)
- component-level :物理实体在物理硬件环境中如何呈现?(physical environment)
- moment:逻辑/物理实体在内存/硬件中特定时刻的形态。
- period :逻辑/物理实体在内存和/硬件中随时间如何变化。
dynamic linking :动态链接
二、质量特性
外部质量取决于内部质量。
1.外部质量
外部质量因素影响用户
- 正确性(最重要的质量指标)⭐️
(软件的行为要严格符合规约中的定义的行为)
以下为维护正确性的方法:
测试和调试
防御式编程
形式化方法 - 健壮性(针对异常情况的处理)⭐️
(出现规约定义之外的情形,软件要做出恰当的反应) - 可扩展性(应对变化)⭐️
- 可复用性(一次开发,多次使用)⭐️
- 兼容性(标准化很重要)⭐️
- 性能(绝不能过早优化)
- 可移植性
(软件可方便在不同的技术环境之间移植) - 易用性(易学、易用)
- 功能性
(要确保其他质量属性不受到损失) - 及时性
- 可验证性
- 完整性
- ……
2.内部质量
内部质量因素影响软件本身和它的开发者。
- 可读性
- 可理解性
- 简洁
- 大小
3.内外的折中
不同质量因素需要做出这种,但是“正确性”绝不能妥协。
三、软件构造五大质量目标
- Easy to understand:易于理解
- Cheap for develop:开发成本低
- Ready for change:随时拥抱变化
- Safe from bugs: 正确
- Efficient to run:运行效率