天天看點

哈工大2021軟體構造複習心得1(Chapter 1)

從多元度看軟體

哈工大2021軟體構造複習心得1(Chapter 1)
  1. Code Churn指的是代碼變化

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

  1. Code Snapshot

一種圖, 反映了運作某一時刻的各變量或對象的狀态以及變化情況; 其中箭頭代表引用, 由變量名指向引用位址

基本表示方法:

  • 基本資料類型的表示
    哈工大2021軟體構造複習心得1(Chapter 1)
    箭頭直接指向基本資料類型的值
  • 對象資料類型的表示

對于mutable類型的對象:箭頭指向一個單圓圈,圓圈裡是對象成員變量的情況

哈工大2021軟體構造複習心得1(Chapter 1)

可變資料類型變化時,直接改變位址中的值, 不改變引用

如圖所示:

哈工大2021軟體構造複習心得1(Chapter 1)

對于immutable類型的對象:箭頭指向一個雙圓圈,圓圈裡是對象成員變量的情況

哈工大2021軟體構造複習心得1(Chapter 1)

對于immutable類型的變量,隻能改變引用,不能改變原來位址裡的值

舉個例子:

String為immutable類型的Object type(對象資料類型)

先令String s =“a” 再令s =“ab"的過程中改變了位址的值, 并未改變原來的"a”

如下圖所示:

哈工大2021軟體構造複習心得1(Chapter 1)
  • 一些常見集合類的表示
    • list的表示 有序号
      哈工大2021軟體構造複習心得1(Chapter 1)
    • set的表示 無序号
      哈工大2021軟體構造複習心得1(Chapter 1)
    • map的表示
      哈工大2021軟體構造複習心得1(Chapter 1)
  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

1 2
Economy functionality
Efficiency portability
Efficiency reusability
Economy reusability
Timeliness extendibility