環(huán)路檢測方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種對軟件系統(tǒng)和/或硬件系統(tǒng)中存在的循環(huán)環(huán)路進行檢測的方法及系統(tǒng),更具體地涉及一種環(huán)路檢測方法及采用該方法的系統(tǒng)。該方法通過軟件系統(tǒng)和/或硬件系統(tǒng)中的入口節(jié)點的數(shù)量與出入口節(jié)點的數(shù)量之間的關系來確定軟件系統(tǒng)和/或硬件系統(tǒng)中是否存在循環(huán)環(huán)路。另外,本發(fā)明還提供了采用上述方法的系統(tǒng)以支持對軟件系統(tǒng)和/或硬件系統(tǒng)的檢測。通過采用上述的技術方案,本發(fā)明提供了一種環(huán)路檢測方法及采用該方法的系統(tǒng),其能夠方便檢測軟件系統(tǒng)和/或硬件系統(tǒng)中是否存在環(huán)路,工作過程簡單,提高了效率,而且還能大幅度的提高性能。
【專利說明】環(huán)路檢測方法及系統(tǒng)【技術領域】
[0001]本發(fā)明涉及一種對軟件系統(tǒng)和/或硬件系統(tǒng)中存在的循環(huán)環(huán)路進行檢測的方法及系統(tǒng),更具體地涉及一種環(huán)路檢測方法及采用該方法的系統(tǒng)。
【背景技術】
[0002]在現(xiàn)在的軟件系統(tǒng)和/或硬件系統(tǒng)的創(chuàng)建過程中,有時會出現(xiàn)不需要的循環(huán)設計出現(xiàn),導致系統(tǒng)出現(xiàn)缺陷。而現(xiàn)有的解決方案是創(chuàng)建例如流程圖、結構圖等的圖表來描述完整的軟件系統(tǒng)和/或硬件系統(tǒng)的整個過程或結構,該圖表由兩個以上步驟或模塊組成,即兩個以上節(jié)點組成。而判斷該圖表中是否存在環(huán)路的方式就是遍歷各個節(jié)點,即從起點出發(fā)經(jīng)過所有節(jié)點到達終點執(zhí)行結束。
[0003]隨著軟件系統(tǒng)和/或硬件系統(tǒng)在各行各行業(yè)工作中的深入應用,提供各種可自定義的工作流程和系統(tǒng)結構成為軟件系統(tǒng)和/或硬件系統(tǒng)中很常見的功能。然而,在用戶定制的工作流程和系統(tǒng)結構中,可能由于各種原因出現(xiàn)不需要環(huán)路,即已經(jīng)執(zhí)行的節(jié)點經(jīng)過若干條件或步驟后回到當前已經(jīng)執(zhí)行的節(jié)點形成環(huán)路,無法跳出循環(huán)。因此,為了避免軟件系統(tǒng)和/或硬件系統(tǒng)中出現(xiàn)環(huán)路,系統(tǒng)需要在用戶定制工作流程或系統(tǒng)結構時或者執(zhí)行流程或?qū)崿F(xiàn)系統(tǒng)結構前,檢測軟件系統(tǒng)和/或硬件系統(tǒng)中是否存在環(huán)路,以對應地進行修正。
[0004]現(xiàn)有技術雖然已經(jīng)能解決軟件系統(tǒng)和/或硬件系統(tǒng)中的環(huán)路檢測的問題,但是當軟件系統(tǒng)和/或硬件系統(tǒng)中的節(jié)點和路徑過多,而且關系很復雜時,遍歷軟件系統(tǒng)和/或硬件系統(tǒng)的做法會導致邏輯復雜,而且工作消耗量巨大,尤其是當軟件系統(tǒng)和/或硬件系統(tǒng)本身非常復雜時,性能問題將更突出。
【發(fā)明內(nèi)容】
[0005]基于上述現(xiàn)有技術的缺點,本發(fā)明的發(fā)明目的在于提供一種環(huán)路檢測方法及采用該方法的系統(tǒng),其能夠方便檢測軟件系統(tǒng)和/或硬件系統(tǒng)中是否存在環(huán)路,工作過程簡單,提聞了效率,而且還能大幅度的提聞性能。
[0006]為了實現(xiàn)上述的發(fā)明目的,本發(fā)明采用如下的技術方案:
[0007]一種環(huán)路檢測方法,所述方法包括:
[0008]I)確定檢測對象,確定所述檢測對象的節(jié)點,并為所述節(jié)點創(chuàng)建入口節(jié)點和出口節(jié)點的結對關系;
[0009]2)計算當前所述結對關系的所述入口節(jié)點的數(shù)量,相同的所述入口節(jié)點不重復計數(shù);
[0010]3)判斷所述入口節(jié)點的數(shù)量是否大于零,如果為是,則執(zhí)行下一步;如果為否,則轉到步驟9)輸出結果后結束;
[0011]4)判斷既是所述出口節(jié)點又是所述入口節(jié)點的節(jié)點并標記為出入口節(jié)點,相同的所述出入口節(jié)點不重復計數(shù),記錄所述出入口節(jié)點的數(shù)量;
[0012]5)判斷所述入口節(jié)點的數(shù)量是否大于所述出入口節(jié)點的數(shù)量,如果為是,則執(zhí)行下一步;如果為否,則轉到步驟8)輸出結果并結束;
[0013]6)將未在所述出口節(jié)點中出現(xiàn)過的所述入口節(jié)點對應的結對關系移除;
[0014]7)然后針對當前剩下的所述結對關系,返回步驟2)開始依次執(zhí)行;
[0015]8)如果判斷結果為否,則表示存在所述環(huán)路,檢測結束;
[0016]9)如果所述入口節(jié)點數(shù)量為零,則表示不存在所述環(huán)路,檢測結束。
[0017]具體地,在步驟I)中,為了確定所述檢測對象的節(jié)點,在執(zhí)行步驟I)之前根據(jù)所述檢測對象的工作原理和/或電氣關系和/或結構特征制作所述檢測對象的流程圖、線路圖、結構示意圖中的至少一種。
[0018]進一步地,所述節(jié)點為所述流程圖中的一個步驟或所述線路圖中的一個組件或所述結構示意圖中的一個模塊。
[0019]另外,所述結對關系包括分別具有入口功能和出口功能的相鄰節(jié)點之間的映射關系,其中具有出口功能的節(jié)點包括虛擬的節(jié)點。所述相鄰節(jié)點之間存在上下游關系。
[0020]一種采用如上所述的方法的環(huán)路檢測系統(tǒng),所述系統(tǒng)包括:
[0021]結對關系創(chuàng)建模塊,其用于根據(jù)節(jié)點之間的關系創(chuàng)建入口節(jié)點和出口節(jié)點的結對關系數(shù)據(jù)結構;
[0022]入口節(jié)點數(shù)運算模塊,其用于計算所述結對關系中的入口節(jié)點的數(shù)量;
[0023]出入口節(jié)點數(shù)運算模塊,其用于計算當前所述結對關系中既是入口節(jié)點又是出口節(jié)點的出入口節(jié)點的數(shù)量;
[0024]判斷模塊,其用于根據(jù)所述入口節(jié)點數(shù)運算模塊的計算結果和所述出入口節(jié)點數(shù)運算模塊的計算結果判斷是否存在環(huán)路;
[0025]結對關系移除模塊,其用于移除或屏蔽所述結對關系;
[0026]所述結對關系創(chuàng)建模塊、所述入口節(jié)點數(shù)運算模塊、所述出入口節(jié)點數(shù)運算模塊、所述判斷模塊和所述結對關系移除模塊彼此數(shù)據(jù)連通。
[0027]具體地,在所述結對關系創(chuàng)建模塊中,所述節(jié)點之間的關系為相鄰節(jié)點之間的上下游關系。
[0028]優(yōu)選地,所述結對關系移除模塊移除或屏蔽的所述結對關系是未作為所述出口節(jié)點出現(xiàn)的所述入口節(jié)點對應的結對關系。
[0029]更具體地,所述判斷模塊為比較器,所述比較器至少在預定閾值時間內(nèi)存儲所述入口節(jié)點數(shù)運算模塊的計算結果和所述出入口節(jié)點數(shù)運算模塊的計算結果,并進行比較,根據(jù)比較后的結果輸出是否有環(huán)路的判斷結果。
[0030]另外,所述系統(tǒng)還包括與其它模塊連通的用于控制的控制模塊,所述控制模塊至少具有用于統(tǒng)一協(xié)調(diào)其它模塊工作的總線時鐘以及控制其它模塊工作的控制器。
[0031]需要具體說明的是,在為檢測對象即現(xiàn)有的軟件系統(tǒng)和/或硬件系統(tǒng)制作流程圖、線路圖、結構示意圖時可以采用任何已知方法以方便并且準確地完成,而在流程圖中的步驟、線路圖中的電氣元件或組件或其它系統(tǒng)和結構示意圖中的模塊或單元等均可以是本發(fā)明所提到的節(jié)點;術語“虛擬的節(jié)點”表示在圖表中的結束位置只有入口節(jié)點而沒有對應的出口節(jié)點,對應的結對關系則對應表現(xiàn)為只有入口節(jié)點的對應關系。
[0032]通過采用上述的技術方案,本發(fā)明提供了一種環(huán)路檢測方法及采用該方法的系統(tǒng),其能夠方便檢測軟件系統(tǒng)和/或硬件系統(tǒng)中是否存在環(huán)路,工作過程簡單,提高了效率,而且還能大幅度的提高性能。
【專利附圖】
【附圖說明】
[0033]圖1中示出的是本發(fā)明所采用的環(huán)路檢測方法的流程圖;
[0034]圖2中示出的是應用圖1中所示的環(huán)路檢測方法的第一示例的檢測對象(即軟件系統(tǒng))的流程圖;
[0035]圖3中示出的是應用圖1中所示的環(huán)路檢測方法的第二示例的檢測對象(即硬件系統(tǒng))的連接結構示意圖;
[0036]圖4中示出的是采用如圖1中的方法的系統(tǒng)的連接結構示意圖。
【具體實施方式】
[0037]本發(fā)明在于提供一種環(huán)路檢測方法及采用該方法的系統(tǒng),其能夠方便檢測軟件系統(tǒng)和/或硬件系統(tǒng)中是否存在環(huán)路,其工作過程簡單,提高了效率,而且還能大幅度地提高性能。下面結合說明書附圖并采用【具體實施方式】的形式對本發(fā)明進行了詳細地說明。
[0038]圖1中示出的是本發(fā)明所采用的環(huán)路檢測方法的流程圖。本發(fā)明提供了一種簡單、高效的檢測軟件系統(tǒng)和/或硬件系統(tǒng)中是否存在環(huán)路的方法。該方法的具體方案如下:
[0039]I)確定檢測對象,確定檢測對象的節(jié)點,并為節(jié)點創(chuàng)建入口節(jié)點和出口節(jié)點的結對關系;
[0040]2)計算當前結對關系的入口節(jié)點的數(shù)量,相同的入口節(jié)點不重復計數(shù);
[0041]3)判斷入口節(jié)點的數(shù)量是否大于零,如果為是,則執(zhí)行下一步;如果為否,則轉到步驟9)輸出結果后結束;
[0042]4 )判斷既是出口節(jié)點又是入口節(jié)點的節(jié)點并標記為出入口節(jié)點,相同的出入口節(jié)點不重復計數(shù),記錄出入口節(jié)點的數(shù)量;
[0043]5)判斷入口節(jié)點的數(shù)量是否大于出入口節(jié)點的數(shù)量,如果為是,則執(zhí)行下一步;如果為否,則轉到步驟8)輸出結果并結束;
[0044]6)將未在出口節(jié)點中出現(xiàn)過的入口節(jié)點對應的結對關系移除;
[0045]7)然后針對當前剩下的結對關系,返回步驟2)開始依次執(zhí)行;
[0046]8)如果判斷結果為否,則表不存在環(huán)路,檢測結束;
[0047]9)如果入口節(jié)點數(shù)量為零,則表示不存在環(huán)路,檢測結束。
[0048]為了使本發(fā)明的內(nèi)容更清楚明了,下面結合具體的示例進一步描述本發(fā)明的方法的具體實施過程。
[0049]實施例1:檢測簡單流程圖環(huán)路
[0050]圖2中示出的是應用圖1中所示的環(huán)路檢測方法的第一示例的檢測對象(即軟件系統(tǒng))的流程圖。
[0051]I)根據(jù)該軟件系統(tǒng)的流程圖、創(chuàng)建入口節(jié)點和出口節(jié)點的結對關系;
[0052]在本實例中,針對圖2,可創(chuàng)建如下表所示的結對關系。
[0053]
【權利要求】
1.一種環(huán)路檢測方法,其特征在于,所述方法包括: 1)確定檢測對象,確定所述檢測對象的節(jié)點,并為所述節(jié)點創(chuàng)建入口節(jié)點和出口節(jié)點的結對關系; 2)計算當前所述結對關系的所述入口節(jié)點的數(shù)量,相同的所述入口節(jié)點不重復計數(shù); 3)判斷所述入口節(jié)點的數(shù)量是否大于零,如果為是,則執(zhí)行下一步;如果為否,則轉到步驟9)輸出結果后結束; 4)判斷既是所述出口節(jié)點又是所述入口節(jié)點的節(jié)點并標記為出入口節(jié)點,相同的所述出入口節(jié)點不重復計數(shù),記錄所述出入口節(jié)點的數(shù)量; 5)判斷所述入口節(jié)點的數(shù)量是否大于所述出入口節(jié)點的數(shù)量,如果為是,則執(zhí)行下一步;如果為否,則轉到步驟8)輸出結果并結束; 6)將未在所述出口節(jié)點中出現(xiàn)過的所述入口節(jié)點對應的結對關系移除; 7)然后針對當前剩下的所述結對關系,返回步驟2)開始依次執(zhí)行; 8)如果判斷結果為否,則表示存在所述環(huán)路,檢測結束; 9)如果所述入口節(jié)點數(shù)量為零,則表示不存在所述環(huán)路,檢測結束。
2.根據(jù)權利要求1所述的方法,其特征在于,在步驟I)中,為了確定所述檢測對象的節(jié)點,在執(zhí)行所述步驟I)之前根據(jù)所述檢測對象的工作原理和/或電氣關系和/或結構特征制作所述檢測對象的流程圖、線路圖、結構示意圖中的至少一種。
3.根據(jù)權利要求2所述的方法,其特征在于,所述節(jié)點為所述流程圖中的一個步驟或所述線路圖中的一個組件或所述結構示意圖中的一個模塊。
4.根據(jù)權利要求1所述的方法,其特征在于,所述結對關系包括分別具有入口功能和出口功能的相鄰節(jié)點之間的映射關系,其中具有出口功能的節(jié)點包括虛擬的節(jié)點。
5.根據(jù)權利要求4所述的方法,其特征在于,所述相鄰節(jié)點之間存在上下游關系。
6.一種采用如權利要求1至5中任意一項所述的方法的環(huán)路檢測系統(tǒng),其特征在于,所述系統(tǒng)包括: 結對關系創(chuàng)建模塊,其用于根據(jù)節(jié)點之間的關系創(chuàng)建入口節(jié)點和出口節(jié)點的結對關系; 入口節(jié)點數(shù)運算模塊,其用于計算所述結對關系中的入口節(jié)點數(shù)量; 出入口節(jié)點數(shù)運算模塊,其用于計算當前所述結對關系中既是入口節(jié)點又是出口節(jié)點的出入口節(jié)點的數(shù)量; 判斷模塊,其用于根據(jù)所述入口節(jié)點數(shù)運算模塊的計算結果和所述出入口節(jié)點數(shù)運算模塊的計算結果判斷是否存在環(huán)路; 結對關系移除模塊,其用于移除或屏蔽所述結對關系; 所述結對關系創(chuàng)建模塊、所述入口節(jié)點數(shù)運算模塊、所述出入口節(jié)點數(shù)運算模塊、所述判斷模塊和所述結對關系移除模塊彼此數(shù)據(jù)連通。
7.根據(jù)權利要求6所述的系統(tǒng),其特征在于,在所述結對關系創(chuàng)建模塊中,所述節(jié)點之間的關系為相鄰節(jié)點之間的上下游關系。
8.根據(jù)權利要求6所述的系統(tǒng),其特征在于,所述結對關系移除模塊移除或屏蔽的所述結對關系是未作為所述出口節(jié)點出現(xiàn)的所述入口節(jié)點對應的結對關系。
9.根據(jù)權利要求6所述的系統(tǒng),其特征在于,所述判斷模塊為比較器,所述比較器至少在預定閾值時間內(nèi)存儲所述入口節(jié)點數(shù)運算模塊的計算結果和所述出入口節(jié)點數(shù)運算模塊的計算結果,并進行比較,根據(jù)比較后的結果輸出是否有環(huán)路的判斷結果。
10.根據(jù)權利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括與其它模塊連通的用于控制的控制模塊,所述控制模塊至少具有用于統(tǒng)一協(xié)調(diào)其它模塊工作的總線時鐘以及控制其它模塊工作的控制器。
【文檔編號】H04L12/26GK103618650SQ201310654813
【公開日】2014年3月5日 申請日期:2013年12月5日 優(yōu)先權日:2013年12月5日
【發(fā)明者】陳繼娟 申請人:用友軟件股份有限公司