1. 軟體危機:指在計算機軟體的開發和維護過程中所遇到的一系列嚴重問題。產生軟體危機的原因:與軟體本身的特點有關;來自於軟體開發人員的弱點
2. 軟體工程學的3要素:方法,工具,過程。.
3. 軟體生命週期由軟體定義,軟體開發,執行維護三個時期組成。
4. 軟體定義時期的3個階段:問題定義,可行性研究,需求分析。開發時期的4個階段:總體設計,詳細設計,編碼和單元測試,綜合測試。
5. 螺旋模型:基本思想是使用原型及其他方法來盡量降低風險。
6. 需求分析的任務:功能需求、效能需求、可行性和可用性需求、出錯處理需求、介面需求、約束、逆向需求、將來可能提出的需求
7. 可行性研究分為:技術可行性、經濟可行性、操作可行性
8. 資料流圖符號:正方形(立方體)—資料的源點或終點;圓角矩形(圓形)—變換資料的處理;開口矩形(兩條平行橫線)—資料儲存;箭頭—資料流
9. 資料流圖(dfd):是一種圖形化技術,它描繪資訊流和資料從輸入移動到輸出的過程中所經受的變換
10. 資料字典的內容:資料流、資料流分量(資料元素)、資料儲存、處理
11. 總體設計(概要設計或初步設計)過程:設想供選擇的方案、選取合理的方案、推薦最佳方案、功能分解、設計軟體結構、設計資料庫、制定測試計畫、書寫文件、審查和複查
12. 總體設計的兩個主要階段:系統設計階段,確定系統的具體實現方案;結構設計階段,確定軟體結構
13. 書寫文件有:系統說明、使用者手冊、測試計畫、詳細的實現計畫、資料庫設計結果
14. 確認測試(驗收測試):驗證軟體的有效性
15. 軟體有效性:如果軟體的功能和效能如同使用者所合理期待的那樣,軟體就是有效的
16. 內容耦合(最高程度的耦合):乙個模組訪問另乙個模組的內部資料;乙個模組不通過正常入口而轉到另乙個模組的內部;兩個模組有一部分程式**重疊;乙個模組有多個入口。
17. 公共耦合:乙個模組往公共環境送資料,另乙個模組從公共環境取資料(資料耦合的一種形式,比較疏散的耦合);兩個模組都既往公共環境送資料又從裡面取資料(介於資料耦合和控制耦合之間,比較緊密)
18. 軟體測試的目的:為了發現程式中的錯誤而執行程式的過程;好的測試方案是極可能發現迄今為止尚未發現的錯誤的測試方案;成功的測試是發現了至今為止尚未發現的錯誤的測試。
19. 軟體測試的準則:所有測試都應該能追溯到使用者需求;應該遠在測試開始之前就制定出測試計畫;把pareto原理應用到軟體測試中;應該從「小規模」測試開始,並逐步進行「大規模」測試;窮舉測試是不可能的;為了達到最佳的測試效果,應該由獨立的第三方從事測試工作。
20. 白盒測試的目的:通過檢查軟體內部的邏輯結構,對軟體中的邏輯路徑進行覆蓋測試;在程式不同地方設立檢查點,檢查程式的狀態,以確定實際執行狀態與預期狀態是否一致。
21. 白盒測試的定義:也稱為結構化測試、基於**的測試,是一種測試用例設計方法,它從程式的控制結構匯出測試用例。
22. 黑盒測試:黑盒測試是以使用者的角度,從輸入資料與輸出資料的對應關係出發進行測試的。很明顯,如果外部特性本身設計有問題或規格說明的規定有誤,用黑盒測試方法是發現不了的。
23. 軟體設計過程應遵循的基本原理;模組化、抽象、逐步求精、資訊隱蔽和區域性化、模組獨立。1)模組化採用模組化可以使軟體結構清晰,可讀性強,易編寫,易除錯,易維護,並且有助於軟體開發的組織管理。
總之,通過模組化,可以把複雜的問題分解成許多容易解決的小問題,這樣原來困難的問題也就隨之解決。2)抽象抽象就是把相似方面集中概括起來,暫時忽略他們的細節差異。軟體工程的每一步其實都是對軟體解法的抽象層次的一次精化。
3)逐步求精集中精力解決主要問題,盡量推遲對細節問題的考慮,即把精力集中在與當前開發最相關的方面,細節問題將留到適當時候再考慮。自頂向下逐步求精是軟體結構設計的常用途徑,逐步求精可以看作是乙個時期內必須解決的種種問題按優先順序排序的問題。4)資訊隱蔽和區域性化設計模組時,要使得乙個模組內包含的資訊(方法、屬性、資料、資料結構)對不需要這些資訊的其他模組來說,是不能訪問的。
即隱藏模組的實現細節。 區域性化要求把一些關係密切的軟體元素物理地安排在一起,這樣不僅有助於資訊隱藏,而且有助於編寫、除錯、測試、維護模組。5)模組獨立設計軟體時,盡量使得每個模組完成乙個相對獨立的子功能,並且與其他模組的關係相對簡單,即,模組之間的介面關係應該盡量簡單。
模組獨立是好設計的關鍵,而設計又是決定軟體質量的關鍵,因此,模組獨立原理在軟體結構設計中顯得非常重要。
24. 計算環形複雜度的方法:(1)v(g)=e-n+2,其中,e是流圖中邊的條數,n是結點數;(2)v(g)=p+1,其中,p是流圖中判定節點的數目
25. 瀑布模型的特點:(1)階段間具有順序性和依賴性;(2)推遲實現的觀點;(3)質量保證的觀點
26. 瀑布模型內容及特點:瀑布模型將軟體生存週期的各項活動規定為依固定順序連線的軟乾階段工作,是一種線性模型。
各階段活動為,提出系統需求、提出軟體需求、需求分析、設計、編碼、測試和執行。每個開發階段具有以下特徵,從上一階段接受本階段工作的物件作為輸入,對上述輸入實施本階段的活動,給出本階段的工作成果作為輸出傳入下一階段,對本階段工作進行評審,若本階段工作得到確認,則繼續下階段工作,否則返回前一階段甚至更前階段。瀑布模型最為突出的缺點是該模型缺乏靈活性。
27. 演化模型內容及特點:演化模型主要針對事先不能完整定義需求的軟體開發,其開發過程一般是首先開發核心系統,當核心系統投入執行後,軟體開發人員根據使用者的反饋,實施開發的迭代過程,每一迭代過程均由需求、設計、編碼、測試、整合等階段組成,直到軟體開發結束。
演化模型在一定程度上減少了軟體開發活動的盲目性。
28. 瀑布模型、演化模型、螺旋模型之間的聯絡:相同點是這三個模型都分為多個階段,而瀑布模型一次完成軟體,演化模型分為多次完成,每次迭代完成軟體的乙個部分,螺旋模型也分為多次完成,每次完成軟體的乙個新原型,並考慮風險分析。
填空:1. hipo圖由可視目錄表和ipo圖
2. 生命週期的基本任務:問題定義、可行性研究、需求分析、總體設計、詳細設計、編碼和單元測試、綜合測試
3. 狀態轉換圖(狀態圖):通過描繪系統的狀態及引起系統狀態轉換的事件,來表示系統的行為。
4. 模組獨立程度的兩個定性標準度量:內聚、耦合
5. 資訊流的兩種型別:變換流、事物流
6. 使用漸增方式把模組結合到程式中去時,有自頂向下和自底向上兩種整合策略
7. 黑盒測試又稱為功能測試,白盒測試又稱為結構測試
簡答:1. 軟體測試的步驟:
模組測試、子系統測試、系統測試、驗收測試、平行測試。模組測試又稱為單元測試,其目的是保證每個模組作為乙個單元能正確運;子系統測試死把經過單元測試的模組放在一起形成乙個子系統來測試,著重測試模組的介面,不僅應該發現設計和編碼的錯誤,還應該驗證系統確實能提供需求說明書中指定的功能。子系統和系統統稱為整合測試。
驗收測試,驗證系統確實能夠滿足使用者的需要,也稱為確認測試。平行測試是同時執行新舊兩個系統,比較他們的不同,任務是發現系統的錯誤
2. 北京某高校可用的**號碼有以下幾類:校內**號碼由4位數字組成,第1位數字不是0;校外**又分為本市**和外地**兩類,撥校外**需先撥0,若是本市**則再接著撥8位數字(第1位不是0),若是外地**則撥3位區碼再撥8位**號碼(第1位不是0)。
請定義上面的**號碼。
答:**號碼=[校內**號碼|校外**號碼]
校內**號碼=非零數字+3位數字
校外**號碼=[本市號碼|外地號碼]
本市號碼=數字零+8位數字
外地號碼=數字零+3位數字+8位數字
非零數字=[1|2|3|4|5|6|7|8|9]
數字零=0
3位數字=33
8位數字=非零數字+7位數字
7位數字=77
數字=[0|1|2|3|4|5|6|7|8|9]
3. 北京某高校可用的**號碼有以下幾類:校內**號碼由4位數字組成,第1位數字不是0;校外**又分為本市**和外地**兩類,撥校外**需先撥0,若是本市**則再接著撥8位數字(第1位不是0),若是外地**則先撥區碼(3-5位數字),再撥當地**號碼(7或8位數字,第1位不是0)。
請定義上面的**號碼。
答:**號碼=[校內**號碼|校外**號碼]
校內**號碼=非零數字+3位數字
校外**號碼=[本市號碼|外地號碼]
本市號碼=數字零+非零數字+7位數字
外地號碼=數字零+區碼+當地號碼
非零數字=[1|2|3|4|5|6|7|8|9]
數字零=0
3位數字=33
7位數字=77
區碼=35
當地號碼=非零數字+67
數字=[0|1|2|3|4|5|6|7|8|9]
4. 某交易所規定給經紀人的手續費計算方法如下:總手續費等於基本手續費加上與交易中的每股**和股數有關的附加手續費。
如果交易總金額少於1000元,則基本手續費為交易金額的8.4%;如果交易總金額在1000元到10000元之間,則基本手續費為交易金額的5%,再加34元;如果交易總金額超過10000元,則基本手續費為交易金額的4%加上134元。當每股售價低於14元時,附加手續費為基本手續費的5%,除非買進、賣出的股數不是100的倍數,在這種情況下附加手續費為基本手續費的9%。
當每股售價在14元到25元之間時,附加手續費為基本手續費的2%,除非交易的股數不是100的倍數,在這種情況下附加手續費為基本手續費的6%。當每股售價超過25元時,如果交易的股數零散(即,不是100的倍數),則附加手續費為基本手續費的4%,否則附加手續費為基本手續費的1%。
要求:(1) 用判定表表示手續費的計算方法;
(2) 用判定樹表示手續費的計算方法。
答:(1)判定表如圖4-6所示:
畫出下列偽碼程式的流圖,計算它的環形複雜度。你覺得這個程式的邏輯有什麼問題嗎?
c example
loop:do while x>0
a=b+1
if a>10
then x=a
else y=z
end if
if y<5
then print x,y
else if y=2
then goto loop
else c=3
end if
end if
g=h+r
end do
if f>0
軟體工程複習總結
ppt3 軟體過程 一 軟體過程模型 1 瀑布模型 每個過程階段獨立,直到上乙個過程完成,下乙個過程才啟動 其間伴隨著過程反覆 瀑布模型的缺點是過程進行中對應變更比較困難。問題 將專案生硬地劃分成幾個明顯不同的階段,這使得響應客戶的需求比較困難,所以這個模型適用於需求能夠較好地理解的情況 2 進化式...
軟體工程複習
一 考試複習範圍 1 軟體工程基本概念 基本原理 2 需求分析,結構化分析 物件導向分析,結構化分析建模 物件導向分析建模 3 軟體設計,結構化程式設計,概要設計 詳細設計 4 軟體測試 二 考試題型 單項選擇題 簡答題 綜合應用題 要求會畫 資料流圖 軟體結構圖 用例圖 類圖 n s盒圖 pad圖...
軟體工程複習
第1章軟體工程概述 1 軟體危機的典型表現 軟體危機是指在計算機軟體的開發和維護過程中所遇到的一系列嚴重問題。概括地說,軟體危機包含下述兩方面的問題 如何開發軟體,以滿足對軟體日益增長的需求 如何維護數量不斷膨脹的已有軟體。軟體危機典型表現 對軟體開發成本和進度的估計常常很不準確。使用者對 已完成的...