![軟件工程復(fù)習(xí)的幾個知識點和例題_第1頁](http://file4.renrendoc.com/view/9bd7076dac9b1dc673a80efe2e47b408/9bd7076dac9b1dc673a80efe2e47b4081.gif)
![軟件工程復(fù)習(xí)的幾個知識點和例題_第2頁](http://file4.renrendoc.com/view/9bd7076dac9b1dc673a80efe2e47b408/9bd7076dac9b1dc673a80efe2e47b4082.gif)
![軟件工程復(fù)習(xí)的幾個知識點和例題_第3頁](http://file4.renrendoc.com/view/9bd7076dac9b1dc673a80efe2e47b408/9bd7076dac9b1dc673a80efe2e47b4083.gif)
![軟件工程復(fù)習(xí)的幾個知識點和例題_第4頁](http://file4.renrendoc.com/view/9bd7076dac9b1dc673a80efe2e47b408/9bd7076dac9b1dc673a80efe2e47b4084.gif)
![軟件工程復(fù)習(xí)的幾個知識點和例題_第5頁](http://file4.renrendoc.com/view/9bd7076dac9b1dc673a80efe2e47b408/9bd7076dac9b1dc673a80efe2e47b4085.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件危機的概念,內(nèi)容,原因及消除的途徑;概念:軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。內(nèi)容: eq oac(,1).對軟件開發(fā)成本和進度的估計常常很不準確。 eq oac(,2).用戶對“已完成”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。 eq oac(,3).軟件產(chǎn)品的質(zhì)量往往靠不住。 eq oac(,4).軟件常常是不可維護的。 eq oac(,5).軟件通常沒有適當(dāng)?shù)奈臋n資料。 eq oac(,6).軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升。 eq oac(,7).軟件開發(fā)生產(chǎn)率提高的速度,遠遠跟不上計算機應(yīng)用迅速普及深入的趨勢。原因:一方面與軟件本身的特點有關(guān),另一
2、方面也和軟件開發(fā)與維護的方法不正確有關(guān)。消除的途徑:要緩解軟件危機,既要有先進的技術(shù)和方法,又需要高水平的組織管理措施。而軟件工程正是綜合了管理和技術(shù)兩方面,研究如何更好地開發(fā)軟件的一門新興學(xué)科。所以,就目前而言,軟件工程是緩解軟件危機的最好途徑。軟件工程的定義,基本原理;定義:軟件工程是指導(dǎo)計算機軟件開發(fā)和維護的一門工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟地開發(fā)出高質(zhì)量的軟件并有效地維護它,這就是軟件工程。基本原理: eq oac(,1).用分段的生命周期計劃嚴格管理。 eq oac(,2).
3、堅持進行階段評審。 eq oac(,3).實行嚴格的產(chǎn)品控制。 eq oac(,4).采用現(xiàn)代程序設(shè)計技術(shù)。 eq oac(,5).結(jié)果能清楚地審查。 eq oac(,6).開發(fā)小組的人員應(yīng)盡量少而精。 eq oac(,7).承認不斷改進軟件工程實踐的必要性。軟件工程方法學(xué)的基本概念、內(nèi)容;基本概念:軟件工程方法學(xué)就是指在軟件生命周期全過程中使用的一整套管理和開發(fā)技術(shù)方法的集合。內(nèi)容: eq oac(,1).傳統(tǒng)方法學(xué)(也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型) eq oac(,2).面向?qū)ο蠓椒▽W(xué)。軟件生命周期的具體內(nèi)容,每一個階段的任務(wù)是什么?結(jié)合具體的工程例子來理解做軟件項目主要分那幾個階段。軟
4、件生命周期由定義、軟件開發(fā)和運行維護3個時期組成,每個時期又進一步劃分成若干個階段。軟件生命周期每個階段的基本任務(wù): eq oac(,1).問題定義:問題定義階段必須回答的關(guān)鍵問題是:“要解決的問題是什么” eq oac(,2).可行性研究:這個階段的任務(wù)不是具體解決問題,而是研究問題的范圍,探索這個問題是否值得去解,是否有可行的解決辦法。 eq oac(,3).需求分析:確定目標(biāo)系統(tǒng)必須具備哪些功能,是用正式文檔準確地記錄對目標(biāo)系統(tǒng)的需要,這份文檔通常稱為規(guī)格說明書。 eq oac(,4).總體設(shè)計:設(shè)計出實現(xiàn)目標(biāo)系統(tǒng)的幾種可能的方案,制定出實現(xiàn)最佳方案的詳細計劃,設(shè)計程序的體系結(jié)構(gòu),也就是
5、確定程序由哪些模塊組成以及模塊間的關(guān)系。 eq oac(,5).詳細設(shè)計:詳細地設(shè)計每個模塊,確定實現(xiàn)模塊功能所需要的算法和數(shù)據(jù)結(jié)構(gòu)。 eq oac(,6).編碼和單元測試:寫出正確的容易理解、容易維護的程序模塊。 eq oac(,7).綜合測試:通過各種類型的測試(及相應(yīng)的調(diào)試)使軟件達到預(yù)定的要求。理解幾個典型軟件過程的內(nèi)容及其優(yōu)點與缺點:瀑布模型、增量模型、快速原型模型、螺旋模型、噴泉模型等;發(fā)方法和工具的研究,從而提高了大型軟件項目開發(fā)的質(zhì)量和效率。瀑布模型的缺點:(1)開發(fā)過程一般不能逆轉(zhuǎn),否則代價太大;(2)實際的項目開發(fā)很難嚴格按該模型進行;(3)客戶往往很難清楚地給出所有的需求
6、,而該模型卻要求如此。(4)軟件的實際情況必須到項目開發(fā)的后期客戶才能看到,這要求客戶有足夠的耐心。 快速原型模型的優(yōu)點:(1)可以得到比較良好的需求定義,容易適應(yīng)需求的變化;(2)有利于開發(fā)與培訓(xùn)的同步;(3)開發(fā)費用低、開發(fā)周期短且對用戶更友好??焖僭湍P偷娜秉c:(1)客戶與開發(fā)者對原型理解不同;(2) 準確的原型設(shè)計比較困難;(3) 不利于開發(fā)人員的創(chuàng)新。增量模型的優(yōu)點:(1)采用增量模型的優(yōu)點是人員分配靈活,剛開始不用投入大量人力資源;(2)如果核心產(chǎn)品很受歡迎,則可增加人力實現(xiàn)下一個增量;(3)可先發(fā)布部分功能給客戶,對客戶起到鎮(zhèn)靜劑的作用。增量模型的缺點:(1)并行開發(fā)構(gòu)件有可能
7、遇到不能集成的風(fēng)險,軟件必須具備開放式的體系結(jié)構(gòu);(2)增量模型的靈活性可以使其適應(yīng)這種變化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟件過程的控制失去整體性。螺旋模型的優(yōu)點:(1)設(shè)計上的靈活性,可以在項目的各個階段進行變更;(2)以小的分段來構(gòu)建大型系統(tǒng),使成本計算變得簡單容易;(3)客戶始終參與每個階段的開發(fā),保證了項目不偏離正確方向以及項目的可控性;(4) 隨著項目推進,客戶始終掌握項目的最新信息 , 從而他或她能夠和管理層有效地交互。 螺旋模型的缺點:(1)采用螺旋模型需要具有相當(dāng)豐富的風(fēng)險評估經(jīng)驗和專門知識,在風(fēng)險較大的項目開發(fā)中,如果未能夠及時標(biāo)識
8、風(fēng)險,勢必造成重大損失;(2)過多的迭代次數(shù)會增加開發(fā)成本,延遲提交時間。噴泉模型:噴泉模型與傳統(tǒng)的結(jié)構(gòu)化生存期比較,具有更多的增量和迭代性質(zhì),生存期的各個階段可以相互重疊和多次反復(fù),而且在項目的整個生存期中還可以嵌入子生存期。就像水噴上去又可以落下來,可以落在中間,也可以落在最底部。了解可行性研究中的任務(wù)和過程;任務(wù):用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決.過程:(1)復(fù)查系統(tǒng)規(guī)模和目標(biāo) (2)研究目前正在使用的系統(tǒng) (3)導(dǎo)出新系統(tǒng)的高層邏輯模型 (4)進一步定義問題 (5)導(dǎo)出和評價供選擇的解法 (6)推薦進行方針 (7)草擬開發(fā)計劃 (8)書寫文檔提交審查掌握系統(tǒng)流程圖的概
9、念和方法,會從具體的案例中抽象出系統(tǒng)流程圖;系統(tǒng)流程圖:是概括地描繪物理系統(tǒng)的傳統(tǒng)工具.它的基本思想是用圖形符號以黑盒子形式描繪組成系統(tǒng)的每個部件.掌握數(shù)據(jù)流圖的概念和方法,會從具體的案例中畫出0層數(shù)據(jù)流圖和功能級數(shù)據(jù)流圖;數(shù)據(jù)流圖有四種基本符號:(1)正方形(或立方體)表示數(shù)據(jù)的源點或終點; (2)圓角矩形代表變換數(shù)據(jù)的處理;(3)開口矩形代表數(shù)據(jù)存儲; (4)箭頭表示數(shù)據(jù)流,即特定數(shù)據(jù)的流動方向。掌握數(shù)據(jù)字典的內(nèi)容、方法、用戶和實現(xiàn);數(shù)據(jù)字典的內(nèi)容:(1)數(shù)據(jù)流 (2)數(shù)據(jù)流分量(即數(shù)據(jù)元素) (3)數(shù)據(jù)存儲 (4)處理由數(shù)據(jù)元素組成數(shù)據(jù)的方式有3種基本類型:(1)順序(2)選擇(3)重復(fù)
10、數(shù)據(jù)字典基本的表示符號: 意思是 等價于(或定義為); 意思是 和(即,連接兩個分量); 意思是或(即,從方括弧內(nèi)列出的若干個分量中選擇一個),通常用“”號分開供選擇的分量; 意思是重復(fù)(即,重復(fù)花括弧內(nèi)的分量); ( )意思是可選(即,圓括弧里的分量可有可無)。數(shù)據(jù)字典最重要用途:作為分析階段的工具了解成本/效益分析方法;了解需求分析過程中任務(wù)是什么.基本任務(wù): 問題識別:雙方確定對問題的綜合需求,這些需求包括功能需求,性能需求,環(huán)境需求,用戶界面需求。 分析與綜合,導(dǎo)出軟件的邏輯模型 編寫文檔:包括編寫需求規(guī)格說明書,初步用戶使用手冊,確認測試計劃,修改完善軟件開發(fā)計劃理解面向數(shù)據(jù)流自頂向
11、下逐步求精的方法和意義;方法:從數(shù)據(jù)流圖的輸出端著手分析可行性研究階段產(chǎn)生的是高層數(shù)據(jù)流圖從數(shù)據(jù)流圖的輸出端著手分析,這是因為系統(tǒng)的基本功能是產(chǎn)生這些輸出的關(guān)鍵原因輸出數(shù)據(jù)決定了系統(tǒng)必須具有的最基本的組成元素(包括功能和數(shù)據(jù)結(jié)構(gòu)組成)理解分析及建模的意義,需求分析中應(yīng)該建立哪三種模型?有哪些工具來幫助建立這些模型?三種模型:數(shù)據(jù)模型、功能模型、行為模型掌握實體關(guān)系(E-R)圖的概念,內(nèi)容和實現(xiàn)方法,能結(jié)合具體實例建立實體關(guān)系圖;掌握狀態(tài)圖的概念,內(nèi)容,實現(xiàn)方法和作用;掌握層次方框圖、warnier圖、IPO圖的概念,內(nèi)容和作用;有窮狀態(tài)機的概念和內(nèi)容; P77有窮狀態(tài)機:狀態(tài)集、輸入集、轉(zhuǎn)換函
12、數(shù)、初始態(tài)、終態(tài)集總體設(shè)計是做什么?總體設(shè)計的過程是怎樣的?總體結(jié)構(gòu)設(shè)計的目的是什么?總體設(shè)計的目標(biāo)是將需求分析階段定義的系統(tǒng)模型轉(zhuǎn)換成相應(yīng)的軟件結(jié)構(gòu),以規(guī)定軟件的形態(tài)及各成分間的層次關(guān)系、界面及接口要求。總體設(shè)計通常由兩個過程組成:系統(tǒng)設(shè)計階段,確定系統(tǒng)的具體實現(xiàn)方案;結(jié)構(gòu)設(shè)計階段,確定軟件結(jié)構(gòu)。目的:掌握幾個設(shè)計原理,理解他們的內(nèi)容和意義;模塊化就是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構(gòu)成一個整體,可以完成指定的功能滿足用戶的需求.2)抽象 3)逐步求精 4)信息隱藏和局部化5)模塊獨立 它有兩個定性標(biāo)準度量:內(nèi)聚和耦合.掌握耦合和內(nèi)聚的概念和
13、內(nèi)容,理解這些原理對設(shè)計有哪些指導(dǎo)意義;耦合:耦合是對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。內(nèi)聚:內(nèi)聚標(biāo)志著一個模塊內(nèi)各個元素彼此結(jié)合的緊密程序,它是信息隱藏和局部化概念的自然擴展。耦合是影響軟件復(fù)雜程度的一個重要因素。設(shè)計時力爭做到高內(nèi)聚,并且能夠辨認出低內(nèi)聚的模塊,有能力通過修改設(shè)計提高模塊的內(nèi)聚程度并且降低模塊間的耦合程度,從而獲得較高的模塊獨立性。耦合包含了哪些類型?每個類型的具體內(nèi)容是什么?要求能通過程序代碼識別出耦合類型。(1)非直接耦合:就是沒有耦合。(2)數(shù)據(jù)耦合:就是參數(shù)傳遞耦合,它屬于低級別耦合。(3)標(biāo)記耦合:標(biāo)記耦合指兩個模塊之間傳遞的是數(shù)據(jù)結(jié)構(gòu)。(4)控制耦合:它
14、屬于中級別耦合,比如調(diào)度程序與進程之間的耦合,就是控制耦合。(5)外部耦合:屬于高級別耦合(6)公共耦合:指通過一個公共數(shù)據(jù)環(huán)境相互作用的那些模塊間的耦合。(7)內(nèi)容耦合:屬于最高級別耦合,例如,一個模塊利用分支或跳轉(zhuǎn)技術(shù),轉(zhuǎn)入到另一個模塊中去執(zhí)行,就是內(nèi)容耦合。啟發(fā)性規(guī)則的內(nèi)容及部分概念。 1.改進軟件結(jié)構(gòu)提高模塊獨立性 2.模塊規(guī)模應(yīng)該適中 3.深度、寬度、扇出和扇入都應(yīng)適當(dāng) 4.模塊的作用域應(yīng)該在控制域之內(nèi) 5.力爭降低模塊接口的復(fù)雜程度6.設(shè)計單入口單出口的模塊 7.模塊功能應(yīng)該可以預(yù)測層次圖、HIPO圖和結(jié)構(gòu)圖的內(nèi)容;掌握面向數(shù)據(jù)流的設(shè)計方法,了解其中涉及到的概念(變換流,事務(wù)流),
15、結(jié)合例子理解變換分析的具體過程。面向數(shù)據(jù)流的設(shè)計方法把信息映射成軟件結(jié)構(gòu),信息流的類型決定了映射的方法。信息流有兩種:(1)變換流 (2)事務(wù)流 (P105)變換流:信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。事務(wù)流:以事務(wù)為中心,數(shù)據(jù)沿輸入通路到達一個處理T,這個處理根據(jù)輸入數(shù)據(jù)的類型在若干個動作序列中選出一個來執(zhí)行。詳細設(shè)計是做什么?詳細設(shè)計的根本目標(biāo):確定應(yīng)該怎樣具體地實現(xiàn)所要求的系統(tǒng)。 什么是結(jié)構(gòu)程序設(shè)計?如果一個程序的代碼塊僅僅通過順序、選擇和循環(huán)這3種基本控制結(jié)構(gòu)進行連接,并且每個代碼塊只有一
16、個入口和一個出口,則稱這個程序是結(jié)構(gòu)化的。人機界面設(shè)計問題包含哪些?(1)系統(tǒng)響應(yīng)時間 (2)用戶幫助設(shè)施 (3)出錯信息處理 (4)命令交互掌握設(shè)計過程中用到的工具:程序流程圖的概念,內(nèi)容和方法;盒圖的概念、內(nèi)容和方法;會結(jié)合實例使用這些工具;掌握PAD 圖的概念和內(nèi)容;掌握判定表的概念和內(nèi)容。要結(jié)合實例來掌握它們。過程設(shè)計的工具:圖形(程序流程圖、盒圖,PAD圖)、表格(判定表、判定樹)和語言(過程設(shè)計語言(PDL))三類。程序流程圖:程序流程又稱為程序框圖,它是歷史最悠久、使用最廣泛的描述過程設(shè)計的方法,然而它也是用得最混亂的一種方法。盒圖:出于要有一種不允許違背結(jié)構(gòu)程序設(shè)計精神的圖形工
17、具的考慮,Nassi和Shneiderman提出了盒圖,又稱為N-S圖。PAD圖:PAD是問題分析圖的英文縮寫,它用二維樹形結(jié)構(gòu)的圖來表示程序的控制流,將這種圖翻譯成程序代碼比較容易。判定表:一張判定表由4個部分組成,左上部列出所有條件,左下部是所有可能做的動作,右上部是表示各種條件組合的一個矩陣,右下部是和每種條件組合相對應(yīng)的動作。判定表右半部的每一列實質(zhì)上是一條規(guī)則,規(guī)定了與特定的條件組合相對應(yīng)的動作。了解結(jié)合Jackson圖來掌握面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法;會用Jackson程序設(shè)計方法對具體的實例進行設(shè)計。數(shù)據(jù)元素彼此之間的邏輯關(guān)系:順序、選擇、重復(fù)元順序結(jié)構(gòu)一個順序元素由一個或多個從左到
18、右的元素組成每個組成的元素只出現(xiàn)一次選擇結(jié)構(gòu)選擇是“If Then Else”或“Case”的結(jié)構(gòu),而且必須有兩個或多個元素使用選擇元素時根據(jù)指定的條件從這些子元素中選擇一個子元素重復(fù)結(jié)構(gòu)重復(fù)元素僅由一個子元素構(gòu)成,表示重復(fù)元素由子元素重復(fù)0次或多次組成掌握幾種測試:單元測試、集成測試、確認測試、白盒測試技術(shù)和黑盒測試技術(shù);掌握它們的概念,內(nèi)容和方法;單元測試:單元測試集中監(jiān)測軟件設(shè)計的最小單元模塊。從這些方面對模塊進行測試:(1)模塊接口(2)局部數(shù)據(jù)結(jié)構(gòu)(3)重要的執(zhí)行通路 (4)出錯處理通路(5)邊界條件集成測試:是測試和組裝軟件的系統(tǒng)化技術(shù)。測試方法:(1)非漸增式測試 (2)漸增式測
19、試當(dāng)使用漸增方式把模塊結(jié)合到程序中去時,有自頂向下和自底向上的兩種集成策略白盒測試:根據(jù)程序內(nèi)部邏輯結(jié)構(gòu)進行測試,來檢驗程序內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進行。黑盒測試:根據(jù)程序外部特征來進行測試,著重測試軟件功能,它并不能取代白盒測試,它是與白盒測試互補的測試方法。對每一種測試方法,理解其具體細節(jié):比如理解什么是漸增式測試和非漸增式測試,什么是Alpha測試和Beta測試.;Alpha測試:由用戶在開發(fā)者的場所進行,并且在開發(fā)者對用戶的指導(dǎo)下進行測試。開發(fā)者負責(zé)記錄發(fā)現(xiàn)的錯誤和使用中遇到的問題. Beta測試:由軟件的最終用戶在一個或多個客戶場所進行.與Alpha測試不同,開發(fā)者通常不
20、在Beta測試的現(xiàn)場,因此,Bate測試時軟件在開發(fā)者不能控制的環(huán)境中的真實應(yīng)用。結(jié)合G.J.Myers的觀點理解軟件測試的目的;(教材p150)掌握白盒測試的技術(shù)細節(jié)(比如:掌握邏輯覆蓋中的8個覆蓋點;掌握基本路徑測試,會根據(jù)過程設(shè)計結(jié)果畫出相應(yīng)的流圖;會計算流圖的環(huán)形復(fù)雜度;會計算出線性獨立路徑的基本集合);掌握黑盒測試的技術(shù)細節(jié);白盒測試:軟件的白盒測試是對軟件的過程性細節(jié)做細致的檢查。這種方法是把測試對象看做一個打開的盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進行測試。通過在不同點檢查程序狀態(tài),確定實際狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒
21、測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。8個覆蓋點:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、點覆蓋、邊覆蓋、路徑覆蓋黑盒測試:黑盒測試著重測試軟件功能。這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試或數(shù)據(jù)驅(qū)動測試。理解軟件維護的定義、特點和維護過程;定義:就是在軟件已經(jīng)交付使用之后,為了改正錯誤或滿足新的需要而修改的過程。過程:1、維護組織2、維護報告3、維護的事件流4、保存維護記錄5、評價維護活動。掌握面向?qū)ο蠓椒▽W(xué)的要點,理解面向?qū)ο蠓椒▽W(xué)的優(yōu)點;面向
22、對象方法學(xué)的四要點是:對象、類、繼承、消息。優(yōu)點:1.與人類習(xí)慣的思維方法一致。2.穩(wěn)定性好 3.可重用性好 4.較易開發(fā)大型軟件產(chǎn)品 5.可維護性好掌握面向?qū)ο蟮母拍睿幻嫦驅(qū)ο蟮幕靖拍睿簩ο笫怯擅枋鲈搶ο髮傧嗟臄?shù)據(jù)以及可以對這些數(shù)據(jù)施加的所有操作封裝在一起的統(tǒng)一體。面向?qū)ο蠼J墙⒛娜齻€模型?它們的具體內(nèi)容是什么?三個模型: 對象模型(類圖):描述系統(tǒng)的數(shù)據(jù)結(jié)構(gòu); 動態(tài)模型(狀態(tài)轉(zhuǎn)換圖):描述系統(tǒng)的控制結(jié)構(gòu); 功能模型(用例圖,數(shù)據(jù)流圖):描述系統(tǒng)功能。建立對象模型的內(nèi)容是什么?在面向?qū)ο蟮姆治龊驮O(shè)計階段,致力于建立模擬問題領(lǐng)域的對象模型。建立對象模型即包括自底向上的抽象過程,也包括自頂
23、向下的分解過程掌握用UML提供的類圖來建立對象模型的方法。理解類圖的定義、基本符號和具體內(nèi)容;能結(jié)合實例掌握類圖中類與類之間的關(guān)系:關(guān)聯(lián)、泛化(繼承)、依賴和細化。能根據(jù)實例情況正確判斷出類與類之間的具體關(guān)系類型。關(guān)聯(lián)(Association)表現(xiàn)為變量。類與類之間的聯(lián)接,它使一個類知道另一個類的屬性和方法。例如如果A依賴于B,則B體現(xiàn)為A的全局變量。如person類和company類關(guān)聯(lián)關(guān)系有雙向關(guān)聯(lián)和單向關(guān)聯(lián)。雙向關(guān)聯(lián):兩個類都知道另一個類的公共屬性和操作。單向關(guān)聯(lián):只有一個類知道另外一個類的公共屬性和操作。大多數(shù)關(guān)聯(lián)應(yīng)該是單向的,單向關(guān)系更容易建立和維護,有助于尋找可服用的類。UML圖中
24、實現(xiàn)使用一條實線連接相同或不同類泛化(Generalization)表現(xiàn)為繼承或?qū)崿F(xiàn)關(guān)系。具體形式為類與類之間的繼承關(guān)系,接口與接口之間的繼承關(guān)系,類對接口的實現(xiàn)關(guān)系UML圖中實現(xiàn)使用一條帶有空心三角箭頭的實線指向基類。如下依賴(Dependency)表現(xiàn)為函數(shù)中的參數(shù)。是類與類之間的連接,表示一個類依賴于另一個類的定義,其中一個類的變化將影響另外一個類。例如如果A依賴于B,則B體現(xiàn)為局部變量,方法的參數(shù)、或靜態(tài)方法的調(diào)用。如電視(TV)依賴于頻道(channel)常見的依賴關(guān)系如下:(1)類B以參數(shù)的形式傳入類A的方法。(2)類B以局部變量的形式存在于類A的方法中。(3)類A調(diào)用類B的靜態(tài)方
25、法。UML圖中實現(xiàn)使用一條帶有箭頭的虛線指向被依賴的類。如下實現(xiàn)(Realization):指的是一個類實現(xiàn)接口(可以是多個)的功能;實現(xiàn)是類與接口之間最常見的關(guān)系;C中沒有直接的接口而是通過在類中定義純虛函數(shù)來實現(xiàn)的。UML圖中實現(xiàn)使用一條帶有空心三角箭頭的虛線指向接口。如下聚合(Aggregat ion)是關(guān)聯(lián)關(guān)系的一種,是強的關(guān)聯(lián)關(guān)系。聚合關(guān)系是整體和個體的關(guān)系。普通關(guān)聯(lián)關(guān)系的兩個類處于同一層次上,而聚合關(guān)系的兩個類處于不同的層次,一個是整體,一個是部分。同時,是一種弱的“擁有”關(guān)系。UML圖中實現(xiàn)使用一條帶有虛心菱形的線來表示組合(Composition)是關(guān)聯(lián)關(guān)系的一種,是比聚合關(guān)系
26、強的關(guān)聯(lián)關(guān)系。它要求普通的聚合關(guān)系中代表整體的對象負責(zé)代表部分的對象的生命周期。Composition(組合關(guān)系)是一種強的“擁有”關(guān)系,體現(xiàn)了嚴格的部分和整體的關(guān)系,部分和整體的生命周期一致。他同樣體現(xiàn)整體與部分間的關(guān)系,但此時整體與部分是不可分的,整體的生命周期結(jié)束也就意味著部分的生命周期結(jié)束;UML圖中實現(xiàn)使用一條帶有實心菱形的線來表示幾種關(guān)系所表現(xiàn)的強弱程度依次為:組合聚合關(guān)聯(lián)依賴動態(tài)模型的概念、內(nèi)容;功能模型的概念、內(nèi)容和建立功能模型的方法;功能模型表示變化的系統(tǒng)的“功能”性質(zhì),它指明了系統(tǒng)應(yīng)該“做什么”,因此更直接地反映了助記詞對目標(biāo)系統(tǒng)的需求。功能模型由一組數(shù)據(jù)流圖組成。掌握用例
27、圖的概念、內(nèi)容和方法;一幅用例圖包含的模型元素有:系統(tǒng)、行為者、用例及用例之間的關(guān)系。掌握面向?qū)ο蠓治龅幕具^程:三個子模型與5個層次;三個子模型:對象模型、動態(tài)模型、功能模型。五個層次:主層次、類-&-對象層、結(jié)構(gòu)層、屬性層、服務(wù)層。結(jié)合實例來掌握面向?qū)ο蠓治鲞^程中建立對象模型的方法包含哪些步驟;結(jié)合實例來掌握面向?qū)ο蠓治鲞^程中建立動態(tài)模型的方法包含哪些步驟;結(jié)合實例來掌握面向?qū)ο蠓治鲞^程中建立功能模型的方法包含哪些步驟;能結(jié)合實例畫事件跟蹤圖能結(jié)合實例畫類的能結(jié)合實例畫出0層數(shù)據(jù)流圖與功能級數(shù)據(jù)流圖。自測練習(xí)題:一、選擇題1瀑布模型的存在問題是( B ) A用戶容易參與開發(fā) B缺乏靈活性
28、C用戶與開發(fā)者易溝通 D適用可變需求2可行性分析是在系統(tǒng)開發(fā)的早期所做的一項重要的論證工作,它是決定該系統(tǒng)是否開發(fā)的決策依據(jù),因必須給出( B )的回答。 A確定 B行或不行 C正確 D無二義3 系統(tǒng)流程圖是用來 ( D)A描繪程序結(jié)構(gòu)的 B描繪系統(tǒng)的邏輯模型C表示信息層次結(jié)構(gòu)的圖形工具 D描繪物理系統(tǒng)的 4.下列屬于維護階段的文檔是(C) A.軟件規(guī)格說明B.用戶操作手冊 C.軟件問題報告D.軟件測試分析報告5.軟件按照設(shè)計的要求,在規(guī)定時間和條件下達到不出故障,持續(xù)運行的要求的質(zhì)量特性稱為(B) A.可用性B.可靠性 C.正確性D.完整性6、快速原型模型的主要特點之一是(D) A.開發(fā)完畢
29、才見到產(chǎn)品 B.及早提供全部完整的軟件產(chǎn)品 C.開發(fā)完畢后才見到工作軟件 D.及早提供工作軟件7、軟件需求分析的主要任務(wù)是準確地定義出要開發(fā)的軟件系統(tǒng)是( C)A.如何做 B.怎么做C.做什么D.對誰做8.若有一個計算類型的程序,它的輸入量只有一個X,其范圍是-1.0,1.0,現(xiàn)從輸入的角度考慮一組測試用例:-1.001,-1.0,1.0,1.001。設(shè)計這組測試用例的方法是(C) A.條件覆蓋法B.等價分類法 C.邊界值分析法D.錯誤推測法9.研究開發(fā)所需要的成本和資源是屬于可行性研究中的研究的一方面。( B )A.技術(shù)可行性B.經(jīng)濟可行性C.社會可行性D.法律可行性10.模塊的內(nèi)聚性最高的
30、是( D )A.邏輯內(nèi)聚B.時間內(nèi)聚C.偶然內(nèi)聚D.功能內(nèi)聚12. ( C )是把對象的屬性和操作結(jié)合在一起,構(gòu)成一個獨立的對象,其內(nèi)部信息對外界是隱蔽的,外界只能通過有限的接口與對象發(fā)生聯(lián)系。 A 多態(tài)性 B 繼承 C 封裝 D 消息二、填空題1. 將數(shù)據(jù)流圖映射為程序結(jié)構(gòu)時, 所用映射方法涉及信息流的類型。其信息流分為 變換流 和 事務(wù)流 兩種類型。2為了便于對照檢查,測試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的_輸出結(jié)果_兩部分組成。3. 軟件由程序、數(shù)據(jù)、文檔 組成。4. 在學(xué)校中,一個學(xué)生可以選修多門課程,一門課程可以由多個學(xué)生選修,那么學(xué)生和課程之間是關(guān)聯(lián) 關(guān)系。5. 軟件工程釆用層次化的方法,每
31、個層次都包括 過程、方法、工具 三要素。6一個模塊擁有的直屬下級模塊的個數(shù)稱為該模塊的扇出 ,一個模塊的直接上級模塊的個數(shù)稱為該模塊的扇入。三、名詞解釋題1內(nèi)聚性:內(nèi)聚性是模塊獨立性的衡量標(biāo)準之一,它是指模塊的功能強度的度量,即一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量 2軟件危機:是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。 3完善性維護: 這是指為了改善系統(tǒng)功能或應(yīng)用戶的需要而增加新的功能的維護工作。 4. 數(shù)據(jù)字典:數(shù)據(jù)字典是關(guān)于數(shù)據(jù)數(shù)據(jù)信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義集合5. 程序流圖:程序流程又稱為程序框圖,它是歷史最悠久、使用最廣泛的描述過程設(shè)計的
32、方法,然而它也是用得最混亂的一種方法。6. 驅(qū)動程序7. 數(shù)據(jù)耦合:如果兩個模塊間的通訊信息是若干參數(shù),其中每一個參數(shù)都是一個數(shù)據(jù)元素,稱 數(shù)據(jù)耦合 這種耦合為數(shù)據(jù)耦合。這是模塊之間影響最小的耦合關(guān)系。8. 類圖:類圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu),表示系統(tǒng)中的類以及類與類之間的關(guān)系。9. Alpha測試與Beta測試Alpha測試:是由用戶在開發(fā)者的場所進行,并且在開發(fā)者對用戶的“指導(dǎo)”下進行的測試。 Beta測試:由軟件的最終用戶在一個或多個客戶場所進行,開發(fā)者通常不在Beta測試現(xiàn)場。10. 軟件產(chǎn)品四、簡答題1. 黑盒測試旨在測試軟件是否滿足功能要求,它主要診斷哪幾類錯誤?不正確或遺漏的功能; 界
33、面錯誤; 數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問錯誤; 性能錯誤; 初始化和終止條件錯誤。瀑布模型、增量模型的優(yōu)缺點瀑布模型的優(yōu)點:有利于大型軟件開發(fā)過程中人員的組織、管理,有利于軟件開發(fā)方法和工具的研究,從而提高了大型軟件項目開發(fā)的質(zhì)量和效率。瀑布模型的缺點:(1)開發(fā)過程一般不能逆轉(zhuǎn),否則代價太大;(2)實際的項目開發(fā)很難嚴格按該模型進行;(3)客戶往往很難清楚地給出所有的需求,而該模型卻要求如此。(4)軟件的實際情況必須到項目開發(fā)的后期客戶才能看到,這要求客戶有足夠的耐心。 增量模型的優(yōu)點:(1)采用增量模型的優(yōu)點是人員分配靈活,剛開始不用投入大量人力資源;(2)如果核心產(chǎn)品很受歡迎,則可增加人力實現(xiàn)
34、下一個增量;(3)可先發(fā)布部分功能給客戶,對客戶起到鎮(zhèn)靜劑的作用。增量模型的缺點:(1)并行開發(fā)構(gòu)件有可能遇到不能集成的風(fēng)險,軟件必須具備開放式的體系結(jié)構(gòu);(2)增量模型的靈活性可以使其適應(yīng)這種變化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟件過程的控制失去整體性。程序流程圖或者盒圖的5種基本結(jié)構(gòu)的畫法程序流程圖的基本控制結(jié)構(gòu)盒圖的基本控制結(jié)構(gòu)4. 簡述過程設(shè)計語言(PDL)的特點。過程設(shè)計語言(簡稱PDL),也稱程序描述語言,又稱為偽碼。它是一種用于描述模塊算法設(shè)計和處理細節(jié)的語言.PDL應(yīng)該具有下述特點:關(guān)鍵字的固定語法,它提供了結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說明和模
35、塊化的特點。為了使結(jié)構(gòu)清晰和可讀性好,通常在所有可能嵌套使用的控制結(jié)構(gòu)的頭和尾都有關(guān)鍵字,例如,iffi(或endif)等。自然語言的自由語法,它描述處理特點。數(shù)據(jù)說明的手段。應(yīng)該既包括簡單的數(shù)據(jù)結(jié)構(gòu)(例如純量和數(shù)組),又包括復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(例如,鏈表或?qū)哟蔚臄?shù)據(jù)結(jié)構(gòu))。模塊定義和調(diào)用的技術(shù),應(yīng)該提供各種接口描述模式。5. 根據(jù)特定的項目,你會考慮哪些因素來選擇合適的程序設(shè)計語言。6. (教材P141) 畫出下列偽碼程序的程序流程圖和盒圖STARTIF p THEN WHILE q DO f END DOELSE BLOCK g n END BLOCKEND IFSTOP7. (教材P141)研究下面的PDL語言(過程設(shè)計語言,也稱偽碼程序):LOOP: Set I to (START + FINISH)/2 If TABLE(I)=ITEM goto FOUND If TABLE(I)ITEM Set FINISH to (I-1) If (FINISH - START) 1 goto LOOP If TABLE(START)=ITEM goto FOUND
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度歷史遺跡保護裝修合同增項條款
- 2025年度智能制造生產(chǎn)線項目管理人員聘用合同
- 2024交通安全的總結(jié)范文(30篇)
- 2024-2025學(xué)年第16課國家出路的探索與列強侵略的加劇-勤徑學(xué)升高中歷史必修上同步練測(統(tǒng)編版2019)
- 2025年典型國際鐵路運輸合同
- 2025年中介居間合同示例
- 2025年農(nóng)村基礎(chǔ)設(shè)施優(yōu)化共建協(xié)議
- 2025年住宅按揭貸款協(xié)議書樣本
- 2025年停車場地合同模板
- 2025年渦輪螺槳發(fā)動機項目立項申請報告模板
- 2025年中考物理總復(fù)習(xí)《壓強》專項測試卷含答案
- 《智能傳感器技術(shù)》課件
- SaaS服務(wù)具體應(yīng)用合同范本2024版版
- 山東省濰坊市2024-2025學(xué)年高三上學(xué)期1月期末 政治試題(含答案)
- 2025-2030年中國旅居康養(yǎng)行業(yè)全國市場開拓戰(zhàn)略制定與實施研究報告
- 知識產(chǎn)權(quán)培訓(xùn)內(nèi)容課件
- 2025年幼兒園年度工作總結(jié)及工作計劃
- 殘疾人掛靠合作合同協(xié)議書范本
- 《物料擺放規(guī)范》課件
- 寧夏“8·19”較大爆燃事故調(diào)查報告
- 電池結(jié)構(gòu)及原理
評論
0/150
提交評論