用于可視化地實現(xiàn)軟件代碼的方法和設備的制造方法
【專利摘要】本發(fā)明涉及用于可視化地實現(xiàn)軟件代碼的方法和設備。為此,根據(jù)本發(fā)明的用于可視化地實現(xiàn)軟件代碼的方法包括以下步驟:通過代碼塊生成單元,根據(jù)需求和功能,以塊為單位,生成用于實現(xiàn)軟件代碼的代碼塊;以及通過代碼塊設置單元,基于用戶輸入的信息,設置包含于代碼塊中的代碼塊屬性或內(nèi)部屬性代碼,其中設置代碼塊屬性或內(nèi)部屬性代碼的步驟包括以下步驟:在所述代碼塊中包含關于代碼塊的功能信息、關于所述功能信息的描述信息、以及內(nèi)部屬性代碼。
【專利說明】
用于可視化地實現(xiàn)軟件代碼的方法和設備
技術領域
[0001]本發(fā)明一般涉及用于可視化地實現(xiàn)軟件代碼的方法和設備,更具體地,本發(fā)明涉及利用代碼塊可視化地實現(xiàn)軟件代碼的方法和設備。
[0002]本發(fā)明基于并要求2014年5月22日遞交的韓國專利申請10-2014-0061828的優(yōu)先權,其全部內(nèi)容以引用方式并入于此。
【背景技術】
[0003]—般而言,經(jīng)由從導出工程師需求到設計功能、實現(xiàn)代碼和驗證軟件的一系列程序來執(zhí)行軟件的開發(fā)。在這些程序期間,存在大量困難,但是已經(jīng)開發(fā)出用于顯而易見地布置需求的工具、用于建模功能的工具、用于支持代碼的編程的工具等,并且這些工具向軟件開發(fā)者提供了大量幫助。
[0004]然而,為了工程師基于所導出的需求來實現(xiàn)軟件,必須設計滿足需求的詳細功能并將其功能實現(xiàn)為代碼;但是不存在這樣一種工具,直接支持用于將詳細功能實現(xiàn)為代碼的方法。換句話說,不存在這樣的工具:其使得軟件的功能以一對一方式對應于代碼,并且與實現(xiàn)需求和功能設計的軟件代碼的位置、如何實現(xiàn)以及與其它功能存在哪些關系相關地,顯而易見地檢查和實現(xiàn)代碼。
[0005]人類可以理解以典型的語言、繪畫或圖表表示的功能,并且必須以諸如代碼的其它形式進行表示。也就是說,這種表示必須經(jīng)由諸如人的媒介從常規(guī)語言轉換成編程語言。由此,即使合意地設計了功能,其也可能不與其實現(xiàn)的代碼匹配,或者對應的功能可能被錯誤地實現(xiàn),導致在軟件中檢測到許多錯誤。此外,雖然未外在表示,但當以與期望實現(xiàn)代碼的方式不同的方式修改代碼時,非??赡艹霈F(xiàn)錯誤。
[0006]在從實現(xiàn)軟件起已經(jīng)過去了較長時段的情況下,即使存在定義的需求和設計數(shù)據(jù),也可能發(fā)生不能容易理解軟件代碼的結構的現(xiàn)象。也就是說,由于在表示軟件功能所需的常規(guī)語言和用于實現(xiàn)軟件的代碼之間表示上的不同,軟件代碼可以在其中包括多個非期望元素,這不僅取決于實現(xiàn)軟件代碼的人的個人傾向和意圖以及解決問題的方案,而且取決于理解需求的方法和用于重新解釋軟件設計的方法。由此,這些元素成為對代碼的普遍理解和解釋的巨大阻礙,并且軟件代碼的可讀性惡化,因此阻礙軟件的高效開發(fā)。
[0007]閱讀和理解編程語言比一般語言更難。在編程語言中,必須根據(jù)控制流順序配置代碼,并且必須針對每個表示精確聲明和定義代碼。也就是說,除非根據(jù)排序順序地表示編程語言中的組件,否則表示具有不同的含義。除非精確定義在這種編程語言和語法中使用的數(shù)據(jù)(例如,命令語句)的形式或含義,否則會發(fā)生錯誤。其原因是計算機不能考慮上下文而確定或理解數(shù)據(jù),并且因此必須清楚定義和排序所有編程語言中的語句以構成單個含義。由此,以文本形式配置常規(guī)源代碼,并且通過單行表示代碼的語義單元,并因此根據(jù)行的順序配置代碼。
[0008]編程語言沒有精確表示用于在定義功能時幫助理解人或哲學或抽象功能的圖表或圖。另外,由于代碼的語義單元是行,所以在大量代碼的情況下,直到通過獨立且直接地檢查各行來解釋代碼的含義,才容易理解軟件詳細實現(xiàn)的程度。當然,可以使用設計文獻來調查代碼的近似含義。然而,如上所述,由于在設計文獻和實際代碼之間存在表示的不同(在常規(guī)語言和編程語言之間表示的不同),所以出現(xiàn)以下問題:僅通過查看設計文獻不能檢查實現(xiàn)構成實際軟件的代碼的方法。
【發(fā)明內(nèi)容】
[0009]技術問題
[0010]本發(fā)明的目的是實現(xiàn)包括代碼塊的完整組件形式的軟件。
[0011]本發(fā)明的另一目的是提供一種設備和方法,用于在以代碼實現(xiàn)開發(fā)軟件所導出的需求和功能時,可視化地實現(xiàn)在編程語言中使用的軟件代碼。
[0012]技術方案
[0013]為實現(xiàn)上述目的,根據(jù)本發(fā)明的一種用于可視化地實現(xiàn)軟件代碼的方法包括:通過代碼塊生成單元,根據(jù)需求和功能,逐塊生成用于實現(xiàn)軟件代碼的代碼塊;以及通過代碼塊設置單元,基于用戶輸入的信息,設置包含于每個代碼塊中的代碼塊屬性或內(nèi)部屬性代碼,其中設置代碼塊屬性或內(nèi)部屬性代碼包括:在所述代碼塊中包含關于代碼塊的功能信息、關于所述功能信息的描述信息、以及內(nèi)部屬性代碼。
[0014]根據(jù)本發(fā)明的用于可視化地實現(xiàn)軟件代碼的方法還包括:通過代碼塊轉換單元,當從用戶接收到請求時,將所述代碼塊轉換為與預先設置的編程語言相對應的代碼。
[0015]根據(jù)本發(fā)明的用于可視化地實現(xiàn)軟件代碼的方法,還包括:在設置代碼塊屬性或內(nèi)部屬性代碼之后,當從用戶接收到顯示所述代碼塊的請求時,在顯示單元上顯示與所述代碼塊有關的功能信息、描述信息以及內(nèi)部屬性代碼。
[0016]此外,設置代碼塊屬性或內(nèi)部屬性代碼可以包括:在所述代碼塊中包括代碼塊的位置、塊編號、索引、管理編號以及內(nèi)部屬性代碼。
[0017]此外,設置代碼塊屬性或內(nèi)部屬性代碼可以包括:當通過所述代碼塊生成單元生成多個代碼塊時,根據(jù)用戶的設置,在分層樹結構或分層塊結構中對多個代碼塊進行分類。
[0018]此外,設置代碼塊屬性或內(nèi)部屬性塊可以包括:根據(jù)所述代碼塊在分層樹結構或分層塊結構中的位置,自動分配塊編號。
[0019]此外,當經(jīng)由用戶輸入改變代碼塊的位置時,可以自動改變在分配塊編號時分配的塊編號。
[0020]可以根據(jù)在分層樹結構或分層塊結構中的位置,將所述代碼塊分類為上代碼塊和下代碼塊;以及所述代碼塊可以被配置為使得:獨立于上代碼塊實現(xiàn)包含于所述下代碼塊中的內(nèi)部屬性代碼,并且能夠基于特性對包含于所述上代碼塊的下代碼塊的輸入/輸出參數(shù)進行組合和索引。
[0021]此外,上代碼塊可以包括一個或多個下代碼塊,并且所述一個或多個下代碼塊可以從所述上代碼塊接收輸入?yún)?shù),并將輸出參數(shù)返回到所述上代碼塊。
[0022]此外,當代碼塊包括多個層時,上代碼塊可以包括僅從屬于該上代碼塊的下代碼塊所需要的所有輸入/輸出參數(shù)。
[0023]此外,根據(jù)控制流,所述代碼塊可以包括聲明語句代碼塊、循環(huán)語句代碼塊以及條件語句代碼塊。
[0024]此外,設置包含于每個代碼塊中的代碼塊屬性或內(nèi)部屬性代碼可以包括:將在先前生成的代碼塊和代碼塊之間的關系設置為包含關系或平行關系。
[0025]此外,在設置所述代碼塊屬性或內(nèi)部屬性代碼時,可以從用戶處經(jīng)由編碼窗口輸入所述內(nèi)部屬性代碼,所述編碼窗口包括以下中的至少一個:變量聲明窗口,用于聲明所述內(nèi)部屬性代碼的輸入變量和輸出變量;輸入變量分配窗口,用于分配所述輸入變量;條件語句窗口,用于輸入條件語句或循環(huán)語句;代碼輸入窗口,用于輸入實現(xiàn)對應的代碼塊的功能所需的軟件代碼;以及輸出變量分配窗口,用于分配輸出變量。
[0026]此外,根據(jù)本發(fā)明的用于可視化地實現(xiàn)軟件代碼的方法還包括:在設置代碼塊屬性或內(nèi)部屬性代碼之后,通過代碼塊驗證單元,使用隨機變量或使用輸入到每個代碼塊中的條件語句中或從條件語句中輸出的變量來驗證所述代碼塊。
[0027]此外,根據(jù)本發(fā)明的用于可視化地實現(xiàn)軟件代碼的方法還包括:在設置代碼塊屬性或內(nèi)部屬性代碼之后,通過代碼塊許可設置單元,設置訪問所述代碼塊的許可。
[0028]為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一種用于可視化地實現(xiàn)軟件代碼的設備包括:代碼塊生成單元,用于根據(jù)所述需求和功能,逐塊生成用于實現(xiàn)軟件代碼的代碼塊;以及代碼塊設置單元,用于基于用戶輸入的信息,設置包含于每個代碼塊中的代碼塊屬性或內(nèi)部屬性代碼,其中所述代碼塊設置單元在所述代碼塊中包括關于代碼塊的功能信息、關于所述功能信息的描述信息、以及內(nèi)部屬性代碼。
[0029]技術效果
[0030]依照根據(jù)本發(fā)明的用于可視化地實現(xiàn)軟件代碼的方法和設備,優(yōu)點在于:使用被劃分為各個功能單元的代碼塊可以進行可視化軟件編碼,并且使用代碼塊的更高維度表示成為可能,而不是通過各個行表示現(xiàn)有編碼,因此使得用戶或操作員能夠更高效地執(zhí)行軟件開發(fā)。
[0031 ]此外,依照根據(jù)本發(fā)明的用于可視化地實現(xiàn)軟件代碼的方法和設備,優(yōu)點在于:代碼塊之間的關系得以澄清,并且輸入/輸出參數(shù)流也得以澄清,因此改善了代碼的可讀性并便于軟件的重用。
[0032]此外,依照根據(jù)本發(fā)明的用于可視化地實現(xiàn)軟件代碼的方法和設備,優(yōu)點在于:軟件代碼被配置為使得代碼的功能執(zhí)行單元以一對一的方式對應于代碼塊,并且這種代碼塊可以實現(xiàn)于樹結構或分層塊結構中,由此允許用戶更直觀地實現(xiàn)軟件代碼。
【附圖說明】
[0033]圖1是根據(jù)本發(fā)明示出利用用于可視化地實現(xiàn)軟件代碼的設備可視化地實現(xiàn)軟件代碼的方法的概念圖;
[0034]圖2是根據(jù)本發(fā)明實施例示出在顯示器單元上顯示的代碼塊的結構的圖;
[0035]圖3是根據(jù)本發(fā)明實施例示出在代碼塊之間數(shù)據(jù)共享的概念圖;
[0036]圖4是根據(jù)本發(fā)明實施例示出代碼塊和使用代碼塊實現(xiàn)軟件代碼的方法的圖;
[0037]圖5是根據(jù)本發(fā)明實施例示出將生成的代碼塊轉換為代碼的過程的圖;
[0038]圖6和圖7是根據(jù)本發(fā)明實施例示出代碼塊之間的關系的圖;
[0039]圖8是根據(jù)本發(fā)明實施例示出用于可視化地實現(xiàn)軟件代碼的設備的框圖;
[0040]圖9是根據(jù)本發(fā)明實施例示出包含于用于可視化地實現(xiàn)軟件代碼的設備中的代碼塊設置單元的框圖;
[0041]圖10-17是根據(jù)本發(fā)明實施例示出存儲于存儲單元內(nèi)的代碼塊的類型的圖;
[0042]圖18是根據(jù)本發(fā)明實施例示出用于將塊編號分配給多個代碼塊的方法的圖;
[0043]圖19是根據(jù)本發(fā)明實施例示出添加索引的代碼塊的顯示的圖;
[0044]圖20是根據(jù)本發(fā)明實施例示出使用包含于用于可視化地實現(xiàn)軟件代碼的設備中的代碼塊轉換單元將代碼塊轉換成代碼的圖;
[0045]圖21是根據(jù)本發(fā)明實施例示出用于可視化地實現(xiàn)軟件代碼的方法的流程圖;以及
[0046]圖22是根據(jù)本發(fā)明實施例示出在用于可視化地實現(xiàn)軟件代碼的方法中響應于用戶輸入設置代碼塊信息的步驟的流程圖。
【具體實施方式】
[0047]為了詳細描述本發(fā)明,結合附圖描述了本發(fā)明的實施例,從而本發(fā)明所屬的技術領域中的普通技術人員可以容易地實踐本發(fā)明。應該注意的是,貫穿附圖,相同的附圖標記用于指定相同或類似的元件。在本發(fā)明的后續(xù)描述中,將省略被視為構成本發(fā)明主旨的已知功能和配置的詳細描述。
[0048]圖1是根據(jù)本發(fā)明示出利用用于可視化地實現(xiàn)軟件代碼的設備可視化地實現(xiàn)軟件代碼的方法的概念圖。圖2是根據(jù)本發(fā)明實施例示出在顯示器單元上顯示的代碼塊的結構的圖。圖3是根據(jù)本發(fā)明實施例示出代碼塊之間的數(shù)據(jù)共享的概念圖。圖4是根據(jù)本發(fā)明實施例示出代碼塊和使用代碼塊實現(xiàn)軟件代碼的方法的圖。圖5是根據(jù)本發(fā)明實施例示出將生成的代碼塊轉換為代碼的過程的圖。圖6和圖7是根據(jù)本發(fā)明實施例示出代碼塊之間的關系的圖。圖8是根據(jù)本發(fā)明實施例示出用于可視化地實現(xiàn)軟件代碼的設備的框圖。圖9是根據(jù)本發(fā)明實施例示出包含于用于可視化地實現(xiàn)軟件代碼的設備中的代碼塊設置單元的框圖。圖10-17是根據(jù)本發(fā)明實施例示出存儲于存儲單元內(nèi)的代碼塊的類型的圖。圖18是根據(jù)本發(fā)明實施例示出用于將塊編號分配給多個代碼塊的方法的圖。圖19是根據(jù)本發(fā)明實施例示出添加索引的代碼塊的顯示的圖。圖20是根據(jù)本發(fā)明實施例示出使用包含于用于可視化地實現(xiàn)軟件代碼的設備中的代碼塊轉換單元將代碼塊轉換成代碼的圖。圖21是根據(jù)本發(fā)明實施例示出用于可視化地實現(xiàn)軟件代碼的方法的流程圖。圖22是根據(jù)本發(fā)明實施例示出在用于可視化地實現(xiàn)軟件代碼的方法中響應于用戶輸入設置代碼塊信息的步驟的流程圖。
[0049]在下文中,將參照附圖詳細描述根據(jù)本發(fā)明實施例的用于可視化地實現(xiàn)軟件代碼的方法和設備。
[0050]如圖1所示,用戶使用編程工具執(zhí)行軟件編碼。這里用戶可以逐代碼塊地執(zhí)行編碼,如附圖標記20所示,而不是針對每行執(zhí)行傳統(tǒng)的編碼。此外,各個代碼塊彼此獨立。
[0051]這里,術語“代碼塊”表示構成軟件的組件之一。下面將描述代碼塊,但是本發(fā)明不限于這種代碼塊(作為組件的示例),而是涉及可以分層構造軟件的所有組件。
[0052]通過將軟件的功能劃分為塊單元而獲得代碼塊,并且每個代碼塊可以配置為包括功能信息31、描述信息32、代碼信息33以及管理編號34,如附圖標記30所示。如上所述,傳統(tǒng)的編碼方案以一維(ID)執(zhí)行編碼,并因此出現(xiàn)先前實現(xiàn)的軟件代碼的可讀性劣化并且每條代碼的含義不清楚的問題。相反,如附圖標記30所示,本發(fā)明的代碼塊的優(yōu)點在于,對于每個代碼塊,可以立即理解對應代碼塊所表明的功能信息31、描述信息32、代碼信息33和管理編號34,因此允許用戶或操作員直觀和明確識別對應部分的含義。這里,功能信息31、描述信息32、代碼信息33和管理編號34的含義如下所述。
[0053]功能信息31表示對實現(xiàn)軟件所導出的或通過具體化用戶需求而設計的功能的描述。也就是說,功能信息31可以包括關于對應代碼塊的綜合信息。
[0054]這里,用戶的需求具有分層結構,而不具有控制步驟。此外,每個需求負責其在代碼塊中的自己的角色。此外,每個需求可以具有對應于其自身特性的索引。另外,需求可以形成組,并且這種組還可以用索引進行表示。
[0055]描述信息32可以包括對上述功能信息的詳細的或具體的描述。這里,包含于描述信息32中的信息可以包括各種類型的信息,例如,功能的詳細描述、圖以及圖表。也就是說,用戶可以使用描述信息32更直觀地理解軟件代碼。
[0056]代碼信息33可以包括關于實現(xiàn)軟件所需的代碼的信息,或構成特定代碼塊的下代碼塊。這里,將在后文參照圖4詳細描述下代碼塊。
[0057]管理編號34是用戶或操作員管理每個代碼塊所需的編號,并且通過用戶或操作員進行分配。
[0058]此外,如附圖標記20所示,代碼塊可以實現(xiàn)于分層樹結構中。此外,這種代碼塊還可以示出為分層塊結構,如圖2所示,以及示出為分層樹結構。實現(xiàn)于分層樹結構或分層塊結構中的代碼塊被實現(xiàn)為與構成軟件的功能具有一對一對應關系,如上所述。也就是說,當將功能結構化為代碼塊時,對在代碼塊中定義的功能進行編碼,然后清楚地定義在塊之間的數(shù)據(jù)共享和控制流,可以以常規(guī)編程語言表示由代碼塊組成的代碼。
[0059]將在下文詳細描述在塊之間的數(shù)據(jù)共享和控制流。數(shù)據(jù)共享意圖結構化代碼塊,使得上代碼塊具有下代碼塊所需的所有輸入/輸出數(shù)據(jù)作為其內(nèi)部數(shù)據(jù);并且控制流意圖通過使得控制流能夠僅存在于分層塊結構中的相同層之間,而將控制流與數(shù)據(jù)分離。換句話說,假設在單個代碼塊中存在多個下代碼塊,則可以如全局變量一樣操縱所有下代碼塊的輸入/輸出數(shù)據(jù),這是因為所有的下代碼塊可以在上代碼塊中訪問所需的所有數(shù)據(jù),其中控制流只需要定義在下代碼塊之間。這種結構應用于所有的層,并且在各個層中定義的控制流與在下代碼塊之間定義的控制流相關聯(lián),并因此對代碼塊排序。
[0060]這里,實現(xiàn)用于確定控制流的方法,使得當指定上代碼塊的順序時,以上代碼塊的指定順序確定下代碼塊的順序。也就是說,可以以代碼塊的塊編號的順序指定代碼塊的順序,即,1、1_1、1_1_1、1_1_2、1_2、1~2~1、1_2_2和2_1。
[0061]此外,用于共享數(shù)據(jù)的方法具有上代碼塊必須擁有下代碼塊所需的輸入/輸出數(shù)據(jù)的特性,并且該特性可以應用于所有層。例如,假設軟件包括功能I和功能2。此外,假設功能I具體包括功能1-1和功能1-2。如圖1的附圖標記20所示并如圖2所示,可以實現(xiàn)這些功能,使得功能I對應于代碼塊I,并且功能2對應于代碼塊2。這里,以功能1、功能1-1、功能1-2和功能2的順序確定控制流。
[0062]圖3是根據(jù)本發(fā)明的實施例示出在代碼塊之間的數(shù)據(jù)共享的概念圖,并詳細示出了在定義的數(shù)據(jù)區(qū)域中的代碼塊之間共享數(shù)據(jù)的概念。
[0063]可以將代碼塊劃分為上代碼塊和下代碼塊。這里,每個上代碼塊必須定義和管理由下代碼塊共享的數(shù)據(jù)。也就是說,每個上代碼塊必須擁有下代碼塊所需的所有輸入/輸出數(shù)據(jù)。該原理例如與將數(shù)據(jù)定義為常規(guī)編程語言的全局變量以及將全局變量用于各個區(qū)域(下代碼塊)的原理相同。
[0064]如圖3所示,上代碼塊管理在包括至少一個下塊的區(qū)域中的數(shù)據(jù),并且該結構可以被連續(xù)分層。例如,在c語言的情況下,可以使用多個大括號(T或“}”)無限支持若干層中的局部變量,并且上代碼塊具有的局部變量可以與下代碼塊可以訪問的局部變量起相同的作用。
[0065]下文中,將參照圖4詳細描述根據(jù)本發(fā)明的實施例的代碼塊和使用代碼塊實現(xiàn)軟件代碼的方法。
[0066]也就是說,在使用代碼塊實現(xiàn)軟件的工具中添加新的代碼塊的動作表示在要包含對應代碼塊的位置生成新的代碼塊。在用于實現(xiàn)代碼塊的支持工具中,即使未添加初始代碼塊,也總是存在最上層的代碼塊。例如,在C編程語言中,可以將最上層的代碼塊定義為Main()函數(shù)。此外,當添加代碼塊時,根據(jù)所選的代碼塊類型,需要條件語句的定義、輸入/輸出變量的定義、代碼塊順序(塊編號)的定義、以及在對應代碼塊中變量的聲明。
[0067]如圖4所示,用戶可以經(jīng)由編碼窗口實現(xiàn)每個代碼塊的內(nèi)部屬性代碼。具體地,代碼塊可以經(jīng)由編碼窗口單獨地管理細節(jié),例如代碼塊的變量聲明/代碼塊的輸入變量的分配/條件語句/對應代碼塊的功能實現(xiàn)代碼/代碼塊的輸出變量的分配,并可以在實現(xiàn)代碼時在對應位置處定位相關代碼。這種編碼窗口可以配置為包括變量聲明窗口 41、輸入變量分配窗口 42、條件語句窗口 43、代碼輸入窗口 44以及輸出變量分配窗口 45中的至少一個。也就是說,在編碼窗口中,用戶可以選擇所需窗口而不使用所有的窗口,并可以使用所選的窗口來執(zhí)行編碼。
[0068]這里,變量聲明窗口41用于聲明在代碼塊中使用的所有變量(S卩,用于實現(xiàn)代碼塊的功能的所有變量),并且輸入變量分配窗口 42用于分配輸入變量。此外,傳統(tǒng)語句窗口 43用于在編碼條件語句(例如,“If”或“Switch”控制語句)并編碼循環(huán)語句(例如,“While”、“For”或“Do while”控制語句)時聲明條件部分。此外,代碼輸入窗口44用于輸入內(nèi)部屬性代碼,在編碼聲明語句、編碼條件語句以及編碼循環(huán)語句時實質上定義功能的執(zhí)行需要內(nèi)部屬性代碼。最后,輸出變量分配窗口 45用于從對應的代碼塊返回值到上代碼塊。
[0069]如上所述,當添加代碼塊時,可以在代碼塊的內(nèi)部屬性代碼中管理關于代碼塊的變量聲明/代碼塊的輸入變量分配/條件語句/代碼塊的輸出變量的分配的信息。由于對應的代碼塊的主要內(nèi)容是代碼塊的功能實現(xiàn)代碼,所以用戶或操作員可以根據(jù)代碼塊的位置和作用來定義代碼塊的內(nèi)部屬性信息,因此集中于作為主要內(nèi)容的功能實現(xiàn)代碼的完成。
[0070]此外,圖4中示出的用于聲明和分配變量的窗口41、42、43和45使得對應的細節(jié)能夠在單獨的區(qū)域內(nèi)定義,并可以與實現(xiàn)對應代碼塊的功能所需的代碼(即,經(jīng)由代碼輸入窗口輸入的內(nèi)部屬性代碼)分開管理。當添加代碼塊時,可以使用代碼塊,使得在除了代碼輸入窗口 44之外的窗口部分,在對應代碼塊的內(nèi)部屬性信息區(qū)域中定義功能。被管理為代碼塊的內(nèi)部屬性信息的細節(jié)在被轉換為軟件代碼時可以按圖4的順序進行編碼。
[0071]以這種方式經(jīng)由編碼窗口設置的代碼塊的內(nèi)部屬性代碼可以轉換為用戶預先設置的編程語言的代碼。
[0072]下文中,將參照圖5描述根據(jù)本發(fā)明實施例的用于將生成的代碼塊轉換為代碼的過程。更具體地,參考圖5,將描述當上代碼塊包括下代碼塊時將這些代碼塊轉換為代碼的過程。
[0073]在代碼中表示的代碼塊可以具有類似于C語言函數(shù)的那些特性。也就是說,C語言函數(shù)具有在函數(shù)中使用的局部變量,并可以從函數(shù)外部加載待用于函數(shù)中的參數(shù)。此外,函數(shù)可以返回特定值作為結果值。
[0074]由于C語言的函數(shù)與黑盒相同,所以從與在函數(shù)中執(zhí)行的動作相關的數(shù)據(jù)共享的角度看,輸入特定值時導出特定結果。也就是說,當輸入外部參數(shù)時,函數(shù)意圖執(zhí)行其指定動作或返回結果值,并可以具有其自身的數(shù)據(jù)區(qū)域。此外,當按其順序順序調用這樣的函數(shù)時,可以將函數(shù)劃分為用于執(zhí)行其功能的軟件組件。
[0075]如上所述,將在下文描述在塊之間的數(shù)據(jù)共享和控制流。數(shù)據(jù)共享意圖結構化代碼塊,使得上代碼塊擁有下代碼塊所需要的所有輸入/輸出數(shù)據(jù)作為其內(nèi)部數(shù)據(jù),并且控制流意圖通過使得控制流能夠僅在分層塊結構中的相同層之間發(fā)生,而將控制流與數(shù)據(jù)分離。換句話說,假設在單個代碼塊中存在多個下代碼塊,則可以如全局變量一樣操縱所有下代碼塊的輸入/輸出數(shù)據(jù),這是因為所有的下代碼塊可以在上代碼塊中訪問所需的所有數(shù)據(jù),其中控制流只需要定義在下代碼塊之間。這種結構應用于所有的層,并且在各個層中定義的控制流與在下代碼塊之間定義的控制流相關聯(lián),并因此對代碼塊排序。
[0076]這里,由于以上詳細描述了用于確定控制流的方法和用于共享數(shù)據(jù)的方法,所以省略了對其的重復描述。
[0077]代碼塊可以具有數(shù)據(jù)區(qū)域和控制流的特性。具體地,C語言函數(shù)的操作和代碼塊之間的不同在于函數(shù)可以在特定時間由各種類型的代碼共同調用和使用,而代碼塊可以屬于特定位置并可以獨立實現(xiàn)指定角色。
[0078]例如,假設存在管理編號為3的代碼塊并且管理編號為32的代碼塊屬于管理編號為3的代碼塊。在該情況下,在屬于管理編號為3的代碼塊的管理編號為32的代碼塊從管理編號為3的代碼塊接收輸入?yún)?shù)并執(zhí)行操作之后,向管理編號為3的代碼塊返回指定的輸出參數(shù)。這里,在管理編號為32的代碼塊中的所有參數(shù)和動作,除了輸入/輸出數(shù)據(jù)之外,可以在管理編號為32的代碼塊中獨立執(zhí)行。另外,該執(zhí)行從不影響任何其它代碼塊,以及作為上代碼塊的管理編號為3的代碼塊。
[0079]在C語言中,可以利用函數(shù)實現(xiàn)具有上述特性的代碼,但是C語言并不支持在另一函數(shù)中聲明函數(shù),并且因此本發(fā)明利用大括號(U)實現(xiàn)代碼塊。大括號可以是用于將C代碼中的區(qū)域劃分為塊的方法之一,并且在大括號中聲明的變量是僅在對應區(qū)域中識別出的局部變量??梢詤⒄請D5進一步闡明這種細節(jié)。也就是說,上代碼塊的結構包括下代碼塊,并且代碼塊可以被顯示為通過大括號彼此區(qū)分。
[0080]此外,可以使用將在上大括號(上代碼塊)中聲明的變量(輸入?yún)?shù))重新分配給在下大括號(下代碼塊)中聲明的變量、基于變量執(zhí)行操作、以及最終返回結果值作為在上大括號(上代碼塊)中聲明的變量(輸出參數(shù))的方法來實現(xiàn)代碼塊。也就是說,由于使用代碼塊的局部變量來執(zhí)行在每個代碼塊中處理的所有動作,所以代碼塊可以維持與其它代碼塊的獨立關系。當滿足下述特征時,可以利用任何方法生成代碼塊。
[0081]此外,如上所述,代碼塊可以具有其間的包含關系,但還可以具有其間的平行關系。這種細節(jié)可以通過參考圖6和圖7進一步闡明,在圖6中用上述包含關系實現(xiàn)代碼塊,并且在圖7中用平行關系實現(xiàn)代碼塊。
[0082]也就是說,圖6中示出的包含關系可以定義為在另一代碼塊中存在至少一個代碼塊的關系。在具有包含關系的代碼塊中,上代碼塊不具有單獨的代碼,除了在上代碼塊中使用的變量的聲明。因此,實現(xiàn)具有包含關系的代碼塊的控制流,使得首先編碼在上代碼塊中的變量聲明部分,然后僅需要布置在上代碼塊中包含的代碼塊的代碼。因此,當通過將在后文描述的平行關系的代碼塊的控制流確定上代碼塊的代碼的位置時,在確定出的代碼位置的范圍內(nèi)確定在下代碼塊之間的多條代碼的順序,并因此可以配置軟件的所有代碼。
[0083]此外,如圖7所示,將在相同的上代碼塊中包括代碼塊而不是在其間具有包含關系的關系定義為平行關系。必須對平行關系的代碼塊進行排序。例如,如圖7所示,當定義控制流使得一個代碼塊是N0.1代碼塊且另一代碼塊是N0.2代碼塊時,將代碼塊的形式轉換為軟件代碼,例如圖5所示的上述形式。
[0084]后文中,將參照圖8詳細描述根據(jù)本發(fā)明實施例的用于可視化地實現(xiàn)軟件代碼的設備。圖8是根據(jù)本發(fā)明實施例示出用于可視化地實現(xiàn)軟件代碼的設備的框圖。如圖8所示,根據(jù)本發(fā)明實施例的用于可視化地實現(xiàn)軟件代碼的設備可以配置為包括代碼塊生成單元110、代碼塊設置單元120、代碼塊許可設置單元130、代碼塊驗證單元140以及代碼塊轉換單元150。下文中,將詳細描述這些部件。
[0085]代碼塊生成單元110用于生成代碼塊,該代碼塊用于關于軟件的實現(xiàn),根據(jù)客戶端的需求和功能,逐塊實現(xiàn)軟件代碼。
[0086]更具體地,代碼塊生成單元110導出需求,其可以實現(xiàn)為單個代碼塊。這里,需求具有分層結構而不具有控制步驟。此外,需求在將順序執(zhí)行的代碼中發(fā)揮其作用。此外,根據(jù)其特性,需求可以具有索引。另外,需求可以形成組,其也可以由索引表示。
[0087]代碼塊生成單元110利用需求生成代碼塊,其中代碼塊可以具有控制步驟,并且各個需求可以分配給代碼塊。這里,可以將代碼塊的生成主要劃分為兩個方案。也就是說,第一生成方法用于生成在圖4中示出的代碼窗口中具有所有空屬性的代碼塊。此外,第二生成方法用于通過調用預先存儲于存儲單元83中的代碼塊的形式來生成代碼塊。也就是說,存儲單元83可以包括各種形式的代碼塊。更具體地,根據(jù)控制流,存儲單元83可以包括聲明語句代碼塊、循環(huán)語句代碼塊以及條件語句代碼塊。這里,在下文中描述存儲于存儲單元83中的代碼塊的類型。
[0088]這里,在圖1O中示出聲明語句代碼塊的例子。圖1O示出了所謂的“Goto Next”代碼塊,其是常規(guī)代碼塊,在其中不存在單獨的控制流。更具體地,“Goto Next”代碼塊是常規(guī)代碼塊,并可以指定代碼塊,使得在對應的代碼塊之后存在隨后的代碼塊。
[0089]循環(huán)語句代碼塊的例子在圖11-13中示出。圖11示出了 “For”代碼塊,圖12示出了uWh i I e”代碼塊,以及圖13示出了 “Do Wh i I e”代碼塊。在圖11 -13中示出的循環(huán)語句代碼塊是用于執(zhí)行循環(huán)語句的功能的代碼塊,用于在滿足期望條件時在給定代碼塊中重復執(zhí)行預定動作。然而,從代碼塊的觀點看,即使重復執(zhí)行循環(huán)語句的內(nèi)部動作,這也因此與在對應代碼塊的連續(xù)位置處執(zhí)行目標任務的情形相同。也就是說,可以認為執(zhí)行一次代碼塊的動作。
[0090]條件語句代碼塊的例子在圖14和圖15中示出。也就是說,圖14示出了“Switch”代碼塊,圖15示出了 “If”代碼塊。在圖14和15中描述的循環(huán)語句代碼塊表示用于在輸入變量滿足特定條件時執(zhí)行給定功能的代碼塊。
[0091 ]同時,代碼塊還可以包括函數(shù)代碼塊,這將在下文進行描述。函數(shù)代碼塊表示實現(xiàn)為函數(shù)的代碼塊,并且其例子在圖16和17中示出??梢栽谧钌蠈拥膲K中聲明、定義和使用這種函數(shù)代碼塊,類似于使用C語言的函數(shù)。如圖16所示,函數(shù)代碼塊在局部變量聲明/輸入變量分配/操作性能/結果返回功能方面與其它代碼塊相同,但是與它們的不同在于函數(shù)名稱(參數(shù))是額外聲明的且額外用作塊的名稱。為此,函數(shù)代碼塊可以在最上層的塊中聲明。
[0092]在圖8中示出的代碼塊設置單元120基于來自用戶的信息輸入執(zhí)行設置代碼塊屬性或包含于代碼塊中的代碼的功能。這里,如上參考圖1所示,代碼塊屬性包括關于對應代碼塊的功能信息和描述信息。也就是說,代碼塊屬性意圖解決傳統(tǒng)編碼方案的問題,在傳統(tǒng)代碼方案中以一維執(zhí)行編碼并且代碼的可讀性劣化,并且代碼塊屬性包括通過具體化在實現(xiàn)軟件時導出的需求而設計的功能的簡短描述和詳細描述。具體地,功能信息表示實現(xiàn)軟件所導出的或通過具體化用戶需求而設計的功能的描述,并且描述信息包括上述功能信息的詳細描述。這里,包含于描述信息中的信息例如可以包括各種類型的信息,例如功能的詳細描述、圖以及圖表。通過該代碼塊屬性,用戶可以更直觀地理解代碼塊,而不像例如使用批注的以一維表示代碼的傳統(tǒng)編碼方案。
[0093]此外,如參考圖4在以上描述的,可以通過用戶經(jīng)由編碼窗口設置內(nèi)部屬性代碼。這里,編碼窗口可以配置為包括變量聲明窗口、輸入變量分配窗口、條件語句窗口、代碼輸入窗口以及輸出變量分配窗口。由于上面已經(jīng)描述了各個窗口,所以將省略重復部分的描述。顯示以這種方式設置的代碼塊屬性和內(nèi)部屬性代碼,使得當從用戶接收到顯示對應代碼塊的請求時,在顯示單元82上顯示代碼塊的功能信息、描述信息以及內(nèi)部屬性代碼。
[0094]此外,當通過代碼塊生成單元110生成多個代碼塊時,代碼塊設置單元120可以在分層樹結構或分層塊結構中根據(jù)用戶的設定對多個代碼塊進行分類。在圖1和2中示出該分類的例子。以這種方式分類的分層結構的優(yōu)點在于它們可以幫助用戶或操作員直觀分析軟件。此外,還存在的優(yōu)點在于,通過該結構化,即使在后續(xù)軟件編輯中也可以進一步方便軟件的管理。
[0095]例如,假設用戶或操作員將包含于分層樹結構或分層塊結構中的多個代碼塊之一復制到另一位置。也就是說,當使用代碼塊配置軟件時,可以存在執(zhí)行相同功能但是屬于不同位置的代碼塊,并且可以存在具有類似功能的代碼塊。這里,可以將代碼塊復制和粘貼到從屬于另一代碼塊的下代碼塊。當粘貼代碼塊時,刪除管理編號/輸入變量聲明/輸出變量聲明,并且根據(jù)對應代碼塊的位置自動分配塊編號。將通過復制代碼塊保存的數(shù)據(jù)劃分為功能(需求)/描述以及代碼細節(jié)中代碼的內(nèi)部變量聲明/條件/功能實現(xiàn)代碼。當選擇待被復制的代碼塊時,一起復制從屬于所選代碼塊的下代碼塊??梢詫㈥P于從屬于所復制的代碼塊的下代碼塊的所有數(shù)據(jù)保持不變。
[0096]此外,可以根據(jù)在分層樹結構或分層塊結構中的位置而將代碼塊分類為上代碼塊和下代碼塊。此外,如上所述,獨立于上代碼塊實現(xiàn)包含于每個下代碼塊中的內(nèi)部屬性代碼,并且上代碼塊僅執(zhí)行其中的變量聲明功能,但是不包括額外的代碼。也就是說,上代碼塊僅包括下代碼塊(其用作數(shù)據(jù)總線,從而可以在下代碼塊之間共享數(shù)據(jù))需要的共享數(shù)據(jù),并僅包括一個或多個下代碼塊,并且一個或多個下代碼塊從上代碼塊接收輸入?yún)?shù),并且將輸出參數(shù)返回到上代碼塊。
[0097]并且,代碼塊設置單元120可以根據(jù)在分層樹結構或分層塊結構中代碼塊的位置而自動地分配塊編號。例如,假設在單個代碼塊中包括兩個代碼塊的情況(參見圖18)。如圖18所示,假設將最上層代碼塊的塊編號設置為“I”。這里,最上層代碼塊包括兩個下代碼塊,并且這些下代碼塊分別分配了塊編號11和12。當塊編號為12的代碼塊例如還包括兩個代碼塊時,這兩個代碼塊可以分別分配塊編號121和122。用于分配塊編號的該方法僅是例子,而可以應用為各種不同方案。此外,由于具有塊編號11、121和122的代碼塊是最下層代碼塊,所以它們可以實現(xiàn)為包括內(nèi)部屬性代碼。與此相反,由于具有塊編號I和12的代碼塊分別包括下代碼塊,所以它們不包括單獨的代碼,除了用于變量聲明的代碼。
[0098]并且,代碼塊設置單元120可以額外地設置每個代碼塊的索引。也就是說,當軟件只包括多個代碼塊時,管理軟件是容易的,但是在實際實現(xiàn)中,可能使用大量代碼塊來實現(xiàn)單個軟件程序。在該情況下,為了更直觀地通知用戶或操作員對應的代碼塊表示什么,可以將索引添加到對應的代碼塊中。通過該索引,每個代碼塊可以利用管理編號和塊編號來管理索引/功能(需求)/描述/代碼,并且可以按照場合需求通過索引/功能(需求)/描述/代碼單獨表示代碼塊的預定區(qū)域或整個配置。在圖19中示出了這樣的例子。
[0099]也就是說,如圖19所示,可能存在使用軟件實現(xiàn)計算器的情況。該計算器可以包括表示用戶接口的代碼塊、表示操作員的代碼塊、以及表示圖形的代碼塊。這里,將這種索引功能添加到代碼塊中,從而闡明代碼塊對應于什么,由此允許用戶或操作員容易地執(zhí)行編程。
[0100]此外,這種索引還可以包括用于由上代碼塊管理的變量的索引,以及代碼塊的索弓丨。也就是說,上代碼塊可以包括下代碼塊的若干步驟,并可以根據(jù)環(huán)境管理大量變量。在這種情況下,通過例子參考C語言,可以使用結構來組合變量,并且還可以經(jīng)由索引管理這種結構,因此能夠更清楚且在外部管理軟件。
[0101]代碼塊許可設置單元130用于針對代碼塊設置訪問許可,以便設置其他用戶訪問的許可。更具體地,代碼塊許可設置單元130可以設置在整個代碼塊結構中的每個、至少一部分或所有代碼塊的許可。可以指定所選的代碼塊包括下代碼塊,并指定安全性,從而下代碼塊不包含于所選的代碼塊中??梢耘渲迷O置了安全性的代碼塊,從而除了被許可人外的人不能查看功能/描述/功能實現(xiàn)代碼,或者從而限制修改代碼的許可。可以針對功能/描述/內(nèi)部屬性碼獨立設置這種訪問許可??梢詧?zhí)行訪問許可的設置,從而他人僅可以查看一些代碼塊。對于代碼塊,可以在若干步驟中設置安全性(例如,從而不查看代碼塊/從而查看代碼塊,但是不能修改/從而不能修改輸入/輸出變量和消息/從而可以修改所有的數(shù)據(jù))。支持設置安全性的功能,從而在特定代碼塊中的變量和消息僅用于管理者指定的代碼塊中。
[0102]代碼塊驗證單元140利用隨機變量執(zhí)行重復接收包含于代碼塊中的輸入變量并驗證代碼塊的功能。例如,當用戶選擇要驗證的代碼塊時,代碼塊與從屬于所選代碼塊的下代碼塊一起成為驗證單元。之后,在顯示單元82上顯示利用包括輸入/輸出參數(shù)的部分和輸入/輸出參數(shù)的條件部分實現(xiàn)的屏幕。這里,當在條件部分中指定用于各個輸入/輸出參數(shù)的輸入/輸出條件,并執(zhí)行驗證時,利用在對應條件中指定的范圍內(nèi)的隨機變量連續(xù)輸入輸入變量,并且因此可以經(jīng)由輸入各個變量自動驗證代碼,直到操作員停止驗證。
[0103]這里,可以以使用隨機變量或對于落入條件的所有值順序驗證變量的輸入和輸出值的方式,執(zhí)行驗證方法??梢允褂媒?jīng)由測試在發(fā)生錯誤時報告錯誤發(fā)生位置的方法(通過識別當發(fā)生編譯錯誤時編譯器報告的代碼行所屬的代碼塊),或者報告在輸出變量條件中發(fā)生錯誤的輸出變量的名稱的方法,來執(zhí)行驗證。當執(zhí)行驗證時,可以結合測試結果屏幕,顯示使用計算機存儲器、使用中央處理單元(CPU)等的狀態(tài)。利用數(shù)字和符號(〈,>)配置輸入變量/輸出變量的條件,并且可以重復表示。當從驗證方法中選擇順序測試時,根據(jù)聲明的變量類型,將由對應的變量所表示的所有數(shù)字順序應用于驗證,并隨后執(zhí)行驗證。驗證的開始和結束被實現(xiàn)為使得當終止所有數(shù)字的應用時,自動終止驗證;或者使得當操作員按壓結束按鈕時,終止驗證。
[0104]此外,在附圖中,雖然示出代碼塊驗證單元140僅在設置代碼塊之后執(zhí)行驗證,但這僅僅意圖幫助理解本發(fā)明,并且可以在設置代碼塊之后的任意步驟執(zhí)行驗證。
[0105]當從用戶接收到請求時,代碼塊轉換單元150用于將代碼塊轉換為對應于預先設置的編程語言的代碼。在圖20中示出了該轉換的例子。在圖20中示出的上代碼塊包括兩個下代碼塊,其包含于上代碼塊中的平行關系。此外,由于已經(jīng)在以上詳細描述了該代碼轉換方法,將省略重復部分的重復描述。此外,關于代碼塊轉換,在本說明書中主要基于C語言進行了描述,但是該描述只是用于幫助理解本說明書的例子,并且本發(fā)明可以應用于不同類型的各種語言。
[0106]雖然在附圖中將代碼塊轉換單元150示出為僅在已經(jīng)設置了針對代碼塊的許可之后執(zhí)行轉換,但是其僅意圖幫助理解本發(fā)明,并且可以在已經(jīng)設置了代碼塊之后的任意步驟執(zhí)行轉換。
[0107]并且,當使用代碼塊實現(xiàn)軟件時,根據(jù)本發(fā)明的用于可視化地實現(xiàn)軟件代碼的設備100可以在利用相關功能的相關性、變量或消息驗證數(shù)據(jù)的流或相關方面時,向用戶或操作員提供針對代碼塊的各種查看功能。代碼塊具有在分層樹結構或分層塊結構中基于塊編號/管理編號/在代碼塊中聲明的變量和消息來顯示相關代碼塊的功能。
[0108]這里,可以通過包括特定代碼塊來不同地設置代碼塊顯示的范圍。當在代碼塊中聲明的變量是引用時,將從上代碼塊到下代碼塊輸入/輸出的變量識別為相同的變量,并因此可以顯示所有相關的代碼塊。使用代碼塊的軟件實現(xiàn)工具可以將屬性分配給相應的代碼塊。例如,將與存儲數(shù)據(jù)相關的功能定義為單個屬性,并且可以在與其相關的代碼塊中定義對應的屬性??梢赃x擇與數(shù)據(jù)存儲相關的定義的屬性,并且僅顯示與其相關的代碼塊(在樹結構/塊結構中)??梢灾貜驮O置該屬性信息,并且還可以將其定義為在單個代碼塊中是重復的??梢酝ㄟ^單條軟件代碼表示關于代碼塊中代碼的信息(C語言中源代碼的形式)。在功能(需求)/描述的情況下,可以單個報告形式基于管理編號同時顯示功能和描述。
[0109]此后,將參照圖9進一步描述代碼塊設置單元。圖9是根據(jù)本發(fā)明實施例示出包含于用于可視化地實現(xiàn)軟件代碼的設備中的代碼塊設置單元的框圖。如圖9所示,代碼塊設置單元120可以配置為包括代碼塊屬性設置模塊121、代碼設置模塊122、關系設置模塊123以及塊編號設置模塊124。在后續(xù)描述中,將省略對上述重復部分的重復描述。
[0110]代碼塊屬性設置模塊121用于設置在對應代碼塊中的代碼塊屬性。也就是說,代碼塊屬性設置模塊121設置關于在對應代碼塊中關于每個代碼塊的功能信息和描述信息。通過用戶經(jīng)由輸入單元進行輸入,這是可能的。如上所述,將這種代碼塊屬性設計為超越傳統(tǒng)的編碼方案,在傳統(tǒng)的編碼方案中以一維執(zhí)行編碼并且代碼的可讀性劣化,并且包括通過具體化在實現(xiàn)軟件時導出的需求而設計的功能的簡短描述(功能的簡單描述)和詳細描述(詳細描述、圖、圖表等)。通過該代碼塊屬性,用戶可以更直觀地理解代碼塊,不像例如使用批注的以一維表示代碼的傳統(tǒng)編碼方案。
[0111]代碼設置模塊122用于在每個代碼塊中設置內(nèi)部屬性代碼。如以上參考圖4和圖8所描述的,可以經(jīng)由用戶通過編碼窗口輸入的代碼設置該內(nèi)部屬性代碼。此外,可以配置代碼窗口以包括變量聲明窗口、輸入變量分配窗口、條件語句窗口、代碼輸入窗口以及輸出變量分配窗口中的至少一個。上文已經(jīng)對其進行了詳細描述,因此將省略重復部分的重復描述。
[0112]關系設置模塊123用于在通過代碼塊生成單元110生成多個代碼塊時,根據(jù)用戶設置在分層樹結構或分層塊結構中對多個代碼塊進行分類。此外,通過該分類,關系設置模塊123可以將多個代碼塊設置為平行關系或包含關系。由于在上文詳細描述了用于設置這些關系和這種關系的類型的方法,所以將省略其附加描述。
[0113]塊編號設置模塊124用于根據(jù)由關系設置模塊123所設置的在分層樹結構或分層塊結構中的代碼塊的位置,將塊編號自動分配給代碼塊??梢詫崿F(xiàn)該分配方法,使得將X分配給最上層代碼塊,Xy分配給包含于最上層代碼塊中的下代碼塊,以及Xyz分配給下一下代碼塊。然而,該實現(xiàn)方法僅是例子,并可以用可以檢測到代碼塊的位置的各種形式實現(xiàn)。
[0114]之后,將參照圖21描述根據(jù)本發(fā)明實施例的用于可視化地實現(xiàn)軟件代碼的方法。圖21是根據(jù)本發(fā)明實施例示出用于可視化地實現(xiàn)軟件代碼的方法的流程圖。在后續(xù)描述中,將省略與參考圖1-20在上文描述的那些相同的部分的重復描述。
[0115]首先,在步驟SllO處由用戶確定是否生成代碼塊。也就是說,根據(jù)本發(fā)明的用于可視化地實現(xiàn)軟件代碼的方法可以執(zhí)行允許用戶新生成代碼塊的功能,但是還可以執(zhí)行編輯預先生成的代碼塊的功能(例如,拷貝、刪除或編輯)。因此,在確定是否生成代碼塊的步驟SllO處,需要這種確定。之后,如果在確定是否生成代碼塊的步驟SllO處確定用戶希望生成新的代碼塊,則執(zhí)行生成代碼塊的步驟S120。如果確定用戶不希望生成新的代碼塊,則執(zhí)行設置代碼塊屬性或內(nèi)部屬性代碼的步驟S130。
[0116]在代碼塊生成步驟S120處,代碼塊生成單元根據(jù)需求和功能逐塊生成用于實現(xiàn)軟件代碼的代碼塊。這里,生成的代碼塊可以包括基本空幀(在用戶希望新編輯代碼塊時使用),以及在存儲單元中存儲的聲明語句代碼塊、循環(huán)語句代碼塊和條件語句代碼塊。已經(jīng)參照圖10-17在上文詳細描述了代碼塊的類型,因此將省略額外描述。此外,當生成代碼塊時,將塊編號自動分配給代碼塊。
[0117]之后,在步驟S130處,基于用戶輸入的信息,代碼塊設置單元設置在每個代碼塊中包含的代碼塊信息,也就是,代碼塊屬性或內(nèi)部屬性代碼??梢耘渲迷O置代碼塊屬性或內(nèi)部數(shù)據(jù)代碼的該步驟S130,使得例如當在代碼塊生成步驟S120處生成新的代碼塊時,可以設置用于生成的代碼塊的代碼塊屬性和內(nèi)部屬性代碼。這里,如上所述,代碼塊屬性可以包括功能信息和描述信息。在該情況下,由于在上文已經(jīng)詳細描述了用于設置代碼塊屬性和內(nèi)部屬性代碼的方法,所以將省略其額外描述。
[0118]另外,設置代碼塊屬性或內(nèi)部屬性代碼的步驟S130還可以包括在對應的代碼塊中包括代碼塊的位置、塊編號、管理編號、索引和內(nèi)部屬性代碼的步驟。此外,雖然在圖中未示出,但在設置代碼塊屬性或內(nèi)部屬性代碼的步驟S130之后,還可以包括在從用戶接收到顯示代碼塊的請求時,在顯示單元上顯示關于代碼塊的功能信息、描述信息和內(nèi)部屬性代碼的步驟。
[0119]此外,在設置代碼塊屬性或內(nèi)部屬性代碼的步驟S130處,當通過代碼塊生成單元生成多個代碼塊時,可以根據(jù)用戶的設置在分層樹結構或分層塊結構中對多個代碼塊進行分類。也就是說,可以根據(jù)代碼塊的位置,在平行關系或包含關系中形成多個代碼塊。因此,即使存在多個代碼塊,用戶也可以容易地管理多個代碼塊,這是因為以分層樹形狀或分層塊形狀配置它們。
[0120]此外,如上所述,可以根據(jù)在分層樹結構或分層塊結構中的位置,將代碼塊分類為上代碼塊和下代碼塊。此外,可以獨立于上代碼塊而實現(xiàn)包含于每個下代碼塊中的內(nèi)部屬性代碼。
[0121]這里,上代碼塊包括一個或多個下代碼塊,其中一個或多個下代碼塊可以從上代碼塊接收輸入?yún)?shù),并可以將輸出參數(shù)返回到上代碼塊。
[0122]并且,代碼塊可以根據(jù)控制流包括聲明語句代碼塊、循環(huán)語句代碼塊以及條件語句代碼塊。在上文已經(jīng)參照圖8-17詳細進行了描述,因此將省略對其的額外描述。
[0123]在代碼塊設置單元針對代碼塊設置塊編號的步驟S140處,根據(jù)代碼塊的分層位置自動分配塊編號。此外,可以通過移動塊來自動設置這種塊編號,并且用戶不能隨意更改塊編號。也就是說,可以在代碼塊設置單元根據(jù)代碼塊位置而針對代碼塊設置塊編號的步驟S140處執(zhí)行塊編號的分配,所述位置是在生成代碼塊的步驟S120處或在設置代碼塊屬性或內(nèi)部屬性代碼的步驟S130處設置的。
[0124]在已經(jīng)設置了針對代碼塊的塊編號之后,在步驟S150處確定是否驗證代碼塊。這里,如果確定出需要代碼塊的驗證,也就是,當用戶希望驗證代碼塊時,在步驟S160處驗證代碼塊;反之,在用戶不希望驗證代碼塊時,在步驟S170處設置針對代碼塊的許可。
[0125]在驗證代碼塊的步驟S160處,代碼塊驗證單元通過利用隨機變量重復輸入或驗證包含于代碼塊中的輸入或輸出變量而執(zhí)行驗證代碼塊的功能。此外,不僅可以通過使用這種隨機變量的方法,而且可以通過針對落入條件中的所有值順序輸入變量的方法,來執(zhí)行驗證代碼塊的步驟S160。此外,已經(jīng)參照圖8詳細描述了該驗證過程,并因此將省略對其的額外描述。
[0126]之后,在步驟S170處設置針對代碼塊的許可。這里,設置針對代碼塊的許可的步驟S170不是必須步驟,而可以根據(jù)用戶需求而選擇性執(zhí)行。也就是說,配置設置針對代碼塊的許可的步驟S170以設置在整個代碼塊結構中的每個、至少一部分或所有代碼塊的安全性。
[0127]然后,在步驟S180處確定是需要生成額外代碼塊的操作還是編輯特定代碼塊的操作。這里,如果確定根據(jù)用戶的選擇要執(zhí)行生成額外代碼塊或編輯特定代碼塊的操作,則過程返回到生成代碼塊的步驟S110,在其中重復上述步驟。如果確定沒有必要根據(jù)用戶的選擇而執(zhí)行生成額外代碼塊或編輯特定代碼塊的操作,則在步驟S190處將代碼塊轉換成對應于預先設置的編程語言的代碼。
[0128]之后,代碼塊轉換單元在步驟S190處將代碼塊轉換成對應于預先設置的編程語言的代碼。由于已經(jīng)參照根據(jù)本發(fā)明實施例的用于可視化地實現(xiàn)軟件代碼的設備詳細描述了該轉換過程,所以將省略對其的額外描述。
[0129]下文中,將參考圖22進一步描述在圖21中示出的設置代碼塊信息的步驟。圖22是根據(jù)本發(fā)明實施例示出在用于可視化地實現(xiàn)軟件代碼的方法中響應于用戶輸入而設置代碼塊信息的步驟的流程圖。在下述描述中,將省略上述重復部分的重復描述。
[0130]首先,在步驟S210處確定是否已經(jīng)生成新的代碼塊。也就是,通過確定是否已經(jīng)生成新的代碼塊的步驟S210,確定用戶是希望生成新的代碼塊并對新的代碼塊執(zhí)行操作,還是希望編輯現(xiàn)有代碼塊。如果確定已經(jīng)生成了新的代碼塊,則在步驟S230處設置關于新代碼塊的代碼塊信息;反之,如果確定未生成新的代碼塊,則在步驟S220處編輯現(xiàn)有的代碼塊。
[0131]配置編輯現(xiàn)有的代碼塊的步驟S220以執(zhí)行在分層樹結構或分層塊結構中對代碼的編輯,例如,復制、移動、刪除和編輯代碼塊。也就是說,編輯現(xiàn)有的代碼塊的步驟S220表示可以在圖21的新代碼塊生成步驟S120處不生成新的單獨的代碼塊的情況下執(zhí)行的過程,或者即使已經(jīng)生成新的代碼塊也可以使得按照用戶期望進行編輯的過程。由于在上文已經(jīng)參考圖8詳細描述了現(xiàn)有代碼塊編輯過程S220,所以將省略對其的額外描述。
[0132]配置設置關于新代碼塊的代碼塊信息的步驟S230,以設置關于在生成新代碼塊的步驟S120處生成的新代碼塊的代碼塊信息。這里,代碼塊信息包括代碼塊屬性,其包括功能信息和描述信息;以及內(nèi)部屬性代碼,在其中實質實現(xiàn)了軟件代碼。也就是說,當使用代碼塊實現(xiàn)軟件時,需要在上代碼塊中(在屬于上代碼塊的下代碼塊中)使用的變量的定義,并且使用定義的變量作為輸入/輸出參數(shù)定義下代碼塊的功能。在設置關于新代碼塊的代碼塊信息的步驟S230處,可以執(zhí)行諸如功能定義或變量設置的功能。然而,不總是指定功能的順序,并且可以首先僅以近似方式定義塊,并然后實現(xiàn)詳細的功能,或者首先定義數(shù)據(jù)的使用并實現(xiàn)各個功能。
[0133]之后,在步驟S240處設置代碼塊的位置和關系。在本發(fā)明中公開的代碼塊的特征在于其可以在分層樹結構或分層塊結構中進行表示。也就是說,配置設置代碼塊的位置和關系的步驟S240來設置生成的或經(jīng)編輯的代碼塊的位置,并設置代碼塊與其它代碼塊的關系,因此使得能夠執(zhí)行代碼塊而不會引起錯誤。
[0134]接下來,在步驟S250處確定對應的代碼塊是否是最下層的代碼塊。也就是說,在根據(jù)本發(fā)明的代碼塊中,除了用于分配變量的代碼外上代碼塊不包含額外的代碼,并且在最下層的代碼塊中包括實際代碼。由于代碼塊的特性,在步驟S250處確定代碼塊是否是最下層的代碼塊。如果確定出代碼塊是最下層的代碼塊,則在步驟S260處從用戶接收內(nèi)部屬性代碼。在已經(jīng)從用戶接收了內(nèi)部屬性代碼之后,在步驟S140處通過代碼塊設置單元開始設置代碼塊的塊編號。如果確定代碼塊不是最下層代碼塊,則在步驟SllO處隨后確定是否生成代碼塊,因此還確定是否添加另一代碼塊。這里,當執(zhí)行添加或編輯另一代碼塊的功能時,再次執(zhí)行在圖21中公開的步驟,否則終止該過程。
[0135]可以將根據(jù)本發(fā)明的用于可視化地實現(xiàn)軟件代碼的方法實現(xiàn)為可以由各種計算機單元執(zhí)行的程序指令,并且可以記錄于計算機可讀存儲介質。計算機可讀存儲介質可以單獨或組合地包括程序指令、數(shù)據(jù)文件以及數(shù)據(jù)結構??梢葬槍Ρ景l(fā)明具體設計和配置記錄于存儲介質上的程序指令,或者所述程序指令對于計算機軟件領域的普通技術人員已知或可用。計算機可讀存儲介質的例子包括所有類型的硬件設備,其具體配置為記錄和執(zhí)行程序指令,例如磁介質(如硬盤、軟盤和磁帶),光介質(如壓縮盤(CD)只讀存儲器(ROM)和數(shù)字通用盤(DVD)),磁光介質(如軟式光盤、R0M、隨機存取存儲器(RAM)以及閃存)。程序指令的例子包括機器代碼,例如編譯器創(chuàng)建的代碼,以及計算機利用解釋器可執(zhí)行的高級語言代碼。硬件設備可以配置為操作為一個或多個軟件模塊,以便執(zhí)行本發(fā)明的操作,反之亦然。
[0136]可以將本發(fā)明的原理的教導實現(xiàn)為硬件和軟件的組合。此外,軟件可以實現(xiàn)為實際在程序存儲單元中實現(xiàn)的應用程序。可以將這種應用程序上載到包括任意適當架構的機器上,并且可以由機器執(zhí)行。優(yōu)選地,機器可以實現(xiàn)在具有硬件(例如,一個或多個CPU、計算機處理器、RAM以及輸入/輸出(I/O)接口)的計算機平臺上。此外,計算機平臺可以包括操作系統(tǒng)(OS)和微指令代碼。這里描述的各種過程和功能可以是微指令代碼的一部分或應用程序的一部分,或者其任意組合,并且這些可以通過包括CPU的各種處理設備執(zhí)行。另外,可以將各種外圍設備(例如,附加數(shù)據(jù)存儲單元和打印機)連接到計算機平臺。
[0137]由于在附圖中示出的系統(tǒng)部件和方法的一些優(yōu)選實現(xiàn)為軟件,所以可以額外理解的是,在系統(tǒng)部件之間或在過程功能塊之間的實際連接可以根據(jù)用于對本發(fā)明原理進行編程的方案而變化。當給出教導時,本領域技術人員將考慮本發(fā)明的原理,以及類似的實施例或配置。
【主權項】
1.一種用于可視化地實現(xiàn)軟件代碼的方法,當開發(fā)軟件所導出的需求和功能被實現(xiàn)為代碼時,所述方法可視化地實現(xiàn)在編程語言中使用的軟件代碼,所述方法包括: 通過代碼塊生成單元,根據(jù)所述需求和功能,逐塊生成用于實現(xiàn)軟件代碼的代碼塊;以及 通過代碼塊設置單元,基于用戶輸入的信息,設置包含于每個代碼塊中的代碼塊屬性或內(nèi)部屬性代碼, 其中設置代碼塊屬性或內(nèi)部屬性代碼包括:在代碼塊中包括關于代碼塊的功能信息、關于所述功能信息的描述信息、以及內(nèi)部屬性代碼。2.根據(jù)權利要求1所述的方法,還包括: 通過代碼塊轉換單元,當從用戶接收到請求時,將所述代碼塊轉換為與預先設置的編程語言相對應的代碼。3.根據(jù)權利要求1所述的方法,還包括:在設置代碼塊屬性或內(nèi)部屬性代碼之后, 當從用戶接收到顯示所述代碼塊的請求時,在顯示單元上顯示與代碼塊有關的功能信息、描述信息以及內(nèi)部屬性代碼。4.根據(jù)權利要求1所述的方法,其中,設置代碼塊屬性或內(nèi)部屬性代碼包括: 在所述代碼塊中包括代碼塊的位置、塊編號、管理編號、索引以及內(nèi)部屬性代碼。5.根據(jù)權利要求4所述的方法,其中,設置代碼塊屬性或內(nèi)部屬性代碼包括: 當通過所述代碼塊生成單元生成多個代碼塊時,根據(jù)用戶的設置,在分層樹結構或分層塊結構中對多個代碼塊進行分類。6.根據(jù)權利要求5所述的方法,其中,設置代碼塊屬性或內(nèi)部屬性塊包括: 根據(jù)所述代碼塊在分層樹結構或分層塊結構中的位置,自動分配塊編號。7.根據(jù)權利要求6所述的方法,其中,在分配所述塊編號時分配的塊編號用于確定所述代碼塊的控制流的序列,并根據(jù)所述代碼塊的位置的設置進行自動分配,并且所述代碼塊是根據(jù)所述塊編號順序編碼的。8.根據(jù)權利要求1所述的方法,其中,根據(jù)在分層樹結構或分層塊結構中的位置,將所述代碼塊分類為上代碼塊和下代碼塊;以及所述代碼塊被配置為使得:獨立于上代碼塊實現(xiàn)包含于所述下代碼塊中的內(nèi)部屬性代碼,并且能夠基于特性對包含于所述上代碼塊的下代碼塊的輸入/輸出參數(shù)進行組合和索引。9.根據(jù)權利要求8所述的方法,其中,上代碼塊包括一個或多個下代碼塊以及用于所述下代碼塊的變量聲明的內(nèi)部屬性代碼,并且所述一個或多個下代碼塊從所述上代碼塊接收輸入?yún)?shù),并將輸出參數(shù)返回到所述上代碼塊。10.根據(jù)權利要求1所述的方法,其中,根據(jù)控制流,所述代碼塊包括聲明語句代碼塊、循環(huán)語句代碼塊以及條件語句代碼塊。11.根據(jù)權利要求1所述的方法,其中,設置包含于每個代碼塊中的代碼塊屬性或內(nèi)部屬性代碼包括:將在先前生成的代碼塊和所述代碼塊之間的關系設置為包含關系或平行關系O12.根據(jù)權利要求1所述的方法,其中,在設置所述代碼塊屬性或內(nèi)部屬性代碼時,從用戶處經(jīng)由編碼窗口輸入所述內(nèi)部屬性代碼,所述編碼窗口包括以下中的至少一個: 變量聲明窗口,用于聲明所述內(nèi)部屬性代碼的輸入變量和輸出變量; 輸入變量分配窗口,用于分配所述輸入變量; 條件語句窗口,用于輸入條件語句或循環(huán)語句; 代碼輸入窗口,用于輸入實現(xiàn)對應的代碼塊的功能所需的軟件代碼;以及 輸出變量分配窗口,用于分配輸出變量。13.根據(jù)權利要求1所述的方法,還包括:在設置代碼塊屬性或內(nèi)部屬性代碼之后, 通過代碼塊驗證單元,使用隨機變量或使用輸入到每個代碼塊中的條件語句中或從條件語句中輸出的變量來驗證所述代碼塊。14.根據(jù)權利要求1所述的方法,還包括:在設置代碼塊屬性或內(nèi)部屬性代碼之后, 通過代碼塊許可設置單元,設置訪問所述代碼塊的許可。15.—種用于可視化地實現(xiàn)軟件代碼的設備,當開發(fā)軟件所導出的需求和功能被實現(xiàn)為代碼時,所述設備可視化地實現(xiàn)在編程語言中使用的軟件代碼,所述設備包括: 代碼塊生成單元,用于根據(jù)所述需求和功能,逐塊生成用于實現(xiàn)軟件代碼的代碼塊;以及 代碼塊設置單元,用于基于用戶輸入的信息,設置包含于每個代碼塊中的代碼塊屬性或內(nèi)部屬性代碼, 其中所述代碼塊設置單元在所述代碼塊中包括關于代碼塊的功能信息、關于所述功能信息的描述信息、以及內(nèi)部屬性代碼。16.根據(jù)權利要求15所述的設備,還包括:代碼塊轉換單元,用于當從用戶接收到請求時,將所述代碼塊轉換為與預先設置的編程語言相對應的代碼。17.根據(jù)權利要求15所述的設備,其中,所述代碼塊設置單元配置為: 當通過所述代碼塊生成單元生成多個代碼塊時,根據(jù)用戶的設置,在分層樹結構或分層塊結構中對多個代碼塊進行分類。18.根據(jù)權利要求17所述的設備,其中,根據(jù)所述代碼塊在所述分層樹結構或分層塊結構中的位置,自動分配塊編號。19.根據(jù)權利要求15所述的設備,其中,根據(jù)在分層樹結構或分層塊結構中的位置,將所述代碼塊分類為上代碼塊和下代碼塊;以及所述代碼塊被配置為使得:獨立于上代碼塊實現(xiàn)包含于所述下代碼塊中的內(nèi)部屬性代碼。20.根據(jù)權利要求19所述的設備,其中,上代碼塊包括一個或多個下代碼塊,并且所述一個或多個下代碼塊從所述上代碼塊接收輸入?yún)?shù),并將輸出參數(shù)返回到所述上代碼塊。
【文檔編號】G06F9/44GK106030524SQ201580009628
【公開日】2016年10月12日
【申請日】2015年5月8日
【發(fā)明人】黃首進, 崔仁淑
【申請人】黃首進, 崔仁淑