Scientific Toolworks Understand是一款支持多平臺(tái)代碼分析軟件,使用這款Scientific Toolworks Understand(代碼分析軟件)可以讓您根據(jù)不同的編譯環(huán)境對(duì)代碼進(jìn)行整體編譯。
軟件特色:
1.支持多語(yǔ)言:Ada, C, C++, C#, Java, FORTRAN, Delphi, Jovial, and PL/M ,混合語(yǔ)言的project也支持
2.多平臺(tái): Windows/Linux/Solaris/HP-UX/IRIX/MAC OS X
3.代碼語(yǔ)法高亮、代碼折迭、交叉跳轉(zhuǎn)、書簽等基本閱讀功能。
4.可以對(duì)整個(gè)project的architecture、metrics進(jìn)行分析并輸出報(bào)表。
5.可以對(duì)代碼生成多種圖(butterfly graph、call graph、called by graph、control flow graph、UML class graph等),在圖上點(diǎn)擊節(jié)點(diǎn)可以跳轉(zhuǎn)到對(duì)應(yīng)的源代碼位置。
6.提供Perl API便于擴(kuò)展。作圖全部是用Perl插件實(shí)現(xiàn)的,直接讀取分析好的數(shù)據(jù)庫(kù)作圖。
7.內(nèi)置的目錄和文件比較器。
8.支持project的snapshot,并能和自家的TrackBack集成便于監(jiān)視project的變化。
搜索功能:
1.左側(cè)項(xiàng)目結(jié)構(gòu)中搜索:在這個(gè)搜索中你可以快速搜索你要查看的類,快捷鍵,鼠標(biāo)點(diǎn)擊左側(cè)上面項(xiàng)目結(jié)構(gòu)窗口,然后按command + F鍵會(huì)出現(xiàn)如下圖所示的搜索框,在框中輸入你想要的類回車即可。
2.類中方法搜索:將鼠標(biāo)定位到右側(cè)代碼中,點(diǎn)擊command + F,會(huì)彈出搜索框,輸入方法回車即可。
3.在文件中搜索:也就是全局搜索,快捷鍵F5或者去上面菜單欄中的search欄中查找,輸入你想要的類或者方法,回車查找,下面會(huì)列出所有使用的地方。
4.實(shí)體類查找:軟件菜單欄search中最后一項(xiàng)–Find Entity,點(diǎn)擊輸入你要查找的實(shí)體類,回車查找。
視圖分類:
1.Butterfly:如果兩個(gè)實(shí)體間存在關(guān)系,就顯示這兩個(gè)實(shí)體間的調(diào)用和被調(diào)用關(guān)系;如下圖為Activity中的一個(gè)方法的關(guān)系圖。
2.Calls:展示從你選擇的這個(gè)方法開始的整個(gè)調(diào)用鏈條。
3.Called By:展示了這個(gè)實(shí)體被哪些代碼調(diào)用,這個(gè)結(jié)構(gòu)圖是從底部向上看或者從右到左看。
4.Calls Relationship/Calledby Relationship:展示了兩個(gè)實(shí)體之間的調(diào)用和被調(diào)用關(guān)系,操作方法:首先右鍵你要選擇的第一個(gè)實(shí)體,然后點(diǎn)擊另一個(gè)你要選擇的實(shí)體,如果選擇錯(cuò)誤,可以再次點(diǎn)擊其他正確即可,然后點(diǎn)擊ok。
5.Contains:展示一個(gè)實(shí)體中的層級(jí)圖,也可以是一個(gè)文件,一條連接線讀作”x includes y“。
6.Extended By:展示這個(gè)類被哪些類所繼承。
7.Extends:展示這個(gè)類繼承自那個(gè)類。
導(dǎo)入項(xiàng)目:
導(dǎo)入項(xiàng)目有兩種方法,一種是從菜單欄點(diǎn)擊File–>New–>Project,另一種是點(diǎn)擊下面界面中間的New Project
點(diǎn)擊后,會(huì)進(jìn)入到如下界面,你可以更改項(xiàng)目名稱為你要導(dǎo)入的項(xiàng)目名稱,以便于以后查找,你可以直接導(dǎo)入你正在開發(fā)的項(xiàng)目,你的代碼更改后,這個(gè)項(xiàng)目也會(huì)自動(dòng)更新,方便你快速開發(fā),不需要每次導(dǎo)入。
更改名稱后點(diǎn)擊Next進(jìn)入如下界面,這個(gè)界面是讓你選擇你要導(dǎo)入項(xiàng)目包含了哪幾種語(yǔ)言,注意,在C/C++后面有兩種模式,下面有注釋,其中Strict模式包含Object-C和Object—C++,還有Web的注釋,自己看看就好了,在此就不再解釋,
然后點(diǎn)擊Next進(jìn)入下面界面:
在此界面點(diǎn)擊上面的“Add a Directory”,也就是添加你要導(dǎo)入項(xiàng)目的路徑,點(diǎn)擊后會(huì)彈出如下界面,此時(shí)有個(gè)奇葩就是彈出的界面會(huì)被上圖界面遮擋,此時(shí)你要移開該界面,然后會(huì)出現(xiàn)下面界面:
點(diǎn)擊后面的帶有三個(gè)點(diǎn)的按鈕選擇你要加入的項(xiàng)目文件夾,此處不用打開文件夾,只要點(diǎn)中文件夾點(diǎn)擊open按鈕:
此時(shí)只需要點(diǎn)擊OK即可,界面會(huì)跳轉(zhuǎn)到如下界面:
此時(shí)有兩個(gè)選項(xiàng),一個(gè)是立即分析代碼,一個(gè)選擇配置,對(duì)于我們來(lái)說(shuō)只需要默認(rèn)即可,然后點(diǎn)擊OK按鈕,此時(shí)軟件開始分析代碼,分析完成后會(huì)出現(xiàn)如下界面:
左側(cè)會(huì)出你的項(xiàng)目結(jié)構(gòu),中間出現(xiàn)你項(xiàng)目的名稱,此時(shí)你可以操作左面項(xiàng)目來(lái)查看相關(guān)代碼,如下圖所示:
這么多類和方法如何快速定位,那肯定是搜索,該軟件針對(duì)不同位置,不同屬性有不同的搜索方法,下面介紹搜索功能。