从多维度看软件

- Code Churn指的是代码变化
Code churn is when a developer changes code during a specified period.
- Code Snapshot
一种图, 反映了运行某一时刻的各变量或对象的状态以及变化情况; 其中箭头代表引用, 由变量名指向引用地址
基本表示方法:
-
基本数据类型的表示

箭头直接指向基本数据类型的值 -
对象数据类型的表示
对于mutable类型的对象:箭头指向一个单圆圈,圆圈里是对象成员变量的情况

可变数据类型变化时,直接改变地址中的值, 不改变引用
如图所示:

对于immutable类型的对象:箭头指向一个双圆圈,圆圈里是对象成员变量的情况

对于immutable类型的变量,只能改变引用,不能改变原来地址里的值
举个例子:
String为immutable类型的Object type(对象数据类型)
先令String s =“a” 再令s =“ab"的过程中改变了地址的值, 并未改变原来的"a”
如下图所示:

- 一些常见集合类的表示
- list的表示 有序号

- set的表示 无序号

- map的表示

- list的表示 有序号
- AST 抽象语法树
外部质量因素
- 正确性
- 健壮性
- 兼容性? Compatibility 保持设计的同构性
- 可扩展性
- 可复用性
- 效率
- 可移植性
- 易于使用
- 功能性
- 及时性
…
内部质量因素
- LOC(Lines of Code)
- Cyclomatic Complexity 圈复杂度
- coupling cohesion
- readability
- understandability
- clearness
- size
tradeoff between quality properties
| 1 | 2 |
|---|---|
| Economy | functionality |
| Efficiency | portability |
| Efficiency | reusability |
| Economy | reusability |
| Timeliness | extendibility |
本文探讨了软件开发中CodeChurn的概念,即开发者在特定时间段内对代码的修改。同时介绍了CodeSnapshot,这是一种用于展示程序运行时变量和对象状态的图形表示。对于可变和不可变对象,文章详细阐述了它们在CodeSnapshot中的区别。此外,还涉及了抽象语法树(AST)在理解代码结构中的作用。文章最后讨论了软件的内外部质量因素,如正确性、效率、可扩展性和可读性,并分析了这些质量属性之间的权衡关系。

被折叠的 条评论
为什么被折叠?



