2021哈工大软件构造博客1

本文是2021年哈工大软件构造的博客,探讨了软件构造的多维度视图,包括build time views和runtime views,详细解释了版本控制、动态链接等概念。同时,深入分析了软件的质量特性,分为外部质量和内部质量,强调了正确性、健壮性、可扩展性和可复用性等关键指标,并探讨了内外质量的折衷策略。最后,提到了软件构造的五大质量目标——易理解、低成本、可变性、无bug和高效运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

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:运行效率
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值