




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
新工科建設(shè)·計(jì)算機(jī)類系列教材
免費(fèi)提供編譯原理學(xué)分:編譯原理簡(jiǎn)明教程(第3版)馮秀芳
崔冬華
王會(huì)青
主編電子工業(yè)出版社
2024年出版課程教材6目錄第一章概述第二章形式語(yǔ)言理論基礎(chǔ)第三章自動(dòng)機(jī)理論基礎(chǔ)第四章詞法分析第五章語(yǔ)法分析—自頂向下分析方法第六章語(yǔ)法分析—自底向上分析方法第七章語(yǔ)義分析及中間代碼的生成第八章代碼優(yōu)化第九章目標(biāo)代碼的生成第十章符號(hào)表和出錯(cuò)處理第十一章
面向?qū)ο笳Z(yǔ)言的編譯第十二章
并行編譯技術(shù)第十三章軟件構(gòu)造學(xué)習(xí)目標(biāo)13軟件構(gòu)造重點(diǎn):模塊化軟件構(gòu)造,面向?qū)ο筌浖?gòu)難點(diǎn):編譯與軟件構(gòu)造的聯(lián)系了解經(jīng)典的軟件構(gòu)造技術(shù)理解模塊化構(gòu)造理論、數(shù)據(jù)結(jié)構(gòu)算法、調(diào)試和測(cè)試程序與編譯系統(tǒng)的內(nèi)在聯(lián)系理解面向?qū)ο蟮能浖?gòu)造技術(shù),掌握抽象與封裝了解面向?qū)ο蟮脑O(shè)計(jì)以及相應(yīng)的測(cè)試、調(diào)試技術(shù)
目錄13.1軟件構(gòu)造技術(shù)13.2模塊化軟件構(gòu)造13.3面向?qū)ο蟮能浖?gòu)造技術(shù)13.1軟件構(gòu)造技術(shù)13.1.1
API的設(shè)計(jì)和構(gòu)造API(ApplicationProgrammingInterface)是指應(yīng)用程序接口,是一些被預(yù)先定義的接口,或軟件系統(tǒng)的不同組成部分之間銜接的約定,一些函數(shù)和HTTP接口都屬于API。一個(gè)好的API應(yīng)具有如下特點(diǎn):用戶開(kāi)發(fā)人員易學(xué)習(xí)易閱讀易使用易開(kāi)發(fā)很少被誤用......13.1.1
API的設(shè)計(jì)和構(gòu)造要設(shè)計(jì)和構(gòu)造優(yōu)秀的API,需要做到以下幾點(diǎn):深入了解需求采用良好的設(shè)計(jì)思路避免極端意見(jiàn)有效的API評(píng)審提高API的可測(cè)試性保證API的向后兼容保持逐步改善把握API的生命周期一些具體的實(shí)施方案用例驅(qū)動(dòng)一致性簡(jiǎn)單明了API盡可能少
支持持續(xù)改進(jìn)13.1.2
基于狀態(tài)和表驅(qū)動(dòng)的構(gòu)造技術(shù)基于狀態(tài)的構(gòu)造技術(shù)基于自動(dòng)機(jī)的編程
將程序看作一個(gè)有限狀態(tài)自動(dòng)機(jī),側(cè)重于對(duì)“狀態(tài)”及“狀態(tài)轉(zhuǎn)換”的抽象和編程。狀態(tài)模式
狀態(tài)模式允許對(duì)象在內(nèi)部狀態(tài)發(fā)生改變時(shí)改變其行為,通常作為條件、分支語(yǔ)句的代替,用于行為隨狀態(tài)的改變而改變的場(chǎng)景。備忘錄模式
在不破壞封裝的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài),并在該對(duì)象之外保存這個(gè)狀態(tài),在需要時(shí)將對(duì)象恢復(fù)到原先保存的狀態(tài),屬于行為型模式。13.1.2
基于狀態(tài)和表驅(qū)動(dòng)的構(gòu)造技術(shù)基于表驅(qū)動(dòng)的構(gòu)造技術(shù)將代碼中復(fù)雜的if-else和switch-case邏輯語(yǔ)句從代碼中分離出來(lái),通過(guò)“查表”的方式完成選擇,從而提高代碼的可維護(hù)性。構(gòu)造技術(shù)核心思想直接訪問(wèn)表通過(guò)訪問(wèn)數(shù)組下標(biāo)的方式,在表中獲取需要的數(shù)據(jù)信息,它取代了更復(fù)雜的邏輯控制結(jié)構(gòu),無(wú)需經(jīng)過(guò)任何復(fù)雜的步驟就可以在表中找到所需信息。索引訪問(wèn)表采用索引訪問(wèn)表時(shí),可以先采用一個(gè)基本數(shù)據(jù)類型的數(shù)據(jù)從索引表中查出鍵值,然后再利用這一鍵值查找相應(yīng)的主數(shù)據(jù)。階梯訪問(wèn)表表中的記錄對(duì)不同的數(shù)據(jù)范圍有效,而不適用于不同的數(shù)據(jù)點(diǎn)。13.1.3
基于復(fù)用的構(gòu)造技術(shù)軟件復(fù)用在不同的軟件開(kāi)發(fā)過(guò)程中重復(fù)使用之前軟件產(chǎn)品中相同或相近的軟件或軟件模塊的過(guò)程??梢詮?fù)用的軟件產(chǎn)品:代碼(可執(zhí)行代碼、源代碼復(fù)用)、設(shè)計(jì)文件、測(cè)試數(shù)據(jù)和需求規(guī)格書等?;趶?fù)用的軟件開(kāi)發(fā)改善了傳統(tǒng)的軟件開(kāi)發(fā)過(guò)程和技術(shù),但仍要把用戶需求轉(zhuǎn)換為需求規(guī)格說(shuō)明書,不同的是要按照可復(fù)用構(gòu)件及當(dāng)前開(kāi)發(fā)任務(wù)中的用戶需求修改說(shuō)明書,需明確:必須有可復(fù)用的軟構(gòu)件;被復(fù)用的軟構(gòu)件必須是有用的;相關(guān)人員需要明確如何使用被復(fù)用的軟構(gòu)件。13.1.3
基于復(fù)用的構(gòu)造技術(shù)程序庫(kù)一些經(jīng)常使用的、經(jīng)過(guò)檢驗(yàn)的規(guī)范化程序或子程序的集合,如基礎(chǔ)數(shù)學(xué)函數(shù)、字符串處理、輸入/輸出處理及數(shù)據(jù)庫(kù)操作、密碼安全等,是最基本、最普通的軟件復(fù)用形式。模式設(shè)計(jì)與框架開(kāi)發(fā)模式是程序員在設(shè)計(jì)一個(gè)軟件或系統(tǒng)時(shí)解決共同問(wèn)題的最佳實(shí)踐的描述,是一種樣板,可以在很多不同場(chǎng)合解決類似或同樣的問(wèn)題。在某些情況下,模式本身可能不足以開(kāi)發(fā)一個(gè)完整的設(shè)計(jì),還需要為設(shè)計(jì)工作提供相關(guān)的架構(gòu)基礎(chǔ)設(shè)施,即框架。基礎(chǔ)設(shè)施框架中間件框架:Tomcat、Apache等應(yīng)用框架:Android應(yīng)用框架和Web應(yīng)用框架Struts等13.2模塊化軟件構(gòu)造13.2.1模塊化設(shè)計(jì)理論模塊化設(shè)計(jì)是指在對(duì)一定范圍內(nèi)的不同功能或相同功能不同性能、不同規(guī)格的產(chǎn)品進(jìn)行功能分析的基礎(chǔ)上,劃分并設(shè)計(jì)出一系列功能模塊,通過(guò)模塊的選擇和組合構(gòu)成不同的產(chǎn)品,以滿足市場(chǎng)的不同需求的設(shè)計(jì)方法。模塊的獨(dú)立程度可以從兩個(gè)方面來(lái)進(jìn)行度量——內(nèi)聚性和耦合性。13.2模塊化軟件構(gòu)造偶然內(nèi)聚邏輯內(nèi)聚時(shí)間內(nèi)聚過(guò)程內(nèi)聚通信內(nèi)聚外部耦合控制耦合標(biāo)記耦合數(shù)據(jù)耦合無(wú)直接耦合內(nèi)聚性耦合性盡量使用順序內(nèi)聚功能內(nèi)聚低內(nèi)聚中內(nèi)聚高內(nèi)聚公共環(huán)境耦合內(nèi)容耦合限制完全不用減少使用13.2模塊化軟件構(gòu)造13.2.2數(shù)據(jù)結(jié)構(gòu)與算法數(shù)據(jù)結(jié)構(gòu)是帶有結(jié)構(gòu)特性的數(shù)據(jù)元素的集合,它研究的是數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)以及它們之間的相互關(guān)系,并對(duì)這種結(jié)構(gòu)定義相適應(yīng)的操作,設(shè)計(jì)相應(yīng)的算法,確保經(jīng)過(guò)這些操作得到的新數(shù)據(jù)結(jié)構(gòu)仍然保持原有的結(jié)構(gòu)類型。數(shù)據(jù)結(jié)構(gòu)邏輯結(jié)構(gòu):集合、線性結(jié)構(gòu)、樹(shù)形結(jié)構(gòu)、圖形結(jié)構(gòu)物理結(jié)構(gòu):順序、鏈接、索引、散列等13.2模塊化軟件構(gòu)造13.2.2數(shù)據(jù)結(jié)構(gòu)與算法算法是指問(wèn)題解決方案的準(zhǔn)確而完整的描述,是一系列解決問(wèn)題的清晰指令,算法代表著用系統(tǒng)的方法描述解決問(wèn)題的策略機(jī)制。有窮性
確切性
輸入項(xiàng)
輸出項(xiàng)
可行性
一種數(shù)據(jù)結(jié)構(gòu)對(duì)應(yīng)一種算法:計(jì)算樹(shù)高度的算法只對(duì)樹(shù)結(jié)構(gòu)有意義。一種數(shù)據(jù)結(jié)構(gòu)對(duì)應(yīng)多種算法:如果數(shù)據(jù)結(jié)構(gòu)是數(shù)組的形式,那么支持的算法包括排序算法、查找算法、圖類算法等。多種數(shù)據(jù)結(jié)構(gòu)對(duì)應(yīng)一種算法:折半查找支持的基本數(shù)據(jù)結(jié)構(gòu)有數(shù)組、二叉樹(shù)和鏈表。多種數(shù)據(jù)結(jié)構(gòu)對(duì)應(yīng)多種算法:遍歷類、查找類算法及求最大值均支持?jǐn)?shù)組和二叉樹(shù)這兩種數(shù)據(jù)結(jié)構(gòu)。13.2模塊化軟件構(gòu)造13.2.3軟件測(cè)試與軟件調(diào)試軟件測(cè)試是指對(duì)一個(gè)完成了全部或部分功能的計(jì)算機(jī)程序在正式使用前進(jìn)行檢測(cè),以確保該程序能按預(yù)定的方式正確地運(yùn)行。軟件調(diào)試是指當(dāng)編寫的源程序在編譯過(guò)程中發(fā)現(xiàn)了語(yǔ)法錯(cuò)誤、無(wú)法通過(guò)編譯或者測(cè)試出現(xiàn)錯(cuò)誤后,開(kāi)發(fā)人員要發(fā)現(xiàn)并找出可能出錯(cuò)的語(yǔ)句并改正的過(guò)程。13.3面向?qū)ο蟮能浖?gòu)造技術(shù)13.3.1抽象與封裝抽象是指從眾多的事物中抽取出共同的、本質(zhì)的特征,舍棄其非本質(zhì)的特征,是共同特征的集合形式。封裝是指將對(duì)象運(yùn)行所需的資源(數(shù)據(jù)和方法)封裝在程序?qū)ο笾校梢钥闯墒且粋€(gè)保護(hù)屏障,必須通過(guò)嚴(yán)格的接口控制來(lái)實(shí)現(xiàn)對(duì)代碼和數(shù)據(jù)的訪問(wèn),防止該對(duì)象的代碼和數(shù)據(jù)被外部對(duì)象隨機(jī)訪問(wèn)。抽象數(shù)據(jù)類型是將數(shù)據(jù)對(duì)象、數(shù)據(jù)對(duì)象之間的關(guān)系和數(shù)據(jù)對(duì)象的基本操作封裝在一起的一種表達(dá)方式。
抽象數(shù)據(jù)類型可以用三元組來(lái)表示:
抽象數(shù)據(jù)類型
=(D,S,P)D表示數(shù)據(jù)對(duì)象,S表示數(shù)據(jù)對(duì)象上的關(guān)系,P表示數(shù)據(jù)對(duì)象的基本操作。13.3面向?qū)ο蟮能浖?gòu)造技術(shù)13.3.2面向?qū)ο蟮脑O(shè)計(jì)面向?qū)ο笤O(shè)計(jì)是指運(yùn)用面向?qū)ο蟮姆椒ㄟM(jìn)行系統(tǒng)設(shè)計(jì),其基本出發(fā)點(diǎn)是盡可能地按照人類認(rèn)識(shí)世界的方法和思維方式來(lái)分析和解決問(wèn)題。對(duì)象是人們要進(jìn)行研究的任何事物,它不僅能表示看得見(jiàn)、摸得著的實(shí)物、在特定時(shí)間所發(fā)生的事、人或組織所起的作用,還能表示抽象的規(guī)則、計(jì)劃或性能說(shuō)明。類是指具有相同或相似性質(zhì)對(duì)象的抽象。13.3面向?qū)ο蟮能浖?gòu)造技術(shù)13.3.2面向?qū)ο蟮脑O(shè)計(jì)類之間的關(guān)系繼承聚集和組合依賴關(guān)聯(lián)實(shí)現(xiàn)13.3面向?qū)ο蟮能浖?gòu)造技術(shù)13.3.2面向?qū)ο蟮脑O(shè)計(jì)面向?qū)ο蟮奶卣鲗?duì)象唯一性、分類性、繼承性、多態(tài)性面向?qū)ο笤O(shè)計(jì)的基本原則單一職責(zé)原則開(kāi)放封閉原則迪米特法則接口隔離原則依賴倒置原則組合/聚合復(fù)用原則里氏替換原則13.3面向?qū)ο蟮能浖?gòu)造技術(shù)13.3.2面向?qū)ο蟮脑O(shè)計(jì)面向?qū)ο蟮脑O(shè)計(jì)符號(hào)統(tǒng)一建模語(yǔ)言(UnifiedModelingLanguage,UML)是一種為面向?qū)ο笙到y(tǒng)進(jìn)行說(shuō)明、可視化和編制文檔的一種標(biāo)準(zhǔn)語(yǔ)言,它獨(dú)立于任何具體程序設(shè)計(jì)語(yǔ)言。需求分析階段:描述用戶的需求。系統(tǒng)分析階段:主要關(guān)心問(wèn)題域中的主要概念,如對(duì)象、類以及它們之間的關(guān)系等,需要建立系統(tǒng)的靜態(tài)模型,可用類圖來(lái)描述。系統(tǒng)設(shè)計(jì)階段:為實(shí)現(xiàn)階段提供了更詳細(xì)的設(shè)計(jì)說(shuō)明。編碼階段:把來(lái)自設(shè)計(jì)階段的類轉(zhuǎn)換成某種面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言實(shí)現(xiàn)的代碼。測(cè)試階段:可使用類圖進(jìn)行單元測(cè)試,使用構(gòu)件圖、協(xié)作圖進(jìn)行集成測(cè)試,使用用例圖進(jìn)行確認(rèn)測(cè)試,以驗(yàn)證測(cè)試結(jié)果是否滿足用戶的需求。13.3面向?qū)ο蟮能浖?gòu)造技術(shù)12.3.3測(cè)試和調(diào)試的基本技術(shù)在面向?qū)ο蟮膯卧獪y(cè)試中不僅要發(fā)現(xiàn)類的所有操作中存在的問(wèn)題,還要考查一個(gè)類與其他的類協(xié)同工作時(shí)可能出現(xiàn)的錯(cuò)誤。面向?qū)ο筌浖募蓽y(cè)試需要在整個(gè)程序經(jīng)一定的編譯技術(shù)編譯完成后進(jìn)行,面向?qū)ο蟪绦蚓哂袆?dòng)態(tài)特性,程序的控制流無(wú)法確定,只能對(duì)編譯完成的程序做基于黑盒子的集成測(cè)試。面向?qū)ο筌浖拇_認(rèn)測(cè)試與系統(tǒng)測(cè)試忽略類連接的細(xì)節(jié),主要采用傳統(tǒng)的黑盒測(cè)試對(duì)面向?qū)ο蠓治鲭A段
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- logo保密合同標(biāo)準(zhǔn)文本
- 代工oem合同樣本
- 企業(yè)會(huì)員合同樣本
- 人才引進(jìn)合同樣本
- 二灰碎石采購(gòu)合同樣本
- 一次訂購(gòu)合同樣本
- 京東商城供貨合同樣本
- 供熱項(xiàng)目投資合同樣本
- 美容技術(shù)培訓(xùn)課件
- 會(huì)展大巴租賃合同樣本
- 2024-2025學(xué)年人教新目標(biāo)英語(yǔ)八年級(jí)下冊(cè)期末綜合檢測(cè)卷(含答案)
- 331金屬晶體課件高二化學(xué)人教版選擇性必修2
- 礦山礦石采購(gòu)合同模板
- 2024年浪潮數(shù)字企業(yè)技術(shù)有限公司社會(huì)招聘(105人)筆試核心備考題庫(kù)及答案解析
- 第47屆世界技能大賽江蘇省選拔賽競(jìng)賽技術(shù)文件-混凝土建筑項(xiàng)目
- 2024年新人教版四年級(jí)數(shù)學(xué)下冊(cè)《第6單元第2課時(shí) 小數(shù)加減法》教學(xué)課件
- 國(guó)開(kāi)2024年《數(shù)據(jù)庫(kù)運(yùn)維》形考1-3
- 勞動(dòng)合同(模版)4篇
- 137案例黑色三分鐘生死一瞬間事故案例文字版
- 藥物研發(fā)監(jiān)管的國(guó)際協(xié)調(diào)
- 生豬屠宰獸醫(yī)衛(wèi)生檢驗(yàn)人員理論考試題及答案
評(píng)論
0/150
提交評(píng)論