哈工大2021软件构造复习心得1(Chapter 1)

本文探讨了软件开发中CodeChurn的概念,即开发者在特定时间段内对代码的修改。同时介绍了CodeSnapshot,这是一种用于展示程序运行时变量和对象状态的图形表示。对于可变和不可变对象,文章详细阐述了它们在CodeSnapshot中的区别。此外,还涉及了抽象语法树(AST)在理解代码结构中的作用。文章最后讨论了软件的内外部质量因素,如正确性、效率、可扩展性和可读性,并分析了这些质量属性之间的权衡关系。

从多维度看软件

在这里插入图片描述

  1. Code Churn指的是代码变化

Code churn is when a developer changes code during a specified period.

  1. Code Snapshot

一种图, 反映了运行某一时刻的各变量或对象的状态以及变化情况; 其中箭头代表引用, 由变量名指向引用地址

基本表示方法:

  • 基本数据类型的表示
    在这里插入图片描述
    箭头直接指向基本数据类型的值

  • 对象数据类型的表示

对于mutable类型的对象:箭头指向一个单圆圈,圆圈里是对象成员变量的情况
在这里插入图片描述
可变数据类型变化时,直接改变地址中的值, 不改变引用
如图所示:
在这里插入图片描述
对于immutable类型的对象:箭头指向一个双圆圈,圆圈里是对象成员变量的情况
在这里插入图片描述
对于immutable类型的变量,只能改变引用,不能改变原来地址里的值

举个例子:
String为immutable类型的Object type(对象数据类型)
先令String s =“a” 再令s =“ab"的过程中改变了地址的值, 并未改变原来的"a”
如下图所示:
在这里插入图片描述

  • 一些常见集合类的表示
    • list的表示 有序号
      在这里插入图片描述
    • set的表示 无序号
      在这里插入图片描述
    • map的表示
      在这里插入图片描述
  1. AST 抽象语法树

外部质量因素

  1. 正确性
  2. 健壮性
  3. 兼容性? Compatibility 保持设计的同构性
  4. 可扩展性
  5. 可复用性
  6. 效率
  7. 可移植性
  8. 易于使用
  9. 功能性
  10. 及时性

内部质量因素

  1. LOC(Lines of Code)
  2. Cyclomatic Complexity 圈复杂度
  3. coupling cohesion
  4. readability
  5. understandability
  6. clearness
  7. size

tradeoff between quality properties

12
Economyfunctionality
Efficiencyportability
Efficiencyreusability
Economyreusability
Timelinessextendibility
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值