国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      在開發(fā)環(huán)境中集成診斷信息的制作方法

      文檔序號(hào):6534400閱讀:185來源:國(guó)知局
      在開發(fā)環(huán)境中集成診斷信息的制作方法
      【專利摘要】本文描述的主題的各方面涉及輔助軟件開發(fā)。在各方面,軟件開發(fā)環(huán)境可以在用戶界面上顯示代碼以及關(guān)于該代碼的信息。在一個(gè)示例中,該信息包括關(guān)于代碼的診斷信息。該信息可由允許軟件開發(fā)者進(jìn)行深度挖掘并獲取關(guān)于代碼的更詳細(xì)的信息的可操作標(biāo)簽表示。該信息可由軟件開發(fā)環(huán)境以不干擾軟件開發(fā)者的開發(fā)活動(dòng)的方式自動(dòng)獲取??刹僮鳂?biāo)簽緊鄰與其相關(guān)聯(lián)的代碼顯示。
      【專利說明】在開發(fā)環(huán)境中集成診斷信息
      [0001]背景
      [0002]存在可用于分析軟件的許多工具。每一個(gè)工具都可測(cè)量軟件的一個(gè)或多個(gè)特性。使用這些工具,從這些工具獲取信息并將信息用來改進(jìn)軟件經(jīng)常是復(fù)雜且耗時(shí)的過程。
      [0003]在此要求保護(hù)的主題不限于解決任何缺點(diǎn)或僅在諸如上述環(huán)境中操作的各個(gè)實(shí)施例。相反,提供該背景僅用以示出在其中可實(shí)踐在此描述的部分實(shí)施例的一個(gè)示例性【技術(shù)領(lǐng)域】。
      [0004]概述
      [0005]簡(jiǎn)而言之,本文描述的主題的各方面涉及輔助軟件開發(fā)。在各方面,軟件開發(fā)環(huán)境可以在用戶界面上顯示代碼以及關(guān)于該代碼的信息。在一個(gè)示例中,該信息包括關(guān)于代碼的診斷信息。該信息可由允許軟件開發(fā)者進(jìn)行深度挖掘并獲取關(guān)于代碼的更詳細(xì)的信息的可操作標(biāo)簽表示。該信息可由軟件開發(fā)環(huán)境以不干擾軟件開發(fā)者的開發(fā)活動(dòng)的方式自動(dòng)獲取。可操作標(biāo)簽緊鄰與其相關(guān)聯(lián)的代碼顯示。
      [0006]提供本概述是為了簡(jiǎn)要地標(biāo)識(shí)在以下詳細(xì)描述中進(jìn)一步描述的主題的一些方面。本概述并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護(hù)的主題的范圍。
      [0007]除非上下文清楚地指出,否則短語“本發(fā)明所描述的主題”指的是【具體實(shí)施方式】中描述的主題。術(shù)語“方面”應(yīng)被當(dāng)作“至少一個(gè)方面”。標(biāo)識(shí)【具體實(shí)施方式】中所描述的主題的各方面不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征。
      [0008]上述各方面和本發(fā)明所描述的主題的其它方面是作為示例說明的,并且不受附圖限制,附圖中相似的參考標(biāo)號(hào)指示相似的元素。
      [0009]附圖簡(jiǎn)述
      [0010]圖1-2是表示本文描述的主題的各方面可以在其中操作的示例性環(huán)境的框圖;
      [0011]圖3是根據(jù)此處所描述的主題的各方面的示例性用戶界面窗口的框圖;
      [0012]圖4-7是根據(jù)此處所描述的主題的各方面的附加示例性用戶界面窗口的框圖;以及
      [0013]圖8是根據(jù)此處所描述的主題的各方面的概括地表示可發(fā)生的動(dòng)作的流程圖。
      [0014]詳細(xì)描述
      [0015]定義
      [0016]如本文所使用的,術(shù)語“包括”及其變體被當(dāng)作開放式術(shù)語,表示“包括但不限于”。除非上下文另外清楚地指示出,否則術(shù)語“或”被當(dāng)作“和/或”。術(shù)語“基于”被當(dāng)作“至少部分地基于”。術(shù)語“一個(gè)實(shí)施例”和“一實(shí)施例”被當(dāng)作“至少一個(gè)實(shí)施例”。術(shù)語“另一實(shí)施例”被當(dāng)作“至少一個(gè)其他實(shí)施例”。
      [0017]如此處所使用的,諸如“一”和“該”等術(shù)語包括了所指示的項(xiàng)目或動(dòng)作中的一個(gè)或多個(gè)。具體而言,在權(quán)利要求書中,對(duì)一個(gè)項(xiàng)的引用一般表示至少一個(gè)這樣的項(xiàng)存在,并且對(duì)一個(gè)動(dòng)作的引用表示執(zhí)行該動(dòng)作的至少一個(gè)實(shí)例。
      [0018]本文中有時(shí)可使用術(shù)語“第一”、“第二”、“第三”等等。沒有其他上下文,權(quán)利要求中對(duì)這些術(shù)語的使用不意在暗示排序,而是用于標(biāo)識(shí)的目的。例如,短語“第一版本”和“第二版本”不一定意味著第一版本是真正的第一個(gè)版本或是在第二版本之前創(chuàng)建的,或甚至是第一版本是在第二版本之前被請(qǐng)求或操作的。相反,這些短語用于標(biāo)識(shí)不同的版本。
      [0019]本文所使用的術(shù)語“函數(shù)”可被認(rèn)為是執(zhí)行一個(gè)或多個(gè)任務(wù)的代碼部分。雖然函數(shù)可包括返回?cái)?shù)據(jù)的代碼塊,但它不限于返回?cái)?shù)據(jù)的代碼塊。函數(shù)還可執(zhí)行特定任務(wù)而不返回任何數(shù)據(jù)。此外,函數(shù)可以或可以不具有輸入?yún)?shù)。函數(shù)可包括子例程、子程序、過程、方法、例程等。因而,在使用術(shù)語函數(shù)時(shí),在替換實(shí)施例中,詞語函數(shù)將被以上術(shù)語中的每一個(gè)所替換。
      [0020]如本發(fā)明所使用的計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術(shù)來實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括:RAM、R0M、EEPR0M、固態(tài)存儲(chǔ)、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲(chǔ)、磁盒、磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可以用來儲(chǔ)存所期望的信息并可由計(jì)算機(jī)訪問的任何其它介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)不包括通信介質(zhì)。
      [0021]標(biāo)題僅是為了方便;關(guān)于給定話題的信息可在其標(biāo)題指示該話題的章節(jié)之外被尋找到。
      [0022]其他顯式或隱式定義可包括在下文中。
      [0023]示例性實(shí)施例
      [0024]圖1-2是表示本文描述的主題的各方面可以在其中操作的示例性環(huán)境的框圖。圖1-2中示出的組件是示例性的且不意味著包括一切的可能需要或包括的組件。在其他實(shí)施例中,結(jié)合圖1-2描述的組件和/或功能可被包括在其他組件(示出或未示出)中或者被放置在子組件中而不背離本發(fā)明所描述的主題的各方面的精神或范圍。在一些實(shí)施例中,結(jié)合圖1-2描述的組件中的一個(gè)或多個(gè)可跨可彼此靠近(例如,局域網(wǎng)上)或分散開(例如,在因特網(wǎng)上的不同地方)的多個(gè)設(shè)備分布。
      [0025]本發(fā)明所描述的主題的各方面可與通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置實(shí)現(xiàn)。可適用于本發(fā)明所述的主題的各方面的計(jì)算機(jī)包括個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)(無論是裸金屬還是作為虛擬機(jī))、手持或膝上型設(shè)備、多處理器系統(tǒng)、基于微控制器的系統(tǒng)、機(jī)頂盒、可編程和不可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、游戲設(shè)備、打印機(jī)、包括機(jī)頂盒、媒體中心或其它電器的家電設(shè)備、嵌入汽車或附連到汽車的計(jì)算設(shè)備、其他移動(dòng)設(shè)備、包括蜂窩電話、無線電話和有線電話的電話設(shè)備、包括任何上述系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。
      [0026]本發(fā)明所述的組件中的一個(gè)或多個(gè)可在虛擬環(huán)境中操作。虛擬環(huán)境是由計(jì)算機(jī)來模仿或模擬的環(huán)境。虛擬環(huán)境可模仿或模擬物理機(jī)器、操作系統(tǒng)、一個(gè)或多個(gè)接口的組、以上各項(xiàng)的部分、或以上各項(xiàng)的組合等等。在機(jī)器被模仿或被模擬時(shí),該機(jī)器有時(shí)被稱為虛擬機(jī)。對(duì)于在虛擬機(jī)上執(zhí)行的軟件來說,虛擬機(jī)是一種看上去是物理機(jī)器的機(jī)器。該軟件可將文件保存在諸如虛擬硬盤驅(qū)動(dòng)器、虛擬軟盤等之類的虛擬存儲(chǔ)設(shè)備中,可從虛擬光學(xué)設(shè)備讀取文件,可經(jīng)由虛擬網(wǎng)絡(luò)適配器來進(jìn)行通信等等。
      [0027]轉(zhuǎn)向圖1,系統(tǒng)100可包括信息提供者105-107、代碼信息服務(wù)110、開發(fā)環(huán)境115并且可包括其他組件(未示出)。如此處所使用的,術(shù)語組件要被當(dāng)作包括以下各項(xiàng)中的全部或部分來理解:一個(gè)或多個(gè)設(shè)備、一個(gè)或多個(gè)軟件模塊或其各部分的集合、一個(gè)或多個(gè)軟件模塊或其各部分與一個(gè)或多個(gè)設(shè)備或其各部分的某種組合等等。
      [0028]線條120表示代碼信息服務(wù)110與開發(fā)環(huán)境115之間的通信鏈路。線條120指示代碼信息服務(wù)110和開發(fā)環(huán)境115可以經(jīng)由任何類型的網(wǎng)絡(luò)或其他通信路徑(包括共享存儲(chǔ)器、直接連接、局域網(wǎng)、非局域網(wǎng)、因特網(wǎng)、上述各項(xiàng)的某種組合等)來連接(例如,邏輯地、物理地、虛擬地或其他方式)。例如,線條120可包括一個(gè)或多個(gè)局域網(wǎng)、廣域網(wǎng)、直接連接、虛擬連接、專用網(wǎng)絡(luò)、虛擬專用網(wǎng)絡(luò)、進(jìn)程內(nèi)或進(jìn)程間通信信道、以上的某種組合等。
      [0029]代碼信息服務(wù)110是向開發(fā)環(huán)境115提供關(guān)于代碼的信息的服務(wù)。服務(wù)可包括執(zhí)行指定任務(wù)的一個(gè)或多個(gè)進(jìn)程、線程、組件、庫等等。服務(wù)可以用硬件、軟件、或硬件和軟件的組合來實(shí)現(xiàn)。服務(wù)可分布在多個(gè)設(shè)備上或可實(shí)現(xiàn)在單個(gè)設(shè)備上。
      [0030]代碼信息服務(wù)110可被主存在主存開發(fā)環(huán)境115的同一計(jì)算機(jī)、除了主存開發(fā)環(huán)境115的計(jì)算機(jī)之外的計(jì)算機(jī)上,或者可具有本地地和遠(yuǎn)程地駐留的組件。
      [0031]在一個(gè)實(shí)現(xiàn)中,代碼信息服務(wù)110可被主存在云中。云是經(jīng)常被用作因特網(wǎng)的暗喻的術(shù)語。這利用了這樣的理念,即計(jì)算、軟件、數(shù)據(jù)存取、存儲(chǔ)、以及其它資源可由連接到因特網(wǎng)的實(shí)體來提供而無需用戶知曉與遞送那些資源的計(jì)算體系結(jié)構(gòu)有關(guān)的位置或其它細(xì)節(jié)。
      [0032]代碼信息服務(wù)110可存儲(chǔ)涉及代碼的不同快照的信息。信息快照包括在代碼在特定時(shí)間點(diǎn)存在時(shí)關(guān)于該代碼的信息。這可用于例如比較不同快照之間的特性。例如,代碼信息服務(wù)110可存儲(chǔ)指示代碼部分在各快照之間執(zhí)行得有多好的性能數(shù)據(jù)。術(shù)語立方體在此有時(shí)被稱為存儲(chǔ)在一個(gè)或多個(gè)快照中的數(shù)據(jù)。
      [0033]信息提供者105-107是代碼信息服務(wù)110的信息源。在一個(gè)實(shí)施例中,信息提供者105-107中的一個(gè)或多個(gè)遠(yuǎn)離代碼信息服務(wù)110(例如,在另一計(jì)算機(jī)上)。在另一實(shí)施例中,信息提供者105-107中的一個(gè)或多個(gè)可被主存在與代碼信息服務(wù)110相同的計(jì)算機(jī)上。
      [0034]信息提供者105-107可以靜態(tài)地(例如,在不執(zhí)行代碼的情況下)、動(dòng)態(tài)地(例如,結(jié)合執(zhí)行代碼)或通過靜態(tài)和動(dòng)態(tài)分析的組合來分析代碼。例如,信息提供者可分析代碼以確定對(duì)特定類做出調(diào)用的所有函數(shù)。作為另一示例,信息提供者可獲取嘗試將代碼構(gòu)建到相干系統(tǒng)中的結(jié)果,并且從結(jié)果中提取可被提供給代碼信息服務(wù)110的信息。作為又一示例,信息提供者可獲取運(yùn)行一套自動(dòng)化測(cè)試的結(jié)果。
      [0035]信息提供者105-107可以在各種時(shí)間收集/生成信息。例如,某些信息可以在代碼發(fā)生改變時(shí)獲取。其他信息可以周期性地或跨一時(shí)間間隔獲取。還有一些其他信息可以通過對(duì)代碼的間接處理(例如,在將代碼構(gòu)建到相干系統(tǒng)中期間)來獲取。這種收集/生成信息的方式可以與軟件開發(fā)活動(dòng)異步。
      [0036]信息提供者收集到的信息可按照方法、類、文件、庫、目錄、上述各項(xiàng)中的兩個(gè)或更多個(gè)的組合等來組織。
      [0037]在一個(gè)實(shí)現(xiàn)中,代碼信息服務(wù)110可以按與開發(fā)者環(huán)境115內(nèi)的開發(fā)者動(dòng)作異步的方式向開發(fā)環(huán)境115提供關(guān)于代碼的信息。該上下文中的異步意指代碼信息服務(wù)110在與開發(fā)環(huán)境115交互時(shí)所采取的動(dòng)作不干擾開發(fā)者正在做的事。
      [0038]例如,當(dāng)開發(fā)者在用戶界面內(nèi)滾動(dòng)到一代碼部分時(shí),開發(fā)環(huán)境115可以向代碼信息服務(wù)110請(qǐng)求關(guān)于該代碼部分的信息。作為響應(yīng),代碼信息服務(wù)110可檢索該信息和/或請(qǐng)求由信息提供者105-107中的一個(gè)或多個(gè)來生成該信息。當(dāng)信息在代碼信息服務(wù)110上可用之后,代碼信息服務(wù)110可以向開發(fā)環(huán)境115提供該信息。當(dāng)這正在發(fā)生時(shí),開發(fā)者可能正在查看、編輯或調(diào)試代碼或者甚至可以滾動(dòng)到另一代碼部分。開發(fā)者無需等待直到代碼信息服務(wù)110提供該信息。
      [0039]在一個(gè)實(shí)現(xiàn)中,當(dāng)信息被更新時(shí)可以將經(jīng)更新的信息從代碼信息服務(wù)110提供至開發(fā)環(huán)境115。例如,指示針對(duì)所顯示的代碼的單元測(cè)試是否通過的信息可以從代碼信息服務(wù)110發(fā)送到開發(fā)環(huán)境115。在一個(gè)實(shí)施例中,可提供的經(jīng)更新的信息的類型是可以配置的(例如,經(jīng)由用戶界面或其他方式)。經(jīng)更新的信息可以自動(dòng)和/或響應(yīng)于用戶致動(dòng)刷新用戶界面元素來提供。
      [0040]在一個(gè)實(shí)現(xiàn)中,當(dāng)軟件開發(fā)者打開代碼文件或其他作用域時(shí),代碼信息服務(wù)110可提供與用于該作用域的可操作標(biāo)簽相對(duì)應(yīng)的數(shù)據(jù)。開發(fā)環(huán)境115然后可使用該數(shù)據(jù)來將可操作標(biāo)簽與代碼一起顯示在如圖3所示的圖形界面中。
      [0041]圖3是根據(jù)本文所描述的主題的各方面的示例性用戶界面窗口的框圖。在一個(gè)示例中,窗口 300可包括菜單305、頁邊空白310和窗格315,它們各自是用戶界面的元素。
      [0042]一般而言,元素(有時(shí)稱為控件)可包括零個(gè)或更多個(gè)其他元素。例如,元素可包括零個(gè)或更多個(gè)其他元素,該其他元素可包括零個(gè)或更多個(gè)其他元素,以此類推。此外,將明白,窗口 300可具有可按各種方式來安排的更多、更少、或其他元素,而不背離本文所描述的主題的精神或范圍。
      [0043]如圖3所示,菜單305可包括諸如文件、編輯、查看以及所需的其他菜單項(xiàng)等菜單項(xiàng)。選擇菜單項(xiàng)可使得子菜單出現(xiàn),子菜單提供可從中選擇的附加菜單項(xiàng)。子菜單中的菜單項(xiàng)可使得附加的子菜單出現(xiàn),以此類推。
      [0044]頁邊空白310可包括一個(gè)或多個(gè)可操作標(biāo)簽(例如,T1-T7)。頁邊空白中的每一個(gè)標(biāo)簽可以毗鄰窗格315中所顯示的代碼行。標(biāo)簽可指示關(guān)于代碼行的各種信息,諸如對(duì)函數(shù)中的變量的直接使用數(shù)、使用一函數(shù)的函數(shù)數(shù)量、for循環(huán)重復(fù)以及特定置信度內(nèi)的變化的平均次數(shù)、條件語句評(píng)估為真的頻率、條件語句中的分支是否曾經(jīng)到達(dá)過、是否在函數(shù)中捕捉到異常、其他信息等等。
      [0045]在包括在窗格315中的區(qū)域中,窗格315可顯示代碼以及一個(gè)或多個(gè)可操作標(biāo)簽(例如,標(biāo)簽320和標(biāo)簽325)。如圖所示,標(biāo)簽通過豎條(例如,通過“ I ”)分隔,但在其他實(shí)現(xiàn)中,可使用其他分隔符。如圖所示,可操作標(biāo)簽被置于與其相關(guān)聯(lián)的函數(shù)的上方,但在其他實(shí)現(xiàn)中,可操作標(biāo)簽可被置于其他位置。
      [0046]在一些實(shí)現(xiàn)中,可以存在與枚舉、類的變量、類、名字空間或其他作用域相關(guān)聯(lián)的可操作標(biāo)簽。
      [0047]可操作標(biāo)簽320包括指示執(zhí)行時(shí)間增加了 25ms的標(biāo)簽。該標(biāo)簽通過加粗來突出顯示,但在其他實(shí)現(xiàn)中可通過加下劃線、不同顏色、更大的文本等來突出顯示。
      [0048]如果開發(fā)環(huán)境未將文件內(nèi)容識(shí)別為符合某一編程或其他結(jié)構(gòu)化語言句法,則可顯示適合于該文件的文本的標(biāo)簽。例如,可顯示表示對(duì)文件的修改(若存在)的標(biāo)簽。
      [0049]可操作標(biāo)簽可允許軟件開發(fā)者進(jìn)行“深度挖掘”以獲取更多細(xì)節(jié)。例如,響應(yīng)于檢測(cè)到可操作標(biāo)簽上方的懸停動(dòng)作,開發(fā)環(huán)境115可顯示關(guān)于該可操作標(biāo)簽的更多細(xì)節(jié)。作為另一示例,響應(yīng)于檢測(cè)到對(duì)可操作標(biāo)簽的鼠標(biāo)點(diǎn)擊,開發(fā)環(huán)境115可顯示關(guān)于該可操作標(biāo)簽的更高水平的細(xì)節(jié)。
      [0050]也可使用包括自然用戶界面(NUI)在內(nèi)的其他形式的輸入來與標(biāo)簽交互。NUI可依賴于語音識(shí)別、觸摸和指示筆識(shí)別、屏幕上和鄰近該屏幕兩者的姿勢(shì)識(shí)別、空中姿勢(shì)、頭和眼睛跟蹤、語音和話音、視覺、觸摸、姿勢(shì)、機(jī)器智能等等。可被用來與用戶交互的一些示例性NUI技術(shù)可包括觸敏顯示器,語音和話音識(shí)別,意圖和目的理解,使用深度相機(jī)(如立體相機(jī)系統(tǒng)、紅外相機(jī)系統(tǒng)、RGB相機(jī)系統(tǒng)、以及這些的組合)的運(yùn)動(dòng)姿勢(shì)檢測(cè),使用加速度計(jì)/陀螺儀的運(yùn)動(dòng)姿勢(shì)檢測(cè),面部識(shí)別,3D顯示,頭部、眼睛和注視跟蹤,沉浸式增強(qiáng)現(xiàn)實(shí)和虛擬現(xiàn)實(shí)系統(tǒng),以及用于使用電場(chǎng)傳感電極(EEG和相關(guān)方法)的傳感大腦活動(dòng)的技術(shù)。
      [0051]返回到圖1,代碼信息服務(wù)110提供的信息可包括對(duì)于正在開發(fā)或以其他方式與代碼交互的人可以是有用的任何數(shù)據(jù)。例如,信息可包括靜態(tài)信息、動(dòng)態(tài)信息、變更歷史、代碼分析等。
      [0052]下文描述了以上各種類型的信息中的每一種信息的一些示例。下述例子并不旨在是包括一切的或是窮舉的。實(shí)際上,基于此處的教示,本領(lǐng)域技術(shù)人員可認(rèn)識(shí)到落入此處所描述的主題的各方面的精神或范圍內(nèi)的其他示例。
      [0053]靜態(tài)信息可包括例如:
      [0054]1.調(diào)用。該數(shù)據(jù)可包括有多少函數(shù)包括調(diào)用圖形界面上所顯示的函數(shù)的語句。
      [0055]2.元調(diào)用。該數(shù)據(jù)可包括指示有多少函數(shù)包括調(diào)用以下函數(shù)的語句的信息:進(jìn)而包括調(diào)用用戶界面上所顯示的函數(shù)的語句的函數(shù)。元調(diào)用數(shù)據(jù)可以擴(kuò)展至任何水平。例如,元調(diào)用數(shù)據(jù)可包括指示有多少調(diào)用以下函數(shù)的函數(shù)的信息:調(diào)用對(duì)調(diào)用用戶界面上所顯示的函數(shù)的函數(shù)進(jìn)行調(diào)用的函數(shù)的函數(shù)。
      [0056]3.蓋寫。如果一方法能夠被蓋寫,這該數(shù)據(jù)指示該方法實(shí)際上已經(jīng)被蓋寫多少次。
      [0057]4.接口。如果一方法實(shí)現(xiàn)一接口的全部或部分,則該數(shù)據(jù)可指示存在該接口的多少實(shí)現(xiàn)。該數(shù)據(jù)還可指示方法所涉及的接口的數(shù)量。例如,方法可用于實(shí)現(xiàn)任何數(shù)量的接口的全部或部分。
      [0058]5.復(fù)雜度。可使用各種算法來確定代碼復(fù)雜度。該數(shù)據(jù)可包括指示代碼有多復(fù)雜的值。
      [0059]6.提交的隱錯(cuò)。該數(shù)據(jù)可指示已經(jīng)提交針對(duì)一方法的多少隱錯(cuò)報(bào)告。
      [0060]7.代碼分析建議。代碼分析器可分析代碼以確定要提供的建議。例如,代碼分析器可確定是否遵循最佳實(shí)踐并且可以在未遵循時(shí)給出建議。作為另一示例,代碼分析器可查找被賦值但未被使用的變量。代碼分析器可給出移除該變量和賦值的建議。
      [0061]8.變異。變異數(shù)據(jù)包括指示一個(gè)方法中的變化的變量可以如何影響其他方法的信息。例如,變異數(shù)據(jù)可包括指示什么其他方法改變一方法使用或依賴的變量的信息。該變異數(shù)據(jù)可被稱為上游變異數(shù)據(jù)。作為另一示例,變異數(shù)據(jù)可包括指示一方法修改其他方法使用的什么變量的信息。該變異數(shù)據(jù)可被稱為下游變異數(shù)據(jù)。
      [0062]9.測(cè)試和測(cè)試覆蓋。該數(shù)據(jù)可指示測(cè)試代碼的測(cè)試數(shù)量以及測(cè)試覆蓋代碼的什么部分。該數(shù)據(jù)可指示關(guān)于駐留在塊、函數(shù)、文件、項(xiàng)目、上述各項(xiàng)中的不止一個(gè)、上述各項(xiàng)的組合等中的代碼的信息。
      [0063]10.任務(wù)。該數(shù)據(jù)可包括與假定開發(fā)者要執(zhí)行的任務(wù)以及所顯示的代碼是否涉及該任務(wù)有關(guān)的信息。
      [0064]11.耦合。該數(shù)據(jù)可指示什么類或方法與其他類或方法緊密耦合。緊密耦合可經(jīng)由試探來確定。
      [0065]12.克隆。該數(shù)據(jù)可指示類似于所顯示的代碼的代碼的存在。
      [0066]動(dòng)態(tài)信息可包括例如:
      [0067]1.運(yùn)行時(shí)間。該數(shù)據(jù)指示執(zhí)行代碼花費(fèi)多長(zhǎng)時(shí)間。該數(shù)據(jù)可用于確定性能。
      [0068]2.調(diào)用率。該數(shù)據(jù)指示代碼的熱度/冷度。熱代碼相對(duì)于不熱的代碼被頻繁地調(diào)用。類似地,冷代碼相對(duì)于不冷的代碼被較不頻繁地調(diào)用。
      [0069]3.存儲(chǔ)器使用。該數(shù)據(jù)指示代碼所使用的存儲(chǔ)器的量。
      [0070]變更歷史可包括例如:
      [0071]1.作者。該數(shù)據(jù)指示改變代碼的作者。在一個(gè)實(shí)現(xiàn)中,該數(shù)據(jù)可包括指示作者改變代碼的相對(duì)頻率的信息,并且可用于從最頻繁地改變代碼的作者到最不頻繁地改變代碼的作者對(duì)作者進(jìn)行排序。在另一實(shí)現(xiàn)中,該數(shù)據(jù)可包括指示改變代碼的最后一個(gè)作者的信息。在另一實(shí)現(xiàn)中,該數(shù)據(jù)可包括指示主要改變代碼的作者的信息。
      [0072]2.使用者。該數(shù)據(jù)指示編寫使用所顯示的代碼的代碼的軟件開發(fā)者。
      [0073]3.共同變更。該數(shù)據(jù)指示在與所顯示的方法相同的時(shí)間改變的方法。例如,在特定方法被改變時(shí)軟件開發(fā)者可能頻繁地或總是改變其他方法。
      [0074]4.變更歷史。該數(shù)據(jù)包括指示隨時(shí)間對(duì)代碼做出的變更的信息。
      [0075]5.校驗(yàn)歷史。在一個(gè)實(shí)現(xiàn)中,該數(shù)據(jù)可包括指示任何人當(dāng)前是否校驗(yàn)代碼的信息。在另一實(shí)現(xiàn)中,該數(shù)據(jù)可包括指示自從代碼被檢驗(yàn)以來其他任何人是否改變過代碼的信息。
      [0076]分析信息可包括例如:
      [0077]1.成本。云服務(wù)可為使用服務(wù)對(duì)服務(wù)的消費(fèi)者記賬。該數(shù)據(jù)可包括關(guān)于使用代碼的成本的信息。
      [0078]2.1/O。該數(shù)據(jù)可指示在執(zhí)行時(shí)代碼讀取和寫入的數(shù)據(jù)量。
      [0079]3.帶寬。該數(shù)據(jù)可指示在執(zhí)行時(shí)代碼消耗的帶寬量。
      [0080]4.數(shù)據(jù)庫使用。該數(shù)據(jù)可指示代碼使用的數(shù)據(jù)庫使用量。
      [0081]同樣注意,對(duì)于可以存儲(chǔ)的關(guān)于代碼的信息類型,上述示例不旨在是包括全部的或窮盡性的。
      [0082]轉(zhuǎn)向圖2,示出了根據(jù)本文描述的主題的各方面的示例性軟件開發(fā)系統(tǒng)。軟件開發(fā)系統(tǒng)205可包括開發(fā)組件210、顯示器215、通信機(jī)構(gòu)220和其他組件(未示出)。開發(fā)組件210可包括源代碼編輯器225、獲取管理器230、動(dòng)作標(biāo)簽管理器235、配置管理器240和其它組件(未示出)。
      [0083]通信機(jī)構(gòu)220允許軟件開發(fā)系統(tǒng)205的組件與軟件開發(fā)系統(tǒng)205之外的其他組件進(jìn)行通信。例如,通信機(jī)構(gòu)220可允許與圖1的代碼信息服務(wù)110進(jìn)行通信。通信機(jī)構(gòu)440可以是網(wǎng)絡(luò)接口或適配器、調(diào)制解調(diào)器或用于建立通信的任何其它機(jī)構(gòu)。
      [0084]顯示器215是可用于以可視方式顯示數(shù)據(jù)的輸出設(shè)備。顯示器可實(shí)現(xiàn)軟件開發(fā)者可用于查看代碼和關(guān)于代碼的信息的圖形界面或作為該圖形界面的一部分。圖形界面可顯示文本、圖標(biāo)、控件、其他圖形元素等。
      [0085]源代碼編輯器225可操作用于接收與代碼相關(guān)的編輯指令。源代碼編輯器225可顯示代碼和其他數(shù)據(jù),如圖3-7所示的示例所示出的。
      [0086]獲取管理器230可以負(fù)責(zé)從代碼信息服務(wù)獲取關(guān)于代碼的信息。為了效率,獲取管理器230可以通過發(fā)送單個(gè)請(qǐng)求來獲取對(duì)應(yīng)于多個(gè)標(biāo)簽的信息。在一個(gè)實(shí)施例中,獲取可以對(duì)當(dāng)前被顯示在顯示器上的所有代碼進(jìn)行。在另一實(shí)施例中,獲取可以對(duì)整個(gè)文件或其他作用域中的所有代碼進(jìn)行。
      [0087]動(dòng)作標(biāo)簽管理器235可操作用于確定要呈現(xiàn)在顯示器215上的可操作標(biāo)簽??刹僮鳂?biāo)簽表示關(guān)于代碼的信息(例如,由獲取管理器230來獲取)。每一個(gè)可操作標(biāo)簽都可被呈現(xiàn)在顯示器215上以使其緊鄰該可操作標(biāo)簽與其相關(guān)聯(lián)的代碼。例如,用于一函數(shù)的可操作標(biāo)簽可被呈現(xiàn)在該函數(shù)的略上方,而用于各代碼行的可操作標(biāo)簽可被呈現(xiàn)在頁邊空白中。
      [0088]動(dòng)作標(biāo)簽管理器235還可負(fù)責(zé)響應(yīng)于用戶交互來顯示關(guān)于代碼的更詳細(xì)的信息。例如,動(dòng)作標(biāo)簽管理器可接收指示正與一動(dòng)作標(biāo)簽交互的消息(例如,用戶正將鼠標(biāo)指針懸停在該標(biāo)簽上方、點(diǎn)擊該標(biāo)簽等),并且作為響應(yīng)可以在顯示器215上呈現(xiàn)關(guān)于該動(dòng)作標(biāo)簽的更詳細(xì)的信息。
      [0089]動(dòng)作標(biāo)簽管理器235可接收指示將更顯著地呈現(xiàn)動(dòng)作標(biāo)簽的消息。作為響應(yīng),動(dòng)作標(biāo)簽管理器235可以在顯示器上呈現(xiàn)動(dòng)作標(biāo)簽時(shí)突出顯示這些動(dòng)作標(biāo)簽。突出顯示可包括增加字體大小、改變字體顏色、改變背景顏色、將前景顏色與背景顏色對(duì)調(diào)、為標(biāo)簽加下劃線、使標(biāo)簽閃爍、或者執(zhí)行將注意力吸引到標(biāo)簽的某一其他動(dòng)作。
      [0090]動(dòng)作標(biāo)簽管理器235可接收指示將進(jìn)入臨時(shí)模式的消息。作為響應(yīng),動(dòng)作標(biāo)簽管理器235可修改頁邊空白中的標(biāo)簽以使得每一個(gè)標(biāo)簽聚焦于相同的信息并指示來自行的貢獻(xiàn)。例如,對(duì)于程序執(zhí)行統(tǒng)計(jì)數(shù)據(jù),為每一行顯示的信息可指示該代碼行花費(fèi)多久來執(zhí)行。
      [0091]配置管理器240可接收指示哪一些可操作標(biāo)簽將呈現(xiàn)在顯示器215上的輸入。配置管理器240還可接收指示呈現(xiàn)可操作標(biāo)簽的次序的輸入。
      [0092]圖4-7是根據(jù)此處所描述的主題的各方面的附加示例性用戶界面窗口的框圖。
      [0093]轉(zhuǎn)向圖4,窗格405顯示具有3個(gè)共同變更的函數(shù)。點(diǎn)擊或以其他方式與這些共同變更動(dòng)作標(biāo)簽交互導(dǎo)致顯示窗格410,該窗格410指示經(jīng)常在與窗格405中的函數(shù)相同的時(shí)間改變的3個(gè)函數(shù)。
      [0094]轉(zhuǎn)向圖5,窗格515示出了具有3個(gè)作者的函數(shù)。點(diǎn)擊或以其他方式與作者交互導(dǎo)致顯示窗格520。窗格520可顯示誰修改過該函數(shù)并且可突出顯示所做出的修改。
      [0095]轉(zhuǎn)向圖6,窗格615顯示與4個(gè)編碼建議相關(guān)聯(lián)的函數(shù)。點(diǎn)擊或以其他方式與建議交互導(dǎo)致顯示窗格620。窗格620可顯示這些建議并且在適當(dāng)時(shí)允許軟件開發(fā)者點(diǎn)擊建議以實(shí)現(xiàn)建議。
      [0096]轉(zhuǎn)向圖7,窗格715顯示與兩個(gè)測(cè)試相關(guān)聯(lián)的函數(shù)。點(diǎn)擊或以其他方式與測(cè)試交互導(dǎo)致顯示窗格720。窗格720可顯示針對(duì)這兩個(gè)測(cè)試的代碼。盡管未示出,但每一個(gè)測(cè)試都可具有與其相關(guān)聯(lián)的動(dòng)作標(biāo)簽,這些動(dòng)作標(biāo)簽指示例如該測(cè)試覆蓋多少函數(shù)、多少函數(shù)被該測(cè)試元覆蓋、執(zhí)行測(cè)試花費(fèi)多久、測(cè)試是通過還是失敗、其他信息等等。
      [0097]可使用與圖3-7所示的格式相似的格式來顯示關(guān)于其他動(dòng)作標(biāo)簽的詳細(xì)信息。
      [0098]圖8是根據(jù)此處所描述的主題的各方面的概括地表示可發(fā)生的動(dòng)作的流程圖。為解釋簡(jiǎn)明起見,結(jié)合圖8來描述的方法被描繪和描述為一系列動(dòng)作??梢岳斫夂兔靼?,此處所描述的主題的各方面不受所示出的各動(dòng)作和/或各動(dòng)作次序的限制。在一個(gè)實(shí)施例中,各動(dòng)作以如下描述的次序發(fā)生。然而,在其它實(shí)施例中,各動(dòng)作可以并行地發(fā)生、以另一次序發(fā)生、和/或與此處未呈現(xiàn)和描述的其它動(dòng)作一起發(fā)生。此外,并非所有示出的動(dòng)作都是實(shí)現(xiàn)根據(jù)此處所描述的主題的各方面的方法所必需的。另外,本領(lǐng)域的技術(shù)人員將了解和明白,方法也可以替代地經(jīng)由狀態(tài)圖或作為事件表示為一系列相互相關(guān)聯(lián)的狀態(tài)。
      [0099]轉(zhuǎn)向圖8,在框805處,動(dòng)作開始。
      [0100]在框810,獲取代碼。例如,參考圖2。源代碼編輯器225可以從代碼儲(chǔ)存庫中獲取代碼。
      [0101]在框815,獲取關(guān)于代碼的信息。例如,參考圖1和2,獲取管理器230可以從代碼信息服務(wù)110獲取關(guān)于代碼的信息。
      [0102]在框820,確定要顯示的可操作標(biāo)簽??刹僮鳂?biāo)簽指示關(guān)于代碼的附加數(shù)據(jù)??刹僮鳂?biāo)簽與代碼的各部分(例如,各行、各函數(shù)、各類、各變量、各文件)相關(guān)聯(lián)。當(dāng)被激活時(shí),可操作標(biāo)簽使得軟件開發(fā)環(huán)境顯示關(guān)于代碼的附加信息。
      [0103]在框825,顯示代碼和可操作標(biāo)簽。例如,參考圖2,可以在顯示器215上緊鄰可操作標(biāo)簽顯示遵循編程語言的句法的源代碼。顯示代碼和可操作標(biāo)簽的示例在圖3-7中示出。
      [0104]在框830處,執(zhí)行其他動(dòng)作(若存在)。
      [0105]軟件開發(fā)活動(dòng)可以與執(zhí)行動(dòng)作810-825異步地執(zhí)行。這由框835示出。例如,在對(duì)代碼執(zhí)行分析時(shí),軟件開發(fā)者可以繼續(xù)修改、調(diào)試和導(dǎo)航通過代碼,而無需等待。此外,可以在軟件開發(fā)者正在執(zhí)行軟件開發(fā)活動(dòng)時(shí)更新或添加標(biāo)簽。
      [0106]在一個(gè)實(shí)施例中,與軟件開發(fā)活動(dòng)異步地執(zhí)行與可操作標(biāo)簽相關(guān)聯(lián)的動(dòng)作可涉及以動(dòng)作不彼此等待的方式相互獨(dú)立地執(zhí)行動(dòng)作。在一個(gè)實(shí)現(xiàn)中,這可通過使用不彼此阻塞的兩個(gè)線程來執(zhí)行。
      [0107]如從上述詳細(xì)描述中可以看到,已經(jīng)描述了關(guān)于軟件開發(fā)的各方面。盡管本文所描述的主題的各方面易于作出各種修改和替換構(gòu)造,但其某些說明性實(shí)施例在附圖中示出并在上面被詳細(xì)地描述。然而,應(yīng)當(dāng)理解,并不旨在將所要求保護(hù)主題的各方面限制于所公開的具體形式,而是相反地,目的是要覆蓋落入本文所描述的主題的各方面的精神和范圍之內(nèi)的所有修改、替換構(gòu)造和等效方案。
      【權(quán)利要求】
      1.一種至少部分地由計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括: 在軟件開發(fā)環(huán)境的圖形界面上顯示編程語言的代碼,所述圖形界面能操作用于接收關(guān)于軟件開發(fā)活動(dòng)的輸入; 接收關(guān)于軟件開發(fā)活動(dòng)的指令; 與接收關(guān)于所述軟件開發(fā)活動(dòng)的所述指令異步地執(zhí)行動(dòng)作,所述動(dòng)作包括: 獲取關(guān)于所述代碼的信息; 確定要顯示在所述圖形界面上的可操作標(biāo)簽,所述可操作標(biāo)簽指示關(guān)于所述代碼的附加數(shù)據(jù),所述可操作標(biāo)簽與所述代碼的各部分相關(guān)聯(lián),在被激活時(shí)所述可操作標(biāo)簽使得所述軟件開發(fā)環(huán)境顯示關(guān)于所述代碼的附加信息; 在所述圖形界面上毗鄰所述代碼顯示所述可操作標(biāo)簽。
      2.如權(quán)利要求1所述的方法,其特征在于,與接收所述指令異步地執(zhí)行動(dòng)作包括由第一線程執(zhí)行所述動(dòng)作,所述第一線程在第二線程接收到所述指令并且根據(jù)所述指令操作時(shí)不被阻塞。
      3.如權(quán)利要求1所述的方法,其特征在于,在所述圖形界面上顯示所述可操作標(biāo)簽包括在類、方法和變量中的一個(gè)或多個(gè)的上方顯示所述可操作標(biāo)簽。
      4.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括可視地突出顯示已經(jīng)對(duì)與所述可操作標(biāo)簽中的至少一個(gè)相對(duì)應(yīng)的數(shù)據(jù)進(jìn)行的變更。
      5.如權(quán)利要求4所述的方法,其特征在于,可視地突出顯示已經(jīng)對(duì)所述可操作標(biāo)簽中的至少一個(gè)進(jìn)行的變更包括在關(guān)于所述代碼的信息指示所述代碼的執(zhí)行時(shí)間已經(jīng)改變的情況下顯示突出顯示的文本。
      6.—種在計(jì)算環(huán)境中的系統(tǒng),包括: 軟件開發(fā)環(huán)境,所述軟件開發(fā)環(huán)境能操作用于接收關(guān)于軟件開發(fā)活動(dòng)的輸入,所述軟件開發(fā)環(huán)境包括: 能操作用于呈現(xiàn)與軟件程序的代碼相關(guān)聯(lián)的文本的顯示器, 能操作用于接收與所述代碼相關(guān)的編輯指令的源代碼編輯器, 能操作用于獲取關(guān)于所述代碼的信息的獲取管理器,以及 能操作用于確定要呈現(xiàn)在所述顯示器上的可操作標(biāo)簽的動(dòng)作標(biāo)簽管理器,所述可操作標(biāo)簽表示關(guān)于所述代碼的信息,所述動(dòng)作標(biāo)簽管理器還能操作用于使得在所述顯示器上呈現(xiàn)所述可操作標(biāo)簽,以使得每一個(gè)可操作標(biāo)簽毗鄰該可操作標(biāo)簽所關(guān)聯(lián)的代碼部分呈現(xiàn)。
      7.如權(quán)利要求12所述的系統(tǒng),其特征在于,進(jìn)一步包括能操作用于與所述軟件開發(fā)活動(dòng)異步地生成所述信息的一個(gè)或多個(gè)信息提供者。
      8.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述動(dòng)作標(biāo)簽管理器還能操作用于接收指示正與動(dòng)作標(biāo)簽交互的消息并且作為響應(yīng)使得在所述顯示器上呈現(xiàn)關(guān)于所述動(dòng)作標(biāo)簽的更詳細(xì)的信息。
      9.一種在計(jì)算機(jī)系統(tǒng)中的圖形用戶界面,包括: 其中呈現(xiàn)軟件程序的代碼的第一區(qū)域;以及 其中呈現(xiàn)關(guān)于所述代碼的可操作標(biāo)簽的第二區(qū)域,所述可操作標(biāo)簽指示關(guān)于所述代碼的附加數(shù)據(jù),所述附加數(shù)據(jù)與在所述第一區(qū)域內(nèi)進(jìn)行的軟件開發(fā)活動(dòng)異步地獲取,在被激活時(shí)所述可操作標(biāo)簽使得軟件開發(fā)環(huán)境在第三區(qū)域中呈現(xiàn)關(guān)于所述代碼的附加信息,所述第一、第二和第三區(qū)域彼此相鄰。
      10.如權(quán)利要求9所述的圖形用戶界面,其特征在于,所述可操作標(biāo)簽用比用于呈現(xiàn)表示所述代碼的文本更小的字體大小且用與用于呈現(xiàn)表示所述代碼的文本的顏色不同的顏色來呈現(xiàn)。
      【文檔編號(hào)】G06F11/36GK104428757SQ201380034213
      【公開日】2015年3月18日 申請(qǐng)日期:2013年6月20日 優(yōu)先權(quán)日:2012年6月27日
      【發(fā)明者】A·C·布拉東, G·瓊斯, M·A·格羅夫斯, T·G·特里溫 申請(qǐng)人:微軟公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1