第一篇:軟件工程復習材料
1.軟件的概念
一般可以將軟件劃分為系統軟件、應用軟件和介于這兩者之間的中間件。計算機軟件的傳統定義為:軟件是計算機系統中與硬件相依存的另一部分,軟件包括程序、數據及其相關文檔的完整集合。
程序是按事先設計的功能和性能要求執行的指令序列;數據是使程序能正常操縱信息的數據結構;文檔是與程序開發、維護和使用有關的圖文材料。
2.軟件的特性
1)形態特性。軟件是無形的、不可見的邏輯實體。2)智能特性。3)開發特性。4)質量特性。5)生產特性。6)管理特性。7)環境特性。8)維護特性。9)廢棄特性。10)應用特性。
軟件危機:軟件開發周期長、成本高、質量差、維護困難 原因
1)缺乏軟件開發的經驗和有關軟件開發數據的積累,使得開發工作的計劃很難制訂;
2)軟件人員與用戶的交流存在障礙;
3)軟件開發過程不規范,缺少方法論和規范的指導;
4)隨著軟件規模的增大,其復雜性往往會呈指數型增長; 5)缺少有效的軟件評測手段,提交用戶的質量差。
1.1.1 軟件工程的概念
軟件工程是指導計算機軟件開發和維護的工程學科。
采用工程的概念、原理、技術和方法來開發和維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經濟地開發出高質量的軟件并有效地維護它,這就是軟件工程。
1.1.2 軟件工程的目標
軟件工程的目標是運用先進的軟件開發技術和管理方法來提高軟件的質量和生產率,也就是要以較短的周期、較低的成本生產出高質量的軟件產品,并最終實現軟件的工業化生產。
衡量軟件質量的6個特性:功能性、可靠性、可使用性、效率、可維護性和可移植性。1.1.3 軟件工程的基本原理 按軟件生存周期分階段制訂計劃并認真實施; 3 堅持進行階段評審; 4 堅持嚴格的產品控制; 5 使用現代程序設計技術; 6 明確責任; 7 用人少而精; 不斷改進開發過程
軟件生存期: 軟件定義:問題定義、可行性研究和需求分析
軟件開發:概要設計、詳細設計、編碼和測試
運行維護:改正性維護、適應性維護、完善性維護和預防性維護
軟件工程方法學包含3個要素:方法、工具和過程。
3.1 軟件需求分析階段的任務:獲取需求、分析需求、定義需求和驗證需求
3.4 數據建模三要素:數據對象,屬性,關系 3.5 行為建模三要素:狀態,狀態轉換,事件
1.1.1 軟件設計的階段與任務:兩個階段:概要設計階段和詳細設計階段
1.1.2 模塊獨立性
1)松散耦合:非直接耦合,數據耦合,標記耦合,控制耦合,外部耦合,公共耦合,內容耦合。
高度內聚:巧合內聚,邏輯內聚,時間內聚,過程內聚,通信內聚,信息內聚,功能內聚
1.1.3 設計過程
(1)復查并精化數據流圖;
(2)確定數據流圖中數據流的類型,典型的數據流類型有變換型數據流和事務型數據流;
(3)導出初始的軟件結構圖;(4)逐級分解;
(5)精化軟件結構;
(6)導出接口描述和全局數據結構
1.1.4 軟件模塊結構的改進方法 1)模塊功能的完善化;
2)消除重復功能,改善軟件結構;
3)模塊的作用范圍應在控制范圍之內;
4)盡可能減少高扇出結構,隨著深度增大扇入; 5)避免或減少使用病態連接; 6)模塊的大小要適中
5.1.2 自頂向下、逐步細化的設計過程
一是將復雜問題的解法分解和細化成由若干個模塊組成的層次結構; 二是將每個模塊的功能逐步分解細化為一系列的處理。
7.1面向對象的主要概念(1)對象(2)類(3)繼承
(4)消息:把向對象發出的操作請求稱為消息;(5)關聯:是兩個或多個類之間的一個靜態關系;
(6)聚合:一個對象由其它若干個對象作為其構成部分。
7.2基本原則主要有:抽象、分類、封裝、消息通信、多態性、復雜性控制
8.1面向對象分析(OOA)是軟件生命周期的一個階段,具有一般分析方法所共有的內容、目標及策略。
(1)OOA模型分為3個層次:對象層、特征層和關系層。
12.1.1 軟件維護的定義
稱在軟件運行/維護階段對軟件產品所進行的修改就是所謂的維護。1.改正性維護:診斷和改正錯誤的過程;
2.適應性維護:為了使軟件適應外部環境或數據環境可能發生的變化,而修改軟件的過程稱為適應性維護; 3.完善性維護:
修改或再開發軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性,這種情況下進行的維護活動稱為完善性維護。4..預防性維護
12.2 軟件維護活動 1 軟件維護申請報告 2 軟件維護工作流程 3 維護檔案記錄 4 維護評價
12.3.3 修改程序的副作用以及其控制
所謂副作用是指因修改軟件而造成的錯誤及其它不希望發生的情況 1.修改代碼的副作用 2.修改數據的副作用 3.修改文檔的副作用
12.4.1軟件可維護性的定義
所謂軟件可維護性,是指糾正軟件系統出現的錯誤和缺陷,以及為滿足新的要求進行修改、擴充或壓縮的容易程度。
12.4.2 可維護性的度量 1.可理解性 2.可靠性 3.可測試性 4.可修改性 5.可移植性 6.效率
7.可使用性
10.2 傳統軟件過程模型 10.2.1 瀑布模型: 優點:(1)可強迫開發人員采用規范化的方法
(2)嚴格的規定了每個階段必須提交的文檔
(3)要求每個階段交出的所有產品必須是經過驗證的 缺點:(1)幾乎完全依賴于書面的規格說明,很可能導致最終開發出的軟件產品不能真正滿足用戶的需求
(2)瀑布模型只適用于項目開始時需求已確定的情況
10.2.2 快速原型模型
優點:(1)有助于滿足用戶的真實需求。
(2)原型系統已經通過與用戶的交互而得到驗證,據此產生的規格說明文檔能夠正確地描述用戶需求。
(3)軟件產品的開發基本上是按線性順序進行。
(4)因為規格說明文檔正確地描述了用戶需求,因此,在開發過程的后續階段不會因為發現規格說明文檔的錯誤而進行較大的返工。
(5)開發人員通過建立原型系統已經學到了許多東西,因此,在設計和編碼階段發生錯誤的可能性也比較小,這自然減少了在后續階段需要改正前面階段所犯錯誤的可能性。(6)快速原型的突出特點是“快速”。10.2.3 增量模型
優點;(1)能在較短時間內向用戶提交可完成一些有用的工作產品
(2)逐步增加產品的功能可以使用戶有較充裕的時間學習和適應新產品,從而減少一個全新的軟件可能給用戶組織帶來的沖擊。(3)項目失敗的風險較低
(4)優先級最高的服務首先交付,然后再將其他增量構件逐次集成進來。10.2.4 螺旋模型 ? 優點
? 對可選方案和約束條件的強調有利于已有軟件的重用,也有助于把軟件質量作為軟件開發的一個重要目標。
? 減少了過多測試或測試不足所帶來的風險。
? 在螺旋模型中維護只是模型的另一個周期,因而在維護和開發之間并沒有本質區別。? 缺點
? 螺旋模型是風險驅動的,因此要求軟件開發人員必須具有豐富的風險評估經驗和這方面的專門知識,否則將出現真正的風險:當項目實際上正在走向災難時,開發人員可能還以為一切正常。
10.2.5 噴泉模型
第二篇:軟件工程復習要點
軟件工程復習要點
適應班級:08計本網絡,信息安全,軟件工程
第一章:各類軟件過程模型
敏捷過程,XP過程
第二章:可行性研究的任務
數據流圖的分析和設計
數據字典
第三章:用例文檔書寫
需求分析的任務
如何識別執行者,如何識別用例
第五章:模塊獨立
啟發規則
軟件結構圖設計
第六章:盒圖
PAD圖
判定表
判定樹
流圖
第七章:軟件測試基礎
白盒測試技術,控制結構測試,條件測試黑盒測試技術,等價類劃分
測試步驟
莫智懿 2011-7-2
第三篇:軟件工程導論復習整理(最新)
第一章
1..軟件危機:在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。
2.軟件與硬件的區別:軟件不同于硬件,它是計算機系統中的邏輯部件而不是物理部件。
3.軟件:程序、數據及相關文檔的完整集合。
4.軟件工程是指導計算機軟件開發和維護的一門工程學科,采用工程的概念、原理、技術和方法來開發與維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到最好的技術方法結合起來,以經濟地開發出高質量的軟件并有校地維護它。
5.軟件工程方法學三要素:方法、工具和過程。
6.傳統方法學也稱為生命周期方法學或結構化范型。它采用結構化技術來完成軟件開發的各項任務,并使用適當的軟件工具或軟件工程環境來支持結構化技術的運用。
7.面向對象方法學把數據和行為看成同等重要的,它是一種以數據為主線,把數據和對數據的操作緊密地結合起來的方法。
8.軟件生命周期劃分為三個時期:1軟件定義(問題定義、可行性研究、需求分析),2軟件開發(總體設計、詳細設計、編碼和單元測試、綜合測試),3運行維護(軟件維護)。
9.4類軟件維護活動:改正性維護,也就是診斷和改正在使用過程中發現的軟件錯誤;適應性維護,即修改軟件以適應環境的變化;完善性維護,即根據用戶的要求改進或擴充軟件使它更完善;預防性維護,即修改軟件,為將來的維護活動預先做準備。
10.“瀑布模型”的缺點:它是由文檔驅動的,僅僅通過寫在紙上的靜態的規格說明,很難全面正確地認識動態的軟件產品;瀑布模型幾乎完全依賴于書面的規格說明,很可能導致最終開發出的產品不能真正的滿足用戶的需要。
11.快速原型模型的優點:原型系統已經通過與用戶交互而得到驗證,據此產生的規格說明文檔正確地描述了用戶需求;開發人員通過建立原型系統已經學到了很多東西,因此,在設計和編碼階段發生錯誤的可能性也比較小,這自然減少了在后續階段需要改正前面階段所犯錯誤的可能性。
第二章 1.可行性研究的三個方面:技術可行性:使用現有的技術能實現這個系統經濟可行性:這個系統的經濟效益能超過它的開發成本操作可行性:系統的操作方式在這個用戶組織內行得通
2.數據流圖的4個基本符號及畫法P41
3.數據字典:是關于數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。
4.符號含義:=表示“等價于”或“定義為”;+表示連接;[ ]表示“或”,用“|”分隔;{ }表示“重復”,()表示“可選”用“,”號隔開;1{A}5 表示上限和下限。
5.高校電話號碼數據的定義P54
第三章
1.需求分析3種模型:數據模型:實體-聯系圖,描繪數據對象及數據對象之間的關系;功能模型:數據流圖,描繪當數據在軟件系統中移動時被變換的邏輯過程;行為模型:狀態轉換圖,指明了作為外部事件結果的系統行為,描繪了系統的各種行為模式。
2.ER圖3種基本成分:實體(數據對象),關系,屬性。P64
3.軟件需求驗證的四個方面:一致性,完整性,現實性,有效性。
第四章
1.總體設計2個主要階段:系統設計階段,確定系統的具體實現方案;結構設計階段,確定軟件結構。
2.信息隱藏:設計和確定模塊,使得一個模塊內包含的特定信息,對于不需要這些信息的模塊來說,是不能訪問的。
3.模塊獨立2個度量標準:內聚和耦合。耦合衡量不同模塊彼此間互相依賴(連接)的緊密程度;內聚衡量一個模塊內部各個元素彼此結合的緊密程度。4.耦合與內聚判定P98-99
5.深度:表示軟件結構中控制的層數,它往往粗略的標志一個系統的大小和復雜程度,深度和程序長度之間應該有粗略的對應關系;寬度:是軟件結構內同一層次上的模塊總數的最大值;扇出:是一個模塊直接控制(調用)的模塊數目;扇入:表明一個模塊有多少上級模塊直接調用它
6.P100 模塊的作用域和模塊的控制域之間的關系:模塊的作用域定義為受該模塊內一個判定影響的所有模塊的集合;模塊的控制域是這個模塊本身以及所有直接或間接從屬于它的模塊的集合;模塊的作用域應該在控制域之內(在設計的很好的系統中,所有受判定影響的模塊應該都從屬于做出判定的那個模塊,最好局限于做出判定的那個模塊本身以及它的直屬下級模塊)。
6.層次圖,結構圖P10
2第六章
1.結構程序設計定義:如果一個程序的代碼塊僅僅通過順序、選擇和循環這3種基本控制結構進行連接,并且每一個代碼塊只有一個入口和一個出口,則稱這個程序是結構化的。
2.P124 過程設計的工具:程序流程圖、盒圖、PAD圖、判定表、判定樹、過程設計語言。
3.畫出偽碼程序的程序流程圖和盒圖 P1
41第七章
1.軟件測試在軟件生命周期中橫跨兩個階段:單元測試:模塊的編寫者和測試者是同一個人,編碼和單元測試屬于軟件生命周期的同一個階段;綜合測試:由專門的測試人員承擔這項工作。
2.為什么軟件測試不能由程序的編寫人員來做?
(1)測試是為了發現程序中的錯誤而執行程序的過程。
(2)正確認識測試的目標是十分重要的,測試目標決定了測試力案的設計。如果為了表明程序是正確的而進行測試,就會設計一些不易暴露錯誤的測試方案;相反,如果測試是為了發現程序中的錯誤,就會力求設計出最能暴露錯誤的測試方案。
(3)由于測試的目標是暴露程序中的錯誤,從心理學角度看,由程序的編寫者自己進行測試是不恰當的。
3.測試方法:(1)黑盒測試 :把程序看作一個黑盒子,完全不考慮程序的內部結構和處理過程 ;對程序接口進行測試,檢查程序功能是否能按規格說明書的規定正常使用; 程序是否能適當地接受輸入數據并產生正確的輸出信息; 程序運行過程中能否保持外部信息的完整性
(2)白盒測試 :把程序堪稱裝在一個透明的白盒子里,測試者完全知道程序的結構處理算法 ;按照程序內部的邏輯測試程序,檢測程序中的主要執行通路是否都能按 預定要求正確工作。
4.測試步驟:模塊測試,子系統測試,系統測試,驗收測試,平行運行。P151
5.集成測試是測試和組裝軟件的系統化技術,即是在把模塊按照設計要求組裝起來的同時進行測試,由模塊組裝成程序時兩種方法:非漸增式測試方法和漸增式測試方法。
6.P162 邏輯覆蓋標準:語句覆蓋,判定覆蓋,條件覆蓋,判定條件覆蓋,條件組合覆蓋,(還有點覆蓋,邊覆蓋,路徑覆蓋)。
7.設計測試用例:P16
2第八章
1.軟件維護:在軟件已經交付使用之后,為了改正錯誤或者滿足新的需要而修改軟件的過程。
2.維護工作量的一個模型: M = P + K × exp(c-d)其中: M是維護用的總工作量,P是生產性工作量,K是經驗常數,c是復雜程度d是維護人員對軟件的熟悉程度。exp,以自然對數e為底指數函數,Exponential(指數曲線)。
3.軟件可維護性與哪些因素有關?在軟件開發過程中應該采取哪些措施來提高軟件產品可維護性?
答:軟件的可理解性、可測試性、可修改性、可移植性 和可重用性是決定軟件可維護下的基本因素。
軟件生命周期每個階段的工作都和軟件可維護性有密切關系。良好的設計,完整準確易讀易理解的文檔資料,以及一系列嚴格的復審和測試,使得一旦發現錯誤時比較容易診斷和糾正,當用戶有新要求或外部環境變化時軟件能較容易地適應,并且能夠減少維護引入的錯誤。因此,在軟件生命周期的每個階段都必須充分考慮維護問題,并且為軟件維護預做準備。
第九章
1.面向對象的概念:對象,類,實例,消息,方法,屬性,封裝,繼承,多態性P209-215 對象:是封裝了數據結構及可以施加在這些數據結構上的操作的封裝體(類的實例)類:是對具有相同屬性和行為的一個或多個對象的描述(支持繼承的抽象數據類型)實例:是由某個特定的類所描述的一個具體的對象
消息:就是要求某個對象執行在定義它的那個類中所定義的某個操作的規格說明。由3部分組成:接收消息的對象,消息選擇符,零個或多個變元
方法:是對象所能執行的操作,描述了對象執行操作的算法,響應消息的方法
屬性:類中所定義的數據,對客觀世界實體所具有的性質的抽象
封住:就是信息隱藏,通過封裝對外界隱藏了對象的實現細節
繼承:子類自動地共享基類中定義的數據和方法的機制
多態性:指子類對象可以像父類對象那樣使用,同樣的消息既可以發送給父類對象也可以發送給子類對象
2.面向對象建模:描述系統數據結構的對象模型,描述系統控制結構的動態模型,描述系統功能的功能模型。類名
3.對象模型:P217 屬性類圖符號:服務
4.表示關系的符號:類與類之間通常有關聯、泛化(繼承)、依賴和細化等4種關系關聯:表示倆個類的對象之間存在某種語義上的聯系
泛化:是通用元素和具體元素之間的一種分類關系
依賴:描述倆個模型元素(類,用例等)之間的語義連接關系
細化:用來協調不同階段模型之間的關系,表示各個開發階段不同抽象層次的模型之間的相關性,常常用于跟蹤模型的演變。
5.功能模型:用例圖包含的模型元素有系統、行為者、用例及用例之間的關系P224
第十章
1.面向對象分析,就是抽取和整理用戶需求并建立問題域精確模型的過程
2.建立對象模型、動態模型、功能模型的基本方法P235-255
第四篇:軟件工程復習總結
第1章
1什么是軟件危機,產生軟件危機的原因,消除軟件危機的途徑。
落后的軟件生產方式無法滿足迅速增長的計算機軟件需求,從而導致軟件開發與維護過程中出現一系列嚴重問題的現象。
軟件維護費用的急劇上升,直接威脅計算機應用的擴大;軟件生產技術進步緩慢,是加劇軟件危機的重要原因。
既要有技術措施,又要有必要的組織管理措施。2什么是軟件,軟件的精確定義。
軟件是程序以及開發、使用和維護程序所需的所有文檔.。3軟件工程的精確定義,軟件工程的7個特征,7基本原理。
軟件工程是指導計算機軟件開發和維護的一門工程學科。1,軟件工程關注于大型程序的構造; 2,軟件工程的中心課題是控制復雜性; 3,軟件經常化;
4,開發軟件的效率非常重要; 5,和諧地合作是開發軟件的關鍵; 6,軟件必須有效地支持它的用戶;
7,在軟件工程領域中是由一種文化背景的人替具有另一種文化背景的人創造產品。基本原理:
1,用分階段的生命周期計劃嚴格管理; 2,堅持進行階段評審; 3,實行嚴格的產品控制; 4,采用現代程序設計的技術; 5,結果應能清楚地審查;
6,開發小組的人員應該少而精;
7,承認不斷改進軟件工程實踐的必要性。
4軟件工程方法學的精確定義,它的三要素。二種方法學,面向結構,面向對象
3個要素:方法 工具和過程 兩種方法學:1傳統方法學2面向對象方法學 5什么是軟件生命周期,它有哪幾個階段(8個階段),各個階段分別做什么,這些階段的重要性。
一個軟件從定義到開發、使用和維護,直到最終被棄用,要經歷一個漫長的時期,通常把軟件經歷的這個漫長的時期稱為生存周期。階段:1問題定義2可行性研究3需求分析4總體設計5詳細設計6編碼和單元測試7綜合測試8軟件維護
6軟件過程的精確定義,它與軟件工程的關系,它的各種模型,各種模型的優缺點,適用范 圍。
軟件過程為一個為建造高質量軟件所需完成的任務的框架,它規定了完成各項任務的工作步驟。瀑布模型 快速原型模型 增量模型 螺旋模型 噴泉模型 第2章
1什么是可行性研究,它的目的,它的任務,可行性研究是在項目建議書被批準后,對項目在技術上和經濟上是否可行所進行的科學分析和論證。目的:用最小的代價在盡可能短的時間內確定問題是否能夠解決。任務:對以后的行動方針提出建議。
2從哪幾個方面進行可行性研究,每個方面研究什么,它的目的,它的任務。
1技術可行性2經濟可行性3操作可行性 3可行性研究的過程,8個階段。
1.復查系統規模和目標2.研究目前正在使用的系統3.導出新系統的高層邏輯模型4.進一步定義模型5.導出和評價供選擇的解法6.推薦行動方針7.草擬開發計劃8.書寫文檔提交審查 4系統流程圖,表達什么,它的符號,符號含義 概括地描繪物理系統的傳統工具。
5數據流程圖,描繪什么,它的符號,符號含義,畫法,數據流程圖的用途(重點)描繪信息流和數據從輸入移動到輸出的過程中所經受的變換。
6數據字典的精確定義,作用,內容(4類定義組成)定義數據的方法,用途,實現。
數據字典是關于數據的信息的集合。對數據流圖中包含的所有元素的定義的集合。
內容1.數據流2數據流分量3數據存儲4處理 7成本效益分析,使用的方法 第3章
1需求分析,它的任務,它的重要性,它的結果,要遵守的4條準則。
開發人員準確地理解用戶的要求,進行細致的調查分析,將用戶非形式的需求陳述轉化為完整的需求定義,再由需求定義轉換到相應的需求規格說明的過程。
基本任務: ⑴問題識別:雙方確定對問題的綜合需求,這些需求包括功能需求,性能需求,環境需求,用戶界面需求。
重要性:需求分析可以使得開發和測試更能夠了解客戶的需求,把一些技術難點和可能遇到的難點問題提出來,盡早解決,并且達到一致,便于以后的開發和測試
需求分析結果是產生:需求規格說明書
⑵分析與綜合,導出軟件的邏輯模型
⑶編寫文檔:包括編寫“需求規格說明書”,“初步用戶使用手冊”,“確認測試計劃”,“修改完善軟件開發計劃” 任務的7項要求,與用戶溝通的方法
獲取需求的方法,用到的圖形工具:E_R圖,圖描述什么,使用符號 狀態轉換圖,其他圖形,IPO圖等 驗證需求,4個方面 第5章
1總體設計的目的,任務
總體設計的基本目的就是回答“概括地說,系統應該如何實現?”這個問題。任務是設計軟件的結構,也就是明確系統中每個程序是由哪些模塊組成的,以及這些模塊相互間的關系。必要性:可以站在全局的高度上,花較少成本,從較抽象的層次上分析對比多種可能的系統實現方案和軟件結構,從中選出最佳方案和最合理的軟件結構,從而用較低成本開發出較高質量的軟件系統。2設計過程,二個階段9個步驟
兩個階段:1系統設計階段,確定系統的具體實現方案2結構設計階段,確定軟件結構。設計過程的9個步驟:1設想供選擇的方案2選取合理的方案3推薦最佳方案4功能分解5設計軟件結構6設計數據庫7制定測試計劃8書寫文檔9審查和復審。3設計原理,模塊化,與模塊化有關的獨立,度量標準:耦合,內驟
設計原理:1模塊化2抽象3逐步求精。模塊獨立程度的兩個定性標準度量:1內聚2耦合。
4啟發式7條規則,啟發規則:1改進軟件結構提高模塊獨立性2模塊規模應該適中3深度、寬度、扇出、扇入都應適中4模塊的作用域應該在控制域之內5力爭降低模塊接口的復雜程度6設計單入口單出口的模塊7模塊功能應該可以預測。5各種圖形工具,HIPO,結構圖,數據流圖
描繪軟件結構的圖形工具:1層次圖2 HIPO圖3結構圖;面向數據流的設計方法把信息流映射程軟件結構,信息流的類型決定了映射的方法信息流有下述兩種類型:1變換流2事務流。第6章
1詳細設計的目的,任務
詳細設計的根本目標 :是確定應該怎樣具體地實現所要求的系統,經過這個階段的設計工作,應該得出對目標系統的精確描述,從而在編碼階段可以把這個描述直接翻譯成用某種程序設計語言寫的程序。
任務:是要設計出程序的“藍圖”,以后程序員將根據這個藍圖寫出實際的程序代碼。必要性:衡量程序的質量不僅看它的邏輯是否正確,性能是否滿足要求,更重要的是要看它能夠簡單易懂,詳細設計的目的不僅僅是邏輯上正確地實現每個模塊的功能,更重要的是設計出的處理過程應該盡可能簡明易懂。
2結構化:定義,指導思想,哪幾種結構,使用的工具,建立什么模型使用什么工具
結構化的定義:結構化程序設計是盡可能少用GOTO語句的程序設計方法,最好僅在檢測出錯誤時才使用GOTO語句,而且應該總是使用前向goto語句。結構有三種:順序,選擇,和循環。
指導思想:采用自頂向下,逐步求精的程序設計方法,使用三種基本控制結構構造程序,任何程序都可由順序,選擇,重復三種基本控制結構構造。結構:順序結構,選擇結構,循環結構 工具:圖形,表格,和語言
3人機界面設計,要解決的問題,設計過程,設計指南
人機界面設計是接口設計的一個重要組成部分,遇到的四個問題:系統響應時間,用戶幫助設施,出錯信息處理和命令交互。
設計過程,用戶界面設計是一個迭代的過程,通常先創建設計模型,再用原型實現這個設計模型,并由用戶試用和評價,然后根據用戶意見進行修改。設計指南:一般交互指南,信息顯示指南和數據輸入指南
4過程設計的各種工具,程序流程圖,盒圖,PAD圖,判定表,判定樹,過程設計語言
過程設計的工具有三類:圖形,表格,語言。具體有如下幾種
程序流程圖,盒圖,pad圖,判定表,判定樹,過程設計語言(PDL)
5面向數據結構的設計方法,jackson方法,使用的圖形工具
設計方法:根據數據結構設計程序處理過程的方法。
數據的3種使用方法:順序,選擇,重復。Jackson方法
Jackson結構程序設計方法基本上由下述5個步驟組成,(1)分析并確定輸入數據和輸出數據的邏輯結構,并用jackson圖描述這些數據結構(2)找出輸入數據結構和輸出數據結構中有對應關系的數據單元。
(3)用下述3條規則從描繪數據結構的jackson圖導出描繪程序結構的jackson圖。
1、為每對有對應關系的數據單元,按照它們在數據結構圖中的層次在程序結構圖的相應層次畫一個處理框。
2根據輸入數據結構中剩余的每個數據單元所處的層次,在程序結構圖的相應層次分別為它們畫上對應的處理框。總之,描繪程序結構的jackson圖應該綜合輸入數據結構和輸出數據結構的層次關系而導出來。在導出程序結構圖的過程中,由于改進的jackson圖規定在構成順序結構的元素中不能有重復出現或選擇出現的元素,因此可能需要增加中間層次的處理框圖。(4)、列出所有操作和條件,并且把它們分配到程序結構圖的適當位置。(5)用偽碼表示程序。使用的圖形工具:jackson圖
6復雜度的度量,McCabe方法,流圖,(2014年重點)
復雜度度量:把程序的復雜程度乘以適當的常數即可估算出軟件中的錯誤的數量以及軟件開發需要的工作量
Mccabe方法:根據程序控制流的復雜程度定量度量程序的復雜程度 第7章
1實現的重點是測試
2軟件測試的基礎:目標,準則,方法,測試5步驟
軟件測試的基礎:在測試階段測試的人員努力設計出一系列的方案,目的卻是為了“破壞”已經建造好的軟件系統—竭力證明程序中有錯誤,不能按照預定要求正確工作。發現問題是為了解決問題,測試階段的根本目標是盡可能多地發現并排除軟件中潛在的錯誤,最終把一個高質量的軟件系統交給用戶使用。軟測的目標:①測試是為了發現程序中的錯誤而執行程序的過程。②好的測試方案是極可能發現迄今為止尚未發現的錯誤的測試方案。③成功的測試是發現至今為止尚未發現的錯誤的測試。
軟測的準則:①所有的測試都應該能追溯到用戶的需求。②應該遠在測試開始之前就制定出測試計劃。③把Pareto原理應用到軟測中。④應該從“小規模”測試開始,并逐步進行“大規模”測試。⑤窮舉測試是不可能的。⑥為了達到最佳的測試效果,應該由獨立的第三方從事測試工作。
測試方法:白盒測試(結構測試)、黑盒測試(功能測試)。
測試步驟:①模塊測試②子系統測試③系統測試④驗收測試⑤平行測試。3單元測試,測試的重點,測試方案
單元測試:在軟件開發過程中要進行的最低級別的測試活動,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試;集中檢測軟件設計的最小單元---模塊。
單元測試方法有:人工測試和計算機測試;單元測試主要使用白盒測試技術,而且對多個模塊的測試可以并行的進行。
單元測試的重點:①模塊接口②局部數據結構③重要的執行通路④出錯處理通路⑤邊界條件
4集成測試:集成的策略,自頂向下,自底向上
集成測試:測試和組裝軟件的系統化技術。
集成測試的策略:自頂向下和自底向上。
自頂向下集成方法是一個日益為人們廣泛采用的測試和組成軟件的途徑。從主控制模塊開始,沿著程序的控制層次向下移動,逐漸把各個模塊結合起來。自底向上集成:從“原子”模塊開始組成和測試。
5確認測試,范圍,Alpha測試Beta測試
確認測試:又稱驗收測試,它目標是驗證軟件的有效性。
Alpha測試由用戶在開發者的場所進行,并且在開發者對用戶的“指導”下進行測試,其是在受控的環境中進行的。
Beta測試由軟件的最終用戶們在一個或多個客戶場所進行。與Alpha測試不同,開發者通常不在Beta測試的現場,因此Beta測試是軟件開發者不能控制的環境中的“真實”應用。6白盒測試,黑盒測試(重點)
白盒測試:通過測試來檢測產品內部動作是否按照設計規格說明書的規定正常進行。黑盒測試:通過測試來檢測每個功能是否都能正常使用。
7軟件的可靠性,計算公式
軟件的可靠性:程序在給定的時間間隔內,按照規格說明書的規定成功的運行的概率。設計白盒測試方案的技術主要有邏輯技術和控制結構測試;設計黑盒測試方案的技術主要有等價劃分、分界值分析和錯誤推測。
第8章
1軟件維護的定義,4項活動,4類維護
軟件維護的定義:在軟件已經交付使用后,為了改正錯誤或滿足新的需要而修改軟件的過程。
四項維護:第一項維護活動:在任何大型程序的使用期間,用戶必然會發現程序錯誤,并且把他們遇到的問題報告給維護人員,讓維護人員診斷和改正的過程。第二項維護活動:為了和變化了的環境適當地配合而進行的修改軟件的活動,是既必要又經常的維護活動。第三項維護活動:在使用軟件的過程中用戶往往提出增加新功能或修改已有功能的建議,還可能提出一般性的改進意見。第四項維護活動:為了改進未來的可維護性或可靠性,或為了給未來的改進奠定更好的基礎而修改軟件。
四類維護:改正性維護、適應性維護、完善性維護、預防性維護 2軟件維護的特點,問題,軟件維護的特點:結構化維護與非結構化維護差別巨大、維護的代價高昂、維護的問題很多
軟件維護的問題:
1)理解別人寫的程序通常非常困難,而且困難程度隨著軟件配置成分的減少而迅速增加。2)需要維護的軟件往往沒有合格的文檔,或者文檔資料顯著不足。
3)當要求對軟件進行維護時,不能指望有開發人員給人們仔細說明軟件。由于維護階段持續的時間很長,因此,當需要解釋軟件時,往往原來寫程序的人已經不在附近了。4)絕大多數軟件在設計時沒有考慮將來的修改。5)軟件維護不是吸引人的工作。3軟件維護的過程
軟件維護的過程:維護組織、維護報告、維護的事件流、保存維護記錄、評價維護活動 4軟件的可維護性
軟件可維護性定義:維護人員理解、改正、改動或改進這個軟件的難易程度。決定軟件可維護性的因素:可理解性、可測試性、可修改性、可移植性、可重用性 5預防性維護與軟件再工程。
預防性維護由Miller提出來把今天的方法學應用到昨天的系統上以支持明天的明天的需求
6軟件再工程
6類活動:1.庫存目錄分析2.文檔重構3.逆向工程4.代碼重構5.數據重構6.正向工程 第9章
1面向對象方法學的定義,要點,優點
定義:面向對象方法是一種把面向對象的思想應用于軟件開發過程中,指導開發活動的系統方法,簡稱OO(Object-Oriented)方法,是建立在“對象”概念基礎上的方法學。
要點:1認為客觀世界是由各種對象構成的,任何事物都是對象,復雜的對象可以由簡單的對象以某種方式組合而成。2,把所有的對象都劃分成各種對象類,每個對象類都定義了一組數據和一組方法。3,按照子類與父類的關系,把若干個對象組成一個層次結構的的系統。4,對象之間僅能通過傳遞消息互相聯系。
優點:1.與人類習慣的思維方法一致2.穩定性好3.可重用性好4.較易開發大型軟件產品5.可維護性好
2對象的定義,要點,優點
定義:1.對象是具有相同狀態的一組操作的集合2.對象是對屬性值和操作的封裝。3.對象::=
3面向對象的概念,定義,特點
面向對象是一種對現實世界理解和抽象的方法,是計算機編程技術[1]發展到一定階段后的產物。
特點:1對象唯一性2分類性3繼承性4多態性 優點:1易維護2質量高3效率高4易擴展 4類的定義,實例、消息、方法、屬性,繼承等概念
類的定義:類就是具有相同數據和相同操作的一組相似對象的定義。實例:實例就是由某個特定類所描述的一個具體的對象。
消息:小時就是要求某個對象執行在定義它的那個類中所定義的某個操作的規格說明。方法:方法就是對象所能執行的操作,也就是類中所定義的服務。
屬性:屬性就是類中所定義的數據,它是對客觀世界實體說具有的性質的抽象。封裝:在面向對象的程序中,把數據和實現操作的代碼集中放在對象內部。
繼承:在面向對象的軟件技術中,繼承是子類自動地共享基類中的數據和方法的機制。多態:多態性是指子類對象可以像父類對象那樣使用,同樣地消息既可以發給父類對象也可以發給子類對象。重載:函數重載是指在同一作用域類的若干個參數特征不同的函數可以使用相同的函數名字,運送符號重載是指同一個運算符可以施加在不同類型操作數上面。5面向對象建模,對象模型(重點),功能模型(重點)動態模型,模型怎么畫,各種符號 6面向對象方法學使用的語言
面向對象語言是一類以對象作為基本程序結構單位的程序設計語言,指用于描述的設計是以對象為核心,而對象是程序運行時刻的基本成分。語言中提供了類、繼承等成分。第10章
3個子模型和5個層次 怎樣確定類與對象
類是對象的抽象,對象是類的具體實例。確定關聯,各種關聯怎樣確定
建立動態模型,編寫腳本,畫事件跟蹤圖
第五篇:軟件工程導論復習材料
1.軟件工程基本概念
1.()因素促使計算機系統越來越復雜。
A.計算機內存和存儲容量上的巨大增長
B.外部輸入/輸出選項的更加多樣性
C.計算機體系結構方面的深刻變化
D.以上所有選項
2.下面的()不再是現代軟件工程師關注的問題。
A.為什么不能在產品發布前去除軟件錯誤?
B.為什么軟件需要很長時間才能完成?
C.為什么開發一個軟件的成本這么高?
D.為什么計算機硬件的成本這么高?
3.軟件會逐漸退化而不會磨損,其原因在于()。
A.軟件備件很難訂購
B.軟件錯誤通常發生在使用之后
C.通常暴露在惡劣的環境下
D.不斷的變更使組件接口之間引起錯誤軟件
4.大多數軟件仍然是定制開發的,其原因在于()。
A.軟件組件重用是十分普遍的 B.可重用的組件太昂貴而無法使用
C.軟件在不使用其他組件的情況下很容易構造出來
D.商業組件在很多應用領域中可以得到
5.下面的()說法是正確的。
A.軟件危機在20世紀70年代末期全面爆發
B.當前先進的軟件工程方法已經解決了軟件危機的問題
C.軟件危機是指在計算機軟件的開發和維護過程中遇到的一系列嚴重問題
D.軟件危機是指在軟件產品中存在一系列的質量問題 1.瀑布模型本質上是一種()。
A、線性迭代模型
B、順序迭代模型C、線性順序模型
D、及早見產品模型 2.()是用戶和設計交換最頻繁的方法。
A、原型化方法
B、瀑布模型方法C、螺旋模型方法
D、構件組裝模型 5.在軟件開發模型中,提出最早、應用最廣泛的模型是()A.瀑布模型
B.噴泉模型
C.增量模型
D.螺旋模型
1.軟件工程的方法只適用于大型軟件的開發,對小型軟件的開發沒有幫助。()1.什么是軟件危機?其主要表現有那些?
1.有人認為?軟件工程過于耗費時間,并且妨礙開發人員的編程效率。?你是否認同這種觀點?請闡述理由。
2.需求分析 需求規格說明描述了()。
A.計算機系統的功能、性能及其約束
B.每個指定系統的實現
C.軟件體系結構的元素
D.系統仿真所需要的時間
7.軟件可行性研究實質上是要進行一次()需求分析、設計過程。A.簡化、壓縮的B.詳細的 C.徹底的D.深入的 11.下面說法不正確的是()。
A.流程圖不易表示數據結構
B.流程圖容易造成非結構化的程序結構
C.流程圖支持逐步求精
D.流程圖描述的是程序的邏輯結構 1.需求分析中開發人員要從用戶那里了解()。
A、軟件做什么B、用戶使用界面C、輸入的信息D、軟件的規模
2.需求分析階段,分析人員要確定對問題的綜合需求,其中最主要的是()需求。A、功能 B、性能 C、數據 D、環境 24.軟件可行性研究一般不考慮()
A.是否有足夠的人員和相關的技術來支持系統開發 B.是否有足夠的工具和相關的技術來支持系統開發 C.待開發軟件是否有市場、經濟上是否合算 D.待開發的軟件是否會有質量問題 25.需求規格說明描述了()
A.計算機系統的功能、性能及其約束 B.每個指定系統的實現 C.軟件體系結構的元素
D.系統仿真所需要的時間
26.需求分析階段,分析人員要確定對問題的綜合需求,其中最主要的是()需求 A.功能
B.性能
C.數據
D.環境
7.成本效益分析的目的是從
角度評價開發一個項目是否可行。
2.軟件需求規格說明書在軟件開發過程中具有重要的作用,它是軟件可行性分析的依據。3.()目前存在一個很普遍的現象,即不同的客戶提出的需求是相互矛盾的,但每個人都爭辯自己是正確的。
5.()在需求分析過程中,分析員要從用戶那里解決的最重要的問題是明確軟件做什么。2.可行性研究主要確定問題分析階段所確定的問題是否有可行的解。()6.在需求分析過程中,分析員要解決的最重要的問題是明確軟件做什么。()7.數據流圖的畫法?
3.軟件設計與編碼.概要設計階段產生的文檔不包括()。A.概要設計說明書
B.數據庫設計說明書 C.用戶手冊
D.開發進度月報.一個模塊把數值作為參數傳送給另一個模塊,這種耦合方式稱為()。A.數據耦合 B.公共耦合 C.控制耦合 D.標記耦合
10.與詳細設計相對應的是數據庫的()設計。A.概念
B.邏輯 C.物理
D.功能 19.序言性注釋主要內容不包括()。
A.模塊的接口
B.數據的描述
C.模塊的功能
D.數據的狀態 11.模塊化的目的是:()
A、增加內聚性 B、降低復雜性C、提高易讀性D、減少耦合性 12.軟件設計中劃分模塊的一個準則是()。
A、低內聚低耦合B、低內聚高耦合C、高內聚低耦合D、高內聚高耦合 13.下列耦合中,耦合程度最高的是:()A、標記耦合 B、控制耦合 C、內容耦合 D、公共耦合 14.模塊間耦合程度越高,說明模塊之間彼此依賴的程度越()。A、松散 B、緊密 C、無法判斷 D、相等 15.程序的三種基本控制結構是()。A、過程、子程序和分程序。B、順序、選擇和重復。C、遞歸、堆棧和隊列。D、調用、返回和轉移。
2.軟件設計階段一般分為
和
兩個階段。
3.軟件開發過程中,模塊化開發追求的目標是:__________________。6.數據建模常用的模型是______________。任何程序都可由
、和
3種基本控制結構構造。這3種基本結構的共同點是
、。
4.軟件人員的數量與軟件開發進度成正比。()
8.模塊化程序設計中,模塊越小,模塊化的優點越明顯。一般來說,模塊的大小都在10行以下。()
9.模塊化,信息隱藏,抽象和逐步求精的軟件設計原則有助于得到高內聚,低耦合度的軟件產品。()
10.程序設計風格指導原則提出,盡量多使用臨時變量。()8.模塊化程序設計中,模塊越小,模塊化的優點越明顯。()
4.軟件測試
13.()方法需要考察模塊間的接口和各模塊之間的聯系。A.單元測試
B.集成測試 C.確認測試
D.系統測試
16.在軟件生存周期中,時間最長、所花費的精力和費用也最多的階段是()。A.詳細設計
B.維護 C.概要設計
D.測試 16.軟件測試的目的是?()A、證明軟件的正確性
B、找出軟件系統中存在的所有錯誤 C、證明軟件系統中存在錯誤
D、盡可能多的發現軟件系統中的錯誤
17.()是以提高軟件質量為目的的技術活動。A.技術創新
B.測試
C.技術創造
D.技術評審
18.軟件維護工作的最主要部分是()。A、校正性維護 B、適應性維護 C、完善性維護 D、預防性維護
19.檢查軟件產品是否符合需求定義的過程稱為()。A、確認測試 B、集成測試 C、驗收測試 D、系統測試
20.軟件維護的副作用,是指()。A、開發時的錯誤 B、隱含的錯誤
C、因修改軟件而造成的錯誤 D、運行時誤操作
33.發現錯誤能力最弱的是()A.語句覆蓋
B.判定覆蓋
C.條件覆蓋
D.路徑覆蓋 34.()方法需要考察模塊間的接口和各模塊之間的聯系 A.單元測試
B.集成測試
C.確認測試
D.系統測試 1.軟件測試主要可分為________和________兩種類型。
4.軟件維護可分為四類,它們是改正性維護,________,________ 和________。8.軟件可維護性的因素是可理解性、可測試性、可修改性、可移植性和_____。
9. 軟件質量保證應從________開始,直到投入使用和售后服務的軟件生存期的每一階段中 4 的每一步驟。
3.為了加快軟件維護作業的進度,應盡可能增加維護人員的數目。()
5.質量保證是為了保證產品和服務充分滿足消費者要求的質量而進行的有計劃,有組織的活動。()
6.判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋。()7.測試只能證明程序有錯誤,不能證明程序沒有錯誤。()3.軟件維護就是改正軟件中的錯誤。()
10.用黑盒法測試時,測試用例是根據程序內部邏輯設計的。(11.基本路徑測試的分析方法?)5
5.面向對象的軟件工程(UML)..()意味著一個操作在不同的類中可以有不同的實現方式。
A.消息
B.多繼承
C.多態性
D.封裝.順序圖反映對象之間發送消息的時間順序,它與()是同構的。A.用例圖
B.類圖
C.協作圖
D.狀態圖
28.在軟件工程學中,我們把一組具有相同數據結構和操作的對象的集合定義為()A.類
B.屬性
C.對象
D.消息
29.順序圖反映對象之間發送消息的時間順序,它與()是同構的 A.用例圖
B.類圖
C.協作圖
D.狀態圖 35.下列關于UML敘述不正確的是()A、UML是一種高級編程語言,且是可視化的B、UML是一種文檔化語言 C、UML是一種可用于詳細描述的語言
D、UML是一種構造語言
36.表示一種一般事物(父類)和特殊事物(子類)之間的關系是()A、依賴
B、關聯
C、泛化
D、實現 1.()用例參與者總是人員而不是系統設備。
6.()面向對象設計是在分析模型的基礎上,運用面向對象技術生成軟件實現環境下的設計模型。
8.()關系數據庫可以完全支持面向對象的概念,面向對象設計中的類可以直接對應到關系數據庫中的表。
9.UML用例圖的畫法?
6.項目管理
38.CMMI體系中,第三級是()A、已管理級
B、已量化管理級 C、已定義級
D、持續優化級 5.軟件配置管理中,基線是___________________________________。4.()軟件工作產品一旦成為基線就不能再更改了。4.什么是軟件配置管理?主要目標和手段是什么? 4.什么是基線?