freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

軟件工程關(guān)于代碼自動(dòng)生成技術(shù)的分析(doc畢業(yè)設(shè)計(jì)論文)(已修改)

2025-07-07 02:32 本頁(yè)面
 

【正文】 關(guān)于代碼自動(dòng)生成技術(shù)的分析目 錄前 言 1第一章 概述 2 2 4 本課題的主要研究?jī)?nèi)容 6第二章 代碼自動(dòng)生成技術(shù) 7 代碼生成的機(jī)理 7 三層B/S架構(gòu) 8 設(shè)計(jì)模式 9 反射技術(shù) 12 緩存技術(shù) 13 XML技術(shù) 15 語(yǔ)法高亮顯示 17第三章 系統(tǒng)分析與設(shè)計(jì) 18 系統(tǒng)分析 18 系統(tǒng)開(kāi)發(fā)環(huán)境 18 需求分析 18 系統(tǒng)用例圖及詳細(xì)說(shuō)明 21 系統(tǒng)設(shè)計(jì)方案 28 設(shè)計(jì)原則 28 系統(tǒng)類 28第四章 系統(tǒng)實(shí)現(xiàn) 32 系統(tǒng)界面設(shè)計(jì) 32 34 數(shù)據(jù)庫(kù)新連接(即導(dǎo)入數(shù)據(jù)庫(kù)信息)功能的實(shí)現(xiàn) 34 代碼生成功能的實(shí)現(xiàn) 34 代碼導(dǎo)出功能的實(shí)現(xiàn) 36 數(shù)據(jù)庫(kù)查詢分析功能的實(shí)現(xiàn) 36第五章 難點(diǎn)與對(duì)策 38 數(shù)據(jù)庫(kù)表信息的讀取 38 將xml數(shù)據(jù)加載到樹(shù)形控件上 39 語(yǔ)法高亮顯示的實(shí)現(xiàn) 41第五章 總結(jié)及展望 43 總結(jié) 43 展望 44致謝 45參考文獻(xiàn) 46前 言現(xiàn)在軟件工程所涉及到的系統(tǒng)規(guī)模越來(lái)越大。大型的程序需要多人共同參與和開(kāi)發(fā),每個(gè)人的程序風(fēng)格不同,再加上時(shí)間上的壓力,這使得系統(tǒng)完成以后在測(cè)試及維護(hù)上帶來(lái)了沉重的負(fù)擔(dān)。計(jì)算機(jī)科學(xué)家一直致力于這方面的研究。在解決代碼規(guī)范以及工作效率上,代碼自動(dòng)生成技術(shù)顯現(xiàn)出了其很大的優(yōu)越性。代碼自動(dòng)生成器一個(gè)最關(guān)鍵的功能就是讓程序員盡可能減輕負(fù)。當(dāng)然任何東西都不能取代人在當(dāng)中的作用,代碼自動(dòng)生成器主要來(lái)完成一些有規(guī)律可尋的代碼生成。比如我們平常一般用到的MODEL類就是一個(gè)很簡(jiǎn)單的基類,它的模式基本上是固定的。如果一個(gè)系統(tǒng)有上百個(gè)MODEL類,那么程序員可能要話很長(zhǎng)的時(shí)間來(lái)編寫(xiě)。而用了相應(yīng)的自動(dòng)生成器只需簡(jiǎn)單幾步就很全部生成。我想這樣的工作是非常有意義的。TianHao正是在這樣的環(huán)境下計(jì)劃開(kāi)發(fā)的。TianHao生成的代碼基于面向?qū)ο蟮乃枷牒腿龑蛹軜?gòu)設(shè)計(jì)。現(xiàn)在的系統(tǒng)常用到的是三層架構(gòu)。一個(gè)典型的例子就是微軟的示例代碼Petshop。Petshop包含了很多經(jīng)典的思想和設(shè)計(jì)模式。TianHao結(jié)合了Petshop的開(kāi)發(fā)模式,尋求編碼規(guī)律,并融入了工廠模式,反射機(jī)制等一些思想。TianHao 同時(shí)提供支持多類型數(shù)據(jù)庫(kù),并且能夠方便的對(duì)數(shù)據(jù)庫(kù)查詢分析,存儲(chǔ)過(guò)程生成,代碼批量自動(dòng)輸出等多項(xiàng)開(kāi)發(fā)工作中常用到的功能。第1章 概述在軟件工程發(fā)展過(guò)程中,計(jì)算機(jī)科學(xué)家為了降低軟件開(kāi)發(fā)得強(qiáng)度,縮短開(kāi)發(fā)周期,減少代碼的重復(fù)書(shū)寫(xiě),從而減輕程序員的編程負(fù)擔(dān),一直以來(lái)都致力于代碼自動(dòng)生成方面的研究。Lex/Yacc是最早用于自動(dòng)化編寫(xiě)編譯程序的工具。 我們可以將代碼生成技術(shù)分為兩大類:被動(dòng)模式和主動(dòng)模式。在被動(dòng)模式下,代碼生成器產(chǎn)生一系列的代碼,然后軟件開(kāi)發(fā)者可以自由的修改、編輯這些代碼,但代碼生成器不再承擔(dān)對(duì)代碼的維護(hù)工作。大多數(shù)軟件集成開(kāi)發(fā)環(huán)境(IDE)中的應(yīng)用“向?qū)А本褪沁@種類型的代碼生成器。被動(dòng)模式的代碼生成技術(shù)有其應(yīng)用的范圍,但是被動(dòng)模式的生成系統(tǒng)有天生的局限性。生成器只運(yùn)行一次,然后就不再承擔(dān)對(duì)代碼的維護(hù)工作。 與此相反,主動(dòng)模式下的代碼生成器則對(duì)生成的代碼“長(zhǎng)期”負(fù)責(zé),可以通過(guò)改變生成器的輸入?yún)?shù)并重新運(yùn)行生成器來(lái)改變輸出的代碼。如編譯器生成器就是一種主動(dòng)模式 的代碼生成器。 下面我們介紹幾種常見(jiàn)的代碼生成技術(shù),這些技術(shù)對(duì)開(kāi)發(fā)一個(gè)實(shí)用的代碼生成器非常重要??梢砸罁?jù)代碼生成技術(shù)的使用場(chǎng)合、復(fù)雜度等對(duì)這些生成技術(shù)進(jìn)行分類,這里我們采用依據(jù)生成技術(shù)的輸入、輸出對(duì)它們進(jìn)行分類。 (1) 代碼挑揀器,代碼挑揀器的輸入是源代碼,通過(guò)揀取需要的信息可以生成各種文件,代碼挑揀器的使用相當(dāng)廣泛,可以使用它來(lái)生成代碼API文檔、獲取常量和函數(shù)原型等。 (2) 內(nèi)聯(lián)代碼擴(kuò)展器,內(nèi)聯(lián)代碼擴(kuò)展器的輸入是帶有特殊標(biāo)記的源代碼,這些特殊標(biāo)記經(jīng)過(guò)擴(kuò)展器的處理后將被替換為相關(guān)的代碼從而產(chǎn)生最終的生產(chǎn)源代碼,內(nèi)聯(lián)代碼擴(kuò)展器的典型應(yīng)用是將SQL語(yǔ)句嵌入到源代碼中,其主要特點(diǎn)是使得底層結(jié)構(gòu)和復(fù)雜的查詢分開(kāi)。(3) 混合代碼生成器 混合代碼生成器與內(nèi)聯(lián)代碼擴(kuò)展器很像,它也是處理源代碼中的特殊注釋但是與內(nèi)聯(lián)代碼擴(kuò)展器不同,它的結(jié)果將直接輸出到輸入的源代碼中。這種方式的一個(gè)典型應(yīng)用就是在對(duì)話框控件和它們代表的變量之間建立映射關(guān)系。(4) 部分類生成器 部分類生成器的輸入是模板文件和包含特定類所需信息的定義文件,這些信息經(jīng)過(guò)生成器將產(chǎn)生應(yīng)用的基類。通過(guò)繼承該基類可以完成剩余的工作。Velocity是一個(gè)源代碼開(kāi)放的Java模版引擎。(5) 層第生成器 層第生成器將生成一個(gè)多層應(yīng)用的所有代碼。模型驅(qū)動(dòng)的開(kāi)發(fā)是這種生成器的一個(gè)很好例子。通過(guò)UML模型輸入和其余XML文件,生成器能夠生成一個(gè)包含多個(gè)系統(tǒng)的完整應(yīng)用,并且模型和代碼之間可以單項(xiàng)乃至雙項(xiàng)同步。(6) 完全領(lǐng)域語(yǔ)言 完全領(lǐng)域語(yǔ)言是一個(gè)圖靈完全的語(yǔ)言,可以直接使用來(lái)進(jìn)行領(lǐng)域相關(guān)的操作。 目前常見(jiàn)的代碼生成器有:DbToCode 是一款為 C 數(shù)據(jù)庫(kù)程序員設(shè)計(jì)的自動(dòng)代碼生器,DbToCode 生成的代碼基于面向?qū)ο蟮乃枷牒腿龑蛹軜?gòu)設(shè)計(jì),結(jié)合了Petshop中經(jīng)典的思想和設(shè)計(jì)模式,融入了工廠模式,反射機(jī)制等等一些思想。采用 Model + DAL + BLL + Web 的設(shè)計(jì),主要實(shí)現(xiàn)在 C 中對(duì)應(yīng)數(shù)據(jù)庫(kù)中表的基類代碼的自動(dòng)生成,包括生成屬性、添加、修改、刪除、查詢、存在性、 Model 類構(gòu)造等基礎(chǔ)代碼片斷,使程序員可以節(jié)省大量機(jī)械錄入的時(shí)間和重復(fù)勞動(dòng),而將精力集中于核心業(yè)務(wù)邏輯的開(kāi)發(fā)。Codematic 生成的代碼基于面向?qū)ο蟮乃枷牒腿龑蛹軜?gòu)設(shè)計(jì),結(jié)合了Petshop中經(jīng)典的思想和設(shè)計(jì)模式,融入了工廠模式,反射機(jī)制等等一些思想。Codematic 同時(shí)提供方便的多類型數(shù)據(jù)庫(kù)管理,查詢分析器,SQL腳本生成,存儲(chǔ)過(guò)程生成,數(shù)據(jù)庫(kù)文檔生成,Web項(xiàng)目發(fā)布,代碼批量自動(dòng)輸出等多項(xiàng)開(kāi)發(fā)工作中常用到的功能,您可以很方便輕松地進(jìn)行項(xiàng)目開(kāi)發(fā)。AutoJava 是一款免費(fèi)的,針對(duì)于Oracle和SQLserver數(shù)據(jù)庫(kù)的、以面向?qū)ο竽J降腏ava代碼生成工具。AutoJava根據(jù)O/R Mapping規(guī)則生成表對(duì)應(yīng)的Java對(duì)象,并且生成了所有的添加、刪除、修改、查詢等底層數(shù)據(jù)庫(kù)操作代碼。 隨著現(xiàn)代化信息環(huán)境日趨復(fù)雜,各種應(yīng)用軟件的開(kāi)發(fā)難度隨之加大,這需要更有技巧,更有方法地從事軟件開(kāi)發(fā),開(kāi)發(fā)團(tuán)隊(duì)之間也必須更無(wú)障礙地溝通,否則極可能無(wú)法在有限的開(kāi)發(fā)時(shí)間中完成任務(wù)。由于時(shí)間上的壓力,一般人只注重程序的編寫(xiě)速度,卻忽略其完成后的實(shí)用性與維護(hù)性,加上大型程序多人共同參與開(kāi)發(fā),每個(gè)人都有各自的程序風(fēng)格,容易造成嚴(yán)重的差異性,隨著系統(tǒng)規(guī)模越來(lái)越大,這將造成系統(tǒng)完成后在測(cè)試及維護(hù)上沉重的負(fù)擔(dān),代碼自動(dòng)生成技術(shù)更顯出了其顯著的優(yōu)越性。盡管這些應(yīng)用沒(méi)有代碼生成工具也能開(kāi)發(fā)完成,但利用代碼生成技術(shù)可以大大加速軟件的開(kāi)發(fā)進(jìn)度,提高軟件的質(zhì)量。代碼生成技術(shù)是關(guān)于自動(dòng)生成程序的程序的技術(shù)。與手工書(shū)寫(xiě)代碼相比,代碼生成器提供了下面的一些好處: (1)所有軟件實(shí)體的一致的代碼質(zhì)量,代碼的質(zhì)量依賴且只依賴于代碼生成的模板、文件和模型。與此相比,手工經(jīng)常采用的拷貝粘貼的方法為前后代碼質(zhì)量的一致性帶來(lái)了隱患。 (2)提高了代碼變更的能力,特別在需要大量更改代碼的情況下,只需要更改模板并重新運(yùn)行代碼生成器即可。 (3)提高了修復(fù)軟件Bug的能力,只需要修復(fù)模板的Bug然后重新運(yùn)行生成器就可以修復(fù)所有的生成文件的Bug。 (4)提高了在不同框架之間的遷移能力,一個(gè)典型的情形是我們需要生成不同框架(如J2EE/.Net)的應(yīng)用代碼,代碼生成技術(shù)將業(yè)務(wù)邏輯以語(yǔ)言無(wú)關(guān)的形式單獨(dú)存放,通過(guò)為不同的框架提供代碼模板可以基于同一邏輯生成不同框架的應(yīng)用代碼。 (5)靈活的同步機(jī)制,代碼生成技術(shù)自動(dòng)維護(hù)代碼和數(shù)據(jù)模型的一致性,通過(guò)重新運(yùn)行生成器,對(duì)模型的修改可以自動(dòng)反映到代碼中,這種同步機(jī)制對(duì)維護(hù)數(shù)據(jù)的一致性是非常必要的。 (6)大幅度提高了工作效率,運(yùn)用代碼生成技術(shù)可以將更多的時(shí)間花費(fèi)在業(yè)務(wù)相關(guān)的設(shè)計(jì)和實(shí)現(xiàn)上,從而可以大大提高軟件的開(kāi)發(fā)效率和軟件質(zhì)量。 (7)是代碼學(xué)習(xí)的導(dǎo)師,由于生成的代碼具有良好的風(fēng)格和100%的健壯性,程序開(kāi)發(fā)者很容易模仿代碼風(fēng)格,從中學(xué)習(xí)。 本課題的主要研究?jī)?nèi)容本課題的主要目標(biāo)是在Windows XP 平臺(tái)下, C(C)代碼自動(dòng)生成軟件(,該軟件屬于代碼自動(dòng)生成的部分類生成器)。本軟件主要包含功能如下:(1)實(shí)現(xiàn)在對(duì)應(yīng)數(shù)據(jù)庫(kù)中表的基類代碼的自動(dòng)生成,包括生成屬性、添加、修改、刪除、查詢、存在性、Model 類構(gòu)造等基礎(chǔ)代碼片斷。(2)自動(dòng)生成數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程。(3) 支持不同架構(gòu)代碼生成,用戶可以定義命名。(4)自動(dòng)生成實(shí)體Model,DAL(數(shù)據(jù)訪問(wèn)層),IDAL(接口層),DALFactory(類工廠),BLL(業(yè)務(wù)邏輯層) 等多層的代碼。(5)代碼批量生成自動(dòng)導(dǎo)出功能。第二章 代碼自動(dòng)生成技術(shù) 代碼生成的機(jī)理代碼生成器的作用是讀取工程的元數(shù)據(jù),按照指定的設(shè)計(jì)模式,混合產(chǎn)生出規(guī)范的源代碼。典型的代碼生成器模型如圖21所示。在圖中,為自動(dòng)生成程序代碼,必需的三個(gè)關(guān)鍵要素是設(shè)計(jì)模式(所產(chǎn)生代碼的模板文件)、領(lǐng)域元數(shù)據(jù)(在代碼中需建模的拓?fù)浣Y(jié)構(gòu),即定義文件,通常隨開(kāi)發(fā)折提供的特定數(shù)據(jù)增長(zhǎng))。 圖21 典型代碼生成器的模型圖 構(gòu)建自己的代碼生成器有2種方法,一是綜合利用流行的代碼生成器。構(gòu)建出適合自己的代碼生成器;另一種方法是構(gòu)造出一個(gè)全新的代碼生成器。無(wú)論哪種方法,在構(gòu)建代碼生成器都應(yīng)該注意下面幾個(gè)方面: (1)使用純文字樣版,使用純文字樣版的好處除了編輯方便外,也能將程序代碼定義邏輯和格式化邏輯分隔開(kāi)來(lái),使實(shí)作上更有彈性。 (2)編寫(xiě)正規(guī)表達(dá)式(Regular Expression),正規(guī)表達(dá)式是一種字符串的表示方式,使用它不僅擴(kuò)大了字符串的表達(dá)能力,讓使用者很容易進(jìn)行字符串判斷,也可避免撰寫(xiě)程序進(jìn)行復(fù)雜字符串解析的麻煩,也自然使得數(shù)據(jù)處理的過(guò)程變得更為迅速便利。 (3)編譯器原理,在對(duì)于文本文件的處理上,先利用掃描器(Scanner)掃描出其中的字符,再實(shí)作解析器(Parser)解析出所對(duì)應(yīng)的語(yǔ)法,然后轉(zhuǎn)換成所要產(chǎn)生的程序語(yǔ)言。 (4)文檔輸出入的處理, 由于程序產(chǎn)生牽涉到大量的文檔讀寫(xiě)動(dòng)作,需要定義合適的數(shù)據(jù)結(jié)構(gòu)及緩沖區(qū)機(jī)制來(lái)提升文檔存取的效率,另一方面來(lái)說(shuō),在編寫(xiě)樣版文檔時(shí)也需考量到對(duì)于存取效率上的負(fù)擔(dān)。 三層B/S架構(gòu)架構(gòu)設(shè)計(jì)是非常高級(jí)的設(shè)計(jì),也是系統(tǒng)設(shè)計(jì)的關(guān)鍵,主要是定義和說(shuō)明包(子系統(tǒng)),以及包與包之間的相互依賴與通信機(jī)制。系統(tǒng)構(gòu)架模型的合理與否將決定系統(tǒng)的可維護(hù)性、擴(kuò)展性和開(kāi)發(fā)效率包通常所需要處理的是要么是一個(gè)具體的功能區(qū)域(業(yè)務(wù)邏輯),要么是一個(gè)具體的技術(shù)區(qū)域(技術(shù)邏輯)。業(yè)務(wù)邏輯主要考慮的是對(duì)系統(tǒng)業(yè)務(wù)功能的實(shí)現(xiàn),而技術(shù) 邏輯則是進(jìn)一步考慮用戶界面、數(shù)據(jù)庫(kù)或通信機(jī)制等形成的技術(shù)方案。把技術(shù)邏輯和業(yè)務(wù)邏輯區(qū)分開(kāi)來(lái)是極其重要的,這是為了當(dāng)修改程序的某一部分時(shí)不會(huì)對(duì)另一 部分產(chǎn)生影響,更加便于進(jìn)行“復(fù)用”,同時(shí)易于應(yīng)對(duì)來(lái)自業(yè)務(wù)邏輯的變更需求。三層結(jié)構(gòu)是一種成熟、簡(jiǎn)單并得到普遍應(yīng)用的應(yīng)用程序架構(gòu), 它將應(yīng)用程序結(jié)構(gòu)劃分三層獨(dú)立的包,包括用戶表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層。其中將實(shí)現(xiàn)人機(jī)界面的所有表單和組件放在表示層,將所有業(yè)務(wù)規(guī)則和邏輯的實(shí) 現(xiàn)封裝在負(fù)責(zé)業(yè)務(wù)邏輯組件中,將所有和數(shù)據(jù)庫(kù)的交互封裝在數(shù)據(jù)訪問(wèn)組件中。其結(jié)構(gòu)如下圖22所示:圖22 三層結(jié)構(gòu) 設(shè)計(jì)模式設(shè)計(jì)模式使人們可以更加簡(jiǎn)單方便地復(fù)用成功的設(shè)計(jì)和體系結(jié)構(gòu)。將已證實(shí)的技術(shù)表述成設(shè)計(jì)模式也會(huì)使新系統(tǒng)開(kāi)發(fā)者更加容易理解其設(shè)計(jì)思路。一般而言,一個(gè)模式有四個(gè)基本要素:1. 模式名稱(pattern name) 一個(gè)助記名2. 問(wèn)題(problem) 描述了應(yīng)該在何時(shí)使用模式。它解釋了設(shè)計(jì)問(wèn)題和問(wèn)題存在的前因后果,它可能描述了特定的設(shè)計(jì)問(wèn)題,如怎樣用對(duì)象表示算法等。也可能描述了導(dǎo)致不靈活設(shè)計(jì)的類或?qū)ο蠼Y(jié)構(gòu)。有時(shí)候,問(wèn)題部分會(huì)包括使用模式必須滿足的一系列先決條件。3. 解決方案(solution) 描述了設(shè)計(jì)的組成成分,它們之間的相互關(guān)系及各自的職責(zé)和協(xié)作方式。因?yàn)槟J骄拖褚粋€(gè)模板,可應(yīng)用于多種不同場(chǎng)合,所以解決方案并不描述一個(gè)特定而具體的設(shè)計(jì)或?qū)崿F(xiàn),而是提供設(shè)計(jì)問(wèn)題的抽象描述和怎樣用一個(gè)具有一般意義的元素組合(類或?qū)ο蠼M合)來(lái)解決這個(gè)問(wèn)題。4.
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1