多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > 軟件質量之道:SourceMonitor

軟件質量之道:SourceMonitor

來源:程序員人生   發布時間:2014-11-07 08:59:40 閱讀次數:8059次

有些事非做不可,并不是為了幸福,而是減緩痛苦,由于不做,則更痛苦――這便是無奈。

夏中義 《文心獨白》

 

1 引子

博客又有1陣子沒更新了,最近認真思考了阿里上市的成功的地方:選擇和堅持。其實http://www.vxbq.cn/cxrs/并沒有絕對的對與錯,也沒有絕對的成功與失敗。正如“有些人活著,他已死了”云云,我總是拿對與錯來讓自己選擇,其實就是根本的毛病。決定走1條路,就繼續走下去,終點雖然不知道在哪里,那就縱情享受沿途的風景,和珍惜與身旁的陪伴著的人的分分鐘鐘!

扯得有點遠,回歸主題。之前討論了軟件質量之道的各個方面,但是也都是1些虛話,達不到真實的目的。既然如此,還不如針對上1篇文章結尾部份的流程圖的每一個部份,進行詳細的描寫,到達人人可用的效果,使之發揚光大。

按部就班,首先先說1下各個工具的用處和使用方法,然后再說明如何用Ant進行管理,最后再統1加到CruiseControl中進行調度。

 

2 SourceMonitor簡介

SourceMonitor是1款免費的軟件,運行在Windows平臺下。它可對多種語言寫就的代碼進行度量,包括C、C++、C#、Java、VB、Delphi和HTML,并且針對不同的語言,輸出不同的代碼度量值。

像其他代碼度量工具1樣,SourceMonitor只關注代碼,并為編碼人員提供及時的反饋,它不是1款項目管理工具,不關注項目實行中從功能分析到設計編碼,再到測試這全部進程。

SourceMonitor只是1個“度量”工具,但是通過基本的度量,可以從代碼表面層次發現1些根本的,基礎的問題,所以將其作為介紹的第1個工具,也應當做為最基礎的1個工具來為軟件質量把關。

 

3 SourceMonitor度量值

說到SourceMonitor的度量,對不同的語言提供不同方面的度量,這里僅針對C++進行介紹,其提供了以下幾方面的度量。(關于其他語言,請參考SourceMonitor的幫助文檔Explanation of Language Metrics章節)

1. 總行數(Lines)

包括空行在內的代碼行數。

2. 語句數(Statements)

在C++中,語句是以分號結尾的。分支語句if,循環語句for、while,跳轉語句goto都被計算在內,預處理語句#include、#define和#undef也被計算在內,對其他的預處理語句則不作計算,在#else和#endif、#elif和#endif之間的語句將被疏忽。

3. 分支語句比例(Percent Branch Statements)

該值表示分支語句占語句數目的比例,這里的“分支語句”指的是使程序不順序履行的語句,包括if、else、for、while、break、continue、goto、switch、case、default和return。需要注意的是,do不被計算在內,由于其對應的while已計算了。另外,異常處理的catch也被作為1個分支計算。

4. 注釋比例(Percent Lines with Comments)

該值唆使注釋行(包括/*……*/和//……情勢的注釋)占總行數的比例。1般公司會對每一個文檔的header或footer部份進行特殊的聲明注釋,可以再工程屬性中設置過濾,不計算在內。

5. 類個數(Classes)

包括class,struct和template在內的個數。

6. 平均每一個類方法數(Methods per Class)

平均每一個類的方法數,即包括內聯和非內聯的,template函數在內的類方法數除以所有類的個數。

7. 函數個數(Functions)

所有函數的個數。

8. 平均每一個函數包括的語句數目(Average Statements per Method)

總的函數語句數目除以函數數目得到該值。

9. 函數圈復雜度(Function Complexity)

圈復雜度唆使1個函數可履行路徑的數目,以下語句為圈復雜度的值貢獻1:if/else/for/while語句,3元運算符語句,if/for/while判斷條件中的"&&"或“||”,switch語句,后接break/goto/ return/throw/continue語句的case語句,catch/except語句等。對應有最大圈復雜度(Max Complexity)和平均圈復雜度(Avg Complexity)。

10. 函數深度(Block Depth)

函數深度唆使函數中分支嵌套的層數。對應有最大深度(Max Depth)和平均深度(Avg Depth)。

 

4 SourceMonitor實戰

下面介紹如何使用SourceMonitor建立工程,針對不同的Solution活著Project建立Checkpoint。

1. 安裝SourceMonitor,這個不詳細介紹,下載安裝便可。

2. 打開SourceMonitor,建立工程。


3. 選擇語言,并點擊下1步。


4. 為當前工程命名,并選擇工程文件保存路徑。


5. 選擇當前工程要度量解析的文件,可以通過配置文件列表(XML)或指定路徑自動搜索方式添加。


6. 選擇相干的配置,可以直接下1步疏忽,如果有相干需要進行選擇設定。



7. 指定當前Checkpoint的名稱。


8. 查看配置項,并肯定。


9. 確認要度量的文件列表。


10. 工程建立終了,并完成第1個度量點。


11. 雙擊檢查點,查看各個文件的度量值。


12. 雙擊某個文件,查看詳細信息。


這樣,基本的1個工程就建立終了了,其他的功能,例如設置各個指標的默許值,大家可以自己嘗試1下。

 

5 配置SourceMonitor到編輯器內

由于SourceMonitor是代碼度量最基礎的1個模塊,所以每一個http://www.vxbq.cn都可能會將其作為代碼評測的1個經常使用功能項添加到熟習的編輯器中。這樣每寫完1段代碼,都可以履行檢測1下當前文件是不是滿足度量指標。


5.1 Visual Studio設置

1. 設置外部工具。


2. 添加并配置選項


Title: SourceMonitor

Command: 安裝SourceMonitor的目錄

Arguments: /DC++ $(ItemPath)

Initial directory: $(SolutionPath)

3. 添加快捷鍵


選擇剛才添加SourceMonitor是ExternalTools里面第幾個,例如說我剛才添加的位置為第6個,則選擇Command6,并指定快捷鍵(我默許指定為Alt + 1,這個根據個人喜好來,但是盡可能別造成快捷鍵沖突)。


4. 打開某個文件,按快捷鍵履行SourceMonitor,結果就顯示出來了。



5.2 UltraEdit設置

由于很多公司都會開發2次語言,來合適自己工具的使用。這類語言可能跟C或某些語言很相似,但是用Visual Studio這類龐大的工具來打開,效力不是很高,所以有可能選擇使用1些輕量級的編輯器,例如說UltraEdit這類,那末添加方法跟Visual Studio類似,以下。

1. 工具欄配置添加新工具。


2. 進行參數設置


名稱: SourceMonitor

命令行: "D:SourceMonitorSourceMonitor.exe" /DC++"%f"

工作目錄: %p

3. 點擊履行,或通過快捷鍵履行。

 

5.3 其他工具設置

如果使用其他工具,則可以參考工具的幫助文檔,修改/DC++后的文件名稱參數和工作目錄參數便可。

 

6 進1步思考

又到了最后關鍵的1步了,談1下近期的1些感悟吧。有些事情不了解的時候,總會從消極的角度的方面去斟酌問題。

例如說,之前我對多線程不是很了解,我便會極力的保護自己“不懂多線程”這個缺點,從而去從消極的角度及方面評判多線程。但是最近處理大范圍數據文件時(大概2000萬個以上),我卻深深的體會到了多線程的各個方面的優勢,也學會了更多的知識,雖然也寫出了讓大牛們嘲笑的“自旋鎖”代碼,看過《Imperfect C++》關于多線程的那1節后,立馬酡顏了,利用周末的時間,完全修改了這個“問題”。

另外,再接觸這方面的知識時,就會從不同的角度上去理解及思考,也發現了更多更有趣的內容,例如怎樣用C++11的異步,把界面和處理扔到不同的線程中去,又怎樣把Log扔到對應的Log打印窗口中去,真是其樂無窮啊。

上周末,又看了1遍《星際寶貝》,也總結了最近各個不盡人意的方面,發現自己之前實在是太過自我為中心,有很多問題不知道從自己找緣由,而不斷的責備他人(真心的對被我傷害的人說聲對不起)。還是應當時時刻刻警省自己,如果“壞蛋”成份要滿了,那就暫時放下所有的事,“醫治”好了再繼續,不要由于自己而出錯!


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 成人中文字幕一区二区三区 | 欧美13一14娇小性视频 | 亚洲国产精品一区二区三区在线观看 | 国产一区二区精品久久91 | a级午夜 | 成人a网站| 周妍希国产福利在线观看 | 天天天天鲁天天拍一拍 | 最近免费中文字幕高清大全 | 国产精品福利视频手机免费观看 | 日韩 欧美 亚洲 | 性色按摩过程小说 | 亚洲一成人毛片 | 亚洲日韩精品欧美一区二区一 | 国产欧美国产精品第一区 | 亚洲图区综合 | 男女xx00xx的视频免费观看 | 国产欧美中文字幕 | 国产五区 | 欧美日韩高清一区 | 秋霞午夜影视 | 亚洲视色 | 波多野吉衣在线多野结衣 | 久爱免费精品视频在线播放 | 亚洲国产成人精品不卡青青草原 | 最近中文字幕国语免费 | 日本大胆一区免费视频 | 日欧毛片 | 欧美亚洲另类小说 | 免费久久精品视频 | 欧美性xxxx极品hd欧美 | 特级黄色淫片 | 国产成人啪午夜精品网站 | 国产v精品欧美精品v日韩 | 亚洲偷怕| 色综合久久久久久久久五月 | 日韩精品久久一区二区三区 | 久久天天躁狠狠躁夜夜爽蜜月 | 日韩视频高清免费看 | 性生活视频网 | 性亚洲|