今天剛考完,大概95分的樣子,有幾個填空坑坑噠。。其他還是蠻簡單的都複習到了~用顏色標註了一下本次考試考到的知識點:
模組的內聚是何含義?
乙個模組內各個元素彼此結合的緊密程度。
軟體工程方法學的3要素是什麼?
方法、工具、過程
軟體生命週期的階段如何還分,每個階段的主要任務是什麼?
軟體定義(問題定義、可行性研究、需求分析)
問題定義:明白要解決的問題是什麼
可行性研究:探索這個問題是否值得去解,是否有可行的解決辦法
需求分析:確定系統必須具備哪些功能
軟體開發(總體設計、詳細設計、編碼和單元測試、綜合測試)
總體設計:設計出實現目標系統的幾種可能方案,確定程式由哪些模組組成以及模組間的關係
詳細設計:設計出程式的詳細規格說明
編碼和單元測試:寫出正確的容易理解、容易維護的程式模組
綜合測試:通過各種型別的測試和除錯使軟體達到預定的要求
軟體維護(軟體維護)
通過各種必要的維護活動使系統持久地滿足使用者的需要
可行性研究的實質是什麼?
一次大大壓縮簡化了的系統分析和設計的過程,也就是在較高層次上以較抽象的方式進行的系統分析和設計過程
結構化程式設計有哪幾種基本結構,有何特點?有何要求?
基本結構:順序、選擇、迴圈
特點:任意基本結構都具有唯一入口和唯一出口
要求:盡可能少用go to語句,最好在檢測出錯誤時採使用go to語句,而且應該總是使用前向go to語句
軟體維護的分類,及每種維護的含義?
改正性維護:發現系統中的錯誤而引起的維護
適應性維護:為了適應外界環境的變化而增加或者修改功能的維護工作
完善性維護:為了完善系統功能而增加新功能的維護工作
預防性維護:對尚能正常執行但可能要發生變化的部分採取的預防措施
軟體測試和軟體除錯的目的是什麼?
軟體測試的目的:破壞已經建造好的軟體系統,竭力證明程式中有錯誤,不能按照預定要求工作。盡可能多地發現並排除軟體中潛在的錯誤。 軟體除錯的目的:找出產生症狀的原因,以便改正錯誤。
什麼是軟體配置管理?
在軟體的整個生命週期內管理變化的一組活動,這組活動用來標識變化、控制變化、確保適當地實現了變化、向需要知道這類資訊的人報告變化
什麼是軟體配置項?
分為3類:
電腦程式
描述電腦程式的文件
資料資料流圖有何用途、有哪幾種圖形元素?
兩個用途:1.資訊交流的工具 2.分析和設計的工具 元素:4個基本符號。1.正方形:表示源點或終點 2.圓角矩形:代表變換資料的處理 3.開口矩形:資料儲存 4.箭頭:資料流
什麼是er圖、有哪幾種圖形元素、有何用途?
實體-聯絡圖。
矩形框表示實體,菱形框表示關係,橢圓形表示屬性。
用途:用來描述現實世界的概念模型。
資料字典主要用途是什麼?
作為分析階段的工具。在資料字典中建立的一組嚴密一致的定義很有助於改進分析員和使用者之間的通訊,因此能消除許多可能的誤解。
什麼是白盒測試、什麼是黑盒測試,白盒測試有哪些測試方法、黑盒測試有哪些測試方法?
白盒測試:按照程式內部的邏輯測試程式,檢測程式中的主要執行通路是否都能按預定要求正確工作
黑盒測試:在程式介面進行的測試,只檢查程式功能是否能按照規格說明書的規定正常使用,程式是否能適當地接收輸入資料並產生正確的輸出資訊,程式執行過程中能否保持外部資訊的完整性。
白盒測試的方法:邏輯覆蓋、控制結構測試
黑盒測試的方法:等價劃分、邊界值分析、錯誤推測
什麼是等價類劃分方法,什麼是邊界值分析方法?
等價劃分方法:把程式的輸入域劃分成若干個資料類,據此匯出測試用例。
邊界值分析方法:通過輸入等價類和輸出等價類的邊界進行測試的一種黑盒測試方法,通常是對等價類劃分的一種補充,選取的測試資料應該剛好等於、剛好小於和剛好大於邊界值
耦合有哪些類別,內聚有哪些型別,各是何含義?
耦合:非直接耦合:相互之間沒有資料交換
資料耦合:兩個模組通過引數交換資訊
控制耦合:兩個模組通過引數交換控制資訊,這個資訊會影響另乙個模組
特徵耦合:當把整個資料結構作為引數傳遞而被呼叫的模組只需要其中一部分資料元素時
公共資料環境耦合:多個模組共用乙個資料環境
內容耦合:乙個模組訪問另乙個模組裡面的資料,乙個模組不經過正常入口進入另乙個模組,乙個模組有多個入口,兩個模組之間有**重疊
內聚:功能內聚:裡面的元素為了共同實現同乙個功能
順序內聚:模組內兩個步驟按照順序執行,共同為了完成某個功能
通訊內聚:使用相同的輸入資料,或者產生相同的輸出資料
過程內聚:乙個模組內的處理元素是相關的,比如兩個資料公用同乙個迴圈或者判定條件,比如過程中用同乙個公式執行
時間內聚:只是因為他們在同乙個時間執行才把它們放到一起,比如共同用來初始化的一些函式,或者緊急處理模組
邏輯內聚:乙個模組完成的任務在邏輯上屬於相同或相似的一類
偶然內聚:乙個模組完成一組任務,但是這些任務之間沒有太大關係,關係是很鬆散的。
需求分析階段應該得到什麼文件?
軟體需求規格說明書
軟體生命週期模型有哪些?各有何特點?
瀑布模型:階段間具有順序行和依賴性、推遲實現、質量保證
快速原型模型:快速建立起能夠在計算機上執行的程式
增量模型:把軟體產品作為一系列的增量構件來設計、編碼、繼承和測試
螺旋模型:是風險驅動的,在每個階段之前都增加了風險分析過程
噴泉模型:具有物件導向軟體開發過程迭代和無縫的特性
判定表和判定樹有何特點?用於何種場合?如何使用?
判定表:能夠清晰地表示複雜的條件組合與應做動作之間的對應關係。
場合:用於演算法中包含多重巢狀的條件選擇時。
判定樹:也能夠清晰地表示複雜的條件組合與應做動作之間的對應關係,優點在於他的形式簡單,不需要任何說明,就能一眼看出其含義,易於掌握和使用。
結構化程式設計對goto 語句有何要求?
要求:盡可能少用go to語句,最好在檢測出錯誤時採使用go to語句,而且應該總是使用前向go to語句
設計資料流圖時,分層的原則是什麼?
自頂向下,逐層分解
估算軟體專案成本的模型有哪些?
**行技術、功能點技術、靜態單變數模型、動態多變數模型、cocomo2模型
軟體危機是什麼?軟體工程的定義是什麼?二者有何關係?
軟體危機:在計算機軟體的開發和維護過程中所遇到的一系列嚴重問題
軟體工程:指導計算機軟體開發和維護的一門工程學科。採用工程的概念、原理、技術和方法來開發與維護軟體,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經濟地開發出高質量的軟體並有效地維護它,這就是軟體工程。
關係:軟體工程是從技術和管理兩個方面來研究如何更好地開發和維護計算機軟體,從源頭上消除軟體危機。
軟體結構圖如何理解?
是軟體結構設計另乙個有力工具,是描繪軟體結構的圖形工具,表明了乙個模組呼叫了哪些模組。
資料流圖中,資訊流可分為哪兩種型別,如何區分?
資訊流分為:交換流和事務流。
交換流:有輸出流、交換流、輸入流
事務流:以事務為中心,可能有多個輸出
軟體結構圖中對深度、寬度、扇入及扇出有何要求?
深度、寬度、扇入、扇出都應該適當。乙個好的典型系統平均扇出通常是3或4。
什麼是cad,cam,cai,case?
cad——計算機輔助設計
cam——計算機輔助製造
cai——計算機輔助教學
case——計算機輔助軟體工程
jackson方法有何特點?有何用途?
特點:分析輸入輸出資料的邏輯結構、列出所有的操作和條件、用偽**表示程式
用途:面向資料結構的設計方法,在設計比較簡單的資料處理系統時特別方便
什麼是驅動模組、什麼是存根模組?有何用途?
驅動模組:用來模擬被測試模組的上一級模組,相當於被測模組的主程式。它接收資料,將相關資料傳送給被測試模組,啟動被測模組,並列印出相應的結果
存根模組:代替被測試的模組所呼叫的模組,稱為虛擬子程式,使用被他代替的模組的介面,做少量的資料操作並輸出,然後把控制歸還給呼叫它的模組
如何度量軟體的規模?
**行技術:依據以往開發類似產品的經驗和歷史資料,估算實現乙個功能所需要的源程式行數
功能點技術:依據對軟體資訊域特性和軟體複雜性的評估結果,估算軟體規模。
可行性研究包含哪幾方面的工作?
技術可行性、經濟可行性、操作可行性
cmm包含哪幾個等級?
cmm——軟體能力成熟度模型,從無序到有序分為五個等級:1. 初始級 2.可重複級 3.已定義級 4.已管理級 5.優化級
投資**期如何計算?
計算公式:
投資**期 = [累計淨現金流量出現正值年數] – 1 + [上年累計淨現金流量絕對值 / 當年淨現金流量]
什麼是結構化設計?有何用途?
是一種面向資料流的設計方法,目的在於確定軟體的結構。
用途:是程式的結構盡可能反映要解決的問題的結構。
需求分析階段要使用哪三種型別的模型?
功能模型:dfd
資料模型:e-r
行為模型:狀態轉換圖
整合測試有哪幾種策略?
2種:自頂向下,自底向上
軟體測試有哪幾個步驟?與軟體各開發階段有何關係?
步驟:1. 模組測試 2. 子系統測試 3.系統測試 4. 驗收測試 5.平行執行
單元測試-》編碼
整合測試-》詳細設計
系統測試-》概要設計
驗收測試-》需求分析
如何由程式流程圖得到流圖,如何計算環形複雜度?
任意一種:
v(g) = e – n + 2 //e是流圖中的邊的條數,n是結點數
v(g) = p + 1 //p是流圖中判定分支點的數目
如何將程式轉化為流程圖及n-s圖?
如何由流程圖設計測試用例?(包括語句覆蓋與分支覆蓋)。
語句覆蓋:至少每個語句應該執行一次
分支覆蓋:也叫判定翻蓋,不進每個語句必須至少執行一次,而且每個判定的每種可能結果都應該至少執行一次
軟體工程 軟體工程概述
一.軟體 定義 計算機系統中的程式及其文件 程式 計算任務的處理物件和處理規則的描述 文件 為了便於了解程式所需的闡明性資料 特點 軟體的種類 按功能劃分 系統軟體 支援軟體 應用軟體 二.軟體工程的起源和概念 早期電腦程式 現在人們認為 在資訊產業中,微電子是基礎,計算機和網路是載體,軟體是核心 ...
軟體工程 軟體工程的概述
軟體工程是研究和應用如何以系統性的 規範化的 可定量的過程化方法去開發和維護軟體,以及如何把經過時間考 驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來的學科,它涉及到程式語言 資料庫 軟體 開發工具 系統平台 標準 設計模式等方面。先從軟體工程的第一章開始說起 軟體工程的概述,這一章是...
軟體工程之軟體工程管理
乙個好的工程需要配套的管理體系,軟體工程也不列外。軟體工程就我的理解就是對軟體工程的各個階段都一定規範,俗話說 不以規矩,不能成方圓 而這個規矩就由管理來充當。乙個軟體工程管理需要軟體專案計畫 成本估算 進度計畫 風險分析和人員的組織形式 或調動 一 在軟體專案計畫中,專案的任務是研究專案的效能 功...