軟件工程總復(fù)習(xí)(徐東升)_第1頁
軟件工程總復(fù)習(xí)(徐東升)_第2頁
軟件工程總復(fù)習(xí)(徐東升)_第3頁
軟件工程總復(fù)習(xí)(徐東升)_第4頁
軟件工程總復(fù)習(xí)(徐東升)_第5頁
已閱讀5頁,還剩112頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

一、單選題(20個小題,每小題1.5分,共30分)二、填空題(5個小題,每小題2分,共10分)三、判斷題(10個小題,每小題1分,共10分)四、名詞解釋題(5個小題,每小題3分,共15分)五、簡答題(3個小題,每小題5分,共15分)六、綜合應(yīng)用題(3個小題,第1小題6分,第2小題8分,第3小題6分,共20分)考試題型軟件工程課程的內(nèi)容軟件工程學(xué)概述結(jié)構(gòu)化方法學(xué)(生命周期方法學(xué))面向?qū)ο蠓椒▽W(xué)軟件項目管理可行性研究需求分析形式化說明技術(shù)總體設(shè)計詳細(xì)設(shè)計軟件實現(xiàn)軟件維護面向?qū)ο蠓椒▽W(xué)引論面向?qū)ο蠓治雒嫦驅(qū)ο笤O(shè)計面向?qū)ο髮崿F(xiàn)

總復(fù)習(xí)第1章軟件工程學(xué)概述學(xué)習(xí)內(nèi)容與重點:1.1軟件的概念及其特征(掌握概念,特征要了解)1.2軟件危機(軟件危機的概念掌握,典型表現(xiàn)、產(chǎn)生原因消除危機途徑等要了解)1.3軟件工程(軟件工程的概念要掌握,本質(zhì)特性、原理等要理解,方法學(xué)的概念[也稱范型]、包含的要素要記憶,傳統(tǒng)方法學(xué)與面向?qū)ο蠓椒▽W(xué)的要點要理解,并能分析出各自的優(yōu)缺點)。1.4軟件生命周期(掌握軟件生命周期的概念、三個時期八個階段的劃分和任務(wù))1.5軟件過程:又稱軟件開發(fā)模式,概念要掌握,另外重點掌握幾個典型的生命周期模型的特點及基本思想,如瀑布模型、快速原型模型、增量模型、螺旋模型,其它常用的幾個模型的特點要了解,如噴泉模型、RUP統(tǒng)一過程、XP過程)。第一章:習(xí)題(凡是要掌握和記憶的概念、原理都可能以填空、名詞解釋或簡答題的形式進行考核,凡是理解的知識點可能以判斷、選擇的形式進行考核,凡是重點掌握的可能以綜合應(yīng)用形式進行考核,凡是了解的知識點很可能不是考查的重點,直接考核的概率不大)1-4簡述結(jié)構(gòu)化范型和面向?qū)ο蠓缎偷囊c,并分析它們的優(yōu)缺點。1-6什么是軟件過程?它與軟件工程方法學(xué)有何關(guān)系?答:軟件過程是為了開發(fā)出高質(zhì)量的軟件產(chǎn)品所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項任務(wù)的工作步驟。軟件過程定義了運用技術(shù)方法的順序、應(yīng)交付的文檔資料、為保證軟件質(zhì)量和協(xié)調(diào)軟件變化必須采取的管理措施,以及標(biāo)志完成了相應(yīng)開發(fā)活動的里程碑。軟件過程是軟件工程方法學(xué)的3個重要組成(方法、工具與過程)部分之一。1-7什么是軟件生命周期模型?試比較瀑布模型、快速原型模型、增量模型和螺旋模型的優(yōu)缺點,說明每種模型的適用范圍。第2章可行性研究2.1可行性研究的任務(wù)(可行性研究的目的、任務(wù)或者說是內(nèi)容必須要掌握)2.2可行性研究過程(了解,知道可行性報告的主要內(nèi)容:系統(tǒng)概述、可行性分析、限制、費用、擬定開發(fā)計劃、結(jié)論意見)2.3系統(tǒng)流程圖(了解,描述物理系統(tǒng)的工具,基本符號、系統(tǒng)符號能看懂)2.4數(shù)據(jù)流圖(功能模型,是本章的重點與難點,數(shù)據(jù)流圖的概念、4種基本成分、用途要理解,能根據(jù)系統(tǒng)基本描述畫出項層、0層、1層數(shù)據(jù)流圖,必然有一個綜合應(yīng)用題)2.5數(shù)據(jù)字典(重點掌握數(shù)據(jù)字典的概念、包含內(nèi)容及定義數(shù)據(jù)的方法)2.6成本/效益分析(理解貨幣的時間價值的概念,會分析計算投資回收期、純收入、投資回收率)

2.4數(shù)據(jù)流圖(描繪數(shù)據(jù)在系統(tǒng)中流動的邏輯過程)2.4.1符號

或或或數(shù)據(jù)源點或終點變換數(shù)據(jù)的處理數(shù)據(jù)存儲數(shù)據(jù)流圖2.4基本符號的含義數(shù)據(jù)源點/終點:通常是人或部門,可重復(fù)表示;處理:一個處理框可以代表一系列程序、單個程序或程序的一個模塊;數(shù)據(jù)存儲:可以表示一個文件、文件的一部分、數(shù)據(jù)庫的元素或記錄的一部分等,數(shù)據(jù)存儲是處于靜止?fàn)顟B(tài)的數(shù)據(jù);把一個數(shù)據(jù)存入數(shù)據(jù)存儲用一個數(shù)據(jù)去修改數(shù)據(jù)存儲中的數(shù)據(jù)從數(shù)據(jù)存儲中讀出一個數(shù)據(jù)從數(shù)據(jù)存儲中檢索出一批數(shù)據(jù)數(shù)據(jù)流:描繪所有可能的數(shù)據(jù)流向,而不應(yīng)該描繪出現(xiàn)某個數(shù)據(jù)流的條件,數(shù)據(jù)流是處于運動中的數(shù)據(jù)。通常為單據(jù)或報表。源點:倉庫管理員終點:采購員處理:產(chǎn)生報表、處理事務(wù)數(shù)據(jù)流:定貨報表事務(wù)零件編號零件名稱定貨數(shù)量目前價格主要供應(yīng)者次要供應(yīng)者零件編號事務(wù)類型數(shù)量數(shù)據(jù)存儲:定貨信息——同定貨報表庫存清單零件編號庫存量庫存量臨界值第一步:從問題描述中提取數(shù)據(jù)流圖的4種成分:源點或終點,處理,數(shù)據(jù)存儲和數(shù)據(jù)流;數(shù)據(jù)流圖的繪制步驟及舉例第二步:繪畫最高抽象層次的數(shù)據(jù)流圖——基本系統(tǒng)模型由若干個數(shù)據(jù)源點/終點和一個處理組成。定貨系統(tǒng)的基本系統(tǒng)模型第三步:細(xì)化基本系統(tǒng)模型,繪畫(主要)功能級數(shù)據(jù)流圖定貨系統(tǒng)的功能級數(shù)據(jù)流圖第4步:

對系統(tǒng)主要功能進一步細(xì)化把處理事務(wù)的功能進一步分解后的數(shù)據(jù)流圖細(xì)化時注意:1、當(dāng)進一步分解涉及如何具體的實現(xiàn)一個功能時就不應(yīng)該再分解了。2、對數(shù)據(jù)流圖分層細(xì)化時,不管加工如何變換,一定要保證分解前后的輸入流與輸出流必須相同。

3、對處理進行編號的方法是:處理1分解為三個下層處理時,下層處理的編號是1.1、1.2和1.3,處理2分解為三個下層處理時,下層處理的編號是2.1、2.2和2.3。同理,如果處理1.2再分解為兩個下層處理時,下層處理的編號是1.2.1和1.2.2。5、將必要的存儲與加工(處理)相匹配;6、在畫數(shù)據(jù)流圖時應(yīng)避免線條交叉,必要時可使用重復(fù)的外部項(源點或終點)或數(shù)據(jù)存儲符號;7、用“自頂向下”的方法,逐層畫出數(shù)據(jù)流圖。每張數(shù)據(jù)流圖吵加工(處理)的個數(shù)不能超過7個(7加減2原則);儲蓄系統(tǒng)數(shù)據(jù)流圖典型作業(yè)題:數(shù)據(jù)流圖的繪制方法患者監(jiān)護系統(tǒng)的功能級數(shù)據(jù)流圖第3章需求分析

3.1需求分析的任務(wù)(了解)

3.2與用戶溝通獲取需求的方法(了解)

3.3分析建模與規(guī)格說明(掌握模型的概念,知道需求分析要建立功能模型、數(shù)據(jù)模型、行為模型這三種模型)

3.4實體-聯(lián)系圖(很重要,但不是本門課考查重點,需要掌握實體-聯(lián)系圖的基本概念、聯(lián)系的類型、會畫簡單系統(tǒng)的E-R圖)

3.5數(shù)據(jù)規(guī)范化(了解)

3.6狀態(tài)轉(zhuǎn)換圖(了解)

3.7其他圖形工具(層次方框圖、Warnier圖、IPO圖的概念,知道這些工具的作用是什么)

3.8驗證軟件需求(了解)實體、數(shù)據(jù)對象關(guān)系或聯(lián)系屬性連接圖3.1實體關(guān)系圖圖符數(shù)據(jù)模型:圖3.2某校教學(xué)管理ER圖儲戶存取款電話號碼儲蓄所身份證號碼地址電話號碼名稱住址姓名到期日期密碼數(shù)額類型利率圖2.3計算機儲蓄系統(tǒng)的實體-聯(lián)系圖MN狀態(tài)圖中使用的主要符號狀態(tài)轉(zhuǎn)換圖:建立系統(tǒng)的行為模型,描繪系統(tǒng)的狀態(tài)或引起狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。圖3.5層次方框圖的一個例子幾種工具圖3.6Warnier圖的一個例子與層次方框圖一樣,是描述數(shù)據(jù)結(jié)構(gòu)的工具圖3.7IPO圖的一個例子圖圖3.8改進的IPO圖的形式習(xí)題:3-6復(fù)印機狀態(tài)閑置復(fù)印Do/復(fù)印卡紙Do/報警缺紙Do/報警復(fù)印命令完成復(fù)印命令發(fā)生卡紙故障發(fā)現(xiàn)缺紙排除卡紙故障裝好紙第5章總體設(shè)計本章主要講述內(nèi)容1設(shè)計過程:掌握總體設(shè)計的目的、任務(wù)及總體設(shè)計的階段組成,了解設(shè)計過程的步驟2設(shè)計原理:重點掌握模塊化、抽象、逐步求精、信息隱藏和局部化、模塊獨立性這幾條設(shè)計原理的基本概念和重要思想。模塊獨立性度量標(biāo)準(zhǔn):內(nèi)聚和耦合的概念要掌握,能判斷六種耦合的強弱及類型,耦合從弱到強依次為非直接耦合、數(shù)據(jù)耦合、控制耦合、特征耦合(又稱外部耦合)、公共耦合、內(nèi)容耦合;能判斷七種內(nèi)聚的高低及類型,內(nèi)聚從低到高依次是偶然內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚、功能內(nèi)聚。3啟發(fā)規(guī)則:理解模塊規(guī)模應(yīng)該適中,深度、寬度、扇出和扇入都應(yīng)適當(dāng),模塊的作用域應(yīng)該在控制域之內(nèi)這幾條規(guī)則。4描繪軟件結(jié)構(gòu)的圖形工具:層次圖和HIPO圖、結(jié)構(gòu)圖,掌握層次圖與圖層方框圖的區(qū)別,了解結(jié)構(gòu)圖是進行軟件結(jié)構(gòu)設(shè)計的一個有力工具)5面向數(shù)據(jù)流的設(shè)計方法:必須熟練掌握變換分析與事務(wù)分析的方法。會對一個簡單的數(shù)據(jù)流圖經(jīng)變換分析與事務(wù)分析后映射為相應(yīng)的軟件結(jié)構(gòu)圖5.3正文加工系統(tǒng)的層次圖設(shè)計工具:層次圖,獲得軟件層次結(jié)構(gòu)圖5.4帶編號的層次圖(H圖)設(shè)計工具:帶編號層次圖圖5.5結(jié)構(gòu)圖的例子——產(chǎn)生最佳解的一般結(jié)構(gòu)設(shè)計工具:結(jié)構(gòu)圖,設(shè)計軟件結(jié)構(gòu)的工具5.5.1概念面向數(shù)據(jù)流的設(shè)計方法把數(shù)據(jù)流映射成軟件結(jié)構(gòu),數(shù)據(jù)流的類型決定了映射的方法。數(shù)據(jù)流有兩種類型:變換流事務(wù)流5.5面向數(shù)據(jù)流的設(shè)計方法一、變換流

具有較明確的輸入、變換(或稱主加工)和輸出界面的數(shù)據(jù)流圖稱為變換型數(shù)據(jù)流圖。如圖所示,該變換中心可以理解為數(shù)據(jù)的加工和處理程序。

讀入原始數(shù)據(jù)校驗原始數(shù)據(jù)計算最優(yōu)結(jié)果編輯打印最優(yōu)結(jié)果輸入變換中心輸出

事務(wù)型數(shù)據(jù)流圖中存在一個事務(wù)中心(也就是數(shù)據(jù)處理、加工中心),它將輸入分離成若干個發(fā)散的數(shù)據(jù)流,形成許多活動路徑,并根據(jù)輸入值選擇其中一條路徑。處理T稱為事務(wù)中心,它完成下述任務(wù):接收輸入數(shù)據(jù);分析每個事務(wù)以確定它的類型;根據(jù)事務(wù)類型選取一條活動通路要求類別處理分房處理調(diào)房處理退房處理住房要求事務(wù)中心活動路徑二、事務(wù)流設(shè)計步驟:(1)復(fù)查基本系統(tǒng)模型確保系統(tǒng)的輸入數(shù)據(jù)和輸出數(shù)據(jù)符合實際。(2)復(fù)查并精化數(shù)據(jù)流圖對需求分析階段得出的數(shù)據(jù)流圖認(rèn)真復(fù)查,并且在必要時進行精化。不僅要確保數(shù)據(jù)流圖給出了目標(biāo)系統(tǒng)的正確的邏輯模型,而且應(yīng)該使數(shù)據(jù)流圖中每個處理都代表一個規(guī)模適中相對獨立的子功能。5.5.2變換分析把具有變換流特點的數(shù)據(jù)流圖按預(yù)先確定的模式映射成軟件結(jié)構(gòu)。(3)確定數(shù)據(jù)流圖具有變換特性還是事務(wù)特性一個系統(tǒng)中的所有信息流都可以認(rèn)為是變換流,但是,當(dāng)遇到有明顯事務(wù)特性的信息流時,建議采用事務(wù)分析方法進行設(shè)計。確定數(shù)據(jù)流的全局特性和局部特性。(4)確定輸入流和輸出流的邊界,從而孤立出變換中心輸入流和輸出流的邊界和對它們的解釋有關(guān),不同設(shè)計人員可能會在流內(nèi)選取稍微不同的點作為邊界的位置。(5)完成“第一級分解”。位于軟件結(jié)構(gòu)最頂層的控制模塊Cm協(xié)調(diào)下述從屬的控制功能:輸入信息處理控制模塊Ca,協(xié)調(diào)對所有輸入數(shù)據(jù)的接收;變換中心控制模塊Ct,管理對內(nèi)部形式的數(shù)據(jù)的所有操作;輸出信息處理控制模塊Ce,協(xié)調(diào)輸出信息的產(chǎn)生過程。第一級分解方法(6)完成“第二級分解”處理映射成軟件結(jié)構(gòu)中一個適當(dāng)?shù)哪K。完成第二級分解的方法是:從變換中心的邊界開始沿著輸入通路向外移動,把輸入通路中每個處理映射成軟件結(jié)構(gòu)中Ca控制下的一個低層模塊;然后沿輸出通路向外移動,把輸出通路中每個處理映射成直接或間接受模塊Ce控制的一個低層模塊;最后把變換中心內(nèi)的每個處理映射成受Ct控制的一個模塊。第二級分解方法(7)運用模塊設(shè)計和優(yōu)化準(zhǔn)則對第一次分割得到的軟件結(jié)構(gòu)進一步精化為了產(chǎn)生合理的分解,得到盡可能高的內(nèi)聚、盡可能松散的耦合,為了得到一個易于實現(xiàn)、易于測試和易于維護的軟件結(jié)構(gòu),應(yīng)該對初步分割得到的模塊進行再分解或合并。5.5.3事務(wù)分析雖然在任何情況下都可以使用變換分析方法設(shè)計軟件結(jié)構(gòu),但是在數(shù)據(jù)流具有明顯的事務(wù)特點時,也就是有一個明顯的“發(fā)射中心”(事務(wù)中心)時,還是以采用事務(wù)分析方法為宜。

事務(wù)設(shè)計步驟和變換設(shè)計步驟大部分相同或類似,主要差別僅在于由數(shù)據(jù)流圖到軟件結(jié)構(gòu)的映射方法不同:由事務(wù)流映射成的軟件結(jié)構(gòu)包括一個接收分支和一個發(fā)送分支;映射出接收分支結(jié)構(gòu)的方法和變換分析映射出輸入結(jié)構(gòu)的方法很相像,即從事務(wù)中心的邊界開始,把沿著接收流通路的處理映射成模塊;發(fā)送分支的結(jié)構(gòu)包含一個調(diào)度模塊,它控制下層的所有活動模塊;然后把數(shù)據(jù)流圖中的每個活動流通路映射成與它的流特征相對應(yīng)的結(jié)構(gòu)。

通常,一個實際系統(tǒng)的數(shù)據(jù)流圖是變換型和事務(wù)型兩種類型的混合體。如圖所示,中間的子塊屬事務(wù)型數(shù)據(jù)流,如果把中間子塊視為一個處理整體的話,整個程序?qū)僮儞Q型程序。

A(事務(wù)型,A為事務(wù)中心)變換中心輸入輸出混合型數(shù)據(jù)流圖總結(jié):一般說來,如果數(shù)據(jù)流不具有顯著的事務(wù)特點,最好使用變換分析;反之,如果具有明顯的事務(wù)中心,則應(yīng)該采用事務(wù)分析技術(shù)。機械地遵循變換分析或事務(wù)分析的映射規(guī)則,可能會得到一些不必要的控制模塊,如果它們確實用處不大,那么可以而且應(yīng)該把它們合并。如果一個控制模塊功能過分復(fù)雜,則應(yīng)該分解為兩個或多個控制模塊,或者增加中間層次的控制模塊。第六章詳細(xì)設(shè)計6.1結(jié)構(gòu)程序設(shè)計:結(jié)構(gòu)程序設(shè)計的經(jīng)典定義:如果一個程序的代碼塊僅僅通過順序、選擇和循環(huán)這3種基本控制結(jié)構(gòu)進行連接,并且每個代碼塊只有一個入口和一個出口,則稱這個程序是結(jié)構(gòu)化的。)6.2人機界面設(shè)計(了解)6.3過程設(shè)計的工具(重點掌握的內(nèi)容:程序流程圖幾種基本控制結(jié)構(gòu)的畫法,能讀懂程給出程序流程圖表示的算法;掌握盒圖的基本符號,會用盒圖設(shè)計一個程序的算法;掌握PAD圖的基本符號,會用PAD圖設(shè)計一個程序的算法;

會用判定表與判定樹表示含有多重嵌套條件的多分支選擇結(jié)構(gòu)的算法;會使用PDL語言描述N-S圖或PAD圖表示的程序的算法)非結(jié)構(gòu)化程序的結(jié)構(gòu)化處理(復(fù)合判定技術(shù)、重復(fù)元素技術(shù)、標(biāo)志技術(shù))6.4面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法(了解,JACKSON方法)6.5程序復(fù)雜程度的定量度量(重點掌握McCabe方法的映射規(guī)則,能把一個程序流程圖或PDL語言描述的算法映射為程序流圖,掌握在程序流圖的基礎(chǔ)上定量度量程序復(fù)雜度的三種方法:計算區(qū)域數(shù);V(G)=E-N+2;V(G)=P+1,其中P是判定結(jié)點數(shù)目。了解Halstead方法)6.4過程設(shè)計的工具工具學(xué)習(xí)要點:規(guī)定的圖符組織結(jié)構(gòu)和控制條件結(jié)構(gòu)1程序流程圖;2盒圖(N-S圖);PAD圖;判定表;判定樹;PDL(過程設(shè)計語言)。6.13種基本的控制結(jié)構(gòu)圖6.2其他常用的控制結(jié)構(gòu)舉例:輸入10個數(shù),找出其中最大的與最小的數(shù)圖6.5PAD圖的基本符號(a)順序(P1→P2);(b)選擇(IFCTHENP1ELSEP2);(c)多分支;(d)WHILE型循環(huán);(e)UNTIL型循環(huán);(f)語句標(biāo)號;(g)定義(細(xì)化過程)圖6.6使用PAD圖提供的定義功能來逐步求精的例子表6-1用判定表表示計算行李費的算法國內(nèi)乘客TTTTFFFF頭等艙TFTFTFTF殘疾乘客FFTTFFTT行李重量W<=30KGTFFFFFFFF免費X(W-30)X2X(W-30)X3X(W-30)X4XX(W-30)X6XX(W-30)X8X(W-30)X12X圖6.7用判定樹表示計算行李費的算法定量度量程序復(fù)雜度:McCabe方法1.流圖流圖(程序圖):流圖實質(zhì)上是“壓縮簡化了的”程序流程圖,它僅僅描繪程序的控制流程,而對數(shù)據(jù)的具體操作以及分支、循環(huán)的具體條件不進行描述。流圖的組成:流圖由結(jié)點和邊組成。在流圖中用圓表示結(jié)點,一個圓(結(jié)點)代表一條或多條語句,一般把程序流程圖中一組順序相鄰的處理框和其后相鄰的一個菱形判定框映射成流圖中的一個結(jié)點。流圖中的箭頭線稱為邊,它和程序流程圖中的箭頭線類似,代表控制流。一個邊必須終止一個結(jié)點,即使結(jié)點為空語句(如ENDDO、ENDIF等)。圖6.15程序流程圖映射為流圖圖6.16由PDL翻譯成的流圖圖6.17由包含復(fù)合條件的PDL映射成的流圖計算環(huán)形復(fù)雜度的方法(1)流圖G的環(huán)形復(fù)雜度V(G)=流圖G的所圍成的區(qū)域數(shù)。(2)流圖G的環(huán)形復(fù)雜度V(G)=E-N+2,其中:E是流圖中邊數(shù),N是結(jié)點數(shù)。(3)流圖G的環(huán)形復(fù)雜度V(G)=P+1,其中:P是流圖中判定(帶有兩個分叉)結(jié)點的數(shù)目。習(xí)題6-1假設(shè)只有SEQUENCE和DO-WHILE兩種控制結(jié)構(gòu),怎樣利用它們完成IF-THEN-ELSE操作?STARTFlag=TRUEPANDFlagAFlag=FALSE

Flag=TRUEBFlag=FALSEENDTFTF習(xí)題6-2假設(shè)只有SEQUENCE和IF-THEN-ELSE兩種控制結(jié)構(gòu),怎樣利用它們完成DO-WHILE操作?P131,第3題畫出下列偽碼程序的程序流程圖和盒圖。STARTIFPTHENWHILEqDOfENDDOELSEBLOCKgnENDBLOCKENDIFSTOP答:⑴從該偽碼程序轉(zhuǎn)變成的程序流程圖,注意DOWHILE與DOUNTIL結(jié)構(gòu)的嚴(yán)格區(qū)別⑵由該偽碼轉(zhuǎn)變成的盒圖。注意DOWHILE與DOUNTIL結(jié)構(gòu)的嚴(yán)格區(qū)別FTgnqf6-4下圖給出的程序流程圖代表一個非結(jié)構(gòu)化的程序,請問:(1)為什么說它是非結(jié)構(gòu)化的?(2)設(shè)計一個等價的結(jié)構(gòu)化程序。(3)在(2)題的設(shè)計中你使用附加的標(biāo)志變量flag了嗎?若沒用,請再設(shè)計一個使用flag的程序;若用了,再設(shè)計一個不用flag的程序。答:⑴通常所說的結(jié)構(gòu)化程序,是按照狹義的結(jié)構(gòu)程序的定義衡量,符合定義規(guī)定的程序。圖中所示的程序的循環(huán)控制結(jié)構(gòu)有兩個出口,顯然不符合狹義的結(jié)構(gòu)程序的定義,因此是非結(jié)構(gòu)化的程序。⑵使用附加的標(biāo)志變量flag,至少有兩種方法可以把該程序改造為等價的結(jié)構(gòu)化程序,圖4-1所示盒圖描述了P條件的DOWHILE循環(huán),圖4-2所示描繪了q條件的DOUNTIL循環(huán)等價的結(jié)構(gòu)化程序,請注意兩種循環(huán)的控制條件。Flag=TRUEPANDflaggqFTFlag=FALSEFlag=TRUEgqFTFlag=FALSE(NOTq)OR(NOTflag)圖4-1圖4-2P131,第六題用Ashcroft-Manna技術(shù)可以將非結(jié)構(gòu)化的程序轉(zhuǎn)換為結(jié)構(gòu)化程序,圖6.19是一個轉(zhuǎn)換的例子。⑴你能否從這個例子總結(jié)出Ashcroft-Manna技術(shù)的一些基本方法?⑵進一步簡化圖1(b)給出的結(jié)構(gòu)化設(shè)計。圖1答:⑴從這個例子中看出,Ashcroft-Manna技術(shù)的基本方法是,當(dāng)待改造的程序含有嵌套的非結(jié)構(gòu)化的IF語句時,改造后的程序中增加DO-CASE語句和DO-UNTIL語句,并增加一個輔助變量I,I的初始值為1。最外層的IF語句在I=1時執(zhí)行,執(zhí)行完這個IF語句后把I賦值為隨后應(yīng)該執(zhí)行的內(nèi)層IF語句所對應(yīng)的CASE標(biāo)號值。DO-CASE語句的最大分支數(shù)(可執(zhí)行的最大標(biāo)號值)等于IF語句的個數(shù)。當(dāng)執(zhí)行完最內(nèi)層的IF語句之后,把I賦值為可執(zhí)行的最大標(biāo)號值加1,而DO-UNTIL循環(huán)的結(jié)束條件就是I等于這個值。⑵與圖1(b)等價的,進一步簡化后的結(jié)構(gòu)化后的結(jié)構(gòu)化程序的流程圖見黑板。STARTAcBeDETFT

dCDFTFEND第7章實現(xiàn)1、程序設(shè)計語言的分類(機器、匯編、高級、第四代語言)2、了解程序設(shè)計語言的選擇和編碼風(fēng)格(掌握編碼的概念)3、掌握軟件測試的概念及目標(biāo),了解軟件測試的準(zhǔn)則4、掌握兩種軟件測試方法的概念:黑盒測試、白盒測試。了解軟件測試的步驟和測試階段的信息流。5、掌握調(diào)試的概念,了解調(diào)試的過程和調(diào)試的途徑。6、掌握軟件可靠性、可用性的概念,掌握術(shù)語錯誤和故障的含義。7、掌握估算MTTF的方法,會利用Shooman(舒曼)模型進行相關(guān)參數(shù)的計算,并能建立MTTF與測試時間τ之間的函數(shù)關(guān)系。8、掌握植入錯誤法與分別測試法估算錯誤總數(shù)的方法。1.符號估算MTTF時使用到下列符號ET——測試之前程序中故障總數(shù);IT——程序長度(機器指令總數(shù));τ——測試(包括調(diào)試)時間;Ed(τ)——在0至τ期間發(fā)現(xiàn)的錯誤數(shù);

Ec(τ)——在0至τ期間改正的錯誤數(shù);7.9.2估算平均無故障時間MTTF的方法3.估算平均無故障時間MTTF

因為平均無故障時間與單位長度程序中剩余的故障數(shù)εr(τ)成反比,所以:其中:K為常數(shù),它的值根據(jù)經(jīng)驗選取,經(jīng)典值是200。由上式變換后得到程序中改正的錯誤數(shù):根據(jù)對軟件平均無故障時間的要求,可以估計需要改正多少個錯誤后,測試工作就可以結(jié)束。估算平均無故障時間的公式,可以評價軟件測試的進展情況。假設(shè)人為地植入的錯誤數(shù)為Ns,經(jīng)過一段時間的測試之后發(fā)現(xiàn)ns個植入的錯誤,此外還發(fā)現(xiàn)了n個原有的錯誤。如果可以認(rèn)為測試方案發(fā)現(xiàn)植入錯誤和發(fā)現(xiàn)原有錯誤的能力相同,則能夠估計出程序中原有錯誤的總數(shù)為

=n/ns×Ns

Ns

n

ns其中:是故障總數(shù)ET的估計值;

如果認(rèn)為測試員甲發(fā)現(xiàn)的故障是有標(biāo)記的,即程序中有標(biāo)記的故障總數(shù)為B1,那么測試員乙發(fā)現(xiàn)的B2個故障中有bc個是有標(biāo)記的。所以可以估計出測試前程序中的故障總數(shù)為:其中,是故障總數(shù)ET的估計值。每隔一定時間,分析員分析兩名測試員的測試結(jié)果,來估計錯誤總數(shù)。幾次估計結(jié)果差不多時,用其平均值作為錯誤總數(shù)的估計值。(3)集成測試結(jié)束時,總共改正了多少個錯誤?還有多少錯誤潛伏在程序中?由Shooman公式可知:MTTF=IT/(K*(ET-EC(t)))聯(lián)立方程得

10=10000/(K*(ET-15))

15=10000/(K*(ET-25))解得K=33.33ET=45100=10000/(33.33*(45-EC))解得EC=42故當(dāng)MTTF要達(dá)到100小時,在集成測試時必須總共改正42個錯誤,尚有3個錯誤潛伏在程序中。第8章維護1、掌握軟件維護的定義、分類,對每一種維護的概念都要清楚(改正、適應(yīng)、完善、預(yù)防)2、清楚軟件工程的主要目的:1)提高軟件的可維護性;2)減少軟件維護所需要的工作量,降低軟件系統(tǒng)的總成本。3、了解軟件維護的特點:1)結(jié)構(gòu)化維護與非結(jié)構(gòu)化維護差別很大;2)維護的代價高昂(維護代價分有形代價、無形代價與生產(chǎn)率代價);3)維護的問題很多。4、了解軟件維護的過程。5、掌握可維護性定義,知道決定軟件可維護性的主要因素:1)可理解性;2)可測試性;3)可修改性;4)可移植性;5)可重用性6、了解可維護性復(fù)審和預(yù)防性維護。7、掌握軟件再工程過程模型所定義的6類活動,掌握逆向工程、正向工程的概念。第13章軟件項目管理1、了解估算軟件規(guī)模的技術(shù):1)代碼行技術(shù);2)功能點技術(shù)。并能說出兩種估算計術(shù)的優(yōu)缺點。2、了解工作量估算的幾種常用技術(shù):1)靜態(tài)單變量模型;2)動態(tài)多變量模型;3)COCOMO2模型。3、制訂進度計劃是本章重點,涉及如下幾項技術(shù):1)了解估算開發(fā)時間的模型;2)了解Gantt圖繪制;3)掌握用工程網(wǎng)絡(luò)圖求出關(guān)鍵路徑的方法(計算EET、LET、機動時間)4、能說出民主制程序員組、主程序員組、現(xiàn)代程序員組三種人員組織方式的優(yōu)缺點。5、掌握軟件質(zhì)量的概念,了解影響軟件質(zhì)量的因素,掌握軟件質(zhì)量保證措施:基于非執(zhí)行的測試(復(fù)審或評審,具體方法有走查和審查);基于執(zhí)行的測試(軟件測試);程序正確性證明。6、掌握軟件配置管理、軟件配置項、基線的概念,了解軟件配置過程。7、掌握能力成熟度模型的基本思想,了解CMM定義能力成熟度的5個等級(從低到高依次為初始級(1級)、可重復(fù)級(2級)、已定義級(3級)、已管理級(4級)和優(yōu)化級(5級)。例題:假設(shè)一項工程分解成9個子任務(wù),根據(jù)下表給出的信息,畫出工程網(wǎng)絡(luò)圖,計算每個事件的最早時刻和最遲時刻,找出關(guān)鍵路徑。子任務(wù)標(biāo)識完成任務(wù)時間依賴關(guān)系a8b10c8a,bd9ae5bf3c,dg2dh4f,gi3e,f期中考試試題解析一、單項選擇題(每小題1.5分,共30分)()1.“軟件危機”產(chǎn)生的主要原因是

。

A.軟件日益龐大B.開發(fā)方法不當(dāng)C.開發(fā)人員編寫程序能力差D.沒有維護好軟件()2.軟件工程學(xué)的一個重要目標(biāo)是

。A.提高程序的執(zhí)行效率B.降低程序?qū)Υ鎯臻g的要求C.提高軟件的可理解性D.提高軟件的可維護性()3.編寫程序的工作量通常占用軟件開發(fā)總工作量的

。A.80%B.60%

C.40%D.20%()4.?dāng)?shù)據(jù)字典是對數(shù)據(jù)定義信息的集合,它所定義的對象都包含于

A.?dāng)?shù)據(jù)流圖B.程序框圖

C.軟件結(jié)構(gòu)D.方框圖()5.可行性分析是在系統(tǒng)開發(fā)的早期所做的一項重要的開發(fā)的決策依據(jù),因此必須給出

的回答。

A.確定B.行或不行

C.正確D.無二義ADDAB()6.需求分析階段最重要的技術(shù)文檔之一是

。A.項目開發(fā)計劃B.設(shè)計說明書C.需求規(guī)格說明書D.可行性分析報告()7.為了提高模塊的獨立性,模塊內(nèi)部最好是_____。A.邏輯內(nèi)聚B.時間內(nèi)聚C.功能內(nèi)聚D.通信內(nèi)聚()8.需求分析階段的任務(wù)是確定

__。

A.軟件開發(fā)方法B.軟件開發(fā)工具

C.軟件開發(fā)費D.軟件系統(tǒng)的功能()9.一個成功的測試可以

_。

A.表明程序沒有錯誤B.發(fā)現(xiàn)所有錯誤

C.提高軟件可靠性D.發(fā)現(xiàn)尚未發(fā)現(xiàn)的錯誤()10.

_是軟件生存期中的一系列相關(guān)軟件工程活動的集合,它由軟件規(guī)格說明、軟件設(shè)計與開發(fā)、軟件確認(rèn)、軟件改進等活動組成。A軟件過程B軟件工具C質(zhì)量保證D軟件工程CDCDA()11.軟件詳細(xì)設(shè)計的主要任務(wù)是確定每個模塊的

。

A.算法和使用的數(shù)據(jù)結(jié)構(gòu)B.外部接口

C.功能D.編程()12.程序的三種基本控制結(jié)構(gòu)是_____。

A.過程、子程序積分程序B.順序、選擇和重復(fù)

C.遞歸、堆棧和隊列D.調(diào)用、返回和轉(zhuǎn)移()13.軟件測試方法中,黑盒測試方法和白盒測試方法是常用的方法,其中黑盒測試方法主要用于測試

__。

A.結(jié)構(gòu)合理性B.軟件外部功能C.程序正確性D.程序內(nèi)部邏輯()14.在軟件開發(fā)和維護的過程中,為了定量地評價軟件質(zhì)量,必須對軟件特性進行

____。

A.測試B.度量C.評審D.維護()15、在各種不同的軟件需求中,功能需求描述了用戶使用產(chǎn)品必須要完成的任務(wù),可以在用例模型或方案腳本中予以說明,

是從各個角度對系統(tǒng)的約束和限制,反映了應(yīng)用對軟件系統(tǒng)質(zhì)量和特性的額外要求。A業(yè)務(wù)需求B功能要求C非功能需求D用戶需求BABBC()16.快速原型模型的主要特點之一是______。

A.開發(fā)完畢才見到產(chǎn)品

B.及早提供全部完整的軟件產(chǎn)品C.開發(fā)完畢后才見到工作軟件

D.及早提供工作軟件()17.因計算機硬件和軟件環(huán)境的變化而做出的修改軟件的過程稱為____。

A.校正性維護

B.適應(yīng)性維護C.完善性維護

D.預(yù)防性維護()18.如果某種內(nèi)聚要求一個模塊中包含的任務(wù)必須在同一段時間內(nèi)執(zhí)行,則這種內(nèi)聚為

_。A.時間內(nèi)聚B.邏輯內(nèi)聚C.通信內(nèi)聚D.信息內(nèi)聚()19.為高質(zhì)量地開發(fā)軟件項目,在軟件結(jié)構(gòu)設(shè)計時,必須遵循

原則。A.信息隱蔽

B.質(zhì)量控制C.程序優(yōu)化

D.?dāng)?shù)據(jù)共享()20.

DFD中的每個加工至少需要

_。

A.

一個輸入流B.

一個輸出流C.

一個輸入或輸出流D.

一個輸入流和一個輸出流

DBAAD二、填空題(每小題2分,共10分)1.軟件由程序、

、

組成。2、軟件的定義階段包括:

、

、需求分析。3.總體設(shè)計過程通常有兩個主要階段組成:

階段和

階段。4.將數(shù)據(jù)流圖映射為程序結(jié)構(gòu)時,所用映射方法涉及信息流的類型。其信息流分為

____

____

兩種類型。5.在學(xué)校中,一個學(xué)生可以選修多門課程,一門課程可以由多個學(xué)生選修,那么學(xué)生和課程之間是

__關(guān)系。數(shù)據(jù)文檔問題定義可行性研究系統(tǒng)設(shè)計結(jié)構(gòu)設(shè)計變換流事務(wù)流多對多關(guān)聯(lián)三、判斷題(每小題1分,共10分)1.軟件開發(fā)小組人數(shù)越多越好。()2.軟件測試的目的是為了證明一個軟件的設(shè)計沒有錯誤,只有沒有任何錯誤的軟件才能使用。()3.在可行性研究中最難決斷和最關(guān)鍵的問題是技術(shù)可行性。()4.軟件測試中,應(yīng)該盡量窮盡所有的數(shù)據(jù),以便保證測試的質(zhì)量。()5.對象是屬性和相關(guān)操作的封裝。()6.設(shè)計階段的輸出是編碼階段的輸入。()7.流程圖用三個基本的控制構(gòu)件分支、循環(huán)、重復(fù)來表示。()8.改造程序結(jié)構(gòu),要降低藕合度,提高內(nèi)聚度。()9.計算機軟件由文檔和數(shù)據(jù)組成。()10.軟件開發(fā)采用了軟件工程之后,就不會發(fā)生軟件危機了。

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論