從多元度看軟體
- 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的表示
- 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 |