两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

軟件生成方法

文檔序號:6494969閱讀:371來源:國知局

專利名稱::軟件生成方法
技術(shù)領(lǐng)域
:本發(fā)明涉及軟件生成方法,特別涉及使用了由Lyee方法論中的進程代數(shù)進行的形式化的軟件生成方法。
背景技術(shù)
:這幾年間,為了改善與軟件開發(fā)生命周期相關(guān)的1個或多個方面,已經(jīng)設(shè)計并提出了各種方法論和技術(shù)的方案。但是,盡管該研究領(lǐng)域中不乏熱心的努力,然而能夠明確清楚地理解并可以修改的系統(tǒng)的制造目前仍然只是奢望,距離目標(biāo)的達成還相當(dāng)遙遠。其理由之一是由于軟件本身是復(fù)雜而難以捉摸的;另外一個理由是由于目前的方法論也有其局限性。最近,有人提出了一種稱為Lyee(商標(biāo))的新的非常有前途的方法論。Lyee的目的在于高效地處理與不同領(lǐng)域相關(guān)聯(lián)的范圍廣泛的軟件問題,借此,只要定義了其要件就能夠開發(fā)出軟件。但是,借助于Lyee而生成的軟件的語義以及從要件開始的軟件自動生成過程都是以非形式化的語言說明的,因此,要理解并研究該方法論,恐怕會有困難產(chǎn)生混亂。非專利文獻1J.A.博格斯特拉、J.W.科洛普(J.A.Bergstra和J.W.Klop)著,《使用抽象化的通信進程的代數(shù)》,1985年,理論計算機科學(xué),37(1),p.77-121非專利文獻2G.貝瑞、C.博多爾(G.Berry和G.Boudol)著,《化學(xué)抽象機械》,1992年,理論計算機科學(xué),96(1),p.217-248非專利文獻3C.A.R.霍爾(C.A.R.Hoare)著,《通信順序進程》,培生計算機科學(xué)國際叢書,培生出版公司(Prentice-Hall)出版,1985年非專利文獻4M.邁吉瑞,B.卡瑞,M.艾爾霍伊(M.Mejri,B.Ktari,和M.Erhioui)著,《面向Lyee的軟件的靜態(tài)分析》,關(guān)于Lyee方法論的第1次巴黎國際討論會預(yù)備稿集,哈米德.藤田,保爾.約翰遜編《軟件方法論、工具及技術(shù)新潮流》,p.375-394,IOS出版,2002年非專利文獻5R.米勒(R.Milner)著,《通信系統(tǒng)計算法》,計算機科學(xué)92講義記錄,柏林,1980年,施普林格出版非專利文獻6根來文生著,《Lyee軟件原理》,關(guān)于21世紀的信息科學(xué)的國際會議2000(IS2000),p.121-189,2000年11月非專利文獻7根來文生著,《Lyee入門》,軟件生產(chǎn)技術(shù)研究所,東京,日本,2001年非專利文獻8根來文生,I.哈米德(I.Hamid)著,《語義工學(xué)的建議》,關(guān)于數(shù)據(jù)庫和信息系統(tǒng)的第5次東歐會議研究(ADBIS’2001),2000年9月非專利文獻9根來文生,I.哈米德(I.Hamid)著,《語義工學(xué)的建議》,因特網(wǎng)上的電子商務(wù),與科學(xué)和教育基礎(chǔ)進步相關(guān)的國際會議(SSGRR2001),2001年
發(fā)明內(nèi)容本發(fā)明主要的第1目的是使用進程代數(shù)將借助于Lyee生成的軟件的語義和軟件的自動生成過程形式化。實際上,進程代數(shù)從本質(zhì)上印證了Lyee方法論的很多概念,因此,能夠?qū)yee方法論簡潔而巧妙地形式化。此外,第2目的是進程代數(shù)利用馮.諾曼理論為Lyee方法論提供更適合的抽象機。實際上,這種新的抽象機將程序視為化學(xué)溶液,在那里,分子(與Lyee方法論不同的向量)為了達成共同的目的而相互作用。本發(fā)明為了解決這些課題,具備第1步驟,按每個邏輯體、按該邏輯體上的每個單詞,根據(jù)單詞名、定義式、該定義式的執(zhí)行條件、輸入輸出屬性、單詞值的屬性來聲明,即,規(guī)定,作為1個程序而安裝的用戶要件;第2步驟,根據(jù)單詞單位的聲明,作成模塊化的邏輯要素(L2、L3、L4)作為具備Lyee計算法的輸入輸出通道的進程單元以及作用要素(I2、O4、S4);第3步驟,將上述邏輯要素和作用要素集合化為集合,該集合以利用來自同一畫面的命令產(chǎn)生相互作用為集合條件;第4步驟,按每個上述集合分別配置1個控制函數(shù)模塊Φ;以及第5步驟,為上述程序配置1個控制函數(shù)模塊Ψ。作為本發(fā)明的不同的實施體,用來生產(chǎn)“開發(fā)對象的軟件”的程序(軟件)、程序生成裝置、程序處理裝置、工具(包含作為裝置或作為軟件的兩者)、軟件開發(fā)裝置、軟件開發(fā)支持裝置、軟件開發(fā)管理裝置的結(jié)構(gòu)也可以具備聲明信息插入單元,用來在作為具備Lyee計算法的輸入輸出通道的進程單元而模塊化的邏輯要素(L2、L3、L4)以及作用要素(I2、O4、S4)的雛形的未定義部分之中插入信息,該信息中,將作為1個程序而安裝的用戶要件按每個邏輯體、作為該邏輯體上的每個單詞的由單詞名、定義式、該定義式的執(zhí)行條件、輸入輸出屬性、單詞值的屬性構(gòu)成的聲明加以信息化;控制函數(shù)Φ配置單元,用來將上述邏輯要素和作用要素以利用來自同一畫面的命令產(chǎn)生相互作用為集合條件的集合單位,與1個控制函數(shù)模塊Φ關(guān)聯(lián)起來以便對上述單位進行控制;以及控制函數(shù)Ψ配置單元,用來將1個控制函數(shù)模塊Ψ與上述控制函數(shù)Φ關(guān)聯(lián)起來以便對上述控制函數(shù)Φ進行控制。本發(fā)明也可以進一步作為利用上述“開發(fā)對象的軟件的生產(chǎn)方法”而生產(chǎn)的軟件、以及搭載了該軟件的記錄介質(zhì)或搭載了該軟件的裝置(硬件)而實現(xiàn),這種情況下的本發(fā)明可由以下部分構(gòu)成模塊組,在作為具備Lyee計算法的輸入輸出通道的進程單元而模塊化的邏輯要素(L2、L3、L4)以及作用要素(I2、O4、S4)的雛形的未定義部分之中插入信息,該信息將作為1個程序而安裝的用戶要件按每個邏輯體、按該邏輯體上的每個單詞的作為由單詞名、定義式、該定義式的執(zhí)行條件、輸入輸出屬性、單詞值的屬性構(gòu)成的聲明加以信息化;1個或多個控制函數(shù)模塊Φ,以利用來自同一畫面的命令產(chǎn)生相互作用為集合條件的集合單位,與上述模塊組關(guān)聯(lián)起來以便利用1個控制函數(shù)模塊Φ進行控制;以及控制函數(shù)模塊Ψ,與上述控制函數(shù)Φ關(guān)聯(lián)起來以便利用1個控制函數(shù)模塊Ψ進行控制。另外,本發(fā)明也可以進一步作為利用上述“開發(fā)對象的軟件的生產(chǎn)方法”而生產(chǎn)軟件時所使用的軟件代碼的雛形的軟件、以及搭載了該軟件的記錄介質(zhì)或搭載了該軟件的裝置(硬件)來實現(xiàn),這種情況下的本發(fā)明可作為將軟件作為可代碼化的雛形來實現(xiàn),其具備具有將信息應(yīng)嵌入的未定義部分、作為具備Lyee計算法的輸入輸出通道的進程單元而模塊化的邏輯要素(L2、L3、L4)以及作用要素(I2、O4、S4)的雛形,該信息將作為1個程序而安裝的用戶要件按每個邏輯體、按該邏輯體上每個單詞的作為由單詞名、定義式、該定義式的執(zhí)行條件、輸入輸出屬性、單詞值的屬性構(gòu)成的聲明加以信息化;控制函數(shù)模塊Φ的雛形,具備將上述聲明信息插入到未定義部分后的上述邏輯要素和作用要素以利用來自同一畫面的命令產(chǎn)生相互作用為集合條件的集合單位,利用1個控制函數(shù)模塊Φ進行控制的功能;以及控制函數(shù)模塊Ψ的雛形,其具備用于利用1個控制函數(shù)模塊Ψ控制上述控制函數(shù)Φ的功能。進而,本發(fā)明也可以實現(xiàn)為利用上述“開發(fā)對象的軟件的生產(chǎn)方法”從要件中提取的信息(文檔(紙、數(shù)據(jù)))的提取方法、作為利用該提取方法提取的信息(文檔(紙、數(shù)據(jù)))、進而作為所提取的該信息的使用方法、或者作為搭載了這些信息的信息記錄介質(zhì)、或者作為信息的提取方法/使用方法被代碼化后的軟件、作為搭載了該軟件的記錄介質(zhì)/裝置(硬件)中的任意一種,這種情況下的本發(fā)明可作為從具備以下信息的軟件開發(fā)要件中提取的信息而實現(xiàn)應(yīng)插入到作為具備Lyee計算法的輸入輸出通道的進程單元而模塊化的邏輯要素(L2、L3、L4)以及作用要素(I2、O4、S4)的雛形的未定義部分之中的、用來聲明作為1個程序而安裝的用戶要件按每個邏輯體、按該邏輯體上的每個單詞的作為由單詞名、定義式、該定義式的執(zhí)行條件、輸入輸出屬性、單詞值的屬性構(gòu)成的聲明信息化后的信息;對將未定義部分中插入上述聲明信息后的上述邏輯要素和作用要素以利用來自同一畫面的命令產(chǎn)生相互作用為集合條件的集合單位關(guān)聯(lián)起來以便利用1個控制函數(shù)模塊Φ進行控制的信息;以及與上述控制函數(shù)Φ關(guān)聯(lián)起來以便利用1個控制函數(shù)模塊Ψ進行控制的信息。此外,關(guān)于邏輯體,參照同一申請人的專利申請?zhí)卦?004-272400,引用其作為本說明的一部分。本發(fā)明高效地處理與不同領(lǐng)域相關(guān)聯(lián)的范圍廣泛的軟件問題,與現(xiàn)有的方法論相比,使用Lyee時開發(fā)時間、維護時間和文檔量顯著減少(70~80%左右)。圖1是用來說明本發(fā)明的一個實施方式中的單元的概念的概念圖。圖2是表示本發(fā)明的一個實施方式中相互作用的進程的實例的圖。圖3是用來說明本發(fā)明的一個實施方式中要件的執(zhí)行的概念的概念圖。圖4是用來說明本發(fā)明的一個實施方式中Lyee選項板(palette)的概念的概念圖。圖5是用來說明本發(fā)明的一個實施方式的基本結(jié)構(gòu)的概念的概念圖。圖6是用來說明本發(fā)明的一個實施方式中謂語向量的概念的概念圖。圖7是用來說明本發(fā)明的一個實施方式中L4_a及L4_b的謂語向量的概念的概念圖。圖8是用來說明本發(fā)明的一個實施方式中L3_a及L3_b的謂語向量的概念的概念圖。圖9是用來說明本發(fā)明的一個實施方式中的畫面相互作用的概念的概念圖。圖10是用來說明本發(fā)明的一個實施方式中的處理路線圖的概念圖。圖11是用來表示本發(fā)明的一個實施方式中有1個畫面時的情況的概念圖(實施例1)。圖12是用來表示本發(fā)明的一個實施方式中Lyee計算法的程序P(S1)的進程和最終用戶的進程的說明圖。圖13是用來說明本發(fā)明的一個實施方式中進程間的相互作用的概念圖。圖14是用來表示本發(fā)明的一個實施方式中有2個畫面時的情況的概念圖(實施例2)。圖15是用來表示本發(fā)明的一個實施方式中Lyee計算法的程序P(S1)的進程和最終用戶的進程的說明圖。圖16是功能框圖,表示作為本發(fā)明的一個不同的實施方式,將本發(fā)明作為用來生產(chǎn)“開發(fā)對象的軟件”的程序(軟件)、程序生成裝置、程序處理裝置、工具(包含作為裝置和作為軟件的這兩者)、軟件開發(fā)裝置、軟件開發(fā)支持裝置、或者軟件開發(fā)管理裝置的任意一個加以實施時作為功能所具備的結(jié)構(gòu)。圖17是流程圖,表示本發(fā)明的一個實施方式中作為具備上述結(jié)構(gòu)的程序(軟件)、程序生成裝置、程序處理裝置、工具(包含作為裝置和作為軟件的這兩者)、軟件開發(fā)裝置、軟件開發(fā)支持裝置、或軟件開發(fā)管理裝置中的任意一個而實施的本發(fā)明的動作。符號說明W04W04選項板W05W05選項板W06W06選項板1601整體控制部1602聲明信息插入部1603控制函數(shù)Φ配置部1604控制函數(shù)Ψ配置部1605信息存儲部具體實施方式Lyee方法論由進程代數(shù)進行的形式化概要這幾年間,為了改善與軟件開發(fā)生命周期相關(guān)的1個或多個方面,已經(jīng)設(shè)計并提出了各種方法論和技術(shù)的方案。但是,盡管該研究領(lǐng)域中不乏熱心的努力,然而能夠明確清楚地理解并可以修改的系統(tǒng)的制造目前仍然只是奢望,距離目標(biāo)的達成還相當(dāng)遙遠。其理由之一是由于軟件本身是復(fù)雜而難以捉摸的;另外一個理由是由于目前的方法論也有其局限性。最近,有人提出了一種稱為Lyee的新的非常有前途的方法論。Lyee的目的在于高效地處理與不同領(lǐng)域相關(guān)聯(lián)的范圍廣泛的軟件問題,借此,只要定義了其要件就能夠開發(fā)出軟件。但是,借助于Lyee而生成的軟件的語義以及從要件開始的軟件自動生成過程都是以非形式化的語言說明的,因此,要理解并研究該方法論,恐怕會有困難產(chǎn)生混亂。本發(fā)明主要的第1目的是使用進程代數(shù)將借助于Lyee生成的軟件的語義和軟件的自動生成過程形式化。實際上,進程代數(shù)從本質(zhì)上印證了Lyee方法論的很多概念,因此,能夠?qū)yee方法論簡潔而巧妙地形式化。此外,第2目的是進程代數(shù)利用馮.諾曼理論為Lyee方法論提供更適合的抽象機。實際上,這種新的抽象機將程序視為化學(xué)溶液,在那里,分子(與Lyee方法論不同的向量)為了實現(xiàn)共同的目的而相互作用。1.首先如何簡單快速地制造高品質(zhì)的軟件是軟件開發(fā)研究領(lǐng)域的基本課題。這幾年來,為了改善與軟件開發(fā)生命周期相關(guān)的1個或多個方面,已經(jīng)設(shè)計并提出了各種方法論和技術(shù)。但是,盡管該研究領(lǐng)域中不乏熱心和努力,然而能夠明確清楚地理解并可以修改的系統(tǒng)的制造目前仍然只是奢望,距離目標(biāo)的達成還相當(dāng)遙遠。其理由之一是由于軟件本身是復(fù)雜而難以捉摸的;另外一個理由是由于目前的方法論也有其局限性。實際上已經(jīng)提出的幾乎全部方法論都沒有能夠制造出可以明確清楚地理解并修改的系統(tǒng),到目前為止,其使用也僅限于具有范圍非常廣泛的能力、技術(shù)和知識的專家。為此,人工費用和維護費用很高,必須對軟件進行廣泛的檢查。基于這些理由,企業(yè)傾向于歡迎約束在軟件開發(fā)周期中的可證實的改善的所有新的方法論。最近提出了一種被稱為Lyee(讀作“l(fā)i”,是由“governementaLmethodologYforsoftwarEprovidencE”的尾字母組成的詞)(參照非專利文獻6、7、8、9)的、新的非常有前途的方法論。Lyee的目的在于高效地處理與不同領(lǐng)域相關(guān)聯(lián)的范圍廣泛的軟件問題,借此,只要定義了其要件就能夠開發(fā)出軟件。更準確地說,開發(fā)者只要提供單詞、計算式、計算條件(前提條件)以及畫面和報表的排列布局,然后全部由計算機執(zhí)行其后全部復(fù)雜的編程過程(例如,與控制邏輯有關(guān)的方面等)。盡管很新,然而Lyee的使用結(jié)果仍然給人們展示出其具有非常多的潛力。實際上,與現(xiàn)有的方法論相比,使用Lyee時開發(fā)時間、維護時間以及文檔量顯著減少(70~80%左右)(參照非專利文獻7)。在非專利文獻4中,為了改善這種方法論的多個方面,特別是Lyee要件的方面,人們提出了若干個古典式靜態(tài)分析技術(shù)。但是,借助于Lyee而生成的軟件的語義以及從要件開始的軟件自動生成過程都是以非形式化的語言說明的,因此,要理解并研究該方法論,恐怕會有困難產(chǎn)生混亂。進而,該方法論所蘊含的構(gòu)思是由不適宜支持這種構(gòu)思的順序處理語言(sequentiallanguage順序語言)來描述的。實際上,借助于Lyee而生成的軟件基本上是由小的構(gòu)件(在Lyee的術(shù)語中稱為向量(vector))組構(gòu)成的。這里,各個構(gòu)件具有各自的原子目標(biāo)(atomicgoal元素目的)并通過相互作用而互相協(xié)作,產(chǎn)生所要求的結(jié)果(全局目標(biāo)(globalgoal整體目的))。另一方面,眾所周知,支持并發(fā)性(concurrency多個計算主體相互交流信息并執(zhí)行動作)和通信(communication)的進程代數(shù)是一種在本質(zhì)上適合于描述存在共同作用(concurrent)的構(gòu)件的語言。因此,進程代數(shù)為支持Lyee方法論的概念提供了形式化的有價值的基礎(chǔ)。將進程代數(shù)應(yīng)用于Lyee方法論中所獲得的很多優(yōu)點之一是Lyee的現(xiàn)實版本中的很多構(gòu)件(向量整體或向量的一部分)已經(jīng)變得不再需要。這是因為,這些構(gòu)件是以順序處理語言描述的,因此對于控制某個處理的整個執(zhí)行順序來說是必要的,但它們的作用必然地得到支持進程的平行處理和通信的進程代數(shù)的支持。實際上,路由作用要素(routingvector)也已經(jīng)不再需要。能夠獲得用來生成更小、處理時間更短、所需內(nèi)存更少的程序的、簡單的Lyee的形式化描述。而且,這種形式化描述也是這種方法論的各個方面的很多繞有趣味的分析所不可或缺的起點。例如,為了最優(yōu)化使用Lyee生成的軟件或軟件生成過程,需要有能夠證明最優(yōu)化后的程序與原版本相同的形式化證據(jù)。使用進程代數(shù)能夠很好地進行在形式上是否相同檢查,或進行更一般化的模型檢查。在本說明書中,首先對在本質(zhì)上(naturally)容易地支持Lyee方法論的基本概念的、稱為Lyee計算法(Lyee-Calculus)的形式化進程代數(shù)(formalprocessalgebra)加以定義。實際上,這種計算法可以看作是更適合于用來支持Lyee方法論的概念的抽象機(abstractmachine計算機的概念的抽象化),而不是馮.諾曼型(順序處理型)計算機。這種抽象機把程序看作是為了產(chǎn)生最終結(jié)果而共同相互作用的分子的集合。第二,這種計算法表示了如何將Lyee構(gòu)件(在Lyee中稱為向量)和Lyee方法論的整個軟件生成過程兩者進行形式化而加以簡化。實際上,Lyee軟件生成的自動生成全過程實現(xiàn)了形式化。本說明書的其余部分如下構(gòu)成。在第2部分定義了Lyee計算法的語法(syntax)和語義(semantics)。在第3部分介紹了Lyee方法論的技術(shù),介紹了利用Lyee計算法所做的其形式化的全貌。在第4部分,提出了利用Lyee計算法所做的Lyee方法論的詳細而完整的形式化方案。在第5部分,針對所生成的程序在每個執(zhí)行階段的描述以及怎樣根據(jù)簡單的要件自動生成程序這兩者的一個具體的實例研究進行說明。最后,在第6部分,敘述了該研究的結(jié)論,說明了若干個將來的研究。2.Lyee計算法進程代數(shù)是一種用于復(fù)雜的計算機系統(tǒng)、特別是包含相互通信并且并發(fā)執(zhí)行的構(gòu)件的計算機系統(tǒng)的形式化描述技術(shù)(參照非專利文獻1、3、5)。進程代數(shù)在文獻中通常稱為計算法(calculus)。其原因在于,進程代數(shù)包含超出了進程代數(shù)領(lǐng)域的各種數(shù)學(xué)或邏輯概念(并發(fā)理論(concurrencytheory)、操作語義(operationalsemantics)、復(fù)雜度理論(complexitytheory)、邏輯等)。在該部分中,說明了為了形式化Lyee方法論而特意定義的稱為Lyee計算法的新的計算法的語法和語義。2.1語法(Syntax)Lyee計算法程序是由在指定通道上通過握手技術(shù)(hand-shaketechnique通過將2個進程中的一方置為可接收狀態(tài)、另一方置為可發(fā)送狀態(tài)進行通信的技術(shù))進行通信(communicate)的獨立的并發(fā)進程構(gòu)成的系統(tǒng)。通道可以進行限制,只允許特定進程在其上進行通信。某個進程可以執(zhí)行作用[?!e]而通過通道?發(fā)送值?(?是算式e的計算結(jié)果(valuation))。同樣地,某個進程可以執(zhí)行作用[??e]而從通道?接收算式e的值?(?是算式e的計算中使用的值)。某個進程也可以執(zhí)行無為作用(silentaction)τ。這種特別的作用用來表示進程間的同步(synchronization在進程間通信中,某個進程發(fā)送數(shù)值等的同時,另一個進程接收該值的行為)這樣的系統(tǒng)內(nèi)部行為(internalbehavior)。另外,也有益于捕捉進程進展的不可預(yù)測性(indeterminism)——即當(dāng)存在多個進程作為選擇項而無法預(yù)測哪個進程會被執(zhí)行(參照后述的進程語法定義1的“選擇”的說明)。進程的語法(syntax)定義如下。&lt;定義&lt;語法1&gt;&lt;定義&lt;語法2&gt;K,K1,K2∷={κ}|K1UK2&lt;定義&lt;語法3&gt;L,L1,L2∷=0|{ι}|L1UL2|&lt;定義&lt;語法4&gt;κ∷=??!e|??e|τ|上述定義語法中使用的符號的意義、及其直觀式語法的意義表示如下。&lt;定義&lt;語法1&gt;定義語法1的直觀意義如下所示。即,當(dāng)存在進程P和Q時,其關(guān)系和內(nèi)容定義為以下的某一個。即,是序列([K].P)、并行結(jié)構(gòu)(P|Q)、選擇(P+Q)、有條件選擇(P>Q)、限制(P/L)、定義、空進程(nil)中的某一個。這里所說的“定義”是指[算式3]=def]]>關(guān)于各語法的解釋在后文敘述。&lt;定義&lt;語法2&gt;定義語法2的直觀意義如下所示。即,當(dāng)存在作用集K、K1、K2時,該作用集是以1個作用為元素的集合({κ})或者是作用集結(jié)合后的所成的集合(K1UK2)的任一個。&lt;定義&lt;語法3&gt;定義語法3的直觀意義如下所示。即,當(dāng)存在通道集L、L1、L2時,該通道集是沒有元素的空集合(0)、僅以1個通道為元素的集合({?})、通道集結(jié)合后的集合(L1UL2)中的任一個。&lt;定義&lt;語法4&gt;定義語法4的直觀意義如下所示。即,當(dāng)存在作用κ時,該作用是在通道?上發(fā)送算式e的計算結(jié)果值的發(fā)送作用(?!e)、在通道?上接收算式e的值的接收作用(??e)、無為作用(τ)中的任一個。詳細說明定義語法1中定義的語法的意義。1)[K].P序列(Sequence)進程[K].P是屬于作用集K的全部作用(action)即{κ1,...,κn}執(zhí)行后作為P執(zhí)行的進程。屬于K的作用的執(zhí)行順序無關(guān)緊要。這里,為了簡化說明,將[{κ1,...,κn}]寫成[κ1,...,κn]。2)P|Q并行結(jié)構(gòu)(Parallelcomposition)進程P|Q作為并發(fā)執(zhí)行的進程P和Q執(zhí)行。各個進程既可以在雙方清楚的通道上進行相互作用,或者各個進程也可以獨立于另一方與外部世界(系統(tǒng)的環(huán)境或最終用戶)相互作用(interact)。如果2個進程在相同通道上取得同步(synchronize在進程間通信中,某個進程發(fā)送數(shù)值等的同時,另一個進程接收),則進程整體執(zhí)行作用τ(無為作用),其后,作為剩下的進程執(zhí)行。具體地,試以以下進程為例進行考察。P=P1|P2P1和P2定義如下。P1=def[&iota;!4]&CenterDot;P1&prime;P2=def[&iota;x]&CenterDot;P2&prime;]]>上述算式的直觀意義為P1在通道?上發(fā)送值4,其后是作為進程P1’而運行的進程。P2等待通道?上提供的算式x的值,值被提供后加以接收,其后是作為進程P2’而運行的進程。因此,進程P在進程P1與P2取得同步時(這實際上是在從P1發(fā)送值4的同時由P2接收)執(zhí)行無為作用τ,其后作為剩下的進程P1′|P2′運行。從語義上來看,該遷移表示如下。P&RightArrow;&tau;P1&prime;|P2&prime;]]>該算式的直觀意義為進程P的相互作用的結(jié)果是無為作用τ被執(zhí)行,進程整體變?yōu)椴l(fā)進程P1′|P2′。關(guān)系[算式6]&RightArrow;&kappa;]]>的形式化定義表示該行為之后。3)P+Q選擇(Choice)進程P+Q是作為進程P或Q運行的進程。除了P和Q的某一方開始時是無為作用的情況,針對哪個進程被執(zhí)行的選擇是由環(huán)境決定的。另一方面,當(dāng)兩個進程是以無為作用開始時,選擇并不確定。4)P>Q有條件選擇(Guardedchoice);進程P>Q是作為P運行直至進程Q被激活(activated)的進程。后者Q被激活時,P總是停止并被清除出內(nèi)存。5)P/L限制(Restriction)進程P/L是作為只使用由通道集L所提供的通道即可與環(huán)境進行通信的進程P運行的進程。6)算式3的符號定義(Definition)例如,借助于算式3的符號可以定義如下算式。A(X&RightArrow;)=defP]]>在算式7中,A是進程的識別名。X&RightArrow;]]>是進程A的變量(參數(shù)),左邊的進程被定義為與右邊的進程P相等。進程P可以遞歸式包含A。7)nil空進程(nilprocess)不執(zhí)行任何作用的進程、換言之,是結(jié)束的進程(deadprocess死進程)。某進程結(jié)束后,通常會變成nil進程。結(jié)束后變成nil進程時,該進程已經(jīng)不再活動(activated),因此,即使具備了執(zhí)行作用的條件,也不能執(zhí)行任何作用。2.2保存例值的進程的模型化在本部分中,針對將值保存在稱為內(nèi)存的單元(cell)中并通過其通信通道與其環(huán)境進行相互作用的進程的模型化方法進行說明。如圖1所示,內(nèi)存/單元被看作是具有2個通信用的端口(通道)in和out。該內(nèi)存/單元的基本任務(wù)是在通道in上無條件地等待輸入值,并使得在通道out上可以使用該值。內(nèi)存/單元直至新值輸入通道in為止,可以將相同值向通道out輸出必要的次數(shù)。通道本身不保存值。內(nèi)存/單元x保存了值?的進程單元Cx(?)表示如下。Cx(v)=def[inxv]&CenterDot;Cx(y)+[outx!v]&CenterDot;Cx(v)]]>這種形式化描述的直觀意義是,當(dāng)保存了值?的進程Cx(?)在通道inx上接收到算式y(tǒng)的值時,就作為進程Cx(y)而運行(即,所保存的值從?變?yōu)樗闶統(tǒng)的值);當(dāng)所保存的值?被發(fā)送到通道outx上時,發(fā)送作用之后仍然保存著值?而作為進程Cx(?)運行。如果將用來保存值的內(nèi)存/單元看作進程,則能夠進一步為內(nèi)存/單元賦予智能。例如,能夠向直至初始化(接收到初始值)為止不存取其內(nèi)容的單元寫入。這種具備信息處理能力的智能單元(smartcell)可以如下定義。Cell(x)=def[inxy]&CenterDot;Cx(y)]]>進程Cell(x)在通道inx上接收到算式y(tǒng)的值之后,成為保存著算式y(tǒng)的值的進程Cx(y)而運行(接收算式y(tǒng)的值,成為保存算式y(tǒng)的值的進程,不執(zhí)行發(fā)送)。這里,考慮如下定義的2個進程。P1=def[inx|5]&CenterDot;nilP2=def[outxy]&CenterDot;nil]]>進程P1在通道inx上發(fā)送值5,變?yōu)閚il(結(jié)束)進程(發(fā)送值5的進程)。進程P2在通道outx上接收到算式y(tǒng)的值后變?yōu)閚il(結(jié)束)進程(接收算式y(tǒng)的值的進程)。這2個進程奇以簡單地編寫成通過單元x(Cx)而通信的程序。P1|Cell(x)|P2該程序是使進程P1、進程Cell(x)、進程P2并發(fā)執(zhí)行的程序。圖2表示上述所包含的全部進程之間的相互作用。該程序執(zhí)行中的各個詳細步驟如下所示。P1|Cell(x)|P2=[inx!5]&OverBar;&CenterDot;nil|[inxy]&OverBar;&CenterDot;Cx(y)|[outxy]&CenterDot;nil&RightArrow;&tau;Cx(5)|[outxy]&CenterDot;nil=(|inxy|&CenterDot;Cx(y)+[outx&UpArrow;5]&OverBar;&CenterDot;Cx(5))|[outxy]&OverBar;&CenterDot;nil&RightArrow;&tau;Cx(5)]]>上述算式的直觀意義是進程P1|Cell(x)|P2經(jīng)以下的第1步驟和第2步驟而執(zhí)行。(等號符號所記載的右邊是一個步驟)下劃線表示產(chǎn)生相互作用(同步)的收發(fā)作用。&lt;第1步驟&gt;(1)[inx!5].nil(向通道inx發(fā)送值5)、2)[inx!5].Cx(y)(在通道inx接收算式y(tǒng)的值,接收后在單元x中保存算式y(tǒng)的值)、(3)[outx?y].nil(在通道outx接收算式y(tǒng)的值)這3個進程并發(fā)執(zhí)行的結(jié)果是產(chǎn)生進程間的相互作用(同步),即(1)向通道inx發(fā)送值5結(jié)束,同時由(2)在通道inx接收值5;無為作用τ被執(zhí)行,轉(zhuǎn)移到(4)Cx(5)(在單元x中保存值5)和(3)[outx?y].nil(在通道outx接收算式y(tǒng)的值)這2個進程的并發(fā)進程。&lt;第2步驟&gt;根據(jù)上述算式1-19的定義,可以將(4)Cx(5)置換為選擇進程(4)-1([inx?y].Cx(y)+[outx??].Cx(?))。即,進程(4)-1與(3)并發(fā)執(zhí)行的結(jié)果是產(chǎn)生了與(4)-1的[outx??].Cx(?)(向通道outx發(fā)送值5)同時產(chǎn)生(3)的(在通道outx接收算式y(tǒng)的值5)這樣的相互作用(同步),無為作用τ被執(zhí)行,其結(jié)果是,剩下的進程作為Cx(5)(在單元x中保存值5)而運行。2.3語義下面,說明Lyee計算法的形式化語義。該語義通過相互作用關(guān)系[算式13]&RightArrow;&kappa;]]>定義。此時,運算子→表示“關(guān)系”(relation),κ表示作用?!瓣P(guān)系”是多個“關(guān)系”的集合,作為該集合元素的各個“關(guān)系”由以下3個元素構(gòu)成。第1元素是“變化前的進程”,第2元素是“變化后的進程”,第3元素是“在變化過程中所執(zhí)行的作用”。當(dāng)寫作P&RightArrow;&kappa;Q]]>時,關(guān)系→的3要素是(P,Q,K)。按照上述定義,算式14的語義是借助于子進程P之中的相互作用(reaction),整體進程執(zhí)行原子作用(atomicaction不允許中斷的一系列不可分割的作用,要開始下一個不同的作用,該作用必須結(jié)束)κ而變?yōu)樽舆M程Q。相互作用關(guān)系(interactionrelation)這樣的構(gòu)思是由貝瑞(Berry)和博多爾(Boudol)(參照非專利文獻2)的《化學(xué)抽象機》(ChemicalAbstractMachine)觸發(fā)的。在該模型中,進程被看作等待產(chǎn)生相互作用的分子化學(xué)溶液。為了形式化表示算式13的關(guān)系,需要定義以下概念。是為了簡化進程而使用的符號,表示左邊與簡化的進程——右邊——相等。如下述所示,通過去除空進程,能夠簡化進程。算式e的計算結(jié)果值的集合以[算式17][e]表示。當(dāng)e是變量時,其計算結(jié)果值的變化域也與該變量的變化域(domain)(整數(shù)、實數(shù)等)相同。為了簡化說明,假定全部變量都屬于實數(shù)集。&kappa;&DownArrow;]]>是作用κ所使用的通道的名稱。例如,[算式19]的語義為無為作用τ所使用的通道不存在,因此,是空集合(0)。發(fā)送作用(?!e)和接收作用(??e)所使用的通道為??!瓣P(guān)系”的集合(→)是具備作為要素滿足表5所示的15個規(guī)則的“關(guān)系”的最少數(shù)量的“關(guān)系”。括號中所示的各種R符號是表示規(guī)則名稱的符號。規(guī)則由前提條件和結(jié)果構(gòu)成,各個規(guī)則都是如果存在橫線上面所示的條件則有下面所示的結(jié)果。例如,第2個規(guī)則(R1)的語義為如下所示。當(dāng)值?屬于算式e的值的集合時(當(dāng)上面的前提條件成立時),在通道?上發(fā)送算式e的值后,變成進程P的[?!e].P產(chǎn)生向通道?上的值?發(fā)送作用后,遷移為進程P(下面的結(jié)果)。3.Lyee要件的非形式的形式化在本部分中說明Lyee方法論是怎樣根據(jù)基本的用戶要件生成軟件的,說明其全貌。此外,根據(jù)其全貌依次介紹如何借助于Lyee計算法將該方法論簡單而高效地形式化。關(guān)于Lyee方法論的軟件生成過程的完全的形式化在下一部分中說明。3.1Lyee要件在Lyee方法論中,要件通過聲明式方法作為包含單詞名、其定義式、其計算條件、以及其屬性(輸入輸出、類型、安全類型等)要素的聲明集合提供。表6是Lyee要件的一個實例?!癢ord”表示單詞名,“Definition”表示用來生成單詞值的定義式,Condition表示執(zhí)行定義式的計算條件,“IO”表示單詞值的輸入輸出屬性。OF表示輸出到文件,OS表示輸出到畫面,IS表示從畫面的輸入,IF表示從文件的輸入(表中沒有)。“Type”表示值的屬性,int表示整數(shù)(integer),float表示浮動小數(shù)點數(shù)?!癝ecurity”表示與值的安全性相關(guān)的屬性。secret表示不公開,public表示公開。表6的要件從感覺上來看,與現(xiàn)有的編程語言的表7的代碼相對應(yīng)。Sa表示單詞a的聲明。例如,單詞a的聲明Sa的代碼表示,“如果b*e>2為真,則將b+c的計算結(jié)果代入單詞a,并輸出單詞a的值”。聲明Sc的代碼表示“向單詞c輸入值”。在Lyee方法論中,用戶無需指定這些定義的執(zhí)行順序(控制邏輯)。如表7所示,雖然單詞a的定義使用了單詞b,但聲明Sb仍然位于聲明Sa之后。如下述說明,根據(jù)這些要件,Lyee可以與其聲明順序無關(guān)地生成用來計算所定義的全部單詞的代碼。如非專利文獻6、7、8、9所示,這種簡單的構(gòu)思在軟件開發(fā)的不同階段產(chǎn)生了很多有利的結(jié)果。實際上,借助于這種構(gòu)思,即使要件不完整也能夠開始軟件的開發(fā)。進而,用戶也不需要處理在使用更古典的方法論時遇到的單詞的執(zhí)行順序的控制邏輯問題。在Lyee方法論中,軟件的控制邏輯部分被自動生成,其結(jié)果是,編程錯誤減少,編程時間縮短。靈活性也是Lyee方法論的重要優(yōu)點。其原因在于,能夠?qū)⒕S護業(yè)務(wù)減輕為要件的簡單修改(單詞定義的增加、刪除和/或修改)作業(yè)。因此,可以將Lyee系統(tǒng)看作是為了生成所要的結(jié)果而執(zhí)行共同的相互作用的獨立構(gòu)件(聲明)的集合體。本論的進程代數(shù)的概念與這種觀點非常吻合。原因在于,Lyee計算法將程序看作是為了實現(xiàn)最終目的而一起相互作用的分子(進程)的化學(xué)溶液。因此,甚至可以將由聲明的集合{s1,...,sn}構(gòu)成的Lyee要件LR看作是Lyee計算法的并發(fā)進程(concurrentprocess)。即,如下所示。LR=s1|...|sn從直觀上說明的話,要件LR是進程s1,...,sn并發(fā)執(zhí)行的進程。3.2選項板(Pallet)和基本結(jié)構(gòu)(ScenarioFunction)根據(jù)表6的要件能夠自動生成計算a和b的值并將其輸出的程序。該程序單純地重復(fù)執(zhí)行這些命令,直到到達不動點(fixedpoint),即,如圖3所示,重復(fù)處理直到任何單詞的值都不可改變?yōu)橹埂倪M程代數(shù)的觀點來看,“到達不動點”的概念當(dāng)然包含在語義規(guī)則中。實際上,進程(分子)一起相互作用,直到達到不可能有任何進展的狀態(tài)(不動點)。進一步正確地說明借助于Lyee根據(jù)要件自動生成的程序的結(jié)構(gòu)和內(nèi)容。在Lyee方法論中,表6所示的聲明集合通過特定的方法執(zhí)行。實際上,Lyee如圖4所示,在以Lyee術(shù)語被稱為選項板(W02、W03和W04)的3個區(qū)域上分配與聲明相關(guān)的代碼。選項板W02處理輸入單詞。選項板W03計算單詞的計算條件,將結(jié)果保存為布爾型(具備真假值)變量。例如,在單詞a的定義中使用的計算條件“b*e>2”在W03中被計算,其真/假的結(jié)果被保存為另一個變量“a_cond”。選項板W04利用要件中包含的該定義式進行單詞計算。另外,選項板W04將計算出來的單詞值輸出。Lyee程序從選項板W04開始,計算所定義的全部單詞的值,直到達到不動點。一旦與單詞值的計算相關(guān)的W04中不再有進展,就由路由作用要素R4向選項板W02提供控制。此時,該第2選項板重復(fù)輸入單詞值,到達不動點時(已經(jīng)沒有其他的新的輸入對象了),接著由路由作用要素R2將控制交給選項板W03最后,與選項板W04一樣,選項板W03根據(jù)要件計算單詞的計算條件,直到達到不動點。如圖5所示,重復(fù)這整個過程(W04→W02→W03)直到整體達到穩(wěn)定狀態(tài),連接在一起的3個選項板被稱為基本結(jié)構(gòu)(ScenarioFunction)。通過使用順序處理語言來組合Lyee要件,Lyee方法論的作者不得不明確地指定選項板的執(zhí)行順序、同一選項板內(nèi)的向量(模塊)的應(yīng)該的執(zhí)行順序、以及某個向量向另外的向量傳遞控制的方法。換言之,這種順序處理語言導(dǎo)致了不屬于Lyee方法論的基本概念并且使該方法論變得相當(dāng)復(fù)雜的幾個方面。即,必須指定各選項板內(nèi)的向量的執(zhí)行的重復(fù)控制、執(zhí)行從選項板遷移(包括在不同的基本結(jié)果之間)至另一個選項板的方法和時期等。為此,設(shè)置了選項板函數(shù)(選項板內(nèi)的執(zhí)行控制)、路由作用要素(確定要執(zhí)行的下一個選項板)、選項板連鎖函數(shù)(選項板之間的執(zhí)行控制)。但是,通過使用Lyee計算法,就不再需要指定選項板執(zhí)行順序、各選項板的向量執(zhí)行順序、從選項板向另外一個選項板傳遞控制的方法和時期等。其詳細情況當(dāng)然由本論的抽象機Lyee計算法在本質(zhì)上進行管理。因此,基本結(jié)構(gòu)可以如下形式化。SF=W04|W03|W02即,基本結(jié)構(gòu)SF的進程是W04、W03、W02這3個選項板的進程的并發(fā)進程。請注意,W04、W03和W02的執(zhí)行順序已變得不重要,連接這些選項板的路由作用要素也可以去除。Lyee確立了具有固定結(jié)構(gòu)的簡潔的程序(在Lyee術(shù)語中稱為謂語向量(predicatevector))。借助于這種結(jié)構(gòu),所生成的代碼的結(jié)構(gòu)不變、而且不依賴于要件的內(nèi)容??刂葡蛄繄?zhí)行的總括程序(globalprogram)即選項板函數(shù)的作用只是簡單地調(diào)用謂語向量。圖6表示謂語向量的結(jié)構(gòu)。謂語向量的目的隨各選項板而不同。&lt;選項板W04&gt;選項板W04的第1目的是利用定義式為單詞賦值。執(zhí)行該任務(wù)的謂語向量稱為L4。圖4實例中的單詞a和單詞b的L4如圖7所示。當(dāng)單詞的計算不再有進展并且單詞值全部成立,Lyee的生成代碼就開始執(zhí)行作為下一目的的單詞的輸出。以輸出值為目的的謂語向量稱為輸出作用要素(OutputVector稱為04)。另外,還存在用來執(zhí)行空間清除的結(jié)構(gòu)作用要素(稱為S4)。&lt;選項板W02&gt;以將值與輸入單詞關(guān)聯(lián)起來為目的的謂語向量有2個。即用來執(zhí)行主存(Lyee程序區(qū)域之外)輸入的輸入作用要素(InputVector稱為I2),用來執(zhí)行屬性檢查和Lyee程序空間輸入的L2。&lt;選項板W03&gt;如圖8所示,選項板W03的謂語向量L3的目的是判定在要件中指定的、單詞的定義式(即L4)的執(zhí)行條件。最后,表8表示設(shè)置了表6的要件的Lyee程序。在每個選項板中設(shè)置的1個選項板函數(shù)調(diào)用(啟動)選項板內(nèi)的謂語向量。選項板函數(shù)通過程序中設(shè)置的1個選項板連鎖函數(shù)調(diào)用。選項板連鎖函數(shù)按照各個選項板的R4、R2、R3的指定調(diào)用相應(yīng)的選項板函數(shù)。其他程序的語義如表8的注釋所示。謂語向量L4、L2、L3(通稱為邏輯要素)的處理對象以單詞為單位,輸入輸出作用要素(I2和O4)、結(jié)構(gòu)作用要素(S4)的處理對象是單詞集合。這里使用Lyee計算法的話,W04、W03和W02的進程可以分別定義如下。W04=S4|L4_a|L4-b|O4W03=L3_a|L3_bW02=L2_e|L2_c|I2W04進程是S4、L4_a、L4_b、04這些進程的并發(fā)進程。W03進程是L3_a、L3_b各進程的并發(fā)進程。W02進程是L2_e、L2_c、I2各進程的并發(fā)進程。不同謂語向量(L2、L3、L4、I2、O4、S4)的形式上的定義在下一部分說明。3.3處理路線圖(ProcessRouteDiagram)前一部分所示的基本結(jié)構(gòu)也可以看作是任意的、要件簡單的情況下的程序整體。特別地,可以看作是全部輸入單詞和輸出單詞屬于同一畫面、完全不使用數(shù)據(jù)庫的情況下的程序。如果輸入單詞和輸出單詞屬于幾個數(shù)據(jù)庫或?qū)儆谙嗷ミB接的不同畫面,則情況變得復(fù)雜。為了簡化說明,在以下說明中,只說明畫面存在多個的情況。如圖9所示,有3個相互連接的畫面,考慮用戶可以從一個畫面遷移到另一個畫面時的情況。在各個畫面中,用戶能夠輸入、計算或輸出單詞。因此,在規(guī)格說明書中,用戶必須指定這些畫面是怎樣相互連接的。進一步說,只定義1個基本結(jié)構(gòu)、由此計算全部畫面中所定義的全部單詞是不合適的。原因在于,實際上,在程序的任意一次執(zhí)行中,某個畫面可能不被訪問,在此情況下,沒有被訪問到的畫面的單詞值的計算是無用的。為此,Lyee在各個畫面中將該畫面被訪問時所執(zhí)行的負責(zé)基本結(jié)構(gòu)關(guān)聯(lián)起來。與畫面相關(guān)的基本結(jié)構(gòu)被連接起來,表示出從1個畫面向另一個畫面的移動。如圖10所示,在Lyee術(shù)語中,多個被連接起來的基本結(jié)構(gòu)就是處理路線圖(ProcessRouteDiagram)。使用Lyee計算法可以將某個畫面sk如下式所示形式化為用來控制進程SF(sk)的執(zhí)行的進程Φ(sk)。即,進程Φ(sk)作為進程SF(sk)(與畫面sk相關(guān)的處理的基本結(jié)構(gòu)的進程)運行,在通道?sk上接收到真值時,停止SF(sk),作為進程Φ(sk)運行。實際動作是,控制進程Φ(sk)激活進程SF(sk),當(dāng)在與畫面sk關(guān)聯(lián)的通道?sk上接收到信號時(即畫面sk重新被激活時),Φ(sk)被重新激活。因此,借助于控制進程Φ(sk)的再次激活,SF(sk)一度停止后再次激活,恢復(fù)初始狀態(tài)(freshinstance)。表示函數(shù)Φ(sk)怎樣發(fā)揮作用的具體實例在本說明書后面記述。3.4Lyee程序總而言之,Lyee方法論的Lyee程序的結(jié)構(gòu)如下所示。Lyee程序由若個處理路線圖(PRD)構(gòu)成。各PRD是相互連接起來的基本結(jié)構(gòu)(SF)的集合。各基本結(jié)構(gòu)由3個相互連接起來的選項板W02、W03、W04構(gòu)成。最后,選項板由謂語向量構(gòu)成。謂語向量是Lyee程序的最小單位模塊,因此也稱為原子向量(atomicvector)。謂語向量中包含邏輯要素(significationvectorL2、L3、L4的通稱)和作用要素(actionvectorI2、O4、S4、R2、R3、R4的通稱)。按每個選項板設(shè)置選項板函數(shù)作為控制這些謂語向量的執(zhí)行的控制模塊,在程序中設(shè)置1個選項板連鎖函數(shù)作為控制該選項板函數(shù)的執(zhí)行的模塊。使用Lyee計算法將包含畫面s1,...,sk的Lyee程序P形式化為如下式所示。P(s1,...,sk)=&Psi;(s1,...,sk)/L(s1,...,sk)]]>這里,L(s1,...,sk)是輸入通道和輸出通道的集合。該算式表示,Ψ(s1,...,sk)只通過屬于L(s1,...,sk)的通道與環(huán)境進行交流。函數(shù)Ψ定義為下式。該函數(shù)Ψ在每次從與畫面s(s是畫面s1,...,sk中的任意一個)相對應(yīng)的通道?s上接收到真值時,啟動進程Φ(s)以便啟動與畫面s相對應(yīng)的SF(s)。上述通道?s是為了啟動相對應(yīng)的畫面而由用戶使用的按鈕或菜單的形式化表示。另外,該函數(shù)Ψ當(dāng)從通道?s0上接收到真值時,使全部其他的進程結(jié)束,函數(shù)Ψ本身也結(jié)束(變?yōu)閚il)。通道?s0是結(jié)束按鈕(或相應(yīng)的菜單項目)的形式化表示。因此,Lyee系統(tǒng)可以看作是為了計算所求的輸出單詞而相互通信的、獨立的并發(fā)進程(concurrentprocess)的集合體。與Lyee方法論現(xiàn)有的順序處理式(sequential)觀點不同的是全部路由作用要素都不再需要,控制功能的作用大幅度簡化,也不再需要工作內(nèi)存區(qū)域(workingmemory)等。以下針對Ψ(s1,...,sk)與具體實例一起進一步進行詳細說明。在下一部分中,說明利用Lyee方法論所做的更詳細而完整的形式化。4.Lyee方法論的形式化下面考察怎樣使用Lyee計算法根據(jù)簡單的用戶要件自動生成軟件。假定用戶要件包含k個畫面{s1,...,sk}。另外,各個畫面包含聲明的集合。這種情況下,各個聲明具備以下形式,即(w,e,c,InOut,type)。這里,w表示單詞名,e表示其定義式,c表示定義式的執(zhí)行條件,InOut用來指定單詞是輸入還是輸出、或者是兩者、或者既不是輸入也不是輸出(值i用于輸入單詞,值o用于輸出單詞,io用于既可以是輸入也可以是輸出的場合,空域用于既不是輸入也不是輸出的場合),type表示值的屬性(類型)(例如,類型B分配作表示按鈕的符號)。為了定義與該要件相關(guān)的程序P(s1,...,sk),將邏輯要素和作用要素的向量(進程)如下表所示形式化。首先,說明形式化中使用的未定義定義的符號。Use(e)表示算式e中使用的單詞的集合。例如,Use(a*b+1)={a,b}。另外,F(xiàn)(S)是取得輸入值的集合作為變量S、返回執(zhí)行該輸入的接收作用的集合的函數(shù)。上述語義如下。當(dāng)沒有輸入值時(F(0)),沒有接收作用(0是空集合)。輸入值x和輸入值A(chǔ)的接收作用(F({x}UA))是在通道[算式25]&iota;4x]]>上接收x的值的接收作用和接收輸入A的接收作用F(A)的集合。邏輯要素(SignificationVectors)如表9所示。作用要素(ActionVector)如表10所示。向量中的S4是用來保存2.2所述的值的內(nèi)存單元,并且是具備“到初始化(接收到初始值)為止不允許存取其內(nèi)容”能力的智能單元。路由作用要素在Lyee計算法中在本質(zhì)上是不需要的進程,對其進行記述是為了表示出利用Lyee計算法是怎樣進行形式化的。選項板任意畫面s的3個選項板W02、W03和W04如下所示形式化。W02(s)=|(w&omega;,*,*,i,B&OverBar;)&Element;sI2(w)|(w,*,*,i,B&OverBar;)&Element;sL2(w)W03(s)=|(w,*,c,*,B&OverBar;)&Element;sL3(w,c)|(w,c,c,i,*,B)&Element;sR3(w,c,e)W04(s)=|(w,*,*,*,B&OverBar;)&Element;sS4(w)|(w,e,*,*,B&OverBar;)&Element;sL4(w,e))|(w,*,*,o,*,*)&Element;sO4(w)]]>這里,[算式27]B表示除B(表示按鈕)之外的任意類型(B的補集),*表示任意?;窘Y(jié)構(gòu)畫面s的基本結(jié)構(gòu)SF(s)形式化為下式。SF(s)=W04(s)|W03(s)|W02(s)控制功能伴隨畫面s的控制功能形式化為下式。伴隨畫面集合的控制功能形式化為下式。假定s0為程序結(jié)束時的畫面(不屬于程序自身畫面組的結(jié)束畫面)。這里,總結(jié)控制功能的作用,即為[表11]<tablesid="table8"num="008"><tablewidth="781">控制功能作用Ψ在程序中設(shè)置1個●自身由最終用戶啟動,在接收到結(jié)束按鈕按下所產(chǎn)生的真值時結(jié)束?!裨诮邮盏接捎脩舭聪掳粹o等指示所產(chǎn)生的真值時啟動對應(yīng)的Φ。●在接收到結(jié)束按鈕的真值時,在自身結(jié)束前使全部Φ結(jié)束。Φ按每個SF設(shè)1個●自身由Ψ啟動和結(jié)束?!癞?dāng)在指定通道接收到由用戶按下按鈕等指示所產(chǎn)生的真值信號時,啟動負責(zé)的SF。</table></tables>在本論中,作為Lyee計算法的實現(xiàn)方法之一,針對畫面設(shè)置1個SF,1個SF形式化為包含與對應(yīng)畫面相關(guān)的全部輸入輸出和計算進程。因此,畫面中也有1個SF的控制函數(shù)Φ。但是,也可以選擇形式化為針對畫面設(shè)置多個SF和控制函數(shù)Φ。實現(xiàn)方法可以根據(jù)程序的效率來決定。Lyee程序最后,與包含畫面s1,...,sk的要件相關(guān)的Lyee程序P(s1,...,sk)表示為下式。P(s1,...,sk)=&Psi;(s1,...,sk)/L(s1,...,sk)]]>這里,L(s1,...,sk)的集合包含與環(huán)境之間的全部輸入通道和輸出通道,由下式定義。L(s1,...,sk)=(&cup;(w,*,*,i/o,*)&Element;sk{dw})&cup;{&iota;s1}]]>i/o的意思是表示該項目是否必須包含i、o、或io。另外,s1是在用戶執(zhí)行該程序時最初出現(xiàn)的畫面。實施例15.實例研究1本部分中舉出具體實例分階段地說明為了使用Lyee計算法計算單詞,Lyee程序是怎樣執(zhí)行的。這里所示的實例只具有1個畫面(附錄中記載了具有2個畫面的另一實例)。如表12的要件所示,用戶輸入單詞a,等待單詞b的值,接著,按下按鈕B0結(jié)束畫面。圖11表示這種畫面。該畫面s1由3個聲明構(gòu)成。s1={(a,,,i,real),(b,2*a,a>0,o,real),(B0,s0,Click,B)}]]>借助于前一部分所說明的一般的Lyee程序定義,與表12的要件相關(guān)的Lyee程序表示為下式。這里,W02(s1)、W03(s1)和W04(s1)如下所示。如上所述,R3進程在Lyee計算法中不是必需的,因此可以省略。這里,假定該程序P(S1)的最終用戶(環(huán)境)試圖執(zhí)行下述的一系列動作。執(zhí)行程序(啟動畫面s1)、為單詞a賦值“7”,等待獲取單詞b的值;按下按鈕Bo后結(jié)束程序。該最終用戶的行動可以通過下述進程ε來描述。如上所述,Lyee計算法的程序P(S1)的進程和最終用戶的進程表示為圖12。接著考察為了達到所求的目的,程序P(S1)是怎樣與這一環(huán)境相互作用的。換句話說,來考察與加入了最終用戶的行動的程序ε并發(fā)執(zhí)行的程序P(S1)的執(zhí)行過程。這就是探討P(s1)|ε的運行。該進程的步驟如下所示。在定義式中,以注釋的形式附加了作為等號符號左邊可以置換為右邊的根據(jù)的定義。另外,對于進程間的相互作用而產(chǎn)生的同步(synchronization)(在同一通道上值的發(fā)送和接收能夠同時進行)部分也附加了注釋。下劃線部分是同步的發(fā)送和接收作用??偠灾?,程序執(zhí)行的主要步驟如下所示。最終用戶發(fā)送程序啟動命令,由此,控制函數(shù)Ψ(s1)被啟動,控制函數(shù)Ψ(s1)啟動控制函數(shù)Φ(s1),控制函數(shù)(s1)啟動初始畫面s1和SF(s1),由此啟動程序。最終用戶向單詞a賦值(發(fā)送)值“7”后,SF(s1)中的I2(a)接收到值7。I2(a)將a的值7發(fā)送到L2(a)。L2(a)發(fā)送的a的值7被保存到內(nèi)存即S4(a)中(通過在S4(a)中存儲初始值對其進行初始化)。為了計算b的計算條件,a的值7從初始化后的a的內(nèi)存S4發(fā)送到L3(b,a>0)。((([j4az]&CenterDot;S4a(z)+[&iota;4a!7]&OverBar;&CenterDot;S4a(7))|&CenterDot;&CenterDot;&CenterDot;|(([&iota;4aa]&OverBar;&CenterDot;[&iota;36!(a>0)]&CenterDot;nil)|&CenterDot;&CenterDot;&CenterDot;]]>判定b的計算條件(a>0判定為真(1)),向L4(b,2*a)發(fā)送值1。((S4a(7)|S4(b)|([&iota;3b1]&OverBar;&CenterDot;[&iota;4aa]&CenterDot;[j4b(2*a)]&CenterDot;nil)|O4(b)|([&iota;3b!1]&OverBar;&CenterDot;nil)|&CenterDot;&CenterDot;&CenterDot;]]>將a的值7從保存值7的a的內(nèi)存S4發(fā)送到L4(b,2*a)。((([j4az]&CenterDot;S4a(z)+[&iota;4a!7]&OverBar;&CenterDot;S4a(7))|S4(b)|([&iota;4aa]&OverBar;&CenterDot;[j4b!(2*a)]&CenterDot;nil)|O4(b)|&CenterDot;&CenterDot;&CenterDot;]]>計算b的定義式“2*a”,b的值14被保存到內(nèi)存即s4(b)(s4(b)被初始化)。b的值14從b的內(nèi)存S4發(fā)送到輸出進程O4(b)。10.由O4將b的值發(fā)送到環(huán)境,最終用戶接收到b的值。此時,屬于啟動中的SF(s1)的進程是保存了值的a和b的S4、R3(Bo,click,so)。11.最終用戶為了結(jié)束程序而按下按鈕Bo,R3(Bo,click,so)接收值click,判定自身的計算條件,將真值1發(fā)送到控制函數(shù)Ψ(s1)。接收到真值1的Ψ(s1)在自身結(jié)束前使Φ(s1)結(jié)束,Φ(s1)在自身結(jié)束前使SF(s1)結(jié)束。圖13表示上述各個步驟。帶有括號的編號與上述步驟的說明相對應(yīng)。不帶括號的數(shù)字表示發(fā)送和接收的值。進而,各進程的遷移可以通過證明來確認。例如,存在下述進程的遷移(對應(yīng)于上述步驟1)。P(s1)和ε之間發(fā)生同步(程序啟動命令的收發(fā))后遷移至P1(s1)和ε1的并發(fā)進程。(P(s1)|&epsiv;)&RightArrow;&tau;(P1(s1)|&epsiv;1)]]>此時,成為[算式47]上述可以使用表5的規(guī)則通過以下證明確認其正確性。6.結(jié)論本說明書首先定義了稱為Lyee計算法的形式化的進程代數(shù),其在本質(zhì)上容易地支持Lyee方法論的基本概念。實際上,這種計算法可以看作是一種抽象機,其更適合于用來支持Lyee方法論的概念而不是馮.諾曼型計算機。這種抽象機把程序看作是為了產(chǎn)生最終結(jié)果而共同相互作用的分子的集合。第二,表示了這種計算法如何將整個軟件生成過程和Lyee向量兩者進行形式化而加以簡化。實際上,路由作用要素(routingvector)也已經(jīng)不再需要。另外,不再需要選項板函數(shù),控制功能的作用大幅度簡化。Lyee軟件生成的自動生成的整個過程被形式化。借助于這種形式化,能夠?qū)⑦@種方法論的語義形式化,以使該方法論所蘊含的概念可以被清楚明確地理解。而且,這種形式化描述也是這種方法論的各個方面的很多繞有趣味的分析所不可或缺的起點。例如,為了最優(yōu)化使用Lyee生成的軟件或軟件生成過程,需要有能夠證明最優(yōu)化后的程序與原版本相同的形式化證明。使用進程代數(shù)<p>×膠帶從基材上帶下許多阻焊劑。表1借助于前一部分所說明的一般的Lyee程序的定義,與表17及表18的要件相關(guān)的Lyee程序表示為下式。SF(s1)=W04(s1)|W03(s1)|W02(s1)SF(s2)=W04(s1)|W03(s1)請注意,不存在與畫面S2相對應(yīng)的W02。原因在于,W02不包含除按鈕之外的輸入單詞。這里,W02(s1)、W03(s1)、W04(s1)、以及W03(s2)、W04(s2)定義如下。與實例研究1相同,R3進程在Lyee計算法中不是必需的,因此可以省略。[表20]這里,假定該程序的最終用戶(環(huán)境)試圖執(zhí)行下述的一系列動作。執(zhí)行程序(啟動畫面s1)、為單詞a賦值“7”,為了獲取單詞b的值等待;按下按鈕B2以便遷移到畫面s2,為了獲取值e等待,按下按鈕B0以結(jié)束程序。該動作可以通過下述進程ε來描述。如上所述,Lyee計算法的程序P(S1)的進程和最終用戶的進程表示為圖15。程序執(zhí)行的主要步驟如下所示。最終用戶發(fā)送程序啟動命令,由此,控制函數(shù)Ψ(s1,s2)被啟動,控制函數(shù)Ψ(s1,s2)啟動控制函數(shù)Φ(s1),控制函數(shù)(s1)啟動初始畫面s1和SF(s1),由此啟動程序。P(s1,s2)和ε之間發(fā)生同步(程序啟動命令的收發(fā))后遷移至P1(s1,s2)和ε1的并發(fā)進程。P(s1,s2)|&epsiv;&RightArrow;&tau;P1(s1,s2)|&epsiv;1]]>這里,[算式52]最終用戶向單詞a賦值(發(fā)送)值“7”后,SF(s1)中的I2(a)接收到值7。P(s1,s2)和ε1之間發(fā)生同步(收發(fā)單詞a的值)后遷移至P2(s1,s2)和ε2的并發(fā)進程。P1(s1,s2)|&epsiv;1&RightArrow;&tau;P2(s1,s2)|&epsiv;2]]>這里,[算式54]a的值7被保存到內(nèi)存S4(a)。該保存可以通過2個步驟來完成。在第1步驟中,a的值7被發(fā)送到L2(a)。在第2步驟中,L2(a)將該值發(fā)送到內(nèi)存S4(a)。第1步驟如下所示。P2(s1,s2)內(nèi)部發(fā)生同步(在I2(a)和L2(a)之間收發(fā)單詞a的值7)后遷移至P3(s1,s2)和ε2的并發(fā)進程。P2(s1,s2)|&epsiv;2&RightArrow;&tau;P3(s1,s2)|&epsiv;2]]>這里,[算式56]在第2步驟中,a的值7被保存到W04內(nèi)存S4(a)中(通過在S4(a)中存儲初始值對其進行初始化)。P3(s1,s2)內(nèi)部發(fā)生同步(在L2(a)和S4(a)之間收發(fā)單詞a的值7)后遷移至P4(s1,s2)和ε2的并發(fā)進程。P3(s1,s2)|&epsiv;2&RightArrow;&tau;P4(s1,s2)|&epsiv;2]]>這里,[算式58]為了計算b的計算條件,a的值7從初始化后的a的內(nèi)存S4發(fā)送到L3(b,a>0)。P4(s1,s2)內(nèi)部發(fā)生同步(在S4(a)和L3(b,a>0)之間的收發(fā))后遷移至P5(s1,s2)和ε2的并發(fā)進程。P4(s1,s2)|&epsiv;2&RightArrow;&tau;P5(s1,s2)|&epsiv;2]]>這里,[算式60]判定b的計算條件(a>0判定為真(1)),向L4(b,2*a)發(fā)送值1。P5(s1,s2)內(nèi)部發(fā)生同步(在L3(b,a>0)和L4(b,2*a)之間收發(fā)真假值1)后遷移至P6(s1,s2)和ε2的并發(fā)進程。P5(s1,s2)|&epsiv;2&RightArrow;&tau;P6(s1,s2)|&epsiv;2]]>這里,[算式62]將a的值7從a的內(nèi)存S4發(fā)送到L4(b,2*a),計算出b的定義式“2*a”,將b的值14保存到內(nèi)存S4(b)(S4(b)被初始化)。P6(s1,s2)內(nèi)部發(fā)生同步(在a的內(nèi)存S4與L4(b,2*a)之間、L4(b,2*a)與b的內(nèi)存S4之間的收發(fā))后遷移至P7(s1,s2)和ε2的并發(fā)進程。P6(s1,s2)|&epsiv;2&RightArrow;&tau;P7(s1,s2)|&epsiv;2]]>這里,[算式64]b的值14從b的內(nèi)存S4發(fā)送到輸出進程O4(b)。由O4(b)將b的值發(fā)送到環(huán)境,最終用戶接收到b的值。P7(s1,s2)內(nèi)部的同步(在L4(b,2*a)與O4(b)之間的收發(fā))、P7(s1,s2)與ε2之間的同步(收發(fā)單詞b的值)發(fā)生后遷移至P8(s1,s2)和ε3的并發(fā)進程。此時,屬于啟動中的SF(s1)的進程是保存了值的a和b的S4、R3(B0,click,s0)。P7(s1,s2)|&epsiv;2&RightArrow;&tau;P8(s1,s2)|&epsiv;3]]>這里,[算式66]為了遷移至畫面2,最終用戶按下畫面s1上的按鈕B2。R3(B2,click,s2)接收到由ε3發(fā)送過來的按鈕B2的Click值,R3(B2,click,s2)判定自身的計算條件,將真值1發(fā)送到控制函數(shù)Ψ(s1,s2)。接收到值1的控制函數(shù)Ψ(s1,s2)啟動控制函數(shù)Φ(s2)。接收到值1的控制函數(shù)Φ(s2)啟動控制函數(shù)SF(s2),啟動畫面s2。P8(s1,s2)與ε3之間的同步(收發(fā)按鈕B2的click值)、P8(s1,s2)內(nèi)部的同步(R3(B2,click,s2)與Ψ(s1,s2)以及控制函數(shù)Φ(s2)之間的收發(fā))發(fā)生后遷移至P9(s1,s2)和ε4的并發(fā)進程。P8(s1,s2)|&epsiv;3&RightArrow;&tau;P9(s1,s2)|&epsiv;4]]>這里,[算式68]為了計算e的條件,從b的內(nèi)存S4向L3(e,b>0)發(fā)送值14。P9(s1,s2)內(nèi)部發(fā)生同步(在a的內(nèi)存S4和L3(e,b>0)之間的收發(fā))后遷移至P10(s1,s2)和ε4的并發(fā)進程。P9(s1,s2)|&epsiv;4&RightArrow;&tau;P10(s1,s2)|&epsiv;4]]>這里,[算式70]e的計算條件b>0判定為真(1),從L3(e,b>0)向L4(e,1+b)發(fā)送真值1,計算出e的值。P10(s1,s2)內(nèi)部發(fā)生同步(在L3(e,b>0)和L4(e,1+b)之間的收發(fā))后遷移至P11(s1,s2)和ε4的并發(fā)進程。P10(s1,s2)|&epsiv;4&RightArrow;&tau;P11(s1,s2)|&epsiv;4]]>這里,[算式72]將e的值從L4(e,1+b)保存到e的內(nèi)存S4(b)(S4(b)被初始化)。P11(s1,s2)內(nèi)部發(fā)生同步(在L4(e)和e的內(nèi)存S4之間的收發(fā))后遷移至P11(s1,s2)和ε4的并發(fā)進程。P11(s1,s2)|&epsiv;4&RightArrow;&tau;P12(s1,s2)|&epsiv;4]]>這里,[算式74]從e的內(nèi)存S4(b)向O4(e)發(fā)送e的值15,從O4(e)向最終用戶ε4輸出e的值。P11(s1,s2)和ε4之間發(fā)生同步(收發(fā)單詞e的值14)后遷移至P12(s1,s2)和ε5的并發(fā)進程。P11(s1,s2)|&epsiv;4&RightArrow;&tau;P12(s1,s2)|&epsiv;5]]>這里,[算式76]最終用戶按下按鈕B0以結(jié)束程序。R3(B0,click,s0)從最終用戶ε5接收按鈕B0的值click,將其發(fā)送到控制函數(shù)Ψ(s1,s2)。Ψ(s1,s2)在自身結(jié)束前使Φ(s1)和Φ(s2)結(jié)束,Φ(s1)和Φ(s2)在自身結(jié)束前分別使SF(s1)和SF(s2)結(jié)束。P12(s1,s2)與ε5之間發(fā)生同步(收發(fā)CClick值)、接著在P12(s1,s2)內(nèi)部發(fā)生同步(R3(B0,click,s0)與Ψ(s1,s2)、控制函數(shù)Φ(s1)及Φ(s2)之間的收發(fā))后全部進程移至nil。此外,本發(fā)明并不限于上述實施方式和實施例,在本發(fā)明的技術(shù)思想的范圍內(nèi)可作各種改變。例如,也可以分別作為業(yè)務(wù)方法、軟件開發(fā)裝置、軟件開發(fā)支持裝置、軟件開發(fā)管理裝置或者用來在計算機中實現(xiàn)這些功能的軟件以及搭載了該軟件的記錄介質(zhì)、專用機等來實現(xiàn)。進而,上述所說明的本發(fā)明本來就可以作為方法、或者作為具備相關(guān)功能的軟件、作為搭載了該軟件的裝置/工具(也包含軟件本身的情況)、進一步作為系統(tǒng)來實現(xiàn)。例如,圖16是功能框圖,表示了作為本發(fā)明的一個不同的實施方式、將本發(fā)明作為用來生產(chǎn)“開發(fā)對象的軟件”的程序(軟件)、程序生成裝置、程序處理裝置、工具(包含作為裝置和作為軟件的這兩者)、軟件開發(fā)裝置、軟件開發(fā)支持裝置、或者軟件開發(fā)管理裝置的任意一個加以實施時作為功能所具備的結(jié)構(gòu)。如該圖所示,本發(fā)明的程序(軟件)、程序生成裝置、程序處理裝置、工具(包含作為裝置和作為軟件的這兩者)、軟件開發(fā)裝置、軟件開發(fā)支持裝置、或者軟件開發(fā)管理裝置的結(jié)構(gòu)具備整體控制部1601、聲明信息插入部1602、控制函數(shù)Φ配置部1603、控制函數(shù)Ψ配置部1604和信息存儲部1605。整體控制部1601具備對本程序(軟件)、程序生成裝置、程序處理裝置、工具(包含作為裝置和作為軟件的這兩者)、軟件開發(fā)裝置、軟件開發(fā)支持裝置、或軟件開發(fā)管理裝置的整體動作控制、時序控制、輸入輸出控制等的功能,其被實現(xiàn)為具有該功能的專用芯片、專用電路、或能夠使計算機發(fā)揮該功能的軟件(包含作為工具使用的軟件)、或者記錄了該軟件的記錄介質(zhì)、搭載了該記錄介質(zhì)的處理裝置/管理裝置/工具。聲明信息插入部1602具備的功能是在作為具備Lyee計算法的輸入輸出通道的進程單元而模塊化的邏輯要素(L2、L3、L4)以及作用要素(I2、O4、S4)的雛形的未定義部分之中插入信息,該信息中將作為1個程序而安裝的用戶要件按每個邏輯體、按該邏輯體上的每個單詞的作為由單詞名、定義式、該定義式的執(zhí)行條件、輸入輸出屬性、單詞值的屬性構(gòu)成的聲明加以信息化;其被實現(xiàn)為具有該功能的專用芯片、專用電路、或能夠使計算機發(fā)揮該功能的軟件(包含作為工具使用的軟件)、或者記錄了該軟件的記錄介質(zhì)、搭載了該記錄介質(zhì)的處理裝置/管理裝置/工具??刂坪瘮?shù)Φ配置部1603具備的功能是在將上述邏輯要素和作用要素,以利用來自同一畫面的命令產(chǎn)生相互作用為集合條件的集合單位,與1個控制函數(shù)模塊Φ關(guān)聯(lián)起來以便進行控制;其被實現(xiàn)為具有該功能的專用芯片、專用電路、或能夠使計算機發(fā)揮該功能的軟件(包含作為工具使用的軟件)、或者記錄了該軟件的記錄介質(zhì)、搭載了該記錄介質(zhì)的處理裝置/管理裝置/工具??刂坪瘮?shù)Ψ配置部1604具備的功能是將1個控制函數(shù)模塊Ψ與控制函數(shù)Φ關(guān)聯(lián)起來以便對上述控制函數(shù)Φ進行控制;其被實現(xiàn)為具有該功能的專用芯片、專用電路、或能夠使計算機發(fā)揮該功能的軟件(包含作為工具使用的軟件)、或者記錄了該軟件的記錄介質(zhì)、搭載了該記錄介質(zhì)的處理裝置/管理裝置/工具。信息存儲部1605除保存下述信息還用作暫時存儲下述信息的存儲器,即,除程序信息外、各種控制信息、作為進程單元而模塊化的邏輯要素(L2、L3、L4)以及作用要素(I2、O4、S4)的上述雛形、上述控制函數(shù)模塊Φ的雛形、上述控制函數(shù)模塊Ψ的雛形、目標(biāo)程序等。圖17是流程圖,表示了作為具備上述結(jié)構(gòu)的程序(軟件)、程序生成裝置、程序處理裝置、工具(包含作為裝置和作為軟件的這兩者)、軟件開發(fā)裝置、軟件開發(fā)支持裝置、或軟件開發(fā)管理裝置中的任意一個而實施的本發(fā)明的動作。如該圖所示,首先,聲明信息插入部1602在作為具備Lyee計算法的輸入輸出通道的進程單元而模塊化的邏輯要素(L2、L3、L4)以及作用要素(I2、O4、S4)的雛形的未定義部分之中插入信息,該信息中將作為1個程序而安裝的用戶要件按每個邏輯體、按該邏輯體上的每個單詞的作為由單詞名、定義式、該定義式的執(zhí)行條件、輸入輸出屬性、單詞值的屬性構(gòu)成的聲明加以信息化。(步驟1701)然后,控制函數(shù)Φ配置部1603對將上述邏輯要素和作用要素,以利用來自同一畫面的命令產(chǎn)生相互作用為集合條件的集合單位,與1個控制函數(shù)模塊Φ關(guān)聯(lián)起來以便進行控制。(步驟1702)接著,控制函數(shù)Ψ配置部1604將1個控制函數(shù)模塊Ψ與上述控制函數(shù)Φ關(guān)聯(lián)起來以便對上述控制函數(shù)Φ進行控制。(步驟1703)由此,借助于具備上述結(jié)構(gòu)的本發(fā)明,基于本發(fā)明獨自的體系提取需求定義,將其作為具備本發(fā)明的獨自的結(jié)構(gòu)的進程單元加以模塊化,代入到邏輯要素(L2、L3、L4)以及作用要素(I2、O4、S4)的雛形的未定義部分之中,因此,能夠不依賴人工而獲得所期望的軟件。作為本發(fā)明的不同的實施體,用來生產(chǎn)“開發(fā)對象軟件”所需的程序(軟件)、程序生成裝置、程序處理裝置、工具(包含作為裝置和作為軟件的這兩者)、軟件開發(fā)裝置、軟件開發(fā)支持裝置、軟件開發(fā)管理裝置的結(jié)構(gòu)也可以具備聲明信息插入單元,用來在作為具備Lyee計算法的輸入輸出通道的進程單元而模塊化的邏輯要素(L2、L3、L4)以及作用要素(I2、O4、S4)的雛形的未定義部分之中插入信息,該信息將作為1個程序而實現(xiàn)的用戶要件按每個邏輯體、按該邏輯體上的每個單詞的作為由單詞名、定義式、該定義式的執(zhí)行條件、輸入輸出屬性、單詞值的屬性構(gòu)成的聲明加以信息化;控制函數(shù)Φ配置單元,將上述邏輯要素和作用要素,以利用來自同一畫面的命令產(chǎn)生相互作用為集合條件的集合單位,與1個控制函數(shù)模塊Φ關(guān)聯(lián)起來以便控制上述單位;以及控制函數(shù)Ψ配置單元,用來將1個控制函數(shù)模塊Ψ與上述控制函數(shù)Φ關(guān)聯(lián)起來以便對上述控制函數(shù)Φ進行控制。本發(fā)明也可以進一步作為利用上述“開發(fā)對象的軟件的生產(chǎn)方法”而生產(chǎn)的軟件以及搭載了該軟件的記錄介質(zhì)或搭載了該軟件的裝置(硬件)而實現(xiàn),這種情況下的本發(fā)明可由以下模塊構(gòu)成模塊組,在作為具備Lyee計算法的輸入輸出通道的進程單元而模塊化的邏輯要素(L2、L3、L4)以及作用要素(I2、O4、S4)的雛形的未定義部分之中插入信息,該信息將作為1個程序而安裝的用戶要件按每個邏輯體、按該邏輯體上的每個單詞的作為由單詞名、定義式、該定義式的執(zhí)行條件、輸入輸出屬性、單詞值的屬性構(gòu)成的聲明加以信息化;1個或多個控制函數(shù)模塊Φ,將上述模塊組,以利用來自同一畫面的命令產(chǎn)生相互作用為集合條件的集合單位,關(guān)聯(lián)起來以便利用1個控制函數(shù)模塊Φ進行控制;以及控制函數(shù)模塊Ψ,將其與上述控制函數(shù)Φ關(guān)聯(lián)起來以便利用1個控制函數(shù)模塊Ψ進行控制。另外,本發(fā)明也可以進一步作為利用上述“開發(fā)對象的軟件的生產(chǎn)方法”而生產(chǎn)軟件時所使用的軟件代碼的雛形軟件、以及搭載了該軟件的記錄介質(zhì)或搭載了該軟件的裝置(硬件)而實現(xiàn),這種情況下的本發(fā)明也可作為軟件作為可代碼化的雛形而實現(xiàn),其具備具有將信息應(yīng)嵌入的未定義部分、作為具備Lyee計算法的輸入輸出通道的進程單元而模塊化的邏輯要素(L2、L3、L4)以及作用要素(I2、O4、S4)的雛形,該信息將作為1個程序而安裝的用戶要件按每個邏輯體、按該邏輯體上每個單詞的作為由單詞名、定義式、該定義式的執(zhí)行條件、輸入輸出屬性、單詞值的屬性構(gòu)成的聲明加以信息化;控制函數(shù)模塊Φ的雛形,具備將上述聲明信息插入到未定義部分后的上述邏輯要素和作用要素以利用來自同一畫面的命令產(chǎn)生相互作用為集合條件的集合單位,利用1個控制函數(shù)模塊Φ進行控制的功能;以及控制函數(shù)模塊Ψ的雛形,其具備用于利用1個控制函數(shù)模塊Ψ控制上述控制函數(shù)Φ的功能。進而,本發(fā)明也可以實現(xiàn)為利用上述“開發(fā)對象的軟件的生產(chǎn)方法”從要件中提取的信息(文檔(紙、數(shù)據(jù)))的提取方法、作為利用該提取方法提取的信息(文檔(紙、數(shù)據(jù)))、進而作為所提取的該信息的使用方法、或者作為搭載了這些信息的信息記錄介質(zhì)、或者作為信息的提取方法/使用方法被代碼化后的軟件、作為搭載了該軟件的記錄介質(zhì)/裝置(硬件)中的任意一種,這種情況下的本發(fā)明可作為從具備以下信息的軟件開發(fā)要件中提取的信息而實現(xiàn)應(yīng)插入到作為具備Lyee計算法的輸入輸出通道的進程單元而模塊化的邏輯要素(L2、L3、L4)以及作用要素(I2、O4、S4)的雛形的未定義部分之中的、用來聲明作為1個程序而安裝的用戶要件按每個邏輯體、按該邏輯體上的每個單詞的作為由單詞名、定義式、該定義式的執(zhí)行條件、輸入輸出屬性、單詞值的屬性構(gòu)成的聲明信息化后的信息;對將未定義部分中插入上述聲明信息后的上述邏輯要素和作用要素以利用來自同一畫面的命令產(chǎn)生相互作用為集合條件的集合單位關(guān)聯(lián)起來以便利用1個控制函數(shù)模塊Φ進行控制的信息;以及與上述控制函數(shù)Φ關(guān)聯(lián)起來以便利用1個控制函數(shù)模塊Ψ進行控制的信息。進而,本申請的發(fā)明在其技術(shù)思想相同及等效的范圍內(nèi)允許各種變形、追加、置換、擴大、縮小等。另外,使用本申請的發(fā)明生產(chǎn)的裝置、方法、軟件、系統(tǒng)即使搭載到其二次化的產(chǎn)品中,也絲毫不會降低本申請的發(fā)明的價值。本發(fā)明高效地處理與不同領(lǐng)域相關(guān)聯(lián)的范圍廣泛的軟件問題,與現(xiàn)有的方法論相比,使用Lyee時開發(fā)時間、維護時間和文檔量顯著減少(70~80%左右)。權(quán)利要求1.一種軟件生成方法,其特征在于,具備第1步驟,按每個邏輯體、按該邏輯體上的每個單詞,根據(jù)單詞名、定義式、該定義式的執(zhí)行條件、輸入輸出屬性、單詞值的屬性來聲明,即,規(guī)定,作為1個程序而安裝的用戶要件;第2步驟,根據(jù)單詞單位的聲明,作成模塊化的邏輯要素(L2、L3、L4)作為具備Lyee計算法的輸入輸出通道的進程單元以及作用要素(I2、O4、S4);第3步驟,將上述邏輯要素和作用要素集合化為集合,該集合以利用來自同一畫面的命令產(chǎn)生相互作用為集合條件;第4步驟,按每個上述集合分別配置1個控制函數(shù)模塊Φ;以及第5步驟,為上述程序配置1個控制函數(shù)模塊Ψ。全文摘要使用進程代數(shù),將軟件的自動生成過程和借助于Lyee生成的軟件的語義形式化。本發(fā)明具備第1步驟,按每個邏輯體、按該邏輯體上的每個單詞,根據(jù)單詞名、定義式、該定義式的執(zhí)行條件、輸入輸出屬性、單詞值的屬性來聲明(規(guī)定)作為1個程序而安裝的用戶要件;第2步驟,根據(jù)單詞單位的聲明,作成模塊化的邏輯要素(L文檔編號G06F9/44GK1856769SQ20048002728公開日2006年11月1日申請日期2004年9月22日優(yōu)先權(quán)日2003年9月22日發(fā)明者M·梅杰里,B·克塔里,H·藤田申請人:珂特那株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
兰考县| 南澳县| 定兴县| 文水县| 石阡县| 浦东新区| 景泰县| 冷水江市| 恭城| 吉林省| 沙洋县| 平凉市| 鄂伦春自治旗| 黔江区| 维西| 平潭县| 集安市| 江华| 巴塘县| 孟州市| 卓资县| 高碑店市| 山丹县| 双城市| 黄平县| 长沙市| 诏安县| 图木舒克市| 潼关县| 绩溪县| 合阳县| 盘锦市| 乐山市| 涿州市| 固始县| 广西| 芮城县| 兴山县| 昆明市| 通辽市| 新乡县|