可以對整合規(guī)則進行修改,在接收到整合指令時,可以根據(jù)整合規(guī)則(或修改后的整合規(guī)則)對該至少兩個系統(tǒng)整合為一個系統(tǒng),從而可以實現(xiàn)軟件開發(fā)的需求,提高軟件開發(fā)的效率。
[0043]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖及具體實施例對本發(fā)明作進一步地詳細描述。
[0044]如圖2所示,本發(fā)明實施例提供了一種軟件開發(fā)方法,該方法可以包括以下步驟:
[0045]步驟201:根據(jù)軟件開發(fā)需求,獲取能夠滿足該需求的至少兩個系統(tǒng)。
[0046]由于現(xiàn)有技術(shù)中若需要進行軟件開發(fā),是根據(jù)軟件開發(fā)需求,直接進行代碼設(shè)計,導致軟件開發(fā)的效率較低,且可能導致軟件開發(fā)的錯誤率較高。
[0047]在本實施例中,可以根據(jù)軟件開發(fā)需求,獲取能夠滿足該需求的至少兩個系統(tǒng),可以通過該至少兩個系統(tǒng)進行整合,以快速實現(xiàn)軟件開發(fā)。
[0048]在本發(fā)明一個優(yōu)選實施例中,也可以是根據(jù)軟件開發(fā)需求,獲取能夠滿足部分需求的一個或多個系統(tǒng),并由開發(fā)人員對剩余需求進行軟件開發(fā),并在能夠滿足部分需求的一個或多個系統(tǒng)與開發(fā)人員開發(fā)的系統(tǒng)進行整合,同樣可以提高軟件開發(fā)的效率。
[0049]下面以獲取了能夠滿足該需求的兩個系統(tǒng)(例如,系統(tǒng)1和系統(tǒng)2)為例,對本發(fā)明實施例進行詳細說明。
[0050]步驟202:讀取系統(tǒng)1和系統(tǒng)2,對系統(tǒng)1和系統(tǒng)2,分別系統(tǒng)文件分析操作。
[0051]請參考圖3,可以對系統(tǒng)進行如下系統(tǒng)文件的分析操作:
[0052]步驟301:讀取系統(tǒng)的目錄結(jié)構(gòu)。其中,該目標結(jié)構(gòu)中包括多個源文件。
[0053]步驟302:定位開始位置。其中,該開始位置為main函數(shù)。
[0054]步驟303:從開始位置處開始逐個調(diào)用當前系統(tǒng)中各個源文件,并分析源文件之間的依賴關(guān)系和/或繼承關(guān)系。
[0055]源文件之間的依賴關(guān)系是指一個源文件的存在依賴于另一個源文件,例如,源文件A中包括源文件B的一個變量參數(shù),那么源文件A依賴源文件B,因為,沒有源文件B,源文件A無法運行。
[0056]源文件之間的繼承關(guān)系是源文件重用的一種,為的是節(jié)約資源。
[0057]在本實施例中,不僅需要分析源文件之間的依賴關(guān)系和/或繼承關(guān)系,還需要分析出每個源文件所能夠?qū)崿F(xiàn)的功能。例如,源文件的類型可以包括:Java、.xml、, dll、, java等,通過對這些類型的文件進行掃描,可以獲取到每個源文件中的注釋,其中,可以通過源文件中的等符號來獲取源文件中的注釋,并根據(jù)這些注釋來確定源文件所能夠?qū)崿F(xiàn)的功能。
[0058]步驟304:輸出分析結(jié)果。
[0059]在本實施例中,可以通過該分析結(jié)果中源文件之間的依賴關(guān)系和/或繼承關(guān)系,確定系統(tǒng)中開發(fā)模塊之間的耦合關(guān)系,從而可以使開發(fā)人員對系統(tǒng)1系統(tǒng)2中源文件的功能、系統(tǒng)架構(gòu)提供說明,也為開發(fā)人員對后續(xù)的結(jié)構(gòu)重構(gòu)、模塊劃分提供理論基礎(chǔ)。
[0060]步驟203:對每一個源文件中的源代碼進行跟蹤,確定源文件中各個函數(shù)之間的調(diào)用關(guān)系及每個函數(shù)的實現(xiàn)功能。
[0061]在本實施例中,通過分析出的源文件之間的依賴關(guān)系和/或繼承關(guān)系,對業(yè)務邏輯進行分析,整理出函數(shù)調(diào)用關(guān)系,可以為系統(tǒng)開發(fā)人員快速理解系統(tǒng)提供基礎(chǔ),以提高軟件開發(fā)的效率。
[0062]步驟204:以圖形的形式分別展示每一個系統(tǒng)中源文件之間的依賴關(guān)系和/或繼承關(guān)系,以及源文件中函數(shù)之間的調(diào)用關(guān)系及每個函數(shù)的實現(xiàn)功能。
[0063]在本實施例中,可以以圖形的形式來展示系統(tǒng)中源文件之間的關(guān)系,以及函數(shù)調(diào)用關(guān)系,以使開發(fā)人員能夠直觀的對系統(tǒng)架構(gòu)進行了解。
[0064]在本發(fā)明一個實施例中,還可以根據(jù)上述關(guān)系確定出相應的拆分建議,以盡量降低模塊之間的耦合性。
[0065]步驟205:根據(jù)圖形中展示的每一個系統(tǒng)中源文件之間的依賴關(guān)系和/或繼承關(guān)系,以及源文件中函數(shù)之間的調(diào)用關(guān)系及每個函數(shù)的實現(xiàn)功能,確定在將所述至少兩個系統(tǒng)進行整合時的接口調(diào)用關(guān)系。
[0066]在本實施例中,為了提高軟件開發(fā)效率,可以將系統(tǒng)1和系統(tǒng)2進行整合,在確定整合規(guī)則時,可以考慮盡量降低整合后系統(tǒng)的耦合性,增加系統(tǒng)的模塊化,對于不同源文件中的函數(shù)依賴盡量采用接口的方式來實現(xiàn),以降低系統(tǒng)存在的風險及實現(xiàn)整個系統(tǒng)的統(tǒng)
ο
[0067]步驟206:展示所述整合規(guī)則,并在接收到整合指令時,根據(jù)所述整合規(guī)則將所述至少兩個系統(tǒng)整合為一個系統(tǒng),以實現(xiàn)所述軟件開發(fā)需求。
[0068]在本實施例中,由于該整合規(guī)則可以為開發(fā)人員提供整合建議,而如何對該至少兩個系統(tǒng)進行整合,由開發(fā)人員對其進行確定,且開發(fā)人員可以對整合規(guī)則進行修改,在接收到整合指令時,可以根據(jù)整合規(guī)則(或修改后的整合規(guī)則)對該至少兩個系統(tǒng)整合為一個系統(tǒng),從而可以實現(xiàn)軟件開發(fā)的需求,提高軟件開發(fā)的效率。
[0069]如圖4、圖5所示,本發(fā)明實施例提供了一種軟件開發(fā)裝置。裝置實施例可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實現(xiàn)。從硬件層面而言,如圖4所示,為本發(fā)明實施例軟件開發(fā)裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖4所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲器之外,實施例中裝置所在的設(shè)備通常還可以包括其他硬件,如負責處理報文的轉(zhuǎn)發(fā)芯片等等。以軟件實現(xiàn)為例,如圖5所示,作為一個邏輯意義上的裝置,是通過其所在設(shè)備的CPU將非易失性存儲器中對應的計算機程序指令讀取到內(nèi)存中運行形成的。本實施例提供的軟件開發(fā)裝置包括:
[0070]獲取單元501,用于根據(jù)軟件開發(fā)需求,獲取能夠滿足該需求的至少兩個系統(tǒng);
[0071]分析單元502,用于對獲取的所述至少兩個系統(tǒng)中的每一個系統(tǒng)分別進行代碼結(jié)構(gòu)的分析;
[0072]確定單元503,用于根據(jù)每一個系統(tǒng)所對應的分析結(jié)果,確定對所述至少兩個系統(tǒng)進行整合的整合規(guī)則。
[0073]進一步地,所述獲取單元501,具體用于對所述至少兩個系統(tǒng)中的每一個當前系統(tǒng),分別執(zhí)行如下操作:讀取當前系統(tǒng)的目錄結(jié)構(gòu);根據(jù)當前系統(tǒng)的目錄結(jié)構(gòu),定位開始位置,并從所述開始位置處開始逐個調(diào)用當前系統(tǒng)中各個源文件,并分析源文件之間的依賴關(guān)系和/或繼承關(guān)系;以及對每一個源文件中的源代碼進行跟蹤,確定源文件中各個函數(shù)之間的調(diào)用關(guān)系及每個函數(shù)的實現(xiàn)功能。
[0074]在本發(fā)明一個優(yōu)選實施例中,請參考圖6,該軟件開發(fā)裝置可以進一步包括:
[0075]第一展示單元601,用于以圖形的形式分別展示每一個系統(tǒng)中源文件之間的依賴關(guān)系和/或繼承關(guān)系,以及源文件中函數(shù)之間的調(diào)用關(guān)系及每個函數(shù)的實現(xiàn)功能。
[0076]進一步地,所述確定單元503,用于根據(jù)圖形中展示的每一個系統(tǒng)中源文件之間的依賴關(guān)系和/或繼承關(guān)系,以及源文件中函數(shù)之間的調(diào)用關(guān)系及每個函數(shù)的實現(xiàn)功能,確定在將所述至少兩個系統(tǒng)進行整合時的接口調(diào)用關(guān)系。
[0077]進一步包括:
[0078]第二展示單元602,用于展示所述整合規(guī)則,并在接收到整合指令時,根據(jù)所述整合規(guī)則將所述至少兩個系統(tǒng)整合為一個系統(tǒng),以實現(xiàn)所述軟件開發(fā)需求。
[0079]綜上,本發(fā)明實施例至少可以實現(xiàn)如下有益效果:
[0080]1、在本發(fā)明實施例中,通過獲取能夠滿足軟件開發(fā)需求的至少兩個系統(tǒng),以及對每一個系統(tǒng)分別進行代碼結(jié)構(gòu)的分析,可以根據(jù)分析結(jié)果,確定出對該至少兩個系統(tǒng)進行整合的整合規(guī)