使用可追溯性連結強度以用於軟體開發完整性監視的製作方法
2023-05-22 23:28:01 1
使用可追溯性連結強度以用於軟體開發完整性監視的製作方法
【專利摘要】一種用於監視需求完整性的方法。該方法包括:接收用於應用開發項目的多個需求,該應用開發項目具有多個代碼要素,計算用於多個可追溯性連結中的每一個的第一強度,多個可追溯性連結中的每一個都在應用開發項目的當前軟體代碼版本中的特定代碼要素和多個需求中的一個之間,計算用於新軟體代碼中的所述多個可追溯性連結中的每一個的第二強度,所述新軟體代碼包括對來自所述當前的軟體版本的特定代碼要素的修訂,以及基於在所述第二強度和所述第一強度之間的偏差來生成不一致性通知。
【專利說明】使用可追溯性連結強度以用於軟體開發完整性監視
【技術領域】
[0001]本發明在其一些實施例中涉及軟體開發,更具體地但不排他地涉及監視需求和/或代碼要素的完整性。
【背景技術】
[0002]對於大的軟體開發項目,容易丟失對需求及其代碼實現的跟蹤。在需求被實現之後,代碼繼續演進,並且支持該需求的邏輯可能被改變或移除。在這樣的軟體開發項目中,可以使用可追溯性連結來在諸如產品歸檔需求的需求和原始碼或原始碼的高級表示之間進行連結。具有在原始碼和需求之間的可追溯性連結促進執行各種軟體維護任務,包括影響分析、程序理解以及高質量系統的需求保證。對於觀察器或文本分析模塊,這些連結有助於解釋特定功能或類為何存在於該程序中。
[0003]過去幾年已經開發了各種系統和方法。例如,第7,640,532號美國專利描述了在軟體系統的原始碼和業務需求之間建立連接。使用本義和同義來擴展反映業務需求的用戶指定的關鍵字。用戶指定的關鍵字的補強列表與自動注釋的原始碼匹配。匹配的結果和原始碼的調用圖用於生成工作流,該工作流提供從原始碼到業務邏輯的映射。
[0004]第2008/0263504號美國專利申請描述了允許項目需求與底層代碼要素相關聯的各種技術和技術方案。對特定的軟體項目進行分析以生成包含在特定的軟體項目中的代碼要素的列表。從需求管理應用接收輸入以將一個或多個項目需求與代碼要素中的一個或多個相關聯。項目需求和與所述一個或多個代碼要素的關聯被存儲在數據存儲庫中以用於未來的取回。這些關聯用於確定對於底層代碼要素何時進行了可能影響項目的需求的改變。軟體開發應用可操作為與數據存儲庫進行交互,並且向軟體開發應用的用戶提供對軟體項目的特定代碼要素的改變將影響一個或多個項目需求的通知。
【發明內容】
[0005]根據本發明的一些實施例,提供了一種用於監視應用開發項目的完整性的計算機化方法,該應用開發項目具有多個代碼要素和多個需求。該方法包括:計算用於多個可追溯性連結中的每一個的第一強度,多個可追溯性連結中的每一個都在應用開發項目的當前軟體代碼版本中的多個代碼要素的特定代碼要素和多個需求中的一個之間,計算用於新軟體代碼中的所述多個可追溯性連結中的每一個的第二強度,所述新軟體代碼包括對來自當前的軟體版本的特定代碼要素的修訂,以及基於在相應第二強度和第一強度之間的偏差來生成不一致性通知。
[0006]可選地,該方法進一步包括對應用開發項目和多個需求進行分析,以自動地識別多個可追溯性連結。
[0007]可選地,該方法進一步包括從用戶接收指示多個可追溯性連結的手動輸入。
[0008]可選地,該方法進一步包括提供不一致性通知閾值;其中,生成包括:如果偏差大於不一致性通知閾值,則生成不一致性通知。[0009]可選地,該方法進一步包括提供相關性閾值;其中,新的軟體代碼版本包括新需求;其中,生成包括計算在特定代碼要素和新的需求之間的另一可追溯性連結的第三強度,並且如果第三強度超過閾值,則執行該生成。
[0010]此外可選地,不一致性通知指示新需求和多個需求中的至少一個之間的一致性。
[0011]可選地,該計算根據對特定代碼要素的語義分析來執行。
[0012]可選地,該計算根據對多個需求的語義分析來執行。
[0013]可選地,當前的軟體代碼版本和新軟體代碼二者被存儲在公共資料庫中,並且通過用戶和對資料庫中的記錄的自動分析中的至少一項來選擇。
[0014]可選地,對於應用開發項目的當前軟體代碼版本和新軟體代碼版本中的多個代碼要素中的每一個執行該計算第一強度、該計算第二強度和該生成。
[0015]根據本發明的一些實施例,提供了一種用於監視具有多個代碼要素和多個需求的應用開發項目的系統。該系統包括處理器、可追溯性連結強度模塊以及警告模塊,該可追溯性連結強度模塊使用處理器來計算用於多個可追溯性連結中的每一個的第一強度以及用於新軟體代碼中的所述多個可追溯性連結中的每一個的第二強度,該多個可追溯性連結中的每一個都在應用開發項目的當前軟體代碼版本中的多個代碼要素的特定代碼要素和多個需求中的一個之間,該新軟體代碼包括對來自當前的軟體版本的特定代碼要素的修訂,該警告模塊基於在第二強度和第一強度之間的偏差來生成不一致性通知。
[0016]可選地,該系統進一步包括接口,該接口接入該多個需求和多個代碼要素,以識別多個可追溯性連結。
[0017]此外可選地,該接口從軟體開發工作空間接收多個需求。
[0018]可選地,該系統進一步包括可追溯性連結識別模塊,該可追溯性連結識別模塊對該多個需求和多個代碼要素進行分析,以自動地識別多個可追溯性連結。
[0019]根據本發明的一些實施例,提供了一種用於識別在具有多個代碼要素和多個需求的應用開發項目中的需求衝突的計算機化方法。該方法包括提供相關性閾值,提供多個可追溯性連結,該多個可追溯性連結的每一個都在應用開發項目的當前軟體版本中的特定代碼要素和該多個需求中的一個之間,識別在應用開發項目的新的軟體代碼版本中的特定代碼要素和至少一個新需求之間的新可追溯性連結,計算用於新可追溯性連結的強度;以及如果強度超過相關性閾值,則生成指示需求衝突的通知。
[0020]可選地,相關性閾值由用戶手動設置。
[0021]除非另外定義,這裡使用的所有科技術語具有與本發明所屬於的領域中的普通技術人員通常理解的相同的含義。雖然可以在本發明的實施例的實踐或測試中使用與這裡描述的類似或等同的方法和材料,但是以下描述了示例性方法和/或材料。在衝突的情況下,本包括限定的專利說明書將進行控制。此外,材料,方法和實施例僅是說明性的,而並非旨在必須進行限制。
【專利附圖】
【附圖說明】
[0022]這裡通過參考附圖僅通過示例的方式描述了本發明的一些實施例。現在具體參考附圖,強調了所示出的細節是示例的方式並且出於對本發明的實施例的說明性討論的目的。在這點上,結合附圖的描述使得對本領域的技術人員顯而易見的是本發明的實施例將可以如何實現。
[0023]在附圖中:
[0024]圖1是根據本發明的一些實施例的用於監視需求完整性的方法的流程圖;
[0025]圖2是根據本發明的一些實施例的用於監視需求完整性的系統的軟體和硬體組件的關係視圖;
[0026]圖3是根據本發明的一些實施例的用於測量在應用開發項目中的代碼要素和需求之間連接的可追溯性連結的強度的過程的流程圖;
[0027]圖4-圖6描繪了示例性應用開發項目的呈現代碼要素的工具的截屏;
[0028]圖7是根據本發明的一些實施例的在示例性應用開發項目的當前的軟體代碼版本中的可追溯性連結的強度和示例性應用開發項目的新的軟體代碼版本中的同一可追溯性連結的強度之間的匹配的示意性圖示;
[0029]圖8是根據本發明的一些實施例的基於可追溯性連結的強度來識別在應用開發項目的軟體代碼版本之間的衝突需求的流程圖;以及
[0030]圖9是根據本發明的一些實施例的在識別衝突需求和監視需求完整性之間進行組合的過程的示意性圖示。
【具體實施方式】
[0031]本發明在其一些實施例中涉及軟體開發,更具體地但不排他地涉及監視需求和/或代碼要素的完整性。
[0032]根據本發明的一些實施例,提供了下述方法和系統,該方法和系統通過檢測在應用開發項目的軟體代碼版本之間的一個或多個可追溯性連結的強度中的改變來監視具有多個需求的應用開發項目的完整性。
[0033]例如,該方法是基於計算應用開發項目的多個軟體代碼版本中的每一個中的代碼要素之間的多個可追溯性連結中的每一個的強度,並且檢測軟體代碼版本之間的一個或多個可追溯性連結的強度中的改變。基於這種改變,也稱為偏差,可以生成和輸出一個或多個不一致性通知,例如對軟體開發工作空間的用戶作為消息呈現。如上概述和如下所述的方法允許基於對可追溯性連結的分析來識別在項目的開發中的代碼要素和需求之間的不一致性,並且自動地(可選為實時地)向用戶報警。
[0034]根據本發明的一些實施例,提供了下述方法和系統,該方法和系統在應用開發項目的新的軟體代碼版本中的一個或多個新的可追溯性連結的強度超過相關性閾值時,檢測應用開發項目中的需求衝突,該相關性閾值可選地是動態相關性閾值。
[0035]例如,該方法基於計算在現有的代碼要素和新的需求之間的新的可追溯性連結的強度,並且確定其是否超過相關性閾值。基於該檢測,一個或多個不一致性通知可以被生成並輸出,例如對軟體開發工作空間的用戶作為消息呈現。
[0036]可選地,當與新的軟體代碼版本中的特定代碼要素連接的新的可追溯性連結超過相關性閾值時,並且當與新的軟體代碼版本中的相同的特定代碼連接的另一可追溯性連結的強度關於應用開發項目的先前軟體代碼版本有所改變時,檢測到需求衝突。
[0037]如上概述和如下所述的方法允許基於對可追溯性連結的分析來確定開發項目的原始碼版本中的需求衝突,並且可選地實時關於需求衝突而警告用戶。[0038]在詳細解釋本發明的至少一個實施例之前,應當理解,本發明在其申請中不必限於在下面的描述中闡述和/或在附圖和/或示例中說明書的組件和/或方法的構造和布置的細節。本發明能夠支持其他實施例或者以各種方式被實踐和執行。
[0039]所屬【技術領域】的技術人員知道,本發明的各個方面可以實現為系統、方法或電腦程式產品。因此,本發明的各個方面可以具體實現為以下形式,即:完全的硬體實施方式、完全的軟體實施方式(包括固件、駐留軟體、微代碼等),或硬體和軟體方面結合的實施方式,這裡可以統稱為「電路」、「模塊」或「系統」。此外,在一些實施例中,本發明的各個方面還可以實現為在一個或多個計算機可讀介質中的電腦程式產品的形式,該計算機可讀介質中包含計算機可讀的程序代碼。
[0040]可以採用一個或多個計算機可讀介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是一但不限於——電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、可攜式計算機盤、硬碟、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或快閃記憶體)、光纖、可攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。
[0041]計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數據信號,其中承載了計算機可讀的程序代碼。這種傳播的數據信號可以採用多種形式,包括——但不限於——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發送、傳播或者傳輸用於由指令執行系統、裝置或者器件使用或者與其結合使用的程序。
[0042]計算機可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括一但不限於一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0043]可以以一種或多種程序設計語言的任意組合來編寫用於執行本發明操作的電腦程式代碼,所述程序設計語言包括面向對象的程序設計語言一諸如Java、Smalltalk、C++等,還包括常規的過程式程序設計語言一諸如「C」語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執行、部分地在用戶計算機上執行、作為一個獨立的軟體包執行、部分在用戶計算機上部分在遠程計算機上執行、或者完全在遠程計算機或伺服器上執行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡一包括區域網(LAN)或廣域網(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用網際網路服務提供商來通過網際網路連接)。
[0044]下面將參照根據本發明實施例的方法、裝置(系統)和電腦程式產品的流程圖和/或框圖描述本發明。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由電腦程式指令實現。這些電腦程式指令可以提供給通用計算機、專用計算機或其他可編程數據處理裝置的處理器,從而生產出一種機器,使得這些電腦程式指令在通過計算機或其他可編程數據處理裝置的處理器執行時,產生了實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的裝置。
[0045]也可以把這些電腦程式指令存儲在計算機可讀介質中,這些指令使得計算機、其他可編程數據處理裝置、或其他設備以特定方式工作,從而,存儲在計算機可讀介質中的指令就產生出包括實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的指令的製造品(article of manufacture)。
[0046]也可以把電腦程式指令加載到計算機、其它可編程數據處理裝置、或其它設備上,使得在計算機、其它可編程數據處理裝置或其它設備上執行一系列操作步驟,以產生計算機實現的過程,從而使得在計算機或其它可編程裝置上執行的指令能夠提供實現流程圖和/或框圖中的方框中規定的功能/操作的過程。
[0047]現在參考圖1,圖1是根據本發明的一些實施例的用於監視這裡被稱為需求的開發需求的完整性的方法100的流程圖。監視通過檢測在應用開發項目的特定軟體代碼版本中的可追溯性連結的強度和應用開發項目的新的軟體代碼版本的該可追溯性連結的強度之間的偏差來進行。如這裡使用的,應用開發項目指關於軟體產品和/或硬體產品和/或服務和/或產品和/或服務的任何部分的開發項目。
[0048]還參考圖2,圖2是根據本發明的一些實施例的用於監視需求完整性和/或需求衝突的系統200的軟體和硬體組件的關係視圖。該系統200包括資料庫201,該資料庫201存儲應用開發項目的一個或多個軟體代碼版本和/或應用開發項目的軟體代碼版本之間的修訂。資料庫201可選地管理軟體代碼版本的數據集和/或軟體代碼版本之間的修訂的數據集。例如,可以使用一個或多個度量記載(metricsdocumenting)識別的版本。資料庫201可以用於存儲多個不同的應用開發項目的軟體代碼版本。該系統200還包括接口 202、處理器203、連結強度模塊204和警告單元205。為了簡便,應該注意,可以使用處理器203來執行以下描述的計算功能。
[0049]首先,如101處所示,接口 202獲取,例如接收或接入,對於具有多個代碼要素的特定應用開發項目的多個需求。該需求可選地是從定義產品或服務或對產品或服務的添加的產品需求文檔(PRD)中提取的和/或其詳細說明的需求。
[0050]多個需求可以作為文件被接收、從文檔掃描、通過到文件的連結來指示、通過諸如文本分析的分析從原始碼中提取、在工作空間中標記或選擇等。
[0051]可選地,如102處所示,例如從資料庫201提供特定應用開發的軟體代碼版本。
[0052]可選地,如103處所示,系統200 (例如關聯強度模塊204)識別並標記在資料庫201中的軟體代碼版本中的一個或多個的應用開發項目的需求中的每一個和每個代碼要素之間的多個可追溯性連結,軟體代碼版本例如為至少應用開發項目的最新軟體代碼版本。可以由操作者手動地和/或通過例如本領域中公知的可追溯性連結取回和/或發現技術、模塊和/或工具、通過軟體代碼的分析自動地識別和標記應用開發項目的多個可追溯性連結。
[0053]現在,如104處所示,系統200 (例如可追溯性連結強度模塊204)計算在當前的軟體代碼版本中的,例如最新的軟體代碼版本中的,可追溯性連結中的每一個的可追溯性連結強度。可選地,可以由系統200自動地識別和/或由工作空間的用戶等選擇當前軟體代碼版本。
[0054]例如,現在參考圖3,圖3是根據本發明的一些實施例的用於測量在應用開發項目中的代碼要素和需求之間連接的可追溯性連結的強度的過程的流程圖300,可追溯性連結諸如前述可追溯性連結。在該過程中,自動地識別需求和可追溯性連結。如301處所示,一個或多個需求文檔被分段成各部分,其中,每個部分包含單個需求。
[0055]然後,如302處所示,使用諸如過濾停用詞算法(filter stop words)和詞幹提取(stemming)的各種技術中的任何一個來預處理每個部分。然後,如303處所示,該部分被加索引並且被轉發到搜尋引擎,如304處所示。此外,如305處所示,特定應用開發的軟體代碼版本的每個代碼要素被轉換成用於識別其將遵循的一個或多個需求的查詢。可選地,如306、307和308所示,提取、擴展和排序該代碼要素中的字詞。例如,對於Java類,從以下欄位中的一個或多個中提取字詞:類名稱、常見名稱、類注釋、常見參數和返回類型、超類名稱和所實現的接口、以及公共函數注釋。然後,可以根據字詞的源的語義來對該字詞進行排序。例如,類名稱被排序為高於注釋。可選地,如309處所示,例如使用各種技術中的任何一個(諸如過濾停用詞算法和詞幹提取)來對所提取和排序的字詞進行預處理。在預處理期間或之前,可選地分離通過駝峰拼寫法(CamelCase)(即中間大寫)或下劃線級聯的字。
[0056]現在,如310處所示,查詢被輸入到搜尋引擎,該搜尋引擎檢索已經從需求文檔中提取的相關需求。在這樣的實施例中,可追溯性連結可以在相應的代碼要素和每個檢索到的需求之間被標記,並且基於查詢字的排序來得到可追溯性連結。
[0057]針對每個代碼要素重複在305-309中描述的過程。
[0058]現在參考情境感知可追溯技術(CATT)工具中的圖3中所描繪的過程的示例性實現。圖4描繪了 CATT工具的截屏,CATT工具呈現了 Eclipse項目中的特定代碼要素、類CVSProjectSetCapability。圖5集中於類,並且示出了處理來自並發版本系統(CVS)的項目的籤出的特定函數。在圖4的左上角用圓圈401標有用於取回與代碼要素相關的文檔的連結。圖6描繪了從上述過程得到的對於類CVSProjectSetCapability取回的結果。非常清楚的是,這是相關的結果,因為它完全作為集中於所給定的類的函數來處理對來自CVS的項目的籤出。
[0059]如105處所示,新的軟體代碼版本被接收,例如,由工作空間的用戶和/或用戶從資料庫201中選擇、被識別為發送到編譯和/或上傳到工作空間的軟體代碼版本等。在新的軟體代碼版本中,例如在應用開發項目的實現過程期間,修訂與必須及時更新的軟體代碼版本(這裡還稱為當前軟體代碼版本)相關的一個或多個代碼要素。
[0060]現在,如106處所示,計算在新的軟體代碼版本中的至少修訂的代碼要素的可追溯性連結的強度。例如,該強度如以上關於框104所述的進行計算。
[0061]如107處所示,識別在當前軟體代碼版本中和新的軟體代碼版本中的特定可追溯性連結的強度之間的強度偏差。可以對於連結修訂的代碼要素的多個可追溯性連結重複該過程。
[0062]現在,如108所示,基於所識別的強度偏差,生成不一致性通知。該不一致性通知可以通知、注釋、和/或在開發工作空間中存在的和/或作為備註添加到原始碼的消息和/或發送到應用開發項目的代表的消息。不一致性通知可選地包括不一致性描述,例如指示需求和/或相應的代碼要素的文本內容。可選地,只有偏差超過特定閾值和/或閾值範圍時,才生成不一致性通知。
[0063]例如,現在參考圖7,圖7是在標記為vl的當前軟體代碼版本1.0中的需求k和代碼要素類i之間的可追溯性連結的強度與標記為v2的新的軟體代碼版本2.0中的同一可追溯性連結的強度之間的匹配的示意性圖示。在該匹配中,如果對於新的軟體代碼版本的可追溯性連結中的一個:
[0064]t(v2)>t(vl);並且
[0065]link_vl (i, k) >link_v2 (i, k)
[0066]則生成不一致性通知,其中link_表示諸如前述強度測量過程的對於特定可追溯性連結的強度測量函數,並且t(x)表示確保新的軟體代碼版本v2比當前版本vl更新的時間函數。
[0067]可選地,新的軟體代碼版本被存儲在資料庫201中,並且根據應用開發項目的較新軟體代碼版本被標記為當前軟體代碼版本以供未來用於監視需求完整性的迭代。
[0068]現在還參考圖8,圖8是根據本發明的一些實施例的基於可追溯性連結的強度來識別在應用開發項目的軟體代碼版本中的衝突需求的流程圖800。框101-103和105-106可選地如上所述。然而,在圖8中還包括框801-804。如801處所示,除了在框101-103和105-106中的應用開發項目的新的和當前的軟體代碼版本,還接收相關性閾值。然後,如802處所示,對新的軟體代碼版本進行分析以識別例如由於新的需求而導致在當前的軟體代碼版本中沒有描述的一個或多個新的可追溯性連結。新的可追溯性連結中的一個或多個的強度與相關性閾值匹配。如果強度中的任何一個高於相關性閾值,則生成並輸出諸如前述不一致性通知的衝突需求通知。否則,該過程結束和/或以另一新的軟體代碼版本的新的可追溯性連結進行重複。
[0069]可選地,用於識別衝突需求的上述過程與用於通過識別可追溯性連結強度的偏差來監視需求完整性的上述過程組合。例如,現在參考圖9,圖9是這樣的組合的過程的示意性圖示。如圖9所例示,標記為vl的當前軟體代碼版本1.0中的需求k和代碼要素類i之間的可追溯性連結的強度與標記為v2的新的軟體代碼版本2.0中的同一可追溯性連結的強度匹配。該匹配類似於以上關於圖7所描述的。該過程還包括驗證在需求j和代碼要素類i之間連接的新的可追溯性連結的強度是否超過I中的示例性關聯性閾值0.5。可選地,如果組合的過程通過識別可追溯性連結強度偏差而識別出需求完整性受到損害並且根據相關性閾值例外(exception)檢測到需求衝突二者,則輸出不一致性通知,如圖9中所描繪的。如果僅需求完整性被損害或者僅檢測到需求衝突,也可以輸出不一致性通知。
[0070]上面描述的方法可用於集成電路晶片製造。附圖中的流程圖和框圖顯示了根據本發明的多個實施例的系統、方法和電腦程式產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用於實現規定的邏輯功能的可執行指令。也應當注意,在有些作為替換的實現中,方框中所標註的功能也可以以不同於附圖中所標註的順序發生。例如,兩個連續的方框實際上可以基本並行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執行規定的功能或動作的專用的基於硬體的系統來實現,或者可以用專用硬體與計算機指令的組合來實現。
[0071]已經出於說明的目的而非窮盡的或者限於所公開的實施例呈現了本發明的各種實施例的描述。在不脫離所描述的實施例的範圍和精神的情況下,許多修改和變化對於那些本領域的普通技術人員來說將是顯而易見的。這裡所使用的術語被選擇為最好地解釋由於市場的技術的本實施例的原理、實際應用或技術改進,或者使得本領域的其他普通技術人員能夠理解這裡所公開的實施例。
[0072]期望在從本申請成熟的專利的壽命期間,將開發許多相關的系統和方法,並且術語處理器、工作空間和資料庫的範圍旨在先驗地包括所有這樣的新的技術。
[0073]如本文所用,術語「約」指±10%。
[0074]術語「包括」、「包含」、「具有」及其變體指「包括但不限於」。該術語包括術語「由...組成」和「基本上由......組成」。
[0075]短語「基本上由......組成」指組合物或方法可以包括其他成分和/或步驟,但
是僅其他成分和/或步驟實質上不改變所需求保護的組合物或方法的基本和新穎的特徵。
[0076]如這裡所使用的,單數形式「一」、「一種」和「該」包括複數引用,除非上下文另有明確規定。例如,術語「化合物」或「至少一種化合物」可以包括多個化合物,包括其混合物。
[0077]詞語「示例性」這裡用於表示「用作示例、實例或說明」。描述為「示例性」的任何實施例不必被解釋為優於或勝過其他實施例和/或排除其他實施例的特徵的併入。
[0078]詞語「可選地」這裡用於表示單詞「在一些實施例中提供而在其他實施例中不提供」。本發明的任何特定實施例可以包括多個「可選的」特徵,除非這些特徵衝突。
[0079]在本申請中,本發明的各種實施例可以以範圍的形式存在。應當理解,範圍形式的描述僅僅是為了方便和簡潔,並且不應被理解為對本發明範圍的硬性限制。因此,範圍的描述應當被認為已經具體公開了所有可能的子範圍以及該範圍內的獨立數值。例如,諸如從I到6的範圍的描述應當被視作已經具體公開了子範圍,諸如從I到3、從I到4、從I到5、從2到4、從2到6、從3到6等、以及該範圍內的獨立數字,例如,1、2、3、4、5和6。不論範圍的寬度如何這都是適用的。
[0080]每當這裡指示數值範圍時,都意味著包括在所指示的範圍內的任何例舉的數字(分數或整數)。短語在第一指示數字和第二指示數字「之間的範圍」和從第一指示數字「到」第二指示數字的「範圍」這裡可互換地使用,並且意味著包括第一和第二指示數字以及其之間的所有分數和整數。
[0081]可以理解,為清楚起見在各個實施例的上下文中描述的本發明的特定特徵還可以以單個實施例中的組合來實現。相反,為清楚起見在單個實施例的上下文中描述的本發明的各種特徵還可以單獨地或以任何適當的子組合或作為適用於本發明的任何其他描述的實施例來提供。在各種實施例的上下文中描述的特定特徵不被認為是那些實施例的必要特徵,除非該實施例沒有那些要素就無法操作。
[0082]雖然已經結合特定實施例描述本發明,但是明顯的是,許多替換、修改和變化對於本領域技術人員來說都是顯而易見的。因此,旨在包括落入所附權利需求的精神和範圍之內的所有這樣的替換、修改和變化。
[0083]在本說明書中提及的所有出版物、專利和專利申請全部併入本申請中,就如同每個獨立的出版物、專利或專利申請具體地並且獨立地指示通過引用被合併於此。此外,本申請中的任何參考文獻的引用或標識不應當被解釋為承認這樣的參考文獻可作為現有技術。在使用節標題的程度上,其不應該被解釋為必需的限制。
【權利要求】
1.一種用於監視應用開發項目的完整性的計算機化方法,所述應用開發項目具有多個代碼要素和多個需求,所述方法包括: 計算用於多個可追溯性連結中的每一個的第一強度,多個可追溯性連結中的每一個都在所述應用開發項目的當前軟體代碼版本中的所述多個代碼要素的特定代碼要素和所述多個需求中的一個需求之間; 計算用於新軟體代碼中的所述多個可追溯性連結中的每一個的第二強度,所述新軟體代碼包括對來自所述當前軟體版本的所述特定代碼要素的修訂;以及 基於在相應所述第二強度和所述第一強度之間的偏差來生成不一致性通知。
2.根據權利要求1所述的方法,進一步包括對所述應用開發項目和所述多個需求進行分析,以自動地識別所述多個可追溯性連結。
3.根據權利要求1所述的方法,進一步包括從用戶接收指示所述多個可追溯性連結的手動輸入。
4.根據權利要求1所述的方法,進一步包括提供不一致性通知閾值;其中,所述生成包括如果所述偏差大於所述不一致性通知閾值,則生成所述不一致性通知。
5.根據權利要求1所述的方法,進一步包括提供相關性閾值;其中,所述新軟體代碼版本包括新需求;其中,所述生成包括計算在所述特定代碼要素和所述新需求之間的另一可追溯性連結的第三強度,並且如果所述第三強度超過所述相關性閾值,則執行所述生成。
6.根據權利要求5所述的方法,其中,所述不一致性通知指示所述新需求和所述多個需求中的至少一個之間的衝突。
7.根據權利要求1所述的方法,其中,所述計算根據對所述特定代碼要素的語義分析來執行。
8.根據權利要求1所述的方法,其中,所述計算根據對所述多個需求的語義分析來執行。
9.根據權利要求1所述的方法,其中,所述當前軟體代碼版本和所述新軟體代碼二者被存儲在公共資料庫中,並且通過用戶和對所述資料庫中的記錄的自動分析中的至少一項來選擇。
10.根據權利要求1所述的方法,其中,對於所述應用開發項目的當前軟體代碼版本和新軟體代碼版本中的多個代碼要素中的每一個執行所述計算第一強度、所述計算第二強度和所述生成。
11.一種包括適於執行根據前述方法權利要求中的任何一項所述的方法的所有步驟的裝置的系統。
12.一種包括指令的電腦程式,所述指令用於在所述電腦程式在計算機系統上被執行時,執行根據前述方法權利要求中的任何一項所述的方法的所有步驟。
【文檔編號】G06F9/44GK103890722SQ201280052338
【公開日】2014年6月25日 申請日期:2012年10月24日 優先權日:2011年11月6日
【發明者】Y·希米奧諾維希, M·尼森森, J·布納亞胡 申請人:國際商業機器公司