国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

支持靜態分析的高級程序可視化簡化了開發過程

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Paul Anderson ? 2022-07-04 15:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

長期以來,圖片往往比文字更能幫助開發人員理解復雜的程序和審查代碼,因此在軟件開發中程序可視化的使用很普遍。UML 和其他主要圖形形式的設計符號現在被廣泛接受為溝通軟件設計各個方面的最佳標準機制。一些基于模型的設計工具可以直接從圖形表示中生成代碼。在非正式的范圍內,開發人員經常畫出流程圖或調用圖來告知自己或其他人軟件的重要方面。

UML 圖都非常適合設計,但在開發過程的后期用于幫助開發人員理解現有代碼時會遇到兩個重要的缺點。首先,作為設計抽象,它們(正確地)省略了一些實現細節,但如果目標是理解完成的軟件,這些細節通常很重要。其次,設計圖在實現方面經常是陳舊的,導致對實際存在的系統的描述不準確或不完整。

非正式的可視化往往是短暫的,很少進入程序文檔的正式記錄。

很多時候,開發人員必須使用的唯一工件就是代碼本身。不幸的是,代碼可視化工具在歷史上一直存在圖表混亂和難以擴展到大型程序等問題。然而,正在出現的新工具正在開始解決這些問題。這些工具的主要優勢是它們能夠直接從代碼本身生成有用的可視化。因此,它們保證是準確和最新的。

程序結構

程序由許多不同類型的組件之間的龐大而復雜的依賴網絡組成。試圖同時顯示所有這些的可視化將太笨重而無用。事實上,沒有單一的理想可視化。相反,對特定任務最有用的可視化是與執行該任務的工程師使用的心智模型相對應的可視化。一些更有用的程序結構如下:

類型層次結構

開發人員通常發現了解數據類型相互關聯的各種方式非常有用。標準的 UML 類圖以一種非常容易理解的形式表示類層次結構,其關聯和包含關系處于比代碼更高的抽象級別。雖然從設計的角度來看這很好,但程序員通常會發現查看類型之間的具體關系更有幫助。

包括樹

C 和 C++ 程序通常會大量使用預處理器。如果做得好,這可以使程序易于理解,但通常它會插入一個阻礙理解的層。不規范地使用預處理器可能會導致依賴纏結,從而導致構建問題并損害可重用性潛力。因此,能夠查看哪些文件包含在哪里可以幫助工程師解開復雜的依賴關系。

調用圖

調用圖,其中每個節點代表一個子程序,每條邊表示對另一個子程序的一個或多個調用,通常被認為是最有助于可視化的程序結構。子程序是方便開發人員推理的單元,調用關系很好地捕獲了數據和控制流。即使是一個小程序的調用圖也可能有數百個節點和數千條邊(見側邊欄 1),因此人們早就認識到一次可視化整個調用圖基本上是沒有用的。相反,研究人員專注于將調用圖可視化為更小、更容易消化的部分。

新的調用圖技術和工具

由于調用圖在程序理解中的重要性以及可視化它們所涉及的挑戰,它們一直是許多研究的主題。特別是,已經開發出新技術來幫助控制調用圖的復雜性。本節介紹了在提供高級可視化功能的靜態分析工具中實現的一些機制。

自上而下的視圖

調用圖的自上而下視圖有助于回答用戶問題,例如“該程序的高級組件是什么,它們的屬性和關系是什么?”

為了在程序理解的背景下解決這個問題,工具設計者從諸如谷歌地圖之類的地理地圖程序中汲取靈感。隨著用戶放大,更多細節開始顯現:首先是城市,然后是城鎮、村莊,最后是個別建筑物。顯示的細節級別與縮放級別相關聯。

程序由組件組成,這些組件本身又由較小的組件組成,依此類推,形成層次結構;雖然直接調用關系是在低級子程序之間,但它可以投射到包含這些子程序的高級組件。在調用圖的自上而下視圖中,最高級別的項目是目錄。這些可以包含子目錄和文件的某種組合,然后這些文件將包含子程序。因此,從一個框到另一個框的邊僅表示包含在第一個框內的子程序調用了包含在第二個框內的子程序。

事實證明,這種方法在幫助開發人員更深入地了解程序方面非常有效。

在左側窗口中,用戶選擇了從組件find到組件gnulib的邊。此聚合邊緣匯總的函數調用顯示在右側的窗格中。右側窗口說明當用戶放大查看單個功能時會顯示更多細節。此縮放級別進一步說明了一個重要特性:開發人員能夠將視圖與代碼本身相關聯非常重要。因此,選擇其中一個函數會導致顯示該函數的源代碼。

自下而上的視圖

通常,開發人員會希望采用自下而上的方法。這有助于用戶回答諸如“這個過程做什么,它如何適應程序的結構,以及它是如何被調用的?”之類的問題。

例如,假設某個程序在特定功能中崩潰。為了找到崩潰的原因并計劃修復,開發人員可能會首先關注該單個函數,然后探索它的鄰近區域以查看它調用和調用的其他函數。以前在白板上手動完成,一個工具可以自動處理繪圖和布局的苦差事。

指標層

通過添加層來顯示各種指標的價值,可以增加可視化的實用性。圖 1 顯示了一個示例。這顯示了一個特別有用的可視化 - 樹狀圖。在樹狀圖中,節點的面積與度量標準成正比——通常是對項目大小進行編碼的度量標準。然后將子節點平鋪在頂級節點內。通常不顯示邊緣。在這個例子中,每個項目的顏色強度編碼了靜態分析工具發出的代碼漏洞警告的數量。

圖 1:中型程序(大約 200 KLOC)的樹形圖。顏色的強度表示在每個部件中檢測到的靜態分析警告的數量。

poYBAGLCkqOAdw5rAAXw823qkQo472.png

從這個角度來看,很容易挑選出風險最大的程序組件。樹形圖對于顯示深度嵌套的結構非常有效,并且也非常適合前面討論的縮放范例,其中更多細節在更高的放大倍率下顯示。

當開發人員以交互方式使用它們來平移和放大和縮小,甚至添加和刪除節點和邊緣時,這些可視化是最有用的。如果沒有足夠的響應,與這樣的界面交互可能會非常令人沮喪。顯示數百個節點和數千條邊可能是一個挑戰。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    20255

    瀏覽量

    252280
  • C++
    C++
    +關注

    關注

    22

    文章

    2124

    瀏覽量

    77115
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    芯科科技免費提供SystemView可視化分析工具

    Silicon Labs(芯科科技)近期宣布與嵌入式設計領導者 SEGGER 建立合作伙伴關系,為所有采用芯科科技技術的開發者免費提供SystemView工具-這是一款專業級的跟蹤與可視化工具,無需
    的頭像 發表于 02-28 15:13 ?791次閱讀

    KubePi:開源Kubernetes可視化管理面板,讓集群管理如此簡單

    :人人可用的開源數據可視化分析工具,可用于Kubernetes集群數據的實時可視化分析。 MeterSphere :開源持續測試平臺,支持Kubernetes環境中應用的自動化測試和持續集成。 七
    發表于 02-11 12:53

    介質擊穿過程可視化:電壓擊穿試驗儀中的高速數據采集與波形分析技術

    在絕緣材料介質擊穿試驗中,擊穿過程的瞬時性與復雜性使得直觀觀察成為難題。高速數據采集與波形分析技術的應用,打破了這一局限,通過精準捕捉擊穿全過程的電信號變化并轉化為可視化波形,讓原本不
    的頭像 發表于 02-03 14:00 ?3223次閱讀
    介質擊穿<b class='flag-5'>過程</b>的<b class='flag-5'>可視化</b>:電壓擊穿試驗儀中的高速數據采集與波形<b class='flag-5'>分析</b>技術

    工業物聯網可視化平臺是什么?有什么功能?

    工業物聯網可視化平臺是基于物聯網、大數據、人工智能等技術,將工業生產中的設備、系統、流程等數據以圖形化方式呈現,實現實時監控、智能分析與交互式管理的數字化工具。 其核心功能涵蓋數據集成、可視化展示
    的頭像 發表于 11-17 17:49 ?1275次閱讀

    工業可視化平臺是什么

    工業可視化平臺是一種基于信息技術和可視化技術,將工業生產過程中的數據、信息、流程等以直觀、動態的圖形化方式呈現,并實現交互式管理與分析的數字化工具。它通過整合工業物聯網(IIoT)、大
    的頭像 發表于 10-24 18:00 ?1065次閱讀

    【產品介紹】Altair HyperView用于仿真和CAE分析的后處理和數據可視化

    AltairHyperView通過用于仿真和CAE分析高級后處理和數據可視化解鎖工程洞察力AltairHyperView是用于高保真后處理的CAE分析軟件。HyperView專為工程
    的頭像 發表于 09-19 17:02 ?853次閱讀
    【產品介紹】Altair HyperView用于仿真和CAE<b class='flag-5'>分析</b>的后處理和數據<b class='flag-5'>可視化</b>

    一文讀懂 | 晶圓圖Wafer Maps:半導體數據可視化的核心工具

    在精密復雜的半導體制造領域,海量數據的有效解讀是提升產能、優化良率的關鍵。數據可視化技術通過直觀呈現信息,幫助工程師快速識別問題、分析規律,而晶圓圖正是這一領域中最具影響力的可視化工具——它將芯片
    的頭像 發表于 08-19 13:47 ?2793次閱讀
    一文讀懂 | 晶圓圖Wafer Maps:半導體數據<b class='flag-5'>可視化</b>的核心工具

    3Dfindit 提供的數字立方體模型為研究項目的可視化提供了支持

    魔方的幫助下實現多視角可視化 為了克服這一挑戰并實現多視角可視化,我們使用了3Dfindit立方體動畫模型。博物館和學生們可以利用 3D 模型提出新的歷史教學問題。
    發表于 08-01 14:36

    基于 HT 的 3D 可視化智慧礦山開發實現

    即可運行的三維交互場景,滿足智慧礦山對多系統集成、實時數據可視化、跨終端訪問的開發需求。 從開發目標來看,基于 HT 構建的智慧礦山解決方案,旨在通過技術手段將礦山現場的物理實體與數字空間映射,實現礦山全場景、全流程的
    的頭像 發表于 07-18 15:49 ?693次閱讀
    基于 HT 的 3D <b class='flag-5'>可視化</b>智慧礦山<b class='flag-5'>開發</b>實現

    如何使用協議分析儀進行數據分析可視化

    使用協議分析儀進行數據分析可視化,需結合數據捕獲、協議解碼、統計分析可視化工具,將原始數據轉化為可解讀的圖表和報告。以下是詳細步驟及關鍵
    發表于 07-16 14:16

    結構可視化:利用數據編輯器剖析數據內在架構?

    結構可視化聚焦于展示數據的內部結構和各部分之間的關系,使企業能夠深入理解數據的組織方式和層次體系,從而更好地進行數據管理和分析。通過結構可視化,企業可以清晰地看到數據的層次結構、關聯關系以及數據流
    的頭像 發表于 05-07 18:42 ?658次閱讀

    工業設備數據集中監控可視化管理平臺是什么

    工業設備數據集中監控可視化管理平臺是一種用于整合、監控和可視化工業設備數據的綜合性系統,旨在幫助企業實現設備數據的集中管理、實時監控和可視化展示,從而提升生產效率、優化設備運行狀態并支持
    的頭像 發表于 05-06 11:10 ?1066次閱讀

    VirtualLab Fusion應用:3D系統可視化

    描述和F-Theta透鏡的應用示例。 光學系統的3D-可視化 VirtualLab Fusion提供的工具可以實現光學系統的3D可視化,因此可以用于檢查元件的位置,以及快速了解系統內部的光傳播情況
    發表于 04-30 08:47

    可視化組態物聯網平臺是什么

    可視化組態物聯網平臺是物聯網技術與組態技術相結合的產物,是通過提供豐富的圖形化組件和可視化元素,讓用戶能夠以直觀、便捷的方式對物聯網數據進行監控、分析和管理的平臺。以下是其具體介紹: 定義 組態
    的頭像 發表于 04-21 10:40 ?899次閱讀

    可視化組態數據管理平臺是什么

    可視化組態數據管理平臺是一種用于工業自動化、物聯網、能源管理等領域的軟件平臺,它結合了可視化和組態技術,幫助用戶實現數據的采集、管理、展示和分析。以下是其具體介紹: 定義 組態的含義:組態即組合狀態
    的頭像 發表于 04-21 10:00 ?741次閱讀