摘要
如今軟件開發在互聯網時代被廣范使用,其應用場景日益豐富多樣,其規模和復雜度也隨著日益增長,以致軟件開發的效率和質量出現了瓶頸,甚至引發了"軟件危機"問題。為了解決。上述問題,研究人員嘗試引入各種方法到軟件開發和自動化技術中,包括面向對象方法、結構化方法、原型方法等。其中Object-Z語言作為面向對象的形式化描述方法,可以通過構造操作組件和狀態封裝來支持對大型軟件開發系統的語法以及語義的描述。
但是目前對Object-Z語言的研究成果十分有限,研究人員只是用Object-Z語言描述簡單場景的語義,生成C、Java、 Python 等編程語言,鮮有應用于大型軟件系統開發和自動化生成工作中的典型案例,尤其是對于具有語義信息的軟件業務邏輯的自動化生成而言,在理論和工程實踐中都缺乏可供參考的實際指導性研究。
因此本文首先提出了基于Object-Z語言的SSM框架中通用業務邏輯語義的形式化描述方法,其中包括數學運算、邏輯運算、判斷語句、循環語句等。其次,設計并實現了描述文件的解析器,以驗證語義描述文件的正確性以及語義描述的完整性。第三,設計了業務邏輯Java代碼自動生成系統,提出了從基于Object-Z語言的通用業務邏輯語義描述文件到SSM ( Spring+SpringMVC+MyBatis)框架中業務層實現函數的映射規則,實現了對應的SSM框架中典型業務的Java代碼自動生成,并進行了測試和驗證工作。測試結果表明,由實現的生成器可以完整、準確地自動生成目標Java 代碼。本文的研究成果在理論上提升了業務邏輯的語義描述能力,提升了代碼生成的自動化程度,有效減少人工的重復性勞動強度,提高了軟件開發效率。
關鍵詞:Object-Z 語言Java 代碼自動化生成軟件開發
ABSTRACT
Nowadays, software development is widely used in the Internet era, and its application scenarios are becoming increasingly rich and varied, as well as its scale and complexity are also increasing. As a result, the efficiency and quality of software development has become a bottleneck, and even causes the problem of "software crisis". In order to solve the above problems, researchers try to introduce various methods into software development and automation technology, including object-oriented method, structured method, prototype method and so on. ObjectZ languagc, as an object-oriented formal description method, can support the description of syntax and semantics of large-scale software development system by constructing operation components and state encapsulation.
But, the research of Object-Z language is very limited, the researchers just use simple language to describe the scene Object-Z semanties, generate programming languages such as C, Java, Python, rarely applied in large software system development and typical cases in the work of the automatic generation, especially for automatic generation sofware business logic with semantic information, lack of reference in theory and engineering practice of actual instruetional research.
Therefore, this thesis first proposes a formal description method of general business logic semantics in the SSM(Spring + Spring MVC + Mybatis) framework based on the Object-Z language, including mathematical operations, logical operations, judgment statements, and circular statements, etc. Second, the parser of description files are designed and implemented to verify the correctness of semantic description files and the completeness of semantic descriptions. Third, the automatic generation system of business logic Java code is designed, and the mapping rules from the semantic description file of general business logic based on the Object- Z language to the implementation function of business layer in SSM ftamework are put forward, and the automatic generation of typical business Java code in the corresponding SSM framework is implemented, and the testing and verification work are carried out. The test results show that the implemented generator can automatically generate the target Java code completely and accurately. The research results of this thesis theoretically improve the semantic description capability of business logic, enbance the degree of automation of codegeneration, effectively reduce manual repetitive labor intensity, and improve the efficiency of softwaredevelopment.
KEY WORDS Object-Z Language Java Code Automatic GenerationSoftware Development
目錄
第一章緒論
1.1研究背景及意義
伴隨著計算機技術和互聯網的迅速發展,軟件開發被人們應用到生產生活的各個場景中,來處理各種問題,發揮著不可替代的作用。軟件開發會在社會生產活動中扮演任勞任怨的"工人",24小時地服務于生產工作,從而提高人們在生產勞動的工作效率,解放一定的勞動力, 并提高社會生產力。軟件開發也會在人們的生活中豐富大眾娛樂活動方式擴展大眾獲取外界信息和與他人實時聯系的渠道叫。因此在21世紀計算機技術發展的浪潮中,軟件開發的發展與研究仍具有非常重要的意義。同時,軟件開發被人們不斷地應用到更加復雜場景處理更加困難難題的過程中,軟件開發技術的規模和復雜度在不斷提高,但其效率在不時下降。失誤率也不時上開。軟件開發技術的發展與進步-直受到瓶頸的約束,產生了被大眾逐漸熟知的"軟件危機",即如何在提高軟件開發復雜度前提下提高軟件開發的效率和可靠性,網時又保證其軟件質量。這也越來越成為軟件工程領域的一個核心問題中。
為了解決上述軟件開發存在的問題,研究人員提出-系列方法提高軟件開發的效率和質量,其中包括面向對象方法、結構化方法。鳳型方法等。在經歷多年發展,其中作為面向對象方法,UMLP (Unifed Modeling Language, 統一建模語言)類圖因其簡單、統一的特點,而且能表達軟件開發中動態和靜態消息,已逐漸成為軟件工程領域的標準建模語言回。雖然面向對象、可視化建模、強大的表達能力等優點使UML建模被廣泛應用到軟件開發中,但是UML建模也存在固有的弊端,比如無法從語法上建立狀態圖與順序圖的關系問。無法從語法上建立活動圖與順序圖在流程描述中的關系,協作圖和順序圖中與消息相伴的參數不。
能與類圖建立關系等。此外,UML是一-種半正式語言四,其語法部分采用正式規范,語義部分采用非正式規范,因此UML建模容易在不同的開發人員之間產生二義性m,從面衍生如增加開發成本等其他問題。
為了解決UML建模存在的問題,研究人員引入具有嚴格數理理論的形式化方法。形式化方法憑借自身數理理論能簡祜、準確地描述軟件開發中系統的類、屬性、狀態和操作等,因而能準確無誤地描述軟件開發的概念、本質和證明規范,能夠在不同的軟件開發活動之間平滑過度,并且能在軟件開發前需求說明階段能夠通過自身推理發現與需求說明不--致的問題。因此研究人員結合形式化方法和UML建模,有效解決UML描述語義的模糊性和不一-致性。 隨著大量軟件開發經驗的積累,結合UML軟件建模和形式化方法已經成為軟件開發領域中至關重要的技術。其中Z問語言就是是一門發展較為成熟、應用較為廣泛的形式化描述語言,用來UML軟件建模間。目前研究人員已使用Z語言擂述UML系列圖響、UML CASE圖1.文獻[10]用形 式化語言Z定義UML序列圖的嚴格語義,井給出抽象句法、合式規則以及應滿足的一致性約束。文獻[12] 將可視化建模語盲UML和形式化方法z集成而得到一種新的求精方法來尋求出一種在軟件體系結構求精過程中UML到Z映射與轉換機制,該文獻研究結果說明:UML與Z結合可以得到一種新的求精方法,這種求精方法不僅能夠在一定程度 上提高軟件的一致性和可靠性,而且可以在實際應用中推廣使用。
同樣作為形式化描述語言,Ojct-2IW 語言是Z語言面向對象的拓展4.Z語言本身就是形式化規范語言凹,因引入嚴格的數學理論和推理,能夠發現與規則不一致的錯誤,井解決使其符合軟件開發的功能要求心。雖然Z語言具有簡單、易組合和實用的優點,但是它不是而向對象描述語法和語義的,存在一些不可忽視的問題,比如對大型軟件開發系統描述能力不夠,對于影響某- -狀志模式的所有操作模式的識別能力有限等。面Object-Z 語言通過構遺操作組建和狀態封裝來支持對大型軟件開發系統語法以及語義的措述叨。
1.2研究現狀
形式化方法通過引用嚴格的數學模型和符號系統簡單、明確地描述和驗證軟件系統開發當中的需求設計、系統規范、軟件系統結構設計等特性。形式化方法自十九世紀四十年代起,計算機科學家們大力推展形式化方法的發展和完善,至今已有十二位學者因研究形式化方法的成果獲得圖靈獎。形式化方法可以分為五類叫:一是基于模型的方法呵,如Z、VDM2 (Vienna Development Method,維也納開發方法)。該方法描述了軟件開發的狀態和狀態操作等,但是不能描述并發狀態;二是代數方法,如CLEAR語言、OBJ語言。該方法通過不同狀態操作的關聯關系形式化描述操作語義,但不描述軟件開發的狀態:三是過程代數方法,如ccs ( Caleulus of Communicate on Systems, 通信系統演算)。CSP(Communication SequentialProcess通信順序過程)。該該類方法對并發操作顯示建模,通過操作間可允許觀察的通訊。上的限制(約束)來表示行為;四是基于邏輯方法,如時志邏輯。該類方法通過邏輯描述軟件系統開發的特性:五是基于網絡的方法。如Petri網、謂詞變換網。該類方法根據網絡中的數據流顯式地給出系統的并發模型。
目前國內外形式化方法的主要研究內容主要有兩個方面: -是基于形式語言和形式語義學的形式化描述方法。通過引用具有嚴格邏輯的形式語言和精確的形式語義學,形式化描述方法可以簡單、準確地描述軟件系統開發中業務功能語義,這是在軟件開發中使用形式化方法是否規范的依據。上述的基于模型的形式化方法和基于代數即屬于形式化描述方法。另一研究內容是基于形式化描述方法的形式化驗證方法。該方法與形式化指述方法密切關聯。它就是來驗證目前已有的軟件系統是否符合形式描述語言描述的規范以及滿足軟件系統設計需求等。傳統的形式化驗證方法就是測試和驗證,通過實際實驗的方法對系統方法檢查錯誤。目前國內外研究人員仍舊使用形式化方法描述和驗證軟件系統開發。參考文獻[21]
基于形式化語言z描述互聯網登錄系統的主要操作模式,并通過形式化驗證方法確認互聯網登錄系統是否已滿足用戶主要需求。參考文獻([2]基于形式化語言VMD來優化預報船舶運動姿態學習機。實驗結果表明基于VDM和APSO(Adapation Parti cle Swarm Optimization,自適應粒子群優化算法)組合的預測模型具有更高的準確度。參考文獻[23]說明了形式化方法在列車運行控制系統的應用。為了能說明列車運行控制系統中四種與系統安全相關特性(實時性、混成性、分布性、反應性),該文獻采用了這四種特性相關的形式化方法,其實驗結果表明形式化方法在措述系統具有一定的優勢和不足。
Obiect-Z作為- -種面向對 象的形式化語言,它繼承了Z語言優良的規范模式又憑借面向對象的特性更加適合描述大型軟件系統開發中業務功能語義,不過目前Object-Z 語言的研究與應用只活躍在社區范圍內,其國內外的研究成果十分有限。參考文獻[1]為Oyject-Z中的核心建模概念提供了精確的描述性語義,并為UML類構造提供了形式化描述。在給出正式描述的情況下,它還在元級別提供了兩種語言之間的正式語文映射,這使Object Z語言與UML兩者之間的翻譯更加系統化。UML模型的任何驗證都可以使用為Object-Z提供的推理技術在其對應的ObjctZ規范上進行。通過這種方法,該文獻不僅為UML提供了精確的語義基礎,而且為推理UML模型提供了可靠的機制。參考文獻[13]介紹了使用面向對象的正式規范語言Object-Z 精確描述軟件或系統的技術。該文獻還介紹了許多不同的案例研究,以說明面向對象的形式規范的技術和語言,并說明形式規范在形式驗證和實現中的關鍵作用。參考文獻[24]是國外較新有關Objet-:Z 研究的發表論文,該論文主要是闡述ObjectZ語言的語法規則以及對應Python代碼的映射規則。參考文獻[1]是國內較新的有關ObjetZ語言研究成果。該文獻說明了Objea-Z語言的語法規則和使用方法,然后基于Objec-Z語言描述了軟件開發系統中的業務功能語義,該文以銀行系統信用卡功能為案例說明,最后設計Objct-Z語言到Python語言的映射規則,實現基于Objc-Z語言的Python代碼自動化生成。該文獻為本文提供了設計思路,幫助指導本文如何用Object-Z語言描述和驗證大型系統業務功能語義,以及如何映射成如C. Java、 Python 等編程語言,最終實現目標代碼自動化生成技術。
代碼自動化生成就是根據用戶對軟件系統開發任務霜求建立的模型而自動生成目標端程代碼喲。代碼自動化生成的工作流程是用戶根據軟件開發的任務需求建模,代碼自動生成應用或者工具會根據內部規定好的映射規則,自動從輸入模型中提取所需參數井自動生成目標代碼叫。自二十世紀誕生起,代碼自動化生成技術受到了軟件開發人員和計算機學者們的追捧而得意迅速發展,到目前該技術已經成熟和完善,已有較多的研究成果被公開發表。代碼自動化生成技術可以分為五類:基于模型生成、基于模版生成、基于對象關系映射生成、基于文檔注釋生成以及動態代理技術,其中最為常見的技術當屬基于模型設計和基于模版設計。參考文獻(27提出了基于UML2x版本序列圖的代碼自動化生成技術,通過UML2.x版本序列圖中XML元數據相互交互表示方法,該文獻構建-個序列整合圈的模型,來封裝代碼自動生成相關信息,最后實驗表明該文獻提出的代碼生成技術可以生成控制器類代碼文件的48%代碼行。參考文獻[28]介紹了基于使用規則和框架知識表示技術(ECG-RF) 的專家代碼生成器開發。其中,該文獻介紹的ECG-RF系統是一-種無源代碼生成器?梢栽诠潭ńY構的軟件中執行自動代碼生成的任務。為了開發ECG-RF系統,將基于規則的系統的人工智能(AI)和框架知識表示技術應用于代碼生成任務。ECG-RF使用從ECG-RF知識庫中檢索到的代碼塊填充某個固定結構程序的預定義框架。填充操作由ECG-RF的推理引擎完成,并通過圖形用戶界面(GUI) 從用戶收集的信息中進行指導。最終實驗結果表明ECG-RF設計概念是合理可靠的。參考文獻[29]提出基于UML活動團以及活動圖與序列圖之間的關聯關系設計自動生成類定義、方法定義、控制流的算法,解決了統-一建模語言(UML)模型因模型沒有某些實現細節、單個UMI模型不足以完成完整代碼生成;蛘吣承┠P驮乜赡軣o法直按轉換為源代碼等原因而無法全自動翻譯成完整源代碼的問題。
對于現階段的研究狀況而言,0Object-Z 語言作為面向對象的形式化語言,能夠描述業務功能語義的內容過于單一且無實用價值。而且研究人員只是將基于Objec-Z語言描述語義文件映射成編程語言代碼,而不是映射成具有較高使用價值的SSM (Spring、SpringMVC. Mybatis) 框架各層代碼。代碼自動化生成技術雖已成熟,但目前生成的目標代碼大多是框架代碼,更加無法根據基于Object-Z語言描述語義文件來自動生成SSM框架各層代碼。針對以上研究現狀的不足,本文將設計與實現基于Objc-Z語言的業務邏輯Java 代碼自動生成器。它能夠基于Objct-Z這- 面向對象的形式化語言,形式化描述和驗證SSM框架項目中業務層實現函數的功能語義,同時能夠根據輸入的描述語義文件自動生成描述該業務功能語義的語法樹。通過對可視化語法樹的檢查和驗證,再實時修改描述語義文件,已確保輸入文件不存在語法錯誤問題和語文遺漏問題。本文也將基于ANTLR工具設計一種基于Objct-Z語言描述語義文件到業務層實現函數Java代碼的映射規則,并設計出可由Objec-Z語言文件自動生成SSM框架業務層實現函數Java代碼的自動化生成技術。
1.3研究內容
1.3.1研究內容
根據上節介紹的形式化方法。ObjeclZ語言以及代碼自動化生成技術的研究現狀,本文將設計與實現基于Ofject-Z這-"形式化描述語言的通用業務邏輯Java代碼自動生成器。本文的研究內容主要分為四部分:第一部分 是基于Objct-Z語言的通用業務功能語義形式化描述方法:第二部分是從基于Object-Z 語言的通用業務邏輯語義描述文件到SSM框架中Service 層業務實現函數Java代碼的映射規則:第三部分是基于Objct-Z 語言的通用業務邏輯Java 代碼自動生成器的設計與實現:第四部分是業務邏輯Java代碼自動生成器的測試與驗證。下面將概括性說明這四部分主要研究內容:
。1)基于Objec.Z語言的通用業務功能語文形式化描述方法
ObjectZ語言作為Z語言面向對象的擴展,繼承了Z語育的規范和優點,并憑借面向對象的特性,來通過對類的操作修改對象狀態。但是目前對Object-Z語言的研究成果十分有限,只是簡單利用OjectZ語盲形式化描述簡單場景語義并轉換成C. Java. Python 等端程語言,無法使用于大型復雜的軟件系統開發。
本文提出基于Object-Z 語言形式化描述和驗證SSM框架中Service 層通用業務功能語義。其研究內容主要分為兩塊:
a)基于Object-Z語言對通用業務中語法內容的描述該部分描述的通用業務中語法內容包括通用業務中的對象、方法、狀態、屬性等;贠bjet-Z 語言,本文以class和genclass兩個語法單元描述業務邏輯中對象,其中這兩個語法單元都可以嵌入ObjectZ語言其他的語法單元和init.
state等模塊,來描述業務邏輯中對象的狀態、成員變量、初始化條件等。class 和genclass兩者語法單元可以在底部直接形式化描述某系統通用業務功能語義,或者通過嵌入op語法單元形式化描述。
b)基于Objct-Z語音對通用業務中功能語義的描述該部分描述的通用業務中語文內容主要包括數學運算、集合運算,邏輯運算。
判斷語句、循環語句等;贠bjct-Z語言,本文將排列組合各個已描述好業務對象、方法。狀態、屬性的語法單元和模塊,以此能完整地描述通用業務功能語義。
。2)從基于ObjectZ語言的通用業務邏輯語義擂述
文件到SSM框架中Service層業務實現函數Java代碼的映射規則作為面向對象的形式化語言,Object-Z 沒有普及到大型軟件系統代碼開發工作的原因在于,目前沒有標準的規范定義描述業務功能語義的Objct-Z 語言文件到SSM框架中業務函數Java代碼的映射規則。為了設計與實現基于Objct-Z語言的業務邏輯Java 代碼自動生成器,本文設計了Object-Z 語言到SSM框架中Service層業務實現函數Java 代碼的映射規則。其中包括: Objcct-Z 語言clas/geclass語法單元被映射成業務實現函數,該單元中state模塊內容披映射成業務實現函數中成員變量的聲明與定義, init 語法單元內容被映射成業務實現函數中成員變量的初始化操作,op語法單元內容被映射成業務實現函數中實現后臺業務功能的方法。
。3)基于Objct-Z語言的通用業務邏輯Java代碼自動生成器的設計與實現
在有上述兩個理論依據作為支撐后,本文將設計與實現語法樹自動生成系統和通用業務邏輯Java代碼自動生成系統,并組合成通用業務邏輯Java代碼自動生成器。其中,本文設計的語法樹自動生成系統包含三個功能模塊:系統檢查功能模塊、系統分析功能模塊、系統生成功能模塊,分別負責檢查輸入文件語法的正確性和語義的完整性。分析輸入文件描述通用的業務對象和業務功能語義、根據分析結果自動生成可視化的語法樹。語法樹自動生成系統的輸入文件也是業務邏輯Java代碼自動生成系統的輸入文件,后者會依據本文設計并定義好的映射規則,自動生成目標Java代碼。
。4)業務邏輯Java代碼自動生成器的測試與驗證在設計與實現
完業務邏輯Java 代碼自動生成器后,本文將基于Object-Z語言編寫描述虛擬網項目的增添虛擬網功能語義和刪除虛擬網功能語義的輸入文件,輸入到語法樹自動生成系統和業務邏輯Java代碼自動生成系統中,觀察生成語法樹是否能完整描述業務功能語義,再觀察生成的業務邏輯Java代碼是否為目標代碼。以測試和驗證業務邏輯Java代碼自動生成器。
1.3.2關鍵技術
本文的研究目標就是利用bjec-Z語言這一- 較成熟的形式化描述語言,對通用業務邏輯語義進行描述,使得開發人員在不接觸SSM框架、Java 編程語言的情況下,簡捷、高效地對SSM框架業務層實現函數邏輯語義進行操作,以便提高軟件開發的速度和效率。通過基于Object-Z 語言對通用業務邏輯語義的措述,業務邏輯Java代碼自動生成器自動生成通用業務實現函數Java代碼,其中包括實現函數繼承父類關系。實現函數輸入變量和返回值類型、實現函數中私有變量和公共變量的申明和賦值、實現函數中數學運算、邏輯運算和判讀表達式等。開發人員可以直接使用或者修改自動化生成的實現函數Java代碼,作為SSM框架業務層實現函數,滿足軟件開發的需求。因此軟件開發人員不需要再花費大量的時間、精力投入到SSM框架實現函數的學習和開發,只需要基于已經定義好的映射規則和Object-Z語言,簡介準確地描述通用業務邏輯語義,然后輸入到業務還輯Java代碼自動生成器中,得到生成的SSM框架業務層實現函數Java代碼。
本文最終給用戶提供的是可以直接使用或者修改的SSM框架業務層實現函數Java代碼,以便直接提供給軟件開發或者進行后續開發。開發者也可以在本課題項目。上繼續研究開發,依照本課題提出的代碼自動化方法繼續擴展描述通用業務邏輯語義的內容和其映射到SSM框架業務層實現函數代碼的映射規則,并完成實現函數Java代碼的自動化生成。本課題擬提出的關鍵技術有:
。1)基于Object-Z語言的通用業務邏輯語義的形式化描述
通過對通用業務邏輯語義抽象,基于Oljc-Z語言設計和定義各個模塊形式化描述通用業務邏輯語文中的類、方法、狀態、操作等。用戶根據自己的需求,可以直接調用已定好的Objec-Z語言模塊,也可以修改或者重新定文已有的0ObjectZ語言模塊來彌補描述邏輯語義信息的缺陷,之后組合排列各個模塊來描述通用業務邏輯語義。形式化方法為通用業務相關功能的抽象表達提供了一種規范,要求能夠根據該規范精準、簡短的表達常用的數據功能。應該具有語義一-致性。既描述語句具有確定的意義,不能具有二義性,不能產生矛盾。
。2)通用業務邏輯語義到SSM框架業務層實現
函數代碼的映射規則本課題可以對通用業務邏輯語義形式化描述,但是生成目標輸出SSM框架業務層實現函數Java代碼需要依賴于通用業務功能語義描述到SSM框架業務層實現函數Java代碼的映射規則。本課題已對通用業務邏輯進行抽象化描述,井基于BNP范式定義其映射到SSM框架業務層實現函數Java代碼的映射規則。
開發人員可以直接調用本課題定義的映射規則,完成部分通用業務邏輯函數代碼到自動化生成。同時,開發入員可以根據自身開發需求,直接修改或者重新定義已有的映射規則,彌補現有映射規則描述的缺陷
(3)業務邏輯實現函數Java代碼自動化生成技術
以Objec-Z語言描述語義文件作為業務邏輯實現函數Java自動生成器的輸入,利用Otjectz語音編輯器檢查寓意描述文件的語法規范等生成語法樹,并在現有工具等基礎上生成帶有邏輯語義的SSM框架業務層實現函數Java代碼。
1.4研究生期間工作
在近三年的研究生期間,本人學習了計算機技術相關基礎課程,選修了團論、Java語言等課程,自學形式語言與自動機、形式化語育、UML等知識,并積極參與了實驗室承接的開發項目,主要工作包括:
。1)基于SSM框架的虛擬網業務編排系統的后臺業務功能開發
虛損網不同于傳統物理網絡,其網絡規?梢詣討B伸縮,并支持網絡功能的按需配置和定制。虛報網絡管理模型由虛擬網絡、傳統網絡運維E理和成擬網的擴展管理城三個部分組成。實驗室承接對基礎設施和網絡功能的管理任務。在虛擬網項目中,本人承擔了虛擬網項目后臺業務功能開發任務,與前端開發人員聯調滿足項目設計需求,與負責后臺底層物理設備人員聯調,將后臺虛擬網功部署到底層交換機組成的物理網絡中,實現對虛擬網網絡創建和管理功能。經過一年多的項目開發歷程中,本人熟練掌握SSM概架的使用和研究,積累了不少的項目開發經驗,并提高了編程能力
。2)從Objcct-Z語言到業務邏輯Java代碼的生成器設計與實現
為了能形式化描述虛擬網項目后臺業務應用功能,本人翻鬩大量資料查詢形式化描述大型軟件系統開發業務功能語義的方法,了解到如VDM、B. Z等形式化描述語盲。通過研究資料對比,本人選擇Object-Z語官作為描述和驗證虛擬網后臺業務功能語義的形式化語言。在此過程中,我還用形式化方法和z. Objct-Z形式化語言描述并驗證了虛擬網項目UML類圖和序列圖中的語義信息。因此。
本人在本文研究開始之前,已經閱讀大量文獻和Object-Z 語言的書籍,熟悉Objec-Z語言的語法規則和使用規則,也從Objcct-Z語言社區中獲得Object-Z 語言編輯器和其他工具,因此較為熟練地編輯Object-Z語言文件,井能生成可視化語法樹。不過社區提供的編輯器并不適用于編寫描述SSM框架后臺業務功能語義的Objct-Z語言文件,甚至不能生成可視化語法樹。因此后面本文設計實現了語法樹自動生成器,來彌補Object-Z語音編輯器的缺失。
1.5論文組織結構
本文總共分為七章,各章節的具體內容組織如下:
第一章,緒論,首先介紹了本文的研究背景及意義,分析了當前形式化描述語言,包括Objec-Z語言以及代碼自動生成技術的研究現狀。并對本課題的研究內容作了整體性闡述,最后介紹本人在研究生期間的工作內容。
第二章,背景知識與相關技術,這一章主要介紹 了本文研究中涉及到的相關方法、技術以及本文設計與測試過程中涉及的框架方法,其中包括UML、形式化方法、Objct-Z 語言、SSM榧架和代碼自動化生成技術,并在該章各個小節里較詳細介紹了上述方法、技術以及bject-Z譜言的概念、組成部分、研究內容、發展狀況等。
第三章;贠bject-.Z 語盲通用業務功能語義形式化描述方法。本章將Objec-Z語言的通用業務功能語義形式化描述方法的工作步驟分為兩步,第-步是基于Objct-Z語言語法單元形式化描述通用業務的語法內容,包括通用業務中對象、方法,屬性等。第二步是排列組合上述描述的語法單元,來形式化描述通用業務功能語義。本章最后以俄羅斯方塊游戲為案例進行說明。
第四章,業務邏輯Java代碼自動生成器映射規則定義。結合第三章對bject-Z語言語法分析內容,本章先對目標文件分析,提取業務邏輯Java代碼自動生成過程的所需映射參數,然后介紹Objcct-Z 語言語法分析樹到業務邏輯Java代碼的映射過程,再以簡單句法制導翻譯式五元組形式化推導和定義映射規則,最后基于BNF范式定義從Object-Z語言語法分析樹映射到業務邏輯Java 代碼的映射規則。即業務邏輯Java代碼自動生成器映射過程中依賴的映射規則。
第五章,業務邏輯Java代碼自動生成器的設計與實現。本章是基于第三章和第四章提出的理論,利用ANTLR工具設計與實現業務邏輯Java代碼自動生成器。首先。本章以第三章提出的理論為依據,設計與實現了代碼自動生成器中語法樹自動生成模塊,該模塊可以檢查基于Objct-Z 語盲描述語義的輸入文件,確認輸入文件不存在語法錯誤以及語義描述不完善等問題。然后基于第四章提出的映射規則,設計與實現了代碼自動生成器中代碼自動生成模塊,該模塊將無誤的輸入文件自動轉換成業務邏輯Java代碼。通過語法樹自動生成模塊與代碼自動生成模塊的組合,本章完成對業務邏輯Java代碼自動生成器的設計與實現。
第六章,業務邏輯Java代碼自動生成器的測試與驗證。本章將在業務邏輯Java代碼自動生成器上端寫描述虛擬網項目后臺業務中添加虛報網功能語文和刪除虛擬網功能語義的輸入文件,然后輸入到代碼自動生成器中,觀察生成的可視化語法樹是否存在語法錯誤、語義未被完整準確地描述等問題,再觀察生成的業務邏輯Java代碼是否為目標代碼,經過上述步驟本章完成測試與驗證。
第七章,總結與展望。本章對以上幾章研究內容和工程開發進行總結和展望,.
并且指出了本文設計的業務邏輯Java代碼自動生成器存在的不足之處和后續進一步改善的地方。
第二章背景知識與相關技術
2.1 UML簡介
2.1.1 UML概述
2.1.2 UML基本組成
2.1.3 UML缺陷
2.2形式化方法介紹
2.2.1形式化方法的基本概念
2.2.2形式化的規范方法分類和驗證方法
2.2.3形式化方法的問題和發展
2.3 ObjctZ語盲
2.3.1 Z語言
2.3.2面向對象的z語盲
2.3.3 Z語言與Object-Z語言的比較
2.4 SSM框架
2.4.1 Spring框架
2.4.2 Spring MVC框架
2.4.3 Mybatis框架
2.4.4 SSM框架的開發流程
2.5代碼自動化生成技術
2.6本章總結
第三章基于Object-Z的通用業務功能語義形式化描述方法
3.1基于Object-Z語言對通用業務語法描述
3.1.1基于Objct-Z語言對通用業務對象描述
3.1.2基于Objc-Z語言對通用業務方法描述
3.1.3基于Ofjct-Z語言對通用業務類初始化描述
3.2基于ObjectZ語言對通用業務功能語義的描述
3.2.1基于數學模型和符號系統描述通用業務語義
3.2.2基于排列組合語法單元描述通用業務功能語義
33案例說明
3.4本章總結
第四章業務邏輯Java代碼自動生成器映射規則的定義
4.1目標文件分析
4.1.1 Service層業務實現函數的關定格式
4.1.2 Service層業務實現函數的通用邏輯
4.2 ObjectZ語言語法分析樹到業務邏輯Java代碼的映射過程
4.3映射規則形式化定義
4.4映射規則BNF范式定義
4.4.1基于BNF范式定義輸入模型
4.4.2基于BNF范式定義輸出模型
4.4.3輸入模型到輸出模型的映射規則的BNF范式定義
4.5本章總結
第五章業務邏輯Java代碼自動生成器的設計與實現
5.1 輸入文件分析
5.2 ObjectZ語法解析模塊的設計與實現
5.3 業務邏輯Java代碼生成模塊的設計與實現
5.3.1通用業務中函數的映射輸出
53.2通用業務中方法的映射輸出
5.3.3通用業務中變量的映射輸出
5.3.4通用業務中變量初始化條件的映射輸出
5.3.5通用業務中基礎語義的映射
5.4本章總結
第六章業務邏輯Java代碼自動生成器的測試與驗證
6.1基于Objct-Z語言編寫描述語義文件
6.2語法樹自動生成系統的測試與驗證
6.3業務邏輯Java代碼自動生成系統的測試與驗證
6.4業務邏輯Java代碼自動生成器性能測試
6.5本章總結
第七章總結及展望
7.1本文工作總結
本文設計并實現了基于Objec-Z形式化描述語言的SSM框架中業務邏輯Java代碼自動生成器。其中,本文研究Object-Z語言的語法規則,結合所需生成的SSM框架通用業務功能語義。設計和編寫了Objca_Z語言的各個語法單元模板,通過排列組合的方式形式化描述SSM框架中通用業務功能語義,以此完成描述語義語法樹自動生成系統。本文再根據生成的描述語義語法樹,結合所需生成的SSM框架通用業務邏輯Java代碼,設計和實現了SSM框架通用業務邏輯Java代碼自動生成系統。使用人員可以根據自身業務需求,基子Objc-Z語言編寫描述SSM框架中通用業務功能語義文件,也可以直接使用或者修改本文提出的對SSM框架中通用業務語義描述的語法單元模板,然后在語法樹自動生成系統上編譯生成語法樹文件,業務邏輯Java代碼自動生成器會編譯語法樹文件自動生成業務邏輯Java代碼。使用人員將無需花費大量時間成本編寫通用業務邏輯Java代碼,只需編寫簡易的Oject-Z語言文件,通過業務邏輯Java代碼自動生成器直接獲得所需的業務邏輯Java代碼。本文的主要內容如下:
。1)提出基于Object-Z語言對通用業務邏輯語義的描述
基于Object-Z 這- -面向對象的形式化描述語言,本文根據通用業務需求設計了Object-Z語言中各個語法單元模版,來形式化描述通用業務的類、方法、成員變量等,再組合排列已定義好的Object-Z語言語法單元,來形式化描述ssM框架中通用業務功能語義。
。2)設計了形式化描述語義文件到SSM框架通用業務邏輯
Java代碼的映射規則基于BNF范式,本文定義描述語義語法樹作為輸入模型,定義目標SSM框架通用業務邏輯Java代碼作為輸出模型,井設計和實現了形式化描述語義語法樹文件映射成SSM框架通用業務邏輯Java代碼的映射規則(3)設計和實現SSM框架通用業務邏輯Java代碼自動生成器本文設計了描述語義語法樹自動生成系統和SSM框架通用業務邏輯Java代碼自動生成系統,并組合成通用業務邏輯Java代碼自動生成器。使用人員只需編寫基于Objc-Z語言形式化描述語義文件,利用本文提出的通用業務邏輯Java代碼自動生成器,直接得到SSM框架中通用業務邏輯Java代碼。本文提出的Object-Z語言語法單元模板形式化描述了虛報網項目SSM框架中某些業務功能語義,再輸入到SSM框架通用業務邏輯Java代碼自動生成器中,最終獲取到目語義,再輸入到ssm框架通用業務邏輯框架通用業務邏輯代碼自動生成器中,最終獲取到目 標Java代碼,完成對SSM框架通用業務邏輯Java代碼自動生成器的驗證標Java代碼,完成對SSM框架通用業務邏輯Java代碼自動生成器的驗證。
本文創新點主要包括兩點:
。1)基于0Objec-Z語言的SSM框架通用業務功能語義的形式化描述
基于0 Objec-Z語言的ssm框架通用業務功能語義的形式化描述目前對于Obiect-Z 語言這一形式化描述語言的研究成果十分有限,已發表目前對于Obiect-Z 語言這一形式化描述語言的研究成果十分有限,已發表 的成果也只是使用Objec-Z語言形式化描述簡單功能語義。本文提出基于Object的成果也只是使用objec-Z語言形式化描述簡單功能語義。本文提出基于對象 Z語言形式話描迷SSM框架中通用業務功能語義,將擴大Objcct-Z這一面向對Z語言形式話描迷ssm框架中通用業務功能語義,將擴大Objcct-Z這一面向對 象的形式化語言的使用范圍。開發人員后續可以直接使用或者修改本文提出的語象的形式化語言的使用范圍。開發人員后續可以直接使用或者修改本文提出的語 法單元模板,通過排列組合語法單元的方式來形式化擂述SSM框架中通用業務法單元模板,通過排列組合語法單元的方式來形式化擂述ssm框架中通用業務 功能語義功能語義。
。2)通用業務功能語義描述到SSM框架中業務層實現函數Java代碼的映射
。ㄍㄓ脴I務功能語義描述到ssm框架中業務層實現函數框架中業務層實現函數代碼的映射 規則規則 目前研究現狀是設計和定義Object-Z語言到C. Java、 Python等編程語言的目前研究現狀是設計和定義Object-Z語言到C. Java、 Python等編程語言的 映射規則,實現編程代碼的非自動化生成,F有研究工作定文的映射規則是無法映射規則,實現編程代碼的非自動化生成,F有研究工作定文的映射規則是無法 滿足通用業務邏輯語義描述到SSM框架業務層實現函數代碼自動化生成的需求。
滿足通用業務邏輯語義描述到ssm框架業務層實現函數代碼自動化生成的需求。 因此本課題在現有研究內容基礎上,擬設計和定義通用業務邏輯語義到SSM框因此本課題在現有研究內容基礎上,擬設計和定義通用業務邏輯語義到ssm框 架業務層實現函數代碼的映射規則,結合現有工具完成SSM框架業務層實現函架業務層實現函數代碼的映射規則,結合現有工具完成ssm框架業務層實現函 數代碼的自動化生成。本課題設計和定義的規則,將會幫助Object-Z語言描述更數代碼的自動化生成。本課題設計和定義的規則,將會幫助Object-Z語言描述更 加復雜業務邏輯語義,井且會自動化生成SSM框架業務層實現函數代碼。本課加復雜業務邏輯語義,井且會自動化生成ssm框架業務層實現函數代碼。本課 題對通用業務業務邏輯語義到SSM框架業務層實現函數代碼映射規則的研究也題對通用業務業務邏輯語義到ssm框架業務層實現函數代碼映射規則的研究也 會幫助Web應用的開發,具有很高的創新性和實用性。
會幫助應用的開發,具有很高的創新性和實用性。
7.2未來工作展望
本文提出并實現了通用業務邏輯Java 代碼自動生成器,使用人員根據自身本文提出并實現了通用業務邏輯代碼自動生成器,使用人員根據自身 需求可以直接使用或者修改本文提出的Object-Z 語言各類語法單元模版,作為需求可以直接使用或者修改本文提出的Object-Z 語言各類語法單元模版,作為 業務邏輯Java代碼自動生成器的輸入,最終生成SSM框架中通用業務邏輯Java業務邏輯代碼自動生成器的輸入,最終生成SSM框架中通用業務邏輯Java 代碼。使用人員也可以修改通用業務功能語義描述到SSM框架中業務層實現函代碼。使用人員也可以修改通用業務功能語義描述到ssm框架中業務層實現函 數Java代碼的映射規則,繼續開發和完善。 本文尚還有-些需要進一步研究完數代碼的映射規則,繼續開發和完善。本文尚還有-些需要進一步研究完 善的地方:
。1)本文提出的ObjectZ語言語法單元模板只是簡單形式化描述某大型系統
。1)本文提出的objectz語言語法單元模板只是簡單形式化描述某大型系統 開發中部分業務邏輯語義。雖能夠使用但具有- -定的局限性。在后續的研究中。
開發中部分業務邏輯語義。雖能夠使用但具有--定的局限性。在后續的研究中。 本人將豐富對通用業務語法和語義描述的Ojet-Z語言語法單元模板。
本人將豐富對通用業務語法和語義描述的Ojet-Z語言語法單元模板。
。2)本文提出的通用業務功能語義描述到SSM框架中業務層實現函數Java
。2)本文提出的通用業務功能語義描述到SSM框架中業務層實現函數Java 代碼的映射規則也是具有不小的局限性。面對大型軟件系統開發及其復雜多樣的業務需求,業務邏輯Java代碼自動生成器無法滿足使用人員的需求。本人會在后續的工作豐富通用業務功能語義描述到SSM框架中業務層實現函數Java代碼的映射規則,使得用戶人員可以輸入基于Object-Z 語言編寫的描述復雜業務邏輯語義文件,最終獲得目標代碼文件。
。3)本文設計與實現的業務邏輯
Java自動生成器可以生成語法樹讓使用人員檢查編寫的描述語義文件,但是無法自動檢查生成的Service 層業務實現函數Java代碼的正確性和可實用性。使用人員只能手動檢查生成代碼判斷是否存在問題。參考本文第六章提出的測試和驗證工作,使用人員在部署生成代碼到SSM框架Service 層時,還需要添加一- 些配置和聲明等。這讓使用人員在實用生成業務實現函數Javg代碼時花費更多的時間和精力。無疑降低業務邏輯Java代碼自動生成器的實用性和簡便性。
致謝
(如您需要查看本篇畢業設計全文,請您聯系客服索。