【软件工程导论】期末复习重点
【軟件工程導論】期末復習筆記
- 1. 軟件工程學概述
- 1.1 軟件危機
- 1.2 軟件工程
- 1.3 軟件工程方法學三要素
- 1.4 軟件生命周期
- 1.5 軟件過程的幾個模型
- 2. 可行性研究
- 2.1 可行性研究實質
- 2.2 系統流程圖符號
- 2.3 數據流圖的特點
- 2.4 數據字典的定義
- 2.5 數據字典由四類元素定義組成
- 2.6 成本效益分析的目的
- 2.7 三種成分估計技術
- 2.8 貨幣的時間價值的計算
- 3. 需求分析
- 3.1 模型是什么?
- 3.2 結構化分析實質
- 3.3 需求分析過程建立的三種模型
- 3.4 數據模型中包含的三種相互關聯的信息
- 3.5 驗證軟件需求的方法
- 4. 總體設計
- 4.1 總體設計的兩個階段
- 4.2 總體設計中,劃分出組成系統的物理元素有
- 4.3 模塊是構成程序的基本條件
- 4.4 什么是抽象?
- 4.5 信息隱藏還來的好處
- 4.6 模塊獨立的概念
- 4.7 耦合
- 4.8 耦合設計原則
- 4.9 內聚
- 4.10 扇出的定義
- 4.11 描述軟件結構的圖形工具
- 5. 詳細設計
- 5.1 根本目標
- 5.2 任務
- 5.3 三種基本的控制結構
- 5.4 判定表
- 5.5 判定樹
- 5.6 過程設計語言
- 5.7 程序復雜度
- 5.8 設計題
- 6. 實現
- 6.1 概念
- 6.2 程序的質量
- 6.3 軟件測試
- 6.4 測試步驟
- 6.5 單元測試
- 6.6 集成測試
- 6.7 自頂向下集成
- 6.8 確認測試
- 6.9 白盒/黑盒測試
- 6.10 軟件可靠性
- 7. 維護
- 7.1 軟件維護
- 7.2 維護活動
1. 軟件工程學概述
1.1 軟件危機
軟件危機是指在計算機軟件的開發和維護中所遇到的一系列嚴重問題。
產生的原因:
- 一方面與軟件本身的特點有關,另一方面也和軟件開發和維護的方法不正確有關。
1.2 軟件工程
軟件工程是指導計算機軟件開發和維護的一門工程學科。
基本原理:
- 用分階段的生命周期計劃嚴格管理
- 堅持進行階段評審
- 實行嚴格的產品控制
- 采用現代程序設計技術
- 結果應能清楚地審查
- 開發小組的人員應該少而精
- 承認不斷改進軟件工程實踐的必要性
1.3 軟件工程方法學三要素
-
三要素:方法、工具、過程
-
最廣泛的軟件工程方法學是傳統方法學、面向對象方法學
1.4 軟件生命周期
-
軟件定義:問題定義、可行性研究、需求分析
-
軟件開發:總體設計,詳細設計,編碼和單元測試,綜合測試
-
運行維護:軟件維護
1.5 軟件過程的幾個模型
瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型
選擇題
-
瀑布模型:帶反饋環
-
快速原型模型:不帶反饋環(快速)
-
噴泉模型:面向對象、無縫、迭代
-
增量模型(Incremental Model)
增量模型是一種非整體開發的模型。是一種進化式的開發過程。 -
螺旋模型將開發過程分為幾個螺旋周期,每個螺旋周期可分為4個工作步驟:
2. 可行性研究
2.1 可行性研究實質
目的:用最小的代價在盡可能短的時間內確定問題是否能夠解決。
可行性研究實質上是要進行一次大大壓縮簡化了的系統分析和設計的過程,也就是在較高層次上以較抽象的方式進行的系統分析和設計的過程。
2.2 系統流程圖符號
P39
2.3 數據流圖的特點
數據流圖(DFD)是一種圖形化技術,它描繪信息流和數據從輸入移動到輸出的過程中所經受的變換。
2.4 數據字典的定義
數據字典是關于數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。
2.5 數據字典由四類元素定義組成
2.6 成本效益分析的目的
成本/效益分析的目的:正是要從經濟角度分析開發一個特定的新系統是否劃算,從而幫助客戶組織的負責人正確地做出是否投資于這項開發工程的決定。
2.7 三種成分估計技術
2.8 貨幣的時間價值的計算
P51
通常用利率的形式表示貨幣的時間價值。假設年利率為iii,如果現在存入PPP元。則nnn年后可以得到的錢數為:F=P(1+i)nF=P(1+i)^nF=P(1+i)n,也就是PPP元錢在nnn年后的價值。反之,如果nnn年后能收入FFF元錢,那么這些錢現在的價值是:P=F/(1+i)nP=F/(1+i)^nP=F/(1+i)n
3. 需求分析
3.1 模型是什么?
所謂模型,就是為了理解事物而對事物作出的一種抽象,是對事物的一種無歧義的書面描述。通常,模型由一組圖形符號和組織這些符號的規則組成。
3.2 結構化分析實質
結構化分析實質是一種創建模型的活動
3.3 需求分析過程建立的三種模型
數據模型 功能模型 行為模型
3.4 數據模型中包含的三種相互關聯的信息
數據對象、數據對象的屬性以及數據對象彼此間相互連接的關系
3.5 驗證軟件需求的方法
4. 總體設計
4.1 總體設計的兩個階段
-
系統設計階段:確定系統的具體實現方案
-
結構設計階段:確定軟件結構
4.2 總體設計中,劃分出組成系統的物理元素有
程序 文件 數據庫 人工過程 文檔
4.3 模塊是構成程序的基本條件
4.4 什么是抽象?
人類在認識復雜現象的過程中使用的最強有力的思維工具是抽象。
4.5 信息隱藏還來的好處
絕大多數數據和過程對于軟件的其他部分而言是隱藏的,在修改期間由于疏忽而引入的錯誤就很少可能傳到軟件的其他部分。
4.6 模塊獨立的概念
模塊獨立的概念是模塊化、抽象、信息隱藏和局部化概念的直接結果。
4.7 耦合
- 一個模塊訪問另一個模塊的內部數據
- 一個模塊不通過正常入口而轉到另一個模塊的內部
- 兩個模塊有一部分程序代碼重疊
- 一個模塊有多個入口
4.8 耦合設計原則
盡量使用數據耦合,少用控制耦合和特征耦合,限制公共環境耦合的范圍,完全不用內容耦合。
4.9 內聚
內聚標志著一個模塊內各個元素彼此結合的緊密程度,他是信息隱藏和局部化概念的自然擴展。
幾種內聚的區分:
重內聚的優劣評分:
功能內聚 10分順序內聚 9分 通信內聚 7分過程內聚 5分時間內聚 3分 邏輯內聚 1分偶然內聚 0 分4.10 扇出的定義
扇出是一個模塊直接控制(調用)的模塊數目。
4.11 描述軟件結構的圖形工具
幾種圖形工具的區別(選擇題)
-
層次圖
自頂向下設計軟件的過程 -
HIPO圖
帶編號的層次圖 -
結構圖
帶箭頭表示模塊的調用關系
5. 詳細設計
5.1 根本目標
詳細設計階段的根本目標是:確定應該怎樣具體地實現所需要的系統。
5.2 任務
詳細設計階段的任務:不是具體地編寫程序,而是要設計出程序的“藍圖”,以后根據這個“藍圖”寫出實際的程序代碼。
詳細設計的結果基本上決定了最終地程序代碼的質量。
5.3 三種基本的控制結構
順序、選擇和循環
5.4 判定表
判定表能清晰地表示復雜的條件組合與應做的動作之間的對應關系。(判定樹和判定表概念一樣,選判定表)
5.5 判定樹
判定樹是判定表的變種,它也能清晰地表示復雜的條件組合與應做的動作之間的對應關系。
5.6 過程設計語言
P128頁,過程設計語言那里前兩段,會選擇描述不正確的。
過程設計語言PDL也稱為偽碼,是用正文形式表示數據處理過程的設計工具。
5.7 程序復雜度
McCabe方法和Halstead方法是程序復雜程度定量度量的兩種方法。
5.8 設計題
P141頁,3和5題,必考其中之一
6. 實現
6.1 概念
通常把 編碼 和 測試 統稱為實現
所謂編碼就是把軟件設計結果翻譯成用某種程序設計語言書寫的程序
6.2 程序的質量
程序的質量主要取決于軟件設計的質量
6.3 軟件測試
對于軟件測試而言,黑盒測試法把程序看作一個黑盒子,完全不考慮程序的內部結構和處理過程。
6.4 測試步驟
目的:保證每個模塊作為一個單元能正確運行,又稱單元測試
把經過單元測試的模塊放在一起形成一個子系統來測試
把經過測試的子系統裝配成一個完整的系統來測試
目的是驗證系統確實能夠滿足用戶的需要,也稱確認測試
P151,7.2.4 測試步驟
6.5 單元測試
單元測試集中檢測軟件設計的最小單元——模塊。
6.6 集成測試
模塊組裝成程序有兩種方法:先分別測試每個模塊,再把所有模塊按照設計要求結合成所要的程序,這種稱為非漸增式測試方法,每次增加一個模塊叫漸增式測試。
6.7 自頂向下集成
自頂向下集成方法是一個被人們廣泛采用的測試和組裝軟件的途徑。
把附屬于(及最終屬于)主控制模塊的那些模塊組裝到程序結構中去時,使用深度優先策略或者寬度優先策略。
深度優先和廣度優先
6.8 確認測試
為驗證軟件的有效性,應使用確認測試,也稱驗收測試。
目標是:驗證軟件的有效性
6.9 白盒/黑盒測試
白盒測試包括:基本路徑測試、條件測試、循環測試。
條件組合覆蓋是幾種覆蓋標準中最強的。
黑盒測試是把程序看做一個黑盒子,完全不考慮程序的內部結構和處理過程。
黑盒測試技術包括:等價劃分、邊界值分析、錯誤推測。
6.10 軟件可靠性
保證軟件可靠性主要手段是軟件測試。
7. 維護
7.1 軟件維護
軟件維護的定義:所謂的軟件維護就是在軟件已經交付使用后,為了改正錯誤或滿足新的需要而修改軟件的過程。
7.2 維護活動
四項描述軟件交付后可能進行的維護活動:
完善性維護占全部維護活動的50%-66%,改正性維護占17%-21%,適應性維護占18%-25%,其他占4%。
來源大佬的:軟件工程復習
加油!
感謝!
努力!
總結
以上是生活随笔為你收集整理的【软件工程导论】期末复习重点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 诺顿防毒软件曝漏洞 任意下载运行恶意代码
- 下一篇: 数据仓库和数据挖掘复习