安徽大學(xué)軟件工程導(dǎo)論期末復(fù)習(xí)考點試卷匯總.doc
《安徽大學(xué)軟件工程導(dǎo)論期末復(fù)習(xí)考點試卷匯總.doc》由會員分享,可在線閱讀,更多相關(guān)《安徽大學(xué)軟件工程導(dǎo)論期末復(fù)習(xí)考點試卷匯總.doc(30頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第1章 軟件工程概述 1、什么是軟件工程?為什么會出現(xiàn)軟件工程? 軟件工程是:① 把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運行和維護過程,也就是把工程應(yīng)用于軟件;② 研究①中提到的途徑。 軟件工作者在20世紀60年代后期開始認真研究消除軟件危機的途徑,從而逐漸形成了一門新興的工程學(xué)科——計算機軟件工程學(xué)(通常簡稱為軟件工程)。 2、什么是軟件工程方法學(xué)?軟件工程的3要素(軟件工程方法學(xué)的3要素)是什么?分別包含什么內(nèi)容? 軟件工程方法學(xué):軟件生命周期全過程中使用的一整套技術(shù)方法的集合 軟件工程方法學(xué)包含3個要素:方法、工具和過程。 方法是完成軟件開發(fā)的各項任務(wù)的技術(shù)方法,回答“怎樣做”的問題; 工具是為運用方法而提供的自動的或半自動的軟件工程支撐環(huán)境; 過程是為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項任務(wù)的工作步驟。 目前使用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)。 3、什么是軟件過程?什么是軟件周期?常見軟件生命周期模型(課件中的前5類)的特點有哪些? 軟件過程:它是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項任務(wù)的工作步驟。 軟件生命周期:由軟件定義、軟件開發(fā)和運行維護(也稱之為軟件維護)3個時期組成 ①瀑布模型 定義:傳統(tǒng)軟件工程方法學(xué)的軟件過程,基本上可以用瀑布模型來描述。 瀑布模型的特點:1.階段間具有順序性和依賴性;2.推遲實現(xiàn)的觀點;3.質(zhì)量保證的觀點。瀑布模型的成功在很大程序上是由于它基本上是一種文檔驅(qū)動的模型。 瀑布模型的主要優(yōu)點:a.可強迫開發(fā)人員采用規(guī)范的技術(shù)方法 ; b.嚴格地規(guī)定了每個階段必須提交的文檔 ; c.每個階段結(jié)束前必須正式進行嚴格的技術(shù)審查和管理復(fù)審 。 瀑布模型的主要缺點 :在可運行的軟件產(chǎn)品交付給用戶之前,用戶只能通過文檔來了解未來的產(chǎn)品是什么樣的。開發(fā)人員和用戶之間缺乏有效的溝通,很可能導(dǎo)致最終開發(fā)出的軟件產(chǎn)品不能真正滿足用戶的需求 。 ②快速原型模型 定義:所謂“快速原型”, 是快速建立起來的、可在計算機上運行的程序,它所能完成的功能往往是最終的軟件產(chǎn)品所能完成的功能的子集。 原型是軟件開發(fā)人員與用戶溝通的強有力工具,因此有助于所開發(fā)出的軟件產(chǎn)品滿足用戶的真實需求。 快速原型模型的主要優(yōu)點是:A.使用這種軟件過程開發(fā)出的軟件產(chǎn)品通常能滿足用戶的真實需求; B.軟件產(chǎn)品的開發(fā)過程基本上是線性順序過程。 ③增量模型 定義:增量模型也稱為漸增模型 增量模型的主要優(yōu)點:A.能在較短時間內(nèi)向用戶提交可完成部分工作的產(chǎn)品 ; B.逐步增加產(chǎn)品功能,從而使用戶有較充裕的時間學(xué)習(xí)和適應(yīng)新產(chǎn)品,減少一個全新的軟件給客戶組織帶來的沖擊 。 ④螺旋模型 定義:螺旋模型的基本思想是, 使用原型及其他方法盡量降低風險。理解這種模型的一個簡便方法,是把它看作在每個階段之前都增加了風險分析過程的快速原型模型 。 螺旋模型所描述的軟件過程主要適用于內(nèi)部開發(fā)的大型軟件項目 。 使用螺旋模型開發(fā)軟件,要求軟件開發(fā)人員具有豐富的風險評估知識和經(jīng)驗 。 螺旋模型主要有下述優(yōu)點 :A.有利于已有軟件的重用 ; B.有助于把軟件質(zhì)量作為軟件開發(fā)的一個重要目標 ; C.減少了過多測試或測試不足所帶來的風險 ; D.軟件維護與軟件開發(fā)沒有本質(zhì)區(qū)別 。 ⑤噴泉模型 定義:迭代是軟件開發(fā)過程中普遍存在的一種內(nèi)在屬性。在面向?qū)ο蠓缎椭校浖_發(fā)過程各階段之間的迭代或同一階段內(nèi)各個工作步驟之間的迭代,比在結(jié)構(gòu)化范型中更常見。 噴泉模型,是典型的面向?qū)ο笊芷谀P停浞煮w現(xiàn)了面向?qū)ο筌浖_發(fā)過程迭代和平滑過渡的特性。 5、1. 軟件生命周期概念 軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。 軟件生命周期分為3個時期共8個階段, 軟件定義期:包括問題定義、可行性研究和需求分析3個階段; 軟件開發(fā)期:包括概要設(shè)計、詳細設(shè)計、實現(xiàn)和測試4個階段; 運行維護期:即運行維護階段。 表3-3 軟件生命周期各階段的主要任務(wù) 任務(wù) 描述 問題定義 確定要求解決的問題是什么 可行性研究與計劃制定 決定該問題是否存在一個可行的解決辦法,指定完成開發(fā)任務(wù)的實施計劃 需求分析 對待開發(fā)軟件提出需求進行分析并給出詳細定義。編寫軟件規(guī)格說明書及初步的用戶手冊,提交評審 軟件設(shè)計 通常又分為概要設(shè)計和詳細設(shè)計兩個階段,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。這階段提交評審的文檔有概要設(shè)計說明書、詳細設(shè)計說明書和測試計劃初稿 軟件實現(xiàn) 在軟件設(shè)計的基礎(chǔ)上編寫程序。這階段完成的文檔有用戶手冊、操作手冊等面向用戶的文檔,以及為下一步作準備而編寫的單元測試計劃 軟件測試 在設(shè)計測試用例的基礎(chǔ)上,檢驗軟件的各個組成部分。編寫測試分析報告 運行維護 將已交付的軟件投入運行,同時不斷的維護,進行必要而且可行的擴充和刪改 第2章 可行性研究 1、可行性研究包括哪幾方面(每方面解決什么問題),研究得到的文檔和結(jié)論是什么? 技術(shù)可靠性:使用現(xiàn)有的技術(shù)能否實現(xiàn)這個系統(tǒng)嗎? 經(jīng)濟可行性:這個系統(tǒng)的經(jīng)濟效益能否超過它的開發(fā)成本? 操作可行性:系統(tǒng)的操作方式在這個用戶組織內(nèi)是否行得通? 研究的結(jié)果:是一份可行性研究的各個步驟的工作結(jié)果的文檔,它包含了工程是否能繼續(xù)進行下去和分析員的推薦方案; 2、主要描述工具的概念和使用: 系統(tǒng)流程圖:是什么,成份和基本符號,描述什么模型,畫法; 數(shù)據(jù)流圖:是什么,成份和基本符號,系統(tǒng)級和功能級、簡單細化數(shù)據(jù)流圖的區(qū)別,畫法; 數(shù)據(jù)字典:是什么,內(nèi)容、定義數(shù)據(jù)的方法。 (1)系統(tǒng)流程圖的定義:是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。它用圖形符號以黑盒子形式描繪組成系統(tǒng)的每個部件。 系統(tǒng)流程圖表達的是數(shù)據(jù)在系統(tǒng)各部件之間流動的情況,而不是對數(shù)據(jù)進行加工處理的控制過程,是物理數(shù)據(jù)流圖而不是程序流程圖。 系統(tǒng)流程圖的基本符號: (2)數(shù)據(jù)流圖的定義:它是一種圖形化技術(shù),它描述信息和數(shù)據(jù)從輸入移動到輸出過程中所經(jīng)歷的變換。在數(shù)據(jù)流圖中沒有任何具體的物理部件,它只是描繪數(shù)據(jù)在軟件中流動和被處理的邏輯過程。 數(shù)據(jù)流圖的基本符號:正方形(或立方體) 表示數(shù)據(jù)的源點或終點; 圓角矩形(或圓形) 代表變換數(shù)據(jù)的處理; 開口矩形(或兩條平行橫線) 代表數(shù)據(jù)存儲; 箭頭線 表示數(shù)據(jù)流,即特定數(shù)據(jù)的流動方向。 (3)數(shù)據(jù)字典的定義:是關(guān)于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義的集合。數(shù)據(jù)字典的作用也正是在軟件分析和設(shè)計的過程中給人提供關(guān)于數(shù)據(jù)的描述信息。 數(shù)據(jù)字典的內(nèi)容:數(shù)據(jù)流、數(shù)據(jù)流分量、數(shù)據(jù)存儲、處理 定義數(shù)據(jù)的方法:用被定義的事物的成分的某種組合表示這個事物,這些組成成分又由更低的成分組合來定義。 3、 數(shù)據(jù)字典和數(shù)據(jù)流圖的關(guān)系。 數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型。沒有數(shù)據(jù)字典,數(shù)據(jù)流圖就不嚴格,然而沒有數(shù)據(jù)流圖,數(shù)據(jù)字典也難于發(fā)揮作用。只有數(shù)據(jù)流圖和對數(shù)據(jù)流圖中每個元素的精確定義放在一起,才能共同構(gòu)成系統(tǒng)的規(guī)格說明。 第3章 需求分析 需求規(guī)格說明書 1、需求分析的任務(wù)是什么?分析得到的成果(文檔)是什么?包含哪些內(nèi)容? 1、需求分析的任務(wù):(1)確定對系統(tǒng)的綜合要求:功能需求、性能需求、可靠性和可用性需求、出錯處理需求、接口需求、約束、逆向需求、將來可能提出的要求(2)分析系統(tǒng)的數(shù)據(jù)要求:(3)導(dǎo)出系統(tǒng)的邏輯模型(4)修正系統(tǒng)開發(fā)計劃; 2、需求分析得到的結(jié)果:是通過需求分析得到的除了分析模型之外,還應(yīng)該寫出軟件需求規(guī)格說明書,它是需求分析階段得出的最主要的文檔。 2、軟件需求通常包括哪些方面?各類需求一般包含內(nèi)容有哪些? (1)功能需求 :這方面的需求指定系統(tǒng)必須提供的服務(wù)。通過需求分析應(yīng)該劃分出系統(tǒng)必須完成的所有功能。 (2)性能需求:性能需求指定系統(tǒng)必須滿足的定時約束或容量約束,通常包括速度(響應(yīng)時間)、信息量速率、主存容量、磁盤容量、安全性等方面的需求。 (3)可靠性和可用性需求:可靠性需求定量地指定系統(tǒng)的可靠性。可用性與可靠性密切相關(guān),它量化了用戶可以使用系統(tǒng)的程度。 (4)出錯處理需求:這類需求說明系統(tǒng)對環(huán)境錯誤應(yīng)該怎樣響應(yīng)。 (5)接口需求:接口需求描述應(yīng)用系統(tǒng)與它的環(huán)境通信的格式。常見的接口需求有:用戶接口需求;硬件接口需求;軟件接口需求;通信接口需求。 (6)約束:設(shè)計約束或?qū)崿F(xiàn)約束描述在設(shè)計或?qū)崿F(xiàn)應(yīng)用系統(tǒng)時應(yīng)遵守的限制條件。 (7)逆向需求:逆向需求說明軟件系統(tǒng)不應(yīng)該做什么。 (8)將來可能提出的要求:應(yīng)該明確地列出那些雖然不屬于當前系統(tǒng)開發(fā)范疇,但是據(jù)分析將來很可能會提出來的要求。這樣做的目的是,在設(shè)計過程中對系統(tǒng)將來可能的擴充和修改預(yù)做準備,以便一旦確實需要時能比較容易地進行這種擴充和修改。 3、追加的主要描述工具的概念和使用: E-R圖:是什么,成份和基本符號,描述什么模型; 狀態(tài)轉(zhuǎn)換圖:是什么,描述什么模型 (1)E-R圖的定義:即實體--聯(lián)系圖,是表示數(shù)據(jù)對象及其之間關(guān)系的圖形語言機制,是建立數(shù)據(jù)模型的圖形工具。 E-R圖的基本成份和使用的符號 :實體(即數(shù)據(jù)對象)----矩形框,關(guān)系----菱形框, 屬性----橢圓形或圓角矩形。 E-R圖描述的模型:用來建立數(shù)據(jù)模型,ER模型使用簡單的圖形符號表達系統(tǒng)分析員對問題域的理解 (2)狀態(tài)轉(zhuǎn)換圖的定義:通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。 狀態(tài)轉(zhuǎn)換圖的基本成份和使用的符號:基本成分是狀態(tài)、事件、狀態(tài)轉(zhuǎn)換。 狀態(tài)轉(zhuǎn)換圖描述的模型:用來建立系統(tǒng)的行為模型。 4、在結(jié)構(gòu)化分析中,建模的核心是什么?3種模型分別是什么,分別用什么工具來描述? 建模的核心是數(shù)據(jù)字典,它描述了所有的在目標系統(tǒng)中使用的和生成的數(shù)據(jù)對象。 (1)、數(shù)據(jù)模型,用實體-聯(lián)系圖描述; (2)、功能模型,用數(shù)據(jù)流圖描述; (3)、行為模型,用狀態(tài)轉(zhuǎn)換圖描述。 第5章 總體設(shè)計 1、什么是總體設(shè)計? 將軟件需求轉(zhuǎn)化為軟件的數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)結(jié)構(gòu),確定各組成成分(子系統(tǒng)或模塊)之間的相互關(guān)系 2、模塊化設(shè)計的原理包括什么?為了提高軟件的可維護性,其中,模塊獨立性最重要的,是評價軟件結(jié)構(gòu)質(zhì)量的首要標準。 模塊化設(shè)計的原理包括:模塊化、抽象、逐步求精、信息隱藏和局部化、模塊獨立。為了提高軟件的可維護性,其中,模塊獨立性最重要的,是評價軟件結(jié)構(gòu)質(zhì)量的首要標準。 3、模塊獨立性度量(描述)的兩個指標:內(nèi)聚、耦合;什么是內(nèi)聚,什么是耦合;耦合和內(nèi)聚的具體分類及使用原則;在面向數(shù)據(jù)流的方法中,內(nèi)聚、耦合各分為哪幾級,每級的具體含義分別是什么?強度從弱到強如何排列?耦合和內(nèi)聚兩者關(guān)系? (1)耦合定義:它是對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量; 耦合分類: 耦合使用原則:盡量使用數(shù)據(jù)耦合,小用控制耦合和特征耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合,最終降低模塊間接口的復(fù)雜性。 (2)內(nèi)聚定義:它標志著一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度,它是信息隱藏和局部化概念的自然擴展。 內(nèi)聚分類: 內(nèi)聚使用原則:設(shè)計時力求高內(nèi)聚,設(shè)計時應(yīng)該力求做到高內(nèi)聚,通常中等程度的內(nèi)聚也是可以采用的,而且效果和高內(nèi)聚相差不多;但是,低內(nèi)聚很壞,不要使用。 (3)耦合和內(nèi)聚兩者關(guān)系:耦合與內(nèi)聚都是模塊獨立性的定性標準,都反映模塊獨立性的良好程度。其中內(nèi)聚更重要。內(nèi)聚與耦合密切相關(guān)。同其它模塊強耦合的模塊意味著它自己是弱內(nèi)聚的;強內(nèi)聚模塊意味著與其它模塊間松散耦合。所以設(shè)計的目標應(yīng)該是力爭高內(nèi)聚、低耦合。 第6章 詳細設(shè)計 1結(jié)構(gòu)化程序設(shè)計 1結(jié)構(gòu)化程序設(shè)計的原則 結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為自頂向下,逐步求精,模塊化,限制使用goto語句。 2結(jié)構(gòu)化程序的基本結(jié)構(gòu)與特點 1. 順序結(jié)構(gòu) 2. 選擇結(jié)構(gòu):選擇結(jié)構(gòu)又稱為分支結(jié)構(gòu)。 3. 重復(fù)結(jié)構(gòu):重復(fù)結(jié)構(gòu)又稱為循環(huán)結(jié)構(gòu)。 2、什么是過程設(shè)計的工具?分類?基本要求? 過程設(shè)計工具的定義:描述程序處理過程的工具 過程設(shè)計工具的分類:它們可以分為圖形、表格、和語言3類。 過程設(shè)計工具的基本要求:不論是哪類工具,對它們的基本要求都是能提供對設(shè)計的無歧義的描述。 3、軟件詳細設(shè)計描述工具的概念和使用:程序流程圖、N-S圖、PAD圖、PDL語言:是什么,基本符號和表示的意義,畫法;各種工具描述結(jié)果間的轉(zhuǎn)換。 (1)程序流程圖的定義:又稱為程序框圖,它是歷史最悠久、使用最廣泛的描述過程設(shè)計的方法,然而它也是用得最混亂的一種方法。 程序流程圖的基本符號: (2)盒圖(N-S圖)的定義:出于要有一種不允許違背結(jié)構(gòu)程序設(shè)計精神的圖形工具的考慮,Nassi和Shneiderman提出了盒圖。 它有下述特點: (1) 功能域(即,一個特定控制結(jié)構(gòu)的作用域)明確,可以從盒圖上一眼就看出來。 (2) 沒有箭頭,不可能任意轉(zhuǎn)移控制。 (3) 很容易確定局部和全程數(shù)據(jù)的作用域。 (4) 很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。 盒圖(N-S圖)的基本符號: (a)順序;(b)IF_THEB_ELSE型分支;(c)CASE型多分支;(d)循環(huán);(e)調(diào)用子程序 (3)PAD(問題分析圖)的定義: 1973年由日本日立公司發(fā)明。它用二維樹形結(jié)構(gòu)的圖來表示程序的控制流,將這種圖翻譯成程序代碼比較容易。 PAD(問題分析圖)的基本符號: (a)順序;(b)選擇(IF C THEN P1 ELSE P2);(c)CASE型多分支;(d)WHILE型循環(huán)(WHILE C DO P);(e)UNTIL型循環(huán)(REPEAT P UNTIL C);(f)語句標號;(g)定義 (3)過程設(shè)計語言(PDL)的定義:也稱為偽碼,PDL是一種“混雜”語言,它使用一種語言的詞匯,同時卻使用另一種語言(某種結(jié)構(gòu)化的程序設(shè)計語言)的語法。 過程設(shè)計語言(PDL)的舉例: 第7章 實現(xiàn) 1、軟件測試的目的是什么?軟件測試方法的種類? 為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程,測試階段的根本目標是盡可能多地發(fā)現(xiàn)并排除軟件中潛藏的錯誤,最終把一個高質(zhì)量的軟件系統(tǒng)交給用戶使用。 2、軟件測試與軟件開發(fā)階段的關(guān)系? 軟件開發(fā)過程是一個自頂向下、逐步細化的過程,而測試則是依相反的順序安排的,自底向上、逐步集成的過程。低一級為上一級測試準備條件。 3、軟件測試的步驟,過程。 模塊測試----單元、子系統(tǒng)測試----局部、系統(tǒng)測試----全局、驗收測試----用戶參與、平行運行----新舊共存 4、軟件測試的三大階段:單元測試、集成測試(組裝測試)、確認測試(驗收測試)的主要任務(wù)(目的)是什么?測試的內(nèi)容主要有哪些?測試計劃分別在什么時候制定?測試計劃的內(nèi)容有哪些? 模塊測試(單元測試) 目的:是保證每個模塊作為一個單元能正確運行。在編寫出源程序代碼并通過了編譯程序的語法檢查之后,就可以用詳細設(shè)計描述作指南,對重要的執(zhí)行通路進行測試,以便發(fā)現(xiàn)模塊內(nèi)部的錯誤。 內(nèi)容: 1.模塊接口測試----檢測數(shù)據(jù)能否正確無誤地進入和流出模塊 2.路徑測試 3.出錯處理測試----測試程序中包含的出錯處理是否有效 4.邊界條件測試----檢測在數(shù)據(jù)邊界處,模塊能否正常工作 單元測試計劃的時間:在詳細設(shè)計結(jié)束時制定,主要使用白盒測試技術(shù) 集成測試 任務(wù):在單元測試的基礎(chǔ)上,需要將所有模塊按照設(shè)計要求組裝成為系統(tǒng),發(fā)現(xiàn)并排除在模塊連接的接口中可能出現(xiàn)的問題,最終構(gòu)成所要求的軟件系統(tǒng)。 內(nèi)容: (1)把各個模塊連接起來后,考察穿越模塊接口的數(shù)據(jù)是否會丟失或產(chǎn)生錯誤 (2)各個子功能組合起來,能否達到預(yù)期要求的主要功能 (3)一個模塊的功能是否會對另一個模塊的功能產(chǎn)生不利的影響 (4)全局數(shù)據(jù)結(jié)構(gòu)是否有錯誤 (5)單個模塊的誤差累積起來,是否會被放大,從而達到不能被接受的程度 集成測試計劃的時間:在總體設(shè)計結(jié)束時制定,詳細設(shè)計結(jié)束時補充 確認測試 目的:也稱為稱驗收測試。它的主要目標是驗證軟件的有效性。證實軟件功能與用戶需求是否一致,即測試軟件能否按照軟件需求規(guī)格說明書(合同)的要求運行。 內(nèi)容:有效性測試、軟件配置復(fù)查、驗收測試 確認測試計劃的時間:在需求分析時制定,后續(xù)階段補充,通過黑盒測試技術(shù)。 5、什么是白盒測試?典型的白盒測試技術(shù)有哪幾個,含義如何?簡單的邏輯覆蓋測試用例設(shè)計。 白盒測試的定義:也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是按照程序內(nèi)部的結(jié)構(gòu)測試程序,通過測試來檢測產(chǎn)品內(nèi)部動作是否按照設(shè)計規(guī)格說明書的規(guī)定正常進行,檢驗程序中的每條通路是否都能按預(yù)定要求正確工作。 應(yīng)用時間:白盒測試在測試過程的早期階段進行 白盒測試技術(shù):1、邏輯覆蓋:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、點覆蓋、邊覆蓋、路徑覆蓋; 2、控制結(jié)構(gòu)測試:基本路徑測試、條件測試、循環(huán)測試。 邏輯覆蓋測試的5種標準 發(fā)現(xiàn)錯誤的能力 標準 含義 1(弱) 語句覆蓋 每條語句至少執(zhí)行一次 A=2,B=0,X=4 2 判定覆蓋 每一判定的每個分支至少執(zhí)行一次 A=3,B=0,X=3 A=2,B=1,X=1 3 條件覆蓋 每一判定中的每個條件,分別按“真”、“假”至少各執(zhí)行一次A=2,B=0,X=4 A=1,B=1,X=1 4 判定/條件覆蓋 同時滿足判定覆蓋和條件覆蓋的要求A=2,B=0,X=4 A=1,B=1,X=1 5(強) 條件組合覆蓋 求出判定中所有條件的各種可能組合值,每一可能的條件組合至少執(zhí)行一次 ·條件覆蓋不一定包含判定覆蓋;判定覆蓋也不一定包含條件覆蓋。 ·條件組合覆蓋是前述幾種覆蓋標準中最強的。但是,滿足條件組合覆蓋標準的測試數(shù)據(jù)并不一定能使程序中的每條路徑都執(zhí)行到。 例子: 第8章 維護 1、什么是軟件維護、維護分哪四種類型、其含義分別是什么、在維護工作中占得比例如何? 軟件維護定義:就是在軟件已經(jīng)交付使用之后,為了改正錯誤或滿足新的需要而修正軟件的過程。 維護分為四種類型:(1)改正性維護:把整斷和改正錯誤的過程稱為改正性維護(2)適應(yīng)性維護:為了和變化的環(huán)境適當?shù)呐浜隙M行的修改軟件的活動,(3)完善性維護:在使用軟件的過程中用戶常常提出新增功能或修改已有功能的建議,為了滿足這類要求的活動(4)預(yù)防性維護:為了改進將來的可維護性或可靠性; 所占比例:完善性維護:50%~66% 改正性維護:17%~21% 適應(yīng)性維護:18%~25% 其他維護:4% 2、什么是軟件的可維護性?決定軟件可維護性的因素有哪些?造成軟件難以維護的原因有哪些? 軟件的可維護性:是指軟件維護人員理解、糾正軟件系統(tǒng)出現(xiàn)的錯誤和缺陷,以及為滿足新的要求進行修改、擴充或壓縮軟件的難易程度 決定軟件可維護性的五個因素:(1)可理解性(2)可測試性(3)可修改性(4)可移植性(5)可重用性 難以維護的原因:在于這些軟件的文檔不全、質(zhì)量差、開發(fā)過程不注意采用好的方法,忽視程序設(shè)計風格等。 難以維護的根本原因:軟件定義和軟件開發(fā)的方法有缺點,在軟件生命周期的頭兩個時期沒有嚴格而又科學(xué)的管理和規(guī)劃,沒有采用軟件工程思想開發(fā)軟件。 3、文檔和可維護性之間的關(guān)系? 文檔是影響軟件可維護性的決定因素,文檔往往比代碼更加重要; 軟件系統(tǒng)的文檔可以分為用戶文檔和系統(tǒng)文檔兩類 .軟件系統(tǒng)的文檔可以分為用戶文檔和系統(tǒng)文檔兩類.用戶文檔主要描述系統(tǒng)功能和使用 方法,并不關(guān)心這些功能是怎樣實現(xiàn)的;系統(tǒng)文檔描述系統(tǒng)發(fā)設(shè)計,實現(xiàn)和測試等各方面的 內(nèi)容" 8.4.2 文檔 分類 用戶文檔:主要描述系統(tǒng)功能和使用方法,并不關(guān)心這些功能是怎樣實現(xiàn)的 系統(tǒng)文檔:描述系統(tǒng)設(shè)計、實現(xiàn)和測試等各方面的內(nèi)容 文檔要求 必須描述如何使用這個系統(tǒng),沒有這種描述時即使是最簡單的系統(tǒng)也無法使用; 必須描述怎樣安裝和管理這個系統(tǒng); 必須描述系統(tǒng)需求和設(shè)計; 必須描述系統(tǒng)的實現(xiàn)和測試,以便使系統(tǒng)成為可維護的 用戶文檔 功能描述 ,說明系統(tǒng)能做什么; 安裝文檔 ,說明怎樣安裝這個系統(tǒng)以及怎樣使系統(tǒng)適應(yīng)特定的硬件配置; 使用手冊 ,簡要說明如何著手使用這個系統(tǒng)( 應(yīng)該通過豐富例子說明怎樣使用常用的系統(tǒng)功能,還應(yīng)該說明用戶操作錯誤時怎樣恢復(fù)和重新啟動) ; 參考手冊 ,詳盡描述用戶可以使用的所有系統(tǒng)設(shè)施以及它們的使用方法,還應(yīng)該解釋系統(tǒng)可能產(chǎn)生的各種出錯信息的含義( 對參考手冊最主要的要求是完整,因此通常使用形式化的描述技術(shù)) ; 操作員指南( 如果需要有系統(tǒng)操作員的話) ,說明操作員應(yīng)該如何處理使用中出現(xiàn)的各種情況。 8.4.2 文檔 系統(tǒng)文檔 問題定義、需求說明到驗收測試計劃這樣一系列和系統(tǒng)實現(xiàn)有關(guān)的文檔 4、衡量軟件質(zhì)量的主要指標? 可維護性、可使用性、可靠性是衡量軟件質(zhì)量的主要指標 9.面向?qū)ο蟮母拍? 9.2.1 對象 § 是客觀事物或概念的抽象表述,即對客觀存在的事物的描述統(tǒng)稱為對象 § 對象可以是事、物、或抽象概念 ,是將一組數(shù)據(jù)和使用該數(shù)據(jù)的一組基本操作或過程封裝在一起的實體。 對象的特點 (1) 以數(shù)據(jù)為中心。 (2) 對象是主動的。 (3) 實現(xiàn)了數(shù)據(jù)封裝。 (4) 本質(zhì)上具有并行性。 (5) 模塊獨立性好。 9.2.2 類 § 類又稱對象類(Object Class ), 是一組具有相同屬性和相同操作的對象的集合。在一個類中,每個對象都是類的實例(instance) , 它們都可以使用類中提供的函數(shù)。 9.2.3 實例 § 實例就是由某個特定的類所描述的一個具體的對象。類是對具有相同屬性和行為的一組相似的對象的抽象,類在現(xiàn)實世界中并不能真正存在。 9.2.4 消息 § 消息就是向?qū)ο蟀l(fā)出的服務(wù)請求(互相聯(lián)系、協(xié)同工作等)。一個消息包含3 個部分:接收消息的對象,消息名,消息變元。 § 例如,MyCircle 是Circle 類的一個實例,發(fā)送消息如下: MyCircle.show (GREEN ); 9.2.5 方法 § 方法就是對象所能執(zhí)行的操作,也就是類中所定義的服務(wù)。 § 方法描述了對象執(zhí)行操作的算法,響應(yīng)消息的方法。在C++語言中把方法稱為成員函數(shù)。 9.2.6 屬性 § 屬性就是類中所定義的數(shù)據(jù),它是對客觀世界實體所具有的性質(zhì)的抽象。 9.2.7 封裝 § 對象封裝了對象的數(shù)據(jù)以及對這些數(shù)據(jù)的操作。 9.2.8 繼承 § 繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們。在面向?qū)ο蟮能浖夹g(shù)中,繼承是子類自動地共享基類中定義的數(shù)據(jù)和方法的機制。 § 單重繼承: 子類僅從一個父類繼承屬性和方法 § 多重繼承:子類可從多個父類繼承屬性和方法 9.2.9 多態(tài)性 § 在類等級的不同層次中可以共享(公用)一個行為(方法)的名字,然而不同層次中的每個類卻各自按自己的需要來實現(xiàn)這個行為。 § 當對象接收到發(fā)送給它的消息時,根據(jù)該對象所屬于的類動態(tài)選用在該類中定義的實現(xiàn)算法 有兩種重載:函數(shù)重載是指在同一作用域內(nèi)的若干個參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字;運算符重載是指同一個運算符可以施加于不同類型的操作數(shù)上面。當然,當參數(shù)特征不同或被操作數(shù)的類型不同時,實現(xiàn)函數(shù)的算法或運算符的語義是不相同的。重載進一步提高了面向?qū)ο笙到y(tǒng)的靈活性和可讀性。 9.4.2 表示關(guān)系的符號 § 類與類之間關(guān)系有:關(guān)聯(lián),聚集,泛化(繼承),依賴,細化 9.4.2.1 關(guān)聯(lián) § 關(guān)聯(lián)表示兩個類的對象之間存在某種語義上的聯(lián)系。 § (1) 普通關(guān)聯(lián) 普通關(guān)聯(lián)示例 § 在表示關(guān)聯(lián)的直線兩端可以寫上重數(shù)(multiplicity),它表示該類有多少個對象與對方的一個對象連接。重數(shù)的表示方法通常有: § 0…1 表示0到1個對象 § 0…*或* 表示0到多個對象 § 1+或1…* 表示1到多個對象 § 1…15 表示1到15個對象 § 3 表示3個對象 § 如果圖中未明確標出關(guān)聯(lián)的重數(shù),則默認重數(shù)是1。 § (2) 關(guān)聯(lián)的角色 § 在任何關(guān)聯(lián)中都會涉及到參與此關(guān)聯(lián)的對象所扮演的角色(即起的作用),在某些情況下顯式標明角色名有助于別人理解類圖。如果沒有顯式標出角色名,則意味著用類名作為角色名。 § (3) 限定關(guān)聯(lián) § 限定關(guān)聯(lián)通常用在一對多或多對多的關(guān)聯(lián)關(guān)系中,可以把模型中的重數(shù)從一對多變成一對一,或從多對多簡化成多對一。在類圖中把限定詞放在關(guān)聯(lián)關(guān)系末端的一個小方框內(nèi)。 § (4) 關(guān)聯(lián)類 § 為了說明關(guān)聯(lián)的性質(zhì)可能需要一些附加信息??梢砸胍粋€關(guān)聯(lián)類來記錄這些信息。關(guān)聯(lián)中的每個連接與關(guān)聯(lián)類的一個對象相聯(lián)系。關(guān)聯(lián)類通過一條虛線與關(guān)聯(lián)連接。 9.4.2.2 聚集 § 聚集是一種特殊的關(guān)聯(lián),它指出類間的“ 整體- 部分” 關(guān)系。 § (1) 共享聚集 § 如果在聚集關(guān)系中處于部分方的對象可同時參與多個處于整體方對象的構(gòu)成,則該聚集稱為共享聚集。 § (2) 組合聚集 § 如果部分類完全隸屬于整體類,部分與整體共存,整體不存在了部分也會隨之消失,則該聚集稱為組合聚集。 9.4.2.3 泛化 ? UML中的泛化關(guān)系就是通常所說的繼承關(guān)系。 (1) 普通泛化 §(2) 受限泛化 § 可以給泛化關(guān)系附加約束條件,以進一步說明該泛化關(guān)系的使用方法或擴充方法,這樣的泛化關(guān)系稱為受限泛化。預(yù)定義的約束有4種: 多重、不相交、完全和不完全。下圖:多重繼承 9.4.2.3 泛化(III) § 完全繼承指的是父類的所有子類都已在類圖中窮舉出來了,圖示符號是指定{完全}約束。 § 不完全繼承與完全繼承恰好相反,父類的子類并沒有都窮舉出來,不完全繼承是一般情況下默認的繼承關(guān)系9.4.2.4 依賴 § 依賴關(guān)系表示: 其中一個模型元素是獨立的,另一個模型元素不是獨立的,它依賴于獨立的模型元素,如果獨立的模型元素改變了,將影響依賴于它的模型元素。 9.4.2.5 細化 § 當對同一個事物在不同抽象層次上描述時,這些描述之間具有細化關(guān)系。假設(shè)兩個模型元素A和B描述同一個事物,它們的區(qū)別是抽象層次不同,如果B是在A的基礎(chǔ)上的更詳細的描述,則稱B細化了A,或稱A細化成了B。 9.3 面向?qū)ο蠼!?面向?qū)ο箝_發(fā)軟件,需要建立3種形式的模型。 § 對象模型。描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)—數(shù)據(jù)結(jié)構(gòu)。 § 動態(tài)模型。描述系統(tǒng)控制結(jié)構(gòu)—執(zhí)行操作。 § 功能模型。描述系統(tǒng)功能—數(shù)值變化。 § 這三種模型從不同側(cè)面描述了對系統(tǒng)的需求。在面向?qū)ο蟮姆治?OOA)階段,這三種模型是必不可少的。 9.4 對象模型 § 對象模型描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)。OO方法強調(diào)圍繞對象而不是功能來構(gòu)造系統(tǒng)。 § 使用統(tǒng)一建模語言UML (Unified Modeling Language )提供的類圖來建立對象模型。 § UML用例圖是建立功能模型的有力工具。 動態(tài)模型描述系統(tǒng)控制結(jié)構(gòu)。通常用狀態(tài)圖表示。 下降狀態(tài) 在第一層 上升狀態(tài) 向第一層下降 空閑狀態(tài) 上升 到達 到達 上升 超時 下降 到達第一層 功能模型表示變化的系統(tǒng)的“功能”性質(zhì),它指明了系統(tǒng)應(yīng)該“做什么”,通常,功能模型由一組數(shù)據(jù)流圖組成。 UML提供的用例圖也是進行需求分析和建立功能模型的強有力工具。 對象模型 動態(tài)模型 功能模型 對象的靜態(tài)結(jié)構(gòu)及相互關(guān)系 與時間和順序有關(guān)的系統(tǒng)性質(zhì) 與值的變化有關(guān)的系統(tǒng)性質(zhì) 描述系統(tǒng)的數(shù)據(jù)結(jié)構(gòu) 控制結(jié)構(gòu) 系統(tǒng)的功能 “干事的主體” “什么時候干” “干什么” 第13章 軟件項目管理 1、什么是軟件項目管理?目的是什么?軟件項目管理的主要內(nèi)容是什么?主要職能是什么? 軟件項目管理的定義:是為了實現(xiàn)項目目標,運用相關(guān)的知識、技能、方法、工具,對項目的計劃、進度、質(zhì)量、成本、資源進行管理和控制的活動。 目的:通過計劃、組織和控制等一系列活動,合理地配置和使用各種資源,以達到既定目標的過程。項目管理不僅是為了節(jié)約金錢,而且是為了節(jié)省時間,縮短產(chǎn)品的開發(fā)周期。 內(nèi)容: (1) 人員的管理與組織 (2) 軟件度量 (3) 軟件項目計劃 (4) 風險管理 (5) 軟件質(zhì)量保證 (6) 軟件過程能力評估 (7) 軟件配置管理 主要職能:制定計劃、建立組織、配備人員、指導(dǎo) 2、軟件規(guī)模估算的兩種典型方法是什么?含義分別是什么? 代碼行技術(shù)含義:這種方法依據(jù)以往開發(fā)類似產(chǎn)品的經(jīng)驗和歷史數(shù)據(jù),估計實現(xiàn)一個功能所需要的源程序行數(shù) 代碼行技術(shù)估算方法:估計該程序模塊的最小規(guī)模(設(shè)為a)、最大規(guī)模(設(shè)為b)和最可能的規(guī)模(設(shè)為m),則計算單元規(guī)模的估計值為: 功能點技術(shù)含義:依據(jù)對軟件信息域特性和軟件復(fù)雜性的評估結(jié)果,估算軟件規(guī)模 3、軟件開發(fā)小組人員如何確定,人員個數(shù)怎么確定? 根據(jù)軟件規(guī)模估算出完成項目所需的工作量,確定開發(fā)人員的個數(shù),并合理地組織項目組結(jié)構(gòu)。 4、根據(jù)什么、如何確定軟件項目組的最佳規(guī)模,為什么存在項目組的最佳規(guī)模? 對于某一個組員來說,他與其他組員通信的路徑數(shù)在1~(P-1)的范圍內(nèi)變化。如果不與任何人通信時個人生產(chǎn)率為L,而且每條通信路徑導(dǎo)致生產(chǎn)率減少l,則組員個人平均生產(chǎn)率為 Lr=L-l(P-1)r (13.5) 其中,r是對通信路徑數(shù)的度量,0- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
4 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 安徽大學(xué) 軟件工程 導(dǎo)論 期末 復(fù)習(xí) 考點 試卷 匯總
鏈接地址:http://zhongcaozhi.com.cn/p-1656995.html