我最近在我的C++代碼庫上運行了CCCC,並且收到了不少紅色標記(可在鏈接中看到一個樣本output of CCCC on a code base (not my code base))。我明白,紅色標記可能是由於一個基本的複雜性或意外的複雜性,但CCCC不區分這兩者。我最擔心的是我的代碼庫中的模塊性度量值「Henry and Kafura's information flow complexity」,它有很多紅色標記。是否有任何工作描述了減少紅色標記數量的工作流程建議或處方?改進軟件度量標準?
4
A
回答
0
通過改進代碼來改進度量。這將是最有用和最普遍適用的方法,海事組織。
您要做的最後一件事是通過某種過濾來屏蔽指標。沒有什麼比浪費時間的統計數字更浪費時間了。
明智地使用它們,但不要讓它成爲你的宗教。有幾個紅印
編輯生活,如果你真的想打擊「他們紅旗」,最通用的adiec我能想到的:
- 使方法小
- 組參數對象中的參數
當然,這不會治癒孤立連接的模塊,還有什麼可能是錯誤的,但它肯定是一個惡作劇d開始'擴大'/'稀釋'信息的複雜性一般
5
這些紅色標記是預期的,因爲涉及的類。
string
和ostream
都有高扇入,但是沒有扇出。這意味着您正在將數據放入字符串中,或將數據發送到ostreams。使用string
的16個模塊並非不合理,也不是使用ostream
的16個模塊。
您的CDistribution模塊具有適度的扇入和扇出,這意味着多個模塊向其發送數據,並且多個模塊從其接收數據。大概這就是爲什麼它被稱爲CDistributor的原因,因爲它將模塊中的某些內容分發給其他模塊,而無需直接瞭解彼此。大概這是設計。
您可以通過擺脫體系結構並讓模塊直接互相調用來刪除CDistribution的紅色標記!當然,這不是一個嚴肅的建議。您的體系結構看起來很合理,只有CD分佈上有紅色標記表明您已將所有這些依賴關係壓縮到一個明確定義的位置,這是件好事。
至於刪除string
和ostream
的紅色標記,您必須減少對這些類的依賴性,但它們是基礎類。想象一下,全球整數運算符「fan-in」有多大?有些東西只是被大量使用,而這就是你所看到的。
相關問題
- 1. 軟件複雜度度量標準的綜合研究
- 2. 計算PHP項目的軟件度量標準
- 3. 函數指向kloc比率作爲軟件度量標準...「調整名稱」度量標準?
- 4. 軟件版本標準
- 5. 軟件比較標準
- 6. 度量標準(Eclipse插件)不顯示
- 7. Logstash度量標準事件率示例
- 8. SURF的度量標準
- 9. Hadoop度量標準問題
- 10. SQL Server度量標準
- 11. 單獨編程中使用的軟件度量標準是什麼?
- 12. 「業務」軟件度量
- 13. 一些軟件度量
- 14. 圖像清晰度度量標準
- 15. 是否有調度任務的標準軟件?
- 16. 爲什麼度量標準實現需要性能度量標準庫?
- 17. 軟件功能測試標準
- 18. 更換Golang標準軟件包並在
- 19. 智能軟件程序的標準
- 20. 嵌入式軟件的Misra標準
- 21. 使用石英濾鏡更改標準進度條的顏色
- 22. 軟件質量指標
- 23. 使用OR運算符進行石墨度量標準搜索
- 24. Silverlight的非標準進度條
- 25. 如何計算CVSS標準中的影響度量標準
- 26. 複雜性度量標準是否改變?
- 27. 如何擴展cassandra的度量標準
- 28. ELK度量標準連接錯誤
- 29. C#ASP.NET 2.0度量標準儀表板
- 30. 度量標準elasticsearch成功的請求
「抑制重用」:|嚴重的是,我不能重視一個工具,結論'std :: string'不可重用,因爲它使用了很多(!) – MSalters 2012-04-02 12:02:27
恕我直言指標不應該被認爲是絕對的,但它們對於比較是有用的。如果到處都是紅色,例如引入CDistribution可能會將紅色移動到一個明確定義的位置。所以你可以通過查看指標來告訴你改進了一些東西。但是靜態指標本身並沒有告訴你,你的程序是「好」還是「壞」。他們只是告訴你有關該計劃的事實,這是由你來解釋。 – 2012-04-02 12:08:20
如果您不知道這是一種積極還是消極的措施,您如何比較4和5?或者更糟糕的是,這種測量有時很好,有時甚至不好 - 像這樣?事實太容易了,因此便宜。洞察力是有價值的,'std :: string'示例顯示這個工具沒有很多。 – MSalters 2012-04-02 12:15:34