軟件工程復(fù)習(xí)-_第1頁(yè)
軟件工程復(fù)習(xí)-_第2頁(yè)
軟件工程復(fù)習(xí)-_第3頁(yè)
軟件工程復(fù)習(xí)-_第4頁(yè)
軟件工程復(fù)習(xí)-_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第一章軟件工程學(xué)概述1.什么是軟件危機(jī)?它有哪些典型表現(xiàn)?為什么會(huì)出現(xiàn)軟件危機(jī)?軟件危機(jī)的典型表現(xiàn):對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。用戶對(duì)“已完成”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。軟件產(chǎn)品的質(zhì)量往往靠不住。軟件常常是不可維護(hù)的。軟件通常沒有適當(dāng)?shù)奈臋n資料。軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升。軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì)。產(chǎn)生軟件危機(jī)的原因:一方面與軟件本身的特點(diǎn)有關(guān),另一方面也和軟件開發(fā)與維護(hù)的方法不正確有關(guān)。軟件不同于硬件,它是計(jì)算機(jī)系統(tǒng)中的邏輯部件而不是物理部件。管理和控制軟件開發(fā)過(guò)程相當(dāng)困難。軟件是規(guī)模龐大,而且程序復(fù)雜性將隨著程序規(guī)模的增加而呈指數(shù)上升。目前相當(dāng)多的軟件專業(yè)人員對(duì)軟件開發(fā)和維護(hù)還有不省糊涂觀念,在實(shí)踐過(guò)程中或多或少地采用了錯(cuò)誤的方法和技術(shù),這是使軟件問(wèn)題發(fā)展成軟件危機(jī)的主要原因。軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。2.什么是軟件工程?它有哪些本質(zhì)特性?怎樣用軟件工程消除軟件危機(jī)?采用工程的概念、原理、技術(shù)和方法來(lái)開發(fā)與維護(hù)軟件,把經(jīng)過(guò)時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來(lái),以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程。本質(zhì)特性:軟件工程關(guān)注于大型程序的構(gòu)造。軟件工程的中心課題是控制復(fù)雜性。(3)軟件經(jīng)常變化。開發(fā)軟件的效率非常重要。和諧地合作是開發(fā)軟件的關(guān)鍵。軟件必須有效地支持它的用戶。在軟件工程領(lǐng)域中通常由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品。緩解軟件危機(jī):軟件危機(jī)只有緩解,不可能解決,特別是在目前這種硬件結(jié)構(gòu)體系下開發(fā)的軟件,其危機(jī)永遠(yuǎn)存在,即使未來(lái)的新一代計(jì)算機(jī)系統(tǒng)問(wèn)世后,那也會(huì)產(chǎn)生新形式的軟件危機(jī)。要緩解軟件危機(jī),既要有先進(jìn)的技術(shù)和方法,又需要高水平的組織管理措施。而軟件工程正是綜合了管理和技術(shù)兩方面,研究如何更好地開發(fā)軟件的一門新興學(xué)科。所以,就目前而言,軟件工程是緩解軟件危機(jī)的最好途徑。6.什么是軟件過(guò)程?它與軟件工程方法學(xué)有何關(guān)系?答:軟件過(guò)程是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。軟件工程方法學(xué)包含軟件過(guò)程。數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對(duì)數(shù)據(jù)流圖中包含的所有元素的定義的集合。數(shù)據(jù)字典組成:數(shù)據(jù)流,數(shù)據(jù)元素,數(shù)據(jù)存儲(chǔ),處理。數(shù)據(jù)元素組成:順序、選擇、重復(fù),可選。數(shù)據(jù)字典最重要的用途是作為分析階段的工具。7.什么是軟件生命周期模型?試比較瀑布模型、快速原型模型、增量模型和螺旋模型的優(yōu)缺點(diǎn),說(shuō)明每種模型的適用范圍。軟件生命周期模型,是從一個(gè)特定角度提出的對(duì)軟件過(guò)程的簡(jiǎn)化描述,是對(duì)軟件開發(fā)實(shí)際過(guò)程的抽象,它包括構(gòu)成軟件過(guò)程的各種活動(dòng)、軟件工件(artifact)以及參與角色等。瀑布模型的優(yōu)點(diǎn):有利于大型軟件開發(fā)過(guò)程中人員的組織、管理,有利于軟件開發(fā)方法和工具的研究,從而提高了大型軟件項(xiàng)目開發(fā)的質(zhì)量和效率。瀑布模型的缺點(diǎn):(1)開發(fā)過(guò)程一般不能逆轉(zhuǎn),否則代價(jià)太大;(2)實(shí)際的項(xiàng)目開發(fā)很難嚴(yán)格按該模型進(jìn)行;(3)客戶往往很難清楚地給出所有的需求,而該模型卻要求如此。(4)軟件的實(shí)際情況必須到項(xiàng)目開發(fā)的后期客戶才能看到,這要求客戶有足夠的耐心。瀑布模型的使用范圍:(1)用戶的需求非常清楚全面,且在開發(fā)過(guò)程中沒有或很少變化;(2)開發(fā)人員對(duì)軟件的應(yīng)用領(lǐng)域很熟悉;(3)用戶的使用環(huán)境非常穩(wěn)定;(4)開發(fā)工作對(duì)用戶參與的要求很低??焖僭湍P偷膬?yōu)點(diǎn):(1)可以得到比較良好的需求定義,容易適應(yīng)需求的變化;(2)有利于開發(fā)與培訓(xùn)的同步;(3)開發(fā)費(fèi)用低、開發(fā)周期短且對(duì)用戶更友好??焖僭湍P偷娜秉c(diǎn):(1)客戶與開發(fā)者對(duì)原型理解不同;(2)準(zhǔn)確的原型設(shè)計(jì)比較困難;(3)不利于開發(fā)人員的創(chuàng)新??焖僭湍P偷氖褂梅秶海?)對(duì)所開發(fā)的領(lǐng)域比較熟悉而且有快速的原型開發(fā)工具;(2)項(xiàng)目招投標(biāo)時(shí),可以以原型模型作為軟件的開發(fā)模型;(3)進(jìn)行產(chǎn)品移植或升級(jí)時(shí),或?qū)σ延挟a(chǎn)品原型進(jìn)行客戶化工作時(shí),原型模型是非常適合的。增量模型的優(yōu)點(diǎn):(1)采用增量模型的優(yōu)點(diǎn)是人員分配靈活,剛開始不用投入大量人力資源;(2)如果核心產(chǎn)品很受歡迎,則可增加人力實(shí)現(xiàn)下一個(gè)增量;(3)可先發(fā)布部分功能給客戶,對(duì)客戶起到鎮(zhèn)靜劑的作用。增量模型的缺點(diǎn):(1)并行開發(fā)構(gòu)件有可能遇到不能集成的風(fēng)險(xiǎn),軟件必須具備開放式的體系結(jié)構(gòu);(2)增量模型的靈活性可以使其適應(yīng)這種變化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟件過(guò)程的控制失去整體性。增量模型的使用范圍:(1)進(jìn)行已有產(chǎn)品升級(jí)或新版本開發(fā),增量模型是非常適合的;(2)對(duì)完成期限嚴(yán)格要求的產(chǎn)品,可以使用增量模型;(3)對(duì)所開發(fā)的領(lǐng)域比較熟悉而且已有原型系統(tǒng),增量模型也是非常適合的。螺旋模型的優(yōu)點(diǎn):(1)設(shè)計(jì)上的靈活性,可以在項(xiàng)目的各個(gè)階段進(jìn)行變更;(2)以小的分段來(lái)構(gòu)建大型系統(tǒng),使成本計(jì)算變得簡(jiǎn)單容易;(3)客戶始終參與每個(gè)階段的開發(fā),保證了項(xiàng)目不偏離正確方向以及項(xiàng)目的可控性;(4)隨著項(xiàng)目推進(jìn),客戶始終掌握項(xiàng)目的最新信息,從而他或她能夠和管理層有效地交互。螺旋模型的缺點(diǎn):(1)采用螺旋模型需要具有相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí),在風(fēng)險(xiǎn)較大的項(xiàng)目開發(fā)中,如果未能夠及時(shí)標(biāo)識(shí)風(fēng)險(xiǎn),勢(shì)必造成重大損失;(2)過(guò)多的迭代次數(shù)會(huì)增加開發(fā)成本,延遲提交時(shí)間。螺旋模型的使用范圍:螺旋模型只適合于大規(guī)模的軟件項(xiàng)目。系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號(hào)以黑盒子形式描繪組成系統(tǒng)的每個(gè)部件(程序、文檔、數(shù)據(jù)庫(kù)、人工過(guò)程等)。數(shù)據(jù)流圖(DFD)是一種圖形化技術(shù),它描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過(guò)程中所經(jīng)受的變換。需求分析過(guò)程應(yīng)建立的3種模型:數(shù)據(jù)模型、功能模型和行為模型狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱狀態(tài)圖)通過(guò)描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來(lái)表示系統(tǒng)的行為。狀態(tài)圖還指明了作業(yè)特定事件的結(jié)果系統(tǒng)將做哪些動(dòng)作。狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,一個(gè)狀態(tài)代表系統(tǒng)的一種行為模式。

事件是在某個(gè)特定時(shí)刻發(fā)生的事情,它是對(duì)引起系統(tǒng)做動(dòng)作或(和)從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)狀態(tài)的外界事件的抽象。層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)。IPO圖是輸入、處理、輸出圖的簡(jiǎn)稱,它是由美國(guó)IBM公司發(fā)展完善起來(lái)的一種圖形工具,能夠方便地描繪輸入數(shù)據(jù)、對(duì)數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系。3.銀行計(jì)算機(jī)儲(chǔ)蓄系統(tǒng)的工作過(guò)程大致如下:儲(chǔ)戶填寫的存款單或取款單由業(yè)務(wù)員鍵入系統(tǒng),如果是存款則系統(tǒng)記錄存款人姓名、住址(或電話號(hào)碼)、身份證號(hào)碼、存款類型、存款日期、到期日期、利率及密碼(可選)等信息,并印出存單給儲(chǔ)戶;如果是取款而且存款時(shí)留有密碼,則系統(tǒng)首先核對(duì)儲(chǔ)戶密碼,若密碼正確或存款時(shí)未留密碼,則系統(tǒng)計(jì)算利息并印出利息清單給儲(chǔ)戶。請(qǐng)用數(shù)據(jù)流圖描繪本系統(tǒng)的功能儲(chǔ)戶存單利息P5撲印利息淸單r>1記錄存款信息密碼存熬信息j利息利息Jr*1儲(chǔ)戶存單利息P5撲印利息淸單r>1記錄存款信息密碼存熬信息j利息利息Jr*1f P3取款佶息.P4]L核乳沖沙丿4 、Jr-tt.,■▲7利也P2打印存m/儲(chǔ)戶態(tài),一旦接收到復(fù)印作后又回到閑置狀態(tài);等待下一個(gè)復(fù)印命5?辦公室復(fù)印機(jī)的工命令則進(jìn)入復(fù)印狀態(tài)西 門…I 令;如果執(zhí)行復(fù)印卩命令時(shí)發(fā)現(xiàn)缺紙,則邸缺紙狀態(tài),發(fā)岀警告,等報(bào)紙裝滿紙后進(jìn)入閑置狀態(tài),準(zhǔn)備接收復(fù)印命令;如果復(fù)印時(shí)發(fā)生卡紙故障,則進(jìn)入卡紙狀態(tài),發(fā)出警告等待成一個(gè)復(fù)印命令絕維修人員來(lái)排除故障,故障排除后回到閑置狀態(tài)。(請(qǐng)用狀態(tài)轉(zhuǎn)換圖描繪復(fù)印機(jī)的行為。)存款單、存單 '儲(chǔ)戶銀行儲(chǔ)蓄系統(tǒng) 歹儲(chǔ)戶取款單〔 )利息清單

第五章總體設(shè)計(jì)模塊是由邊界元素限定的相鄰程序元素序列,而且有一個(gè)總體標(biāo)識(shí)符代表它。過(guò)程、函數(shù)、子程序和宏等,都可以作為模塊。模塊化就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問(wèn)的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來(lái)構(gòu)成一個(gè)整體,可以完成指定的功能滿足用戶的需求。信息隱藏:使一個(gè)模塊內(nèi)包含的信息(過(guò)程和數(shù)據(jù))對(duì)于不需要這些信息的模塊來(lái)說(shuō),是不能訪問(wèn)的。局部化是指把一些關(guān)系密切的軟件元素物理地放得彼此靠近。有助于實(shí)現(xiàn)信息隱藏。模塊獨(dú)立的概念是模塊化、抽象、信息隱藏和局部化概念的直接結(jié)果。模塊獨(dú)立的重要性:有效的模塊化(即有獨(dú)立的模塊)的軟件比較容易開發(fā)出來(lái)。獨(dú)立的模塊比較容易測(cè)試和維護(hù)。耦合衡量不同模塊彼此間互相信賴(連接)的緊密程度;內(nèi)聚衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度。低耦合:數(shù)據(jù)耦合高內(nèi)聚:功能內(nèi)聚、順序內(nèi)聚盡量做到作用數(shù)據(jù)耦合,少用控制耦合和特征耦合限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。面向數(shù)據(jù)流的設(shè)計(jì)方法把信息流映射成軟件結(jié)構(gòu),信息流類型決定了映射的方法。變換流:信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過(guò)變換中心,經(jīng)加處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。事務(wù)流:以事務(wù)為中心,數(shù)據(jù)沿輸入通路到達(dá)一個(gè)處理T,這個(gè)處理根據(jù)輸入數(shù)據(jù)的類型在若干個(gè)動(dòng)作序列中選出一個(gè)來(lái)執(zhí)行。事務(wù)中心所要完成任務(wù):接收輸入數(shù)據(jù)(輸入數(shù)據(jù)又稱為事務(wù))。2.分析每個(gè)事務(wù)以確定它的類型。根據(jù)事務(wù)類型選取一條活動(dòng)通路。3畫出下列偽碼程序的程序流程圖和盒圖STARTIFpTHENWHILEqDOENDDOELSEBLOCKENDBLOCKENDIFSTOP下圖給出的程序流程圖代表一個(gè)非結(jié)構(gòu)化的程序,請(qǐng)問(wèn):(1) 為什么說(shuō)它是非結(jié)構(gòu)化的?(2) 設(shè)計(jì)一個(gè)等價(jià)的結(jié)構(gòu)化程序。(3)在(2)題的設(shè)計(jì)中你使用附加的標(biāo)志變量flag嗎?若沒用,請(qǐng)?jiān)僭O(shè)計(jì)一個(gè)使用flag的程序;若用了,再設(shè)計(jì)一個(gè)不用flag的程序(1)通常所說(shuō)的結(jié)構(gòu)化程序,是按照狹義的結(jié)構(gòu)程序的定義衡量,符合定義規(guī)定的程序。圖示的程序的循環(huán)控制結(jié)構(gòu)有兩個(gè)出口,顯然不符合狹義的結(jié)構(gòu)程序的定義,因此是非結(jié)構(gòu)化的程序。附力"的扌示總至少有兩種右法可以才巴諫程序改造為等價(jià)旳結(jié)構(gòu)化程序,圖示盒圖描縉了等價(jià)的結(jié)枇H匕程序”flag?-flag?-THUEX p /rflag^FAr.SE&(NOTqJOR.(NOTflag)(2)不使用flag把該程序改造為等價(jià)的結(jié)構(gòu)化程序的方法如圖所示。P142-P代表交易的總金額,Q代表每股的售價(jià),n代表交易的股數(shù)。(1)表示手續(xù)費(fèi)計(jì)算方法的判定表如圖所示。判定表的每一列是一條計(jì)算規(guī)則。例如,第1列(規(guī)則1)規(guī)定,當(dāng)交易總金額P少于1000元,且每股售價(jià)P142-P代表交易的總金額,Q代表每股的售價(jià),n代表交易的股數(shù)。(1)表示手續(xù)費(fèi)計(jì)算方法的判定表如圖所示。判定表的每一列是一條計(jì)算規(guī)則。例如,第1列(規(guī)則1)規(guī)定,當(dāng)交易總金額P少于1000元,且每股售價(jià)Q低于14元,且交易的股數(shù)n是100的倍數(shù)時(shí),給經(jīng)紀(jì)人的手續(xù)費(fèi)為(l+0.05)x0.084P第16列(規(guī)則16)表明,當(dāng)交易總金額P超過(guò)10000元,且每股售價(jià)Q在14元到25元之間,且交易的股數(shù)n不是100的倍數(shù)時(shí),手續(xù)費(fèi)為(1+0.06)x(0.04P+134)123 4567 8IO1112131415Ii&、1718r**cioooTTTTTTFF甘FFFRFFFFF]ooowpWiooooFFFFFTT~TT'TTFFFFK'F尸A1COOCFF*FKHFFbF'FF1-TTTTTTT14TTFRFFTTFFFKTTFF1RF14WQW2SF*HT丁F,FTFTTFFFFTTFFQA25Kl■-H1'rFFFFTTP*FPRTT"NIOC的借效T石rFTKfKrFTF1卜rFTF(1-4-0.O5>XO.O84PX<1-+-O.09〉XO.084PX<1-4-0.02)XO.084X<1-FO.06〉XO.084尸>C<1-?-O.O1>XO.084J3X<1+6C4>XO.084尸X<14-0.OS》XCO.O5P-b34》XCl4-0.O9>XCO.OSJ3-!-34)XC1-FO.02)X<O.O5P+34〉XC1-4-O.06)X<O.OSP+34〉Cl-t-o.O1>X.Co.05P-f-34〉XC1-l-O.04》X<O.05J3-?-34)XVl+O.O5>X<O.O4P+】34》XC1-1-O.09》X<O.04P+134》X<1-l-O.O2>X<O.O4P-F134〉X(l+O-O6>XCO.04P+134〉X<1-l-O.Ol>XCO.04P+134〉X<1tO.04>X<O.W-t134>X規(guī)mij(3)表示手續(xù)費(fèi)計(jì)算方法的判定樹如圖所示。一£><14["是100倍數(shù) (1+0.05)X0.084P"不是100倍數(shù)——(l+0.09)x0.084Pr—P<1000idvcvx—"是1°°倍數(shù)—(1+002)X0.084P_”不是I%倍數(shù)——(1+O.O6)XO.O84P_| "是100倍數(shù)——(1+0.01)X0.084P—I ”不是100倍數(shù)——(1-H).O4)XO.O84P—N4["是100倍數(shù)——(l+0.05)x(0.05P+34)"不是100倍數(shù)——(1+0.09)x(0.05P+34)一1000WPW10000_mvcvx—"是20倍數(shù)—(1+002)x(0.05/>+34)-14'侖73——”不是100倍數(shù)——(l+0.06)x(0.05P+34)"是100倍數(shù)——(1+0.01)x(0.05P+34)"不是100倍數(shù)——(1+0.04)x(0.054+34)"是100倍數(shù)——(1+0.05)x(0.04P+134)"不是100倍數(shù) (I+0.09)X(0.04P+134)>—P>10000idvcvx—"是倍數(shù)一(1H).O2)X(O.O4P+134)侖? ——”不是100倍數(shù)——(1+0.06)X(0.04P+134)-5-625I ”是1°°倍數(shù)一(1+001)X(0.04P+134)1 ”不是100倍數(shù)——(1+0.04)x(0.04P+134)軟件測(cè)試步驟:模塊測(cè)試子系統(tǒng)測(cè)試系統(tǒng)測(cè)試驗(yàn)收測(cè)試平行運(yùn)行代碼審查:由審查小組正式進(jìn)行人工測(cè)試源程序。代碼審查比計(jì)算機(jī)測(cè)試優(yōu)越的是:一次審查會(huì)上可以發(fā)現(xiàn)許多錯(cuò)誤;用計(jì)算機(jī)測(cè)試的方法發(fā)現(xiàn)錯(cuò)誤之后,通常需要先改正這個(gè)錯(cuò)誤才能繼續(xù)測(cè)試,因此錯(cuò)誤是一個(gè)個(gè)地發(fā)現(xiàn)并改正的。也就是說(shuō),采用代碼審查方法可以減少系統(tǒng)驗(yàn)證的總工作量。集成測(cè)試是測(cè)試和組裝軟件的系統(tǒng)化技術(shù),有非漸增式測(cè)試和漸增式測(cè)試。漸增式測(cè)試有自頂向下集成和自底向上集成回歸測(cè)試是指重新執(zhí)行已經(jīng)做過(guò)的測(cè)試的某個(gè)子集,以保證集成測(cè)試中發(fā)生的變化沒有帶來(lái)非預(yù)期的副作用?;貧w測(cè)試集3類測(cè)試用例:檢測(cè)軟件全部功能的代表性測(cè)試用例。專門針對(duì)可能受修改影響的軟件功能的附加測(cè)試。針對(duì)被修改的軟件成分測(cè)試。白盒測(cè)試:按照程序內(nèi)部的結(jié)構(gòu)測(cè)試程序,通過(guò)測(cè)試來(lái)檢測(cè)產(chǎn)品內(nèi)部動(dòng)作是否按照設(shè)計(jì)規(guī)格說(shuō)明書的規(guī)定正常進(jìn)行,檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作。黑盒測(cè)試:主要著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試。等價(jià)劃分是一種墨盒測(cè)試技術(shù),這種技術(shù)程序的輸入域劃分成若干個(gè)數(shù)據(jù)類,據(jù)此導(dǎo)出測(cè)試用例。2.邊界值分析3.錯(cuò)誤推測(cè)軟件維護(hù)是在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過(guò)程??谶M(jìn)行維護(hù)的原因:改正程序中的錯(cuò)誤和缺陷;改進(jìn)設(shè)計(jì)以適應(yīng)新的軟、硬件環(huán)境;增加新的應(yīng)用范圍;為了將來(lái)的維護(hù)工作??诰S護(hù)分為以下幾類:糾錯(cuò)性維護(hù);適應(yīng)性維護(hù);完善性維護(hù);預(yù)防性維護(hù)軟件的可維護(hù)性:維護(hù)人員理解、改正、改動(dòng)或改進(jìn)這個(gè)軟件的難易程度。決定軟件可維護(hù)性的因素:可理解性;2.可測(cè)試性;3.可修改性;4.可移植性;5.可重用性。文檔是影響軟件可維護(hù)性的決定因素。包括用戶文檔與系統(tǒng)文檔。如何提高軟件產(chǎn)品的可強(qiáng)維護(hù)性:建立明確的軟件質(zhì)量目標(biāo)。使用先進(jìn)的軟件開發(fā)技術(shù)和工具。建立明確的質(zhì)量保證。選擇可維護(hù)的語(yǔ)言。改進(jìn)程序的文檔。“面向?qū)ο蟆笔菍V冈诔绦蛟O(shè)計(jì)中采用封裝、繼承、多態(tài)等設(shè)計(jì)方法。面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn):1.與人類習(xí)慣的思維方法一致。2.穩(wěn)定性好3.可重用性好4.較易開發(fā)大型軟件產(chǎn)品5.可維護(hù)性好具有相同特性(數(shù)據(jù)元素)和行為(功能)的對(duì)象的抽象就是類。因此,對(duì)象的抽象是類,類的具體化就是對(duì)象,也可以說(shuō)類的實(shí)例是對(duì)象,類實(shí)際上就是一種數(shù)據(jù)類型。類具有屬性,它是對(duì)象的狀態(tài)的抽象,用數(shù)據(jù)結(jié)構(gòu)來(lái)描述類的屬性。類具有操作,它是對(duì)象的行為的抽象,用操作名和實(shí)現(xiàn)該操作的方法來(lái)描述。實(shí)例就是由某個(gè)特定的類所描述的一個(gè)具體的對(duì)象。消息就是要求某個(gè)對(duì)象執(zhí)行在定義它的那個(gè)類中所定義的某個(gè)操作的規(guī)格說(shuō)明。消息的組成:接收消息的對(duì)象;消息選擇符;零個(gè)或多個(gè)變?cè)J裁词恰皩?duì)象”?它與傳統(tǒng)的數(shù)據(jù)有何異同?對(duì)象是用面向?qū)ο蠓椒▽W(xué)開發(fā)軟件時(shí)對(duì)客觀世界實(shí)體的抽象,它是由描述實(shí)體屬性的數(shù)據(jù)及可以對(duì)這些數(shù)據(jù)施加的所有操作封裝在一起構(gòu)成的統(tǒng)一體。傳統(tǒng)的數(shù)據(jù)是用傳統(tǒng)方法學(xué)開發(fā)軟件時(shí)對(duì)客觀世界實(shí)體的抽象,但是,這種抽象是不全面的:數(shù)據(jù)只能描述實(shí)體的靜態(tài)屬性,不能描述實(shí)體的動(dòng)態(tài)行為。必須從外界對(duì)數(shù)據(jù)施加操作,才能改變數(shù)據(jù)實(shí)現(xiàn)實(shí)體應(yīng)有的行為。對(duì)象與傳統(tǒng)數(shù)據(jù)有本質(zhì)區(qū)別,它不是被動(dòng)地等待外界對(duì)它施加操作,相反,它是進(jìn)行處理的主體。必須發(fā)消息請(qǐng)求對(duì)象主動(dòng)地執(zhí)行它的某些操作,處理它的私有數(shù)據(jù),而不能直接從外界對(duì)它的私有數(shù)據(jù)進(jìn)行操作。模型是什么?簡(jiǎn)單地說(shuō):模型是對(duì)現(xiàn)實(shí)的簡(jiǎn)化。模型提供了系統(tǒng)的藍(lán)圖。模型既可以包括詳細(xì)的計(jì)劃,也可以包括從很高的層次考慮系統(tǒng)的總體計(jì)劃。一個(gè)好的模型包括那些有廣泛影響的主要元素,而忽略那些與給定的抽象水平不相關(guān)的次要元素。每個(gè)系統(tǒng)都可以從不同的方面用不同的模型來(lái)描述,因而每個(gè)模型都是一個(gè)在語(yǔ)義上閉合的系統(tǒng)抽象。模型可以是結(jié)構(gòu)性的,強(qiáng)調(diào)系統(tǒng)的組織。它也可以是行為性的,強(qiáng)調(diào)系統(tǒng)的動(dòng)態(tài)方面。建模是為了能夠更好地理解正在開發(fā)的系統(tǒng)通過(guò)建模,要達(dá)到4個(gè)目的:(1)模型有助于按照實(shí)際情況或按照所需要的樣式對(duì)系統(tǒng)進(jìn)行可視化。(2)模型能夠規(guī)約系統(tǒng)的結(jié)構(gòu)或行為。(3)模型給出了指導(dǎo)構(gòu)造系統(tǒng)的模板。(4)模型對(duì)做出的決策進(jìn)行文檔化。建模并不只是針對(duì)大的系統(tǒng)。甚至像狗窩那樣的軟件也能從一些建模中受益。然而,可以明確地講,系統(tǒng)越大、越復(fù)雜,建模的重要性就越大,一個(gè)很簡(jiǎn)單的原因是:因?yàn)椴荒芡暾乩斫庖粋€(gè)復(fù)雜的系統(tǒng),所以要對(duì)它建模。面向?qū)ο蠓治?,就是抽取和整理用戶需求并建立?wèn)題域精確模型的過(guò)程。對(duì)象模型5個(gè)層次:主題層、類與對(duì)象層、結(jié)構(gòu)層、屬性層和服務(wù)層。面向?qū)ο蠓治鲆话沩樞颍簩ふ翌惻c對(duì)象,識(shí)別結(jié)構(gòu),識(shí)別主題,定義屬性,建立動(dòng)態(tài)模型,定義服務(wù)。1。面向?qū)ο笤O(shè)計(jì)應(yīng)該遵循哪些準(zhǔn)則?1)模塊化2)抽象3)信息隱藏4)弱耦合5)強(qiáng)內(nèi)聚6)可重用2。簡(jiǎn)述每條準(zhǔn)則的內(nèi)容,并說(shuō)明遵循這條準(zhǔn)則的必要性1.模塊化:對(duì)象就是模塊,它把數(shù)據(jù)結(jié)構(gòu)和操作這些數(shù)據(jù)的方法緊密地結(jié)合在一起所構(gòu)成的模塊。2.抽象:面向?qū)ο蠓椒ú粌H支持過(guò)程抽象,而且支持?jǐn)?shù)據(jù)抽象。使用者無(wú)須知道這些操作符的實(shí)現(xiàn)算法和類中數(shù)據(jù)元素的具體表示方法,就可以通過(guò)這些操作符使用類中定義的數(shù)據(jù)。此外,某些面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言還支持參數(shù)抽象。例如,C++語(yǔ)言提供的“某板”機(jī)制就是一種參數(shù)化抽象機(jī)制。3.信息隱藏:在面向?qū)ο蠓椒▍R總信息隱藏通過(guò)對(duì)象的封裝性實(shí)現(xiàn):類結(jié)合分離了接口與實(shí)現(xiàn),從而支持了信息隱藏。對(duì)于類的用戶來(lái)說(shuō),屬性的表示方法和操作的實(shí)現(xiàn)算法都應(yīng)該是隱藏的。弱耦合:耦合指一個(gè)軟件結(jié)合內(nèi)不同模塊之間互連的緊密程度。在面向?qū)ο蠓椒ㄖ?,?duì)象是最基本的模塊,因此,耦合主要指不同對(duì)象之間相互的緊密程度。弱偶合是優(yōu)秀設(shè)計(jì)的一個(gè)重要標(biāo)準(zhǔn),一般來(lái)說(shuō),對(duì)想之間的耦合可分為兩大類,(1)交互耦合如果對(duì)象之間的耦合通過(guò)消息連接來(lái)實(shí)現(xiàn),則這種耦合就是交互耦合。(2)繼承耦合,與交互耦合相反,應(yīng)該提高繼承耦合程度。強(qiáng)內(nèi)聚:內(nèi)聚衡量一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度。也可以把內(nèi)聚定義為:設(shè)計(jì)中使用的一個(gè)構(gòu)件內(nèi)的各個(gè)元素,對(duì)完成一個(gè)定義明確的目的所做出的貢獻(xiàn)程度。在設(shè)計(jì)時(shí)應(yīng)該力求做到高內(nèi)聚。在面向?qū)ο笤O(shè)計(jì)中存在下述三種內(nèi)聚:(1)服務(wù)內(nèi)聚(2)類內(nèi)聚(3)泛化內(nèi)聚。一般來(lái)說(shuō),緊密的繼承耦合與高度的泛化內(nèi)聚是一致的??芍赜茫很浖赜檬翘峁└哕浖_發(fā)生產(chǎn)率和目標(biāo)系統(tǒng)質(zhì)量的重要途徑。重要基本上從設(shè)計(jì)階段開始。重要有兩方面的含義:一是盡量使用已有的類(包括開發(fā)環(huán)境提供的類庫(kù),及以往開發(fā)類似系統(tǒng)時(shí)創(chuàng)建的類),二是如果確實(shí)需要?jiǎng)?chuàng)建新類,則在設(shè)計(jì)這些新類的協(xié)議時(shí),應(yīng)該考慮將來(lái)的可重復(fù)使用性。4良好的面向?qū)ο蟪绦蛟O(shè)計(jì)風(fēng)格主要有哪些準(zhǔn)則?答:良好的面向?qū)ο蟪绦蛟O(shè)計(jì)風(fēng)格,即包括傳統(tǒng)的程序設(shè)計(jì)風(fēng)格準(zhǔn)則,

溫馨提示

  • 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ù)覽,若沒有圖紙預(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)論