2020軟考-軟件設(shè)計(jì)師考試知識(shí)點(diǎn)匯總_第1頁(yè)
2020軟考-軟件設(shè)計(jì)師考試知識(shí)點(diǎn)匯總_第2頁(yè)
2020軟考-軟件設(shè)計(jì)師考試知識(shí)點(diǎn)匯總_第3頁(yè)
2020軟考-軟件設(shè)計(jì)師考試知識(shí)點(diǎn)匯總_第4頁(yè)
2020軟考-軟件設(shè)計(jì)師考試知識(shí)點(diǎn)匯總_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

41/412020年軟考軟件設(shè)計(jì)師考試知識(shí)點(diǎn)匯總目錄第一章軟件工程 11.1軟件工程基礎(chǔ)知識(shí) 11.1.1軟件生命周期 11.1.2軟件開發(fā)模型 11.1.3軟件開發(fā)方法 21.1.4軟件項(xiàng)目管理 21.1.5軟件過程管理 31.1.6軟件質(zhì)量管理 41.2系統(tǒng)分析基礎(chǔ)知識(shí) 41.2.1結(jié)構(gòu)化分析方法 41.3系統(tǒng)設(shè)計(jì)基礎(chǔ)知識(shí) 61.4系統(tǒng)實(shí)施基礎(chǔ)知識(shí) 71.5系統(tǒng)運(yùn)行和維護(hù)基礎(chǔ)知識(shí) 8第二章數(shù)據(jù)庫(kù)技術(shù)基礎(chǔ)知識(shí) 82.1數(shù)據(jù)庫(kù)系統(tǒng)的基本概念 82.2數(shù)據(jù)庫(kù)系統(tǒng)的體系結(jié)構(gòu)一三級(jí)結(jié)構(gòu)兩級(jí)映象 92.3數(shù)據(jù)模型 102.4數(shù)據(jù)操作 12第三章操作系統(tǒng)知識(shí) 163.1操作系統(tǒng)的基本概念 163.2進(jìn)程管理 17第四章UML 224.1UML概述 224.1.1UML的主要內(nèi)容 234.1.2UML的特點(diǎn) 254.2通用模型元素 254.2.1常用模型元素 264.2.2關(guān)聯(lián)和鏈 264.2.3關(guān)聯(lián)的表示 264.2.4約束 274.2.6依賴 284.2.7細(xì)化 284.2.8注釋 294.3用例建模 294.3.1用例建模概述 294.3.2用例模型(Usecasemodel) 29第五章專題:計(jì)算機(jī)系統(tǒng)知識(shí) 315.1計(jì)算機(jī)系統(tǒng)結(jié)構(gòu) 315.2存儲(chǔ)器系統(tǒng) 335.3中央處理器CPU 355.4計(jì)算機(jī)總線結(jié)構(gòu) 365.5計(jì)算機(jī)的安全、可靠性評(píng)價(jià)*<軟件設(shè)計(jì)師> 365.6常用算法設(shè)計(jì)方法 37第一章軟件工程1.1軟件工程基礎(chǔ)知識(shí)1.1.1軟件生命周期軟件的生存期劃分為制定計(jì)劃、需求分析、設(shè)計(jì)、編程實(shí)現(xiàn)、測(cè)試、運(yùn)行維護(hù)等幾個(gè)階段,稱為軟件生命周期。1.1.2軟件開發(fā)模型常見的軟件開發(fā)模型有瀑布模型、演化模型、螺旋模型、噴泉模型。1)瀑布模型(WaterfallModel):缺點(diǎn):瀑布模型缺乏靈活性,無(wú)法通過開發(fā)活動(dòng)澄清本來(lái)不夠明確的活動(dòng)。因此,當(dāng)用戶需求比較明確時(shí)才使用此模型。2)演化模型(EvolutionaryMode1):也稱為快速原型模型??焖僭头椒梢钥朔俨寄P偷娜秉c(diǎn),減少由于軟件需求不明確帶來(lái)的開發(fā)風(fēng)險(xiǎn),具有顯著的效果。3)螺旋模型(SpiralModel):將瀑布模型和演化模型相結(jié)合,綜合了瀑布模型和演化模型的優(yōu)點(diǎn),并增加了風(fēng)險(xiǎn)分析。包含4個(gè)方面活動(dòng):制定計(jì)劃:風(fēng)險(xiǎn)分析:實(shí)施工程:客戶評(píng)價(jià):4)噴泉模型(WaterFountainModel):主要用于描述面向?qū)ο蟮拈_發(fā)過程。噴泉一詞體現(xiàn)了面向?qū)ο箝_發(fā)過程的迭代和無(wú)間隙特征。即允許開發(fā)活動(dòng)交叉、迭代地進(jìn)行。5)迭代:模型中的開發(fā)活動(dòng)常常需要重復(fù)多次,在迭代過程中不斷完善軟件系統(tǒng)。無(wú)間隙:指在開發(fā)活動(dòng)(如分析、設(shè)計(jì)、編碼)之間不存在明顯的邊界。6)令V模型(VModel):該模型強(qiáng)調(diào)測(cè)試過程應(yīng)如何與分析、設(shè)計(jì)等過程相關(guān)聯(lián)。7)增量模型(IncrementalMode1):好處是軟件開發(fā)可以較好地適應(yīng)變化,客戶可以不斷地看到所開發(fā)的軟件,從而降低開發(fā)風(fēng)險(xiǎn)。構(gòu)件:是由多種相互作用的模塊所形成的提供特定功能的代碼片段構(gòu)成.1.1.3軟件開發(fā)方法軟件開發(fā)方法是一種使用早己定義好的技術(shù)集及符號(hào)表示習(xí)慣來(lái)組織軟件生產(chǎn)的過程。包括:結(jié)構(gòu)化的方法、Jackson方法、面向?qū)ο箝_發(fā)方法結(jié)構(gòu)化方法的指導(dǎo)思想是自項(xiàng)向下、逐層分解,基本原則是功能的分解與抽象。1)Jackson方法:是面向數(shù)據(jù)結(jié)構(gòu)的開發(fā)方法,包括JSP(JacksonStructureprogramming)和JSD(JacksonSystemDevelopment)2)面向?qū)ο蠓椒ǎ菏且詫?duì)象為最基本的元素,對(duì)象也是分析問題和解決問題的核心。開發(fā)方法包括:面向?qū)ο蠓治?、面向?qū)ο笤O(shè)計(jì)、面向?qū)ο髮?shí)現(xiàn)。面向?qū)ο箝_發(fā)方法有Booch方法、Coad方法和OMT方法等。為了統(tǒng)一各種面向?qū)ο蠓椒ǖ男g(shù)語(yǔ)、概念和模型,1997年推出了統(tǒng)一建模語(yǔ)言——UML(UnifiedModelingLanguage),它有標(biāo)準(zhǔn)的建模語(yǔ)言,通過統(tǒng)一的語(yǔ)義和符號(hào)表示。1.1.4軟件項(xiàng)目管理軟件項(xiàng)目管理包括:成本估計(jì)、風(fēng)險(xiǎn)分析、進(jìn)度管理、人員管理。成本估算方法:有自頂向下估算法、專家估算法……成本估算模型:IBM模型、Putnam模型、COCOMO模型。風(fēng)險(xiǎn)分析包括4種風(fēng)險(xiǎn)評(píng)估活動(dòng):風(fēng)險(xiǎn)識(shí)別:建立風(fēng)險(xiǎn)概念的尺度。試圖系統(tǒng)化確定對(duì)項(xiàng)目計(jì)劃(估算、進(jìn)度、資源分配)的威脅。(一個(gè)方法是建立風(fēng)險(xiǎn)條目檢查表。該風(fēng)險(xiǎn)表可以用于識(shí)別風(fēng)險(xiǎn),并使得人們集中來(lái)識(shí)別下列常見的、已知的及可預(yù)測(cè)的風(fēng)險(xiǎn))風(fēng)險(xiǎn)預(yù)測(cè):描述風(fēng)險(xiǎn)引起的后果。確定風(fēng)險(xiǎn)發(fā)生的可能性或概率以及如果風(fēng)險(xiǎn)發(fā)生了所產(chǎn)生的后果。風(fēng)險(xiǎn)評(píng)估:估計(jì)風(fēng)險(xiǎn)影響的大小。風(fēng)險(xiǎn)控制:確定風(fēng)險(xiǎn)估計(jì)的正確性。輔助項(xiàng)目組建立處理風(fēng)險(xiǎn)的策略。進(jìn)度管理:就是對(duì)軟件開發(fā)進(jìn)度的合理安排,它是如期完成軟件項(xiàng)目的重要保證,也是合理分配資源的重要保證。進(jìn)度安排的常用描述方法有:甘特圖(Gantt圖)、計(jì)劃評(píng)審技術(shù)圖(PERT圖)、關(guān)鍵路徑法(CPM圖)。CPM和PERT的區(qū)別是:CPM是以經(jīng)驗(yàn)數(shù)據(jù)為基礎(chǔ)來(lái)確定各項(xiàng)工作的時(shí)間,而PERT則把各項(xiàng)工作的時(shí)間作為隨機(jī)變量來(lái)處理。所以,前者往往被稱為肯定型網(wǎng)絡(luò)計(jì)劃技術(shù),而后者往往被稱為非肯定型網(wǎng)絡(luò)計(jì)劃技術(shù)。前者是以縮短時(shí)間、提高投資效益為目的,而后者則能指出縮短時(shí)間、節(jié)約費(fèi)用的關(guān)鍵所在。1.1.5軟件過程管理軟件過程:人們用于開發(fā)和維護(hù)軟件及其相關(guān)產(chǎn)品(項(xiàng)目計(jì)劃、設(shè)計(jì)文檔、代碼、測(cè)試用例、用戶手冊(cè)等)的一系列活動(dòng)、包括軟件工程活動(dòng)和軟件管理活動(dòng),其中必然涉及相關(guān)的方法和技術(shù)。軟件能力成熟度模型(CMM)統(tǒng)一軟件開發(fā)過程(RUP)極限編程(XP)軟件能力成熟度模型(CapabilityMaturityMode1,簡(jiǎn)稱CMM)軟件過程能力——描述(開發(fā)組織和項(xiàng)目組)通過遵循其軟件過程能夠?qū)崿F(xiàn)預(yù)期結(jié)果的程度。軟件能力成熟度———一個(gè)特定軟件過程被明確和有效地定義、管理、測(cè)量及控制的程度。成熟度可指明一個(gè)軟件開發(fā)組織軟件過程的能力的增長(zhǎng)潛力。CMM模型將軟件過程能力成熟度劃分為5個(gè)級(jí)別:(1)初始級(jí)(2)可重復(fù)級(jí)(3)已定義級(jí)(4)已管理級(jí)(5)優(yōu)化級(jí)RUP(RationalUnifiedProcess,統(tǒng)一軟件開發(fā)過程,統(tǒng)一軟件過程):是一個(gè)面向?qū)ο笄一诰W(wǎng)絡(luò)的程序開發(fā)方法論。RUP好像一個(gè)在線的指導(dǎo)者,它可以為所有方面和層次的程序開發(fā)提供指導(dǎo)方針,模版以及事例支持。軟件工程過程定義誰(shuí)在做什么、怎么做以及什么時(shí)候做,RUP用四個(gè)主要的建模元素表達(dá):角色(Workers)——“誰(shuí)”;活動(dòng)(Activities)——“怎么做”;產(chǎn)品(工件)(Artifacts)——“做什么”;工作流(Workflows)——“什么時(shí)候做”角色:它定義的是所執(zhí)行的一組活動(dòng)和所擁有的一組文檔與模型。是抽象的職責(zé)定義,描述某個(gè)人或者一個(gè)小組的行為與職責(zé)。角色并不代表個(gè)人,而是說明個(gè)人在業(yè)務(wù)中應(yīng)該如何表現(xiàn)以及他們應(yīng)該承擔(dān)的責(zé)任。RUP預(yù)先定義了很多角色:>分析員角色集:分析員角色集用于組織主要從事需求獲取和研究的各種角色>開發(fā)角色集:開發(fā)人員角色集用于組織主要從事軟件設(shè)計(jì)與開發(fā)的各種角色。>測(cè)試員角色集:測(cè)試員角色集用于組織主要從事軟件測(cè)試的各種角色。>經(jīng)理角色集:經(jīng)理角色集用于組織主要從事軟件工程流程的管理與配置的各種角色?;顒?dòng):是一個(gè)有明確目的的獨(dú)立工作單元。即承擔(dān)這一角色的人必須完成的一組工作。產(chǎn)品(工件):產(chǎn)品是一個(gè)過程所生產(chǎn)、修改或使用的一段信息。產(chǎn)品是項(xiàng)目切實(shí)的成果,是項(xiàng)目為生產(chǎn)出最終的產(chǎn)品而制造或使用的東西。產(chǎn)品可以具有不同的形式,如:模型,如用例模型或設(shè)計(jì)模型;模型元素,如類,用例或子系統(tǒng);文檔,如商業(yè)用例或軟件體系結(jié)構(gòu)文檔;源代碼;可執(zhí)行程序。工作流:僅僅把所有的角色、活動(dòng)和產(chǎn)品都列舉出來(lái)還不能夠組成過程,另外還需要一種有效的方式,把產(chǎn)生有價(jià)值結(jié)果的活動(dòng)序列描述出來(lái),并顯示角色之間的交互。工作流是一個(gè)產(chǎn)生具有可觀察的結(jié)果活動(dòng)序列。UML中,可以用一個(gè)序列圖、協(xié)作圖或活動(dòng)圖來(lái)表示工作流。RUP被劃分為六個(gè)核心“工程”工作流:商業(yè)建模工作流、需求工作流、分析和設(shè)計(jì)工作流、實(shí)現(xiàn)工作流、測(cè)試工作流、展開工作流。RUP把一個(gè)開發(fā)周期劃分為四個(gè)連續(xù)的階段:>初始階段(Inceptionphase):為系統(tǒng)建立商業(yè)用例,確定項(xiàng)目的邊界。一生命周期目標(biāo)里程碑。>精化階段(Elaborationphase):分析問題領(lǐng)域,建立一個(gè)健全的體系結(jié)構(gòu)基礎(chǔ),編制項(xiàng)目規(guī)劃,淘汰項(xiàng)目中風(fēng)險(xiǎn)最高的元素?!芷隗w系結(jié)構(gòu)里程碑。>構(gòu)造階段(Constructionphase):將開發(fā)所有剩余的構(gòu)件和應(yīng)用部件,對(duì)它們進(jìn)行測(cè)試,并集成到產(chǎn)品中?!跏歼\(yùn)行能力里程碑。>移交階段(Transitionphase):把軟件產(chǎn)品交付給用戶群。一—產(chǎn)品發(fā)布里程碑。1.1.6軟件質(zhì)量管理軟件質(zhì)量是指反映軟件系統(tǒng)或軟件產(chǎn)品滿足規(guī)定或隱含需求的能力的特征和特性全體。軟件質(zhì)量保證是指為軟件系統(tǒng)或軟件產(chǎn)品充分滿足用戶要求的質(zhì)量而進(jìn)行的有計(jì)劃、有組織的活動(dòng),其目的是產(chǎn)生質(zhì)量的軟件。軟件質(zhì)量模型:ISO/IEC9126軟件質(zhì)量模型McCal1軟件質(zhì)量模型1.2系統(tǒng)分析基礎(chǔ)知識(shí)1.2.1結(jié)構(gòu)化分析方法數(shù)據(jù)流圖(DataFlowDiagram,DFD):數(shù)據(jù)流圖就是組織中信息運(yùn)動(dòng)的抽象,是信息系統(tǒng)邏輯模型的主要形式。它是一種便于用戶理解、分析系統(tǒng)數(shù)據(jù)流程的圖形工具。數(shù)據(jù)流圖的基本組成及符號(hào)>外部項(xiàng)(外部實(shí)體):外部項(xiàng)在數(shù)據(jù)流圖中表示所描述系統(tǒng)的數(shù)據(jù)來(lái)源和去處的各種實(shí)體或工作環(huán)節(jié)。系統(tǒng)開發(fā)不能改變這些外部項(xiàng)本身的結(jié)構(gòu)和固有屬性。>加工(數(shù)據(jù)加工):又稱數(shù)據(jù)處理邏輯,描述系統(tǒng)對(duì)信息進(jìn)行處理的邏輯功能。>數(shù)據(jù)存儲(chǔ):邏輯意義上的數(shù)據(jù)存儲(chǔ)環(huán)節(jié),即系統(tǒng)信息處理功能需要的、不考慮存儲(chǔ)物理介質(zhì)和技術(shù)手段的數(shù)據(jù)存儲(chǔ)環(huán)節(jié)。>數(shù)據(jù)流:與所描述系統(tǒng)信息處理功能有關(guān)的各類信息的載體,是各加工環(huán)節(jié)進(jìn)行處理和輸出的數(shù)據(jù)集合。常用三類數(shù)據(jù)流圖基本成分的符號(hào):繪制數(shù)據(jù)流圖的幾點(diǎn)注記:1.關(guān)于自項(xiàng)向下、逐層分解2.數(shù)據(jù)流必須通過加工,即送去加工或從加工環(huán)節(jié)發(fā)出。3.數(shù)據(jù)存儲(chǔ)環(huán)節(jié)一般作為兩個(gè)加工環(huán)節(jié)的界面。4.命名>名稱要反映被命名的成分的真實(shí)和全部的意義;>名稱要意義明確,易理解,無(wú)歧義;>進(jìn)出數(shù)據(jù)存儲(chǔ)環(huán)節(jié)的數(shù)據(jù)流如內(nèi)容和存貯者的數(shù)據(jù)相同,可采用同一名稱。5.編號(hào)每個(gè)數(shù)據(jù)加工環(huán)節(jié)和每張數(shù)據(jù)流圖都要編號(hào)。按逐層分解的原則,父圖與子圖的編號(hào)要有一致性,一般子圖的圖號(hào)是父圖上對(duì)應(yīng)的加工的編號(hào)。類似地,在分層數(shù)據(jù)流圖中,如下層圖上的數(shù)據(jù)流或數(shù)據(jù)存儲(chǔ)是由上層圖某個(gè)成分的分解而得,則父項(xiàng)與子項(xiàng)的編號(hào)要體現(xiàn)數(shù)據(jù)流圖分解的完整性與一致性的原則,如父項(xiàng)編號(hào)為F1或D1,則其子項(xiàng)分別為Fl.1,F(xiàn)l.2,…,或D1.1,D1.2,…等。1.3系統(tǒng)設(shè)計(jì)基礎(chǔ)知識(shí)耦合:系統(tǒng)內(nèi)不同模塊之間互連程度的度量。塊間耦合強(qiáng)弱取決于模塊間聯(lián)系形式及接口的復(fù)雜程度。模塊間接口的復(fù)雜性越高,說明耦合的程度也越高。>數(shù)據(jù)耦合:如果兩個(gè)模塊彼此間通過數(shù)據(jù)交換信息,而且每一個(gè)參數(shù)僅僅為數(shù)據(jù),那么這種塊間耦合稱之為數(shù)據(jù)耦合。>控制耦合:如果兩個(gè)模塊彼此間傳遞的信息中有控制信息,那么這種塊間耦合稱為控制耦合。>公共耦合:如果兩個(gè)模塊彼此之間通過一個(gè)公共的數(shù)據(jù)區(qū)域傳遞信息時(shí),則稱之為公共耦合或公共數(shù)據(jù)域耦合。>內(nèi)容耦合:如果一個(gè)模塊需要涉及另一個(gè)模塊的內(nèi)部信息時(shí),則這種聯(lián)系稱為內(nèi)容耦合。內(nèi)聚:模塊內(nèi)部元素的聯(lián)系方式,塊內(nèi)聯(lián)系標(biāo)志一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度,主要表現(xiàn)在模塊內(nèi)部各個(gè)元素為了執(zhí)行某一功能而結(jié)合在一起的程度。>偶然內(nèi)聚:如果一個(gè)模塊所要完成的動(dòng)作之間沒有任何關(guān)系,或者即使有某種關(guān)系,也是非常松散的,就稱之為偶然組合。>邏輯內(nèi)聚:如果一個(gè)模塊內(nèi)部的各個(gè)組成部分在邏輯上具有相似的處理動(dòng)作,但功能上、用途上卻彼此無(wú)關(guān),則稱之為邏輯組合。>時(shí)間內(nèi)聚:如果一個(gè)模塊內(nèi)部的各個(gè)組成部分所包含的處理動(dòng)作必須在同一時(shí)間內(nèi)執(zhí)行,則稱之為時(shí)間組合。>過程內(nèi)聚:如果一個(gè)模塊內(nèi)部的各個(gè)組成部分所要完成的動(dòng)作彼此間沒什么關(guān)系,但必須以特定的次序(控制流)執(zhí)行,則稱之為過程組合。>通信內(nèi)聚:如果一個(gè)模塊內(nèi)部的各個(gè)組成部分所完成的動(dòng)作都使用了同一個(gè)輸入數(shù)據(jù)或產(chǎn)生同一個(gè)輸出數(shù)據(jù),則稱之為通信組合。>順序內(nèi)聚:對(duì)于一個(gè)模塊內(nèi)部的各個(gè)組成部分,如果前一部分處理動(dòng)作的輸出是后一部分處理動(dòng)作的輸入,則稱之為順序組合。>功能內(nèi)聚:如果一個(gè)模塊內(nèi)部的各個(gè)組成部分全部為執(zhí)行同一功能而合成為一個(gè)整體,則稱之為功能組合方式的模塊。1.4系統(tǒng)實(shí)施基礎(chǔ)知識(shí)一、系統(tǒng)測(cè)試系統(tǒng)測(cè)試:是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程系統(tǒng)測(cè)試的目的:系統(tǒng)測(cè)試是以找錯(cuò)誤為目的,我們不是要證明程序無(wú)錯(cuò),而是要精心選取那些易于發(fā)生錯(cuò)誤的測(cè)試數(shù)據(jù),以十分挑剔的態(tài)度,去尋找程序的錯(cuò)誤。測(cè)試過程:1.制定測(cè)試計(jì)劃2.編制測(cè)試大綱3.根據(jù)測(cè)試大綱設(shè)計(jì)和生成測(cè)試用例4.實(shí)施測(cè)試5.生成測(cè)試報(bào)告系統(tǒng)測(cè)試的方法:1.靜態(tài)測(cè)試:被測(cè)程序不在機(jī)器上運(yùn)行,而是采用人工檢測(cè)和計(jì)算機(jī)輔助靜態(tài)分析的手段對(duì)程序進(jìn)行檢測(cè)。2.動(dòng)態(tài)測(cè)試:通過運(yùn)行程序發(fā)現(xiàn)錯(cuò)誤。有黑盒測(cè)試法和白盒測(cè)試法。系統(tǒng)測(cè)試的步驟:?jiǎn)卧獪y(cè)試:程序中的一個(gè)模塊或一個(gè)子程序,是程序設(shè)計(jì)的最小單元,是程序最小的獨(dú)立編譯單位。>集成測(cè)試(組裝測(cè)試):在每個(gè)模塊完成了單元測(cè)試以后,需要按照設(shè)計(jì)時(shí)作出的層次模塊圖把它們連接起來(lái),進(jìn)行組裝測(cè)試。>確認(rèn)測(cè)試:經(jīng)過組裝測(cè)試,軟件已裝配完畢,接下來(lái)進(jìn)行的確認(rèn)測(cè)試和系統(tǒng)測(cè)試將是以整個(gè)軟件做為測(cè)試對(duì)象,且采用黑盒測(cè)試方法。>系統(tǒng)測(cè)試:將信息系統(tǒng)的所有組成部分包括軟件、硬件、用戶以及環(huán)境等綜合在一起進(jìn)行測(cè)試,以保證系統(tǒng)的各組成部分協(xié)調(diào)運(yùn)行。1.5系統(tǒng)運(yùn)行和維護(hù)基礎(chǔ)知識(shí)系統(tǒng)可維護(hù)性概念:維護(hù)人員理解、改正、改動(dòng)和改進(jìn)這個(gè)軟件的難易程度。系統(tǒng)的可維護(hù)性的評(píng)價(jià)指標(biāo):可理解性、可測(cè)試性、可修改性。系統(tǒng)維護(hù)的內(nèi)容和類型:硬件維護(hù)、軟件維護(hù)、數(shù)據(jù)維護(hù)。軟件維護(hù):根據(jù)需求變化或硬件環(huán)境的變化對(duì)應(yīng)用程序進(jìn)行部分或全部修改。軟件維護(hù)包括:>正確性維護(hù):改正在系統(tǒng)開發(fā)階段已發(fā)生而系統(tǒng)測(cè)試階段尚未發(fā)現(xiàn)的錯(cuò)誤。占整個(gè)維護(hù)工作量的17%-20%。>適應(yīng)性維護(hù):使應(yīng)用軟件適應(yīng)信息技術(shù)變化和管理需求變化而進(jìn)行的修改。占整個(gè)維護(hù)工作量的18%-25%。>完善性維護(hù):為擴(kuò)充功能和改善性能而進(jìn)行的修改,主要是對(duì)已有的軟件系統(tǒng)增加一些在系統(tǒng)分析和設(shè)計(jì)階段中沒有規(guī)定的功能與性能特征。占整個(gè)維護(hù)工作量的50%-60%。>預(yù)防性維護(hù):為改進(jìn)應(yīng)用軟件的可靠性和可維護(hù)性,為了使用硬件環(huán)境的變化,主動(dòng)增加預(yù)防性的新的功能,以使應(yīng)用系統(tǒng)適應(yīng)各類變化而不被淘汰。占整個(gè)維護(hù)工作量的4%左右。第二章數(shù)據(jù)庫(kù)技術(shù)基礎(chǔ)知識(shí)2.1數(shù)據(jù)庫(kù)系統(tǒng)的基本概念DB、DBMS和DBS的定義>DB(數(shù)據(jù)庫(kù)):是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織的、統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。>DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng)):是數(shù)據(jù)庫(kù)系統(tǒng)中管理數(shù)據(jù)的軟件系統(tǒng)。位于用戶與操作系統(tǒng)之間的一層管理軟件。>DBS(數(shù)據(jù)庫(kù)管理系統(tǒng)):在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng)。是數(shù)據(jù)庫(kù)、硬件、軟件、數(shù)據(jù)庫(kù)管理員及用戶的集合。數(shù)據(jù)庫(kù)管理系統(tǒng)的功能1、數(shù)據(jù)庫(kù)的定義功能:DBAS提供數(shù)據(jù)定義語(yǔ)言(DDL)定義數(shù)據(jù)庫(kù)的三級(jí)結(jié)構(gòu),兩級(jí)映象,定義數(shù)據(jù)2、數(shù)據(jù)庫(kù)的操作:DBMS提供數(shù)據(jù)操作語(yǔ)言(DML)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的操作?;緮?shù)據(jù)操作有:檢索(查詢)、和更新(插入、刪除、修改)。3、數(shù)據(jù)庫(kù)的保護(hù)功能:DBMS對(duì)數(shù)據(jù)的保護(hù)主要通過四個(gè)方面實(shí)現(xiàn),因而DBIS中包括四個(gè)子系統(tǒng)。>數(shù)據(jù)庫(kù)恢復(fù)>數(shù)據(jù)庫(kù)的并發(fā)控制>數(shù)據(jù)庫(kù)的完整性控制>數(shù)據(jù)庫(kù)的安全性控制4、數(shù)據(jù)庫(kù)存儲(chǔ)管理DBMS的存儲(chǔ)管理子系統(tǒng)提供了數(shù)據(jù)庫(kù)中數(shù)據(jù)和應(yīng)用程序的一個(gè)界面,DBMS存儲(chǔ)管理子系統(tǒng)的職責(zé)是把各種DML語(yǔ)句轉(zhuǎn)換成底層的與磁盤中數(shù)據(jù)打交道的操作系統(tǒng)的文件系統(tǒng)命令,起到數(shù)據(jù)的存儲(chǔ)、檢索和更新的作用。5.數(shù)據(jù)庫(kù)的維護(hù)功能:數(shù)據(jù)裝載程序、備份程序、文件重組織程序、性能監(jiān)控程序6.數(shù)據(jù)字典(DD)數(shù)據(jù)庫(kù)系統(tǒng)中存放三級(jí)結(jié)構(gòu)定義的數(shù)據(jù)庫(kù)稱為數(shù)據(jù)字典。對(duì)數(shù)據(jù)庫(kù)的操作都要通過訪問DD才能實(shí)現(xiàn)。DD中還存放數(shù)據(jù)庫(kù)運(yùn)行的統(tǒng)計(jì)信息,例如記錄個(gè)數(shù)、訪問次數(shù)等。2.2數(shù)據(jù)庫(kù)系統(tǒng)的體系結(jié)構(gòu)一三級(jí)結(jié)構(gòu)兩級(jí)映象三級(jí)結(jié)構(gòu):外模式、概念模式、內(nèi)模式兩級(jí)映象:外模式/模式映象、模式/內(nèi)模式映象三級(jí)結(jié)構(gòu):>外模式:?jiǎn)蝹€(gè)用戶使用到的那部分?jǐn)?shù)據(jù)的描述。>概念模式:是用戶定義的數(shù)據(jù)庫(kù)中全部數(shù)據(jù)邏輯結(jié)構(gòu)的描述。>內(nèi)模式:是數(shù)據(jù)庫(kù)在物理存儲(chǔ)方面的描述,接近于物理存儲(chǔ)設(shè)備,涉及到實(shí)際數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)。兩級(jí)映象:>模式/內(nèi)模式映象:存在于概念級(jí)和內(nèi)部級(jí)之間,用于定義概念模式和內(nèi)模式之間的對(duì)應(yīng)性。>外模式/模式映象:存在于外部級(jí)和概念級(jí)之間,用于定義外模式和概念模式之間的對(duì)應(yīng)性。兩級(jí)數(shù)據(jù)獨(dú)立性數(shù)據(jù)獨(dú)立性是指應(yīng)用程序和數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)之間相互獨(dú)立,不受影響。分成物理數(shù)據(jù)獨(dú)立性和邏輯數(shù)據(jù)獨(dú)立性兩個(gè)級(jí)別。>物理數(shù)據(jù)獨(dú)立性:數(shù)據(jù)的內(nèi)模式修改,模式/內(nèi)模式也要進(jìn)行相應(yīng)的修改,但概念模式盡可能保持不變。>邏輯數(shù)據(jù)獨(dú)立性:數(shù)據(jù)的概念模式修改,外模式/模式也要進(jìn)行相應(yīng)的修改,但外模式盡可能保持不變。2.3數(shù)據(jù)模型數(shù)據(jù)模型:表示實(shí)體類型及實(shí)體間聯(lián)系的模型.根據(jù)模型應(yīng)用的不同目的可以將模型化分為概念數(shù)據(jù)模型和結(jié)構(gòu)數(shù)據(jù)模型。概念模型:ER模型(實(shí)體聯(lián)系模型)實(shí)體間的聯(lián)系:實(shí)體集內(nèi)部以及實(shí)體集的聯(lián)系。包括一對(duì)一的聯(lián)系、一對(duì)多的聯(lián)系、多對(duì)多的聯(lián)系。描述實(shí)體間聯(lián)系的模型稱為實(shí)體聯(lián)系模型簡(jiǎn)稱ER模型。結(jié)構(gòu)數(shù)據(jù)模型:層次模型、網(wǎng)狀模型、關(guān)系模型層次模型:用樹型結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型。網(wǎng)狀模型:用有向圖表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型。關(guān)系模型:用二維表格結(jié)構(gòu)表達(dá)實(shí)體間的聯(lián)系的數(shù)據(jù)模型關(guān)系模型中的基本術(shù)語(yǔ):關(guān)系:二維的數(shù)據(jù)表,它描述了實(shí)體之間的聯(lián)系;元組(實(shí)體):數(shù)據(jù)表中的每一行表示一個(gè)實(shí)體;屬性(字段):數(shù)據(jù)表中的每一列;域:屬性的取值范圍。關(guān)系模式:對(duì)關(guān)系的描述稱為關(guān)系模式。關(guān)系名(屬性名1,屬性名2,…,屬性名n)超鍵(超碼):在關(guān)系模式中,能唯一標(biāo)識(shí)元組的屬性集。這個(gè)屬性集可能含有多余的屬性。候選鍵(候選碼):能唯一標(biāo)識(shí)元組,且又不含有多余的屬性一個(gè)屬性集,即超鍵中刪除多余屬性剩下的屬性集。主鍵(主碼):從候選鍵中選擇一個(gè)作為關(guān)系模式中用戶使用的候選鍵稱為主鍵。主屬性:包含在任何候選鍵中的屬性稱為主屬性。不包含在任何候選鍵中的屬性稱為非主屬性。外鍵(外碼):當(dāng)關(guān)系R中的某個(gè)屬性(或?qū)傩越M)雖然不是該關(guān)系的碼,但卻是另一個(gè)關(guān)系S的碼,稱該屬性(或?qū)傩越M)為R關(guān)系的外鍵。全鍵(全碼):關(guān)系模型中所有屬性都是這個(gè)關(guān)系的關(guān)鍵字關(guān)系模型的完整性約束(數(shù)據(jù)完整性)用來(lái)確保數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性和可靠性。數(shù)據(jù)完整性包括:>實(shí)體完整性:主鍵的取值必須唯一,并且不能為空。>域完整性:保證數(shù)據(jù)的取值在有效的范圍內(nèi)。>參照完整性:參照完整性是通過主鍵和外鍵來(lái)保證相關(guān)聯(lián)的表間數(shù)據(jù)保持一致,避免因一個(gè)表的數(shù)據(jù)修改,而導(dǎo)致關(guān)聯(lián)生效。2.4數(shù)據(jù)操作關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)操作語(yǔ)言(DML)的語(yǔ)句分成查詢語(yǔ)句和更新語(yǔ)句兩大類。查詢語(yǔ)句用于描述用戶的各種檢索要求;更新語(yǔ)句用于描述用戶進(jìn)行插入、刪除、修改等操作。關(guān)系查詢語(yǔ)言根據(jù)其理論基礎(chǔ)的不同分成兩大類:關(guān)系代數(shù)語(yǔ)言:查詢操作是以集合操作為基礎(chǔ)的DML語(yǔ)言。關(guān)系演算語(yǔ)言:查詢操作是以謂詞演算為基礎(chǔ)的DML語(yǔ)言。·關(guān)系代數(shù)◆關(guān)系代數(shù)的五個(gè)基本操作-—并、差、笛卡爾積、投影、選擇◆關(guān)系代數(shù)的四個(gè)組合操作——交、聯(lián)接、自然連接、除法·關(guān)系演算◆元組關(guān)系演算域◆關(guān)系演算關(guān)系代數(shù)的五個(gè)基本操作:(1)并(Union):形式定義如下:R∪S≡{t|t∈R∨t∈S},t是元組變量,R和S的元數(shù)相同。(2)差(Difference):形式定義如下:R-S≡{t|t∈R∧t∈S},R和S的元數(shù)相同。(3)笛卡爾積:形式定義如下:R×S≡{t|t=<tr,ts>∧tr∈R∧ts∈S},若R有m個(gè)元組,S有n個(gè)元組,則R×S有m×n個(gè)元組。(4)投影(Projection):這個(gè)操作是對(duì)一個(gè)關(guān)系進(jìn)行垂直分割,消去某些列,并重新安排列的順序。形式定義如下:πi1,…,im(R)≡{t|t=〈ti1,…,tim〉∧〈t1,…,tk〉∈R}(5)選擇(Selection):選擇操作是根據(jù)某些條件對(duì)關(guān)系做水平分割,即選取符合條件的元組。形式定義如下:σF(R)={t|t∈R∧F(t)=true}σ為選擇運(yùn)算符,σF(R)表示從R中挑選滿足公式F為真的元組所構(gòu)成的關(guān)系。關(guān)系代數(shù)的四個(gè)組合操作(1)交(intersection):關(guān)系R和S的交是由屬于R又屬于S的元組構(gòu)成的集合,記為R∩S,這里要求R和S定義在相同的關(guān)系模式上。形式定義如下:R∩S≡{t︱t∈R∧t∈S},R和S的元數(shù)相同。(2)連接(join)連接有兩種:θ連接和F連接(3)自然連接(naturaljoin)(4)除法(division)·關(guān)系演算元組關(guān)系演算:在元組關(guān)系演算中,元組關(guān)系演算表達(dá)式簡(jiǎn)稱為元組表達(dá)式,其一般形式為:{t|P(t)},其中,t是元組變量,表示一個(gè)元數(shù)固定的元組;P是公式,在數(shù)理邏輯中也稱為謂詞,也就是計(jì)算機(jī)語(yǔ)言中的條件表達(dá)式。{t|P(t)}表示滿足公式P的所有元組t的集合。在元組表達(dá)式中,公式由原子公式組成。原子公式(Atoms)有下列三種形式:①R(s):s是R的一個(gè)元組。②s[i]θu[j]:元組s的第i個(gè)分量與元組u的第j個(gè)分量之間滿足θ關(guān)系。③s[i]θa或aθu[j]:a是常量。在定義關(guān)系演算操作時(shí),要用到“自由”和“約束”變量概念。在一個(gè)公式中,如果元組變量未用存在量詞?或全稱量詞符號(hào)定義,那么稱為自由元組變量,否則稱為約束元組變量。關(guān)系代數(shù)表達(dá)式到元組表達(dá)式的轉(zhuǎn)換:R∪S可用{t|R(t)∨S(t)}表示;R-S可用{t|R(t)∧┐S(t)}表示;R×S可用{t|(≡u(píng))(≡v)(R(u)∧S(v)∧t[1]=u[1]∧t[2]=u[2]∧t[3]=u[3]∧t[4]=v[1]∧t[5]=v[2]∧t[6]=v[3])}表示。關(guān)系數(shù)據(jù)庫(kù)SQL語(yǔ)言:SQL的數(shù)據(jù)定義、SQL的數(shù)據(jù)查詢、SQL的數(shù)據(jù)更新SQL的數(shù)據(jù)定義——?jiǎng)?chuàng)建表涉及相應(yīng)屬性列的完整性約束條件:>主鍵約束:PRIMARYKEY>檢查約束:CHECK>外鍵約束:FOREIGNKEY>唯一性約束:UNIQUE>是否為空值約束:NULL/NOTNULL>默認(rèn)值:DEFAULTSQL的數(shù)據(jù)查詢數(shù)據(jù)查詢語(yǔ)句基本格式如下:>SELECT<查詢項(xiàng)的列表>>FROM<表名〉>WHERE<條件表達(dá)式>6個(gè)聚合函數(shù):>SUM(列名):求某一列的總和(此列的值必須是數(shù)值型)>AVG(列名):求某一列的平均值(此列的值必須是數(shù)值型)>MIN(列名):求某一列中的最小值>MAX(列名):求某一列中的最大值>COUNT(列名):傳回一列中的非NULL值的個(gè)數(shù)>COUNT(*):傳回符合查詢條件的元組的個(gè)數(shù)ORDERBY子句—對(duì)查詢的結(jié)果進(jìn)行排序SELECT語(yǔ)句中可以使用ORDERBY子句對(duì)查詢的結(jié)果進(jìn)行排序,帶ASC參數(shù)時(shí)為升序,帶DESC參數(shù)時(shí)為降序,不待任何參數(shù)時(shí)為默認(rèn)方式——升序。SELECT<查詢項(xiàng)的列表>FROM<表名>WHERE<條件表達(dá)式)ORDERBY<排序表達(dá)式》[ASC|DESC]GROUPBY子句、HAVING子句一—按條件分類統(tǒng)計(jì)在SELECT語(yǔ)句中可以使用GROUPBY子句進(jìn)行分類統(tǒng)計(jì)。GROUPBY子句可以將表達(dá)式的值相同的記錄歸為同一組,從而進(jìn)行統(tǒng)計(jì)。語(yǔ)法格式如下:GROUPBY<分組表達(dá)式>HAVING子句指定組或聚合的搜索條件,只能和SELECT語(yǔ)句一起使用,通常和GROUPBY連用。語(yǔ)法格式如下:HAVING<組條件表達(dá)式》,范式:滿足特定要求得關(guān)系模式。設(shè)有關(guān)系模式R(U),X和Y是屬性集U的子集,r是R任一具體關(guān)系,如果對(duì)r的任意兩個(gè)元組t1和t2,都有tl[x]=t2[X]導(dǎo)致tl[Y]=t2[Y],那么稱X函數(shù)決定Y或Y函數(shù)依賴X,記為X→Y,X→Y為模式R的一個(gè)函數(shù)依賴。第一范式如果關(guān)系模式R的每個(gè)關(guān)系r的屬性值都是不可分的原子值,那么稱R是第一范式(firstnormalform,簡(jiǎn)記為1NF)的模式。滿足1NF的關(guān)系稱為規(guī)范化的關(guān)系,否則稱為非規(guī)范化的關(guān)系。關(guān)系數(shù)據(jù)庫(kù)研究的關(guān)系都是規(guī)范化的關(guān)系。1NF是關(guān)系模式應(yīng)具備的最起碼的條件。在建立關(guān)系數(shù)據(jù)模型時(shí),必須將非規(guī)范化形式規(guī)范化,第二范式如果關(guān)系模式R是INF,且每個(gè)非主屬性完全函數(shù)依賴于候選鍵,那么稱R是第二范式(2NF)模式。如果數(shù)據(jù)庫(kù)模式中每個(gè)關(guān)系模式都是2NF,則稱數(shù)據(jù)庫(kù)模式為2NF的數(shù)據(jù)庫(kù)模式。對(duì)于函數(shù)依賴W→A,如果存在X?W有X→A成立,那么稱W→A是局部依賴(A局部依賴于W);否則稱W→A是完全依賴。第三范式如果關(guān)系模式R是1NF,且每個(gè)非主屬性都不傳遞依賴于R的候選鍵,那么稱R是第三范式(3NF)的模式。如果數(shù)據(jù)庫(kù)模式中每個(gè)關(guān)系模式都是3NF,則稱其為3NF的數(shù)據(jù)庫(kù)模式。如果X→Y,Y→A,且Y→X和A∈Y,那么稱X→A是傳遞依賴(A傳遞依賴于X)。數(shù)據(jù)庫(kù)模式設(shè)計(jì)原則:關(guān)系模式R相對(duì)于函數(shù)依賴集分解成數(shù)據(jù)庫(kù)模式p={R1,R2,。。。Rk},一般應(yīng)具有下面幾項(xiàng)特性。(1)P中每個(gè)關(guān)系模式上應(yīng)有某種分時(shí)性質(zhì)(3NF或BCNF)(2)無(wú)損聯(lián)接。(3)保持函數(shù)的依賴集。無(wú)損聯(lián)接設(shè)R是一個(gè)關(guān)系模式,F(xiàn)是R上的一個(gè)函數(shù)依賴集。R分解成數(shù)據(jù)庫(kù)模式ρ={R1,…,Rk}。如果對(duì)R中滿足F的每一個(gè)關(guān)系r,都有r=πR1(r)?πR2(r)?…?πRk(r)那么稱分解ρ相對(duì)于F是“無(wú)損聯(lián)接分解”簡(jiǎn)稱為“無(wú)損分解”,否則稱為“損失分解”。無(wú)損聯(lián)接測(cè)試:設(shè)ρ={R1,R2}是關(guān)系模式R的一個(gè)分解,F(xiàn)是R上成立的FD集,那么分解ρ相對(duì)于F是無(wú)損分解的充分必要條件是:(R1∩R2)→(R1-R2)或(R1∩R2)→(R2-R1)。保持函數(shù)的依賴集保持關(guān)系模式一個(gè)分解是等價(jià)的另一個(gè)重要條件是關(guān)系模式的函數(shù)依賴集在分解后仍在數(shù)據(jù)庫(kù)模式中保持不變。設(shè)ρ={R1,…,Rk}是R的一個(gè)分解,F(xiàn)是R上的函數(shù)依賴,如果有∪πRi(F)=F,那么稱分解ρ保持函數(shù)依賴集F。第三章操作系統(tǒng)知識(shí)3.1 操作系統(tǒng)的基本概念操作系統(tǒng)的定義能有效地組織和管理系統(tǒng)中的各種軟、硬件資源,合理地組織計(jì)算機(jī)系統(tǒng)工作流程,控制程序的執(zhí)行,并且向用戶提供一個(gè)良好的工作環(huán)境和友好的接口。硬件資源:包括CPU,存儲(chǔ)器,輸入/輸出資源等物理設(shè)備。軟件資源:以文件形式保存在存儲(chǔ)器上的程序和數(shù)據(jù)等信息。操作系統(tǒng)的2個(gè)重要作用:(1)通過資源管理提高計(jì)算機(jī)系統(tǒng)的效率(2)改善人機(jī)界面,向用戶提供友好的工作環(huán)境操作系統(tǒng)的4個(gè)特征(1)并發(fā)性:計(jì)算機(jī)系統(tǒng)存在著許多并發(fā)執(zhí)行的活動(dòng)(2)共享性:系統(tǒng)中各個(gè)并發(fā)活動(dòng)要共享計(jì)算機(jī)系統(tǒng)中的各種軟,硬件資源。(3)虛擬性:虛擬是操作系統(tǒng)中的重要特征,所謂虛擬就是把物理上的一臺(tái)設(shè)備變成邏輯上的多臺(tái)設(shè)備。(4)不確定性(異步性):指進(jìn)程的執(zhí)行順序和執(zhí)行時(shí)間及執(zhí)行結(jié)果的不確定性。操作系統(tǒng)的5大管理功能(1)進(jìn)程管理(2)存儲(chǔ)管理(3)設(shè)備管理(4)文件管理(5)作業(yè)管理多道程序設(shè)計(jì)原理:在計(jì)算機(jī)內(nèi)存中同時(shí)存放幾道相互獨(dú)立的程序,它們?cè)诠芾沓绦虻目刂葡孪嗷ゴ┎宓剡\(yùn)行,共享CPU和外設(shè)等資源。程序:具有特定功能的一組指令集合,它指出了處理器執(zhí)行操作的步驟。進(jìn)程:進(jìn)程是一個(gè)程序在一個(gè)數(shù)據(jù)集合上的一次執(zhí)行。3.2進(jìn)程管理程序和進(jìn)程區(qū)別:(1)程序是動(dòng)態(tài)的,進(jìn)程是動(dòng)態(tài)的。(2)進(jìn)程與程序的對(duì)應(yīng)關(guān)系:通過多次執(zhí)行,一個(gè)程序可對(duì)應(yīng)多個(gè)進(jìn)程:通過調(diào)用關(guān)系,一個(gè)進(jìn)程可包括多個(gè)程序。(3)進(jìn)程是暫時(shí)的,程序的永久的:進(jìn)程是一個(gè)狀態(tài)變化的過程,程序可長(zhǎng)久保存。(4)進(jìn)程與程序的組成不同:進(jìn)程的組成包括程序、數(shù)據(jù)進(jìn)程控制塊(即進(jìn)程狀態(tài)信息)。進(jìn)程通常由三部分組成:(1)程序:描述了進(jìn)程所要完成的功能,是進(jìn)程執(zhí)行時(shí)不可修改的部分。(2)數(shù)據(jù)集合:程序執(zhí)行時(shí)所需要的數(shù)據(jù)和工作區(qū),為一個(gè)進(jìn)程專用,可修改。(3)進(jìn)程控制塊PCB(ProcessControlBlock):包含了進(jìn)程的描述信息和控制信息,是進(jìn)程的動(dòng)態(tài)特性的集中反映。PCB包含以下幾類信息:進(jìn)程描述信息、進(jìn)程控制信息、資源占用信息、CPU現(xiàn)場(chǎng)保護(hù)結(jié)構(gòu)。進(jìn)程的基本狀態(tài)及轉(zhuǎn)換:進(jìn)程在生命期內(nèi)處于且僅處于三種基本狀態(tài)之一:>運(yùn)行態(tài):當(dāng)一個(gè)進(jìn)程在處理機(jī)上運(yùn)行時(shí),則稱該進(jìn)程處于運(yùn)行狀態(tài)。>就緒態(tài):一個(gè)進(jìn)程獲得了除處理機(jī)外的一切所需資源,一旦得到處理機(jī)即可運(yùn)行,則稱此進(jìn)程處于就緒狀態(tài)。>阻塞態(tài):當(dāng)一個(gè)進(jìn)程正在等待某一事件發(fā)生(例如請(qǐng)求I/0而等待I/0完成等)而暫時(shí)停止運(yùn)行,這時(shí)即使把處理機(jī)分配給進(jìn)程也無(wú)法運(yùn)行,故稱該進(jìn)程處于阻塞狀態(tài)。注意與就緒狀態(tài)的不同在于即使處理機(jī)處于空閑狀態(tài)也無(wú)法運(yùn)行。①就緒一運(yùn)行:調(diào)度程序選擇一個(gè)新的進(jìn)程運(yùn)行.②運(yùn)行一就緒:運(yùn)行進(jìn)程用完時(shí)間片被中斷或在搶占調(diào)度方式中,因?yàn)橐桓邇?yōu)先級(jí)進(jìn)程進(jìn)入就緒狀態(tài)③運(yùn)行一阻塞:進(jìn)程發(fā)生I/0請(qǐng)求或等待某事件時(shí)④阻塞一就緒:當(dāng)I/0完成或所等待的事件發(fā)生時(shí)進(jìn)程調(diào)度程序:主要任務(wù)是按照一定的調(diào)度算法從就緒隊(duì)列中選取一個(gè)進(jìn)程,把處理機(jī)分配給此進(jìn)程使用。進(jìn)程調(diào)度方式(1)非搶占方式:在非搶占方式下,調(diào)度程序一旦把CPU分配給某一進(jìn)程后便讓它一直運(yùn)行下去,直到進(jìn)程完成或發(fā)生某事件而不能運(yùn)行時(shí),才將CPU分給其它進(jìn)程。這種調(diào)度方式通常用在批處理系統(tǒng)中。它的主要優(yōu)點(diǎn)是簡(jiǎn)單、系統(tǒng)開銷小。(2)搶占方式:當(dāng)一個(gè)進(jìn)程正在執(zhí)行時(shí),系統(tǒng)可以基于某種策略剝奪CPU給其它進(jìn)程。剝奪的原則有:優(yōu)先權(quán)原則、短進(jìn)程優(yōu)先原則和時(shí)間片原則。這種調(diào)度方式多用在分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng)中,以便及時(shí)響應(yīng)各進(jìn)程的請(qǐng)求。進(jìn)程調(diào)度算法(1)先來(lái)先服務(wù)FCFS(先進(jìn)先出調(diào)度算法,F(xiàn)IFO)【算法思想】:最簡(jiǎn)單的算法按照進(jìn)程進(jìn)入就緒隊(duì)列的先后次序,分派CPU;當(dāng)前進(jìn)程占用CPU,直到執(zhí)行完或阻塞,才出讓CPU(非搶占方式)。在進(jìn)程喚醒后(如I/0完成),并不立即恢復(fù)執(zhí)行,通常等到當(dāng)前進(jìn)程出讓CPU?!咎攸c(diǎn)】:比較有利于長(zhǎng)作業(yè),而不利于短作業(yè)。有利于CPU繁忙的作業(yè),而不利于I/0繁忙的作業(yè)。(2)短進(jìn)程優(yōu)先調(diào)度算法(SJF,SPF)【算法思想】:選擇就緒隊(duì)列中估計(jì)運(yùn)行時(shí)間最短的進(jìn)程投入運(yùn)行。通常后來(lái)的短作業(yè)不搶先正在執(zhí)行的作業(yè)。【優(yōu)點(diǎn)】:比FCFS改善平均周轉(zhuǎn)時(shí)間和平均帶權(quán)周轉(zhuǎn)時(shí)間縮短作業(yè)的等待時(shí)間;提高系統(tǒng)的吞吐量;【缺點(diǎn)】:對(duì)長(zhǎng)作業(yè)非常不利,可能長(zhǎng)時(shí)間得不到執(zhí)行;未能依據(jù)作業(yè)的緊迫程度來(lái)劃分執(zhí)行的優(yōu)先級(jí);難以準(zhǔn)確估計(jì)作業(yè)(進(jìn)程)的執(zhí)行時(shí)間,從而影響調(diào)度性能。(3)優(yōu)先權(quán)調(diào)度算法(HPF-HighestPriorityFirst)【算法思想】:優(yōu)先選擇就緒隊(duì)列中優(yōu)先級(jí)最高的進(jìn)程投入運(yùn)行。分為:>非搶占式優(yōu)先級(jí)算法:僅發(fā)生在進(jìn)程放棄CPU。>搶占式優(yōu)先級(jí)算法:可剝奪當(dāng)前運(yùn)行進(jìn)程CPU?!緝?yōu)先權(quán)的類型】>靜態(tài)優(yōu)先級(jí):在進(jìn)程創(chuàng)建時(shí)指定優(yōu)先級(jí),在進(jìn)程運(yùn)行時(shí)優(yōu)先數(shù)不變。>動(dòng)態(tài)優(yōu)先級(jí):在進(jìn)程創(chuàng)建時(shí)創(chuàng)立一個(gè)優(yōu)先級(jí),但在其生命周期內(nèi)優(yōu)先數(shù)可以動(dòng)態(tài)變化,如等待時(shí)間長(zhǎng)優(yōu)先數(shù)可改變?!敬_定優(yōu)先級(jí)的依據(jù)】:進(jìn)程類型、對(duì)資源的需求、根據(jù)用戶要求。(4)高響應(yīng)比優(yōu)先(HRRN,HighestResponseRatioNext):HRRN是FCFS和SJF的折衷算法,響應(yīng)比R用下式動(dòng)態(tài)計(jì)算:響應(yīng)比=(等待時(shí)間+要求服務(wù)時(shí)間)/要求服務(wù)時(shí)間【特點(diǎn)】:等待時(shí)間相同要求服務(wù)的時(shí)間越短優(yōu)先權(quán)越高,有利于短作業(yè)。要求服務(wù)時(shí)間相同,等待時(shí)間越長(zhǎng)優(yōu)先權(quán)越高,近似于先來(lái)先服務(wù)。長(zhǎng)作業(yè)的優(yōu)先權(quán)會(huì)隨等待時(shí)間加長(zhǎng)而升高,長(zhǎng)作業(yè)也會(huì)得到執(zhí)行。(5)時(shí)間片輪轉(zhuǎn)調(diào)度算法【算法思想】:通過時(shí)間片輪轉(zhuǎn),提高進(jìn)程并發(fā)性和響應(yīng)時(shí)間特性,從而提高資源利用率。將系統(tǒng)中所有的就緒進(jìn)程按照FCFS原則,排成一個(gè)隊(duì)列。每次調(diào)度時(shí)將CPU分派給隊(duì)首進(jìn)程,讓其執(zhí)行一個(gè)時(shí)間片。時(shí)間片的長(zhǎng)度從幾個(gè)ms到幾百ms。在一個(gè)時(shí)間片結(jié)束時(shí),發(fā)生時(shí)鐘中斷。調(diào)度程序據(jù)此暫停當(dāng)前進(jìn)程的執(zhí)行,將其送到就緒隊(duì)列的末尾,并通過CPU現(xiàn)場(chǎng)切換執(zhí)行當(dāng)前的隊(duì)首進(jìn)程。進(jìn)程可以未使用完一個(gè)時(shí)間片,就出讓CPU(如阻塞)。(6)多級(jí)反饋隊(duì)列算法(多隊(duì)列輪轉(zhuǎn)法)【算法思想】:設(shè)置多個(gè)就緒隊(duì)列,分別賦予不同的優(yōu)先級(jí),隊(duì)列1的優(yōu)先級(jí)最高,其他逐級(jí)降低。每隊(duì)列分配不同的時(shí)間片,規(guī)定優(yōu)先級(jí)越低則時(shí)間片越長(zhǎng)。新進(jìn)程就緒后,先投入隊(duì)列1的末尾,按FCFS算法調(diào)度。若一個(gè)時(shí)間片未能執(zhí)行完,則降低投入到隊(duì)列2的末尾;依此類推,降低到最后的隊(duì)列,則按“時(shí)間片輪轉(zhuǎn)”算法調(diào)度直到完成。進(jìn)程由于等待事件而放棄CPU后,進(jìn)入等待隊(duì)列,一旦等待的事件發(fā)生,則回到原來(lái)的就緒隊(duì)列。僅當(dāng)較高優(yōu)先級(jí)的隊(duì)列為空,才調(diào)度較低優(yōu)先級(jí)的隊(duì)列中的進(jìn)程執(zhí)行。如果進(jìn)程執(zhí)行時(shí)有新進(jìn)程進(jìn)入較高優(yōu)先級(jí)的隊(duì)列,則搶先執(zhí)行新進(jìn)程,并把被搶先的進(jìn)程投入原隊(duì)列的末尾。進(jìn)程互斥:是指當(dāng)有若干進(jìn)程都要使用某一資源時(shí),任何時(shí)刻最多只允許一個(gè)進(jìn)程去使用,其他要使用該資源的進(jìn)程必須等待,直到占用資源者釋放了該資源。這樣的資源稱為稱為互斥資源一—打印機(jī),共享變量等。臨界區(qū)一并發(fā)進(jìn)程中與共享變量有關(guān)的程序段。PV操作一—進(jìn)程的互斥PV操作由P操作和V操作組成,P操作和V操是兩個(gè)在信號(hào)量S上進(jìn)行的操作。定義如下:ProcedureP(S)beginS:=S-1;ifS<0then則該進(jìn)程進(jìn)入等待隊(duì)列;end;(P)ProcedureV(S)beginS:=S+1;ifS≤0then喚醒一個(gè)等待隊(duì)列中的進(jìn)程進(jìn)入就緒;end;(V)例:共享緩存器資源造成的錯(cuò)誤(1)A的執(zhí)行速度操作B的執(zhí)行速度,造成緩存器中的數(shù)據(jù)還沒拿走,A又讀入新數(shù)據(jù)覆蓋了原有數(shù)據(jù)。(2)B的執(zhí)行速度操作A的執(zhí)行速度,B從緩存器取出一個(gè)記錄并加工后,A還沒有讀入新數(shù)據(jù),造成B在緩存器中重復(fù)取同一個(gè)記錄加工。進(jìn)程同步:是指并發(fā)進(jìn)程之間存在一種制約關(guān)系,一個(gè)進(jìn)程的執(zhí)行依賴另一個(gè)進(jìn)程的消息,當(dāng)一個(gè)進(jìn)程沒有得到另一個(gè)進(jìn)程的消息時(shí)應(yīng)等待,直到消息到達(dá)才被喚醒。PV操作一—進(jìn)程的互斥1.調(diào)用P操作測(cè)試消息是否到達(dá)。若消息尚未到達(dá)則S=0,調(diào)用P(S)后,讓調(diào)用者稱為等待信號(hào)量S的狀態(tài);若消息已經(jīng)存在則S產(chǎn)0,調(diào)用P(S)后進(jìn)程不會(huì)成為等待狀態(tài)而可繼續(xù)執(zhí)行。2.調(diào)用V操作發(fā)送消息。任何進(jìn)程要向進(jìn)程發(fā)送消息時(shí)可調(diào)用V操作。若調(diào)用V操作之前S=0,表示消息產(chǎn)生且無(wú)等待消息進(jìn)程,這是調(diào)用V(S),執(zhí)行S:=S+1使S0,意味著消息已存在。若調(diào)用V操作之前S<0,表示消息未產(chǎn)生前已有進(jìn)程在等待消息,這是調(diào)用V(S)后釋放一個(gè)等待消息者,即表示該進(jìn)程等待的消息已經(jīng)到達(dá)可以繼續(xù)執(zhí)行。死鎖死鎖的概念:指多個(gè)進(jìn)程因競(jìng)爭(zhēng)資源而造成的一種僵局,若無(wú)外力作用,這些進(jìn)程都將永遠(yuǎn)不能再向前推進(jìn)。死鎖產(chǎn)生的原因(1)競(jìng)爭(zhēng)資源:當(dāng)系統(tǒng)中供多個(gè)進(jìn)程所共享的資源,不足以同時(shí)滿足它們的需要時(shí),引起它們對(duì)資源的競(jìng)爭(zhēng)而產(chǎn)生死鎖。(2)進(jìn)程推進(jìn)順序不當(dāng):進(jìn)程在運(yùn)行過程中,請(qǐng)求和釋放資源的順序不當(dāng),導(dǎo)致了進(jìn)程的死鎖。死鎖產(chǎn)生的必要條件(1)互斥使用資源(2)占有并等待資源(3)不可剝奪資源(4)循環(huán)等待資源處理死鎖的基本方法預(yù)防死鎖避免死鎖——銀行家算法檢測(cè)死鎖解除死鎖避免死鎖——銀行家算法【基本思想】銀行家算法是通過動(dòng)態(tài)地檢測(cè)系統(tǒng)中資源分配情況和進(jìn)程對(duì)資源的需求情況來(lái)決定如何分配資源的,在能確保系統(tǒng)處于安全狀態(tài)時(shí)才能把資源分配給申請(qǐng)者,從而避免系統(tǒng)發(fā)生死鎖。第四章UML4.1UML概述UML(UnifiedModelingLanguage)是一種基于面向?qū)ο蟮目梢暬耐ㄓ茫℅enera1)建模語(yǔ)言。為不同領(lǐng)域的用戶提供了統(tǒng)一的交流標(biāo)準(zhǔn)一UML圖。UML應(yīng)用領(lǐng)域很廣泛,可用于軟件開發(fā)建模的各個(gè)階段,商業(yè)建模(BusinessModeling),也可用于其它類型的系統(tǒng)。UL是一種定義良好,易于表達(dá),功能強(qiáng)大且普遍實(shí)用的建模語(yǔ)言,不是一種方法,它獨(dú)立于過程。利用它建模時(shí),可遵循任何類型的建模過程。UML的主要內(nèi)容(1)UML融合了Booch、OMT和00SE方法中的基本概念,而且這些基本概念與其他面向?qū)ο蠹夹g(shù)中的基本概念大多相同:(2)UML不僅僅是上述方法的簡(jiǎn)單匯合,而是擴(kuò)展了現(xiàn)有方法的應(yīng)用范圍;(3)UML是標(biāo)準(zhǔn)的建模語(yǔ)言,而不是標(biāo)準(zhǔn)的開發(fā)過程。1.什么是模型?模型是對(duì)系統(tǒng)的完整的抽象表示,建模是在不同層次上對(duì)系統(tǒng)的描述。2.為什么要建模?>鑒于軟件系統(tǒng)的復(fù)雜性和規(guī)模的不斷增大,需要建立不同的模型對(duì)系統(tǒng)的各個(gè)層次進(jìn)行描述。(軟件模型包括:數(shù)學(xué)模型、描述模型和圖形模型)>便于開發(fā)人員與用戶的交流。>模型為以后的系統(tǒng)維護(hù)和升級(jí)提供了文檔建模過程:UML作為一種可視化的建模語(yǔ)言,提供了豐富的基于面向?qū)ο蟾拍畹哪P驮丶捌鋱D形表示元素。4.1.1UML的主要內(nèi)容UML的定義包括UML語(yǔ)義和UML表示法兩個(gè)部分。(1)UML語(yǔ)義:描述基于ML的精確元模型(meta-mode1)定義。(2)UML表示法定義UML符號(hào)的表示法,為開發(fā)者或開發(fā)工具使用這些圖形符號(hào)和文本語(yǔ)法為系統(tǒng)建模提供了標(biāo)準(zhǔn)。UML是一種標(biāo)準(zhǔn)化的圖形建模語(yǔ)言,它是面向?qū)ο蠓治雠c設(shè)計(jì)的一種標(biāo)準(zhǔn)表示。由:視圖(views),圖(Diagrams),模型元素(Modelelements),通用機(jī)制(generalmechanism)等幾個(gè)部分構(gòu)成。一個(gè)系統(tǒng)應(yīng)從不同的角度進(jìn)行描述,從一個(gè)角度觀察到的系統(tǒng)稱為一個(gè)視圖(view)。視圖由多個(gè)圖(Diagrams)構(gòu)成,它不是一個(gè)圖表(Graph),而是在某一個(gè)抽象層上,對(duì)系統(tǒng)的抽象表示。UML語(yǔ)言定義了五種類型,9種不同的圖,把它們有機(jī)的結(jié)合起來(lái)就可以描述系統(tǒng)的所有視圖。>用例圖(Usecasediagran)從用戶角度描述系統(tǒng)功能,并指出各功能的操作者。>靜態(tài)圖(Staticdiagram),表示系統(tǒng)的靜態(tài)結(jié)構(gòu)。包括類圖、對(duì)象圖、包圖。>行為圖(Behaviordiagram),描述系統(tǒng)的動(dòng)態(tài)模型和組成對(duì)象間的交互關(guān)系。包括狀態(tài)圖、活動(dòng)圖。>交互圖(Interactivediagram),描述對(duì)象間的交互關(guān)系。包括順序圖、合作圖。>實(shí)現(xiàn)圖(Implementationdiagram)用于描述系統(tǒng)的物理實(shí)現(xiàn)。包括構(gòu)件圖、部件圖。UML的9種圖圖:包中的類以及包與包之間的關(guān)系(靜態(tài)圖)UML的5種視圖模型元素(Modelelements)代表面向?qū)ο笾械念?,?duì)象,關(guān)系和消息等概念,是構(gòu)成圖的最基本的常用的元素。一個(gè)模型元素可以用于多個(gè)不同的圖中。通用機(jī)制(generalmechanism)用于表示其他信息,比如注釋,模型元素的語(yǔ)義等。另外,為了適應(yīng)用戶的需求,它還提供了擴(kuò)展機(jī)制(Extensibilitymechanisms),包括構(gòu)造型(Stereotype)、標(biāo)記值(Taggedvalue)和約束(Constraint).使用UML語(yǔ)言能夠適應(yīng)一個(gè)特殊的方法(或過程),或擴(kuò)充至一個(gè)組織或用戶。4.1.2UML的特點(diǎn)(1)統(tǒng)一標(biāo)準(zhǔn)UML:統(tǒng)一了Booch、OMT和00SE等方法中的基本概念,已成為0MG的正式標(biāo)準(zhǔn),提供了標(biāo)準(zhǔn)的面向?qū)ο蟮哪P驮氐亩x和表示。(2)面向?qū)ο骍ML:還吸取了面向?qū)ο蠹夹g(shù)領(lǐng)域中其它流派的精華。刪除了大量易引起混亂的、多余的和極少使用的符號(hào),也添加了一些新符號(hào)。(3)可視化、表示能力強(qiáng):系統(tǒng)的邏輯模型或?qū)崿F(xiàn)模型都能用UML模型清晰的表示,可用于復(fù)雜軟件系統(tǒng)的建模。(4)易掌握、易用:UML的概念明確,建模表示法簡(jiǎn)潔明了,圖形結(jié)構(gòu)清晰,易于掌握4.2通用模型元素模型元素是UML構(gòu)造系統(tǒng)的各種元素,是UL構(gòu)建模型的基本單位。分為以下兩類:1.基元素:是由UML定義的模型元素。如:類、結(jié)點(diǎn)、構(gòu)件、注釋、關(guān)聯(lián)、依賴和泛化等。2.構(gòu)造型元素:在基元素的基礎(chǔ)上增加了新的定義而構(gòu)造的新的模型元素。如擴(kuò)展基元素的語(yǔ)義(不能擴(kuò)展語(yǔ)法結(jié)構(gòu)),也允許用戶自定義。構(gòu)造型元素用括在雙尖括號(hào)<<>>中的字符串表示。目前UML提供了40多個(gè)預(yù)定義的構(gòu)造型元素。如包含<<include>>、擴(kuò)展<<Extend>>。4.2.1常用模型元素可以在圖中使用的概念統(tǒng)稱為模型元素。模型元素在圖中用其相應(yīng)的視圖元素(符號(hào))表示,圖中給出了常用的元素符號(hào):類、對(duì)象、結(jié)點(diǎn)、包和組件等。模型元素與模型元素之間的連接關(guān)系也是模型元素,常見的關(guān)系有關(guān)聯(lián)(association)、泛化(generalization)、依賴(dependency)和聚合(aggregation),其中聚合是關(guān)聯(lián)的一種特殊形式。這些關(guān)系的圖示符號(hào)如圖所示。關(guān)聯(lián):連接(connect)模型元素及鏈接(link)實(shí)例。依賴:表示一個(gè)元素以某種方式依賴于另一種元素。泛化:表示一般與特殊的關(guān)系,即“一般”元素是“特殊”關(guān)系的泛化。聚合:表示整體與部分的關(guān)系。4.2.2關(guān)聯(lián)和鏈關(guān)聯(lián)(association)是兩個(gè)或多個(gè)類之間的一個(gè)關(guān)系。鏈(1ink)是關(guān)聯(lián)的具體體現(xiàn)。關(guān)聯(lián)分為二元關(guān)聯(lián)(binary)、三元關(guān)聯(lián)(ternary)、多元關(guān)聯(lián)(higherorder)。4.2.3關(guān)聯(lián)的表示關(guān)聯(lián)的重?cái)?shù)重?cái)?shù)(multiplicity)表示多少個(gè)對(duì)象與對(duì)方對(duì)象相連接,常用的重?cái)?shù)符號(hào)有:“0..1” 表示零或1“0..*”或“*” 表示零或多個(gè)“1..*” 表示1或多個(gè)“1,3,7” 表示1或3或7(枚舉型)重?cái)?shù)的默認(rèn)值為1。有序關(guān)聯(lián)與導(dǎo)航(導(dǎo)引)在關(guān)聯(lián)的多端標(biāo)注{ordered}指明這些對(duì)象是有序的。關(guān)聯(lián)可以用箭頭,表示該關(guān)聯(lián)使用的方向(單向或雙向),稱為導(dǎo)引或?qū)Ш剑╪avigation)。受限關(guān)聯(lián)(qualifiedassociation)使用限定詞對(duì)該關(guān)聯(lián)的另一端的對(duì)象進(jìn)行明確的標(biāo)識(shí)和鑒別,如圖。如果對(duì)關(guān)聯(lián)的含義作出某種限制,稱為受限關(guān)聯(lián)。4.2.4約束UML中提供了一種簡(jiǎn)便、統(tǒng)一和一致的約束(constraint),是各種模型元素的一種語(yǔ)義條件或限制。一條約束只能應(yīng)用于同一類的元素。約束的表示如果約束應(yīng)用于一種具有相應(yīng)視圖元素的模型元素,它可以出現(xiàn)在它所約束元素視圖元素的旁邊。通常一個(gè)約束由一對(duì)花括號(hào)括起來(lái)({constraint}),花括號(hào)中為約束內(nèi)容,如果一條約束涉及同一種類的多個(gè)元素,則要用虛線把所有受約束的元素框起來(lái),并把該約束顯示在旁邊(如或約束)。約束可分為:對(duì)泛化的約束、關(guān)聯(lián)的約束對(duì)泛化的約束應(yīng)用于泛化的約束,顯示在大括號(hào)里,若有多個(gè)約束,用逗號(hào)隔開。如果沒有共享,則用一條虛線通過所有繼承線,并在虛線的旁邊顯示約束。對(duì)泛化有以下常用的約束:1.complete:說明泛化中所有子元素都已在模型中說明,不允許再增加其它子元素。2.disjoint:父類對(duì)象不能有多于一個(gè)型的子對(duì)象。3.incomplete:說明不是泛化中所有子元素都已說明,允許再增加其它子元素。4.overlapping:給定父類對(duì)象可有多于一個(gè)型的子對(duì)象,表示重載。對(duì)關(guān)聯(lián)有以下常用的約束:1.implicit:該關(guān)聯(lián)只是概念性的,在對(duì)模型進(jìn)行精化時(shí)不再用。2.ordered:具有多重性的關(guān)聯(lián)一端的對(duì)象是有序的。3.changeable:關(guān)聯(lián)對(duì)象之間的鏈(Link)是可變的(添加、修改、刪除)。4.addonly:可在任意時(shí)刻增加新的鏈接。5.frozen:凍結(jié)已創(chuàng)建的對(duì)象,不能再添加、刪除和修改它的鏈接。6.xor:“或約束”,某時(shí)刻只有一個(gè)當(dāng)前的關(guān)聯(lián)實(shí)例。4.2.6依賴依賴關(guān)系描述的是兩個(gè)模型元素(類,組合,用例等)之間的語(yǔ)義上的連接關(guān)系,其中一個(gè)模型元素是獨(dú)立的,另一個(gè)模型元素是非獨(dú)立的(或依賴的)。依賴的形式可能是多樣的,針對(duì)不同的依賴的形式,依賴關(guān)系有不同的變體(varieties):<1>抽象(abstraction):從一個(gè)對(duì)象中提取一些特性,并用類方法表示。<2>綁定(binding):為模板參數(shù)指定值,以定義一個(gè)新的模板元素。<3>組合(combination):對(duì)不同類或包進(jìn)行性質(zhì)相似融合。<4>許可(permission):允許另一個(gè)對(duì)象對(duì)本對(duì)象的訪問。<5>使用(usage):聲明使用一個(gè)模型元素需要用到已存在的另一個(gè)模型元素,這樣才能正確實(shí)現(xiàn)使用者的功能(包括調(diào)用、實(shí)例化、參數(shù)、發(fā)送)。<6>跟蹤(trace):聲明不同模型中元素的之間的存在一些連接。<7>訪問或連接(access):允許一個(gè)包訪問另一個(gè)包的內(nèi)容。<8>調(diào)用(cal1):聲明一個(gè)類調(diào)用其他類的操作的方法。<9>導(dǎo)出(derive):聲明一個(gè)實(shí)例可從另一個(gè)實(shí)例導(dǎo)出?!?0>友元(friend):允許一個(gè)元素訪問另一個(gè)元素,不管被訪問的元素是否具有可見性。<11>引入(import):允許一個(gè)包訪問另一個(gè)包的內(nèi)容并被訪問組成部分增加別名。<12>實(shí)例(instantiation):關(guān)于一個(gè)類的方法創(chuàng)建了另一個(gè)類的實(shí)例聲明。<13>參數(shù)(parameter):一個(gè)操作和它參數(shù)之間的關(guān)系。<14>實(shí)現(xiàn)(realize):說明和其實(shí)之間的關(guān)系?!?5>精化(refine):聲明具有兩個(gè)不同語(yǔ)義層次上的元素之間的映射。<16>發(fā)送(send):信號(hào)發(fā)送者和信號(hào)接收者之間的關(guān)系。4.2.7細(xì)化有兩個(gè)元素A和B,若B元素是A元素的詳細(xì)描述,則稱為B元素細(xì)化A元素。細(xì)化與類的抽象層次有密切的關(guān)系,在構(gòu)造模型時(shí)要經(jīng)過逐步細(xì)化,逐步求精的過程。4.2.8注釋注釋用于對(duì)lL語(yǔ)言的元素或?qū)嶓w進(jìn)行說明,解釋和描述。通常用自然語(yǔ)言進(jìn)行注釋。4.3用例建模UML的用例模型一直被推薦為識(shí)別和捕獲需求的首選工具??!用例驅(qū)動(dòng)的系統(tǒng)分析與設(shè)計(jì)方法已成為面向?qū)ο蟮南到y(tǒng)分析與設(shè)計(jì)方法的主流。4.3.1用例建模概述用例建模技術(shù),用于描述系統(tǒng)的功能需求。在宏觀上給出模型的總體輪廓。通過對(duì)典型用例的分析,使開發(fā)者能夠有效地了解用戶的需求。網(wǎng)絡(luò)中間層狀態(tài)包檢測(cè)防火墻系統(tǒng)4.3.2用例模型(Usecasemodel)用例模型由若干個(gè)用例圖構(gòu)成,用例圖中主要描述執(zhí)行者和用例之間的關(guān)系。在UML中,構(gòu)成用例圖的主要元素是用例和執(zhí)行者及其它們之間的聯(lián)系。創(chuàng)建用例模型的工作包括:定義系統(tǒng)、確定執(zhí)行者和用例、描述用例、定義用例間的關(guān)系、確認(rèn)模型。如何建立用例模型:建立系統(tǒng)用例模型的過程就是對(duì)系統(tǒng)進(jìn)行功能需求分析的過程。一、確定執(zhí)行者(Actor)執(zhí)行者是指用戶在系統(tǒng)中所扮演的角色,執(zhí)行者用類似人的圖形來(lái)表示,但執(zhí)行者可以是人,也可以是一個(gè)外界系統(tǒng)。如何確定執(zhí)行者:1、誰(shuí)使用系統(tǒng)的主要功能(主執(zhí)行者)?2、誰(shuí)需要從系統(tǒng)獲得對(duì)日常工作的支持和服務(wù)?3、需要誰(shuí)維護(hù)管理系統(tǒng)的日常運(yùn)行(副執(zhí)行者)?4、系統(tǒng)需要控制哪些硬件設(shè)備?5、系統(tǒng)需要與其它哪些系統(tǒng)交互?6、誰(shuí)需要使用系統(tǒng)產(chǎn)生的結(jié)果(值)?二、用例如何確定用例:1、與系統(tǒng)實(shí)現(xiàn)有關(guān)的主要問題是什么?2、系統(tǒng)需要哪些輸入/輸出?這些輸入/輸出從何而來(lái)?到哪里去?3、執(zhí)行者需要系統(tǒng)提供哪些功能?4、執(zhí)行者是否需要對(duì)系統(tǒng)中的信息進(jìn)行讀、創(chuàng)建、修改、刪除或存儲(chǔ)?三、用例之間的關(guān)系執(zhí)行者與用例之間通常是一種關(guān)聯(lián)。用例之間的聯(lián)系:<<Use>>表示一個(gè)用例使用另一個(gè)用例。<<Extend>>通過向被擴(kuò)展的用例添加動(dòng)作來(lái)擴(kuò)展用例。<<include>>表示一個(gè)用例的行為包含了另一個(gè)用例的行為。其中:<<Use>>,<<Extend>>是一種泛化關(guān)系。<<include>>是一種依賴關(guān)系。第五章專題:計(jì)算機(jī)系統(tǒng)知識(shí)計(jì)算機(jī)硬件基礎(chǔ)知識(shí):5.1計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)計(jì)算機(jī)的發(fā)展歷史:1946年,世界上第一臺(tái)電子計(jì)算機(jī)ENIAC出現(xiàn),之后經(jīng)歷了5個(gè)發(fā)展階段:計(jì)算機(jī)的組成部分:存儲(chǔ)器、運(yùn)算器、控制器、輸入設(shè)備和輸出設(shè)備。計(jì)算機(jī)的工作過程:一般是由用戶使用各種編程語(yǔ)言把所需要完成的任務(wù)以程序的形式提交給計(jì)算機(jī),然后翻譯成計(jì)算機(jī)能直接執(zhí)行的機(jī)器語(yǔ)言程序,在計(jì)算機(jī)上運(yùn)行。計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(computerarchitecture):指機(jī)器語(yǔ)言級(jí)機(jī)器(物理機(jī)器)的系統(tǒng)結(jié)構(gòu),它主要研究軟件、硬件功能分配,確定軟件、硬件界面(機(jī)器級(jí)界面),計(jì)算機(jī)組成(computerorganization):是指計(jì)算機(jī)系統(tǒng)的邏輯實(shí)現(xiàn).目標(biāo)是合理的把各種部件、設(shè)備組成計(jì)算機(jī),以實(shí)現(xiàn)特定的系統(tǒng)結(jié)構(gòu),同時(shí)滿足所希望達(dá)到的性能價(jià)格比。計(jì)算機(jī)實(shí)現(xiàn)(computerimplementation)是指計(jì)算機(jī)組成的物理實(shí)現(xiàn)。計(jì)算機(jī)系統(tǒng)的分類:Flynn分類、馮氏分類、Handler分類和Kuck分類;Flynn分類:根據(jù)不同指令流一數(shù)據(jù)流組織方式把計(jì)算機(jī)系統(tǒng)分成4類。(重點(diǎn)理解)指令流:機(jī)器指令的執(zhí)行序列:數(shù)據(jù)流:由指令流調(diào)用的數(shù)據(jù)序列,包括輸入數(shù)據(jù)和中間結(jié)果;多倍性:在系統(tǒng)性能的瓶頸部件上同時(shí)處于同樣執(zhí)行階段的指令和數(shù)據(jù)的最大可能個(gè)數(shù):I.單指令流單數(shù)據(jù)流SISD——如單處理機(jī)II.單指令流多數(shù)據(jù)流SIMD——如相聯(lián)處理機(jī)III.多指令流單數(shù)據(jù)流MISD——如流水線計(jì)算機(jī)IV.多指令流多數(shù)據(jù)流MIMD——如多處理機(jī)(7)數(shù)據(jù)校驗(yàn)碼:基本思想是把數(shù)據(jù)可能出現(xiàn)的編碼區(qū)分為合法編碼和錯(cuò)誤編碼。碼距:是指一個(gè)編碼系統(tǒng)中任意兩個(gè)合法編碼之間至少有多少個(gè)二進(jìn)制位不同。碼距為1的編碼是不能發(fā)現(xiàn)錯(cuò)誤的。常用的校驗(yàn)碼有3種。奇偶校驗(yàn)碼:不能發(fā)現(xiàn)偶數(shù)位錯(cuò)誤.該編碼通過增加一位校驗(yàn)位來(lái)使編碼中1的個(gè)數(shù)為奇數(shù)(奇校驗(yàn))或者為偶數(shù)(偶校驗(yàn))從而使碼距變?yōu)?,來(lái)檢測(cè)數(shù)據(jù)代碼中奇數(shù)出錯(cuò)的編碼。因?yàn)槠淅玫氖蔷幋a中1的個(gè)數(shù)的奇偶性作為依據(jù),所以不能發(fā)現(xiàn)偶數(shù)位錯(cuò)誤。校驗(yàn)位的添加方法有三種:水平奇偶校驗(yàn)碼:對(duì)每個(gè)數(shù)據(jù)的編碼添加校驗(yàn)位垂直奇偶校驗(yàn)碼:對(duì)一組數(shù)據(jù)的相同位添加一個(gè)校驗(yàn)位;水平垂直奇偶校驗(yàn)碼:先對(duì)一組數(shù)據(jù)垂直校驗(yàn),所得結(jié)果再添加一位水平校驗(yàn)位;海明校驗(yàn)碼:也是利用奇偶性來(lái)檢錯(cuò)和糾錯(cuò),通過在數(shù)據(jù)之間插入k個(gè)校驗(yàn)位,擴(kuò)大數(shù)據(jù)編碼的碼距,從而有能力檢測(cè)出n位錯(cuò),并能糾正1位或n位錯(cuò)。循環(huán)校驗(yàn)碼(CRC)校驗(yàn)碼:采用模2運(yùn)算,可檢測(cè)所有等于、小于校驗(yàn)位長(zhǎng)度的突發(fā)錯(cuò),利用生成多項(xiàng)式為k個(gè)數(shù)據(jù)位產(chǎn)生r個(gè)校驗(yàn)位進(jìn)行編碼,其編碼長(zhǎng)度為n=k+rk,又稱為(n,k)碼,生成的多項(xiàng)式與被校驗(yàn)的數(shù)據(jù)無(wú)關(guān)。5.2存儲(chǔ)器系統(tǒng)概述:計(jì)算機(jī)中的存儲(chǔ)系統(tǒng)是用來(lái)保存數(shù)據(jù)和程序的。對(duì)存儲(chǔ)器最基本的要求就是存儲(chǔ)容量要大、存取速度快、成本價(jià)格低。為了滿足這一要求,提出了多級(jí)存儲(chǔ)體系結(jié)構(gòu)。一般可分為高速緩沖存儲(chǔ)器、主存、外存3個(gè)層次,有時(shí)候還包括CPU內(nèi)部的寄存器以及控制存儲(chǔ)器。衡量存儲(chǔ)器的主要因素:存儲(chǔ)器訪問速度、存儲(chǔ)容量和存儲(chǔ)器的價(jià)格;存儲(chǔ)器的介質(zhì):半導(dǎo)體、磁介質(zhì)和光存儲(chǔ)器。存儲(chǔ)器的組成:存儲(chǔ)芯片+控制電路(存儲(chǔ)體+地址寄存器+數(shù)據(jù)緩沖器+時(shí)序控制);控制寄存器:內(nèi)部存儲(chǔ)器是可以被處理器直接存取的存儲(chǔ)器,又稱為主存儲(chǔ)器,外部存儲(chǔ)器需要通過I/0模塊與處理器交換數(shù)據(jù),又稱為輔助存儲(chǔ)器,彌補(bǔ)CPU處理器速度之間的差異還設(shè)置了CACHE,容量小但速度極快,位于CPU和主存之間,用于存放CPU正在執(zhí)行的程序段和所需數(shù)據(jù)。通常衡量主存容量大小的單位是字節(jié)或者字,而外存的容量則用字節(jié)來(lái)表示。信息存取方式常用的有4種,>順序存取:存儲(chǔ)器的數(shù)據(jù)是以記錄的形式進(jìn)行組織,對(duì)數(shù)據(jù)的訪問必須按特定的線性順序進(jìn)行。磁帶存儲(chǔ)器的存取方式就是順序存取。>直接存?。汗蚕碜x寫裝置,但是每個(gè)記錄都有一個(gè)唯一的地址標(biāo)識(shí),共享的讀寫裝置可以直接移動(dòng)到目的數(shù)據(jù)塊所在位置進(jìn)行訪問。因此存取時(shí)間也是可變的。磁盤存儲(chǔ)器采用的這種方式。>隨機(jī)存?。捍鎯?chǔ)器的每一個(gè)可尋址單元都具有唯一地址和讀寫裝置,系統(tǒng)可以在相同的時(shí)間內(nèi)對(duì)任意一個(gè)存儲(chǔ)單元的數(shù)據(jù)進(jìn)行訪問,而與先前的訪問序列無(wú)關(guān)。主存儲(chǔ)器采用的是這種方式。>相聯(lián)存?。阂彩且环N隨機(jī)存取的形式,但是選擇某一單元進(jìn)行讀寫是取決于其內(nèi)容而不是其地址。Cache可能采用該方法進(jìn)行訪問。主存儲(chǔ)器:通常位于所謂主機(jī)的范疇,常稱為內(nèi)存。如果內(nèi)存的地址為n位,容量為2的n次。主存儲(chǔ)器的種類很多,主要有:>隨機(jī)存儲(chǔ)器(RAM):可以讀出和寫入,隨機(jī)訪問存取,斷電消失>只讀存儲(chǔ)器(ROM):只能讀出原有的內(nèi)容,不能寫入新內(nèi)容>可編程ROM(PROM)>可擦除PROM(EPROM)>電可擦除PROM(E2PROM)>閃速存儲(chǔ)器(flashmemory)輔助存儲(chǔ)器:位于主機(jī)的邏輯范疇之外,常稱為外存儲(chǔ)器,簡(jiǎn)稱外存。外存的最大特點(diǎn)是容量大、可靠性高、價(jià)格低,主要有兩大類。>磁表面存儲(chǔ)器:這類外存儲(chǔ)器主要包括磁帶和磁盤存儲(chǔ)器。>光存儲(chǔ)器:是利用激光束在記錄表面存儲(chǔ)信息,根據(jù)激光束的反射光來(lái)讀出信息。按照它的記錄原理可分為形變型、相變型(晶相結(jié)構(gòu))和磁光型。有CD、CD-ROM、WORM、EOD等。>光盤存儲(chǔ)器的特點(diǎn):大容量、標(biāo)準(zhǔn)化、相容性、持久性、實(shí)用性>Cache存儲(chǔ)器:(對(duì)系統(tǒng)和應(yīng)用程序員都是透明的)(重點(diǎn))Cache位于主存儲(chǔ)器與CPU通用寄存器組之間,全部由硬件來(lái)調(diào)度,用于提高CPU的數(shù)據(jù)I/0效率,對(duì)程序員和系統(tǒng)程序員都是透明的。Cache容量小但速度快,它在計(jì)算機(jī)的存儲(chǔ)體系中是訪問速度最快的層次。使用Cache改善系統(tǒng)性能的依據(jù)是程序的局部性原理,即程序的地址訪問流有很強(qiáng)的時(shí)序相關(guān)性,未來(lái)的訪問模式與最近已發(fā)生的訪問模式相似。根據(jù)這一局部性原理,把主存儲(chǔ)器中訪問概率最高的內(nèi)容存放在Cache中,當(dāng)CPU需要讀取數(shù)據(jù)時(shí)就首先在Cache中查找是否有所需內(nèi)容,如果有則直接從Cache中讀取;若沒有再?gòu)闹鞔嬷凶x取該數(shù)據(jù),然后同時(shí)送往CPU和Cache。系統(tǒng)的平均存儲(chǔ)周期t3與命中率h有很密切的關(guān)系,如下的公式:t3=h×t1+(1-h)×t2,其中,tl表示Cache的周期時(shí)間,t2表示主存的周期時(shí)間。5.3中央處理器CPUCPU由寄存器組、算術(shù)邏輯單元ALU和控制單元CU這3部分組成。1.寄存器組分為兩大類:用戶可見的寄存器:有通用寄存器、數(shù)據(jù)寄存器、地址寄存器、標(biāo)志寄存器等;狀態(tài)寄存器:包括程序計(jì)數(shù)器PC、指令寄存器1R、存儲(chǔ)器地址寄存器MAR、存儲(chǔ)器緩沖寄存器MBR、程序狀態(tài)字PSW。2.運(yùn)算器ALU:負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行算術(shù)和邏輯運(yùn)算。3.控制器CU:負(fù)責(zé)控制整個(gè)計(jì)算機(jī)系統(tǒng)的運(yùn)行計(jì)算機(jī)的指令系統(tǒng):機(jī)器指令的格式、分類及功能:CPU所完成的操作是由其執(zhí)行的指令來(lái)決定的,這些指令被稱為機(jī)器指令。CPU所能執(zhí)行的所有機(jī)器指令的集合稱為該CPU的指令系統(tǒng)。機(jī)器指令一般由操作碼、源操作數(shù)、目的操作數(shù)和下一條指令的地址組成。>操作碼指明要執(zhí)行的操作;>源操作數(shù)是該操作的輸入數(shù)據(jù):>目的操作數(shù)是該操作的輸出數(shù)據(jù);>下一條指令地址通知CPU到該地址去取下一條將執(zhí)行的指令。指令系統(tǒng)可分為數(shù)據(jù)傳送類、算術(shù)運(yùn)算類、邏輯類、數(shù)據(jù)變換類、輸入/輸出類、系統(tǒng)控制類、控制權(quán)轉(zhuǎn)移類等類型。指令的尋址方式:常用的尋址方式有立即數(shù)尋址、直接尋址、間接尋址、寄存器尋址、基址尋址、變址尋址、相對(duì)尋址。指令的執(zhí)行過程:1.計(jì)算下一條要執(zhí)行的指令的地址:2.從該地址讀取指令:3.對(duì)指令譯碼以確定其所要實(shí)現(xiàn)的功能;4.計(jì)算操作數(shù)的地址;5.從該地址讀取操作數(shù);6.執(zhí)行操作;7.保存結(jié)果;I/o系統(tǒng)的工作方式:>程序控制:CPU完全控制,CPU必須時(shí)時(shí)查詢I/0設(shè)備的狀態(tài);>程序中斷:I/o設(shè)備以中斷方式通知CPU,定期查詢狀態(tài)>DMA方式:CPU只在數(shù)據(jù)傳輸前和完成后才介入5.4計(jì)算機(jī)總線結(jié)構(gòu)總線:一種連接多個(gè)設(shè)備的信息傳遞通道。典型的計(jì)算機(jī)總線結(jié)構(gòu)由內(nèi)部總線和外部總線組成。內(nèi)部總線用于連接CPU內(nèi)部各個(gè)模塊:外部總線用于連接CPU、存儲(chǔ)器和I/0系統(tǒng),又稱為系統(tǒng)總線。系統(tǒng)總線:可分為數(shù)據(jù)總線、地址總線、控制總線3類。>數(shù)據(jù)總線:各個(gè)模塊間傳送數(shù)據(jù)的通道;>地址總線:傳遞地址信息,來(lái)指示數(shù)據(jù)總線上的數(shù)據(jù)的來(lái)源或去向,CPU根據(jù)地址信息從相應(yīng)的存儲(chǔ)單元讀出數(shù)據(jù)或向該存儲(chǔ)單元寫入數(shù)據(jù):>控制總線:控制數(shù)據(jù)總線和地址總線。1.流水線技術(shù):流水線技術(shù)其實(shí)是通過并行硬件來(lái)提高系統(tǒng)性能的常用方法。基本思想在馮·諾依曼第一臺(tái)存儲(chǔ)程序計(jì)算機(jī)中已經(jīng)提

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論