VS2010中的計算程式碼度量值
關於該功能及幾個指標的具體介紹,請參考下面的官方文件
程式碼度量是一組軟體度量值,使開發人員可以更好地瞭解他們正在開發的程式碼。利用程式碼度量,開發人員可以瞭解哪些型別和/或方法應該返工或進行更徹底的測試。開發團隊可以識別潛在的風險、瞭解專案的當前狀態,並跟蹤軟體開發的進度。
軟體度量值
下面的列表顯示了 Visual Studio 計算的程式碼度量結果:
-
可維護性指數 – 計算一個介於 0 和 100 之間的指數值,表示維護程式碼的相對容易度。值越大表示可維護性越好。該計算基於 Halstead Volume、圈複雜度和程式碼的行數。按顏色標記的等級可用於迅速發現程式碼中的故障點。綠色等級介於 20 和 100 之間,表示程式碼的可維護性良好。黃色等級介於 10 和 19 之間,表示程式碼的可維護性中等。紅色等級是介於 0 和 9 之間的等級,表示可維護性低。
-
圈複雜度 – 衡量程式碼在結構上的複雜程度。它通過計算程式流中的不同程式碼路徑的數目(例如 if 塊、switch case 以及 do、while、foreach 和 for 迴圈),然後在總數中加 1 來建立。具有複雜控制流的程式需要更多單元測試才能實現良好的程式碼覆蓋率,並且不容易維護。
-
繼承深度 – 指明擴充套件到類層次結構根的類定義的數目。層次結構越深,則越難了解特定方法和欄位是在何處定義或/和重新定義的。在類級別,該數目是通過計算繼承樹中從 0 開始的型別之上的型別數目(不包括介面)來建立的。在名稱空間和專案級別,該計算包括名稱空間或專案內所有型別的最高繼承深度計算。
-
類耦合 – 通過引數、區域性變數、返回型別、方法呼叫、泛型或模板例項化、基類、介面實現、在外部型別上定義的欄位以及屬性修飾來衡量與唯一類的耦合程度。該計算不包括基元型別和內建型別,例如 int32、字串和物件。良好的軟體設計要求型別和方法應具有較高的內聚力和較低的耦合。耦合較高表示設計難以重用和維護,這是因為它與其他型別之間存在許多依存關係。
-
程式碼的行數 – 指明程式碼中的大概行數。該計數基於 IL 程式碼,因此並不是原始碼檔案中的確切行數。該計算不包括空白、註釋、括號以及成員、型別和名稱空間的宣告。計數過高可能表示某個型別或方法正在嘗試執行過多的工作,應予以拆分。還可能表示該型別或方法難以維護
相關推薦
.NET : 在VS2008中計算程式碼度量值
從VS2008開始,有一個新的工具可以幫助開發人員更好地瞭解自己編寫的程式碼。這個工具就是“計算程式碼度量值” 關於該功能及幾個指標的具體介紹,請參考下面的官方文件 程式碼度量是一組軟體度量值,使開發人員可以更好地瞭解他們正在開發的程式碼。利用程式碼度量,開發人員可
VS2010中的計算程式碼度量值
關於該功能及幾個指標的具體介紹,請參考下面的官方文件 程式碼度量是一組軟體度量值,使開發人員可以更好地瞭解他們正在開發的程式碼。利用程式碼度量,開發人員可以瞭解哪些型別和/或方法應該返工或進行更徹底的測試。開發團隊可以識別潛在的風險、瞭解專案的當前狀態,並跟蹤軟體開發
nlp中文字相似度計算問題
文章的目的:文字相似度計算一直是nlp中常見的問題,本文的目標是總結並對比文字相似度計算方法。當然文字的相似度計算會有進一步的應用,比如文字的分類、聚類等。 文章結構:本文先介紹最直接的字面距離相似度度量,而後介紹語義主題層面的度量,最後介紹目前一些新的相似度計算方法。 一、字面距
Power Pivot中“父行彙總百分比”的度量值寫法
轉自微信 本文旨在通過求“父行彙總百分比“的案例,分享Power Pivot建模中遇到問題的解決思路和方法,順便分享幾個篩選函式的不同,包括ALL、ALLSELECTED、ISFILTERED和HASONEFILTER 。 在實際工作中,我們除了展示銷售額數字以外,還經常需要通過百
preNoip中時間複雜度的計算
特徵方程法解一階線性代數遞推式 數列{ana_nan}滿足a1=b,an+1=can+da_1=b,a_{n+1}=ca_n+da1=b,an+1=can+d,求該數列的通項公式 針對遞推關係
Swift中計算一段程式碼的執行時間
最近在做專案優化,其中有一個介面滑動有些卡頓,於是想找到哪段程式碼執行時間過長。用下面的方法即可:let startTime = CFAbsoluteTimeGetCurrent() //要執行的程式碼 //...let endTime = CFAbsoluteTimeGet
SQL Server 2008 多維資料集增加度量值計算平均值
環境:SQL Server 2008 + Microsoft Visual Studio 其他步驟就不說了,直接到多維資料集這裡。比如說你已經有了一個總消費的度量值Amount和一個計數度量值count。現在要求平均值,步驟如下: 1 開啟計算標籤頁 2.在這個計算頁
opencv讀取彩色/灰度圖片畫素值並存儲在本地檔案中c++程式碼例項及執行結果
c++程式碼彩色圖片#include<opencv2/opencv.hpp> #include<fstream> using namespace std; using namespace cv; int main(int argc, char* ar
unity中計算vector3的角度,帶正負的程式碼實現
unity中Vector3自帶了一個Vector3.Angle的函式,用於計算兩個vector3向量的夾角,文件中描述的: The angle returned is always the non reflex angle between the two vectors – ie
解決在EasyUI中使用百度地圖出現不居中和座標圖示顯示異常的問題(紅色程式碼部分)
問題:1.載入指定經緯度的座標點怎麼都不居中顯示,總是顯示在左上角,需要在地圖載入完後拖動才看到指定的座標點;2.顯示的座標點圖片沒有正常顯示,後面使用了自定義座標圖片(如圖): 解決後: 參考: 1.百度地圖API類:http://developer.baidu
windows 系統在vs2010 中配置libxml2,及讀取xml程式碼例子
1、先下載libxml2 (下載地址 http://download.csdn.net/detail/luoww1/8095273),裡面包括了三個資料夾分別:zlib-1.2.3.win32 和iconv-1.9.2.win32 和libxml2-2.7.6.win32
Qt中計算一段程式碼的執行時間
利用gettimeofday(),其精度為us級 #include <QDebug> #include <sys/time.h> struct timeval tpstart,tpend; float timeuse; gettime
在js在頁面中新增百度統計程式碼
1. 新版統計程式碼獲取 (不想手工新增程式碼?立刻一鍵安裝) 此程式碼同時適用於PC端、移動端的頁面,以非同步載入形式進行載入,資料更準確、載入速度更快。請將此程式碼複製並貼上到您要跟蹤的每個網頁中
Spark/Scala實現推薦系統中的相似度演算法(歐幾里得距離、皮爾遜相關係數、餘弦相似度:附實現程式碼)
在推薦系統中,協同過濾演算法是應用較多的,具體又主要劃分為基於使用者和基於物品的協同過濾演算法,核心點就是基於"一個人"或"一件物品",根據這個人或物品所具有的屬性,比如對於人就是性別、年齡、工作、收入、喜好等,找出與這個人或物品相似的人或物,當然實際處理中參考的因子會複雜的多。 本篇文章不介紹相關數學概念,
在vs2010中顯示代碼的行數
-s src alt color ron gb2312 com size png 1、打開VS2010,然後“工具” → “選項” 2、在選項頁面,點擊“文本編輯器”→“所有語言”,在顯示裏將【行號】選中,然後確定就OK。 2、這樣子就出現行號了。 在vs2010中
Java中計算對象的大小
bject tro 項目依賴 all 返回值 not 檢測 app main 一、計算對象大小的方法 Java中如何計算對象的大小呢,找到了4種方法: 1.java.lang.instrument.Instrumentation的getObjectSize方法; 2.BT
javaweb中使用百度、谷歌地圖進行定位
gets .get pos 地圖 click sea over pad peid 第一種 百度 直接上代碼: <!DOCTYPE> <html> <head> <meta name="viewport
【轉】VS2010中 C++創建DLL圖解
-a rar cls ret ria endif -s pan 項目 標簽: dllc++2010threadlibraryc 本文章已收錄於: .embody { padding: 10px 10px 10px; margin: 0 -20px; b
在混合app開發過程中使用百度地圖api的出現坐標偏差的解決
百度 api call cordova overlay forum gpo ext ddr 在項目中使用ngCordova的$cordovaGeolocation模塊獲取當前位置經緯度,當展示在百度地圖中時發現有誤差(我的測試誤差為1.7公裏左右),查資料發現百度地圖經緯度
Oracle中計算兩個日期時間的差
weight span num log 方法 bsp round code oracl --方法1 select floor((sysdate - to_date(‘2006-09-01 08:00:00‘, ‘yyyy-mm-dd hh24:m